想象你走进一家面馆,老师傅双手机巧地揉面、擀皮、包馅,徒弟想学会这手绝活,光在旁边看视频远远不够。最好的方式是:师傅亲手握住徒弟的手,带着他把整套动作完整做一遍,让每一处关节的发力都被“记下来”。ALOHA/AnyMAL 就是一套这样的“手把手教学系统”——一人操纵主臂,另一侧从臂就会同步复现;一套叫 ACT 的算法又把演示动作变成机器人的“肌肉记忆”。这套系统用相对便宜的开源硬件,让双臂机器人也能学会给物品包装、穿线、装配这些精细操作。

岗位关联

学懂 ALOHA/AnyMAL,你就掌握了从遥操作数据采集、双臂协调建模到 ACT 策略训练、真机部署的全链路知识,这是机器人工程师用低成本方案解决精细操作自动化的核心能力。

目录
  1. 可视化演示
  2. 系统概览
  3. 双臂协同
  4. 遥操作采集
  5. ACT策略
  6. 模仿学习
  7. 部署实践
  8. 优势局限
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示ALOHA双臂遥操作Leader/Follower架构、ACT动作块预测策略、滑动窗口闭环部署机制,点击按钮切换。

本节配有交互动效(进入视口后自动加载,约 3KB)。

ALOHA双臂遥操作Leader/Follower架构 操作员移动Leader臂Follower臂同步跟随执行 50Hz频率记录4路相机图像和关节状态 Leader → Follower → data 低成本遥操作采集高质量双臂操作演示数据

系统概览

面馆里,师傅有两只手,徒弟也有两只手。ALOHA 就像给这两双手之间装上“看不见的联动线”:师傅握着主臂做动作,从臂在另一边完全同步复现。这套系统并不昂贵,反而像普通厨具一样可以公开采购、自己组装,这正是它最重要的气质。

ALOHA 的全称是“低成本开源双臂遥操作硬件”,它用主臂、从臂、相机和开源控制器构成完整的数据采集平台。操作者掰动主臂,从臂跟随运动,同时相机记录画面、关节编码器记录角度。AnyMAL 则相当于系统的“翻译官”,把摄像头画面、语音指令等多模态信息转成双臂能理解的执行指令,让机器人既能“看”,也能“听招呼干活”。

徒弟的“练习手”之所以能走进普通实验室,正是因为它不追求航天级材料,而是用成熟零件拼出足够完成任务的能力,这才是 ALOHA 最迷人的地方。

CALOHA=∑i=1Nci≪Cindustrial\displaystyle C_{\mathrm{ALOHA}} = \sum_{i=1}^{N} c_i \quad \ll \quad C_{\mathrm{industrial}}
这个式子表示:整套系统的钱等于所有电机、结构件、控制器价格之和,而且总成本远低于工业机器人方案。
  1. 总成本拆分把每个电机、传感器、支架都看成一件“厨具”,逐项加起来就是整套系统的价格。
    CALOHA=∑i=1Nci\displaystyle C_{\mathrm{ALOHA}} = \sum_{i=1}^{N} c_i
  2. 零部件数量下标 \(i=1\) 到 \(N\) 表示一共有 \(N\) 个可复用部件,部件越少、越通用,成本越好控制。
    ∑i=1N\displaystyle \sum_{i=1}^{N}
  3. 远低于工业方案工业机械臂性能更强,但价格可能是 ALOHA 的十倍以上,所以用“远小于”连接。
    ≪Cindustrial\displaystyle \ll C_{\mathrm{industrial}}

双臂协同

拉面师傅的左手负责转碗,右手负责揉面,动作必须踩着同一个节拍。双臂机器人同样不能“左臂练左臂、右臂练右臂”,而是要把两只机械臂看成一个组合,共享对任务的理解。

从硬件结构上看,主臂和从臂之间存在空间映射关系:人手操作主臂时,控制器把主臂末端的位置和姿态换算成从臂的目标位姿。换算过程就像把师傅柜台上的动作平移复制到徒弟操作台上,可能需要旋转对齐,也可能要平移一定距离。

真正的协调还不止空间变换。ACT 策略会把两只臂的关节角度和图像同时作为输入,一次输出两只臂的动作,这样左右手共享“节拍器”,不会互相打架。

xs=Rxm+t\displaystyle \boldsymbol{x}_{s} = \boldsymbol{R} \boldsymbol{x}_{m} + \boldsymbol{t}
从臂的目标位置,等于把主臂位置旋转一个角度,再平移一段距离。这个变换让“师傅的手”能落到“徒弟的台面”上。
  1. 主臂位置\(\boldsymbol{x}_{m}\) 是师傅手部在操作空间里的坐标,由主臂各关节角度换算而来。
    xm\displaystyle \boldsymbol{x}_{m}
  2. 旋转对齐\(\boldsymbol{R}\) 是旋转矩阵,解决两个操作台朝向不一致的问题,相当于把动作方向“转正”。
    Rxm\displaystyle \boldsymbol{R} \boldsymbol{x}_{m}
  3. 平移补偿加 \(\boldsymbol{t}\) 把坐标整体搬到从臂的工作区域,像把图案从一张纸拓到另一张纸。
    Rxm+t\displaystyle \boldsymbol{R} \boldsymbol{x}_{m} + \boldsymbol{t}

遥操作采集

师傅教徒弟时,徒弟不能只靠眼睛看,还要让师傅“带着做”。遥操作采集就是这种“带着做”的数字化版本:人握住主臂,从臂在真实环境里完成任务,系统同步保存关节角度和图像。

每一段示范都被记成一组“观测-动作”对:观测是相机画面、两臂关节角度,动作是从臂在这一时刻的关节目标值。因为有真实物理交互,这些数据比纯视频更能支撑机器人学到“用什么力度、走什么路径”。

为了让这首“曲谱”更丰富,工程师会变换背景、光照、放置位置录多条示范,让机器人以后在不同环境下都能“唱”出来。

D={(ot, at)}t=1T\displaystyle \mathcal{D} = \left\{ \left( \boldsymbol{o}_{t},\ \boldsymbol{a}_{t} \right) \right\}_{t=1}^{T}
数据集就是一段时间里,每个时刻的观测和动作被成对装进一个“曲谱盒子”。
  1. 观测变量\(\boldsymbol{o}_{t}\) 表示 \(t\) 时刻机器人看到什么、自己处于什么姿态,它像徒弟的眼睛和关节感觉。
    ot\displaystyle \boldsymbol{o}_{t}
  2. 动作变量\(\boldsymbol{a}_{t}\) 是该时刻两臂各关节的目标角度,像“此时手该放到哪里”的数字记录。
    at\displaystyle \boldsymbol{a}_{t}
  3. 序列收集从 \(t=1\) 到 \(T\) 逐帧配对,最终得到一整首“可练习的曲谱”。
    {(ot, at)}t=1T\displaystyle \left\{ \left( \boldsymbol{o}_{t},\ \boldsymbol{a}_{t} \right) \right\}_{t=1}^{T}

ACT策略

徒弟学成之后,不是照着“每一帧照片”机械模仿,而是把一段连续动作压缩成一句口诀,再按口诀完成一串动作。ACT(Action Chunking with Transformers)就是这个思路:一次预测未来 \(K\) 步动作,而不是每瞬间蹦一个动作。

ACT 接收当前图像、关节状态以及一个潜变量 \(z\),潜变量携带“这轮演示的具体风格”,比如握得紧一点还是松一点。Transformer 把信息编码后,解码出长度为 \(K\) 的动作块:

动作块越大,动作越连贯,但面对突发情况反应越慢;块越小,越灵活却越容易抖动。ACT 是在“念整段口诀”和“实时应变”之间找平衡。

a^t:t+K=πθ(ot, qt, z)\displaystyle \hat{\boldsymbol{a}}_{t:t+K} = \pi_{\theta}\left( \boldsymbol{o}_{t},\ \boldsymbol{q}_{t},\ \boldsymbol{z} \right)
策略网络给定当前观测、关节状态和潜变量,一口气输出未来一段时间内的完整动作序列。
  1. 当前观测图像 \(\boldsymbol{o}_{t}\) 是眼睛看到的画面,为决策提供环境信息。
    ot\displaystyle \boldsymbol{o}_{t}
  2. 关节状态\(\boldsymbol{q}_{t}\) 是两臂当前关节角度,相当于身体此刻的“姿态”。
    qt\displaystyle \boldsymbol{q}_{t}
  3. 动作块输出\(\hat{\boldsymbol{a}}_{t:t+K}\) 是从当前时刻往后共 \(K\) 步的动作序列,像“揉五下、再擀两圈”的口诀。
    a^t:t+K=πθ(ot, qt, z)\displaystyle \hat{\boldsymbol{a}}_{t:t+K} = \pi_{\theta}\left( \boldsymbol{o}_{t},\ \boldsymbol{q}_{t},\ \boldsymbol{z} \right)

模仿学习

“模仿学习”像是徒弟反复对照曲谱练习:每练习一次,就检查唱出来的动作和师傅录音差多少,然后调整自己的肌肉记忆。它不依赖奖励函数,而是直接学习“看到什么就做什么”。

ACT 的训练目标是让预测动作块尽量接近演示动作块,同时约束潜变量 \(z\) 的分布不偏离标准正态分布。前者保证动作拟合,后者保证生成多样且稳定。损失函数写成:

师徒传承里的“韵味”就靠潜变量保留下来:同一个动作可以夹得紧一点,也可以夹得柔一点,但整体节奏始终一致。

L=1K∑k=1K∥a^t+k−at+k⋆∥22+β DKL(q(z∣ot) ∥ p(z))\displaystyle \mathcal{L} = \frac{1}{K}\sum_{k=1}^{K} \left\| \hat{\boldsymbol{a}}_{t+k} - \boldsymbol{a}^{\star}_{t+k} \right\|_{2}^{2} + \beta \, D_{KL}\left( q(\boldsymbol{z}\mid \boldsymbol{o}_{t}) \,\|\, p(\boldsymbol{z}) \right)
损失由“动作复现误差”和“潜变量分布约束”两部分组成,前者练准,后者练稳。
  1. 动作复现误差把 \(K\) 步预测动作和真实演示动作逐项求差平方再平均,差得越少说明练得越像。
    1K∑k=1K∥a^t+k−at+k⋆∥22\displaystyle \frac{1}{K}\sum_{k=1}^{K} \left\| \hat{\boldsymbol{a}}_{t+k} - \boldsymbol{a}^{\star}_{t+k} \right\|_{2}^{2}
  2. 潜变量正则\(D_{KL}\) 衡量学到的 \(z\) 分布与标准正态分布的差距,防止动作风格变形。
    DKL(q(z∣ot) ∥ p(z))\displaystyle D_{KL}\left( q(\boldsymbol{z}\mid \boldsymbol{o}_{t}) \,\|\, p(\boldsymbol{z}) \right)
  3. 平衡权重\(\beta\) 用来控制“练准”和“练稳”哪个更重要,太大动作会单调,太小动作会发散。
    β\displaystyle \beta

部署实践

徒弟正式上灶前,还要按自己厨房的台面高度、锅碗位置做一次“适应训练”。双臂系统从仿真和示范走向真实任务时,同样需要标定工作空间、补偿系统误差,并把大任务拆成小步骤。

部署实践通常把任务拆成“拿起”“移动”“插入”“松开”几个子任务,每个子任务单独收集示范并训练策略。上线后先用成功率评估整体表现,再针对失败样本补充数据,形成“发现问题-补充示范-重新训练”的闭环。

真机部署还会加入视觉数据增强、随机摆放、人工纠错等“实战演练”,确保徒弟换一个厨房也能拿稳筷子。

S=NsuccNtotal×100%\displaystyle S = \frac{N_{\mathrm{succ}}}{N_{\mathrm{total}}} \times 100\%
成功率是完成任务次数占总尝试次数的百分比,是部署中最直观的健康指标。
  1. 完成次数分子 \(N_{\mathrm{succ}}\) 是机器人成功完成任务的次数,相当于“顺利出菜的次数”。
    Nsucc\displaystyle N_{\mathrm{succ}}
  2. 总尝试次数分母 \(N_{\mathrm{total}}\) 是全部测试次数,包含成功与失败。
    Ntotal\displaystyle N_{\mathrm{total}}
  3. 成功率计算两者相除再乘百分之百,得到容易汇报和比较的百分比。
    NsuccNtotal×100%\displaystyle \frac{N_{\mathrm{succ}}}{N_{\mathrm{total}}} \times 100\%

优势局限

面馆的低成本练手装置能教会大多数手艺,但遇到需要极大腕力或高速颠锅的场面,它仍然比不上专业大厨。ALOHA/AnyMAL 的优势和局限同样清晰:性价比高、开源可复现,但负载能力和极端精度仍有限。

从“性价比”视角看,评价一个双臂系统不是只看绝对成本,而是看单位成本能完成多少任务。ALOHA 把成本压下来,让更多场景愿意尝试机器人,这就是它最大的贡献。

这套“后厨师徒系统”不会取代工业重载机械臂,但它让科研院所、小工厂甚至爱好者都能拥有双臂智能,未来想象空间巨大。

η=PtaskCsystem\displaystyle \eta = \frac{P_{\mathrm{task}}}{C_{\mathrm{system}}}
性价比等于任务性能除以系统总成本。分母越小,单位成本能买到的“任务能力”越高。
  1. 任务能力\(P_{\mathrm{task}}\) 代表系统能完成的精细任务种类和成功率,是“本事”。
    Ptask\displaystyle P_{\mathrm{task}}
  2. 系统成本\(C_{\mathrm{system}}\) 是硬件、软件、部署时间折算的总成本,是“开销”。
    Csystem\displaystyle C_{\mathrm{system}}
  3. 性价比\(\eta\) 是“每花一块钱买到多少本事”,ALOHA 的高性价比正来自开源和低成本。
    η=PtaskCsystem\displaystyle \eta = \frac{P_{\mathrm{task}}}{C_{\mathrm{system}}}

AI 应用场景

柔性装配线的小批量换产

阶段:数据采集 + 策略训练

解决的问题:传统装配线换一个新料盒就需要工程师重新编写双臂轨迹,工作量大且难以应对小批量多品种。先用 ALOHA 遥操作示范几次装配动作,再用 ACT 训练出双臂协作策略,遇到新物料只需快速补录少量示范。

具体案例:一家电子配件厂要装配不同规格的接插件,工人握住主臂演示“左手扶件、右手插针”,系统采集 20 条示教后完成训练,机械臂转换周期从两周缩短到一天。

危险环境远程精细操作

阶段:遥操作 + 真机部署

解决的问题:人在核环境、污染区或有毒车间直接操作风险高,而完全自动化又难以应对复杂情况。ALOHA 的双臂遥操作让人隔着玻璃墙“亲手”示范,后续可由 ACT 策略自动复现。

具体案例:某实验室需要远程更换精密化学实验夹具,操作员在安全区通过主臂引导从臂完成更换,记录示范后机器人开始自动执行重复任务。

高校科研与教育教学

阶段:算法验证 + 开源二次开发

解决的问题:高校实验室预算有限,难以购买昂贵双臂平台做模仿学习研究。ALOHA 的低成本开源硬件把科研门槛降到“能买一台普通工作站”的水平。

具体案例:硕士生用开源 ALOHA 采集“叠衣服”“插排插”等日常任务数据,复现最新 ACT 算法并改进数据增强策略,快速产出论文和原型。

Python 演示

python43 行
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()
目的:用线性回归实现一个极简版“动作分块”模型,演示 ACT 从观测预测未来一段动作的核心思想。
  1. Y.append(np.concatenate(act_seq[t + 1:t + 1 + K]))把未来 K 步动作首尾拼接成一个“动作块”,对应 ACT 动作分块。
  2. self.theta = np.linalg.pinv(np.asarray(X)) @ np.asarray(Y)用最小二乘法学出“观测到动作块”的映射矩阵。
  3. flat = np.asarray(obs) @ self.theta推理时先算出整段动作块的扁平向量。
  4. chunk = [flat[i:i + 2] for i in range(0, len(flat), 2)]把扁平向量还原成每步两个关节的可执行动作。
  5. model.train(obs, act)用一段演示轨迹训练模型,对应模仿学习中的行为克隆。

常见误区

误区这么厉害的双臂机器人,至少要几十万美元,普通实验室根本碰不到。

正解ALOHA 设计的初衷就是“低成本开源”。它用成熟电机、结构件和开源控制器搭建,成本远低于工业双臂平台,像一套“可以跟着图纸自己攒的练习厨具”。

为何常见:大家对工业机器人昂贵、复杂的印象太深,容易把“机器人”和“天价设备”划等号。

误区只要用相机录下师傅的动作,AI 就能通过看视频学会操作。

正解机器人需要精确的关节角度作为动作标签,视频只提供画面,无法直接给出每个关节的发力目标。ALOHA 通过主臂带动从臂,把人的动作转成数值轨迹,才能训练出 act 策略。

为何常见:人类学习确实主要靠眼睛,于是想当然认为机器也能“看视频自学”。

误区机器人要不断试错、拿到奖励信号才能学会任务。

正解ACT 属于模仿学习,尤其是行为克隆。它直接从示教数据里学“观测到动作”的映射,不使用奖励函数,也不需要大量随机试错。

为何常见:近几年强化学习曝光度高,许多初学者把所有机器学习训练都理解成“给奖励再试错”。

误区录一圈动作,机器人就能在任意环境下完美复现。

正解真实部署需要录多条示范、覆盖不同摆放位置和光照,还要做工作空间标定、误差补偿、数据增强。一次示范就像只练过一遍的新菜,换个锅就可能失败。

为何常见:示教视频看起来简单直接,让人低估了真实环境中的分布差异。

误区左臂学左臂的任务,右臂学右臂的任务,最后拼在一起就行。

正解许多任务是双臂强耦合的,比如左手扶、右手插,两臂需要同时感知彼此状态并共同输出动作。ACT 把双臂关节统一放进向量,形成真正的协调策略。

为何常见:单臂机器人研究更早更常见,容易形成“一臂一个模型”的惯性思维。

面试题

Q1. ALOHA 的核心定位是什么?

单选题 · easy

  • A.昂贵的军用机械臂
  • B.纯仿真数据集平台
  • C.聊天机器人对话系统
  • D.低成本开源双臂遥操作系统← 正确答案

答案:D。ALOHA 是“低成本开源双臂遥操作硬件”,它用主臂带动从臂采集示范数据,并用 ACT 等算法训练策略。它既不是军用设备,也不是纯仿真或聊天系统。

Q2. 遥操作采集中,最关键的动作信息来源是什么?

单选题 · easy

  • A.高帧率视频光流
  • B.操作者口头描述
  • C.主臂关节角度记录← 正确答案
  • D.外接鼠标移动轨迹

答案:C。视频和描述只能提供画面或意图,真正的动作标签来自主臂关节角度。人与主臂的物理交互被编码成数值轨迹,才能让从臂和算法获得精确的示教动作。

Q3. ACT 策略预测动作的方式有什么特点?

单选题 · mid

  • A.只预测当前一个动作
  • B.随机抽一个动作执行
  • C.依赖强化学习奖励信号
  • D.一次预测未来 K 步动作块← 正确答案

答案:D。ACT 的核心是“动作分块”,它用 Transformer 一次性输出未来 K 步动作序列,而不是逐帧预测。连续动作块让轨迹更平滑,也能减少模仿学习中的复合误差。

Q4. ACT 中潜变量 \(z\) 的主要作用是什么?

单选题 · mid

  • A.压缩视频编码参数
  • B.表达演示动作的多样风格← 正确答案
  • C.控制电机的供电电压
  • D.替代相机标定结果

答案:B。潜变量就像“动作口诀里的语气”,用来表达这轮演示的细微风格差异,例如夹取角度、力度变化等。它帮助 ACT 在多种合理动作之间生成更自然的结果。

Q5. 双臂系统相比两个单臂系统,更强调什么?

单选题 · mid

  • A.处理器主频高低
  • B.两臂协调和联合规划← 正确答案
  • C.显示器分辨率大小
  • D.机械臂螺丝尺寸

答案:B。双臂任务中,左右手常常同时参与,必须共享观测并联合输出动作。ACT 把两臂关节放进同一个动作向量,让左右手像“同一个节拍器”下的两位师傅那样配合。

Q6. 行为克隆在真实部署中最常见的问题是什么?

单选题 · hard

  • A.奖励函数设计过稀疏
  • B.状态分布偏移导致误差累积← 正确答案
  • C.演示数据永远无法采集
  • D.完全不需要演示数据

答案:B。训练时策略见过的状态来自演示集,但测试时一旦出现微小偏差,机器人会进入从未见过的状态,误差越滚越大。动作分块和多示范数据能明显缓解这种分布偏移。

Q7. 部署双臂系统时,最能直接提升成功率的手段是什么?

单选题 · hard

  • A.给机械臂涂更亮颜色
  • B.增加显示器数量
  • C.工作空间标定与误差补偿← 正确答案
  • D.降低视频帧率

答案:C。主从空间映射和相机观测都需要标定,否则机器人“看到的”和“够到的”对不上。就像徒弟换了新灶台,必须先确认锅碗位置,否则动作再标准也会落空。

Q8. ALOHA 系统通常包含哪些组件?

多选题 · easy

  • A.主臂、从臂与相机← 正确答案
  • B.控制器与开源软件← 正确答案
  • C.电机与结构件支架← 正确答案
  • D.高温超导反应堆

答案:ABC。ALOHA 由主臂、从臂、相机、控制器、开源软件以及电机结构件组成。高温超导反应堆与双臂操作无关,是典型干扰项。

Q9. ACT 模仿学习的训练目标通常包括哪些部分?

多选题 · mid

  • A.动作块重构损失← 正确答案
  • B.KL 散度正则项← 正确答案
  • C.主臂手部力反馈
  • D.相机标定误差

答案:AB。ACT 用动作块的均方误差衡量“学得像不像”,又用 KL 散度约束潜变量分布保持稳定。力反馈和相机标定误差不是训练损失里的正则项。

Q10. ALOHA/AnyMAL 部署实践的常用手段有哪些?

多选题 · hard

  • A.数据增强与迁移学习← 正确答案
  • B.任务拆解与成功率验证← 正确答案
  • C.人工误差修正与补充示范← 正确答案
  • D.彻底放弃关节反馈

答案:ABC。真实部署需要数据增强、任务拆解、成功率验证和补充示范来应对环境变化。关节反馈是机器人的“本体感觉”,放弃它会失去控制稳定性,属于错误选项。