ROS学习笔记9——ROS三种通信机制的比较

三种通信机制中,参数服务器是一种数据共享机制,可以在不同的节点之间共享数据,话题通信与服务通信是在不同的节点之间传递数据的,三者是ROS中最基础也是应用最为广泛的通信机制。

这其中,话题通信和服务通信有一定的相似性也有本质上的差异,在此将二者做一下简单比较:

二者的实现流程是比较相似的,都是涉及到四个要素:

  • 要素1: 消息的发布方/客户端(Publisher/Client)
  • 要素2: 消息的订阅方/服务端(Subscriber/Server)
  • 要素3: 话题名称(Topic/Service)
  • 要素4: 数据载体(msg/srv)

可以概括为: 两个节点通过话题关联到一起,并使用某种类型的数据载体实现数据传输。

二者的实现也是有本质差异的,具体比较如下:

|------|---------------------|------------------------|
| | Topic(话题) | Service(服务) |
| 通信模式 | 发布/订阅 | 请求/响应 |
| 同步性 | 异步 | 同步 |
| 底层协议 | ROSTCP/ROSUDP | ROSTCP/ROSUDP |
| 缓冲区 | 有 | 无 |
| 时时性 | 弱 | 强 |
| 节点关系 | 多对多 | 一对多(一个 Server) |
| 通信数据 | msg | srv |
| 使用场景 | 连续高频的数据发布与接收:雷达、里程计 | 偶尔调用或执行某一项特定功能:拍照、语音识别 |

相关推荐
tingshuo29179 小时前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
aircrushin20 小时前
从春晚看分布式实时协同算法与灵巧手工程实现
人工智能·机器人
西岸行者6 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
ZPC82106 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82106 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
starlaky6 天前
Django入门笔记
笔记·django
勇气要爆发6 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
悠哉悠哉愿意6 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
勇气要爆发6 天前
吴恩达《LangChain LLM 应用开发精读笔记》2-Models, Prompts and Parsers 模型、提示和解析器
android·笔记·langchain
别催小唐敲代码6 天前
嵌入式学习路线
学习