ROS中通过RVIZ可视化机器人导航情况,其中,URDF(Unified Robot Description Format)是统一的机器人描述文件,此类文件通过HTML格式定义机器人模型(Robot Model)的相关信息,如:连杆、关节名称,运动学参数、动力学参数、可视化模型、碰撞检测模型等。
例如下面的URDF文件定义了机器人头部关节:
<joint name="head_swivel" type="continuous">
<parent link="base_link"/>
<child link="head"/>
<axis xyz="0 0 1"/>
<origin xyz="0 0 0.3"/>
</joint>
当机器人比较复杂时,URDF文件会很长,不可能全部手动定义。那么如何快速建立URDF文件来描述自己的机器人?
ROS目前在SolidWorks中提供了自动生成URDF文件的插件。官网地址[:http://wiki.ros.org/sw_urdf_exporter]
安装成功后,SW中会多出一个SW2URDF插件,勾选启用:
3D模型建立完后,点击菜单栏里file->Export as URDF
进入URDF配置界面,在左侧URDF Exporter中输入连杆名称,选择属于该连杆的模型文件,子连杆数。这里简单的将除激光雷达意外部分全部定义为base_link, 它将有1个子连杆(雷达)。
这时base_link下会多出一个Empty_link,点击编辑。
给连杆起名为laser_link,关节名称为laser_link_joint,选择激光雷达3d模型,没有子连杆,然后点击Preview and Export...
随后会出现窗口设置具体连杆关节参数,可直接跳过。
完成后, 会生产一个URDF package,里面launch文件夹中有display.launch,可以直接在ROS中运行。
SW 2014下生产的launch文件运行可能会报以下错误:
原因是路径有误,没有robots文件夹,生成的urdf文件在urdf文件夹中,手动修改即可。
另外可能出现找不到3d模型文件的错误,原因是meshes文件夹中模型文件后缀大小写和urdf文件中不匹配,手动修改匹配即可。
这是运行display.launch文件后rviz中的显示效果: