solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)

一、下载sw_urdf_exporter插件

电脑SolidWorks版本为2019版本,下载sw2urdfSetup文件后点击安装,安装后打开SolidWorks,点击“工具—File”就能看到“Export as URDF”选项,点击该选项就能用插件从SolidWorks中导出URDF模型了。(注:该插件目前不适配SolidWorks2018版本,大家酌情安装),sw_urdf_exporter下载地址:http://wiki.ros.org/sw_urdf_exporter。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(1)

二、打开创建好的SolidWorks模型

下面为构建好的Tianbot_mini差速小车模型,模型是由多个零件组成的装配体,大家可以把一些散的零件保存为一个part,这样配置起来会方便很多。值得注意的是,小车的前进方向为SolidWorks坐标系的X轴方向(这个要在装配模型的时候自己配置),上方向为Z轴方向,这样在之后的建立坐标系以及再之后导出URDF并在gazebo中的小车运动运动方向不会出错。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(2)

三、创建所有link点和坐标系

依次点击 “装配体—参考几何体—点”,选择小车左轮,会在左轮中间生成一个点。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(3)

再依次点击“装配体—参考几何体—坐标系”,选择点2,在左轮中间生成一个坐标系。并将其命名为left_wheel。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(4)

用相同的方法为右轮,激光雷达,万向轮,以及万向轮中的滚轮创建点和坐标系,由于base_link在小车的旋转中心,以左右轮中心点连线的中点构建点和坐标系,并分别标注各坐标系的名称。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(5)

我们在这里可以测一下左右轮之间的距离,以及base_link到地面的距离,为接下去的配置做准备。我们测得左右轮距为91mm,base_link到地面的距离约为22mm。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(6)

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(7)

四、创建各个joint的轴线

依次点击“装配体—参考几何体—基准轴”,左右轮共用一个基准轴“轮轴”,依次创建激光雷达的轴线,万向轮Z方向的轴线,万向轮小轮的轴线并进行命名。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(8)

五、使用插件进行配置

依次点击“工具—File—Export as URDF”,进入到配置界面。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(9)

先配置base_link。Global Origin Coordinate System选择为刚才命名为base的坐标系,Link Components选择为除去左右轮、激光雷达、万向轮的一个整体底盘,底盘变成蓝色,Number of child links选为4,因为底盘连接有4个link。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(10)

点击第一个empty_link,先配置左轮,将link_name改为left_wheel,将joint name填写为left_wheel_joint,Reference Coordinate System选择为刚才给左轮创建的坐标系,Reference Axis选择为“left_wheel_axis”,Joint Type选择为continuous, Link Components选择为左轮,左轮变成蓝色。同理对右轮进行配置。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(11)

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(12)

接着我们来配置万向轮,将link_name改为caster,将joint name填写为caster _joint,Reference Coordinate System选择为“caster”,Reference Axis选择为“front_caster_axis”,Joint Type选择为continuous, Link Components选择为万向轮,万向轮变成蓝色,在Number of child links选1,因为与其装配的还有一个滚轮。接着对万向轮滚轮进行配置。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(13)

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(14)

最后配置激光雷达,将link_name改为lidar,将joint name填写为lidar_joint,Reference Coordinate System选择为“lidar”,Reference Axis选择为“lidar_axis”,Joint Type选择为fixed, Link Components选择为激光雷达,万向轮变成蓝色。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(15)

配置完所有link后,点击“Preview and Export”选项,若joint配置无误则点击next。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(16)

接着看link配置参数是否有问题,检查无误后点击“Export URDF and Meshes”。选择路径对导出文件进行保存,命名为mini_description。切记命名的时候,文件名不能带有大写字母和中文,以免出现问题。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(17)

六、运行文件

我们先看一下文件,我将文件放进工作空间下的src目录,再回到catkin_ws目录,打开终端并且catkin_make,再source devel/setup.bash一下,然后roslaunch mini_description gazebo.launch就打开了小车在gazebo中显示了(如下图所示,这里我帖了tianbot标志并且配置了一下各个link的颜色)。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(18)

我们再稍微修改一下launch文件中的display.launch文件,将default=“false”改为default=“ture”并保存,此时再roslaunch mini_description display.launch后可打开rviz再插入robot model可以有一个joint_state_publisher_gui界面来控制各个joint旋转。

solidworks实现机器人动作(MINI机器人从SolidWorks模型到Gazebo仿真)(19)

以上就是SolidWorks小车模型导出urdf模型的全过程,接下去会用xacro文件对urdf模型进行优化,并实现键盘控制小车的运动,敬请期待。注意:如果在键盘控制小车运动过程中出现左右颠倒的情况,这可能是SolidWorks装配模型过程中,Y轴方向的问题,出现该问题可以在URDF文件中进行修改,需要保持URDF文件中左右轮的JOINT坐标正负保持一致即可,无需重新导模型。

八、参考文献

感谢下文给予的参考

https://blog.csdn.net/weixin_45168199/article/details/105755388 作者:天之博特TIANBOT https://www.bilibili.com/read/cv12846451 出处:bilibili

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页