ROS通信机制(1)—话题通信概述

话题通信实现模型是比较复杂的,该模型如下图所示,该模型中涉及到三个角色:

  • ROS Master (管理者)
  • Talker (发布者)
  • Listener (订阅者)

ROS Master 负责保管 Talker Listener 注册的信息,并匹配话题相同的 Talker Listener,帮助 Talker Listener 建立连接,连接建立后,Talker 可以发布消息,且发布的消息会被 Listener 订阅。

ps:大家可以把流程映射到生活中好理解一些:例如,中介出租房屋,媒婆介绍婚事

整个流程由以下步骤实现:

0.Talker注册

Talker启动后,会通过RPC ROS Master 中注册自身信息,其中包含所发布消息的话题名称。ROS Master 会将节点的注册信息加入到注册表中。

1.Listener注册

Listener启动后,也会通过RPC ROS Master 中注册自身信息,包含需要订阅消息的话题名。ROS Master 会将节点的注册信息加入到注册表中。

2.ROS Master实现信息匹配

ROS Master 会根据注册表中的信息匹配Talker Listener,并通过 RPC Listener 发送 Talker RPC 地址信息。

3.ListenerTalker发送请求

Listener 根据接收到的 RPC 地址,通过 RPC Talker 发送连接请求,传输订阅的话题名称、消息类型以及通信协议(TCP/UDP)

4.Talker确认请求

Talker 接收到 Listener 的请求后,也是通过 RPC Listener 确认连接信息,并发送自身的 TCP 地址信息。

5.ListenerTalker件里连接

Listener 根据步骤4 返回的消息使用 TCP Talker 建立网络连接。

6.TalkerListener发送消息

连接建立后,Talker 开始向 Listener 发布消息。

注意1:上述实现流程中,前五步使用的 RPC协议,最后两步使用的是 TCP 协议

注意2: Talker 与 Listener 的启动无先后顺序要求

注意3: Talker 与 Listener 都可以有多个

注意4: Talker 与 Listener 连接建立后,不再需要 ROS Master。也即,即便关闭ROS Master,Talker 与 Listern 照常通信。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值