⑴ ROS 計算圖級,理解ROS 節點、話題
計算圖級-------是 ROS 處理數據的一種點對點的網路形式。程序運行時,所有進程及它們所進行的數據處理,將會通過一種點對點的網路形式表現出來,即通過節點、節點管理器、話題、服務等來進行表現。
ROS 中的基本計算圖級概念包括:節點、節點管理器、參數伺服器、消息、服務、話題和包。這些概念以各種形式來提供數據。
ros 命令的說明及參數可以通過 < 命令 > -h (或 --help )來查看
例如: rosnode -h
用鍵盤控制小海龜運動這一過程的通信機制是怎樣的呢?其實,這兩個節點是通過一個 ROS 話題( Topic )來相互通信的, turtle_teleop_key 在這個話題上發布鍵盤輸入的的消息,而 turtlesim 則訂閱該話題以接收該消息。下面通過 rqt 功能包和 rostopic 命令來查看相關信息:
2, rostopic list :能夠列出所有當前訂閱和發布的話題。
先看一下 rostopic list 子命令需要哪些參數。運行命令:
rostopic list -h
使用 verbose 選項,以列出相關話題的詳細信息。運行命令:
rostopic list -v
顯示了有關所發布和訂閱的話題的詳細信息,其中方括弧中表示的是話題的類型。
3, rostopic type :用來查看所發布話題的消息類型。
用法: rostopic type [topic] 運行如下命令:
rostopic type /turtle1/cmd_vel
上面的 geometry_msgs/Twist 即為話題 /turtle1/cmd_vel 的消息類型,這在執行命令 rostopic list -v 時
也有所體現。
下面用 rosmsg 命令來查看消息的詳細情況:
rosmsg show geometry_msgs/Twist
4, rostopic pub :把數據發布到當前某個正在廣播的話題上。通過此命令可以通過直接在終端發送命令來控制小海龜
用法: rostopic pub [topic] [msg_type] [args]
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'