指令 | 主要用途 |
---|---|
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 | 顯示該服務所需的參數 |
範例
bashrosservice 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 | 檢查參數是否存在 |
範例
bashrosparam 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 介面 |
範例
bashroslaunch 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 | 顯示該節點的幫助資訊 |
範例
bashrosrun 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 的頻寬使用情況 |
範例
bashrostopic 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 | 顯示節點所在的機器 |
範例
bashrosnode list
列出目前正在運行的所有 ROS 節點。
沒有留言:
張貼留言