2021-9-30 ROS话题通信

1. 话题通信介绍
话题通信是ROS中使用频率最高的一种通信模式,话题通信是基于发布订阅模式的,也即:一个节点发布消息,另一个节点订阅该消息。
话题通信的应用场景: 话题通信适用于不断更新的数据传输相关的应用场景,像雷达、摄像头、GPS… 等等一些传感器数据的采集,也都是使用了话题通信。
概念: 以发布订阅的方式实现不同节点之间数据交互的通信模式。
作用: 用于不断更新的、少逻辑处理的数据传输场景。

2. 话题通信的理论模型
话题通信中角色:
ROS Master (管理者) : 负责保管 Talker 和 Listener 注册的信息,并匹配话题相同的 Talker 与 Listener,帮助 Talker 与 Listener 建立连接,连接建立后,Talker 可以发布消息,且发布的消息会被 Listener 订阅。
Talker (发布者) :发布消息
Listener (订阅者) :订阅消息
在这里插入图片描述
2.0 Talker注册
Talker启动后,会通过RPC在ROS Master中注册自身信息,其中包含所发布消息的话题名称。ROS Master会将节点的注册信息加入到注册表中。
RPC(Remote Procedure Call):远程过程调用,简单理解是一个节点请求另一个节点提供的服务。
2.1 Listener注册
Listener启动后,也会通过RPC在 ROS Master 中注册自身信息,包含需要订阅消息的话题名。ROS Master 会将节点的注册信息加入到注册表中。
2.2 ROS Master实现信息匹配
ROS Master 会根据注册表中的信息匹配Talker 和 Listener,并通过 RPC 向 Listener 发送 Talker 的 RPC 地址信息。
2.3 Listener向Talker发送请求
Listener 根据接收到的 RPC 地址,通过 RPC 向 Talker 发送连接请求,传输订阅的话题名称、消息类型以及通信协议(TCP/UDP)。
2.4 Talker确认请求
Talker 接收到 Listener 的请求后,也是通过 RPC 向 Listener 确认连接信息,并发送自身的 TCP 地址信息。
2.5 Listener与Talker件里连接
Listener 根据步骤4 返回的消息使用 TCP 与 Talker 建立网络连接。
2.6 Talker向Listener发送消息
连接建立后,Talker 开始向 Listener 发布消息。

注意1: 上述实现流程中,前0-4使用的RPC协议,5,6使用的是TCP协议
注意2:Talker与Listener的启动无先后顺序要求
注意3:Talker与Listener都可以有多个
注意4:Talker 与 Listener 连接建立后,不再需要 ROS Master。也即,即便关闭ROS Master,Talker 与 Listern 照常通信。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值