- 课程简介
- 第1章 ROS2概述与环境搭建
- 1.1 ROS2简介
- 1.2 ROS2安装
- 1.3 ROS2快速体验
- 1.4 ROS2集成开发环境搭建
- 1.5 ROS2体系框架
- 1.6 本章小结
- 第2章 ROS2通信机制核心
- 2.1 通信机制简介
- 2.2 话题通信
- 2.3 服务通信
- 2.4 动作通信
- 2.5 参数服务
- 2.6 本章小结
- 第3章 ROS2通信机制补充
- 3.1 分布式
- 3.2 工作空间覆盖
- 3.3 元功能包
- 3.4 节点重名
- 3.5 话题重名
- 3.6 时间相关API
- 3.7 通信机制工具
- 3.8 通信机制实操
- 3.9 本章小结
- 第4章 ROS2工具之launch与rosbag2
- 4.1 启动文件launch简介
- 4.2 launch之Python实现
- 4.3 launch之xml、yaml实现
- 4.4 录制回放工具——rosbag2
- 4.5 本章小结
- 第5章 ROS2工具之坐标变换
- 5.1 坐标变换简介
- 5.2 坐标相关消息
- 5.3 坐标变换广播
- 5.4 坐标变换监听
- 5.5 坐标变换工具
- 5.6 坐标变换实操
- 5.7 本章小结
- 第6章 ROS2工具之可视化
- 6.1 可视化简介
- 6.2 rviz2 基本使用
- 6.3 rviz2集成URDF基本流程
- 6.4 URDF使用语法
- 6.5 URDF优化_xacro
- 6.6 本章小结
- Published with GitBook
第2章 ROS2通信机制核心¶
第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:参数操作示例。
