URDF 文件是一个标准的 XML 文件,在 ROS 中预定义了一系列的标签用于描述机器人模型,机器人模型可能较为复杂,但是 ROS 的 URDF 中机器人的组成却是较为简单,可以主要简化为两部分:连杆(link标签) 与 关节(joint标签), URDF 中的有以下不同标签:
在机器人建模领域,URDF(Unified Robot Description Format)是一种用于描述机器人模型的XML文件格式。在URDF文件中,`
- <robot name="my_robot">
-
-
-
-
-
- robot>
在上面的例子中,`
`` 标签用于描述机器人的刚体或部件,包括其几何形状、质量属性等。
`
- <robot name="my_robot">
-
- <link name="base_link">
- <!-- Link properties go here -->
- </link>
-
- <link name="end_effector">
- <!-- Link properties go here -->
- </link>
-
- <joint name="joint1" type="revolute">
- <!-- Joint properties go here -->
- <parent link="base_link"/>
- <child link="end_effector"/>
- </joint>
-
- </robot>
上述例子中,`
这只是一个简单的例子,实际的URDF文件会更加复杂,具体的内容会根据机器人的结构和特性而有所不同。通过使用 `
在URDF(Unified Robot Description Format)文件中,`` 元素用于描述机器人模型中的刚体或连接杆。每个 `` 元素定义了一个机器人的一个物理部分,包括它的几何形状、质量属性和其他相关信息。
以下是一个简单的 `` 元素的示例
- <link name="my_link">
-
-
- link>
在这个例子中,`` 元素有一个名为 "my_link" 的名称,可以用来唯一标识该链接。在 `` 标签内部,你可以定义该链接的属性,这些属性通常包括:
Visual Properties: 用于描述链接的外观,可以包括几何形状、颜色、纹理等。例如:
- <visual>
-
- <geometry>
-
- <box size="0.1 0.1 0.1"/>
-
- </geometry>
-
- <material name="red">
-
- <color rgba="1 0 0 1"/>
-
- </material>
-
- </visual>
Collision Properties: 用于描述链接在物理碰撞中的属性。通常与 `visual` 属性相似,但可能有不同的几何形状和分辨率。
- <collision>
-
- <geometry>
-
- <box size="0.1 0.1 0.1"/>
-
- </geometry>
-
- </collision>
Inertial Properties:用于描述链接的质量和惯性矩阵。
- <inertial>
-
- <mass value="1.0"/>
-
- <origin xyz="0 0 0" rpy="0 0 0"/>
-
- <inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
-
- </inertial>
其他属性:你还可以添加其他属性,例如传感器、附着点等。
实际的 `` 元素会包含一个或多个这样的子元素,具体取决于你对链接的描述。下面是一个简化的例子,包含了一个带有视觉、碰撞和惯性属性的链接:
- <link name="my_link">
-
- <visual>
-
- <geometry>
-
- <box size="0.1 0.1 0.1"/>
-
- </geometry>
-
- <material name="red">
-
- <color rgba="1 0 0 1"/>
-
- </material>
-
- </visual>
-
- <collision>
-
- <geometry>
-
- <box size="0.1 0.1 0.1"/>
-
- </geometry>
-
- </collision>
-
- <inertial>
-
- <mass value="1.0"/>
-
- <origin xyz="0 0 0" rpy="0 0 0"/>
-
- <inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
-
- </inertial>
-
- </link>
在URDF(Unified Robot Description Format)文件中,`
以下是一个 `
- <joint name="my_joint" type="revolute">
-
- <!-- Joint properties go here -->
-
- <parent link="link1"/>
-
- <child link="link2"/>
-
- </joint>
在这个例子中,`
在 `
Origin: 指定关节相对于父链接的位置和方向。
<origin xyz="0 0 0" rpy="0 0 0"/>
Axis: 对于旋转关节,指定旋转轴的方向。
<axis xyz="0 0 1"/>
Limit: 对于关节的角度或位移限制。
<limit lower="-3.14" upper="3.14" effort="10" velocity="3.14"/>
-Dynamics: 描述关节的动力学特性,如摩擦和阻尼。
<dynamics damping="0.01" friction="0.1"/>
其他属性: 你还可以添加其他属性,例如传感器、附着点等。
下面是一个带有更多关节属性的示例:
- <joint name="my_joint" type="revolute">
-
- <origin xyz="0 0 0" rpy="0 0 0"/>
-
- <parent link="link1"/>
-
- <child link="link2"/>
-
- <axis xyz="0 0 1"/>
-
- <limit lower="-3.14" upper="3.14" effort="10" velocity="3.14"/>
-
- <dynamics damping="0.01" friction="0.1"/>
-
- </joint>