ROS2架构与通信模型

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

ROS 2是ROS的下一代版本,采用分布式架构和DDS通信,支持多语言、多机器人系统、微控制器、实时控制及跨平台,并取消ROS Master以提升可靠性与安全性。相比ROS 1,它解决了多机器人、跨平台、实时性、网络连接和产品化等根本问题,更适用于复杂机器人系统开发。

🔎

延伸解读

从ROS 1到ROS 2:架构变革的核心驱动力

ROS 1在科研领域虽广泛应用,但其基于Linux、依赖ROS Master的集中式架构,导致在多机器人、跨平台、实时性、网络安全和产品化方面存在根本缺陷。ROS 2通过分布式架构、DDS通信、去中心化发现机制等,针对性地解决了这些痛点,使机器人系统从原型走向产品成为可能。

DDS:ROS 2通信的基石

DDS是一种为实时系统设计的数据分发/订阅标准,采用以数据为中心的发布/订阅模型,创建全局数据空间。它最早应用于美国海军,现已成为美国国防部强制标准,并广泛应用于国防、民航、工业控制等领域。ROS 2内部提供DDS抽象层,用户无需关注底层DDS厂商,即可获得可靠、实时、分布式的数据交换能力。

QoS策略:灵活控制通信质量

QoS Policy是ROS 2新增的重要概念,允许用户根据场景需求配置通信的时间限制、可靠性、持续性和历史记录等。例如,可靠性可选择BEST_EFFORT或RELIABLE模式,持续性可让新加入的节点获取历史数据。这种灵活性使ROS 2能适应从实时控制到大数据传输的不同应用。

ROS 1与ROS 2的桥接与过渡

ROS 2提供了ros1_bridge功能包,可实现ROS 1与ROS 2之间的数据转换。对于已有ROS 1系统的开发者,这提供了一条渐进式迁移路径,无需完全重写代码即可逐步引入ROS 2的新特性,降低了升级成本。

❓

Q&A

ROS2和ROS1的主要区别是什么?

ROS2采用分布式架构和DDS通信,取消了ROS Master,支持多语言、多机器人系统、微控制器、实时控制和跨平台,并增强了可靠性和安全性。

ROS2为什么取消ROS Master?

ROS1强依赖ROS Master,一旦Master宕机整个系统会崩溃。ROS2取消Master,改用Discovery发现机制让节点直接建立连接,提高了系统的可靠性和稳定性。

ROS2的通信模型包含哪些关键概念?

ROS2通信模型基于DDS,包含参与者、发布者、订阅者、数据写入器、数据读取器、话题和质量服务原则(QoS Policy)等关键概念。

ROS2中的DDS是什么?

DDS(数据分发服务)是一种由OMG发布的分布式实时系统数据发布/订阅标准,采用以数据为中心的发布/订阅模型,创建全局数据空间,支持可靠、实时和分布式的数据交换。

ROS2支持哪些操作系统?

ROS2支持Linux、Windows、macOS、RTOS,甚至没有操作系统的裸机。

ROS2如何实现与ROS1的通信?

ROS2提供了ros1_bridge功能包,可以实现ROS1与ROS2之间的数据转换。

🏷️

标签

➡️

继续阅读