关于上一篇博客:一起来从Solidworks中导出URDF模型-CSDN博客
我们一起完成了小车的URDF模型的导出与Rviz界面中的可视化,下面一起来继续从Solidworks中导出关于机械臂的URDF模型
3. 如何导出机械臂URDF模型
与之前的小车结构不同,机械臂的模型是串联结构,所有的link是依次串联来进行连接的
机器人中的每个link之间的关系是通过joint来描述的,首先,先来配置好机械臂的核心坐标系以及旋转轴:
注意:每一个link都要有坐标系,其次要设计旋转的基准轴
下面打开sw软件,导入我们的机械臂C800
这个机械臂有7个link,所以我们要来创建7个坐标系,首先来创建每个坐标系的原点:
下面来创建好7个坐标系,base_link坐标系的创建如下:
这个第一个坐标系用来充当base_link的坐标系,要求:坐标系创建时要求x轴往前,z轴向上
后面继续创建别的6个坐标系,除了base_link坐标系外,其余的6个坐标系的方向没有太多的要求,可以参考DH参数法的坐标系定义规则来确定自己认为合适的方向
下面的6个坐标系的创建,先按照默认的方向来进行创建:
完成了坐标系的创建之后,下面继续创建每个joint对应的旋转轴:
好了,坐标系和基准轴的设置完成
下面进行URDF的导出,点击:工具 ——> Tools ——> Export as URDF
下面再base_link的基础上,继续创建别的link:
其中,Joint Type的类型选择为revolute,这个是带有上下限位的旋转关节
这样依次进行创建:
好了,所以的link和joint的配置完成。检查无误后,下面就可以开始导出URDF了:
确认无误后,点击:Preview and Export...
后面会弹出界面用来进行检查:
上面这个图中的红色方框位置默认是0,可以进行限位的自定义,比如我进行的设置如下:
同样,其余的每个joint关节都可以进行一下设置后,点击右下角的Next:
再次检查每个link的参数生成是否正确,最后确认无误后,点击右下角的:Export URDF and Meshes,自定义文件名后再点击保存,确定保持到对应的文件夹中即可。
下面我们来找到之前生成的c800_description功能包:
这些自动产生的文件与ROS是一致的,整个文件夹本身就是一个功能包,后面是可以直接来运行的。以上的这些文件不用做太多的修改,就可以结合ROS来做进一步的开发与仿真。
补充:其中的textures文件夹是用来放模型的纹理;meshes文件夹是用来放置STL文件;config文件夹是用来放置joint名字的配置文件,方便后续的仿真。
-----------------------------------------------------------------------------------------
下面将上面自动生成的URDF文件移动至Ubuntu20.04系统中,做进一步的编译:
后续进入linux系统中,将之前生成的c800_description功能包移动到src工作空间下:
接下来返回上一级的catkin_ws的目录中,开启一个终端,进行编译:
进入conda环境中,使用指令:catkin_make
编译成功后,下面来运行launch文件,进入这个文件夹当中,找到display.launch文件:
下面任意开启一个终端来运行如下的launch文件,指令:
conda activate hjx
roslaunch c800_description display.launch
刚进入Rviz界面中没有模型显示,需要来做一些配置:
首先,修改Fixed Frame,将map改为base_link;可以发现error消失,随后,点击Add来添加RobotModel:
可以继续在Add中添加TF:
下面看看这个机械臂的各个关节能否在Rviz界面转起来,只需拖动对应关节的滑动条:
确认好每个关节的旋转轴无误后,说明机械臂URDF的模型导出是没有问题的!