第2章 ROS2通信机制核心
机器人是一种高度复杂的系统性实现,一个完整的机器人应用程序可能由若干功能模块组成,每个功能模块可能又包含若干功能点,在不同功能模块、不同功能点之间需要频繁的进行数据交互。比如以导航中的路径规划模块为例:
路径规划时就需要其他功能模块输入数据,并输出数据以被其他模块调用。
输入的数据有地图服务提供的地图数据、定位模块提供的机器人位姿数据、人机交互模块提供的目标点数据......。
输出的路径信息则被运动控制订阅或是回显在人机交互界面上。
那么这些相对独立的功能模块或功能点之间是如何实现数据交互的呢?在此,我们就需要介绍一下ROS2中的通信机制了。
本章概览
章节 | 学习内容 | 学习收获 |
---|---|---|
2.1 通信机制简介 | 通信机制中涉及的术语。 | 能够理解ROS2通信中的节点、话题、接口等常用术语以及不同通信模型的数据交互流程。 |
2.2 话题通信 | 话题通信的概念、作用、应用场景以及编码实现。 | 能够理解话题通信的应用场景,涉及的常用概念(发布方、订阅方、消息接口、话题...),并可以掌握其实现流程,编写C++和Python代码实现。 |
2.3 服务通信 | 服务通信的概念、作用、应用场景以及编码实现。 | 能够理解服务通信的应用场景,涉及的常用概念(服务端、客户端、服务接口、话题...),并可以掌握其实现流程,编写C++和Python代码实现。 |
2.4 动作通信 | 动作通信的概念、作用、应用场景以及编码实现。 | 能够理解动作通信的应用场景,涉及的常用概念(动作服务端、动作客户端、动作接口、话题...),并可以掌握其实现流程,编写C++和Python代码实现。 |
2.5 参数服务 | 参数服务的概念、作用、应用场景以及编码实现。 | 能够理解参数服务的应用场景,并可以掌握其实现流程,编写C++和Python代码实现。 |
2.6 本章小结 | 知识点汇总。 | 知识点回顾。 |
案例演示
案例1:话题通信示例——发布订阅简单的文本消息。
案例2:话题通信示例——发布自定义消息。
案例3:服务通信示例——求和。
案例4:动作通信示例——带有连续反馈的求和。
案例5:参数操作示例。