3.7 通信机制工具
场景
上一章内容,我们学习了ROS2中的多种通信机制,了解了不同通信模型的实现流程、相关API以及各自的特点,接下来我们再介绍一些实际开发当中可能会遇到的一些问题:
1.一个完整的机器人系统启动之后,其组成是比较复杂的,可能包含十几个、几十个甚至上百个节点,不同的节点可能又包含一个或多个通信对象(话题发布方、话题订阅方、服务端、客户端、动作服务端、动作客户端、参数服务端、参数客户端),通信时还需要使用到各种各样的msg、srv或action接口消息,那么在开发过程中,如何才能方便的获取这些节点、话题、服务、动作、参数以及接口相关的信息呢?
2.编写通信实现,通信至少涉及到双方,一方编写完毕后,如何验证程序是否可以正常运行呢?
3.话题通信过程中,发布方程序中设置了消息的发布频率,如何判断实际运行中的发布频率是否和设置的频率一致呢?
......
在ROS2中提供了一些工具,可以方便快捷的解决上述问题,本部分内容就主要介绍这些工具的使用。
概念
在ROS2中,通信机制相关的工具有两种类型,分别是命令行工具和图形化工具(rqt),前者是一系列终端命令的集合,后者则是ROS2基于QT框架,针对机器人开发的一系列可视化工具的集合。
作用
可以方便的实现程序调试,提高开发效率,优化用户体验。
3.7.1 命令工具
ROS2中常用的命令如下:
ros2 node:节点相关命令行工具
ros2 interface:接口(msg、srv、action)消息相关的命令行工具
ros2 topic:话题通信相关的命令行工具
ros2 service:服务通信相关的命令行工具
ros2 action:动作通信相关的命令行工具
ros2 param:参数服务相关的命令行工具
关于命令的使用一般都会提供帮助文档,帮助文档的获取方式如下:
可以通过
命令 -h
或命令 --help
的方式查看命令帮助文档,比如:ros2 node -h
或ros2 node --help
。命令下参数的使用也可以通过
命令 参数 -h
或命令 参数 --help
的方式查看帮助文档,比如:ros2 node list -h
或ros2 node list --help
。
1.ros2 node
ros2 node的基本使用语法如下:
info 输出节点信息
list 输出运行中的节点的列表
2.ros2 interace
ros2 interace的基本使用语法如下:
list 输出所有可用的接口消息
package 输出指定功能包下的
packages 输出包含接口消息的功能包
proto 输出接口消息原型
show 输出接口消息定义格式
3.ros2 topic
ros2 topic的基本使用语法如下:
bw 输出话题消息传输占用的带宽
delay 输出带有header 的话题延迟
echo 输出某个话题下的消息
find 根据类型查找话题
hz 输出消息发布频率
info 输出话题相关信息
list 输出运行中的话题列表
pub 向指定话题发布消息
type 输出话题使用的接口类型
4.ros2 service
ros2 service的基本使用语法如下:
call 向某个服务发送请求
find 根据类型查找服务
list 输出运行中的服务列表
type 输出服务使用的接口类型
5.ros2 action
ros2 action的基本使用语法如下:
info 输出指定动作的相关信息
list 输出运行中的动作的列表
send_goal 向指定动作发送请求
6.ros2 param
ros2 param的基本使用语法如下:
delete 删除参数
describe 输出参数的描述信息
dump 将节点参数写入到磁盘文件
get 获取某个参数
list 输出可用的参数的列表
load 从磁盘文件加载参数到节点
set 设置参数
3.7.2 rqt工具箱
本节主要介绍ROS2中rqt工具箱的使用,比如:rqt的安装、启动与插件使用等。
1.安装
一般只要安装的是desktop版本就会默认安装rqt工具箱;
如果需要安装可以以如下方式安装
$ sudo apt install ros-humble-rqt*
2.启动
常用的rqt
启动命令有:
方式1:
rqt
方式2:
ros2 run rqt_gui rqt_gui
3.插件使用
启动rqt之后,可以通过plugins添加所需的插件:

在plugins中包含了话题、服务、动作、参数、日志等等相关的插件,我们可以按需选用,方便的实现ROS2程序调试。使用示例如下。
1.topic 插件
添加topic插件并发送速度指令控制乌龟运动。

2.service插件
添加 service 插件并发送请求,在制定位置生成一只乌龟。

3.参数插件
通过参数插件动态修改乌龟窗体背景颜色。


B站有完整的ros系列教程视频,可以观看完整内容ros课程ROS2理论与实践
更多内容将在猛狮知识星球社区更新最新课程,后续将推出更多优质内容——详情可关注猛狮集训营公众号和猛狮集训营官方网站。