ROS rosnode
& rostopic
列表解析與功能說明
在你的 ROS 2 環境中,你使用了 rosnode list
和 rostopic list
來檢查當前系統中正在運行的 節點(nodes) 和 話題(topics)。以下是這些 ROS 組件的詳細解析、功能說明及其相互關聯。
1️⃣ rosnode list
:當前運行的 ROS 節點
節點(Node) 是 ROS 中的最小運算單元,每個節點可以發布或訂閱 topics
,執行服務 services
,或是控制機器人的某些行為。
節點名稱 | 功能 | 相關話題(topics) |
---|---|---|
/gazebo | Gazebo 模擬器的核心節點 | /gazebo/* (如 /gazebo/model_states ) |
/gazebo_gui | Gazebo 的圖形介面 | 無專屬話題,但與 /gazebo 互動 |
/joint_state_publisher | 負責發布機器人的關節狀態 | /joint_states |
/move_group | MoveIt! 運動規劃的核心節點,負責運動控制 | /move_group/* (如 /move_group/display_planned_path ) |
/robot_state_publisher | 負責發布機器人模型的 TF 變換資訊 | /tf , /tf_static |
/rosout | 記錄與監控 ROS 日誌,所有節點的錯誤與日誌都會透過此節點管理 | /rosout , /rosout_agg |
/rviz_* | RViz 可視化節點,用於顯示機器人的狀態與運動規劃 | /rviz_*/* (如 /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update ) |
📌 關聯說明:
/gazebo
與/gazebo_gui
共同管理 Gazebo 模擬環境,並透過/gazebo/*
話題與其他節點溝通。/move_group
與/rviz_*
結合,負責 機械臂運動規劃並透過 RViz 顯示規劃結果。
2️⃣ rostopic list
:當前可用的 ROS 話題
話題(Topics) 是 ROS 中節點之間的通訊方式,負責傳遞不同類型的資料,如機器人狀態、感測器數據、控制訊號等。
📌 Gazebo 相關話題
話題名稱 | 功能 | 來源節點 |
---|---|---|
/clock | Gazebo 內部的時鐘(模擬時間) | /gazebo |
/gazebo/link_states | 機器人各個連結(Link)的狀態 | /gazebo |
/gazebo/model_states | 機器人與環境中的模型狀態(位置、旋轉) | /gazebo |
/gazebo/set_link_state | 設定 Gazebo 內的 Link 狀態 | /gazebo |
/gazebo/set_model_state | 設定 Gazebo 內的模型狀態(位移) | /gazebo |
📌 關聯說明:
/gazebo/model_states
和/gazebo/link_states
提供 機器人與環境內所有物件的狀態,這些數據可供 MoveIt! 使用,進行碰撞檢測。
📌 MoveIt! 運動規劃相關話題
話題名稱 | 功能 | 來源節點 |
---|---|---|
/move_group/display_planned_path | 顯示運動規劃的路徑(用於 RViz) | /move_group |
/move_group/monitored_planning_scene | 監控規劃場景的變更(環境、障礙物) | /move_group |
/move_group/planning_scene_monitor/parameter_descriptions | MoveIt! 規劃參數描述 | /move_group |
/move_group/planning_scene_monitor/parameter_updates | MoveIt! 規劃參數更新 | /move_group |
/planning_scene | 完整的機器人規劃場景資訊 | /move_group |
/planning_scene_world | 環境中的物件資訊 | /move_group |
📌 關聯說明:
/move_group/display_planned_path
是 MoveIt! 與 RViz 之間的通訊橋樑,當 MoveIt! 規劃路徑時,這個話題會發布資訊,讓 RViz 顯示結果。
📌 TF(座標變換)相關話題
話題名稱 | 功能 | 來源節點 |
---|---|---|
/tf | 動態 TF 變換(機器人關節的即時位置) | /robot_state_publisher |
/tf_static | 靜態 TF 變換(機器人的固定座標系) | /robot_state_publisher |
📌 關聯說明:
/tf_static
用於定義機器人的 固定關節(如 base_link)。/tf
用於 即時變換資訊,例如機械臂運動時的關節位置更新。
📌 控制與感測器數據
話題名稱 | 功能 | 來源節點 |
---|---|---|
/joint_states | 關節角度、速度、力矩資訊 | /joint_state_publisher |
/cmd_vel | 機器人運動控制指令(線速度與角速度) | 控制器節點 |
/collision_object | 移動機器人的碰撞物件資訊 | /move_group |
/recognized_object_array | 識別到的物件(例如相機感測到的障礙物) | 感測器節點 |
📌 關聯說明:
/joint_states
由/joint_state_publisher
提供,這些數據供 MoveIt! 進行運動規劃與仿真。/cmd_vel
是移動機器人時的控制指令,通常來自 導航節點或 Joystick 控制節點。
3️⃣ rosnode
& rostopic
關聯圖
以下是 ROS 主要節點與話題的關聯圖:
📌 總結
類別 | 關鍵節點 | 重要話題 |
---|---|---|
Gazebo 模擬 | /gazebo | /gazebo/model_states , /clock |
MoveIt! 運動規劃 | /move_group | /move_group/display_planned_path , /planning_scene |
TF 變換 | /robot_state_publisher | /tf , /tf_static |
機器人狀態 | /joint_state_publisher | /joint_states |
控制與感測 | /cmd_vel , /collision_object | /recognized_object_array |
🚀 這樣就能更清楚地理解 ROS 節點與話題之間的互動! 🎯
沒有留言:
張貼留言