ACT / ALOHA:让 $20k 的双臂机器人学会「穿魔术贴扎带、装电池」
🎯 为什么重要:精细操作 = 误差放大器
抓杯子、推方块这种「cm 级精度」的任务,传统方法还行。但开小杯盖、装电池、穿魔术贴扎带是「毫米级精度 + 接触丰富 + 视觉闭环」——任何 1mm 误差,几步后会被放大到任务失败。这类任务以前要么用昂贵的工业机器人(da Vinci、YuMi),要么精心建模——都不平民化。
ACT 的切入点不是「让每步更准」,而是「让任务变短」——预测动作序列而非单步,把 effective horizon 砍 k 倍。再配合一个便宜到任何人都能复制的硬件 ALOHA,把精细操作从「论文 demo」推向「研究实验室标配」。
💡 核心思想:动作 chunking + 时序集成 + CVAE
ACT 把心理学里的「action chunking」(人把一连串动作打包成单元执行)搬到机器人:策略不是预测「下一步动作」,而是预测未来 k 步动作。然后每一步都查询一次策略,对重叠的预测做加权平均——这就是「temporal ensemble」。
CVAE 的训练目标(标准 VAE 形式):
$$\mathcal{L} = \mathcal{L}_{\mathrm{reconst}} + \beta \mathcal{L}_{\mathrm{reg}} = \lVert \hat a - a \rVert_1 + \beta D_{KL}(q_\phi(z | a, o) \,\|\, \mathcal{N}(0, I))$$
🛠️ 让 ACT 在 $20k 硬件上跑通的四个设计
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① Action Chunking(k=100) | 策略输出未来 100 步动作而非单步 | effective horizon 砍 100 倍 → compounding error 大幅缓解;还能捕获非马尔可夫行为(如演示中的「停顿」) |
| ② Temporal Ensemble | 每步都查询策略,对重叠预测用 $w_i = e^{-m \cdot i}$ 加权平均 | 避免「每 k 步突然切动作」的抖动;新观察逐步融入(不是突变);比传统相邻平滑更不偏(加权的是同一时刻的多份预测) |
| ③ CVAE 训练 | encoder 把(动作 + 观察)压成 z;decoder 用 z 生成动作;推理时 z=0 | 人演示是多模态的(同一观察多种解法)。纯 L1 回归会平均成四不像;CVAE 让模型「先看真动作推断 style,再生成」——训练时 z 携带 mode 信息,推理时 z=0 让 decoder 选最大似然 mode |
| ④ ALOHA 硬件 | 2 个 ViperX 6-DoF 臂( follower )+ 2 个 WidowX( leader ),3D 打印件,4 个 Logitech 摄像头,$20k 全套 | joint-space 直接映射(leader → follower),避免 IK 在奇异点失效;便宜到实验室标配;用户 2 小时就能组装 |
想象同一个「拿杯子」状态,人有 3 种解法(左手、右手、双手)。如果你纯回归(L1 loss),网络会学「3 种的平均」——可能两只手都伸一半,结果什么都抓不到。CVAE 训练时用 encoder 「看」真动作,推断「哦这次是 mode 2(右手)」,把 mode 信息压进 z;decoder 学会「给定 z=2,就出右手动作」。训练时 z 帮 decoder 分 mode。推理时丢掉 encoder、z=0,让 decoder 选最大似然的那个 mode——这样输出就一定在「真实分布的某个 mode」附近,而不是「平均」。论文 Fig.8c 显示:去掉 CVAE,从人类数据学成功率从 35.3% 掉到 2%。
📊 结果:6 个真机精细任务,80~96% 成功率
| 任务 | ACT 成功率 | 最强基线 | 说明 |
|---|---|---|---|
| Slide Ziploc(滑锁扣) | 88% | BeT 0% | 需要捏住小滑块拉开 |
| Slot Battery(装电池) | 96% | BC-ConvMLP 0%, BeT 0% | 左臂按住遥控器,右臂推电池 |
| Open Cup(开杯盖) | 84% | BeT 0% | 右指把杯子掀倒进左手,左手举起,右指撬盖 |
| Thread Velcro(穿魔术贴扎带) | 20% | BeT 0% | 3mm × 25mm 的环穿 2mm 魔术贴扎带——ACT 也吃力 |
| Prep Tape(剪胶带) | 64% | BeT 0% | 右剪胶带,空中递给左,粘到纸盒边 |
| Put On Shoe(给假人穿鞋) | 92% | BeT 0% | 双手协调扯上鞋,粘魔术贴 |
| 维度 | 数字(来自 PDF) |
|---|---|
| 硬件成本 | 整套 <$20k(2× ViperX 6-DoF ~$5600/只,2× WidowX ~$3300/只,4× Logitech C922x,3D 打印件) |
| 采集数据量 | 每个任务 50 段演示 ≈ 10 分钟(wall-clock 30~60 分钟含重置) |
| 动作 / 观察频率 | 50Hz;观察 = 4 个 480×640 RGB + 14D 关节位置 |
| 动作空间 | 14D(双臂目标关节位置);action chunk 输出 k×14 |
| 模型规模 | ~80M 参数(小模型) |
| 训练时间 | 5 小时 / 单 11G RTX 2080 Ti |
| 推理时间 | 0.01 秒 / 步 |
| k 的最佳值 | 消融:k=1 → 1%;k=100 → 44%;k=400(接近 open-loop)→ 略降 |
| CVAE 消融 | 用 script 数据:CVAE 无所谓;用人类数据:去掉 CVAE 从 35.3% → 2% |
| 50Hz vs 5Hz | 用户研究:5Hz 比 50Hz 慢 62%——高频遥操是精细操作的必需品 |
🌐 在领域中的位置
ACT / ALOHA 是双臂精细操作的「平民化」里程碑。它把硬件门槛从十万美金降到 $20k,把数据需求降到 10 分钟,把算法做成小而美。后续 Mobile ALOHA、ALOHA-Unleashed、π0、RDT-1B 都建立在它的硬件范式和数据采集流程之上。关联线索:T06 VLA 谱系。
❓ 常见误区
ACT 是 VLA 吗?
不是。ACT 没有语言模型——它就是一个 transformer 编码器-解码器,输入图像 + 关节位置,输出动作序列。它是「像素到动作」的策略,每个任务需要单独训练。它的继任者(π0、RDT-1B)才把语言模型接进来变成 VLA。
为什么用 L1 而不是 L2 loss?
论文实测 L1 比 L2 在精细任务上更准——L2 在多模态分布下倾向于「平均」,L1 倾向于「选中一个 mode」(统计学上 L1 估的是 median,L2 估的是 mean;median 对多峰分布更鲁棒)。
k=100 不会太「开环」吗?
会有一点——所以才有 temporal ensemble。每步都重新预测(基于最新观察),但执行的是「多个 chunk 的加权平均」。权重 $w_i = e^{-m \cdot i}$ 让越老的预测权重大($w_0=1$ 最大,PDF §IV.A 原文「$w_0$ is the weight for the oldest action」)、越新的权重小——这给「已规划好」的旧预测更高话语权,保证平滑;同时由于每步都加入新预测,新观察仍持续渗入。$m$ 控制渗入速度:$m$ 小→权重均匀→新预测占比大、反应快但平滑弱。论文 Fig.8b 显示 temporal ensemble 带来 +3.3% 提升。
它和 Diffusion Policy 的区别?
两者都用「序列建模 + 多模态表达」思路。ACT 用 CVAE(显式 style 变量),Diffusion Policy 用 扩散(迭代去噪)。CVAE 简单快但表达力弱;扩散强但慢。后来 Diffusion Policy 的范式更流行,但 ACT 的「action chunking + temporal ensemble」被几乎所有后续工作继承。
为什么穿魔术贴扎带(Thread Velcro)只有 20%?
论文分析:黑色魔术贴扎带在黑色背景上,对比度极低,视觉系统看不清;3mm 的环穿 2mm 的魔术贴扎带,毫米级精度;多阶段(拿起、空中抓住、空中穿过),每阶段误差都会累加。这是 ACT 能力边界——视觉对比度差 + 毫米级精度 + 多阶段,三个难点叠加。