概述
首先我們重新溫習一下ROS術語。
命令 | 詳細說明 |
rostopic list | 顯示活動的話題目錄 |
rostopic echo [話題名稱] | 實時顯示指定話題的消息內容 |
rostopic find [類型名稱] | 顯示使用指定類型的消息的話題 |
rostopic type [話題名稱] | 顯示指定話題的消息類型 |
rostopic bw [話題名稱] | 顯示指定話題的消息帶寬(bandwidth) |
rostopic hz [話題名稱] | 顯示指定話題的消息數據發布周期 |
rostopic info [話題名稱] | 顯示指定話題的信息 |
rostopic pub [話題名稱] [消息類型] [參數] | 用指定的話題名稱發布消息 |
在運行ROS話題示例之前,請先關閉所有節點。通過在不同的終端窗口中分別運行以下命令來運行turtlesim_node和turtle_teleop_key。
roscore rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key
rostopic list:列出活動話題
rostopic list命令顯示當前正在發送和接收的所有話題的列表。
rostopic list
通過將“-v”選項添加到rostopic list命令,可以分開發布話題和訂閱話題,並將每個話題的消息類型一起顯示。
rostopic list -v
rostopic echo [話題名稱]:實時顯示指定話題的消息內容
以下示例實時顯示組成/turtle1/pose話題的x、y、theta、linear_velocity和angular_velocity的數據。
rostopic echo /turtle1/pose
rostopic find [類型名稱]:顯示使用指定類型的消息的話題
rostopic find turtlesim/Pose
rostopic type [話題名稱]:顯示指定話題的消息類型
rostopic type /turtle1/pose
rostopic bw [話題名稱]:顯示指定話題的消息數據帶寬(bandwidth)
在以下示例中,用於/turtle1/pose話題的數據帶寬平均為每秒1.25 KB。
rostopic bw /turtle1/pose
rostopic hz [話題名稱]:顯示指定話題的消息數據發布周期
在以下示例中,用戶可以檢查/turtle1/pose數據的發布周期。從結果可以看出,該消息以大約62.5Hz(0.016秒= 16毫秒)的頻率被發布。
rostopic hz /turtle1/pose
rostopic info [話題名稱]:顯示指定話題的信息
在以下示例中,用戶可以看到/turtle1/pose話題使用turtlesim/Pose消息類型,發布到/turtlesim節點,並且沒有實際訂閱的話題。
rostopic info /turtle1/pose
rostopic pub [話題名稱] [消息類型] [參數]:使用指定的話題名稱發布消息
以下是使用/turtle1/cmd_vel話題名稱發布類型為geometry_msgs/Twist的消息的示例。
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’
每個選項的描述如下。
- -1只發布一次消息(實際上只運行一次,但會像以前的結果一樣運行3秒)。
- /turtle1/cmd_vel 指定的話題名稱
- geometry_msgs/Twist 要發布的消息類型名稱
- -- ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’ 在x軸坐標上以每秒2.0 m的速度移動,以z軸為中心,每秒旋轉1.8rad
反映了發布的消息的畫面(忽略橫線那條)