標籤:
先啟動roscore
roscore
為了擷取節點資訊,可以使用rosnode命令
$ rosnode
擷取得一個可接受參數清單
使用rosrun命令啟動一個新的節點,如下所示
$ rosrun turtlesim turtlesim_node
我們可以看見出現了一個新視窗,視窗中間有一個小烏龜,如:
出現一個新節點
使用主題與節點互動
現在要使用一個節點,並讓節點做如下工作:
$ rosrun turtlesim turtle_teleop_key
通過節點訂閱的主題,我們可以用方向鍵移動烏龜,如:
為什麼turtle_teleop_key執行時,小海龜會移動?
使用以下命令查看主題清單
$ rostopic list
使用echo參數,可以查看節點發出的資訊。運行以下命令列並使用鍵盤出發訊息
$ rostopic echo /turtle1/cmd_vel
看到類似顯示
使用命令列擦好看訊息類型
rostopic type /turtle1/cmd_vel
如果你想看到訊息欄位,使用以下命令:
$ rosmsg show geometry_msgs/Twist
我們可以通過這些工具使用rostopic pub [topic] [msg_type] [args] 命令直接發布主題
$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- ‘[2.0, 0.0, 0.0]‘ ‘[0.0, 0.0, 1.8]‘
參數分析:
rostopic pub 這條命令將會發布訊息到某個給定的話題。
-1 (單個破折號)這個參數選項使rostopic發布一條訊息後馬上退出。
/turtle1/command_velocity 這是訊息所發布到的話題名稱。
turtlesim/Velocity 這是所發布訊息的類型。
-- (雙破折號)這會告訴命令選項解析器接下來的參數部分都不是命令選項。這在參數裡麵包含有破折號-(比如負號)時是必須要添加的。
2.0 1.8 正如之前提到的,在一個turtlesim/Velocity訊息裡麵包含有兩個浮點型元素:linear和angular。在本例中,2.0是linear的值,1.8是angular的值。這些參數其實是按照YAML文法格式編寫的,這在YAML文檔中有更多的描述。
小烏龜畫圓:
你可能已經注意到turtle已經停止移動了。這是因為turtle需要一個穩定的頻率為1Hz的命令流來保持移動狀態。我們可以使用rostopic pub -r命令來發布一個穩定的命令流
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- ‘[2.0, 0.0, 0.0]‘ ‘[0.0, 0.0, 1.8]‘
..使用 rostopic hz
rostopic hz命令可以用來查看資料發布的頻率。 用法: rostopic hz [topic]
我們看一下turtlesim_node發布/turtle/pose時有多快:
rostopic hz /turtle1/pose
現在我們可以知道了turtlesim正以大約60Hz的頻率發布資料給turtle。
使用ROS節點(五)