welcom ! Handel home

2025年1月16日 星期四

Gazebo ROS Topics 說明

 在 ROS (Robot Operating System) 中,Gazebo 透過 ROS topics 來與模擬環境進行資料傳輸。以下是 ros_gazebo 相關 topics 的用途與備註:


Gazebo ROS Topics 說明

Topic 名稱用途備註
/clock提供模擬時間Gazebo 使用模擬時間,與 ROS 的 ros::Time::now() 配合使用。
/gazebo/link_states發佈所有連結 (links) 的狀態資訊包括每個連結的名稱、位置、方向、速度等。
/gazebo/model_states發佈所有模型 (models) 的狀態資訊包括機器人或物體的位置、方向等,類似 /gazebo/link_states 但對應於整個模型。
/gazebo/parameter_descriptionsGazebo 參數的描述資訊用於描述 Gazebo 參數,通常與 parameter_updates 配合使用。
/gazebo/parameter_updatesGazebo 參數的更新資訊當 Gazebo 參數變更時,此 topic 會發佈更新資訊。
/gazebo/performance_metricsGazebo 模擬效能指標例如 FPS、CPU 使用率等,適用於監測模擬效能。
/gazebo/set_link_state設定 Gazebo 內某個連結的狀態允許透過 ROS 設定某個 link 的位置、方向等。
/gazebo/set_model_state設定 Gazebo 內某個模型的狀態允許透過 ROS 設定整個 model (機器人或物體) 的位置、方向等。
/rosoutROS 記錄訊息 (log)用於記錄 ROS 節點的輸出訊息。
/rosout_agg聚合後的 ROS 記錄訊息整合不同來源的 /rosout 訊息,方便查看。

應用範例

  1. 取得機器人當前的位置

    bash:
    rostopic echo /gazebo/model_states

    這將輸出所有模型的位置與方向。

  2. 設定機器人到特定位置

    bash:
    rostopic pub -1 /gazebo/set_model_state gazebo_msgs/ModelState '{model_name: "robot", pose: { position: { x: 1.0, y: 2.0, z: 0.0 } } }'

    這會將名為 "robot" 的模型移動到 (x=1.0, y=2.0, z=0.0)

  3. 監測模擬效能

    bash:
    rostopic echo /gazebo/performance_metrics

    這將顯示 FPS、CPU 使用率等資訊。


這些 Topics 在 Gazebo 與 ROS 整合時非常重要,讓模擬環境可以與 ROS 節點互動、獲取狀態資訊、修改模型位置,並監測模擬效能。

沒有留言: