URDF
- 又稱: Unified Robot Description Format
- 類別: Software & tooling › Tools & formats
- 標籤: robot-description, ros
用來表示機器人模型(包括幾何與運動學)的 XML 格式。
定義
統一機器人描述格式(Unified Robot Description Format)是一種 XML 格式,把機器人描述成一棵由關節連接剛性連桿的樹。每個連桿帶有三種獨立的幾何:要繪製什麼、要拿什麼來做碰撞判定,以及物理模擬所使用的慣性特性;每個關節則宣告其類型、軸向、極限,以及到父連桿的座標轉換。
正是這種結構讓機器人能在不同工具之間移植。同一個檔案驅動正向與逆向運動學求解器,提供運動規劃器所需的碰撞檢查,建立模擬器中的模型,並告訴視覺化工具每個部件要畫在哪裡。沒有共用的描述,每個工具都需要為同一台機器建立自己的模型,而它們會逐漸分歧。
它的限制值得了解。URDF 描述的是樹狀結構,而不是封閉迴路,因此 delta 手臂與四連桿等並聯機構無法直接表達。它沒有感測器、外觀以外之材料或傳動機構的概念,這就是為什麼實際的設定都會擴充它:xacro 加入巨集與參數,讓大型檔案易於管理,模擬器專用的標籤則承載標準所遺漏的內容。MuJoCo 的格式 MJCF 涵蓋了部分相同的範圍,並支援封閉鏈與更豐富的接觸建模。
在本目錄中,專案是否發布 URDF,決定了它的 3D 模型究竟能否被呈現,這就是為什麼它是一項驗證檢查,而不只是錦上添花。
為何重要
URDF 是向軟體描述機器人實體結構的檔案格式:連桿、關節、幾何、質量,以及感測器裝在哪裡。它之所以重要,是因為它是模擬、視覺化、運動學與運動規劃全都會讀取的單一事實來源。把它做對,MoveIt、Gazebo 與 RViz 對機器人的認知就會一致;把某個尺寸弄錯,它們每一個都會信心十足、一模一樣地出錯,而且沒有任何東西會標示出這個差異。
主要應用
- 在 Gazebo、Isaac Sim 與以 MuJoCo 為基礎的工具中進行模擬
- 運動規劃,MoveIt 從它推導出運動學與碰撞幾何
- 在 RViz 與網頁檢視器中進行視覺化
- 正向與逆向運動學求解器,它們直接讀取關節鏈
- 數位孿生,讓模擬模型與硬體保持一致
- 以其他工具能使用的形式分享機器人設計
實際應用
典型的 URDF 由 CAD 產生,或以 XML 手寫,然後通常會包在 Xacro 裡,讓兩支相同手臂之類的重複結構不必複製兩次。每個連桿帶有用於顯示的視覺幾何、為了速度而刻意簡化的獨立碰撞幾何,以及用於動力學的慣性特性。最常見的實務錯誤,一是把完整的視覺網格直接當成碰撞網格,讓規劃慢如爬行;二是慣性數值只是看似合理的佔位值,讓模擬機器人的行為與真實機器人毫無相似之處。
常見誤解
- URDF 只描述外觀:它帶有決定模擬物理行為的碰撞幾何與慣性特性
- 視覺網格與碰撞網格應該一致:碰撞幾何是刻意簡化的,使用精細的網格會嚴重拖慢規劃效能
- URDF 支援任何機器人拓撲:它描述的是樹狀結構,因此封閉的運動迴路需要變通做法或其他格式
- URDF 正確就代表機器人準確:它描述的是設計,而不是帶有公差與撓曲的實際製成品
誰需要了解
- 任何把新機器人帶進 ROS、模擬或 MoveIt 的人
- 從 CAD 匯出機器人模型的工程師
- 在除錯模擬機器人與真實機器人行為不一致問題的開發者
- 學習機器人描述如何供應整套工具鏈的學生
- 任何規劃器意外緩慢或回報幽靈碰撞的人
相關技術
- XACRO(URDF 的 XML 巨集前處理器)
- SDF(Simulation Description Format)
- MJCF(MuJoCo XML 格式)
- RViz
- Gazebo
- MoveIt
- ros2_control
- tf2 座標轉換樹
相關術語
相關專案
- SolidCraft: Open-source parametric 3D CAD in Rust that exports robot assemblies to URDF
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenMower: Open-source project converting commercial mowers into autonomous RTK-GPS guided robots
- PlotJuggler: Fast time-series visualization tool for ROS topics, rosbags, and robot debugging
- ROS 2: Next-gen Robot Operating System for real-time production robotics
- Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
影片
- How do we describe a robot? With URDF!: Articulated Robotics