URDF(Unified Robot Description Format)
URDF(Unified Robot Description Format)是一个基于XML的语法框架,用于在机器人操作系统(ROS)中描述和定义机器人模型。URDF文件通过一系列标签来定义机器人的结构、外观和物理属性。以下是URDF中主要标签的详细解释:
1. robot标签
- 定义:root标签,即根标签,用于包含整个URDF文件的内容。
- 属性:
name
:指定机器人模型的名称。
2. link标签
- 定义:用于描述机器人某个部件(也即刚体部分)的外观和物理属性,如底座、轮子、激光雷达、摄像头等。
- 属性:
name
:为连杆命名。
- 子标签:
<visual>
:描述连杆的外观属性。<geometry>
:设置连杆的形状,如立方体(<box>
)、圆柱体(<cylinder>
)、球体(<sphere>
)或自定义的3D模型(<mesh>
)。<origin>
:设置连杆的偏移量和旋转角度。<material>
:设置材质属性,如颜色(<color>
)和纹理(<texture>
)。
<collision>
:描述连杆的碰撞属性,可以与视觉属性一致,也可以不同。<inertial>
:设置连杆的质量、质心位置和中心惯性特性。
3. joint标签
- 定义:用于描述机器人关节的运动学和动力学属性,以及关节运动的安全极限。
- 属性:
name
:为关节命名。type
:指定关节的运动形式,如旋转关节(revolute
,有旋转角度限制;continuous
,可以绕单轴无限旋转)、滑动关节(prismatic
,沿某一轴线移动的关节,有位置极限)、平面关节(planar
,允许在平面正交方向上平移或旋转)、浮动关节(floating
,允许进行平移、旋转运动)和固定关节(fixed
,不允许运动的特殊关节)。
- 子标签:
<parent>
:指定父连杆的名字。<child>
:指定子连杆的名字。<origin>
:设置关节的偏移量和旋转角度。<axis>
:指定关节的旋转或移动轴。<limit>
:设置关节运动的限制范围、力矩限制和速度限制。
4. 其他常用标签
- :定义材质属性,可以在
<robot>
标签中定义,然后在<link>
中按名称进行引用。 - :设置rgba材质的颜色,由代表red/green/blue/alpha的四个数字组成,每个数字的范围为[0,1]。
- :设置材质的纹理,由
filename
属性指定纹理文件的路径。
5. 注意事项
- URDF文件必须保证XML语法的完整性,因此必须使用
<robot>
标签作为根标签,所有的<link>
和<joint>
以及其他标签都必须包含在<robot>
标签内。 - 在定义
<link>
时,需要为每个部件指定一个唯一的名称,并在<visual>
、<collision>
和<inertial>
等子标签中详细描述其外观、碰撞和物理属性。 - 在定义
<joint>
时,需要指定父连杆和子连杆的名字,并设置关节的运动形式、偏移量、旋转角度、移动轴和运动限制等参数。
通过合理使用这些标签和属性,可以在URDF文件中精确地描述机器人的结构、外观和物理属性,从而为后续的机器人仿真和控制提供基础。
URDF文件示例:
以下是一个详细的simple_robot.urdf
文件示例,它描述了一个简单的机器人模型,该模型包含一个底座(base_link)和一个可以在Z轴上旋转的摄像头(camera_link)。
<robot name="simple_robot">
<!-- 底座link -->
<link name="base_link">
<visual>
<geometry>
<box size="0.2 0.2 0.1"/> <!-- 设置底座为长方体,尺寸为0.2x0.2x0.1米 -->
</geometry>