亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

ROS2 + DDS:互操作性现场指南

尽管 ROS 2 旨在使用 DDS 作为其连接框架(请参阅我之前的博客文章 - ROS 2 + DDS:当生态系统合并时以获取更多信息),但为了获得纯 DDS 系统,集成过程有一些必须适应的怪癖与 ROS 2 系统无缝互操作。该博客是互操作性的实用现场指南,涵盖了 ROS 2 的“Bouncy Bolson”(2018 年 7 月)版本中的一些已知问题以及如何缓解这些问题。

ROS 2 的更新

ROS 2 是一个不断发展的项目。未来的 ROS 2 版本可能会有进一步影响互操作性的变化。话虽如此,请始终记住使用 rmw_connext_cpp ROS 2 下的层——它仍然是 Connext DDS。 Connext 库固有的功能和灵活性仍然可用,使用与非 ROS 实现相同的方法。您可以控制自己的系统。

以下是可能影响纯 DDS 和 ROS 2 系统(除非另有说明,否则为 ROS 2“Bouncy Bolson”)之间互操作性的一些设置:

主题名称和分区

ROS 2 通过在主题的名称或 DDS 分区中对其进行编码来识别主题数据的命名空间。用户数据主题将在“rt”(ROS 主题)命名空间中,在 DDS 中编码为:

主题数据类型

在使用 ROS2 下的 Connext RMW 层时,您可能已经注意到,发现时报告的所有 ROS2 “rt/*”主题都具有相同的数据类型:

这种类型的定义由 ROS2 rmw_connext_cpp 层插入以表示主题数据的序列化,即使主题数据没有改变。当尝试与使用原始数据类型的 DDS 主题进行连接时 -- 将发生 QoS 不匹配,从而阻止连接。

最简单的解决方案是禁止来自 ROS2 参与者的此类型代码公告。这可以通过将 USER_QOS_PROFILES.xml 文件添加到用于启动 ROS2 参与者的目录来完成。该文件包含用于抑制类型代码和类型对象共享的 QoS 设置,例如:

请注意,此文件还将可靠性设置为“Best Effort”——这只是一个示例起点。

另请注意,此 QoS 文件仅影响在与 QoS 文件相同的目录下启动的 ROS2 参与者。如果需要,每个 ROS2 参与者都可以在单独的目录中拥有自己的自定义 QoS 文件。

交通工具选择

将 DDS 系统连接到 ROS2 系统可能会导致有关未安装不可寻址定位器/传输的警告。这是参与者拥有不同可用传输列表的结果,例如参与者 A(udpv4) 发现参与者 B(udpv4, udpv6);将发出警告,参与者 A 将无法使用 udpv6 进行连接。

ROS2下Connext RMW的传输选择使用与Connext-only系统相同的方法:

  1. 通过添加到 部分,在 USER_QOS_PROFILES.xml 文件中设置允许的传输,如:

    <掩码>UDPV4|SHMEM

  2. 通过将“NDDS_DISCOVERY_PEERS”文件添加到用于启动应用程序的目录来设置初始对等点(并启用/禁用多播)。纯文本文件应包含以逗号分隔的用于发现的对等点列表,例如: localhost,192.168.1.12,shmem:// (此示例禁用多播发现)

ROS2中的RMW选择

ROS2下一定要设置环境变量选择Connext作为RMW层:

RMW_IMPLEMENTATION=rmw_connext_cpp

这也可以在启动 ROS2 应用程序时在命令行上传递,如:

RMW_IMPLEMENTATION=rmw_connext_cpp ros2 run demo_nodes_cpp talker

无限支持

一些 ROS2 主题使用无界序列和字符串。寻求使用这些主题进行互操作的 DDS 应用程序需要在 DDS 代码生成器中启用“无限支持”。

展望RTI

请继续关注本系列的下一篇文章,该文章涵盖了 ROS2 阵容中的一个关键(尽管是暂时的)差距:主题数据的记录和重放。

如果您准备开始与 RTI 团队合作并改进您的通信系统,请立即联系我们。我们的专家随时准备为您提供帮助。


物联网技术

  1. 激光打标指南
  2. 开放式 DDS 与 RTI DDS 软件
  3. ROS2 + DDS:再玩一次
  4. ROS2 + DDS 集成:当生态系统合并时 | RTI
  5. 如何在 IoT 应用程序中集成 Qt 和 DDS
  6. AUTOSAR 自适应平台 18.03:现在使用 DDS!
  7. ROS 机器人
  8. 快速制造指南
  9. 物联网之路
  10. 工业物联网平台买家指南
  11. PCB 加强筋指南
  12. 重型机械现场服务和维修指南