Universal Robotic Description Format Specification3 *link*

Universal Robotic Description Format Specification2 *Link*


本章是URDF系列第三章,介绍link element


1. link

The link element describes a rigid body with an inertia, visual features, and collision properties.

 <link name="my_link">
   <inertial>
     <origin xyz="0 0 0.5" rpy="0 0 0"/>
     <mass value="1"/>
     <inertia ixx="100"  ixy="0"  ixz="0" iyy="100" iyz="0" izz="100" />
   </inertial>

   <visual>
     <origin xyz="0 0 0" rpy="0 0 0" />
     <geometry>
       <box size="1 1 1" />
     </geometry>
     <material name="Cyan">
       <color rgba="0 1.0 1.0 1.0"/>
     </material>
   </visual>

   <collision>
     <origin xyz="0 0 0" rpy="0 0 0"/>
     <geometry>
       <cylinder radius="1" length="0.5"/>
     </geometry>
   </collision>
 </link>

link element,上面这个例子包含了视觉效果,质量属性, 碰撞属性。
注意:
(1). Attributes name in link element is required. The name of the link itself.
(2). inertial is optional and defaults to a zero mass and zero inertia if not specified.
(3). xyz defaults to zero vector and rpy defaults to identity if not specified, 与关节原点位置重合,旋转一致
(4). visual is optional, multiple instances of visual tags can exist for the same link.
(5). collision frame and inertial frame and visual frame is relative to the link reference frame, namely the joint frame.
(6). material == color, mesh == dae, stl, …3D mesh files.

2. Multiple Collision Bodies

It was decided that URDFs should not support multiple groups of collision bodies, even though there are sometimes applications for this. The URDF is intended to only represent the actual robot’s properties, and not collisions used for external things like controller collision checking. In a URDF, the elements should be as accurate as possible to the real robot, and the elements should still be a close approximation, albeit with far fewer triangles in the meshes.

If you do need courser-grain, over sized collision geometries for things like collision checking and controllers, you can move these meshes/geometries to custom XML elements. For example, if your controllers need some special rough collision checking geometry, you could add the tag <collision_checking> after the element:

 <link name="torso">
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robot_description/meshes/base_link.DAE"/>
      </geometry>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="-0.065 0 0.0"/>
      <geometry>
        <mesh filename="package://robot_description/meshes/base_link_simple.DAE"/>
      </geometry>
    </collision>
    <collision_checking>
      <origin rpy="0 0 0" xyz="-0.065 0 0.0"/>
      <geometry>
        <cylinder length="0.7" radius="0.27"/>
      </geometry>
    </collision_checking>
    <inertial>
      ...
    </inertial>
  </link>  

NOTE: A URDF will ignore these custom elements like “collision_checking”, and your particular program can parse the XML itself to get this information.
也就是说 collision尽量简化, 对于更加粗粒度的碰撞检测,可以使用collision_checking elements,这个s代表任意其他,ros的urdf parser只会处理 inertial visual collision三个,即像collision_checking这种,需要你自己写的parser来识别提取这个element中的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值