welcom ! Handel home

2025年2月24日 星期一

(Robot_arm)ROS rosnode & rostopic 列表解析與功能說明

 ROS rosnode & rostopic 列表解析與功能說明

在你的 ROS 2 環境中,你使用了 rosnode listrostopic list 來檢查當前系統中正在運行的 節點(nodes)話題(topics)。以下是這些 ROS 組件的詳細解析、功能說明及其相互關聯


1️⃣ rosnode list:當前運行的 ROS 節點

bash
$ rosnode list

節點(Node) 是 ROS 中的最小運算單元,每個節點可以發布或訂閱 topics,執行服務 services,或是控制機器人的某些行為。

節點名稱功能相關話題(topics)
/gazeboGazebo 模擬器的核心節點/gazebo/* (如 /gazebo/model_states)
/gazebo_guiGazebo 的圖形介面無專屬話題,但與 /gazebo 互動
/joint_state_publisher負責發布機器人的關節狀態/joint_states
/move_groupMoveIt! 運動規劃的核心節點,負責運動控制/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 話題

bash
$ rostopic list

話題(Topics) 是 ROS 中節點之間的通訊方式,負責傳遞不同類型的資料,如機器人狀態、感測器數據、控制訊號等。

📌 Gazebo 相關話題

話題名稱功能來源節點
/clockGazebo 內部的時鐘(模擬時間)/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_descriptionsMoveIt! 規劃參數描述/move_group
/move_group/planning_scene_monitor/parameter_updatesMoveIt! 規劃參數更新/move_group
/planning_scene完整的機器人規劃場景資訊/move_group
/planning_scene_world環境中的物件資訊/move_group

📌 關聯說明

  • /move_group/display_planned_pathMoveIt! 與 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 主要節點與話題的關聯圖

bash
[ Gazebo ] ├──> /gazebo/model_states ───> [ MoveIt! ] ├──> /gazebo/link_states ├──> /gazebo/set_model_state └──> /clock [ MoveIt! (/move_group) ] ├──> /move_group/display_planned_path ───> [ RViz ] ├──> /move_group/monitored_planning_scene ├──> /planning_scene ├──> /collision_object ├──> /tf └──> /tf_static [ Joint State Publisher (/joint_state_publisher) ] ├──> /joint_states ───> [ MoveIt! + Gazebo ] [ Robot State Publisher (/robot_state_publisher) ] ├──> /tf ───> [ MoveIt! + Gazebo ] └──> /tf_static [ RViz (/rviz_*) ] ├──> /move_group/display_planned_path └──> /planning_scene

📌 總結

類別關鍵節點重要話題
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 節點與話題之間的互動! 🎯

沒有留言: