【无标题】

ROS2 主题 vs 服务 vs 行动区别


前言

在设计系统时,存在三种主要的界面样式。 本文旨在为读者提供有关何时使用每种接口的指南。

一、话题

 - 应该用于连续数据流(传感器数据、机器人状态……)。 
 - 用于连续数据流。 数据可以在任何时候独立于任何发送者/接收者发布和订阅。 多对多连接。
   一旦数据可用,回调就会接收数据。 发布者决定何时发送数据。

二、服务

  • 应该用于快速终止的远程过程调用,例如用于查询节点的状态或进行 IK 等快速计算。它们不应该用于运行时间较长的进程,特别是在发生异常情况时可能需要抢占的进程,它们不应该改变或依赖于状态以避免对其他节点产生不必要的副作用。
  • 简单的阻塞调用。 主要用于请求特定数据的速度相对较快的任务。 语义上用于处理请求。

三、行动

  • 应用于移动机器人或运行较长时间但在执行期间提供反馈的任何离散行为。
  • 动作最重要的属性是它们可以被抢占,并且抢占应该始终由动作服务器干净地实现。
  • 动作可以在目标的生命周期内保持状态,即如果在同一服务器上并行执行两个动作目标,则可以为每个客户端保留一个单独的状态实例,因为目标由其 id 唯一标识。
  • 需要几秒钟才能终止或启动较低级别控制模式的缓慢感知例程是操作的良好用例。
  • 更复杂的非阻塞后台处理。 用于较长的任务,例如执行机器人动作。 语义上用于现实世界的动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值