micro-ROS:把 ROS 2 塞进单片机,双主控架构的那座桥
MCU 管实时控制、SBC 管导航与感知——这是机器人最稳的分工。micro-ROS 是让两层说话不费劲的那座桥。
- 许可
- Apache 2.0
- 协议
- XRCE-DDS(与 ROS 2 的 DDS 图桥接)
- 支持板
- STM32 / ESP32 / RP2040 等
- 上手
- 固件按目标板定制编译;官方支持主流开发板
- 角色
- 实时层与 ROS 2 图之间的标准桥
- 它解决什么问题
- 它解决的是「两层架构的桥要不要自己写」。没有它,MCU 与树莓派之间你要自定义串口协议、自己处理丢包、自己维护格式版本;有了它,MCU 上的程序就是一个正经 ROS 2 节点——话题、服务、参数与上层一致。架构上省掉的,正是自造组件里最容易出隐蔽 bug 的那一层。
- 替代品与对照
- 自己写串口协议(简单遥控场景完全够,调试更直观);ros2_control 加硬件接口(同一台机器上有实时内核时);全跑在 SBC 上(不做实时,演示级)。判断标准一条:控制环路的时间确定性要不要保证。要,就走它;不要,自己写更快。
- 上手要付出什么
- 门槛在工具链不在概念:固件按目标板编译(官方支持主流板,但交叉编译环境、RTOS 配置、主机侧 Agent 的部署都要自己踩),第一次跑通按天计。先在官方示例板上跑通,再换自己的板——一次换两个变量是调试的大忌。
- 已知的坑
- ①XRCE-DDS 的 QoS 与桌面 DDS 不完全对齐,大消息(图像)别走这条桥;②固件编译配置与板强绑定,换板要重配;③主机侧 Agent 挂了整层失联——Agent 要做成系统服务并配自动重启,这一条在文档里,但被跳过的次数比被执行的多。
- 我们核过什么
- 我们核过:①许可与协议(Apache 2.0 / XRCE-DDS)②对 RP2040、ESP32、STM32 的官方支持 ③「Agent 做成服务」是官方部署建议。没核过:我们自己没部署过——各板的固件编译工时来自社区报告。分级停在这一档。
这个站怎么判
做轮式小车或任何「MCU + SBC」双主控的机器,它值得——省掉的那层自造协议正是最隐蔽 bug 的窝。但它不是必需品:简单遥控车自己写串口更快。判断点是你有没有实时控制环路:有,它省的力气比它花的时间值;没有,先别上。
来源
- micro-ROS 官方文档(支持板、XRCE-DDS、部署建议)
涉及的对象
最后核实 2026-09-28