欢迎光临散文网 会员登陆 & 注册

3.7 通信机制工具

2023-10-10 10:51 作者:猛狮集训营  | 我要投稿

场景

上一章内容,我们学习了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理论与实践

更多内容将在猛狮知识星球社区更新最新课程,后续将推出更多优质内容——详情可关注猛狮集训营公众号和猛狮集训营官方网站。


3.7 通信机制工具的评论 (共 条)

分享到微博请遵守国家法律