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 |
| 使用场景 | 连续高频的数据发布与接收:雷达、里程计 | 偶尔调用或执行某一项特定功能:拍照、语音识别 |

相关推荐
UpUpUp……2 小时前
HTML简单语法标签(后续实操:云备份项目)
笔记·html
小彭律师2 小时前
门禁人脸识别系统详细技术文档
笔记·python
是孑然呀3 小时前
【小记】word批量生成准考证
笔记·学习·excel
ll7788116 小时前
C++学习之路,从0到精通的征途:继承
开发语言·数据结构·c++·学习·算法
LuckyLay7 小时前
React百日学习计划——Deepseek版
前端·学习·react.js
安和昂7 小时前
【iOS】SDWebImage源码学习
学习·ios
毫秒AI获客7 小时前
小红书多账号运营效率优化:技术方案与自动化实践
笔记
菜一头包7 小时前
c++ std库中的文件操作学习笔记
c++·笔记·学习
猴子请来的逗比4897 小时前
tomcat搭建内网论坛
学习·tomcat
belldeep7 小时前
如何阅读、学习 Git 核心源代码 ?
git·学习·源代码