想象你走进一家面馆,老师傅双手机巧地揉面、擀皮、包馅,徒弟想学会这手绝活,光在旁边看视频远远不够。最好的方式是:师傅亲手握住徒弟的手,带着他把整套动作完整做一遍,让每一处关节的发力都被“记下来”。ALOHA/AnyMAL 就是一套这样的“手把手教学系统”——一人操纵主臂,另一侧从臂就会同步复现;一套叫 ACT 的算法又把演示动作变成机器人的“肌肉记忆”。这套系统用相对便宜的开源硬件,让双臂机器人也能学会给物品包装、穿线、装配这些精细操作。
学懂 ALOHA/AnyMAL,你就掌握了从遥操作数据采集、双臂协调建模到 ACT 策略训练、真机部署的全链路知识,这是机器人工程师用低成本方案解决精细操作自动化的核心能力。
可视化演示
展示ALOHA双臂遥操作Leader/Follower架构、ACT动作块预测策略、滑动窗口闭环部署机制,点击按钮切换。
本节配有交互动效(进入视口后自动加载,约 3KB)。
ALOHA双臂遥操作Leader/Follower架构 操作员移动Leader臂Follower臂同步跟随执行 50Hz频率记录4路相机图像和关节状态 Leader → Follower → data 低成本遥操作采集高质量双臂操作演示数据
系统概览
面馆里,师傅有两只手,徒弟也有两只手。ALOHA 就像给这两双手之间装上“看不见的联动线”:师傅握着主臂做动作,从臂在另一边完全同步复现。这套系统并不昂贵,反而像普通厨具一样可以公开采购、自己组装,这正是它最重要的气质。
ALOHA 的全称是“低成本开源双臂遥操作硬件”,它用主臂、从臂、相机和开源控制器构成完整的数据采集平台。操作者掰动主臂,从臂跟随运动,同时相机记录画面、关节编码器记录角度。AnyMAL 则相当于系统的“翻译官”,把摄像头画面、语音指令等多模态信息转成双臂能理解的执行指令,让机器人既能“看”,也能“听招呼干活”。
徒弟的“练习手”之所以能走进普通实验室,正是因为它不追求航天级材料,而是用成熟零件拼出足够完成任务的能力,这才是 ALOHA 最迷人的地方。
- 总成本拆分把每个电机、传感器、支架都看成一件“厨具”,逐项加起来就是整套系统的价格。
- 零部件数量下标 \(i=1\) 到 \(N\) 表示一共有 \(N\) 个可复用部件,部件越少、越通用,成本越好控制。
- 远低于工业方案工业机械臂性能更强,但价格可能是 ALOHA 的十倍以上,所以用“远小于”连接。
双臂协同
拉面师傅的左手负责转碗,右手负责揉面,动作必须踩着同一个节拍。双臂机器人同样不能“左臂练左臂、右臂练右臂”,而是要把两只机械臂看成一个组合,共享对任务的理解。
从硬件结构上看,主臂和从臂之间存在空间映射关系:人手操作主臂时,控制器把主臂末端的位置和姿态换算成从臂的目标位姿。换算过程就像把师傅柜台上的动作平移复制到徒弟操作台上,可能需要旋转对齐,也可能要平移一定距离。
真正的协调还不止空间变换。ACT 策略会把两只臂的关节角度和图像同时作为输入,一次输出两只臂的动作,这样左右手共享“节拍器”,不会互相打架。
- 主臂位置\(\boldsymbol{x}_{m}\) 是师傅手部在操作空间里的坐标,由主臂各关节角度换算而来。
- 旋转对齐\(\boldsymbol{R}\) 是旋转矩阵,解决两个操作台朝向不一致的问题,相当于把动作方向“转正”。
- 平移补偿加 \(\boldsymbol{t}\) 把坐标整体搬到从臂的工作区域,像把图案从一张纸拓到另一张纸。
遥操作采集
师傅教徒弟时,徒弟不能只靠眼睛看,还要让师傅“带着做”。遥操作采集就是这种“带着做”的数字化版本:人握住主臂,从臂在真实环境里完成任务,系统同步保存关节角度和图像。
每一段示范都被记成一组“观测-动作”对:观测是相机画面、两臂关节角度,动作是从臂在这一时刻的关节目标值。因为有真实物理交互,这些数据比纯视频更能支撑机器人学到“用什么力度、走什么路径”。
为了让这首“曲谱”更丰富,工程师会变换背景、光照、放置位置录多条示范,让机器人以后在不同环境下都能“唱”出来。
- 观测变量\(\boldsymbol{o}_{t}\) 表示 \(t\) 时刻机器人看到什么、自己处于什么姿态,它像徒弟的眼睛和关节感觉。
- 动作变量\(\boldsymbol{a}_{t}\) 是该时刻两臂各关节的目标角度,像“此时手该放到哪里”的数字记录。
- 序列收集从 \(t=1\) 到 \(T\) 逐帧配对,最终得到一整首“可练习的曲谱”。
ACT策略
徒弟学成之后,不是照着“每一帧照片”机械模仿,而是把一段连续动作压缩成一句口诀,再按口诀完成一串动作。ACT(Action Chunking with Transformers)就是这个思路:一次预测未来 \(K\) 步动作,而不是每瞬间蹦一个动作。
ACT 接收当前图像、关节状态以及一个潜变量 \(z\),潜变量携带“这轮演示的具体风格”,比如握得紧一点还是松一点。Transformer 把信息编码后,解码出长度为 \(K\) 的动作块:
动作块越大,动作越连贯,但面对突发情况反应越慢;块越小,越灵活却越容易抖动。ACT 是在“念整段口诀”和“实时应变”之间找平衡。
- 当前观测图像 \(\boldsymbol{o}_{t}\) 是眼睛看到的画面,为决策提供环境信息。
- 关节状态\(\boldsymbol{q}_{t}\) 是两臂当前关节角度,相当于身体此刻的“姿态”。
- 动作块输出\(\hat{\boldsymbol{a}}_{t:t+K}\) 是从当前时刻往后共 \(K\) 步的动作序列,像“揉五下、再擀两圈”的口诀。
模仿学习
“模仿学习”像是徒弟反复对照曲谱练习:每练习一次,就检查唱出来的动作和师傅录音差多少,然后调整自己的肌肉记忆。它不依赖奖励函数,而是直接学习“看到什么就做什么”。
ACT 的训练目标是让预测动作块尽量接近演示动作块,同时约束潜变量 \(z\) 的分布不偏离标准正态分布。前者保证动作拟合,后者保证生成多样且稳定。损失函数写成:
师徒传承里的“韵味”就靠潜变量保留下来:同一个动作可以夹得紧一点,也可以夹得柔一点,但整体节奏始终一致。
- 动作复现误差把 \(K\) 步预测动作和真实演示动作逐项求差平方再平均,差得越少说明练得越像。
- 潜变量正则\(D_{KL}\) 衡量学到的 \(z\) 分布与标准正态分布的差距,防止动作风格变形。
- 平衡权重\(\beta\) 用来控制“练准”和“练稳”哪个更重要,太大动作会单调,太小动作会发散。
部署实践
徒弟正式上灶前,还要按自己厨房的台面高度、锅碗位置做一次“适应训练”。双臂系统从仿真和示范走向真实任务时,同样需要标定工作空间、补偿系统误差,并把大任务拆成小步骤。
部署实践通常把任务拆成“拿起”“移动”“插入”“松开”几个子任务,每个子任务单独收集示范并训练策略。上线后先用成功率评估整体表现,再针对失败样本补充数据,形成“发现问题-补充示范-重新训练”的闭环。
真机部署还会加入视觉数据增强、随机摆放、人工纠错等“实战演练”,确保徒弟换一个厨房也能拿稳筷子。
- 完成次数分子 \(N_{\mathrm{succ}}\) 是机器人成功完成任务的次数,相当于“顺利出菜的次数”。
- 总尝试次数分母 \(N_{\mathrm{total}}\) 是全部测试次数,包含成功与失败。
- 成功率计算两者相除再乘百分之百,得到容易汇报和比较的百分比。
优势局限
面馆的低成本练手装置能教会大多数手艺,但遇到需要极大腕力或高速颠锅的场面,它仍然比不上专业大厨。ALOHA/AnyMAL 的优势和局限同样清晰:性价比高、开源可复现,但负载能力和极端精度仍有限。
从“性价比”视角看,评价一个双臂系统不是只看绝对成本,而是看单位成本能完成多少任务。ALOHA 把成本压下来,让更多场景愿意尝试机器人,这就是它最大的贡献。
这套“后厨师徒系统”不会取代工业重载机械臂,但它让科研院所、小工厂甚至爱好者都能拥有双臂智能,未来想象空间巨大。
- 任务能力\(P_{\mathrm{task}}\) 代表系统能完成的精细任务种类和成功率,是“本事”。
- 系统成本\(C_{\mathrm{system}}\) 是硬件、软件、部署时间折算的总成本,是“开销”。
- 性价比\(\eta\) 是“每花一块钱买到多少本事”,ALOHA 的高性价比正来自开源和低成本。
AI 应用场景
柔性装配线的小批量换产
阶段:数据采集 + 策略训练
解决的问题:传统装配线换一个新料盒就需要工程师重新编写双臂轨迹,工作量大且难以应对小批量多品种。先用 ALOHA 遥操作示范几次装配动作,再用 ACT 训练出双臂协作策略,遇到新物料只需快速补录少量示范。
具体案例:一家电子配件厂要装配不同规格的接插件,工人握住主臂演示“左手扶件、右手插针”,系统采集 20 条示教后完成训练,机械臂转换周期从两周缩短到一天。
危险环境远程精细操作
阶段:遥操作 + 真机部署
解决的问题:人在核环境、污染区或有毒车间直接操作风险高,而完全自动化又难以应对复杂情况。ALOHA 的双臂遥操作让人隔着玻璃墙“亲手”示范,后续可由 ACT 策略自动复现。
具体案例:某实验室需要远程更换精密化学实验夹具,操作员在安全区通过主臂引导从臂完成更换,记录示范后机器人开始自动执行重复任务。
高校科研与教育教学
阶段:算法验证 + 开源二次开发
解决的问题:高校实验室预算有限,难以购买昂贵双臂平台做模仿学习研究。ALOHA 的低成本开源硬件把科研门槛降到“能买一台普通工作站”的水平。
具体案例:硕士生用开源 ALOHA 采集“叠衣服”“插排插”等日常任务数据,复现最新 ACT 算法并改进数据增强策略,快速产出论文和原型。
Python 演示
import numpy as np class ActionChunkingModel: def __init__(self, chunk_len=5): self.chunk_len = chunk_len self.theta = None def train(self, obs_seq, act_seq): K = self.chunk_len X, Y = [], [] for t in range(len(obs_seq) - K): X.append(obs_seq[t]) Y.append(np.concatenate(act_seq[t + 1:t + 1 + K])) self.theta = np.linalg.pinv(np.asarray(X)) @ np.asarray(Y) def predict(self, obs): if self.theta is None: raise RuntimeError("请先训练模型") flat = np.asarray(obs) @ self.theta chunk = [flat[i:i + 2] for i in range(0, len(flat), 2)] return np.asarray(chunk) def make_demo(): t = np.linspace(0, 6, 60) obs = np.c_[np.sin(t), np.cos(t)] act = np.c_[np.cos(t), -np.sin(t)] return obs, act def main(): obs, act = make_demo() model = ActionChunkingModel(chunk_len=5) model.train(obs, act) index = 30 new_obs = obs[index] chunk = model.predict(new_obs) gt = np.concatenate(act[index + 1:index + 1 + model.chunk_len]) pred = np.concatenate(chunk) mse = float(np.mean((pred - gt) ** 2)) print("预测动作块(5步):", chunk.tolist()) print("均方误差:", round(mse, 6)) if __name__ == "__main__": main()
Y.append(np.concatenate(act_seq[t + 1:t + 1 + K]))把未来 K 步动作首尾拼接成一个“动作块”,对应 ACT 动作分块。self.theta = np.linalg.pinv(np.asarray(X)) @ np.asarray(Y)用最小二乘法学出“观测到动作块”的映射矩阵。flat = np.asarray(obs) @ self.theta推理时先算出整段动作块的扁平向量。chunk = [flat[i:i + 2] for i in range(0, len(flat), 2)]把扁平向量还原成每步两个关节的可执行动作。model.train(obs, act)用一段演示轨迹训练模型,对应模仿学习中的行为克隆。
常见误区
误区这么厉害的双臂机器人,至少要几十万美元,普通实验室根本碰不到。
正解ALOHA 设计的初衷就是“低成本开源”。它用成熟电机、结构件和开源控制器搭建,成本远低于工业双臂平台,像一套“可以跟着图纸自己攒的练习厨具”。
为何常见:大家对工业机器人昂贵、复杂的印象太深,容易把“机器人”和“天价设备”划等号。
误区只要用相机录下师傅的动作,AI 就能通过看视频学会操作。
正解机器人需要精确的关节角度作为动作标签,视频只提供画面,无法直接给出每个关节的发力目标。ALOHA 通过主臂带动从臂,把人的动作转成数值轨迹,才能训练出 act 策略。
为何常见:人类学习确实主要靠眼睛,于是想当然认为机器也能“看视频自学”。
误区机器人要不断试错、拿到奖励信号才能学会任务。
正解ACT 属于模仿学习,尤其是行为克隆。它直接从示教数据里学“观测到动作”的映射,不使用奖励函数,也不需要大量随机试错。
为何常见:近几年强化学习曝光度高,许多初学者把所有机器学习训练都理解成“给奖励再试错”。
误区录一圈动作,机器人就能在任意环境下完美复现。
正解真实部署需要录多条示范、覆盖不同摆放位置和光照,还要做工作空间标定、误差补偿、数据增强。一次示范就像只练过一遍的新菜,换个锅就可能失败。
为何常见:示教视频看起来简单直接,让人低估了真实环境中的分布差异。
误区左臂学左臂的任务,右臂学右臂的任务,最后拼在一起就行。
正解许多任务是双臂强耦合的,比如左手扶、右手插,两臂需要同时感知彼此状态并共同输出动作。ACT 把双臂关节统一放进向量,形成真正的协调策略。
为何常见:单臂机器人研究更早更常见,容易形成“一臂一个模型”的惯性思维。
面试题
Q1. ALOHA 的核心定位是什么?
- A.昂贵的军用机械臂
- B.纯仿真数据集平台
- C.聊天机器人对话系统
- D.低成本开源双臂遥操作系统← 正确答案
答案:D。ALOHA 是“低成本开源双臂遥操作硬件”,它用主臂带动从臂采集示范数据,并用 ACT 等算法训练策略。它既不是军用设备,也不是纯仿真或聊天系统。
Q2. 遥操作采集中,最关键的动作信息来源是什么?
- A.高帧率视频光流
- B.操作者口头描述
- C.主臂关节角度记录← 正确答案
- D.外接鼠标移动轨迹
答案:C。视频和描述只能提供画面或意图,真正的动作标签来自主臂关节角度。人与主臂的物理交互被编码成数值轨迹,才能让从臂和算法获得精确的示教动作。
Q3. ACT 策略预测动作的方式有什么特点?
- A.只预测当前一个动作
- B.随机抽一个动作执行
- C.依赖强化学习奖励信号
- D.一次预测未来 K 步动作块← 正确答案
答案:D。ACT 的核心是“动作分块”,它用 Transformer 一次性输出未来 K 步动作序列,而不是逐帧预测。连续动作块让轨迹更平滑,也能减少模仿学习中的复合误差。
Q4. ACT 中潜变量 \(z\) 的主要作用是什么?
- A.压缩视频编码参数
- B.表达演示动作的多样风格← 正确答案
- C.控制电机的供电电压
- D.替代相机标定结果
答案:B。潜变量就像“动作口诀里的语气”,用来表达这轮演示的细微风格差异,例如夹取角度、力度变化等。它帮助 ACT 在多种合理动作之间生成更自然的结果。
Q5. 双臂系统相比两个单臂系统,更强调什么?
- A.处理器主频高低
- B.两臂协调和联合规划← 正确答案
- C.显示器分辨率大小
- D.机械臂螺丝尺寸
答案:B。双臂任务中,左右手常常同时参与,必须共享观测并联合输出动作。ACT 把两臂关节放进同一个动作向量,让左右手像“同一个节拍器”下的两位师傅那样配合。
Q6. 行为克隆在真实部署中最常见的问题是什么?
- A.奖励函数设计过稀疏
- B.状态分布偏移导致误差累积← 正确答案
- C.演示数据永远无法采集
- D.完全不需要演示数据
答案:B。训练时策略见过的状态来自演示集,但测试时一旦出现微小偏差,机器人会进入从未见过的状态,误差越滚越大。动作分块和多示范数据能明显缓解这种分布偏移。
Q7. 部署双臂系统时,最能直接提升成功率的手段是什么?
- A.给机械臂涂更亮颜色
- B.增加显示器数量
- C.工作空间标定与误差补偿← 正确答案
- D.降低视频帧率
答案:C。主从空间映射和相机观测都需要标定,否则机器人“看到的”和“够到的”对不上。就像徒弟换了新灶台,必须先确认锅碗位置,否则动作再标准也会落空。
Q8. ALOHA 系统通常包含哪些组件?
- A.主臂、从臂与相机← 正确答案
- B.控制器与开源软件← 正确答案
- C.电机与结构件支架← 正确答案
- D.高温超导反应堆
答案:ABC。ALOHA 由主臂、从臂、相机、控制器、开源软件以及电机结构件组成。高温超导反应堆与双臂操作无关,是典型干扰项。
Q9. ACT 模仿学习的训练目标通常包括哪些部分?
- A.动作块重构损失← 正确答案
- B.KL 散度正则项← 正确答案
- C.主臂手部力反馈
- D.相机标定误差
答案:AB。ACT 用动作块的均方误差衡量“学得像不像”,又用 KL 散度约束潜变量分布保持稳定。力反馈和相机标定误差不是训练损失里的正则项。
Q10. ALOHA/AnyMAL 部署实践的常用手段有哪些?
- A.数据增强与迁移学习← 正确答案
- B.任务拆解与成功率验证← 正确答案
- C.人工误差修正与补充示范← 正确答案
- D.彻底放弃关节反馈
答案:ABC。真实部署需要数据增强、任务拆解、成功率验证和补充示范来应对环境变化。关节反馈是机器人的“本体感觉”,放弃它会失去控制稳定性,属于错误选项。