枢纽
机器人ALOHA 双臂(ViperX + 双指夹爪,~$20k)
数据集ALOHA 双臂 teleop demo
上真机
实时
输入模态vision,proprioception

ACT / ALOHA:让 $20k 的双臂机器人学会「穿魔术贴扎带、装电池」

Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn(Stanford + Berkeley + Meta)。arXiv:2304.13705(arXiv preprint v1, 2023-04;PDF 未注明正式 venue)。 imitation learningaction chunking线索 T06

🧠 一句话心智模型:精细操作(开杯盖、装电池、穿魔术贴扎带)的难点不是「规划」,而是误差会滚雪球——单步回归的策略每步错一点,几步后就崩。ACT 的解法:别一步步预测,一次预测未来 k 步动作作为一个「块」(horizon 缩 k 倍);再用 VAE 把人的多模态演示「压成一个 style 变量」。配合一个 $20k 的双臂遥操系统 ALOHA,10 分钟演示就能学会 6 个精细任务。

🎯 为什么重要:精细操作 = 误差放大器

抓杯子、推方块这种「cm 级精度」的任务,传统方法还行。但开小杯盖、装电池、穿魔术贴扎带是「毫米级精度 + 接触丰富 + 视觉闭环」——任何 1mm 误差,几步后会被放大到任务失败。这类任务以前要么用昂贵的工业机器人(da Vinci、YuMi),要么精心建模——都不平民化

核心矛盾:行为克隆(BC)的「compounding error」老毛病——策略每步小错累加,机器人很快漂出训练分布,再也回不来。DAgger 要专家在线纠正(遥操界面下不现实),噪声注入又会让精细任务直接失败。得从别的角度切

ACT 的切入点不是「让每步更准」,而是「让任务变短」——预测动作序列而非单步,把 effective horizon 砍 k 倍。再配合一个便宜到任何人都能复制的硬件 ALOHA,把精细操作从「论文 demo」推向「研究实验室标配」。

💡 核心思想:动作 chunking + 时序集成 + CVAE

ACT 把心理学里的「action chunking」(人把一连串动作打包成单元执行)搬到机器人:策略不是预测「下一步动作」,而是预测未来 k 步动作。然后每一步都查询一次策略,对重叠的预测做加权平均——这就是「temporal ensemble」。

① Action Chunking:一次预测 k 步(k=100) a_0 a_1 ... a_k t=0 时的预测 a_4 a_5 ... a_{k+4} t=4 时再预测一次 ② Temporal Ensemble:对重叠预测做加权平均(指数权重 exp(-m·i)) t=0 w_0 (老,权重大) t=1 w_1 t=2 w_2 加权动作 at = Σ w_i A_t[i] ③ CVAE 训练 encoder 把「真动作 + 观察」 压成 style 变量 z decoder 用 z + 观察 → 动作 推理时丢掉 encoder,z=0 让 decoder 自己选最可能 mode 效果:effective horizon ↓ k 倍;重叠预测 + 指数加权 → 平滑 + 反应性兼具
图 1:ACT 推理。每步都重新查询策略得到一个 action chunk;当前时刻的最终动作来自多个 chunk 的指数加权平均——老预测权重大(稳定),新预测权重小但持续纳入新观察。

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))$$

注:PDF §IV.C 明确说 reconstruction 用 L1(论文实测 L1 比 L2/MSE 在精细任务上更准);Algorithm 1 伪代码记为 MSE 是简记。

🛠️ 让 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 小时就能组装
🔮 直觉:为什么 CVAE 是关键?
想象同一个「拿杯子」状态,人有 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 的胜利不是「算法多聪明」,而是系统级正确——便宜硬件让数据采集变可行;action chunking 让误差不滚雪球;temporal ensemble 让动作既平滑又反应;CVAE 让多模态演示能学。每个组件都不复杂,但拼起来才work。这种系统性思维是它能成为「双臂操作标配」的原因。

🌐 在领域中的位置

BC-ConvMLP(单步回归,compounding error) BeT / RT-1(Transformer + 离散化) ACT(action chunking + CVAE)⭐ Diffusion Policy(同样序列建模,但用扩散替 CVAE) Mobile ALOHA / π0 / RDT-1B(双臂 + 大模型)

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 能力边界——视觉对比度差 + 毫米级精度 + 多阶段,三个难点叠加。