10.3 joint
元素joint用于描述关节的运动学和动力学属性。
10.3.1 <joint>元素
<joint>元素用于描述关节的运动学和动力学属性,此外还可以指定关节的安全限制(safety limits)。
下面是一个<joint>元素的示例:
<joint name="my_joint" type="floating">
<origin xyz="0 0 1" rpy="0 0 3.1416"/>
<parent link="link1"/>
<child link="link2"/>
<calibration rising="0.0"/>
<dynamics damping="0.0" friction="0.0"/>
<limit effort="30" velocity="1.0" lower="-2.2" upper="0.7" />
<safety_controller k_velocity="10" k_position="15" soft_lower_limit="-2.0" soft_upper_limit="0.5" />
</joint>
10.3.2 属性
<joint>元素具有以下两个属性:
(1)name属性
是必须指定的属性,用于指定关节的唯一名称。
(2)type属性
是必须指定的属性,用于指定关节类型,可以是以下六种关节类型之一:
● 旋转(revolute)关节—沿轴旋转并具有由上限和下限指定的有限旋转范围的铰链关节。
● 连续(continuous)关节—绕轴旋转且没有上下限的连续铰链关节。
● 棱柱(prismatic)关节—沿轴滑动且具有由上限和下限指定的有限滑动范围的滑动关节。
● 固定(fixed)关节—并不是真正的关节,因为它不能移动。这种类型的关节其所有自由度都被锁定。这种类型的关节不需要轴、校准、动力学、限制或安全控制器。
● 浮动(floating)关节—这种关节允许所有6个自由度的运动。
● 平面(planar)关节—这种关节允许在垂直于轴的平面内运动。
10.3.3 子元素
<joint>元素有以下9个子元素:<origin>、<parent>、<child>、<axis>、<calibration>、<dynamics>、<limit>、<mimic>和<safety_controller>。
1、<origin>子元素
可选子元素,用于指定从父级链接到子级链接的坐标变换。关节参考坐标系的原点就位于子级链接参考坐标系的原点,如上图所示。如果未指定,则默认与子级链接的原点相同。
该元素可以用以下两个子元素来描述:
①xyz
可选子元素,用于表达关节参考坐标系原点对子级链接参考坐标系原点在xyz三个轴上的偏移量,默认为0向量。所有偏移量的单位均为米。
②rpy
可选子元素,用于表达关节坐标系绕xyz三个固定轴的旋转角度即横滚角(roll)、俯仰角(pitch)和偏航角(yaw),单位为弧度。如果未指定该子元素的值,则默认情况下为0向量,即不绕三个轴旋转或与子级链接参考坐标系的三个轴方向相同。
2、<parent>子元素
必须指定的子元素,该子元素用必须指定其值的属性link来指定此关节的父级链接名称,即在机器人树形结构中作为此关节的父级链接的链接名称。
3、<child>子元素
必须指定的子元素,该子元素用必须指定其值的属性link来指定此关节的子级链接名称,即在机器人树形结构中作为此关节的子级链接的链接名称。
4、<axis>子元素
可选子元素,默认值为(1,0,0)。用于指定关节坐标系中的关节轴。对于旋转关节或连续关节而言就是其旋转轴,对于棱柱关节而言就是其平移滑动轴,对于平面关节而言就是其表面法线。轴是在关节参考坐标系中指定的。固定关节和浮动关节不会使用axis字段。
具有一个必须指定的子元素xyz,用于指定关节轴,其值是一个向量,该向量的3个分量分别对应xyz三个轴,且该向量必须是一个归一化的向量,即只有其中1个分量的值为1,其余2个分量的值均为0。
5、<calibration>子元素
可选子元素,用于指定关节的参考位置,该参考位置会用于校准关节的绝对位置。
此子元素具有以下2个可选属性:
(1)rising
当关节向正方向移动时,此参考位置将会触发上升。
(2)falling
当关节向反方向移动时,此参考位置将会触发下降。
6、<dynamics>子元素
可选子元素,用于指定关节的物理(动力学)属性。这些元素的值用于指定关节的建模属性,对仿真特别有用。
此子元素具有以下2个可选属性:
(1)damping
可选属性,默认值为0。用于指定关节的物理阻尼值。
(2)friction
可选属性,默认值为0。用于指定关节的物理静摩擦。
7、<limit>子元素
仅对旋转关节和棱柱关节是必须的,用于指定关节限制。此子元素可以包含以下属性:
一个<limit>子元素可以含有以下属性:
(1)lower属性
可选属性,默认值为0。该属性用于指定关节的下限值(对于旋转关节而言其单位为弧度,而对于棱柱关节而言其单位为米)。如果是连续关节,则会省略此属性。
(2)upper属性
可选属性,默认值为0。该属性用于指定关节的上限值(对于旋转关节而言其单位为弧度,而对于棱柱关节而言其单位为米)。如果是连续关节,则会省略此属性。
(3)effort属性
必选属性,用于强制执行关节最大作用力。参见safety limits。
(4)velocity属性
必选属性,用于强制执行关节最大速度。参见safety limits。
8、<mimic>子元素
可选子元素,是ROS Groovy及其后续发行版的新元素。
此标签用于指定某个定义的关节模仿另一个现有关节。此关节的值可以用公式value = multiplier * other_joint_value + offset进行计算。 该子元素具有以下预期和可选属性:
(1)joint属性
必选属性,用于指定要模仿的关节名称。
(2)multiplier属性
可选属性,用于指定上述计算公式中的乘数。
(3)offset属性
可选属性,用于指定要添加到上述计算公式中的偏移量。默认值为0(对旋转关节而言其单位为弧度,对棱柱关节而言其单位为米)。
9、<safety_controller>子元素
可选子元素,可以含有以下属性:
(1)soft_lower_limit属性
可选属性,默认值为0。该属性用于指定关节的下限(边界),安全控制器将会从该下限值开始限制关节的位置。这个限制值要大于关节<limit>元素的lower属性值(见上文)。有关更多详细信息,请参阅安全限制。
(2)soft_upper_limit属性
可选属性,默认值为0。该属性用于指定关节的上限(边界),安全控制器将会从该上限值开始限制关节的位置。这个限制值要小于关节<limit>元素的upper属性值(见上文)。有关更多详细信息,请参阅安全限制。
(3)k_position属性
可选属性,默认值为0。该属性用于指定位置和速度限制之间的关系。有关更多详细信息,请参阅安全限制。
(4)k_velocity属性
必选属性,用于指定作用力(effort)和速度限制之间的关系。有关更多详细信息,请参阅安全限制。
评论(0)
您还未登录,请登录后发表或查看评论