ROS 2三种常用的通信机制: 话题、服务、动作

Refer:Tutorials — ROS 2 Documentation: Rolling documentation
Refer: (243条消息) ROS2学习笔记(九)-- ROS2命令行操作常用指令总结(二)_溪风沐雪的博客-CSDN博客
Refer: 概念总览 - ROS2入门教程 (guyuehome.com)

 实例源码:GitHub - ros2/examples: Example packages for ROS 2

 

ROS有三种常用的通信机制,分别是话题、服务、动作

数据交换通过以下方式:话题通信 (发布订阅模式)、服务通信 (请求响应模式)、参数服务器 (参数共享模式)

流程控制通过以下方式:动作通信()

 

1. 话题

【发布/订阅模式:多对多】【异步通信机制】

从话题本身的实现角度来看,使用了基于DDS的发布/订阅模型。可以实现多个ROS节点之间数据的单向传输,使用这种异步通信机制,发布者无法准确知道订阅者是否收到消息。

话题是单向的,而且不需要等待服务端上线,直接发就行,数据的实时性比较高。
频率高,实时性强的传感器数据的传递一般使用话题实现。

2. 服务

【客户端/服务器|请求/响应模式:1对多】【同步通信机制】

服务是双向的,客户端发送请求后,服务端有响应,可以得知服务端的处理结果。采用的是你问我答的同步通信机制。
频率较低,强调服务特性和反馈的场景一般使用服务实现。

3. 参数

【参数共享模式:对】【通信机制】

参数是节点的设置,用于配置节点,原理基于服务。

4. 动作

【客户端/服务器模型:1对多】【同步通信机制】

动作适用于需要实时反馈的场景,原理基于话题和服务。目的就是便于对机器人某一完整行为的流程进行管理

ros2 interface list

命令功能:分类显示系统内所有的接口,包括消息(Messages)、服务(Services)、动作(Actions)

命令格式:ros2 interface list

posted @ 2023-04-21 11:33  suntroop  阅读(757)  评论(0)    收藏  举报