xacro(XML Macro)
定義
xacro(XML Macro)是 URDF 的前處理展開機制,不是新的描述格式——用 property(類似變數)、macro(類似函式,可帶參數重複呼叫)、include(檔案引用)撰寫的 .xacro 檔案,在被 robot_state_publisher 等工具真正讀取之前,會先被展開成一份不含任何 xacro 語法的標準 URDF。
關鍵特性
- 只在展開階段生效:property 是純文字替換,展開完成後就固定寫死在最終 URDF 裡,不是執行期間可調整的變數,這跟 ROS2 Parameter 是完全不同的機制。
- macro 解決重複結構:多足機器人的每條腿、雙臂機器人的左右手臂,可以只定義一次 macro,帶不同參數(例如
prefix)呼叫多次,避免大量幾乎相同的複製貼上。 - 由上往下解析:property 必須定義在第一次被引用之前,順序寫反會出現「找不到定義」的錯誤。
使用情境
- 部件數量多、或有明顯重複結構(多足、多指、多台同款機器人)的模型,幾乎都會用 xacro 而不是手寫 URDF。