X:000 · Y:000SECTOR / AIv0.9.SIGNALNO_ADS // NO_TRACK
CILLIAN.AI
← MEMORY

机器人栈分层:从 GPIO 到 ROS 2

先画一张分层图:单片机、Linux 主机、ROS 2 各管什么。适合从软件/云原生转机器人的读者建立心智模型。

3 MIN READ~2200 CHARS
机器人栈分层:从 GPIO 到 ROS 2

学机器人最容易劝退的方式,不是公式难,而是一上来就把单片机、树莓派、ROS 混成一锅。本文只做一件事:把栈分层画清楚,让后面选板、学 ROS 都有落点。

系列导航:嵌入式基础 · 选板指南 · ROS 2 入门概念 · 何时上 ROS · 学习路径

先建立分层(最重要)

把机器人相关技术想成,从下到上大致是:

┌─────────────────────────────────────────┐
│  应用 / 任务:导航、抓取、语音、业务逻辑   │
├─────────────────────────────────────────┤
│  中间件:ROS 2(通信、工具、生态)         │
├─────────────────────────────────────────┤
│  主机 OS:Ubuntu 等(跑 ROS 2、视觉、规划) │
├─────────────────────────────────────────┤
│  计算板:树莓派 / Jetson / NUC / PC        │
├─────────────────────────────────────────┤
│  实时控制:电机驱动、IMU、安全互锁         │
│  (常由 MCU / 专用驱动板负责)             │
├─────────────────────────────────────────┤
│  传感器与执行器:电机、舵机、雷达、相机…   │
└─────────────────────────────────────────┘

要点:

  • STM32 / ESP32 / 51 / Arduino 板多半工作在「实时控制 + 传感器」层。
  • ROS 2 工作在「中间件」层,通常跑在 Linux 主机上,不是给 51 单片机直接当 OS 用的。
  • 真机机器人往往是 MCU + 主机 + ROS 2 的组合,而不是「只学其中一个就够」。

和本站 Physical AI 扫盲 的闭环同一件事:感知 → 决策 → 执行;本文强调的是工程落在哪一层硬件/软件上

几个容易混的词

白话 常见误区
MCU(单片机) 一颗芯片里集成 CPU、RAM、Flash、外设 以为「有 Wi‑Fi 的都叫单片机」——有的是更强的 SoC
MPU / SoC 更强的应用处理器(可跑 Linux) 和 MCU 混称「芯片」就失去选型意义
开发板 把芯片 + 电源 + USB + 引脚排好的学习板 Arduino Uno 是板子;板子上的 AVR/ESP 才是 MCU/SoC
固件(Firmware) 烧进 MCU 里长期跑的程序 和手机 App 不是同一套运行模型
ROS / ROS 2 机器人软件中间件与工具生态 不是传统意义的操作系统;底下还要有 Ubuntu 等
实时(Realtime) 在时限内稳定响应(控制环) 「跑得快」≠ 实时;Linux 默认可不适合硬实时 PWM

两条主航道

航道 A:嵌入式 / 单片机

学什么:GPIO、定时器、PWM、ADC、UART/I2C/SPI、中断、低功耗、驱动电机与传感器。

产出感:点灯、读传感器、控舵机、做小车底层、ESP32 联网上报。

代表器件:STC51、AVR(经典 Arduino)、STM32、ESP32 等。详见 选板指南

航道 B:机器人软件(ROS 2)

学什么:节点、话题、服务、Action、参数、Launch、TF、常用包、仿真。

产出感:在仿真里让小车走、看点云/地图、多节点协作。

代表环境:Ubuntu + ROS 2(Humble / Jazzy 等,以你机器支持为准)。详见 ROS 2 入门概念

两者怎么接

  1. MCU 负责高频电机闭环、急停、编码器计数。
  2. 主机 + ROS 2 负责规划、视觉、建图导航、人机交互。
  3. 中间用 串口 / CAN / Ethernet / USB 传速度指令与状态。

只做桌面仿真,可以暂时不碰 MCU;只做智能硬件灯控/传感,可以暂时不上 ROS。场景表见 何时 MCU、何时 ROS 2

「机器人」入门的三个最小项目

最低闭环:

感知 → 决策/控制 → 执行 →(再感知)
  1. 开环执行:按键 / 串口命令 → 舵机转到固定角度。
  2. 有反馈:读超声波 / 编码器 → 简单避障或定距。
  3. 有软件栈:ROS 2 里 /cmd_vel 驱动仿真小车,再考虑接到真车 MCU。

给云原生背景的对照(到此为止)

你熟悉的 机器人侧近似
微服务 ROS 2 节点(进程级组件)
Topic / MQ ROS 2 Topic(语义与 QoS 不同)
gRPC / API ROS 2 Service;长任务更像 Action
YAML Deployment Launch 文件 / 组件描述
边缘设备 Agent MCU 固件 + 主机上的 bridge 节点

有帮助的类比到此为止——控制环时序、硬件外设、实时性仍是软件侧类比盖不住的,需要补 嵌入式基础

下一步

RELATED

NEXT STEP

本篇已归档到 MEMORY。继续解码相邻信号,或回到档案首页。