大脑-小脑分层架构是什么

一句话速记

具身机器人主流的”大脑-小脑-本体”三层架构:大脑 = LLM/VLM/VLA 做慢思考(任务规划、对话、推理),10 Hz 以下;小脑 = skill / motion controller 做快反应(动作生成、平衡、避障),50-1000 Hz;本体 = 电机/关节/传感器,毫秒级伺服。核心动机:把”思考慢但聪明”和”反应快但简单”分两层,避免高频实时控制等大模型推理。是从 Daniel Kahneman “系统 1 / 系统 2”思维引来的工程范式。

通俗解释(5 分钟版)

为什么需要分层

  • LLM 推理一次几百 ms 到几秒
  • 机器人平衡控制要 1000 Hz(每毫秒一次)
  • 不可能让控制环等 LLM——机器人会摔
  • 所以必须分层:上面慢,下面快

经典三层架构

   ┌────────────────────────────────────────────────────────┐
   │  大脑 (Brain) — 慢思考 / 任务级 / 0.1-10 Hz             │
   │  ────────────                                            │
   │  - LLM Agent(任务理解、对话、规划)                      │
   │  - VLM(场景理解、状态判断)                              │
   │  - VLA(如果用 end-to-end)                              │
   │  - 长期记忆 / RAG                                         │
   │  - 输出:高级 task graph 或 skill 序列                   │
   │                                                            │
   │  例:用户说"把杯子放到桌上"                              │
   │      → 大脑生成 task graph:                              │
   │         [find_cup, plan_grasp, move_to_table, place]      │
   └────────────────────────────────────────────────────────┘
                           │
                           ▼ task graph / skill name + 参数
   ┌────────────────────────────────────────────────────────┐
   │  小脑 (Cerebellum) — 快反应 / 技能级 / 10-100 Hz         │
   │  ────────────                                            │
   │  - Skill 库 (grasp / pick / place / navigate / open)    │
   │  - Motion planner (RRT / OMPL / cubic / IK)             │
   │  - VLA action chunk 生成                                 │
   │  - 实时感知反馈 (IMU / 视觉)                             │
   │  - 输出:关节角 / 末端位姿目标                           │
   │                                                            │
   │  例:grasp("cup") skill 启动                              │
   │      → 视觉定位杯子 → 规划抓取轨迹 → 输出关节序列         │
   └────────────────────────────────────────────────────────┘
                           │
                           ▼ joint targets / EE pose / velocity
   ┌────────────────────────────────────────────────────────┐
   │  本体 (Body) — 实时执行 / 伺服级 / 100-1000 Hz           │
   │  ────────────                                            │
   │  - 关节伺服控制器 (PID / impedance / torque)            │
   │  - 平衡控制 (双足 ZMP / 力反馈)                          │
   │  - 紧急停止 / 安全限位                                    │
   │  - 传感器读取 (encoder / IMU / F/T sensor)              │
   │  - 输出:电机 PWM / 力矩                                  │
   └────────────────────────────────────────────────────────┘

和系统 1/2 的对应

  • 系统 2(慢思考):刻意、推理、复杂——大脑的 LLM
  • 系统 1(快本能):自动、反射、高频——小脑/本体的控制

关键细节 / 数学直觉

1)三层频率约束

   层      频率           延迟           不达标后果
   ──────────────────────────────────────────────
   大脑    0.1-10 Hz      100ms-10s     交互卡顿(用户感知)
   小脑    10-100 Hz      <100ms        动作不连贯
   本体    100-1000 Hz    <1-10ms       平衡丢失 / 摔倒

关键设计原则任何一层都不能等下一层比它慢的事情——所以下层永远比上层快至少 10x。

2)大脑-小脑接口(API 设计)

工程上最关键的事是怎么从大脑给小脑下指令。两种风格:

a) Symbolic skill API(推荐入门)

# 大脑输出
plan = [
    {"skill": "navigate_to", "args": {"target": "kitchen_table"}},
    {"skill": "find_object", "args": {"description": "red cup"}},
    {"skill": "grasp", "args": {"object_id": "$last"}},
    {"skill": "navigate_to", "args": {"target": "living_room_table"}},
    {"skill": "place", "args": {"on_top_of": "table_surface"}},
]
 
# 小脑暴露 skill API:
class SkillAPI:
    def navigate_to(self, target: str) -> Result: ...
    def find_object(self, description: str) -> ObjectId: ...
    def grasp(self, object_id: ObjectId) -> Result: ...
    ...

好处:可调试、可记录、可审计;很多公司就这么搭。

b) End-to-end VLA

大脑直接输出动作 token 或连续动作,小脑只做平衡/伺服。这是 OpenVLA / π0 的玩法。好处:泛化好;坏处:黑盒难调,工程不稳。

3)分层带来的工程红利

   ┌─────────────────────────────────────────────────┐
   │  好处                                              │
   │  ─────                                             │
   │  ① 可调试:每层独立测试                           │
   │  ② 可替换:换大脑模型、换小脑 skill 不影响其他    │
   │  ③ 可优化:小脑可以传统优化(OMPL/MPC),不必 LLM │
   │  ④ 安全:小脑层加 hard guard 不依赖大脑判断       │
   │  ⑤ 资源:大脑可上云,小脑必本机                   │
   └─────────────────────────────────────────────────┘

4)大脑放云 or 放本机的取舍

   云端大脑:
   ✅ 大模型能力强、易升级、不耗本机算力
   ❌ 网络延迟(200ms+)、断网就废
   
   本机大脑:
   ✅ 离线可用、低延迟
   ❌ 本机 GPU 算力有限,模型大小受制约
   
   主流方案:混合
   - 复杂规划/对话 → 云端大模型
   - 实时感知判断 → 本机小模型 (VLM 7B)
   - 控制 → 本机硬实时

5)小脑 skill 的”原子粒度”是关键设计

太粗:

  • skill = “完成做菜” → 大脑只调一次,小脑做不了(你要我怎么完成?)

太细:

  • skill = “关节 1 角度变 0.1 度” → 大脑要管几千次调用,浪费

经验值:原子 skill 完成时间 1-30 秒,对应人类”一个明显动作”——pick_upopen_doorpour_waternavigate_to

6)感知-决策-执行和大脑-小脑有什么不同

  • 感知-决策-执行:是机器人信息流的描述——按数据流向
  • 大脑-小脑-本体:是架构层级的描述——按抽象层级
   ┌───────────────────────────────┐
   │  大脑: 高级感知 + 高级决策     │
   │  小脑: 低级感知 + 低级决策     │
   │  本体: 执行 + 原始感知         │
   └───────────────────────────────┘
   
   "感知-决策-执行"在每一层都重复

不矛盾——一个是”系统设计架构”,一个是”信息流模式”。

7)失败模式与降级

   大脑挂了(云端不可达):
       → 小脑用最后一个有效计划走完
       → 没计划就停在安全姿态等待
   
   小脑挂了(skill 报错):
       → 大脑收到错误 observation → re-plan
       → 反复失败 → 升级人工
   
   本体异常(电机过载、过热):
       → 立即急停,不依赖大脑/小脑判断
       → 这是硬件层 hard guarantee

重点安全护栏放在最低层——本体硬件级急停不能依赖大脑/小脑做决策。

延伸追问

  • Q: 大脑用 LangGraph 这种 Agent 框架是否合适? → 合适——LangGraph 节点天然适合”任务规划 → skill 调用 → observe → 重新规划”的循环。但要注意:LangGraph 节点执行的”工具”在具身里就是 skill,工具描述就是 skill API。
  • Q: 大脑输出的 task graph 谁来执行调度? → 通常一个专门的 task executor / behavior tree 模块在大脑/小脑之间。它负责按顺序触发 skill、收集结果、错误处理、HITL。LangGraph 也可以做这个。
  • Q: 小脑的 skill 是手写还是端到端学出来? → 当前实战是混合:① 移动 / 抓取 / 开门 等成熟 skill 偏手写或专门 model(精准) ② 长尾任务用 VLA 学习 ③ 失败 case 标注 → 反哺 VLA finetune。
  • Q: 这套架构和自动驾驶的”感知-规划-控制”对应吗? → 大致对应:大脑 ≈ 高级规划(路由 + 行为决策) + V2X;小脑 ≈ 局部规划 + 控制;本体 ≈ 油门刹车方向盘。但具身要应对接触和操控,比自动驾驶更复杂。

我的记法

  • 三层:大脑(10Hz 以下)/ 小脑(10-100Hz)/ 本体(100-1000Hz)
  • 慢思考 vs 快反应 = 系统 2 vs 系统 1
  • 大脑可云、小脑必本机、本体硬实时
  • 大脑-小脑接口:symbolic skill API(推荐)vs end-to-end VLA
  • skill 粒度:1-30 秒一个原子动作
  • 安全护栏放最低层——硬件级急停不依赖软件判断
  • 一句话:「分层架构是工程上唯一稳的解——别让 LLM 控制电机」

状态

  • 已背速记
  • 能讲通俗版
  • 能答追问
  • 看一遍某具身公司的架构图(Figure、1X 等)

参考资料