1. FAST DDS概述与核心价值
FAST DDS(原名Fast RTPS)是eProsima公司基于DDS(Data Distribution Service)标准开发的高性能开源中间件。作为OMG组织定义的DDS规范实现,它专为需要低延迟、高吞吐量的分布式系统设计。我在工业机器人控制系统中首次接触FAST DDS时,其微秒级的端到端延迟表现让我印象深刻。
这个中间件的核心优势在于:
- 实时性:采用零拷贝架构和共享内存传输,实测在千兆网络环境下可实现<100μs的端到端延迟
- 灵活性:支持多种传输协议(UDP/TCP/共享内存)和QoS策略配置
- 跨平台:完整支持Linux、Windows和嵌入式系统(如ARM架构的树莓派)
典型应用场景包括:
- 自动驾驶系统的传感器数据分发(如激光雷达点云)
- 工业4.0中的设备间实时通信
- 无人机集群的协同控制
- 医疗机器人手术指令传输
注意:虽然官方文档推荐Ubuntu 20.04,但我在Ubuntu 22.04上通过源码编译也取得了成功,关键是要确保依赖库版本兼容。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 编译环境准备与依赖安装
2.1 基础工具链配置
在Ubuntu 20.04/22.04上需要先安装编译工具链:
bash复制sudo apt update
sudo apt install -y \
cmake \
g++ \
python3-pip \
wget \
git \
libssl-dev
这里有几个容易踩的坑:
- g++版本:必须≥7.3(检查命令:
g++ --version),否则会遇到C++17特性不支持的问题 - CMake版本:需要≥3.16(可通过
cmake --version验证),旧版本会导致配置阶段报错 - Python环境:建议使用系统自带的Python3,避免Anaconda等虚拟环境可能导致的路径问题
2.2 关键依赖库安装
FAST DDS依赖两个核心组件:
bash复制sudo apt install -y \
libasio-dev \
libtinyxml2-dev \
libssl-dev \
libboost-dev
特殊情况下可能需要源码编译依赖:
- 当系统仓库中的库版本过低时(如Ubuntu 18.04),需要手动编译安装:
bash复制# 以asio为例 wget https://sourceforge.net/projects/asio/files/asio/1.22.0%20%28Stable%29/asio-1.22.0.tar.bz2 tar -xjf asio-1.22.0.tar.bz2 cd asio-1.22.0 ./configure --prefix=/usr/local make -j$(nproc) sudo make install
3. 分步编译安装FAST DDS
3.1 内存管理库编译
首先安装foonathan_memory:
bash复制mkdir -p ~/fastdds_ws && cd ~/fastdds_ws
git clone https://github.com/eProsima/foonathan_memory_vendor.
