机器人系统 ROS 与 ROS2 有以下区别:
- 系统架构与通信机制
- ROS:使用自定义中间件,有中央化的 ROS Master 节点管理通信,基于发布 - 订阅模型、服务调用和参数服务器等通信机制,主要采用 XML - RPC 通信协议。
- ROS2:引入 DDS 作为通信中间件,去除了 ROS Master 节点,采用分布式通信框架,每个节点可直接通过 DDS 通信,支持 UDP、TCP 和共享内存等多种通信协议。
- 实时性与性能
- ROS:在实时性能方面存在一定限制,节点间数据传递通过内存复制,可能浪费大量系统资源在通讯上。
- ROS2:采用 DDS 通信,具有软实时和硬实时能力,引入服务质量(QoS)管理机制,能保证较差网络环境下的通讯效果,消息传递实时性更佳,运行更可靠,持续性更好,更节省资源。
- 操作系统支持
- ROS:主要支持 Linux 系统。
- ROS2:除了主流 PC 操作系统 Windows、Mac、Linux 外,甚至还支持 RTOS,让开发者有更多选择和可能性。
- 应用层开发