介绍

urdf文件是用于ROS中实体模型仿真的文件,可通过编程实现,也可使用solidworks画出模型后,导出urdf文件。
我此次是将机械臂的模型导出。

upload successful

转成下面的rviz中打开的仿真图,可通过ROS进行控制机械臂的运动

upload successful

一、环境

使用sw导出,需要先下载urdf.exe文件 http://wiki.ros.org/sw_urdf_exporter
由于urdf.exe目前只适配2021以前的sw,因此我这里用了sw2020版本的,urdf.exe直接安装即可。

upload successful

工具栏里有这个就是安装成功了。

二、建立坐标系、基准轴

这一步最为关键! 模型复杂的不可以用自动建立坐标系的方法去导出urdf,否则会无法正确控制、我一直试了十次!才终于成功了

upload successful

每个关节需要一个坐标系,坐标系必须和所在关节建立联系,不能参考其他的关节。

upload successful

先将关节“独立出去” 再其寻找旋转轴,如电机法兰盘

upload successful

upload successful

upload successful

最好以z轴为旋转轴。选取的坐标原点最好在模型外壳上,方便后续导出时减少stl文件,当然 只能选取模型外壁的stl模型,内部的模型选上后会导致 mesh文件夹下的stl文件为空。

三、导出

upload successful

upload successful

导出完后,可再次打开urdf界面重新编辑生成。

在rviz中查看仿真模型

sw导出的功能包直接添加到ros工程下的src功能包文件夹下,但是urdf可能会因生成的文件不规范报错

问题一:

upload successful

该警告导致的问题是 rviz fixed frame 下拉列表打不开 而且模型出错

upload successful

虽然是警告,但是无法正常运行,警告提示 缺少基准坐标,或者是基准坐标内的参数有多余,所以需要重新添加个虚拟的基准坐标。

<link name="base_footprint"/>
<joint name="joint_0" type="fixed">
<origin xyz="0 0 0.0532" rpy="0 0 0" />
<parent link="base_footprint" />
<child link="base_link" />
</joint>