ROS2 基础:从零理解 URDF 机器人模型描述格式
在机器人开发中,URDF(Unified Robot Description Format)是构建数字孪生体的核心。作为 ROS2 中用于描述机器人几何形状、运动学特性及动力学属性的 XML 格式文件,它定义了机器人的身份与物理属性。没有 URDF,机器人硬件只是一堆无法被软件识别的零件。
一、URDF 的核心定位与功能
1. 核心定位:机器人的数字说明书
URDF 本质上是一份给计算机解析的机器人配置清单,明确了以下关键信息:
- 组成结构:底座、机械臂关节、车轮等刚体部件被称为连杆(link);
- 连接关系:关节如何旋转或固定,这些连接被称为关节(joint);
- 物理属性:每个部件的形状、质量、惯性矩阵以及碰撞边界;
- 运动约束:关节的运动范围与限制条件。
2. 四大核心应用场景
掌握 URDF 是进入 ROS2 仿真与控制领域的基础,主要支撑以下场景:
| 功能场景 | 具体作用 | 典型应用 |
|---|---|---|
| 可视化展示 | 在 RViz2 中渲染 3D 模型 | 直观查看设计效果 |
| 运动学计算 | 为正逆运动学求解提供参数 | 计算末端执行器位姿 |
| 仿真驱动 | 为 Gazebo 提供物理引擎数据 | 模拟真实物理交互 |
| 路径规划 | 为 MoveIt2 等规划器提供几何约束 | 避免自碰撞与环境碰撞 |
注意:标准 URDF 仅支持树形结构的机器人(无闭环)。若涉及并联机构等闭环结构,需结合 SRDF(语义机器人描述格式)进行扩展。
二、URDF 的基本结构:XML 格式的'零件清单'
URDF 是标准的 XML 文件,后缀通常为 .urdf。其结构呈树状:根节点 <robot> 下挂载若干 <link> 和 <joint>,辅以 <material> 等辅助节点。
1. 根节点:<robot>
所有 URDF 内容必须包裹在 <robot> 标签内。name 属性定义机器人名称(如 my_first_robot),该名称在系统中需保持唯一。
<?xml version="1.0"?>
<!-- 根节点:定义机器人名称 -->
<robot name="my_first_robot">
<!-- 下面放连杆、关节、材质等内容 -->
</robot>

