当前位置: 首页 > news >正文

ROS2 Lyrical Luth 发布:Zenoh 替代 DDS,嵌入式开发者迎来机器人OS「轻量化革命」

摘要:2026年5月,ROS2第12个正式版本Lyrical Luth(LTS,支持至2031年)正式发布,首次以Zenoh协议替代DDS作为默认通信中间件——这是ROS创立15年来最深刻的架构变革。Zenoh在延迟(45μs)、吞吐量(165MB/s)、内存(8MB)三指标全面碾压DDS,结合rosidl::Buffer零拷贝、EventsCBGExecutor低CPU调度、AsyncNode异步编程等关键新特性,ROS2正式从"局域网机器人框架"进化为"云边端统一OS"。本文深度拆解Zenoh协议原理、性能基准测试、Lyrical Luth十大核心特性,并给出嵌入式开发者四阶段学习路径。


一、为什么DDS必须被替代?

ROS2自2017年首个正式版Ardent Apalone起,一直以Data Distribution Service(DDS)作为底层通信中间件。DDS由OMG标准化,设计初衷是满足军工、航空等领域的实时分布式系统需求——这带来了沉重的历史包袱。

DDS架构涉及DomainParticipant(域参与者)、DataWriter/DataReader(数据读写器)、Publisher/Subscriber(发布订阅器)、Topic(主题)等多层抽象,即便开启一个最简单的节点,也要初始化发现服务、可靠性协议、持久化缓存等一系列组件。实测数据显示,基础节点内存占用高达22-35MB,对资源受限的MCU/嵌入式Linux设备而言,这是不可接受的。

更关键的是,DDS天然面向局域网设计,在云边端协同、广域网通信场景下力不从心。2026年机器人产业正加速从单体智能走向群体智能和云边协同,DDS的架构局限已成为ROS2演进的最大瓶颈。

二、Zenoh:为"万物互联"而生的下一代中间件

Zenoh(/zeno/,读作"zeno")由Eclipse基金会托管,是一个从零设计的新一代发布/订阅/查询协议,核心使命是"统一从微控制器到云数据中心的数据交互"。

2.1 协议核心模型

Zenoh的数据模型极其简洁——仅四个字段:

Key-Expression(键表达式) + Payload(载荷) + Timestamp(时间戳) + Encoding(编码)

这比DDS至少简化了两个抽象层级。Key-Expression支持通配符匹配(如robot/*/sensor/lidar),天然支持灵活的路由和过滤。

2.2 通信模式

DDS仅支持Pub/Sub单一模式,而Zenoh原生支持五种:

模式说明典型场景
Pub/Sub发布/订阅传感器数据流
Query/Reply查询/应答服务调用、参数查询
Get单次获取配置读取、状态查询
Put单次写入命令下发、参数设置
CallRPC调用远程过程调用

2.3 多传输层

Zenoh支持六种传输协议,可根据场景灵活选择:

传输协议适用场景
UDP低延迟局域网通信
TCP可靠跨网络通信
WebSocket浏览器/Web前端接入
Serial串口直连嵌入式设备
Shared Memory同机进程间通信
QUIC互联网高延迟/丢包环境

"Serial传输"对嵌入式开发者意义重大——这意味着MCU可通过UART/SPI等串行接口直接参与ROS2网络,无需完整的TCP/IP协议栈。

2.4 拓扑灵活性

Zenoh支持三种网络拓扑:

  • Peer-to-Peer:节点直连,适合小规模局域网
  • Client-Server:经典C/S架构,Server负责路由
  • Router-Based:引入Zenoh Router实现跨子网、跨WAN通信,适合多机集群和云边端架构

三、性能对决:Zenoh vs DDS 基准测试

2026年公开基准测试(本地千兆网络环境)结果如下:

延迟对比(越低越好)

中间件延迟
Zenoh45μs
CyberRT68μs
Cyclone DDS72μs
Fast DDS85μs

吞吐量对比(越高越好)

中间件吞吐量
Zenoh165 MB/s
CyberRT135 MB/s
Fast DDS120 MB/s
Cyclone DDS95 MB/s

内存占用对比(基础节点,越低越好)

中间件内存
Zenoh8 MB
Cyclone DDS22 MB
CyberRT28 MB
Fast DDS35 MB

结论:Zenoh在延迟、吞吐量、内存占用三个维度全面领先。特别是8MB vs 22-35MB的内存差距,将ROS2在嵌入式设备上的准入"门票"直接降低了3倍以上。

对于资源极度受限的场景,Zenoh还提供zenoh-pico——针对MCU优化的C99实现,可在Cortex-M系列MCU上运行,进一步压榨到KB级内存占用。

四、Lyrical Luth十大关键新特性

除了Zenoh默认中间件这一"头号新闻",Lyrical Luth还带来了多项对开发者至关重要的改进:

4.1 EventsCBGExecutor(CPU降10%-15%)

新的EventsCBGExecutor基于事件队列调度回调组,支持多ROS时间源和多线程,相比传统Single/Multithreaded Executor节省10%-15% CPU。对机器人这种需要同时处理传感器融合、规划控制、状态监控等多回调组的场景,性能提升显著。

4.2 AsyncNode:Python原生的async/await

rclpy新增AsyncNode类,支持在回调中使用Python标准async/await语法。可以优雅地实现await client.call(request)等待服务调用,或await clock.sleep(...)等待仿真时间。CPU占用显著低于传统SingleThreadedExecutor

4.3 rosidl::Buffer 零拷贝发布

这是为GPU/ML加速器量身定做的特性。通过rosidl::Buffer机制,ROS消息可直接引用GPU显存中的数据而无需CPU侧拷贝。当前rmw_fastrtps_cpp已支持,Zenoh的支持正在开发中——这意味着未来视觉SLAM、模型推理等场景可实现端到端零拷贝流水线。

4.4 运行时切换日志后端

设置RCL_LOGGING_IMPLEMENTATION环境变量即可在spdlognoop和自定义实现间切换,无需重新编译rcl。这对集成第三方框架(各有自主日志系统)的场景极为友好。

4.5 YAML类型标注

YAML参数文件支持!!str!!bool!!int!!float等显式类型标注,告别"参数被错误解析为布尔值"的经典坑。

4.6 其他值得关注的特性

  • rosbag2 消息丢失可观测性:实时发布丢包事件,数据可靠性可量化
  • Snapshot Mode 追踪:飞行记录器模式,仅在异常时落地磁盘,生产环境友好
  • URDF 1.2:支持四元数、胶囊体几何、加速度/减速度/加加速度限幅
  • fish shell 支持source /opt/ros/lyrical/setup.fish
  • 多主题带宽监控ros2 topic bw --all实时查看各主题带宽

五、嵌入式开发者的机遇与决策

5.1 Micro-ROS生态直接受益

Micro-ROS是ROS2在MCU上的轻量化实现,过去绑定Cyclone DDS或基于Micro XRCE-DDS的客户端模式。Zenoh的引入和zenoh-pico的成熟,使Micro-ROS在资源占用和功耗上的"最后一公里"被打通。可以预测,未来1-2年将出现大量基于Zephyr/FreeRTOS + Micro-ROS + Zenoh的机器人嵌入式节点方案。

5.2 中间件选型决策矩阵

实时性要求 硬实时(μs) 软实时(ms) 云边协同 ├─────────┬─────────┬──────────────┤ 资源充裕 │ RTI │ Fast │ Zenoh │ (Xeon/AGX) │ Connext │ DDS │ (Router拓扑) │ ├─────────┼─────────┼──────────────┤ 资源受限 │ — │ Cyclone │ Zenoh │ (ARM A/MCU) │ │ DDS │ (P2P/Serial) │ └─────────┴─────────┴──────────────┘

建议

  • 硬实时+安全认证(如手术机器人)→ RTI Connext(唯一通过ISO 26262 ASIL D的ROS2中间件)
  • 通用机器人开发→ Zenoh(性能最优、资源最低、功能最全)
  • 存量项目迁移→ 可继续使用Cyclone/Fast DDS,ROS2保证RMW层的兼容性

5.3 四阶段学习路径

阶段时长内容目标
入门2周Ubuntu 24.04安装ROS2 Lyrical,ros2 topic/service/param命令行,理解Node/Topic/Service基本概念跑通hello_world
进阶4周Zenoh Pub/Sub + Query模式编程,C++/Python双语言实践,EventsCBGExecutor调度调优,rosbag2录制回放独立开发机器人应用
实战6周Micro-ROS + Zenoh + MCU(ESP32/STM32)实战,MoveIt2/Nav2集成,Gazebo仿真构建完整机器人系统
精通长期URDF 1.2建模、ros2_tracing性能分析、自研rosidl::Buffer后端、自定义RMW实现框架级贡献者

六、理性展望:Zenoh还有哪些挑战?

尽管Zenoh优势明显,但在以下方面仍需观察:

  1. 生态成熟度:DDS有15年军工/工业验证历史,Zenoh在极端工况(如高辐射、强电磁干扰)下的鲁棒性尚待验证
  2. 认证进度:ISO 26262功能安全认证覆盖Zenoh仍需时间,自动驾驶量产项目短期内仍依赖RTI Connext
  3. 多厂商互操作:DDS的RTPS线协议定义了严格的多厂商互通规范,Zenoh的互操作标准化程度尚不及DDS
  4. 迁移成本:已基于DDS深度定制的ROS2项目(如自定义QoS策略、Discovery机制),迁移到Zenoh需要系统工程级改造

七、总结

ROS2 Lyrical Luth的本质意义不在于"又一个版本发布",而在于ROS从局域网机器人框架向云边端统一操作系统的范式跃迁。Zenoh替代DDS是这一跃迁的引擎——它以更低的资源占用、更丰富的通信模式、更灵活的网络拓扑,为机器人的群体智能、多机协同、云端运维打开了通道。

对嵌入式开发者而言,这可能是近五年来最重要的机器人技术消息:ROS2的门槛从"ARM A系列+Linux"降低到了"Cortex-M+RTOS"。当你的MCU也能直接接入ROS2生态时,机器人软件栈的统一化将进入全新阶段。

建议所有嵌入式/机器人方向的开发者立即动手:装一个Ubuntu 24.04,跑一遍sudo apt install ros-lyrical-desktop,然后写一个Zenoh Pub/Sub的demo。这一小步,可能是你职业生涯的一大步。


参考来源:ROS 2 Lyrical Luth Release Notes、Eclipse Zenoh、ROS2中间件性能基准(arXiv:2309.07496v2)、ROS2通信中间件深度解析

http://www.jsqmd.com/news/1078702/

相关文章:

  • 从零构建 DeepClassify:一个本地代码工程智能管理 Agent
  • 机器学习新手实操地图:5种可解释算法从入门到运行
  • TscanCode深度解析:高性能多语言静态代码分析引擎架构与优化策略
  • 3dsmax更换背景的详细操作
  • 关于算法稳定性与数据分布的内在联系研究的技术8
  • [智能体-517]:AI 软件工程全流程工具(完整 SDLC 生命周期,2026 最新)
  • 使用subagent组建WPF视觉开发团队,全自动开发
  • 时间序列回归实战:滞后特征与滑动窗口工程指南
  • Java国密SM2算法实战:从Bouncy Castle集成到Spring Boot应用
  • 展筑沪上势能:2026上海靠谱展厅设计搭建公司深度实测梳理
  • 第三视觉理解徐玉生与他的商业活动(3)
  • 关于图染色问题的NP完全性与启发式求解的技术8
  • 决策树分类:可解释AI的透明逻辑与工业级落地
  • 多智能体(Multi-Agent)协同:从Workflow失控到Orchestration编排
  • 你会亲手构建什么
  • 如何从Search Agent 方向,切入到 Coding Agent?
  • Elasticsearch介绍
  • IntelliJ IDEA离线安装全攻略(含JetBrains Toolbox替代方案):无网络环境下的3种纯净部署路径,企业IT管理员已批量验证
  • AI 大模型 API 调用报错怎么查?先从错误码看起
  • 最新用 AI 学量化表达,别脱离 Python 和 API 流程
  • RAG的另类思考
  • 计算机岗位100篇___大模型应用开发工程师
  • Leader 考核实习生:“你怎么配置 Claude Code?” 我挠头:“多写 Skills?” 她摇头:“明天别来了!”
  • HIP 编译器优化详解,ROCm 7.x 如何提升大模型推理效率
  • 最新量化开发提效,AI 先检查代码逻辑和流程缺口
  • API 接口可达性检测指南:Postman 能通、全国用户不通的真相
  • AI会成为跟编辑器一样新的一个中间层
  • aeneas:音频和文字自动对齐,支持38种语言
  • Redis 缓存穿透与雪崩问题解决方案
  • 【设计文档+源码+数据集】基于YOLOv8+Flask的罂粟识别系统