一、micro-ROS 与 标准 ROS 2 核心对比(一句话总览)

micro-ROS = 标准 ROS 2 的嵌入式轻量化裁剪版:API 高度兼容、通信协议同源,但专为 MCU/RTOS 优化了内存、调度与中间件,必须通过 micro-ROS Agent 接入标准 ROS 2 网络


二、详细对比表(核心维度)

对比项 标准 ROS 2 (Desktop / 工控机) micro-ROS (MCU/RT-Thread)
定位 机器人上层智能(导航、SLAM、AI、决策) 机器底层实时控制(电机、传感器、MCU)
运行环境

Linux/Windows/macOS、

大内存 / 多核 CPU

MCU+RTOS(RT-Thread/FreeRTOS/NuttX)、

极小内存 (RAM~64KB)

micro-ROS

通信中间件 原生 DDS(FastDDS/CycloneDDS) XRCE-DDS Client(轻量 DDS 代理),需配合 micro-ROS Agent 转发micro-ROS
核心 API RCLC++ / RCLPython(面向对象、动态内存)

RCLC (C 语言)静态内存、无动态分配micro-ROS

不支持python,支持C语言应用程序

内存管理 堆内存、动态分配、无严格上限 全静态内存池、编译期定大小、零动态 malloc
线程 / 调度 多线程、抢占、OS 原生调度 单线程 Executor、轮询、与 RTOS 线程协同micro-ROS
消息序列化 标准 CDR Micro-CDR(极小版 CDR)
资源占用 Flash/ROM:数百 MB;RAM:数百 MB+ Flash:~128KB+;RAM:~64KB+(最小)
网络接入 直接 DDS 组播 MCU ↔ Agent(串口 / UDP) ↔ ROS 2 DDS 网络
功能覆盖

全功能:

话题 / 服务 / 动作 / 参数 / 生命周期 / TF

核心子集:

话题 / 服务 / 基本 QoS / 参数(精简)


三、micro-ROS 的获取与部署(3 种主流方式)

方式 1:PC 端工具链 + 源码编译(推荐,适配 RT-Thread)

前提:Ubuntu + ROS 2 Humble(与 RT-Thread 版本匹配)

bash

运行

# 1. 创建工作空间
mkdir -p ~/microros_ws/src && cd ~/microros_ws
source /opt/ros/humble/setup.bash

# 2. 拉取micro-ROS构建工具:micro-ROS
git clone -b humble https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

# 3. 安装依赖 & 编译工具
rosdep update && rosdep install --from-paths src --ignore-src -y
colcon build
source install/local_setup.bash

# 4. 生成RT-Thread固件库(自动下载所有依赖)
# 支持:rtthread/art-pi/stm32f4/f7/h7等
ros2 run micro_ros_setup create_firmware_ws.sh rtthread art-pi
方式 2:RT-Thread 软件包(ENV/RT-Thread Studio)
  • 软件包名micro_ros_rtthread_component
  • menuconfig 路径RT-Thread online packages → IoT - internet of things → micro-ROS
  • 启用后:scons --build_microros 自动编译客户端库
方式 3:Docker 快速启动 Agent(PC 端必备)

bash

运行

# 串口通信(MCU ↔ PC)
docker run -it --rm \
  --privileged -v /dev:/dev \
  microros/micro-ros-agent:humble \
  serial --dev /dev/ttyUSB0

# UDP以太网(更高速)
docker run -it --rm --net=host \
  microros/micro-ros-agent:humble \
  udp4 --port 8888

四、关键结论

  • 兼容性:micro-ROS 复用 ROS 2 的 RCL 核心层话题 / 服务接口完全一致
  • 架构分工
    • 标准 ROS 2:跑在高性能 CPU,做智能大脑
    • micro-ROS:跑在 MCU+RT-Thread,做实时四肢
  • 万物皆 ROS 2:通过 Agent 桥接,从工控机到单片机全栈统一,真正实现嵌入式设备原生接入 ROS 2 生态。
Logo

更多推荐