ros学习:6.通信机制概述

        

ROS 的通信机制主要包括话题通信、服务通信、动作通信以及参数服务器,以下是具体介绍:

话题通信(Publish/Subscribe)

  • 原理:基于发布 / 订阅模式,节点可以通过发布者(Publisher)将消息发送到话题,其他节点则可以通过订阅者(Subscriber)接收这些消息。发布者和订阅者之间是异步通信,发布者发布消息后无需等待反馈,继续执行下一个动作;订阅者通过回调函数来处理接收到的消息。
  • 流程:发布者和订阅者都要到节点管理器 ROS Master 进行注册,Publisher 发布 topic,Subscriber 在 ROS Master 的指挥下订阅该 topic,建立起 sub-pub 之间的通信。之后 ROS Master 通过 RPC 向 Subscriber 发送 Publisher 的地址信息,Subscriber 接收到地址信息后向 Publisher 发送连接请求,Publisher 确认连接请求,两者建立网络连接后,Publisher 向 Subscriber 发布数据。
  • 特点:支持多对多的通信模式,多个节点可同时发布和订阅同一话题,使得系统扩展性好、软件复用率高,适用于实时性、周期性的大量数据传输,如传感器数据发布。

服务通信(Request/Response)

  • 原理:基于请求 / 响应模式,节点可以提供服务,其他节点可以发送请求并等待响应。
  • 流程:服务端节点启动后向 ROS Master 注册服务名称,客户端节点启动后也向 ROS Master 注册请求的服务名称,ROS Master 根据服务名称进行匹配,并将服务端的地址信息告知客户端。客户端与服务端进行网络连接,并发送请求,服务端处理请求数据,产生响应并发送给客户端。
  • 特点:是一种同步通信机制,适用于偶然的、对实时性有要求、有一定逻辑处理需求的数据传输场景,如机器人执行特定任务的控制命令请求。

行为通信(Actions)

  • 原理:允许节点执行长时间运行的任务,并提供反馈以及可取消的功能。行为通信包含目标(Goal)、反馈(Feedback)和结果(Result)三部分。
  • 流程:行为客户端创建与所需行为匹配的客户端并填充目标消息,将其发送到行为服务器。行为服务器接收目标消息后开始执行任务,执行中定期发送反馈消息到客户端,任务完成时将结果消息发送回客户端。
  • 特点:适用于需要持续监控和反馈的长时间运行任务,如机器人的导航任务,可让用户实时了解任务进展并在必要时取消任务。

参数服务器(Parameter Server)

  • 原理:用于存储和检索参数的分布式多机器人配置系统,允许节点动态地获取、设置和搜索参数值。
  • 流程:参数设置者向参数服务器发送参数,ROS Master 将参数保存到参数列表中。参数调用者向参数服务器发送参数查找请求,ROS Master 根据请求查找参数值,并将查询结果发送给参数调用者。
  • 特点:可以实现参数的集中管理和共享,使得系统配置更加灵活和可配置,方便多节点共享一些静态的非二进制的简单数据,如机器人的运动参数、传感器的校准参数等。

你可能感兴趣的:(学习)