在 ROS + Gazebo 環境中,使用 Xacro (XML Macro) 格式來編寫機器人模型能夠提高可讀性與可重用性。下面將介紹 Xacro 編寫工具、開發流程與轉換 URDF 的步驟。
1. Xacro 編寫工具
在撰寫 Xacro (.xacro
) 文件時,可以使用以下工具:
(1)文本編輯器
你可以使用任何文字編輯器來撰寫 Xacro 文件:
- VS Code(推薦) → 可安裝
ROS Extension
來支援語法高亮。 - Sublime Text → 輕量級編輯器,適合快速修改。
- Vim / Nano → 適用於終端操作。
(2)Gazebo 與 RViz
這兩個工具可以幫助你可視化機器人的 Xacro / URDF 模型:
- Gazebo:用於物理模擬,測試機器人的行為。
- RViz:用於可視化機器人模型的結構和狀態。
(3)URDF / Xacro 轉換與檢查工具
- 檢查 Xacro 文件是否正確
- 轉換 Xacro 為 URDF
- 檢視 URDF 結構
- 在 RViz 渲染 URDF
2. Xacro 編寫與轉換流程
(1)建立 Xacro 文件結構
通常一個機器人的 Xacro 檔案會有以下結構:
(2)撰寫 myrobot.xacro
Xacro 主要由 <link>
、<joint>
、<xacro:macro>
等組成,示例如下:
(3)撰寫 macros.xacro
(巨集)
Xacro 允許自定義巨集函式,可以簡化重複的 link
或 joint
定義:
這樣就能用:
來簡化模型,而不需要手動寫多次 link
和 joint
。
(4)轉換 Xacro 成 URDF
當 Xacro 編寫完成後,執行:
來轉換成 URDF 格式。
如果轉換成功,可以使用以下指令檢查 URDF:
(5)在 Gazebo 或 RViz 測試
如果 URDF 正確,接下來可以在 Gazebo 或 RViz 測試:
在 RViz 渲染
在 Gazebo 模擬
然後將 myrobot.urdf
加入 Gazebo 來測試模擬環境。
3. Xacro 開發流程總結
✅ 1. 設計機器人模型
- 繪製機器人的結構,決定
link
和joint
。
✅ 2. 撰寫 Xacro
- 定義
myrobot.xacro
,使用<xacro:macro>
優化重複部分。 - 引入
materials.xacro
、macros.xacro
、myrobot.gazebo
。
✅ 3. 轉換成 URDF
✅ 4. 在 Gazebo / RViz 測試
✅ 5. 進行調整
- 修改
Xacro
文件,重複執行 (步驟 3 ~ 4) 測試。
4. 其他 Xacro 進階技巧
使用
arg
參數化模型這樣可以統一修改機器人某些屬性。
條件判斷
允許根據變數來決定是否加入某些元件。
結論
- Xacro 讓 URDF 更有結構化,避免重複編寫程式碼。
- 利用 Xacro 巨集(
<xacro:macro>
)可以簡化link
和joint
的定義。 - 開發流程:
- 撰寫 Xacro
- 轉換 URDF
- 測試與調整(Gazebo / RViz)
- 工具推薦:
- VS Code + ROS Extension(開發)
- Gazebo / RViz(可視化)
- Xacro 轉換工具(檢查與轉換)
沒有留言:
張貼留言