利用Solidworks三维建模 ,导出URDF文件,并在ros中使用

Google或者百度,搜索sw_urdf_exporter的插件。这里官方推荐使用SolidWorks2017。

我使用的是虚拟机ROS_INDIGO+win7的SW2017。

win7 下下载sw_urdf_exporter后安装即可,然后打开SolidWorks

点击小齿轮旁边的下拉菜单,选择插件,然后拉到插件最底下有个sw2urdf的插件,点击选中,然后保存。

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第1张图片

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第2张图片

再转化之前需要画好零件图并且装配好。如下,我选择的是四轮的机器人,如下利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第3张图片

我在车子body的底部中心创建参考几何体的中心点,然后以此原点,设置坐标系26,作为世界坐标系。这里根据你的模型复杂程度,创建旋转轴和坐标系,我这里比较简单,SolidWorks待会可以自动帮我生成需要的坐标轴和旋转轴。

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第4张图片

创建完坐标系(或者需要的旋转轴),选择SolidWorks图标旁边的左拉菜单小箭头,选择工具,然后在下拉菜单中找到File,选择Export as urdf。

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第5张图片

打开如图的图面,选择刚才创建的坐标轴(创建这个坐标系是为了之后的使用,他是位于世界坐标原点的位置)为参考坐标系,选择你的base_link,这里我偷懒了选择了轴也为机器人body的部分,输入子连接数目4个,分别为四个轮子。一开始是empty link,点击左下角的empt link 然后设置。(这里是我起了名字之后截得图,见下一步)利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第6张图片

为了方便我的link名字和joint的名字都是1,2,3,4,选择一个轮子,轮子会变蓝,方框里也会出现link的名字,如果误选中其他的,,选择左边的 unit components的框下你不需要的,del掉就行。这里我之前没有创建轴和参考系,选择系统为我生成,也可以选择自己创建的坐标系和旋转轴。

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第7张图片

按步骤操作完所有的子link,然后点击preview and export,如果你没有完全设置完所有的子连接会报错。进入如下的步骤

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第8张图片

可以点击子连接,查看连接情况,我这里的坐标系和轴都是系统为我计算生成的,你可以仔细查看核对下,然后点击NEXT,进入下一页。(有些人说这里要设置velocity以便于之后的仿真,我还没做到这一步,我只是为了显示下,可以给一个速度0.02m/s)。

这里可以设置颜色和外观,我没有设置。直接点击finish 然后选择文件夹保存,我选得是和虚拟机共享的文件夹(虚拟机,设置,选项,共享文件夹设置)。可以实现虚拟机的Linux和win7主机实现文件共享。

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第9张图片

将文件夹copy到工作目录下src/文件夹下,修改package.xml中的邮箱,以及修改URDF文件夹为robots(这里是因为生成 的launch文件打开的urdff文件路径有问题)。然后就可以roscore,roslaunch  display.launch文件了,他还提供了gazebo.launch,一个在rviz打开,一个在gazebo中打开。

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第10张图片

成功后如下图

利用Solidworks三维建模 ,导出URDF文件,并在ros中使用_第11张图片

写在后面,需要更改map的参考系改为base_link,图形就会正确了。有时候电脑的虚拟机带不动rviz,可能出现图形的不能正确显示,我笔记本就是这样,同样的在台式机可以显

 

*******************************************更****************新********************************************************

之前的模型创建过程再重新走一遍,基本可以完成。但是在gazebo中的显示时候会抖动,发现SolidWorks在创建时候,默认的惯性矩阵都为0,可以利用solidworks的评估,然后质量属性工具计算出惯性矩阵,然后使用重心那个矩阵,可以使抖动消失。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(ROS学习笔记,ROS实战,Linux)