鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    你喜欢话题还是服务,动作不考虑下吗?

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    动作 服务 主题 对比
    2
    3
    430
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小鱼小
      小鱼 技术大佬
      最后由 编辑

      写在前面

      • 原文地址[ROS2官方文档中文版]:http://fishros.org/doc/ros2/humble
      • 鱼香ROS机器人社区:https://fishros.org.cn

      小鱼说:

      既然 ROS 设计了这几种通信方式,当然各有优势,但了解每种通信方式适用于什么场景是我们必须掌握的。


      主题 vs 服务 vs 动作

      主题

      • 适用于连续的数据流(传感器数据、机器人状态等)。
      • 数据可以在任何时间发布和订阅,独立于任何发送者/接收者。
      • 多对多的连接。
      • 回调函数在数据可用时接收数据。
      • 发布者决定何时发送数据。

      服务

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

      动作

      • 适用于任何移动机器人或在执行过程中提供反馈的持续性行为。
      • 最重要的属性是可以被抢占,而且抢占应该始终由动作服务器进行干净地实现。
      • 动作可以在目标的生命周期内保持状态。
      • 在同一个服务器上并行执行两个动作目标时,可以针对每个客户端保持单独的状态实例,因为目标由其 ID 唯一标识。
      • 适合于慢的感知例程,需要几秒钟才能终止或启动较低级别的控制模式。
      • 更复杂的非阻塞后台处理,用于执行机器人动作等较长时间的任务。
      • 在语义上用于真实世界的动作。

      新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

      15031539061 1 条回复 最后回复 回复 引用 0
      • 15031539061
        China @小鱼
        最后由 编辑

        @小鱼 调试机械臂好像需要用到动作

        小鱼小 1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @1503153906
          最后由 编辑

          @1503153906 对,导航也是

          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

          1 条回复 最后回复 回复 引用 0
          • 第一个帖子
            最后一个帖子
          皖ICP备16016415号-7
          Powered by NodeBB | 鱼香ROS