3.7 通信機制工具
場景
上一章內(nèi)容,我們學(xué)習(xí)了ROS2中的多種通信機制,了解了不同通信模型的實現(xiàn)流程、相關(guān)API以及各自的特點,接下來我們再介紹一些實際開發(fā)當(dāng)中可能會遇到的一些問題:
1.一個完整的機器人系統(tǒng)啟動之后,其組成是比較復(fù)雜的,可能包含十幾個、幾十個甚至上百個節(jié)點,不同的節(jié)點可能又包含一個或多個通信對象(話題發(fā)布方、話題訂閱方、服務(wù)端、客戶端、動作服務(wù)端、動作客戶端、參數(shù)服務(wù)端、參數(shù)客戶端),通信時還需要使用到各種各樣的msg、srv或action接口消息,那么在開發(fā)過程中,如何才能方便的獲取這些節(jié)點、話題、服務(wù)、動作、參數(shù)以及接口相關(guān)的信息呢?
2.編寫通信實現(xiàn),通信至少涉及到雙方,一方編寫完畢后,如何驗證程序是否可以正常運行呢?
3.話題通信過程中,發(fā)布方程序中設(shè)置了消息的發(fā)布頻率,如何判斷實際運行中的發(fā)布頻率是否和設(shè)置的頻率一致呢?
......
在ROS2中提供了一些工具,可以方便快捷的解決上述問題,本部分內(nèi)容就主要介紹這些工具的使用。
概念
在ROS2中,通信機制相關(guān)的工具有兩種類型,分別是命令行工具和圖形化工具(rqt),前者是一系列終端命令的集合,后者則是ROS2基于QT框架,針對機器人開發(fā)的一系列可視化工具的集合。
作用
可以方便的實現(xiàn)程序調(diào)試,提高開發(fā)效率,優(yōu)化用戶體驗。
3.7.1 命令工具
ROS2中常用的命令如下:
ros2 node:節(jié)點相關(guān)命令行工具
ros2 interface:接口(msg、srv、action)消息相關(guān)的命令行工具
ros2 topic:話題通信相關(guān)的命令行工具
ros2 service:服務(wù)通信相關(guān)的命令行工具
ros2 action:動作通信相關(guān)的命令行工具
ros2 param:參數(shù)服務(wù)相關(guān)的命令行工具
關(guān)于命令的使用一般都會提供幫助文檔,幫助文檔的獲取方式如下:
可以通過
命令 -h
?或?命令 --help
的方式查看命令幫助文檔,比如:ros2 node -h
或?ros2 node --help
。命令下參數(shù)的使用也可以通過
命令 參數(shù) -h
?或?命令 參數(shù) --help
的方式查看幫助文檔,比如:ros2 node list -h
或?ros2 node list --help
。
1.ros2 node
ros2 node的基本使用語法如下:
info ?輸出節(jié)點信息
list ?輸出運行中的節(jié)點的列表
2.ros2 interace
ros2 interace的基本使用語法如下:
list ? ? ?輸出所有可用的接口消息?
package ?? 輸出指定功能包下的?
packages? ?輸出包含接口消息的功能包?
proto? ? ?輸出接口消息原型?
show ? ? ?輸出接口消息定義格式
3.ros2 topic
ros2 topic的基本使用語法如下:
bw ? ? ? 輸出話題消息傳輸占用的帶寬?
delay ? ?輸出帶有header 的話題延遲?
echo ? ? 輸出某個話題下的消息?
find ? ? 根據(jù)類型查找話題?
hz ? ? ? 輸出消息發(fā)布頻率?
info ? ? 輸出話題相關(guān)信息?
list ? ? 輸出運行中的話題列表?
pub ? ? ?向指定話題發(fā)布消息?
type ? ? 輸出話題使用的接口類型
4.ros2 service
ros2 service的基本使用語法如下:
call ?向某個服務(wù)發(fā)送請求
find ?根據(jù)類型查找服務(wù)?
list ?輸出運行中的服務(wù)列表?
type ?輸出服務(wù)使用的接口類型
5.ros2 action
ros2 action的基本使用語法如下:
info ? ? ? 輸出指定動作的相關(guān)信息?
list ? ? ? 輸出運行中的動作的列表?
send_goal ?向指定動作發(fā)送請求
6.ros2 param
ros2 param的基本使用語法如下:
delete ? ?刪除參數(shù)?
describe ?輸出參數(shù)的描述信息?
dump ? ? ?將節(jié)點參數(shù)寫入到磁盤文件?
get ? ? ? 獲取某個參數(shù)?
list ? ? ?輸出可用的參數(shù)的列表?
load ? ? ?從磁盤文件加載參數(shù)到節(jié)點?
set ? ? ? 設(shè)置參數(shù)
3.7.2 rqt工具箱
本節(jié)主要介紹ROS2中rqt工具箱的使用,比如:rqt的安裝、啟動與插件使用等。
1.安裝
一般只要安裝的是desktop版本就會默認(rèn)安裝rqt工具箱;
如果需要安裝可以以如下方式安裝
$ sudo apt install ros-humble-rqt*
2.啟動
常用的rqt
啟動命令有:
方式1:
rqt
方式2:
ros2 run rqt_gui rqt_gui
3.插件使用
啟動rqt之后,可以通過plugins添加所需的插件:

在plugins中包含了話題、服務(wù)、動作、參數(shù)、日志等等相關(guān)的插件,我們可以按需選用,方便的實現(xiàn)ROS2程序調(diào)試。使用示例如下。
1.topic 插件
添加topic插件并發(fā)送速度指令控制烏龜運動。

2.service插件
添加 service 插件并發(fā)送請求,在制定位置生成一只烏龜。

3.參數(shù)插件
通過參數(shù)插件動態(tài)修改烏龜窗體背景顏色。


B站有完整的ros系列教程視頻,可以觀看完整內(nèi)容ros課程ROS2理論與實踐
更多內(nèi)容將在猛獅知識星球社區(qū)更新最新課程,后續(xù)將推出更多優(yōu)質(zhì)內(nèi)容——詳情可關(guān)注猛獅集訓(xùn)營公眾號和猛獅集訓(xùn)營官方網(wǎng)站。