news 2026/6/26 2:44:39

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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通信中间件深度解析

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 2:38:43

[智能体-517]:AI 软件工程全流程工具(完整 SDLC 生命周期,2026 最新)

按需求分析→产品 / 架构设计→AI 编码开发→代码评审 & 安全→自动化测试→CI/CD 智能交付→基础设施 IaC→AIOps 运维监控→事故自愈→知识沉淀十段完整链路分类,区分个人 / 中小团队 / 企业级工具,含开源、SaaS、国产方案。一、需求分析与项目管理…

作者头像 李华
网站建设 2026/6/26 2:38:23

Windows 11 LTSC系统一键安装Microsoft Store的完整指南

Windows 11 LTSC系统一键安装Microsoft Store的完整指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 还在为Windows 11 LTSC版本缺少应用商店而烦恼…

作者头像 李华
网站建设 2026/6/26 2:37:15

AI、芯片、新能源、机器人……普通家庭的孩子,也能上这趟车

有家长问我:孩子想学计算机,但又怕卷。要不要换个冷门方向? 我说:你想反了。 不是先选专业,再看能去哪个行业。 是先看清哪些行业在跑,再想怎么上车。 一个被忽略的顺序问题 大多数人填志愿的思路是这样的&…

作者头像 李华
网站建设 2026/6/26 2:37:17

抖音直播“卡黑屏”技术解析:从实现原理到平台风控与合规运营

1. 项目概述:当“卡黑屏”成为一门显学 如果你在抖音上刷到某个直播间,画面突然卡住不动,主播的声音却还在继续,或者干脆整个屏幕都黑了,但评论区依然在飞速滚动,那你大概率是遇到了传说中的“卡黑屏”。这…

作者头像 李华
网站建设 2026/6/26 2:37:01

告别iTunes臃肿:3步智能安装苹果USB和网络共享驱动的高效方案

告别iTunes臃肿:3步智能安装苹果USB和网络共享驱动的高效方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com…

作者头像 李华
网站建设 2026/6/26 2:35:31

2026年下半年手工交易转量化,先找自己的代码卡点

把手工交易规则写成可执行的量化表达,表面上像是学习 Python,实际更像是把经验判断重新整理成程序能够处理的结构。不同读者进入这一步时,已有基础差别很大,所以他们遇到的阻力也不会完全相同。代码要回到规则本身有交易经验但缺少…

作者头像 李华