2025年3月10日 星期一

ROS 主要指令介紹與功能參數說明

指令主要用途
rosservice管理 ROS 服務 (Services),用於呼叫、查詢、管理 ROS 服務
rosparam管理 ROS 參數 (Parameters),用於設定、查詢、刪除參數
roslaunch啟動多個 ROS 節點,可同時啟動多個節點與設定參數
rosrun單獨啟動 ROS 節點,適合測試特定節點
rostopic管理 ROS Topics,可查詢、發送、訂閱 ROS Topics
rosnode管理 ROS 節點,查詢、關閉、監視 ROS Nodes

這些指令是 ROS 開發中 最常用的工具


ROS 主要指令介紹與功能參數說明

以下是 ROS (Robot Operating System) 常用的指令,包含其 功能、參數說明


1. rosservice - 服務管理

功能

  • 用於 查詢、呼叫和管理 ROS 服務 (Services)。
  • ROS 服務 是一種 請求-回應 (Request-Response) 模式的通訊機制。

常用指令

指令功能
rosservice list列出所有可用的 ROS 服務
rosservice call /service_name [args]呼叫指定的 ROS 服務
rosservice type /service_name查詢某個服務的型別
rosservice find [service_type]找出所有該型別的服務
rosservice info /service_name顯示該服務的詳細資訊
rosservice args /service_name顯示該服務所需的參數

範例

bash
rosservice call /gazebo/unpause_physics

讓 Gazebo 物理引擎繼續運行


2. rosparam - 參數管理

功能

  • 用於 存取和管理 ROS 參數伺服器 (Parameter Server)
  • 參數伺服器用來 存放全域變數,如機器人設定、控制參數等

常用指令

指令功能
rosparam list列出所有 ROS 參數
rosparam get /param_name取得特定參數的值
rosparam set /param_name value設定參數值
rosparam delete /param_name刪除參數
rosparam dump file.yaml將參數存入 YAML 檔案
rosparam load file.yaml從 YAML 檔案載入參數
rosparam has /param_name檢查參數是否存在

範例

bash
rosparam list | grep robot_arm_controller

檢查 robot_arm_controller 是否存在於參數伺服器


3. roslaunch - 啟動多個 ROS 節點

功能

  • 用於 啟動 ROS 節點 (nodes) 及載入參數、設定環境變數
  • 一次可啟動多個節點。

常用指令

指令功能
roslaunch package_name launch_file.launch執行 Launch 檔案
roslaunch --screen package_name launch_file.launch顯示節點執行過程
roslaunch package_name launch_file.launch param:=value指定參數值
roslaunch package_name launch_file.launch gui:=true啟動 GUI 介面

範例

bash
roslaunch robot_arm_urdf robot_arm_control.launch

啟動 robot_arm_control.launch 來控制機械手臂


4. rosrun - 執行 ROS 節點

功能

  • 直接執行 ROS 節點 (Node),通常用於 單獨測試某個節點
  • 只需提供 Package 名稱執行檔名稱

常用指令

指令功能
rosrun package_name node_name執行某個 ROS 節點
rosrun package_name node_name _param:=value執行時指定參數
rosrun package_name node_name --help顯示該節點的幫助資訊

範例

bash
rosrun controller_manager spawner robot_arm_controller

手動啟動 robot_arm_controller 控制器


5. rostopic - 主題管理

功能

  • 用於 查詢、發送、監聽 ROS Topics
  • Topics 為 ROS 主要的通訊方式 (發佈/訂閱模型)。

常用指令

指令功能
rostopic list列出所有目前的 Topics
rostopic echo /topic_name訂閱 Topic 並顯示其訊息
rostopic info /topic_name顯示該 Topic 的詳細資訊
rostopic type /topic_name查詢該 Topic 的訊息類型
rostopic pub /topic_name msg_type "data"發送 Topic 訊息
rostopic hz /topic_name顯示 Topic 的發送頻率
rostopic bw /topic_name顯示該 Topic 的頻寬使用情況

範例

bash
rostopic pub -1 /rosbot_arm_control/command trajectory_msgs/JointTrajectory ' joint_names: ["joint_1", "joint_2", "joint_3"] points: - positions: [0.2, -0.5, 0.8] time_from_start: {secs: 5, nsecs: 0}'

手動發送 Joint Trajectory 指令


6. rosnode - 節點管理

功能

  • 用於 查詢與管理 ROS 節點 (Nodes)

常用指令

指令功能
rosnode list列出所有正在運行的 ROS 節點
rosnode info /node_name顯示該節點的詳細資訊
rosnode ping /node_name測試該節點是否運作
rosnode kill /node_name關閉特定節點
rosnode machine顯示節點所在的機器

範例

bash
rosnode list

列出目前正在運行的所有 ROS 節點



沒有留言:

張貼留言