ROS 话题通信&服务通信的区别

话题通信是ROS中使用频率最高的一种通信模式,话题通信是基于发布订阅模式的,也即:一个节点发布消息,另一个节点订阅该消息。话题通信的应用场景也极其广泛,

服务通信也是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制。也即: 一个节点A向另一个节点B发送请求,B接收处理请求并产生响应结果返回给A。

参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据,

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

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

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

要素1: 消息的发布方/客户端(Publisher/Client)

要素2: 消息的订阅方/服务端(Subscriber/Server)

要素3: 话题名称(Topic/Service)

要素4: 数据载体(msg/srv)

话题与服务的区别

  • 话题
  • 服务
  • 同步性
  • 异步
  • 同步
  • 通信模型
  • 发布/订阅
  • 客户端/服务器
  • 底层协议
  • ROSTCP/ROSUDP
  • ROSTCP/ROSUDP
  • 反馈机制
  • 缓冲区
  • 实时性
  • 节点关系
  • 多对多
  • 一对多(一个Server)
  • 通信数据
  • msg
  • srv
  • 适用场景
  • 数据传输
  • 连续高频的数据发布与接收:雷达、里程计
  • 逻辑处理
  • 偶尔调用或执行某一项特定功能:拍照、语音识别

总之,话题是ROS中基于发布/订阅模型的异步通信模式,这种方式将信息的产生和使用双方解耦,常用于不断更新的、含有较少逻辑处理的数据通信;而服务多用于处理ROS中的同步通信,采用客户端/服务器模型,常用于数据量较小但有强逻辑处理的数据交换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值