welcom ! Handel home

2025年3月2日 星期日

(Robot_arm)robotxtest5_ws 中 啟動 ROS node 與 topic 作用介紹

robotxtest5_ws 中 啟動 ROS nodetopic 作用介紹

你的 ROS 環境 目前在 Gazebo 模擬中運行了一個機械手臂系統,從 rosnode listrostopic list 的輸出,我們可以分析系統中各個 節點 (node)主題 (topic) 的作用。


1️⃣ rosnode list 解析

這個指令列出了目前運行中的 ROS 節點

bash
/controller_spawner /gazebo /gazebo_gui /robot_state_publisher /rosout /rqt_gui_py_node_509564 /tf_footprint_base
節點名稱功能
/controller_spawner啟動 ROS 控制器 (ros_control),負責載入關節控制 (joint_trajectory_controller)
/gazeboGazebo 物理模擬核心
/gazebo_guiGazebo 圖形介面 (GUI)
/robot_state_publisher根據 /joint_states 計算機械手臂的 TF (坐標變換),用於 RViz 顯示
/rosoutROS 系統日誌 (log),所有節點都會寫入 /rosout
/rqt_gui_py_node_509564rqt 工具的 GUI 介面 (應該是 rqt_graphrqt_joint_trajectory_controller)
/tf_footprint_base靜態 TF 變換 (base_footprintbase_link),通常用於機器人定位

2️⃣ rostopic list 解析

這個指令列出了目前正在發布與訂閱的 ROS Topic

bash
/clock /gazebo/link_states /gazebo/model_states /gazebo/parameter_descriptions /gazebo/parameter_updates /gazebo/performance_metrics /gazebo/set_link_state /gazebo/set_model_state /joint_states /rosout /rosout_agg /statistics /tf /tf_static

Gazebo 相關 Topic

Topic 名稱功能
/clockGazebo 的模擬時間,所有節點都依賴這個時間戳
/gazebo/link_states發布 Gazebo 內所有 link (連結) 的狀態 (位置、速度)
/gazebo/model_states發布 Gazebo 內所有模型 (robot) 的狀態
/gazebo/parameter_descriptionsGazebo 參數說明
/gazebo/parameter_updatesGazebo 參數變更
/gazebo/performance_metricsGazebo 模擬效能指標
/gazebo/set_link_state設定某個 link (連結) 的狀態 (如位置變更)
/gazebo/set_model_state設定某個 模型 (robot) 的狀態 (如位置變更)

機械手臂控制相關

Topic 名稱功能
/joint_states發布所有關節 (joint) 的狀態 (位置、速度、力矩)
/tf發送 TF 變換,讓 RViz 和其他節點獲取機械手臂的當前位置
/tf_static發送 靜態 TF 變換,這些變換不會改變 (如 base_linkbase_footprint)

ROS 系統資訊

Topic 名稱功能
/rosoutROS 節點的 日誌輸出
/rosout_aggrosout聚合版本,用於分析所有節點的輸出
/statisticsROS 系統統計資訊 (如 CPU、記憶體使用率)

3️⃣ 重點解析

  • 如果要觀察機械手臂的當前狀態

    bash
    rostopic echo /joint_states
    • 會顯示 各個關節的當前角度、速度、力矩
  • 如果要查看 Gazebo 內的機械手臂位置

    bash
    rostopic echo /gazebo/model_states
    • 會顯示機械手臂 在 Gazebo 內的世界座標 (x, y, z, 方向角)
  • 如果要讓機械手臂移動

    • 檢查 /robot_arm_controller/command 是否存在 (rostopic list)。
    • 如果存在,發送 JointTrajectory 訊息。
  • 如果 TF 無法顯示機械手臂

    bash
    rostopic echo /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

可以開始測試機械手臂的運動!🚀


沒有留言: