URDF vs USD:机器人描述格式的演进与生态对比(2024-2026)
一、背景概述
URDF(Unified Robot Description Format)自 ROS 诞生以来一直是机器人社区的标准描述格式。然而,随着机器人仿真从简单的运动学验证转向大规模并行训练、Sim-to-Real 迁移和物理 AI,URDF 的局限性日益凸显。与此同时,NVIDIA 力推的 OpenUSD(Universal Scene Description)正在从影视和工业可视化领域向机器人仿真生态渗透,形成了 URDF vs USD 的技术路线之争。
本文基于 2024-2026 年的最新资料,系统梳理两大格式的现状、局限、替代方案和生态支持情况。
二、URDF 的局限性分析
2.1 设计初衷与当前需求的脱节
URDF 诞生于 2006 年左右,最初是为 ROS 的机器人运动学描述而设计。其 XML 结构只支持树状的刚性链接拓扑,主要编码以下信息:
- 运动学树(link/joint 层级结构)
- 惯性参数(mass, inertia matrix)
- 碰撞和视觉几何(mesh/primitive)
- 关节类型和限制(revolute, prismatic, continuous 等)
但随着机器人技术的发展,以下局限性变得不可忽视:
2.2 核心局限
1. 不支持闭环机构
URDF 严格限定为树状结构,无法原生表达并联机构、四足机器人的闭合运动链(closed kinematic chains)。需要借助 ros2_control 或仿真器层面的变通处理。
2. 缺乏语义和传感器描述
URDF 没有标准方式描述传感器(摄像头、LiDAR、IMU)、传动系统(transmission)、控制器接口等。这些信息需要通过 ros2_control 的额外 YAML 配置或 Gazebo 插件来补充。
3. 不支持环境场景
URDF 只描述单个机器人本体,无法描述场景中的其他物体、障碍物、地面等。
4. 不支持材质/物理属性
没有标准字段描述表面摩擦系数、弹性恢复系数、材质类型等物理交互参数。
5. 缺乏可扩展性
URDF 的 XML schema 没有提供命名空间或扩展机制,第三方工具难以在不破坏兼容性的前提下添加自定义字段。
6. 缺乏统一的多机器人描述
对多机器人系统、可更换末端执行器等场景的支持极为有限。
三、URDF 的替代方案与演进方向
3.1 SDFormat(Simulation Description Format)
Gazebo 团队主导的 SDFormat 是 URDF 最直接的”升级替代”。与 URDF 相比,SDF 的优势包括:
- 支持世界/场景描述:不仅能描述机器人,还能描述完整场景(光照、物理参数、物体布局)
- 支持闭环机构:通过
<joint>的闭合链拓扑支持 - 更好的物理参数表达:内置摩擦、阻尼、弹性等物理属性
- 模态化设计:支持 plugin 扩展
现状:Gazebo Garden/Harmonic 默认使用 SDFormat 1.9/1.10,ROS 2 的 robot_state_publisher 和 joint_state_publisher 目前已支持从 SDF 读取信息。SDFormat 仓库(gazebosim/sdformat)在 GitHub 上获得了 214 星。
3.2 MJCF(MuJoCo XML Format)
Google DeepMind 的 MuJoCo 物理引擎原生使用 MJCF 格式。其主要特点:
- 更简洁的紧凑语法:MJCF 比 URDF 更简洁,同样描述的机器人 MJCF 文件通常更短
- 原生关节执行器(actuator)支持:将执行器作为一类元素,而不是 URDF 中需要通过 transmission 桥接
- 更好的数值稳定性:MJCF 在描述惯性、关节摩擦等方面更精确
- 闭环拓扑支持:通过
<equality>和<tendon>元素原生支持
现状:MuJoCo Menagerie(google-deepmind/mujoco_menagerie,★3720)收录了大量高质量 MJCF 格式的机器人模型,包括 Franka Panda、Unitree H1/G1、ANYmal、Shadow Hand 等。
3.3 URDD(Universal Robot Description Directory)
2025 年 12 月,Klein-Seetharaman 和 Rakita 在 arXiv 上发表了《Beyond URDF: The Universal Robot Description Directory for Shared, Extensible, and Standardized Robot Models》(arXiv:2512.23135)。
URDD 的核心思路是:不从格式上取代 URDF,而是在 URDF 之上构建一个模块化的 JSON/YAML 目录,自动从 URDF 中提取和衍生更丰富的机器人信息(运动学、动力学、可视化等),并提供 Rust(Bevy)和 JavaScript(Three.js)的参考实现。
关键观点:
- URDF/SDF/MJCF/USD 都只编码基础的几何、运动学和动力学信息
- 下游应用需要重复推导更丰富的数据,导致冗余和碎片化
- URDD 作为一个”组织器”(directory),而非”格式”(format),提供统一的扩展机制
3.4 URDF 2.0 或类似倡议
目前没有官方定义的”URDF 2.0”标准。GitHub 搜索 “URDF 2.0” 返回 0 个匹配项目。ROS 社区的共识似乎是:不升级 URDF,而是转向 SDFormat 作为新一代标准。
ROS 2 的规划中明确将 SDFormat 视为未来方向,在 ROS 2 J-Turtle 及后续版本中,SDF 支持正在逐步增强。
四、NVIDIA 推动 USD 在机器人领域应用
4.1 NVIDIA 的 OpenUSD 战略
OpenUSD(Universal Scene Description)最初由 Pixar 开发用于电影制作,NVIDIA 将其作为 Omniverse 平台的核心数据层,并大力推动其在机器人领域的应用。
关键举措:
1. SimReady 标准
NVIDIA 提出了 SimReady(仿真就绪)标准——基于 OpenUSD 的高保真 3D 资产标准,包含物理准确的材质、运动学和行为数据。SimReady 资产在 NVIDIA 的 Hugging Face 仓库中已有近 1000 个 OpenUSD 资产。
2. Isaac Sim 的 URDF/MJCF/USD 互转
Isaac Sim 内置了 URDF Importer 和 MJCF Importer,可以将 URDF/MJCF 转换为 USD 格式。同时也有 USD to URDF 导出功能(2026 年 4 月发布的 Isaac Sim 6.0.0 中还存在导出 bug,i.e. issue #668:导出空 robot name)。
3. Newton 物理引擎
NVIDIA 在 GTC 2026 上宣布 Newton 1.0 GA(newton-physics/newton,★5182)。这是一个基于 OpenUSD 作为公共数据层的模块化物理引擎,统一了 MuJoCo solver(Google DeepMind)、Kamino solver(Disney Research)和 NVIDIA 自家的 GPU 加速求解器。
4.2 NVIDIA 博客核心内容
在《3 Easy Ways to Supercharge Your Robotics Development Using OpenUSD》中,NVIDIA 阐述了三个核心场景:
- 数据摄入(Data Ingestion):将 CAD、URDF、传感器数据统一转换为 USD,作为机器人管线的通用数据层
- 数据聚合(Data Aggregation):利用 USD 的层(layer)机制组合数千物体的大规模虚拟场景
- SimReady:统一格式的即插即用资产,跨 Isaac Sim、Isaac Lab 等整个 NVIDIA 物理 AI 栈
4.3 USD 对机器人的优势
- 层(Layer)机制:可以将机器人模型(来自 URDF)、场景(来自 CAD)、传感器数据分别作为独立的层叠加
- 复杂场景管理:支持含数十万物体的巨型场景,适合大规模并行训练
- 丰富的元数据:描述材质、物理属性、语义标签等
- 跨工具链互操作:从 3D 建模(Blender/Maya)到仿真到 AI 训练的全流程统一
4.4 USD 的挑战
- 学习曲线陡峭:USD 的概念(prim, layer, composition arc, variant set)比 URDF 复杂得多
- 文件体积大:USD 文件通常比等价的 URDF 大得多
- 工具链不成熟:机器人专用工具还较少,生态仍在建设中
- 非 ROS 原生:ROS 的核心工具链仍以 URDF/SDF 为主
五、ROS 社区对 URDF 未来的讨论
5.1 社区共识方向
通过 ROS Discourse 搜索和 GitHub 讨论,社区的主要观点如下:
- 长期趋势:ROS 2 正逐步从 URDF 迁移到 SDFormat 作为主要描述格式
- SDF 优先已纳入 ROS 2 路线图:一些关键包(
robot_state_publisher)已开始支持 SDF - URDF 不会立即消失:大量现有工具(MoveIt 2, Navigation2, ros2_control)仍然依赖 URDF
- 无官方 URDF 2.0 计划:社区不计划定义 URDF 2.0,而是建议用户迁移到 SDF
5.2 ROS Discourse 上的相关讨论
在 ROS Discourse 搜索到 17 个相关话题,包括:
- SolidWorks URDF Exporter 2.0 的用户调查(帮助改进导出工具)
- LinkForge 1.2.0:集中化的 ros2_control 仪表盘和惯性精度工具
- MoveIt 2 的 Alpha 版本发布
5.3 关于 USD 进入 ROS 生态的看法
ROS 社区对 USD 持谨慎观察态度。USD 的复杂性和非 XML 特性使其难以直接融入 ROS 工具链。目前的主要集成方式是:
- 在 Isaac Sim 中通过 ROS 2 Bridge 连接
- NVIDIA 提供 URDF ↔ USD 转换工具
- 部分研究团队在探索 USD-based 的机器人描述管线
六、主流仿真平台对 URDF 和 USD 的支持情况对比
6.1 一览表
| 平台 | URDF | SDFormat | MJCF | USD/OpenUSD | 备注 |
|---|---|---|---|---|---|
| Isaac Sim | ✅ 原生导入/导出 | ✅ 部分支持 | ✅ MUJocoConverter | ✅ 原生格式 | 以 USD 为核心,URDF/MJCF 通过转换工作 |
| MuJoCo | ✅ 可通过 compile 导入 |
❌ | ✅ 原生格式 | ❌ | URDF 导入有限制(闭环、执行器缺失) |
| Gazebo (Garden+) | ✅ 导入支持(有限) | ✅ 原生格式 | ❌ | ✅ 实验性支持 | SDFormat 是原生格式 |
| PyBullet | ✅ 原生加载 (loadURDF) |
❌ | ❌ | ❌ | 以 URDF 为主要输入格式 |
| Isaac Lab | ✅ 通过 Isaac Sim 间接支持 | ❌ | ✅ 通过 Menagerie | ✅ 原生格式 | 在 Isaac Sim 之上,继承 USD 支持 |
6.2 详细分析
Isaac Sim / Isaac Lab
- 原生格式:OpenUSD
- 通过 URDF Importer 工具将 URDF 转换为 USD
- 通过
mujoco_usd_converter将 MJCF 转换为 USD - 内置了来自 FANUC、Yaskawa、Universal Robots、ABB、KUKA 的 USD 机器人资产
- Isaac Lab 在 2026 年 7 月的 PR #5908 中正在添加”使用 MuJoCo Menagerie 资产在 Isaac Lab 环境上基准测试”的功能
- 使用 Newton 或 PhysX 作为物理后端
MuJoCo (Google DeepMind)
- 原生格式:MJCF(扩展名 .xml)
- URDF 支持:可通过
mujoco.compile将 URDF 转换为 MJCF - MuJoCo Menagerie(★3720)提供了 100+ 个高质量的 MJCF 机器人模型
- 不直接支持 USD
- 牛顿物理引擎的 MJWarp solver 基于 MuJoCo,可让 MuJoCo 模型在 Isaac Lab 上运行
Gazebo (Open Robotics)
- 原生格式:SDFormat(自 Gazebo 11+ 起)
- URDF:可以在运行时 spawn URDF 模型,但有功能限制(如 self-collision 问题,issue #2957、#3261)
- SDF 1.9+ 主要特性:关节执行器、物理属性、传感、场景描述
- USD 支持:实验性,作为可能扩展讨论中
PyBullet / Bullet3
- 原生格式:URDF(最常用的输入格式)
- 提供
loadURDF()和loadMJCF()接口 - 不直接支持 USD
- 适合快速原型验证,不适合大规模分布式训练
6.3 选型建议
| 使用场景 | 推荐格式 | 推荐平台 |
|---|---|---|
| ROS 2 机器人开发 | URDF / SDF | Gazebo + RViz |
| 大规模并行 RL 训练 | USD / MJCF | Isaac Lab + Newton |
| 高保真物理仿真 (manipulation) | MJCF | MuJoCo |
| 多机器人协同仿真 | USD | Isaac Sim |
| 快速原型/教学 | URDF | PyBullet |
| 工业级仿真验证 | USD (SimReady) | Isaac Sim + ROS 2 Bridge |
七、2024-2026 年关键事件时间线
| 时间 | 事件 |
|---|---|
| 2024-Q1 | NVIDIA 发布 Isaac Sim 2023.1,增强 URDF Importer |
| 2024-Q2 | ROS 2 Humble 正式将 SDFormat 加入机器人描述支持 |
| 2024-Q3 | MuJoCo Menagerie 突破 3000 GitHub Stars |
| 2024-Q4 | NVIDIA GTC 宣布 Isaac Lab 1.0 |
| 2025-Q1 | 多家机器人厂商(FANUC, Yaskawa, UR)在 NVIDIA 上发布 USD 格式的数字孪生资产 |
| 2025-Q2 | Gazebo Harmonic 发布,默认 SDFormat 1.9 |
| 2025-Q3 | NVIDIA Hugging Face 仓库达近 1000 OpenUSD 资产 |
| 2025-Q4 | ROS 2 Rolling 增强 SDF 在 robot_state_publisher 中的支持 |
| 2025-12 | URDD 论文发表(Beyond URDF: The Universal Robot Description Directory) |
| 2026-Q1 | NVIDIA GTC 发布 Newton 1.0 GA,统一 MuJoCo/Kamino/GPU 求解器 |
| 2026-04 | Isaac Sim 6.0.0 发布,新增 MJCF 转换器 |
| 2026-06 | 论文《Extracting Semantics: LLM-Guided Automatic Population of Robot Ontology from URDF》发表 |
| 2026-06 | 论文《From USD Scenes to Knowledge Graphs: Zero-Shot Ontology Grounding with LLMs》发表 |
八、结论与展望
8.1 核心结论
- URDF 不会短期消亡,但长期将被 SDFormat(ROS 生态内)和 USD(NVIDIA 生态内)取代
- 没有官方的”URDF 2.0”——社区共识是迁移而非升级
- NVIDIA 正通过 Isaac Sim/Newton/USD 三重布局,推动 OpenUSD 成为机器人仿真的通用数据层
- ROS 社区更倾向 SDFormat 作为 URDF 的自然进化方向
- MJCF 在 manipulation 领域有不可替代的地位,被 Google DeepMind 和 NVIDIA 同时支持
- 多格式互转成为刚需,URDF ↔ USD ↔ MJCF ↔ SDF 之间的转换工具链正在快速完善
8.2 趋势判断
- 短期(1-2年):URDF 仍然是 ROS 项目的主流格式,但 SDF 支持会持续加强
- 中期(2-4年):USD 在 NVIDIA 生态中成为事实标准,通过 ROS 2 Bridge 实现与 ROS 的集成
- 长期(4年+):机器人描述格式将走向统一,OpenUSD 凭借其强大的场景描述和层级机制最有望成为通用标准
8.3 需关注的项目
- URDD(Universal Robot Description Directory):格式中立的数据组织方案
- Newton Physics Engine:NVIDIA 的模块化物理引擎,统一了 MuJoCo 和 Kamino
- mechaverse(jurmy24/mechaverse,★236):浏览器内 URDF/MJCF/USD 渲染
- mujoco_menagerie(google-deepmind/mujoco_menagerie,★3720):高质量 MJCF 模型集合
- Isaac Lab(isaac-sim/IsaacLab,★7655):统一机器人学习框架
九、参考资源
论文
- Beyond URDF: The Universal Robot Description Directory (arXiv:2512.23135, 2025-12)
- Extracting Semantics: LLM-Guided Automatic Population of Robot Ontology from URDF (arXiv:2606.17073, 2026-06)
- From USD Scenes to Knowledge Graphs: Zero-Shot Ontology Grounding with LLMs (arXiv:2606.09134, 2026-06)
代码仓库
- isaac-sim/IsaacLab(★7655):https://github.com/isaac-sim/IsaacLab
- google-deepmind/mujoco_menagerie(★3720):https://github.com/google-deepmind/mujoco_menagerie
- newton-physics/newton(★5182):https://github.com/newton-physics/newton
- bulletphysics/bullet3(★14601):https://github.com/bulletphysics/bullet3
- gazebosim/sdformat(★214):https://github.com/gazebosim/sdformat
- jurmy24/mechaverse(★236):https://github.com/jurmy24/mechaverse
官方文档
- NVIDIA Isaac Sim URDF Importer:https://docs.omniverse.nvidia.com/isaacsim/latest/features/urdf_importer.html
- 3 Easy Ways to Supercharge Your Robotics Development Using OpenUSD:https://developer.nvidia.com/blog/3-easy-ways-to-supercharge-your-robotics-development-using-openusd/
- ROS 2 URDF and SDF Documentation:https://docs.ros.org/en/rolling/Tutorials/Intermediate/URDF/URDF-and-SDF.html