< >
Home » ROS2入门教程 » ROS2入门教程-ROS2和不同的DDS程序

ROS2入门教程-ROS2和不同的DDS程序

ROS2入门教程-ROS2和不同的DDS程序

说明:

  • 介绍ROS2与不同的DDS程序的关系

关系:

  • ROS2是建立在DDS程序的基础上的。
  • DDS程序被用来发现节点,序列化和传递信息。
  • 这篇文章详细介绍了DDS程序的开发动机。
  • 总而言之,DDS程序提供了ROS系统所需的一些功能,比如分布式发现节点(并不是像ROS1那样中心化)
  • 控制传输中的不同的"通信质量(Quality of Service)"选项

DDS:

  • DDS是一个被很多公司实现的工业标准。
  • 比如RTI的实现Connext和eProsima的实现Fast RTPS。
  • ROS2 支持多种实现方式。因为没有必要“一个尺码的鞋给所有人穿”。用户有选择的自由。
  • 在选择DDS实现的时候你要考虑很多方面:比如法律上你要考虑他们的协议,技术上要考虑是否支持跨平台。
  • 不同的公司也许会为了适应不同的场景提出不止一种的DDS实现方式。
  • 比如RTI为了不同的目标就有很多种他们的Connext的变种。
  • 从小到微处理器到需要特殊资质的应用程序(我们支持标准的桌面版)

中间件:

  • 为了能够在ROS2中使用一个DDS实现,需要一个ROS中间件(RMW软件包)
  • 这个包需要利用DDS程序提供的API和工具实现ROS中间件的接口。
  • 为了在ROS2中使用一个DDS实现,有大量的工作需要做。
  • 但是为了防止ROS2的代码过于绑定某种DDS程序必须支持至少几种DDS程序。
  • 因为用户可能会根据他们的项目需求选择不同的DDS程序。

支持的RMW实现

名称协议RMW 实现状态
eProsima Fast RTPSApache 2rmw_fastrtps_cpp完全支持. 默认的RMW. 已经打包在发布的文件中.
RTI Connextcommercial, researchrmw_connext_cpp完全支持. 需要从源码编译支持.
RTI Connext (dynamic implementation)commercial, researchrmw_connext_dynamic_cpp停止支持. alpha 8.* 之前版本完全支持
PrismTech OpenspliceLGPL (only v6.4), commercialrmw_opensplice_cpp停止支持. alpha 8.* 之前版本完全支持
OSRF FreeRTPSApache 2--部分支持. 开发暂停.
  • 暂停支持意味着从 ROS2 alpha 8 版本以后新的添加进ROS2的功能还没有添加到这些中间件的实现中来。

  • 这些中间件的实现也许以后会会有也许以后也不会有。

  • 对于如何同时使用多个RMW实现的方法,可以看[[使用多个RMW实现]]页面

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2入门教程