描述连杆的运动学和动力学性质,描述包含惯量矩阵、可视化信息等的刚体连杆。
下面是一个简单的例子:
<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>
属性:name
连杆的名字。
连杆的转动惯量矩阵
1)、 < origin> (optional: defaults to identity if not specified)
定义转动惯量矩阵参考坐标系相对于连杆坐标系的变换矩阵。转动惯量矩阵参考坐标系的原点
必须在连杆重心处,其坐标轴可与惯性主轴不平行。
xyz (optional: defaults to zero vector)
原点偏置量
rpy (optional: defaults to identity if not specified)
原点坐标轴的RPY角度。
2)、< mass>
连杆的质量
3)、< inertia>
连杆的惯性张量矩阵。由六个独立的量组成:ixx, ixy, ixz, iyy, iyz, izz
连杆的可视化属性。用来指定连杆显示的形状(正方形、长方形、球形等)。同一连杆可以由
多个形状组成。
1)、name (optional)
连杆几何形状的名称。
2)、 < origin> (optional: defaults to identity if not specified)
可视化连杆组件的参考坐标系相对于连杆坐标系的参考坐标系。
xyz (optional: defaults to zero vector)
原点偏置量
rpy (optional: defaults to identity if not specified)
原点坐标轴的RPY角度。
3)、 < geometry> (required)
可视化对象的形状。可选项为:
< box>
长方体,包括长、宽、高,原点 origin 是其中心。
< cylinder>
圆柱体,包括半径、长度,原点 origin 在其中心。
< sphere>
球体,包括半径,原点 origin 在其中心。
< mesh>
网格,由文件决定,同时又由 scale 界定其对齐边界。推荐使用 Collada .dae 文件。 .stl
文件也支持。必须是一个本地文件。
4)、 < material> (optional)
可视化组件的材料。可以在顶层 ‘robot’ 组件中定义,然后在 link 中通过其名字引用。
name
材料的名字。
< color> (optional)
rgba
颜色,,由 red/green/blue/alpha 组成,每一个数字在 [0,1] 内。
< texture> (optional)
材料的质感,由文件定义。
连杆的碰撞属性。碰撞属性和连杆的可视化属性不同,简单的碰撞模型经常用来简化计算。同
一个连杆可以有多个碰撞属性标签。连杆的碰撞属性表示由其定义的几何图形集构成。
1)、name (optional)
一部分连杆几何形状的名称
2)、< origin> (optional: defaults to identity if not specified)
碰撞组件的参考坐标系相对于连杆坐标系的参考坐标系。
xyz (optional: defaults to zero vector)
原点偏置量
rpy (optional: defaults to identity if not specified)
原点坐标轴的RPY角度。
3)、
查看上述 < visual> -> < geometry> 部分的相关解释。
使用 ROS motion planning 功能包。
如果控制器需要碰撞检测,可以在 < collision> 组件后面添加 < collision_checking> 标签
<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>