第一章 Fast-DDS 技术基础与发展背景

6 阅读5分钟

1.1 技术基础与发展背景

章节状态:已完成
更新时间:2026-05-21


一、生活化通俗类比

类比:从"传纸条"到"校园广播系统"

阶段1:点对点传纸条(Socket通信)

  • 小明想告诉小红一件事,写纸条直接递过去
  • 问题:小红不在座位怎么办?多人想听怎么办?

阶段2:班级公告栏(消息队列)

  • 小明把消息贴到公告栏,小红有空来看
  • 问题:不同班级看不到彼此的公告栏

阶段3:校园广播系统(DDS)

  • 小明在广播室说:"我是三年级二班的小明,主题是'运动会通知',内容是..."
  • 全校各班级订阅了"三年级二班+运动会"这个频道的都能收到
  • 不需要知道谁在听,不需要知道对方在哪间教室
  • 可以要求"必须每个人都听到"(可靠传输)或"听到最新就行"(尽力传输)
  • 可以要求"只保留最近3条通知"(历史策略)

DDS就是这个"校园广播系统"的标准协议


二、专业化标准定义与技术原理

2.1 DDS是什么

DDS(Data Distribution Service,数据分发服务) 是OMG(Object Management Group)制定的**以数据为中心的发布订阅(DCPS)**中间件标准。

属性说明
全称Data Distribution Service for Real-Time Systems
标准版本DDS v1.4 (2015), DDS-RTPS v2.5 (2023)
核心模型以数据为中心的发布订阅(DCPS)
传输方式支持UDP、TCP、共享内存、零拷贝等多种传输
QoS支持22+种服务质量策略
实时性微秒级延迟,适用于自动驾驶、工业控制

2.2 技术演进时间线

timeline
    title DDS技术演进历程
    2004 : OMG发布DDS 1.0标准
    2007 : RTPS协议标准化(DDSI-RTPS 2.0)
    2009 : eProsima成立,开始Fast-DDS前身开发
    2013 : Fast-RTPS首个版本发布
    2015 : DDS 1.4标准发布
    2017 : Fast-RTPS 1.5支持ROS2
    2019 : Fast-RTPS更名为Fast-DDS 2.0
    2021 : Fast-DDS 2.3支持动态类型
    2023 : DDS-RTPS 2.5标准发布
    2024 : Fast-DDS 2.14/3.0版本迭代
    2025 : Fast-DDS 3.6.x持续演进

2.3 为什么需要DDS

传统中间件的痛点:

场景传统方案问题DDS解决方案
自动驾驶传感器数据量大、实时性要求高零拷贝传输、微秒级延迟
工业机器人节点动态上下线频繁自动发现机制、Plug-and-Play
分布式仿真多节点时钟同步困难时间戳管理、Deadline QoS
军工航天网络环境复杂、可能断网多种传输适配、可靠性QoS

2.4 核心概念图解

graph TB
    subgraph "DDS Domain(域)"
        subgraph "Participant A"
            Pub[Publisher<br/>发布者]
            DW[DataWriter<br/>数据写入器]
            TopicA[Topic: /vehicle/speed<br/>主题]
        end
        
        subgraph "Participant B"
            Sub[Subscriber<br/>订阅者]
            DR[DataReader<br/>数据读取器]
            TopicB[Topic: /vehicle/speed<br/>主题]
        end
        
        subgraph "Participant C"
            Sub2[Subscriber<br/>订阅者]
            DR2[DataReader<br/>数据读取器]
            TopicC[Topic: /vehicle/speed<br/>主题]
        end
    end
    
    Pub -->|创建| DW
    DW -->|发布数据| TopicA
    TopicA -.->|匹配| TopicB
    TopicA -.->|匹配| TopicC
    TopicB -->|接收数据| DR
    DR -->|读取| Sub
    TopicC -->|接收数据| DR2
    DR2 -->|读取| Sub2
    
    style TopicA fill:#e1f5ff
    style TopicB fill:#e1f5ff
    style TopicC fill:#e1f5ff

2.5 Fast-DDS在DDS生态中的位置

graph TB
    subgraph "DDS实现生态"
        direction TB
        
        subgraph "商业实现"
            RTI[RTI Connext DDS<br/>市场份额最大]
            Vortex[ADLINK Vortex OpenSplice]
        end
        
        subgraph "开源实现"
            FastDDS[eProsima Fast-DDS<br/>ROS2默认]
            Cyclone[Eclipse Cyclone DDS<br/>轻量级]
            OpenDDS[OpenDDS<br/>ACE/TAO基础]
            Gurum[Gurum DDS<br/>韩国]
        end
        
        subgraph "上层应用"
            ROS2[ROS2<br/>机器人操作系统]
            AUTOSAR[AUTOSAR Adaptive]
            Simulink[MATLAB/Simulink]
        end
        
        FastDDS --> ROS2
        Cyclone --> ROS2
        RTI --> AUTOSAR
        RTI --> Simulink
    end
    
    style FastDDS fill:#90EE90

三、行业应用场景

3.1 主要应用领域

领域典型场景代表用户
自动驾驶传感器融合、决策规划、车辆控制百度Apollo、AutoWare
机器人ROS2通信中间件各大机器人公司
工业自动化PLC通信、产线控制西门子、博世
航空航天飞控系统、航电网络NASA、波音、空客
国防军工舰载/机载系统、C4ISR各国军工企业
能源电力电网调度、变电站自动化国家电网、南方电网

3.2 Fast-DDS的典型部署架构

graph TB
    subgraph "自动驾驶车辆"
        subgraph "传感器域"
            Lidar[激光雷达<br/>Topic: /lidar/points]
            Camera[摄像头<br/>Topic: /camera/image]
            Radar[毫米波雷达<br/>Topic: /radar/tracking]
        end
        
        subgraph "计算域"
            Perception[感知模块<br/>订阅: /lidar /camera /radar<br/>发布: /perception/objects]
            Planning[规划模块<br/>订阅: /perception/objects<br/>发布: /planning/trajectory]
            Control[控制模块<br/>订阅: /planning/trajectory<br/>发布: /control/command]
        end
        
        subgraph "执行域"
            Chassis[底盘执行器<br/>订阅: /control/command]
        end
        
        Lidar -->|SHM零拷贝| Perception
        Camera -->|SHM零拷贝| Perception
        Radar -->|SHM零拷贝| Perception
        Perception -->|SHM| Planning
        Planning -->|SHM| Control
        Control -->|SHM| Chassis
    end
    
    subgraph "云端/车路协同"
        V2X[V2X通信单元<br/>Domain: 2]
        Cloud[云端服务器<br/>Domain: 2]
    end
    
    Perception -.->|UDP| V2X
    V2X -.->|UDP| Cloud

四、推荐材料学习

4.1 国内资源

类型资源名称链接/说明推荐指数
视频B站-ROS2与DDS原理搜索"ROS2 DDS"相关教程⭐⭐⭐⭐
博客知乎-DDS协议详解搜索"DDS中间件"专题文章⭐⭐⭐⭐
社区古月居-ROS2通信机制www.guyuehome.com/⭐⭐⭐⭐⭐
文档鱼香ROS-DDS教程fishros.com/⭐⭐⭐⭐

4.2 国外资源

类型资源名称链接推荐指数
官方文档Fast-DDS官方文档fast-dds.docs.eprosima.com/⭐⭐⭐⭐⭐
规范文档OMG DDS Specificationwww.omg.org/spec/DDS/⭐⭐⭐⭐⭐
视频YouTube-ROSCon演讲搜索"ROSCon DDS"⭐⭐⭐⭐
技术博客LWN-DDS相关lwn.net/⭐⭐⭐⭐
播客CppCastcppcast.com/⭐⭐⭐

4.3 学术论文

论文作者/会议一句话摘要链接
The Data Distribution ServiceOMG标准文档DDS规范权威定义www.omg.org/spec/DDS/
DDSI-RTPSOMG标准文档RTPS协议详细规范www.omg.org/spec/DDSI-R…
ROS2: The Robot Operating SystemROS2设计论文ROS2架构与DDS集成搜索"ROS2 design paper"

4.4 AI拓展工具

工具用途使用场景
ChatGPT/Claude代码解释阅读复杂源码时辅助理解
GitHub Copilot代码辅助二次开发时自动生成代码
Mermaid Live Editor架构绘图mermaid.live/
DeepL文档翻译翻译OMG规范文档

五、数据源标注

5.1 官方规范文档

文档版本链接
DDS Specificationv1.4www.omg.org/spec/DDS/1.…
DDSI-RTPS Specificationv2.5www.omg.org/spec/DDSI-R…
DDS-XTypesv1.3www.omg.org/spec/DDS-XT…
DDS-Securityv1.1www.omg.org/spec/DDS-SE…

5.2 Fast-DDS官方资源

资源链接
GitHub仓库github.com/eProsima/Fa…
官方文档fast-dds.docs.eprosima.com/
API参考fast-dds.docs.eprosima.com/en/latest/f…
设计文档/home/my/code/opensource/Fast-DDS/mdDoc/

5.3 源码关键入口

路径说明
/home/my/code/opensource/Fast-DDS/include/fastdds/dds/DDS标准API头文件
/home/my/code/opensource/Fast-DDS/include/fastrtps/rtps/RTPS协议实现头文件
/home/my/code/opensource/Fast-DDS/src/cpp/rtps/RTPS核心实现源码
/home/my/code/opensource/Fast-DDS/examples/cpp/官方示例代码
/home/my/code/opensource/Fast-DDS/mdDoc/项目内部文档

六、本节小结

核心要点:

  1. DDS是OMG制定的以数据为中心的发布订阅中间件标准
  2. Fast-DDS是开源DDS实现,ROS2的默认中间件
  3. 核心优势:自动发现、丰富QoS、多传输支持、实时性
  4. 主要应用:自动驾驶、机器人、工业控制、航空航天

七、学习检查清单与解答

检查项解答要点
DDS与消息队列的区别?DDS:以数据为中心,自动发现,去中心化,无Broker,微秒级延迟,适合实时控制。
Kafka/RabbitMQ:以消息为中心,需配置Broker,毫秒级延迟,适合日志/事件处理。
类比:DDS像"校园广播",MQ像"邮局寄信"。
DCPS核心概念?Domain:逻辑隔离的通信域(如不同车辆)。
Topic:数据主题(如/vehicle/speed)。
Participant:域内通信节点。
Publisher/Subscriber:发布/订阅实体。
DataWriter/DataReader:实际读写数据的对象。
Fast-DDS在生态中的位置?开源DDS实现三强之一(Fast-DDS/Cyclone DDS/OpenDDS)。
ROS2默认中间件,生态最活跃。
相比RTI商业版:免费、源码开放、社区支持好。
DDS主要应用领域?自动驾驶:传感器数据融合(百度Apollo)。
机器人:ROS2通信基础。
工业控制:产线PLC通信。
航空航天:飞控系统(NASA/波音)。
国防军工:C4ISR系统。

本章内容按五件套规范编写:生活化类比 → 专业定义 → Mermaid图例 → 推荐材料 → 数据源标注