跳至主要内容

URDF 機器人模型

URDF 機器人模型

本篇介紹如何在 ROS 2 中,利用 URDF(Unified Robot Description Format)建立與設定機器人模型。

整體概念

機器人模型用來描述機器人的實體結構與幾何形狀。在 ROS 內,通常以 URDF 搭配 3D 模型(常見為 STL)構成描述:

  • STL:負責每個零件的網格與外觀
  • URDF:定義零件之間的關係、關節、物理屬性與座標轉換

什麼是 URDF?

URDF(Unified Robot Description Format) 是 ROS 中用來描述機器人系統的 XML 格式。

重點特色

  • 透過關節描述零件(link)如何連結
  • 包含轉換、慣性與物理屬性
  • 可引用 STL 檔顯示外觀
  • 以結構化的 XML 撰寫,易於維護

基本結構

URDF 檔以 <robot> 為根節點,內含 link 與 joint 定義:

URDF 結構

<robot name="robot_name">
<!-- Link definitions -->
<link name="link_name">
<visual>...</visual>
<collision>...</collision>
<inertial>...</inertial>
</link>

<!-- Joint definitions -->
<joint name="joint_name" type="revolute">
<parent link="link1"/>
<child link="link2"/>
<axis xyz="0 0 1"/>
<limit lower="-3.14" upper="3.14" effort="100" velocity="1.0"/>
</joint>
</robot>

在 RViz2 中檢視模型

調整 URDF 前,建議先確認如何在 RViz2 載入模型。


步驟指引

1. 啟動載入 URDF 的節點

將含有 URDF 的 node 啟動,讓 robot description 發佈到 ROS 參數伺服器。

2. 開啟 RViz2 並新增顯示項目

  • 於 RViz2 左下角點選 Add
  • 在清單中選擇 RobotModel

3. 設定 RobotModel

  • Description Source 設為 Topic
  • 確認 robot description 有正確發佈

4. 疑難排解

若畫面沒有顯示,可嘗試開關 Visual Enabled,通常就能重新繪製。

Links 區塊可以針對單一 link 開關顯示,方便專注在特定零件。


座標系與轉換

調整 URDF 前,建議先了解 ROS 2 的 TF2(轉換庫)。

右手定則

可以利用右手定則幫助判斷座標軸方向:

右手定則

拇指 → X 軸正方向
食指 → Y 軸正方向
中指 → Z 軸正方向

手指指向即為正方向,反向則為負方向。

小結

URDF 的常見用處:

  • 在 RViz2 呈現機器人
  • 供模擬與物理運算使用
  • 進行運動學/動力學計算
  • 進行校正與參數調整