【ROS学习笔记 1】 ROS通信机制

ROS通信机制

1 话题通信

在这里插入图片描述

1.1 模型构成

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

1.2 通信流程

  • Talker作为发布者,制定话题及数据,将XML/RPC交由ROS Master管理;Listner作为订阅者,需要提出自己需要的话题;通过ROS Master这个媒介,实现相同话题的发布方与订阅方的握手,在Listner获取TCP server后,ROS Master退出通信过程,Talker和Listener建立了两者之间的链接,Listener可持续从Talker处获得消息。

1.3 话题通信使用场景

  • “话题通信”适用于不断更新、少逻辑处理的数据传输场景。在传感器数据传输中应用广泛。


2 服务通信

在这里插入图片描述

一个节点A向另一个节点B发送请求,B接收处理请求并产生响应结果返回给A。

2.1 概念

  • 请求响应的方式实现不同节点之间数据交互的通信模式。

2.2 模型构成

  • ROS Master(管理者);Server(服务端);Client(客户端)

2.3 通信流程

  • Server 启动后,会通过RPC在 ROS Master 中注册自身信息,其中包含提供的服务的名称。ROS Master 会将节点的注册信息加入到注册表中。
  • Client 启动后,也会通过RPC在 ROS Master 中注册自身信息,包含需要请求的服务的名称。ROS Master 会将节点的注册信息加入到注册表中。
  • ROS Master 会根据注册表中的信息匹配Server和 Client,并通过 RPC 向 Client 发送 Server 的 TCP 地址信息。
  • Client 根据步骤2 响应的信息,使用 TCP 与 Server 建立网络连接,并发送请求数据。
  • Server 接收、解析请求的数据,并产生响应结果返回给 Client。

2.4 服务通信使用场景

  • 用于偶然的、对时时性有要求、有一定逻辑处理需求的数据传输场景。

注意:

  • 话题订阅方式相比服务通信方式更倾向于服务请求模式,一般需要Client提供请求数据,并在Server中完成相关服务功能,再返回消息;
  • 必须保证启动顺序,即Server必须在Client发布请求前启动完毕;
  • Client与Server可以同时存在多个。


3 参数服务器

在这里插入图片描述

用于实现不同节点之间的数据共享,类似于容器概念,不同的节点可以对该参数服务器中的数据进行访问或存储。

3.1 概念

  • 以共享的方式实现不同节点之间的数据交互。

3.2 模型构成

  • ROS Master(管理者);Talker(参数设定者);Listener(参数调用者)

3.3 通信流程

  • Talker通过RPC向参数服务器发送参数(包括参数名和参数值),ROS Master将参数保存至参数列表中;
  • Listener用过RPC向参数服务器发送查找某一参数名对应参数的请求;
  • ROS Master根据步骤2请求提供的参数名查找参数值,并将查询结果通过RPC发送给Listener。

3.4 参数服务器使用场景

  • 适用于存在数据共享的一些场景中。

注意:
参数服务器不是为高性能需求设计的,一般只用于存储静态的非二进制的简单数据
常用的存储数据类型:
int32;double;bool;string;iso8601 dates;list;directory;base64-encoded binary data…

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Victor.Ge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值