一、概述

ROS2 基于 DDS 实现分布式节点通信机制,通过把系统拆分为独立节点、进程、跨主机去中心化组网极大提升了系统灵活性、功能扩展性、部署伸缩性;但因引入消息序列化、网络封装、协议转发、进程隔离、调度开销牺牲了原生单机紧耦合架构的极致实时性与吞吐性能


二、为什么分布式带来 灵活性 / 扩展性 / 伸缩性

1. 灵活性

  • 功能按业务拆成独立节点(感知 / 定位 / 规划 / 控制 / 驱动)
  • 节点可独立编译、独立启停、独立升级、单独调试
  • 任意节点随时接入、退出系统,不影响整体运行

2. 扩展性

  • 新增功能只需新增一个节点,不用改动原有代码架构
  • 支持插件式开发、第三方模块无缝接入
  • 算法、硬件、业务模块可团队并行开发,互不耦合

3. 伸缩性

  • 可极简部署:所有节点跑在同一开发板
  • 可分布式部署:节点拆分到多块嵌入式板卡、多台主机
  • 支持从小型机器人 → 自动驾驶整车 → 多车集群,平滑扩容

三、牺牲了哪些性能?

  1. 数据拷贝开销跨进程 / 跨主机需要序列化 + 反序列化,多次内存拷贝。
  2. 通信延迟增加DDS 协议封装、网络路由、节点发现、匹配都有额外时延。
  3. CPU / 内存开销节点进程隔离、DDS 后台线程、节点管理、心跳维护占用资源。
  4. 实时性下降相比 裸机裸线程紧耦合全局变量共享 的方式,调度抖动、响应延迟明显变大。

四、ROS2 怎么补偿性能损失(关键设计)

为了弥补分布式带来的性能下降,ROS2 做了三层补偿,不是纯牺牲:

  1. 进程内通信 Intra-Process同一可执行程序多节点,同进程零拷贝,无分布式开销。
  2. 同主机共享内存 Shared Memory不同进程、独立节点,同一主机走共享内存,绕过网络协议,接近原生性能。
  3. DDS 高性能中间件FastDDS 等优化传输、无锁队列、优先级调度,压低协议开销。

五、终极总结(可直接写文档 / 笔记)

ROS2 采用分布式节点通信架构,以牺牲裸机紧耦合架构的极致性能、实时性、吞吐效率为代价,换取了系统模块化解耦、部署灵活、功能可扩展、规模可伸缩的工程优势;同时通过进程内通信、共享内存、高性能 DDS 中间件,对性能损失做了有效补偿,兼顾分布式架构优势与嵌入式实时业务需求。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐