美文网首页
MoveIt教程5 - 机器人描述文件(I) URDF

MoveIt教程5 - 机器人描述文件(I) URDF

作者: Danny_a44d | 来源:发表于2019-07-09 20:08 被阅读0次

URDF


URDF 全称Universal Robot Description Format, 是ROS中使用的一种描述机器人的通用文件格式。
也是MoveIt 生成配置包的基础要素。

相关资料

这里是一篇很详细的教程 OPENARM - Solidworks生成URDF

官方给出了很多机器人的URDF例子,可以参考URDF Examples

要点

以下提出一些MoveIt生成配置包所需的URDF文件的一些要点。

- 特殊字符

关节名称不能含有以下特殊字符

 - [ ] ( )
- 安全限值

URDF中可以为关节设置安全限值Safety Limits ,可以通过添加safety controller来设置关节运动控制的限制。
以下Panda机器人head pan joint中的一个safety controller

<safety_controller k_position="100" k_velocity="1.5" soft_lower_limit="-2.857" soft_upper_limit="2.857"/>

这里给关键添加了一个软限位,soft_lower_limitsoft_upper_limit, 在具体控制这个关节运动的时候MoveIt会将关节实际物理的硬限位(根据URDF描述得到)和这里定义的软限位比较,取小。

注意: 如果soft_lower_limitsoft_upper_limit值设为0.0,则关节将无法运动。

- 碰撞检测

MoveIt会通过URDF中给的link的三维模型(mesh标签)来检测碰撞。在URDF中,对于一个link可以配置2个mesh元素,一个是在visual元素下,另一个在collision元素下。碰撞检测会利用collision元素下的mesh,visual中的mesh只是用于Rviz可视化。

    <link name="${arm_id}_link0">
      <visual>
        <geometry>
          <mesh filename="package://${description_pkg}/meshes/visual/link0.dae"/>
        </geometry>
      </visual>
      <collision>
        <geometry>
          <mesh filename="package://${description_pkg}/meshes/collision/link0.stl"/>
        </geometry>
      </collision>
    </link>

为了提高碰撞检测的效率,可以将collision中的mesh分辨率适当降低(减小3D模型三角面的数量),从而减少计算量。而对于visual中的mesh,可以使用较高的分辨率,从而提高模型显示的质量 (更好看一点)。


- 检查URDF

ROS提供了一个检查URDF语法的工具 http://wiki.ros.org/urdf#Verification
安装工具

sudo apt-get install liburdfdom-tools

执行检查

check_urdf pr2.urdf

如果一切正常,将会有如下显示:

robot name is: pr2
---------- Successfully Parsed XML ---------------
root Link: base_footprint has 1 child(ren)
    child(1):  base_link
        child(1):  base_laser_link
        child(2):  bl_caster_rotation_link
            child(1):  bl_caster_l_wheel_link
            child(2):  bl_caster_r_wheel_link
        child(3):  br_caster_rotation_link
            child(1):  br_caster_l_wheel_link
            child(2):  br_caster_r_wheel_link
        child(4):  fl_caster_rotation_link
            child(1):  fl_caster_l_wheel_link
            child(2):  fl_caster_r_wheel_link
        child(5):  fr_caster_rotation_link
            child(1):  fr_caster_l_wheel_link
            child(2):  fr_caster_r_wheel_link
        child(6):  torso_lift_link
            child(1):  head_pan_link
                child(1):  head_tilt_link
                    child(1):  head_plate_frame
                        child(1):  sensor_mount_link
                            child(1):  double_stereo_link
                                child(1):  narrow_stereo_link

相关文章

网友评论

      本文标题:MoveIt教程5 - 机器人描述文件(I) URDF

      本文链接:https://www.haomeiwen.com/subject/llgxkctx.html