首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ROS2和DDS有什么区别?

ROS2和DDS有什么区别?
EN

Stack Overflow用户
提问于 2018-07-05 09:20:31
回答 4查看 7K关注 0票数 14

ROS2是一种使用节点间发布/订阅者消息的分布式体系结构。

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

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

所以,我们可以直接使用直接数字频率合成器,为什么要使用ROS2?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-03-17 06:57:33

生态系统

DDS是OMG提出的一种通信标准。它的目标市场更广泛,比如军事、空中交通管制、自动车辆、医疗器械..。提供企业和开源版本的供应商很少,但只有少数人或市场能够决定他们的未来工作或设计。

任何想要将DDS应用到他们的产品中的人都需要从头开始。

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

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

更技术性

ROS与DDS的Pub/Sub模型差异

DDS

参与者、主题、发布服务器、订阅者、数据中心和数据写入器

是的,DDS有发行者和订阅者。此外,它还包括参与者、主题、发布者、订阅者、数据写入者和数据中心,它们被称为DDS数据共享空间中的一个实体。

每个实体拥有不同的QoS属性,并影响实体如何管理数据传递或数据生命周期。

  • 参与者

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

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

  • 主题

主题就像拥有QoS信息的目标,数据写入器和数据器可以相互链接。

  • 发行者和订阅者

发布服务器和订阅服务器控制其拥有的数据存储器和数据写入器的数据传递和数据可用性。

Publisher只能有多个数据写入器,而订阅服务器只能有多个数据中心。

  • DataWriter和DataReader

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

DDS主题命名:

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

ROS2

命名空间和节点.

  • 命名空间

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

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

  • 节点

简单地说是提供或使用数据的基本元素。

您可以检查ros2主题和服务名称的ROS2发布/子命名设计。

结论

ROS2更加注重机器人的应用设计,消除了合成复杂pub/sub应用的困难。

票数 12
EN

Stack Overflow用户

发布于 2018-07-05 16:04:03

在什么斯托克已经写过了上添加一点

ROS不仅仅是通信层。例如,它提供了

  • 机器人中常见的许多任务包,从基本的东西,从不同坐标框架之间的转换点到高级应用程序,比如生成环境地图,并使用它在机器人中导航而不遇到障碍。
  • 构建系统(用于ROS 1的catkin,用于ROS 2的colcon ),用于轻松地构建这些包并指定它们之间的依赖关系。
  • 一种启动系统,可以轻松地运行由相互依赖的多个应用程序组成的复杂系统,并提供一种轻松更改参数的方法。
  • 综合物理模拟以及可视化和监测工具
票数 7
EN

Stack Overflow用户

发布于 2018-07-05 10:08:29

实际上,ROS2是基于直接数字频率合成技术进行通信的。(https://github.com/ros2/ros2/wiki/DDS-and-ROS-middleware-implementations)

之所以使用ROS2,是因为它增加了一个抽象,从而使DDS更易于使用。DDS需要大量的设置和配置(分区、主题名称、发现模式、消息创建、.)这是在ROS2的RMW封装中完成的。此包还负责处理消息发布/接收(获取)时的错误。

您可以直接使用DDS (如果您正确配置您的发布服务器和订阅服务器,您也可以与ROS2发布服务器和订阅服务器通信),但是您必须创建消息(.idl),调用生成器来获取相应的结构和源文件,创建域,分配主题,配置数据作者/数据中心。(请看一些示例https://github.com/rticommunity/rticonnextdds-examples/tree/master/examples/listeners/c)

所以ROS2让你的生活更轻松了。另外,还有很多包可以在消息上面使用。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51187676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档