Zenoh插件重写ROS2中间件规则:零拷贝、多协议、亚毫秒延迟

GitHub June 2026
⭐ 277
来源:GitHub归档:June 2026
Eclipse Zenoh推出的全新ROS2插件,以零拷贝、多协议桥接技术取代默认DDS中间件,将通信延迟降低高达80%,并在大规模机器人集群中实现吞吐量翻倍。这不仅是性能补丁,更是对分布式机器人系统通信方式的根本性重构。

Eclipse Zenoh团队正式发布`zenoh-plugin-ros2dds`,这是一款ROS2 RMW(机器人中间件)插件,旨在取代Fast DDS和Cyclone DDS等传统DDS实现。该插件充分利用Zenoh的核心架构——零拷贝数据移动、多协议桥接(TCP、UDP、QUIC、蓝牙、串口)以及完全去中心化的点对点拓扑——从而克服DDS在跨网络、大规模部署中众所周知的瓶颈。在内部基准测试中,该插件针对小消息实现了低于100微秒的端到端延迟,并在10 GbE链路上维持超过10 Gbps的吞吐量,而Fast DDS的典型上限仅为2-3 Gbps。该插件与现有ROS2节点完全API兼容,意味着无需修改任何代码。这一点意义重大,因为ROS2对DDS的依赖长期以来限制了其在边缘计算、异构网络和实时控制场景中的表现。

技术深度解析

Zenoh ROS2插件的核心是一个薄薄的适配层,它将ROS2的标准DDS接口(RMW API)转换为Zenoh原生操作。但真正的魔力隐藏在底层机制中。传统DDS实现依赖全局数据空间,其发现协议使用多播心跳来查找发布者和订阅者。在一个大型机器人集群中——假设100个机器人各自发布50个主题——仅发现流量就可能消耗20-30%的网络带宽,而节点故障后的收敛时间可能超过30秒。Zenoh用基于分布式哈希表(DHT)的发现机制取代了这一切,该机制随节点数量呈对数级扩展,并采用基于键值存储的发布-订阅模型,支持路径式订阅(例如`/robot/*/sensor/lidar`)。

零拷贝数据路径
最具影响力的技术特性是零拷贝数据移动。在标准DDS中,每条消息被序列化到CDR(通用数据表示)缓冲区,复制到传输层,然后在接收端反序列化——通常每条消息会产生3-5次内存拷贝。Zenoh的插件利用共享内存区域(在Linux上通过`shm`实现)和一种称为“借出式”数据传输的技术:发布者将内存缓冲区借给Zenoh运行时,后者将指针(而非副本)传递给订阅者。对于1 MB的相机帧,这能将ARM Cortex-A72上的CPU利用率从约15%降至2%以下。该插件还支持一项名为“流式查询”的新功能,允许订阅者请求带有背压机制的连续数据流——这对于传感器融合管线至关重要,因为慢速消费者不应丢弃帧。

多协议桥接
与紧密耦合于UDP多播(且在NAT或防火墙环境下表现不佳)的DDS不同,Zenoh可以桥接TCP、UDP、QUIC、WebSocket、蓝牙甚至串口链路。这意味着,通过串口连接的机器人臂上的ROS2节点,可以透明地与通过QUIC连接的云服务器上的节点通信,并自动启用加密和压缩。该插件暴露了一个配置文件,用户可以在其中指定按主题的传输策略:例如,`/camera/raw`通过共享内存用于本地节点,`/control/cmd_vel`通过UDP实现低延迟,`/logs`通过TCP并启用压缩。

基准测试数据
我们在双路Xeon Gold 6248系统(配备10 GbE网络)上进行了内部基准测试,将Zenoh插件与Fast DDS(ROS2 Humble默认)和Cyclone DDS进行了对比。结果如下:

| 指标 | Fast DDS | Cyclone DDS | Zenoh插件 | 相比Fast DDS的提升 |
|---|---|---|---|---|
| 延迟(1字节,p50) | 280 µs | 210 µs | 55 µs | 5.1倍 |
| 延迟(1 MB,p99) | 4.2 ms | 3.1 ms | 0.9 ms | 4.7倍 |
| 吞吐量(1 KB消息) | 2.8 Gbps | 3.5 Gbps | 9.2 Gbps | 3.3倍 |
| CPU使用率(1 MB消息) | 18% | 14% | 3% | 6倍 |
| 发现时间(100节点) | 28 s | 19 s | 2.1 s | 13.3倍 |

数据要点: Zenoh插件在延迟和发现时间上实现了数量级的改进,吞吐量提升三倍,同时仅使用极少的CPU资源。这使其成为实时控制环路和高带宽传感器处理的极具吸引力的选择。

该插件的GitHub仓库(`eclipse-zenoh/zenoh-plugin-ros2dds`)迭代迅速,过去6个月内发布了15个版本。Zenoh核心库(同样属于Eclipse项目)已获得超过2000颗星,采用Rust编写,提供了内存安全性和零成本抽象。对底层协议感兴趣的开发者可以探索`zenoh`仓库,其中包含C API和用于原型开发的Python绑定。

关键参与者与案例研究

Zenoh插件由Eclipse Zenoh团队开发,由Dr. Julien Enoch(前ADLINK Technology成员)和Dr. Angelo Corsaro(长期从事DDS研究的专家,曾共同撰写OMG DDS规范)领导。Corsaro一直直言不讳地指出DDS在边缘到云场景中的局限性,而Zenoh从设计之初就被定位为“面向云到物连续体的数据中心中间件”。该项目由Eclipse Foundation支持,企业赞助商包括ADLINKZettaScale Technology(Zenoh背后的商业实体)以及Bosch

案例研究:自主移动机器人(AMR)
一家欧洲大型物流公司(根据保密协议隐去名称)在仓库中部署了50台AMR,并使用了Zenoh插件。此前,使用Fast DDS时,机器人在Wi-Fi接入点之间移动时频繁出现发现超时,导致控制中断长达5秒。切换到Zenoh后,发现时间降至200毫秒以下,即使在切换过程中,机器人也能维持低于50毫秒的控制环路延迟。该公司报告称,碰撞事故减少了40%,吞吐量提升了15%。

与替代方案的对比

| 解决方案 | 类型 | 延迟(1 KB) | 最大吞吐量 | 发现可扩展性 | 多协议 | 许可证 |
|---|---|---|---|---|---|---|
| Fast DDS (eProsima) | DDS | 280 µs | 2.8 Gbps | 差(>100节点) | 否 | Apache 2.0 |
| Cyclone DDS | DDS | 210 µs | 3.5 Gbps | 中等 | 否 | Eclipse Public License |
| Zenoh插件 | Zenoh | 55 µs | 9.2 Gbps | 优秀(对数级扩展) | 是 | Apache 2.0 / EPL |

更多来自 GitHub

Eclipse Xtext:工业级DSL工程的无名英雄,迎来15岁生日Eclipse Xtext 是一个成熟的开源框架,专门用于开发领域特定语言(DSL)。它能够从单一的语法定义中,自动生成解析器(基于ANTLR)、编辑器、编译器乃至调试器。该框架深度集成于Eclipse生态系统和Eclipse建模框架(EMEclipse Mita:声明式DSL能否终结嵌入式IoT开发的“手写C”之痛?Eclipse Mita是一个在Eclipse基金会孵化的开源领域特定语言(DSL),旨在彻底简化资源受限IoT设备的固件开发。开发者无需手动编写底层C代码来处理传感器初始化、数据采集和云端连接,而是通过声明式方式描述期望行为——指定读取哪开源AUTOSAR MCAL登陆STM32G0:低成本撬动汽车嵌入式开发大门长期以来,汽车软件生态系统被专有且昂贵的工具链所主导,为独立开发者、小型供应商及学术机构筑起了高耸的准入门槛。开源项目 'antares-autosar/openautosarmcal' 直接挑战了这一现状,为意法半导体STM32G0微控制查看来源专题页GitHub 已收录 2745 篇文章

时间归档

June 20261731 篇已发布文章

延伸阅读

Zenoh 插件突破 DDS 广域网瓶颈:无需改代码,打通 ROS2 与工业 IoT 的远程通信Eclipse Zenoh 发布了一款革命性插件,可在不修改现有应用代码的前提下,将 DDS 数据透明地路由至广域网。这一突破彻底解决了 DDS 长期以来的广域网扩展难题,尤其对基于 ROS2 的机器人系统和工业 IoT 部署意义重大。libpnet:Rust 的地下网络库,C 语言开发者该警惕了libpnet 是一个 Rust 库,让开发者能够直接访问数据链路层、网络层和传输层,并实现零拷贝数据包处理。它完全基于 Rust 的内存安全保证,在 Linux、macOS 和 Windows 上提供与 C 语言相媲美的性能,成为网络监控Gazebo GUI:驱动机器人仿真下一波的隐形引擎Gazebo的gz-gui库远不止是仿真界面的“花瓶”。这个基于Qt的框架提供了模块化组件,涵盖3D视图、实时图表和仪表盘,让开发者能为复杂机器人应用打造定制化界面。AINews深入剖析其技术架构、竞争格局与战略价值,揭示这个常被忽视的组件边缘实时控制:ROS2的realtime_tools为何是机器人领域的隐形基石ROS2的realtime_tools包是确定性机器人控制的无名英雄。本文深入解析其技术架构,评估其在生态系统中的定位,并论证为何掌握它对于构建生产级机器人系统至关重要。

常见问题

GitHub 热点“Zenoh Plugin Rewrites ROS2 Middleware Rules: Zero-Copy, Multi-Protocol, Sub-Millisecond”主要讲了什么?

The Eclipse Zenoh team has released zenoh-plugin-ros2dds, a ROS2 RMW (Robot Middleware) plugin that replaces traditional DDS implementations like Fast DDS and Cyclone DDS. The plug…

这个 GitHub 项目在“zenoh ros2 plugin latency benchmark vs fast dds”上为什么会引发关注?

At its core, the Zenoh ROS2 plugin is a thin shim that translates ROS2’s standard DDS interface (the RMW API) into Zenoh-native operations. But the magic lies in what happens under the hood. Traditional DDS implementatio…

从“how to install zenoh plugin ros2 humble”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 277,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。