Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Fast DDS

eProsima 的高性能 DDS 中间件——ROS 2 底层的默认传输层

许可证

Apache-2.0

概述

Fast DDS(前身为 Fast RTPS)是 eProsima 对 OMG 数据分发服务(DDS)标准及其 RTPS 线路协议的 C++ 实现。它提供去中心化、无代理(broker-less)的发布-订阅通信,并具备细粒度的服务质量(QoS)控制;它是 ROS 2 的默认中间件(rmw_fastrtps),这意味着世界上大多数 ROS 2 机器人的每一个话题、服务和动作底层都运行着 Fast DDS。

Fast DDS 实现了完整的 DDS 规范:DomainParticipant、话题、发布者和订阅者通过 UDP、TCP、共享内存或自定义传输自动相互发现,并以点对点方式通信,QoS 策略涵盖可靠性、持久性、截止时间、活跃度和历史记录。性能特性包括支持同主机进程零拷贝传递的共享内存传输、异步流量控制器,以及静态发现模式和 Discovery Server(发现服务器),后者适用于组播发现无法扩展的大型或受限网络。项目附带 Fast DDS-Gen(IDL 代码生成)、供 eProsima Fast DDS Monitor 使用的统计和监控钩子,并支撑着微控制器上的 micro-ROS。作为 ROS 2 的默认 rmw 层,其版本发布与 ROS 2 发行版紧密同步,是所有中间件中经受最大规模机器人部署检验的实现之一。

为何重要

Fast DDS 可以说是大多数开发者从未直接接触、却部署最广泛的机器人基础设施:作为 ROS 2 的默认中间件,它承载着大多数 ROS 2 机器人的通信流量,也是为数不多完整、有商业支持的开源 DDS 实现之一。

解决的问题

分布式机器人系统需要进程间和机器间可靠、低延迟、可配置的通信,且不能有中央代理这样的单点故障。Fast DDS 提供基于标准的发布-订阅机制,以及实时系统所需的 QoS 控制,覆盖从微控制器到多机器人集群的场景。

要点

  • OMG DDS 标准和 RTPS 线路协议的完整开源实现
  • 近年各 ROS 2 发行版的默认中间件(rmw_fastrtps)
  • 共享内存和零拷贝传输实现同主机高吞吐量通信
  • Discovery Server 和静态发现让 DDS 扩展到不适合组播的网络
  • 通过 eProsima Micro XRCE-DDS 为微控制器级设备驱动 micro-ROS

适用人群

  • 调优通信和 QoS 的 ROS 2 开发者
  • 分布式与实时系统工程师
  • 机器人平台与基础设施团队
  • 使用 micro-ROS 的嵌入式开发者

局限

  • DDS 概念和 QoS 组合矩阵学习曲线陡峭
  • 基于 XML 的配置文件冗长,容易出现难以察觉的错误
  • 超出 RTPS 基线的跨厂商 DDS 互操作可能需要额外注意
  • 针对有损 Wi-Fi 网络的精细调优通常需要传输层专业知识

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。