ROS2 + DDS 集成:当生态系统合并时 | RTI
正如 2018 年 7 月宣布的那样,第二版ROS2 - 被称为“Bouncy Bolson” - 现在可以从 ROS2 网站下载适用于 Intel Linux、Windows 和 iOS 平台。
如果这听起来很陌生,ROS(机器人操作系统)是一个用于构建机器人系统的开源框架和工具套件,它有两种主要风格: ROS——原始版本使用 Python 和 XML 的研究版本,以及 ROS2——一个使用 DDS 作为其连接框架的性能增强版本。
关于 ROS2 Bouncy Bolson
“Bouncy”版本很特别,因为它在非商业许可下的二进制发行版中包含了 RTI Connext DDS。对于将 ROS2 用于机器人应用的研究人员、评估人员和学者来说,专业级 DDS 现在是一种免费选择。
这意味着 DDS 工具和服务生态系统可供所有 ROS2 用户使用,这要归功于 DDS 固有的基于标准的互操作性,包括:
- RTI Admin Console:诊断系统连接问题的首选工具。
- RTI System Monitor:调整和优化系统性能的最佳工具。
- RTI 录音服务: 高带宽、长时间记录和回放系统中的主题数据。
- RTI 路由服务: 作为架构桥梁/网关的开箱即用解决方案。
让我们看看 RTI Admin Console 如何让诊断和理解 ROS2 连接问题变得轻而易举。我最近为 ROS2 整理了一个 LiDAR 数据源,我最初尝试使用 RViz 显示数据的结果是:没有数据。 RViz 的终端没有产生很多有用的消息:
我还使用了一些 ROS2 内置诊断命令来帮助确定无法通信的原因。例如,我可以使用“ros2 主题列表”来显示当前处于活动状态的数据项: 我对“/velodyne_points”这个话题很感兴趣: “/velodyne_points”的发布者是否生产任何数据?: 是的。 . .那么为什么 RViz 不显示数据呢?
管理控制台
让我们尝试使用 RTI 管理控制台来诊断这个问题,它可以在 RTI Launcher 中方便地使用:
从管理控制台启动的那一刻起,它就让我知道 DDS 网络参与者之间存在问题(注意红色 X 框指示器):
扩展“Domain 0”并突出我感兴趣的主题(/velodyne_points)立即显示问题的原因 – QoS 不匹配: 我的发布者提供“尽力而为”的可靠性,但 RViz 订阅者需要“可靠”的连接。 DDS 并没有让这种不匹配继续下去,而是拒绝连接并防止这种不匹配继续被忽视。管理控制台立即揭示了这种 QoS 不匹配,以及此 ROS2 DDS 网络中的所有其他参与者,包括所有通常隐藏的 ROS2 内部主题。一眼就可以确定:
- 有一些错误日志条目 - 稍后会查看。
- 有许多“仅限作家”和“仅限读者”的主题。这些主题可以发布或订阅主题,但目前没有补充订阅者或发布者。
- 该系统运行着来自不同 DDS 供应商的混合 RMW 层。这不是问题。 DDS 旨在实现多供应商互操作性。
- 与 Connext RMW 层一起运行时,类型代码信息包含在 DDS 发现流量中,并且可以在管理控制台中轻松查看:
当使用其他RMW层时,此信息被抑制。
管理控制台还可以订阅数据主题并打印或可视化它们的数据值:
在管理控制台的帮助下,我能够识别阻止数据传输的 QoS 不匹配,并在几分钟内让系统运行。
阅读更多博客文章,重点介绍组合 ROS2/DDS 生态系统的强大功能——扩展、诊断和优化 ROS/ROS2 系统,并为纯 DDS 系统提供增强的 3D 可视化.
ROS2 + DDS:互操作性领域指南
ROS2 + DDS 再玩一次
ROS 2 和 DDS:互操作性驱动下一代机器人
物联网技术