百科wiki.ros.org今天
URDF 是什么?
一句话回答:URDF(Unified Robot Description Format,统一机器人描述格式)是 ROS 生态用来描述机器人“长什么样、怎么动”的 XML 文件,定义每个连杆(link)的质量惯量、外观和碰撞形状,以及连杆之间关节(joint)的类型、轴向和运动限制。 RViz 可视化、MoveIt 运动规划、Gazebo / Isaac Sim / MuJoCo 仿真都能读取 URDF。
文件结构
一个最小的 URDF 由 robot 根节点、若干 link 和连接它们的 joint 组成:
xml
<robot name="two_link_arm">
<link name="base_link">
<inertial>
<mass value="2.0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
</inertial>
<visual><geometry><box size="0.1 0.1 0.1"/></geometry></visual>
<collision><geometry><box size="0.1 0.1 0.1"/></geometry></collision>
</link>
<link name="link1"/>
<joint name="joint1" type="revolute">
<parent link="base_link"/>
<child link="link1"/>
<origin xyz="0 0 0.1" rpy="0 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="-3.14" upper="3.14" effort="30" velocity="2.0"/>
</joint>
</robot>| 元素 | 作用 |
|---|---|
link | 刚体连杆;inertial 给质量与惯性张量,visual 给外观网格,collision 给碰撞几何 |
joint | 连接父子连杆;origin 定义相对位姿,axis 定义转轴或移动方向 |
| 关节类型 | revolute(有限位转动)、continuous(无限位转动)、prismatic(直线移动)、fixed(固定)、floating、planar |
大型机器人的 URDF 一般用 xacro 宏生成,避免重复书写左右对称的腿和手臂。
URDF 里有关节力矩和速度信息吗?
有上限,没有实时状态。 joint 下的 <limit> 字段包含:
effort:关节最大力矩(转动关节,N·m)或最大力(移动关节,N);velocity:关节最大速度(rad/s 或 m/s);lower/upper:关节位置上下限。
URDF 不描述电机模型、减速比、摩擦辨识结果或实时的力矩与速度读数。这些要靠厂商 SDK 读取,或写进仿真器自己的格式,例如 MJCF 的 actuator。
为什么 URDF 不能描述并联机构?
URDF 要求连杆和关节构成一棵树,每个连杆只能有一个父关节,所以不能直接表达闭链,例如并联腿、四连杆、Delta 机构。常见处理方式:
- 用
mimic关节近似从动关节; - 换用支持闭链约束的格式,如 MuJoCo 的 MJCF(equality 约束)或 SDF;
- 在仿真器里额外添加约束,把树状 URDF 的末端“焊”在一起。
SolidWorks 怎么转 URDF?
ROS 官方维护 solidworks_urdf_exporter 插件:在装配体里按树状结构指定每个连杆和关节的坐标系与转轴,插件导出 URDF 和 STL 网格。导出后建议检查三点:
- 惯量是否来自真实材料属性,而不是默认密度;
- 碰撞几何最好换成简化的凸包或基本体,能明显加快仿真;
- 关节
limit是否填了真实的力矩与速度上限。
URDF 和 MJCF、USD 是什么关系?
| 格式 | 主要生态 | 特点 |
|---|---|---|
| URDF | ROS / MoveIt / Gazebo | 通用描述,树状结构,仿真参数少 |
| MJCF | MuJoCo | 支持执行器、肌腱、闭链约束与接触参数 |
| USD | NVIDIA Isaac Sim | 场景级格式,支持材质、物理与传感器 |
MuJoCo 可以直接编译加载 URDF,但正式仿真通常转成 MJCF 再补执行器参数,步骤见 MuJoCo Menagerie:URDF 转 MJCF 指南。
去哪找现成的机器人 URDF
- 机器人仿真资产库:主流人形、四足与机械臂的官方 URDF / MJCF / USD 链接
- MuJoCo Menagerie:DeepMind 维护的高质量 MJCF 模型集
- 在网页里预览 URDF:urdf-loaders
来源
本页事实对应的公开页面,以原文为准。
- ROS Wiki · urdf/XML/joint(joint 与 limit 字段定义)访问 2026-11-05
- ROS Wiki · urdf/XML/link(inertial / visual / collision)访问 2026-11-05