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

ROS 2 与 DDS 互操作性:无缝集成实用指南

ROS 2 与 DDS 互操作性:无缝集成实用指南

ROS 2 依赖 DDS 作为底层通信层,但要在原生 DDS 部署与 ROS 2 之间实现完美互操作仍面临微妙挑战。本指南提炼了截至“Bouncy Bolson”(2018 年 7 月)ROS 2 版本被证明有效的实用步骤和配置调整,帮助团队避开常见陷阱,充分发挥 Connext DDS 在 ROS 2 中的威力。

ROS 2 现状

ROS 2 快速演进,未来版本可能引入额外互操作性细节。然而,当您使用 rmw_connext_cpp RMW 层运行 ROS 2 时,您仍在使用原生 Connext DDS 栈。这意味着您保留 Connext 所有高级功能——如细粒度 QoS 控制和多传输支持——同时享受 ROS 2 的高层抽象。

关键互操作性设置

主题名称与分区

ROS 2 将主题的命名空间编码在主题名称或 DDS 分区中。所有 ROS 2 用户主题驻留在“rt”(ROS Topic)命名空间。在 DDS 中表示为:

ROS 2 与 DDS 互操作性:无缝集成实用指南

主题数据类型

当 Connext RMW 层激活时,ROS 2 以通用序列化类型通告每个“rt/*”主题。结果,发布原始强类型数据的纯 DDS 应用将经历 QoS 不匹配而无法连接。

ROS 2 与 DDS 互操作性:无缝集成实用指南

最直接的补救是抑制 ROS 2 参与者的自动类型代码发布。在启动 ROS 2 节点的目录添加 USER_QOS_PROFILES.xml 文件。隐藏类型代码并禁用类型对象共享的最小配置如下:

ROS 2 与 DDS 互操作性:无缝集成实用指南

可根据应用调整可靠性设置;上例以“Best Effort”为起点。

请记住,此 QoS 文件仅适用于从同一目录启动的 ROS 2 节点。若需隔离配置,请在每个节点的启动文件夹旁放置专用 USER_QOS_PROFILES.xml。

传输选择

当 DDS 系统和 ROS 2 系统共享同一网络时,可能出现关于缺失或不支持传输(如仅支持 udpv4 的参与者上 udpv6 不可用)的警告。为避免此类警告并确保可靠连接,显式配置传输偏好。

  1. 在 USER_QOS_PROFILES.xml 中通过在 <participant_qos> 内添加 <transport_builtin> 掩码定义允许的传输:
<participant_qos> <transport_builtin> <mask>UDPV4|SHMEM</mask> </transport_builtin> </participant_qos> 
  1. 在启动目录创建 NDDS_DISCOVERY_PEERS 文件并列出希望发现的对等地址。禁用多播发现的逗号分隔示例:
localhost,192.168.1.12,shmem:// 

在 ROS 2 中选择 RMW 层

启动 ROS 2 节点前,始终将 RMW_IMPLEMENTATION 环境变量设为 rmw_connext_cpp:

export RMW_IMPLEMENTATION=rmw_connext_cpp 

或在启动节点时内联传递:

RMW_IMPLEMENTATION=rmw_connext_cpp ros2 run demo_nodes_cpp talker 

无界序列与字符串

某些 ROS 2 主题包含无界序列或字符串。若您的 DDS 应用需消费或发布这些主题,请在 DDS 代码生成器中启用“Unbounded Support”。参阅 RTI 文档了解如何在代码生成期间切换此选项。

ROS 2 与 DDS 互操作性:无缝集成实用指南

后续步骤

我们将在本系列下一期介绍当前 ROS 2 功能集中的一个临时空白——主题数据的记录与回放。与此同时,若您准备部署强大的 DDS 支持 ROS 2 解决方案,请联系 RTI 专家。我们将助您微调配置并加速上市。


物联网技术

  1. 专业重型机械现场服务与维修:快速复工
  2. 激光打标综合指南:类型、优势与应用
  3. ROS 机器人:树莓派终端控制导航
  4. 快速制造:为定制与低量零件加速生产
  5. 掌握PCB加强筋:柔性PCB完整指南
  6. OpenDDS 与 RTI Connext DDS:选择正确的数据分发服务解决方案
  7. 使用 RTI Recording Service 与 DDS 回放 ROS2 LiDAR 数据
  8. ROS2 Bouncy Bolson 免费捆绑 RTI Connext DDS:提升连接与诊断
  9. Qt 与 DDS 集成:构建可扩展物联网应用
  10. AUTOSAR 自适应平台 18.03 发布 DDS 支持——自动驾驶的变革性里程碑
  11. 物联网革新现场服务:预测性维护驱动更高ROI
  12. 工业物联网平台选型指南:专家建议与决策清单