一、ROS 2 介紹
ROS 2 (Robot Operating System 2) 是 ROS 的下一代版本,專門為機器人應用提供:
-
通訊中介:基於 DDS (Data Distribution Service),支援多平台即時分散式通訊。
-
跨平台:支援 Linux、Windows、macOS,也能搭配 micro-ROS 在微控制器上運行。
-
模組化設計:機器人系統可拆分成多個 node(節點),透過 topic/service/action 進行通訊。
-
常見應用:
-
感測器整合(IMU、LiDAR、Camera)
-
機器人模擬(Gazebo, Ignition)
-
移動規劃與導航(Nav2, MoveIt2)
-
自動化控制(differential drive, manipulator arm)
-
在 ROS 2 中,機器人的描述通常使用 URDF 或 Xacro 檔案來定義機械結構。
二、URDF 介紹
URDF (Unified Robot Description Format) 是一種 XML 格式,用來描述機器人模型,包括:
-
Link(連桿)
-
機器人的剛體部分,例如底盤、輪子、手臂。
-
可以定義質量 (mass)、慣性 (inertia)、外觀 (visual)、碰撞模型 (collision)。
-
-
Joint(關節)
-
定義連接兩個 link 的方式。
-
類型:revolute(轉動)、prismatic(直線滑動)、continuous(無限制旋轉)、fixed(固定)。
-
-
Sensor(感測器)
-
可以在 URDF 裡嵌入 plugin(例如 camera、LiDAR)。
-
範例(簡化版四輪車底盤與輪子):
三、Xacro 介紹
Xacro (XML Macros) 是一種擴展 URDF 的語法,讓 URDF 更靈活:
-
可重複使用:用
<xacro:macro>
定義模板。 -
參數化:用
<xacro:property>
定義可調整的參數。 -
計算能力:可以用數學運算(
*
,/
,+
,-
)。
Xacro 檔會在執行時轉換成標準 URDF。
範例(輪子模板):
四、ROS 2 中的使用方式
-
Xacro 轉 URDF
-
啟動 robot_state_publisher(讓 RViz/Gazebo 讀取模型)
-
整合 Gazebo 模擬
-
在 URDF/Xacro 中加上
<gazebo>
plugin。 -
用
ros2 launch
啟動 Gazebo 與模型。
-
要不要我幫你整理一張 URDF vs Xacro 功能比較表(表格形式),讓你一眼就看懂它們的差異?
沒有留言:
張貼留言