Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

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 座標轉換樹

相關術語

  • ROS
  • Transform
  • Coordinate Frame

相關專案

  • 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

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。