Solidworks生成URDF文件并在Rviz显示时模型分离
作者最近在学习ROS,面对的一个问题就是,如何将机械臂模型在ROS下的RViz里面显示,自己借鉴了前辈的一些经验,也踩了很多坑,一直想写懒得总结,最近不想科研了,简单记录一下吧,有可能的话给后面的学习者提供一些经验,想来也是甚好的,好了,废话少说,上干货!
首先,我是根据前辈的帖子一步步学的,帖子写的很详细,上链接,看这里哈!
接下来,简要介绍,
1.在Solidworks里面安装sw2urdf插件,Here(点击此处下载)!;
2.在sw2urdf里面按照自己规定的模型,设置link,Joint类型和坐标轴等,具体操作见1的链接;
3.生成package文件;
4.修改package,在这里作者只修改了两处:
(1)package.xml里的的作者邮箱;
(2)将display.launch里的一个参数改成“True”
将URDF包名改为robots这一步我没有进行,有需要的同学可以试一试
注意:生成的package文件要放在工作空间下进行编译检查无错后才可以,不会的可以看ros官网
5.打开终端运行roscore,打开另一个终端进行roslaunch
roslaunch 包名 display.launch 例如:roslaunch manipulator display.launch
6.ROS下测试
最后,也是最重要,避坑:
1.加载模型错位分离的问题:给模型命名时最好使用英文,并且首字母小写,例如:arm_left2;
2.每个零部件的名称不要一样,如果还出错,可以将相同零部件的尺寸微调一下,变动个零点几毫米,在不影响后续操作的情况下
3.在sw2urdf中进行坐标轴选择时,可以根据自己选择生成,系统自动生成的可以的话,就不用自定义了。
后面逆运动学的求解测试作者也进行了,根据是这篇,当然还有很多,网上可以搜很多,这里也有些问题:
1.Self-collisions加载100%完成后,右侧生成不了模型,
①解决方法,在启动配置文件之前,在终端里面定位到你的URDF所在的工作空间,例如:cd ~/catkin_ws (注意:这里的catkin_ws要换成你自己的工作空间)
②然后再在终端输入:source devel/setup.bash,刷新一下,
③再启动配置文件:在终端输入:
roslaunch moveit_setup_assistant setup_assistant.launch
应该就可以加载了,右边就能看见模型了
2.最后一个生成配置文件
需要注意的是,这里需要自己新建一个文件夹,放在和你生成package文件所放的地方的同意等级下,然后在Browse的时候选择这个文件夹,配置完成后就可以了
时间比较长了,记住的基本上就这些,有什么问题可以留言交流