一.引言
本文主旨是通过构建好的solidwork模型转换成urdf模型,以便后期在ros仿真中使用到
二.前期准备
2.1 下载Solidworks2022
下载方式:关注软件安装管家目录,根据教程一步一步做就好
在安装的过程中,我遇到过两个安装错误耗费了比较多的时间
问题1:
解决方法:
下载插件,把该目录下的插件替换掉
下载连接:https://pan.baidu.com/s/19U_DZ7TNmZLH40EkCTkAGA 提取码:5yfi
问题2:
解决方法:
安装时不安装Solidworks Electrical
2.2 下载Solidworks转URDF插件
安装完成Solidworks2022以后需要下载sw2urdfSetup.exe这样一个exe文件来自动下载插件,这个exe文件在ROS WIKI的网站上有提供资源,solidworks2022可以使用2021的插件版本
https://github.com/ros/solidworks_urdf_exporter/releases
三.配置全过程
3.1 打开Solidworks模型
3.2 添加基准轴
主要是为了机械臂旋转的时候有个参考轴,一般都是取圆柱体的中心轴,可以理解为URDF里面的joint部分旋转时的参考轴。
先有一个基准点,以便于建立坐标系
菜单栏:插入->参考几何体->点
建立坐标系
菜单栏:插入->参考几何体->坐标系
建立坐标系主要依靠右手定则,确定前进方向是x轴后,y轴和z轴就能确定了
选定需要作轴的部分,就可以添加成功了
3.3配置link和joint
菜单栏:工具->file->Export as URDF
会进入以下界面,需要对link和joint起名、选定link的范围、选定参考轴、以及joint类型,其中Number of child links是用来指定子关节的数量的,可以用于添加子关节,对应其下面的树状结构
步骤:
(1)baselink
(2)添加子关节left_wheel_link和left_wheel_joint
reference coordinate system 就是选我们刚才在对左轮建立的坐标系;
reference Axis选我们刚才对左轮建立的基准轴。
Joint Type:由于轮子可以单轴无限旋转的,所以选择continue.
Joint Type:
(1)continuous: 旋转关节,可以绕单轴无限旋转
(2)revolute: 旋转关节,类似于 continues,但是有旋转角度限制
(3)prismatic: 滑动关节,沿某一轴线移动的关节,有位置极限
(4)planer: 平面关节,允许在平面正交方向上平移或旋转
(5)floating: 浮动关节,允许进行平移、旋转运动
(6)fixed: 固定关节,不允许运动的特殊关节
(3) Lidar_link和Lidar_joint
与上图同理,不一样的是雷达没有基准轴和它的关节类型是fixed
其他同理,就不过多介绍了
配置的时候可以按照自己的需求选择相应的选项,主要就是那个基准轴还有Joint Type别选错了就行
(4)建立好后,点击Preview和Export...
这里可以配置一些速度,角度上下限,这几个joint里的Limit参数可以全部配置一样的参数,-3.14,3.14(这两个数说明轮子能够绕轴旋转一周),100(100N/m),1(表示1m/s)即可~
选好点Next
然后再点Export URDF and Meshes
4.得到文件夹后,建立文件路径如下,把生成的文件夹放进src文件夹下
然后catkin_make编译
运行display.launch文件
把Fixed Frame改为base_link,t同时添加RobotModel
参考文章
https://blog.csdn.net/lixushi/article/details/122471782
应该是catkin_create_pkg
当把文件夹拖到src目录下没有编译的话,roslaunch会找不到文件夹
那么这时需要有src目录在文件夹中才会被编译
有时候终端roslaunch找不到文件夹,可以尝试把终端关掉在重开