Revolute关节
说明¶
revolute
表明此关节具备的功能就是旋转,两个link
通过一个joint
连接后,两个link就具备旋转的功能了。
基本配置¶
<?xml version="1.0"?>
<robot name="mybox">
...
<joint name="joint0" type="revolute">
<parent link="base_link"/>
<child link="link1"/>
<limit effort="30" velocity="1.0" lower="-3.1415926" upper="3.1415926" />
</joint>
</robot>
joint
的作用是用来连接link
的。
joint标签属性¶
name
属性为必填项,也是唯一值,表明关节的名称。revolute
属性为表达的是 两个link
连接的方式为 旋转。
parent和child子标签¶
-
parent
和child
子标签代表的是两个要连接的link
,和link
中的name
对应。 -
parent
和child
还表明了谁接在谁上面,child
接在parent
上。在此处将parent
作为参照物,child
围绕parent进行旋转。
limit子标签¶
limit
主要是限制child
的旋转的范围。
lower
和upper限制
了旋转的弧度范围effort
限制的是转动过程中的受力范围.(正负value值,单位为牛
或N
)velocity
限制了转动时的速度,单位为米/秒
或m/s
旋转位姿¶
位置¶
<joint name="joint0" type="revolute">
<origin xyz="0 0 1" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="link1"/>
<limit effort="30" velocity="1.0" lower="-3.1415926" upper="3.1415926" />
</joint>
Tip
体会origin
标签中xyz
坐标的参考坐标系
是谁?
origin
标签中xyz
坐标的参考坐标系
是parent
对应的link
所在的参考坐标系。
<?xml version="1.0"?>
<robot name="mybox">
<material name="red">
<color rgba="1.0 0 0 1.0"/>
</material>
<material name="green">
<color rgba="0 1.0 0 1.0"/>
</material>
<link name="base_link">
<visual>
<origin xyz="0 0 0.5" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.2 1"/>
</geometry>
<material name="red"/>
</visual>
</link>
<link name="link1">
<visual>
<origin xyz="0 0 0.5" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.2 1"/>
</geometry>
<material name="green"/>
</visual>
</link>
<joint name="joint0" type="revolute">
<origin xyz="0 0 1" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="link1"/>
<limit effort="30" velocity="1.0" lower="-3.14" upper="3.14" />
</joint>
</robot>
Tip
体会 joint
和parent
,child
间坐标系的相对关系。
joint
的origin
坐标系位姿,是相对于parent
对应link
所在的坐标系的。如果parent
对应的link
是根,那么这个相对坐标系就是世界坐标系。
child
对应的参考坐标系是joint
.
姿态¶
<joint name="joint0" type="revolute">
<origin xyz="0 0 1" rpy="0 0 1.57"/>
<parent link="base_link"/>
<child link="link1"/>
<limit effort="30" velocity="1.0" lower="-3.14" upper="3.14" />
</joint>
<origin xyz="0 0 1" rpy="0 1.57 1.57"/>
Tip
体会 旋转是围绕谁的?
joint
中rpy
的旋转,指的是child
对应的link
,围绕当前joint
坐标系的轴进行旋转。
旋转轴¶
<joint name="joint0" type="revolute">
<origin xyz="0 0 1" rpy="0 0 1.57"/>
<axis xyz="1 0 0"/>
<parent link="base_link"/>
<child link="link1"/>
<limit effort="30" velocity="1.0" lower="-3.14" upper="3.14" />
</joint>
Tip
axis
规定了旋转的轴向。此处值为三个,分别代表了x轴,y轴,z轴的向量值。轴向就是三个向量和的轴向.
默认值为1 0 0
,表示围绕x
轴旋转。
0 1 0
表示围绕y轴
旋转
0 0 1
表示围绕z轴
旋转