gpt4 book ai didi

robotics - ROS2和DDS有什么区别?

转载 作者:行者123 更新时间:2023-12-03 16:34:22 31 4
gpt4 key购买 nike

ROS2 是一种分布式架构,在节点之间使用发布者/订阅者消息传递。

ROS2 在其消息传递层采用了不同的方法,现在采用称为数据分布式服务 (DDS) 的行业标准。

但是,DDS 是一个通信中间件,也支持发布者/订阅者。

那么,我们可以直接使用DDS,为什么要用ROS2呢?

最佳答案

生态系统

DDS是OMG提出的通信标准。它的目标市场更广泛,如军事、空中交通管制、自动驾驶汽车、医疗设备......很少有供应商提供企业版和开源版本,但只有少数人或市场可以决定他们 future 的工作或设计。

任何想要在其产品中采用 DDS 的人都需要从头开始。

ROS2更像是一个生态系统。 ROS2 的领导者——OSRF 为那些想要创建机器人应用程序的人提供了一个生态系统、文档和友好的框架。

任何人都可以将他们的想法提交给核心设计或为社区做出自己的贡献。

更多技术

ROS 和 DDS 的 Pub/Sub 模型区别

数据传输系统

参与者、主题、发布者、订阅者、数据读取者和数据写入者

是的,DDS 有发布者和订阅者。而且,它有参与者、主题、发布者、订阅者、数据写入者和数据读取者,它们被称为 DDS 数据共享空间中的一个实体。

每个实体拥有不同的 QoS 属性并影响实体管理数据交付或数据生命周期的方式。

  • 参会者

  • Participant 控制整个实体的创建、删除、分组。它有能力知道新实体加入或离开。

    不同的参与者由域 ID(整数)标识。
  • 话题

  • 主题就像拥有 QoS 信息的目标,数据写入器和数据读取器可以相互链接。
  • 发布者和订阅者

  • 发布者和订阅者控制其拥有的数据读取器和数据写入器的数据交付和数据可用性。

    发布者只能有多个数据写入器,订阅者只能有多个数据读取器。
  • DataWriter 和 DataReader

  • DataWriter 是数据提供者,DataReader 是数据使用者。他们需要对其目标主题具有相同的 QoS。

    DDS 主题命名:

    取消链接其他发布/订阅模型,他们不会大量使用斜杠 / ,相反,它们是面向对象的。

    ROS2

    命名空间和节点。
  • 命名空间

  • 它就像主题,但有命名空间。

    ROS2 高度使用命名空间和斜线 / .它有以 / 开头的命名空间.例如, /turtle/cmd_vel ,turtle 是命名空间,cmd_vel 是它的基本名称。
  • 节点

  • 只是提供或使用数据的基本元素。

    您可以查看 ros2 topic and service names用于 ROS2 发布/订阅命名设计。

    结论

    ROS2 更侧重于机器人应用程序设计,消除了编写 DDS 复杂发布/订阅应用程序的难度。

    关于robotics - ROS2和DDS有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51187676/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com