robotxtest5_ws 中 啟動 ROS node
與 topic
作用介紹
你的 ROS 環境 目前在 Gazebo 模擬中運行了一個機械手臂系統,從 rosnode list
和 rostopic list
的輸出,我們可以分析系統中各個 節點 (node
) 和 主題 (topic
) 的作用。
1️⃣ rosnode list
解析
這個指令列出了目前運行中的 ROS 節點:
節點名稱 | 功能 |
---|---|
/controller_spawner | 啟動 ROS 控制器 (ros_control ),負責載入關節控制 (joint_trajectory_controller ) |
/gazebo | Gazebo 物理模擬核心 |
/gazebo_gui | Gazebo 圖形介面 (GUI) |
/robot_state_publisher | 根據 /joint_states 計算機械手臂的 TF (坐標變換),用於 RViz 顯示 |
/rosout | ROS 系統日誌 (log ),所有節點都會寫入 /rosout |
/rqt_gui_py_node_509564 | rqt 工具的 GUI 介面 (應該是 rqt_graph 或 rqt_joint_trajectory_controller ) |
/tf_footprint_base | 靜態 TF 變換 (base_footprint → base_link ),通常用於機器人定位 |
2️⃣ rostopic list
解析
這個指令列出了目前正在發布與訂閱的 ROS Topic:
Gazebo 相關 Topic
Topic 名稱 | 功能 |
---|---|
/clock | Gazebo 的模擬時間,所有節點都依賴這個時間戳 |
/gazebo/link_states | 發布 Gazebo 內所有 link (連結) 的狀態 (位置、速度) |
/gazebo/model_states | 發布 Gazebo 內所有模型 (robot) 的狀態 |
/gazebo/parameter_descriptions | Gazebo 參數說明 |
/gazebo/parameter_updates | Gazebo 參數變更 |
/gazebo/performance_metrics | Gazebo 模擬效能指標 |
/gazebo/set_link_state | 設定某個 link (連結) 的狀態 (如位置變更) |
/gazebo/set_model_state | 設定某個 模型 (robot) 的狀態 (如位置變更) |
機械手臂控制相關
Topic 名稱 | 功能 |
---|---|
/joint_states | 發布所有關節 (joint ) 的狀態 (位置、速度、力矩) |
/tf | 發送 TF 變換,讓 RViz 和其他節點獲取機械手臂的當前位置 |
/tf_static | 發送 靜態 TF 變換,這些變換不會改變 (如 base_link → base_footprint ) |
ROS 系統資訊
Topic 名稱 | 功能 |
---|---|
/rosout | ROS 節點的 日誌輸出 |
/rosout_agg | rosout 的 聚合版本,用於分析所有節點的輸出 |
/statistics | ROS 系統統計資訊 (如 CPU、記憶體使用率) |
3️⃣ 重點解析
如果要觀察機械手臂的當前狀態:
- 會顯示 各個關節的當前角度、速度、力矩。
如果要查看 Gazebo 內的機械手臂位置:
- 會顯示機械手臂 在 Gazebo 內的世界座標 (x, y, z, 方向角)。
如果要讓機械手臂移動:
- 檢查
/robot_arm_controller/command
是否存在 (rostopic list
)。 - 如果存在,發送
JointTrajectory
訊息。
- 檢查
如果
TF
無法顯示機械手臂:- 檢查是否有持續發送機械手臂的變換資訊。
4️⃣ 總結
類別 | 關鍵 node / topic | 作用 |
---|---|---|
Gazebo 物理模擬 | /gazebo /gazebo/model_states | 提供 Gazebo 內的機器人資訊 |
機械手臂狀態 | /joint_states /tf | 提供關節位置、坐標變換 |
控制器管理 | /controller_spawner | 負責啟動 ros_control |
系統日誌 | /rosout /statistics | 顯示 ROS 節點運行資訊 |
你的 ROS 環境目前正常運行 Gazebo + ros_control
+ TF,
可以開始測試機械手臂的運動!🚀
沒有留言:
張貼留言