從 Xacro → URDF → RViz/Gazebo 的流程圖,用 Mermaid 表示:
流程說明
-
撰寫 Xacro
-
使用巨集(macro)、參數(property)設計機器人模型。
-
範例:
my_robot.xacro
-
-
轉換為 URDF
-
robot_state_publisher
-
讀取 URDF,根據
joint_state
資訊發布 TF(座標變換)。 -
讓 RViz2/Gazebo 可以正確顯示機器人模型。
-
-
RViz2
-
顯示靜態/動態模型,用於視覺化與除錯。
-
-
Gazebo
-
載入模型並套用物理引擎(摩擦力、重力、慣性)。
-
可加入感測器 plugin(相機、LiDAR、IMU)。
功能/特性 | URDF (Unified Robot Description Format) | Xacro (XML Macros) |
---|---|---|
格式 | 標準 XML | XML + 巨集擴充 (macro) |
用途 | 直接描述機器人模型 | 生成 URDF 的工具,提供參數化與重複使用能力 |
靈活性 | 固定格式,內容較冗長 | 支援參數、巨集、條件判斷、運算式,靈活度高 |
重複結構 | 需手動複製貼上,容易冗長 | 可用 <xacro:macro> 定義輪子/關節等模板,簡潔可維護 |
參數化 | 不支援,所有值需手動輸入 | 支援 <xacro:property> 定義參數,可在啟動時帶入不同值 |
運算能力 | 不支援,必須手動計算數值 | 可使用數學運算 (+ , - , * , / ) 直接運算 |
典型使用 | 小型簡單機器人(幾個 link/joint) | 複雜機器人(多輪、多 sensor、多關節) |
轉換方式 | 直接使用 .urdf 檔 |
需先用 ros2 run xacro xacro file.xacro -o file.urdf 轉成 URDF 才能用 |
相容性 | ROS 1 / ROS 2 皆支援 | 本質上會被轉換成 URDF,因此最終也完全相容 |
沒有留言:
張貼留言