第 85 章:Mobile ALOHA 与 UMI 数据采集精读¶
| 元信息 | 值 |
|---|---|
| 难度 | ⭐⭐⭐(硬件、遥操作、标定、同步、数据闭环) |
| 预计时间 | 1.5 周(30-35 小时) |
| 前置依赖 | 复合/50_操作技能接口,复合/140_VLA移动操作 |
| 核心主线 | 数据采集质量决定策略上限,硬件和同步错误会直接变成策略错误 |
前置自测¶
在开始本章前,请独立回答以下问题。 如果有两个以上答不出,建议先回顾对应章节。
| # | 问题 | 回顾入口 |
|---|---|---|
| 1 | ACT 为什么要预测动作片段? | 复合/140 |
| 2 | 机器人数据集中 observation、state、action、episode 边界分别表示什么? | 复合/140 |
| 3 | 相机外参、手眼标定和时间同步分别解决什么问题? | 机械臂标定与视觉伺服基础 |
| 4 | 如果示教轨迹中夹爪动作延迟 200ms,会对模仿学习产生什么影响? | 复合/140 动作接口 |
| 5 | 为什么 UMI 可以不用目标机器人也采集操作数据? | 本章 85.8 之后 |
本章目标¶
- 理解 Mobile ALOHA 的硬件、主从遥操作、数据格式和共训练配方。
- 掌握 UMI 手持夹爪的采集链路:视频、SLAM、手眼标定、轨迹恢复和策略训练。
- 能设计多相机、多臂、底盘和夹爪的时间同步方案。
- 能列出数据采集中最常见的失败模式,并给出可执行排查步骤。
- 能判断一批示教数据是否足以训练 ACT、Diffusion Policy 或 VLA 微调。
前置依赖与下游连接¶
- 复合/140_VLA移动操作:提供策略接口、动作生成和安全过滤背景。
- 复合/120/130 移动操作规划:提供传统控制和可达性检查背景。
- 机械臂标定与视觉伺服章节:提供相机标定、手眼标定和闭环伺服基础。
下游章节会继续使用本章的概念。 - 复合/260_VLA_Foundation_Model 会讨论这些数据如何进入跨本体基础模型训练。
85.0 知识地图:移动操作数据采集闭环¶
本章的知识树以“怎样采到可训练、可回放、可部署的数据”为根节点。 Mobile ALOHA 和 UMI 不是两个孤立项目,而是两种互补的数据采集路线:前者在目标机器人上做全身遥操作,后者用手持工具降低真实操作数据的进入门槛。 阅读本章时要始终追问:数据来自什么硬件、动作如何被记录、时间如何对齐、坐标如何标定、失败如何回流到下一轮采集。
移动操作数据采集闭环
├── Mobile ALOHA 路线
│ ├── 移动底盘 + 双臂 + 夹爪
│ ├── leader/follower 主从遥操作
│ ├── 全身动作向量
│ ├── 静态/移动数据共训练
│ └── 实机 replay 与阶段评测
├── UMI 路线
│ ├── 手持夹爪与相机
│ ├── 视频与 SLAM 轨迹恢复
│ ├── 手眼标定与任务帧动作
│ ├── 目标机器人可达性检查
│ └── 跨平台策略训练
├── 采集质量门槛
│ ├── 相机内参与外参
│ ├── 手眼标定和夹爪零点
│ ├── 多路时间同步
│ ├── episode schema
│ └── metadata 版本化
├── 模仿学习入口
│ ├── ACT action chunking
│ ├── Diffusion Policy
│ ├── VLA 微调数据
│ ├── source mask 与 valid mask
│ └── 失败样本分流
├── 闭环改进
│ ├── collect
│ ├── replay
│ ├── clean
│ ├── train
│ ├── deploy
│ └── diagnose
本质洞察:数据采集不是“把传感器录下来”, 而是把人类意图、机器人状态、视觉证据、动作命令和任务结果绑定到同一条可追溯时间线上。 任何标定、同步或 schema 错误,都会以监督信号的形式进入模仿学习模型。
| 层级 | 关键对象 | 输出物 | 质量门槛 | 主要风险 |
|---|---|---|---|---|
| 遥操作层 | leader、follower、底盘、夹爪 | 人类示教动作和机器人实际状态 | 零点一致、延迟可测、急停可用 | 人类补偿被模型学走 |
| 标定层 | 相机、末端、底盘、任务 frame | 坐标变换与 calibration_id | 重投影误差和可达性检查通过 | 像素和动作稳定偏移 |
| 同步层 | 图像、关节、夹爪、动作下发 | 对齐后的时序样本 | 统一时钟、延迟估计、重采样规则 | 假因果监督 |
| 数据层 | observation、state、action、metadata | episode 数据集 | schema 固定、失败可分类、replay 可用 | 可训练但不可复现 |
| 学习层 | ACT、Diffusion、VLA 微调 | 策略与评测报告 | source mask、数据切分、阶段指标 | 泛化失败无法归因 |
85.1 Mobile ALOHA 技术栈总览 ⭐⭐¶
动机:为什么低成本硬件能推动双臂移动操作?¶
Mobile ALOHA 的关键不是单个零件昂贵,而是把底盘、双臂、遥操作和模仿学习接成闭环。 系统允许人类直接示教全身动作,把复杂任务变成可监督学习的数据。 它提示移动双臂任务可以依靠高质量示教起步,而不是只能等待大规模工业数据。
反例与递进理解¶
- 反例:只购买相同型号零件却不校准零点,主从遥操作看似顺畅,整批示教都带固定偏差。
- 机制:Mobile ALOHA 的价值来自硬件、遥操作、同步和模仿学习的闭环,而不是某个单独部件。
- 工程接口:采集前要确认急停、软限位、相机时间、夹爪零点和 episode 字段。
- 失败模式:硬件误差会直接变成监督信号,训练阶段很难自动区分“人类意图”和“系统偏差”。
来龙去脉¶
ALOHA 首先展示低成本双臂精细操作。 Mobile ALOHA 把双臂搬到底盘上,动作空间从静态双臂扩展为底盘 + 双臂 + 夹爪。 后续 VLA 和基础模型路线通常会把这类真实示教数据作为重要训练来源之一,具体使用方式以论文和官方发布为准。
核心机制¶
- 底盘提供粗位移,双臂提供精细操作。
- leader 臂捕捉人类动作,follower 臂在机器人端执行。
- 相机提供视觉上下文,本体状态提供动作闭环。
- ACT 或 Diffusion Policy 学习从观测到动作片段。
数学接口¶
$\(a_t=[v_t,\omega_t,q_{L,t}^{ref},q_{R,t}^{ref},g_{L,t},g_{R,t}]\)$ 动作向量同时包含底盘、双臂和夹爪状态。
工程接口¶
- 采集前确认底盘急停、机械臂软限位和夹爪限力。
- 采集时记录人类示教动作和机器人实际执行状态。
- 采集后用 replay 检查 episode 是否可复现。
⚠️ 常见陷阱¶
- 概念误区:低成本不等于低要求;低成本系统更依赖严格标定和同步。
- 工程陷阱:leader 与 follower 关节零点不一致,整批数据带固定偏差。
- 安全陷阱:底盘遥操作和双臂遥操作没有统一急停。
练习¶
- 画出 Mobile ALOHA 的硬件连接图。
- 写出一个 16 维动作向量的字段定义。
- 分析为什么全身遥操作比只遥操作机械臂更适合长任务。
85.2 硬件选择:底盘、双臂与相机 ⭐⭐¶
动机:硬件规格如何影响数据分布?¶
数据不是抽象张量,它来自具体硬件。 底盘速度、臂工作空间、相机视角和夹爪行程都会进入示教分布。 换硬件后策略失败,常常不是模型问题,而是数据接口发生了变化。
反例与递进理解¶
- 反例:换成更强机械臂后不更新数据 schema,旧策略仍按原工作空间和夹爪行程解释动作。
- 机制:硬件规格决定动作分布、可达区域、遮挡形态和操作者示教习惯。
- 工程接口:metadata 必须记录底盘、双臂、相机、夹爪、固件和标定版本。
- 失败模式:硬件变化最常表现为成功率跨日期波动,而不是单次运行立即报错。
来龙去脉¶
Fetch、Stretch、Mobile ALOHA、Ridgeback+Panda 都是移动操作平台,但动作空间差异极大。 UMI 的思路则把采集硬件从目标机器人中部分解耦。
核心机制¶
- 差速底盘限制横向运动,示教会包含更多转向。
- 全向底盘让对准动作更直接,但硬件成本和控制复杂度更高。
- 双臂任务对相机遮挡更敏感,需要腕部和外部视角互补。
数学接口¶
$\(\mathcal D_{robot}=f(\text{base},\text{arm},\text{camera},\text{operator})\)$ 数据分布是硬件和操作者共同产生的。
工程接口¶
- 为每个相机固定视角、分辨率、曝光和安装刚度。
- 为每个关节记录限位、最大速度和零点。
- 把硬件版本写入 dataset metadata。
⚠️ 常见陷阱¶
- 工程陷阱:相机自动曝光在厨房灯光下频繁变化,模型学到不稳定颜色特征。
- 概念误区:换成更强的臂就能直接复用数据;负载和运动学改变会改变动作分布。
- 数据陷阱:夹爪磨损后开合宽度变小,旧标签不再准确。
练习¶
- 比较差速底盘和全向底盘对开冰箱任务示教的影响。
- 为双臂移动操作选择相机布局,并说明遮挡处理。
- 写一份硬件 metadata 字段清单。
85.3 遥操作链路:leader 到 follower ⭐⭐⭐¶
动机:人类动作如何变成机器人动作?¶
遥操作的本质是把人类在 leader 设备上的动作映射到 follower 机器人。 这个映射必须处理关节对应、限位、速度缩放和安全约束。 如果映射不稳定,示教数据会把人类纠错动作也学进去。
反例与递进理解¶
- 反例:leader 关节顺序与 follower 不一致,操作者持续用补偿动作完成任务,模型随后学到这种补偿。
- 机制:遥操作链路本质是从人类输入到机器人参考动作的可校准映射。
- 工程接口:应同时记录 leader 原始值、follower 参考值、机器人实际状态和延迟估计。
- 失败模式:只保存命令不保存实际状态,会让后续训练无法区分控制误差和示教意图。
来龙去脉¶
早期主从遥操作强调低延迟和透明控制。 ALOHA 让主从遥操作成为低成本双臂示教的标准方式。
核心机制¶
- 关节同构时可以直接映射角度。
- 关节不同构时需要 IK 或任务空间映射。
- 底盘通常由脚踏、手柄或键盘输入控制。
- 夹爪需要单独处理开合、力限制和接触状态。
数学接口¶
$\(q_f^{ref}=s\,(q_l-q_l^0)+q_f^0\)$ 其中 \(q_l^0\) 和 \(q_f^0\) 是 leader/follower 零点,\(s\) 是缩放因子。
工程接口¶
- 采集前做零点校准。
- 采集中记录 leader 原始值和 follower 参考值。
- 采集后比较 reference 与 actual 的跟踪误差。
⚠️ 常见陷阱¶
- 编程陷阱:只记录发送命令,不记录机器人实际状态,后续无法知道伺服误差。
- 工程陷阱:leader 臂摩擦大,操作者动作出现间歇性停顿。
- 概念误区:示教越慢越好;过慢会让策略在真实执行时缺乏速度分布。
练习¶
- 推导 leader/follower 零点偏差如何影响末端位置。
- 设计一个遥操作延迟测量实验。
- 比较关节空间映射与任务空间映射在不同臂上的可迁移性。
85.3B Mobile ALOHA 的全身遥操作:怎样一个人同时控制双臂和底盘 ⭐⭐⭐¶
动机:双手都在操作机械臂,谁来开底盘?¶
85.3 讲了 leader→follower 的关节映射,那是 ALOHA 的双臂遥操作。但"移动"双臂带来一个看似无解的难题:人只有两只手,两只手都握着 leader 臂在示教操作,没有第三只手去驱动底盘。 朴素方案是给底盘配手柄或脚踏,但这会让示教分心、且底盘动作与双臂动作来自不同输入设备、难以自然协调。Mobile ALOHA 的解法很巧,也直接决定了它采集的数据长什么样——本节把这个机制讲透,它是理解 16 维动作向量中那 2 维底盘速度"从哪来"的关键。
反面:分离式底盘输入为什么破坏全身协调¶
如果底盘用手柄/脚踏单独控制,会出现三个问题:
- 注意力分裂:操作者要在"手控双臂"和"另一套设备控底盘"之间切换,长任务里底盘与双臂的时序很难自然咬合。
- 协调性丢失:人类完成"边走边操作"时,躯干移动和手部动作是一个整体运动;拆成两套输入后,这种全身协调的自然性在数据里就丢了。
- 节奏失真:分离输入容易产生"先停下走、再停下操作"的分段式示教,而真实部署需要的是连续的边移动边操作。
核心机制:把操作者的腰拴在底盘上¶
Mobile ALOHA 论文(arXiv:2401.02117)采用了一个直接到近乎"土"的方案:用一根系带把操作者的腰与移动底盘相连。于是:
- 操作者双手照常握 leader 臂示教双臂动作;
- 操作者**用自己的身体(腰/腿)拖动底盘**——人往哪走,底盘就被带着往哪走;
- 底盘的轮子在电机断扭(torqued off)时摩擦极低,人能轻松反向驱动(backdrive)。论文实测在乙烯基地板上滚动阻力约 13N,对多数人可接受;
- 底盘速度数据与双臂示教数据被同时记录——这就构成了"全身遥操作",也就是 16 维动作向量里 \(a_{base}\in\mathbb R^2\) 的真实来源。
本质洞察:Mobile ALOHA 的全身遥操作把"协调底盘与双臂"这个控制难题,从**算法问题**变成了**人体工学问题**——不需要任何融合算法去协调两套输入,因为协调发生在操作者自己的身体里。人天生就会"边走边用手",系带方案只是把这份天生的全身协调能力**直接录进数据**。这解释了为什么 Mobile ALOHA 数据天然带有连贯的全身时序(底盘与双臂同相位变化),而这正是 85.7 共训练中"移动数据负责教全身时序"的物理基础。
一个额外好处:粗粒度触觉反馈。因为操作者与机器人本体直接相连,当机器人撞到物体时,这个冲击会通过系带传回操作者身上,提供**粗粒度的触觉反馈**。操作者无需盯着屏幕也能感知碰撞,从而更自然地避让——这进一步提升了示教数据的质量(更少的碰撞、更平滑的避让轨迹)。
数学接口:底盘速度如何与双臂动作同时进入一条时间线¶
回顾 85.5 的同步要求。全身遥操作把底盘速度与双臂关节目标放进同一个动作向量、同一条时间线:
关键是 \(a_{base}\) 与 \(a_{arms}\) 必须**同步采样**:底盘速度由轮速里程计读出,双臂关节由 leader 编码器读出,两者若不在同一时钟上对齐(85.5 的三种时间概念),全身协调的因果关系就会被破坏——例如"先迈步再伸手"被错位记录成"先伸手再迈步",模型学到错误的全身时序。
跨领域类比:系带式全身遥操作与外骨骼/动作捕捉的"被动随动"思想相近。像的地方:都让人体直接驱动机器,把人的运动协调性原样搬进数据,不经算法中转。不像的地方:外骨骼通常主动测量并约束人体每个关节,系带方案只约束"腰这一个点"、且是被动拖动,底盘的精确速度仍靠机器人自身里程计测量而非测人体。理解这个区别能避免把系带方案误解成"全身动捕"。
工程接口¶
- 采集前确认底盘电机处于断扭/低阻状态,且系带长度与张力适配操作者身高,避免拖动费力导致示教变形(呼应 85.3"leader 摩擦大导致动作停顿")。
- 底盘里程计与双臂编码器使用同一时间基准;记录底盘速度的采集时间戳,供离线与图像、双臂对齐。
- 急停必须同时覆盖底盘与双臂(85.1 安全陷阱"底盘和双臂没有统一急停")——系带把人和机器人绑在一起,底盘失控风险直接关系操作者安全。
⚠️ 常见陷阱¶
- 安全陷阱:系带把操作者和机器人物理绑定,一旦底盘电机异常上扭或双臂高速运动,操作者可能被拖拽。统一急停与速度上限(85.13 现场清单)在这里是安全底线而非可选项。
- 工程陷阱:底盘速度用写盘时间而非里程计采集时间对齐,导致底盘动作相对双臂整体偏移,全身时序失真(85.5 写盘时间陷阱的底盘版本)。
- 概念误区:以为全身遥操作需要复杂的底盘-双臂协调算法。Mobile ALOHA 的设计恰恰证明,把协调交给操作者身体反而最简单有效——增加算法在这里是过度工程。
练习¶
- 解释为什么"系带拖动 + 双手操作"采集到的全身时序,比"手柄控底盘 + 双手操作"更适合训练边移动边操作的策略。
- 设计一个验证实验:分别用系带式和手柄式采集同一个"走到桌边并抓杯"任务,比较两种数据在底盘-双臂时序相关性上的差异指标。
- 结合 85.5:画出底盘速度、双臂关节、图像三路信号在一次"迈步—伸手—抓取"中的理想时间对齐图,并标出哪一路最容易因时钟不齐而错位。
85.4 数据 schema:episode 是最小教学单元 ⭐⭐⭐¶
动机:为什么不能只保存一串视频和动作?¶
模仿学习需要知道每帧属于哪个任务、哪个阶段、哪个动作上下文。 episode 边界、重置状态和成功标签决定训练样本的语义。 没有 schema 的数据很难清洗、复现和合并。
反例与递进理解¶
- 反例:把视频和动作文件分别命名保存,某次中断后索引偏移,训练样本仍能读取但语义已错位。
- 机制:episode 是数据采集的最小教学单元,定义了任务、阶段、重置、成功与失败边界。
- 工程接口:每帧应关联 observation、state、action、timestamp、task 和 calibration_id。
- 失败模式:schema 错误通常会在 replay 和部署时暴露,离线 loss 可能仍然下降。
来龙去脉¶
RLDS、LeRobot Dataset、ALOHA hdf5 和 UMI 数据格式各有实现差异。 共同点是都要保留观测、动作、状态、时间和 episode 元信息。
核心机制¶
- observation 表示策略看到什么。
- action 表示策略应该输出什么。
- state 表示机器人真实状态。
- metadata 表示硬件、任务、标定和采集设置。
数学接口¶
$\(E_i=\{(o_t,s_t,a_t,\tau_t)\}_{t=0}^{T_i}\)$ \(\tau_t\) 是时间戳,不是力矩。
工程接口¶
- 每个 episode 保存 task_name、operator_id、success、failure_reason。
- 每个传感器保存原始时间戳和对齐后时间戳。
- 每次标定生成 calibration_id,并写入 episode。
⚠️ 常见陷阱¶
- 数据陷阱:失败 episode 未标注却混入成功训练集。
- 工程陷阱:视频文件名和表格索引脱节,训练时读错帧。
- 概念误区:只要能训练就说明数据格式正确;格式错误常在部署时才暴露。
练习¶
- 为搬杯子任务设计完整 episode schema。
- 写出三类 failure_reason,并说明如何自动检测。
- 比较 hdf5、Parquet+MP4 和 RLDS 的优缺点。
85.5 时间同步:毫秒级错误如何变成策略错误 ⭐⭐⭐¶
动机:为什么同步是数据采集的第一质量门槛?¶
动作与观测必须描述同一个时刻附近的世界。 如果图像滞后,模型会把过去看到的物体与当前动作绑定。 在双臂和底盘同时运动时,延迟会成倍放大。
反例与递进理解¶
- 反例:夹爪动作比图像提前,模型看到夹爪尚未接触却学习到闭合命令,实机抓取会提前发生。
- 机制:同步把多路传感器和动作放到同一物理时间轴上,是监督信号成立的前提。
- 工程接口:记录传感器时间、接收时间、写盘时间,并估计固定延迟和尾部延迟。
- 失败模式:时间误差会被策略当作因果关系学习,尤其伤害接触和双臂协作任务。
来龙去脉¶
传统机器人控制依赖实时总线和高频状态反馈。 学习数据采集常使用 USB 相机、Python 进程和多线程记录,同步问题更突出。
核心机制¶
- 硬同步使用触发信号。
- 软同步使用统一时钟和时间戳插值。
- 离线对齐可以通过动作峰值、视觉事件或接触事件校正。
三种时间概念的区别。每个传感器数据样本都有三个时间:
| 时间类型 | 含义 | 典型精度 | 陷阱 |
|---|---|---|---|
| 采集时间 | 传感器物理采样的时刻 | 亚毫秒(硬件时钟) | 不同设备时钟可能漂移 |
| 接收时间 | 数据到达主机进程的时刻 | 毫秒级(含 USB/网络延迟) | USB 拥塞会引入抖动 |
| 写盘时间 | 数据被写入磁盘的时刻 | 变化大(含 OS 调度延迟) | 绝对不能当作采集时间 |
反事实推理:如果用写盘时间代替采集时间会怎样?假设相机帧率 30Hz(33ms 间隔),USB 传输抖动 \(\pm\)10ms,OS 写盘调度延迟 0-50ms。用写盘时间,同一物理帧的"时间"可能在 33ms 到 83ms 之间波动——相邻帧的时间间隔从标称的 33ms 变成 0-83ms。对动作而言,这意味着"10ms 内发生了 50ms 的动作"和"83ms 内没有动作变化"交替出现,策略会学到完全错误的动作速度。
延迟估计的实操方法。测量固定延迟最简单的方式是用 LED 事件对齐:
- 在相机视野中放置一个 LED
- 让机器人在某个关节运动的同时点亮 LED
- 关节编码器记录运动开始时间,相机记录 LED 亮起帧
- 两者的时间差就是系统延迟估计
对于多相机系统,每个相机都要独立测量。不同 USB 端口的延迟可能不同。
数学接口¶
$\(o_t = \text{interp}(O, t), \quad a_t = \text{interp}(A, t+\Delta)\)$ \(\Delta\) 是系统延迟,需要测量而不是猜测。
工程接口¶
- 记录采集时间、接收时间和写盘时间。
- 对每路设备估计延迟分布。
- 训练前把所有数据重采样到统一频率。
⚠️ 常见陷阱¶
- 工程陷阱:摄像头帧率标称 30Hz,实际在 USB 拥塞时掉到 22Hz。
- 概念误区:平均延迟小就够;尾部延迟会造成少量灾难样本。
- 数据陷阱:动作先写盘、视频后写盘,文件系统时间不是传感器时间。
练习¶
- 设计一个用 LED 闪烁和夹爪开合测同步的实验。
- 推导 100ms 图像延迟在 0.5m/s 底盘速度下造成的位置偏差。
- 实现一个离线重采样流程图。
85.6 标定:把像素、夹爪和机器人坐标接起来 ⭐⭐⭐¶
动机:为什么标定误差会被策略当成真实规律学习?¶
标定把传感器坐标系和机器人坐标系连接起来。 在数据采集中,标定错误不会自动报错,而是沉默地进入训练集。 策略会把错误外参学成动作习惯,换环境后立即失效。
反例与递进理解¶
- 反例:腕相机支架轻微松动后继续采集,图像看起来正常,但夹爪到物体的空间关系已经漂移。
- 机制:标定把像素、相机、末端、底盘和任务坐标系连成可计算链路。
- 工程接口:每次拆装或碰撞后生成新的 calibration_id,并用重投影和已知物体尺寸检查。
- 失败模式:标定错误会形成稳定偏差,模型可能学会错误补偿,换场景后立即失效。
来龙去脉¶
机械臂手眼标定、相机内参标定和机器人 base frame 定义是传统视觉伺服基础。 UMI 和 Mobile ALOHA 将这些标定问题推到大规模数据采集流程中。
核心机制¶
- 内参决定像素到光线。
- 外参决定相机到机器人。
- 手眼标定决定腕相机到末端执行器。
- 夹爪零点决定动作标签中的开合状态。
标定误差的传播链。理解标定的重要性需要追踪误差如何从标定传播到训练数据、再传播到策略行为。
设手眼标定误差为 \(\delta T_{cam}^{ee}\),那么所有通过该相机计算的物体位置都会偏移:
如果 \(\delta T_{cam}^{ee}\) 是平移 2cm + 旋转 1度,在 50cm 的操作距离上,物体位置误差约 2-3cm。这个误差不是随机的——它是系统性偏差。策略会学到"目标在偏移后的位置",这在训练环境中仍能成功(因为所有 episode 都带同样的偏差),但换环境或重新标定后立即失败。
跨领域类比:标定误差在数据采集中的角色类似于 SLAM 系统中的"一致但错误的地图"。一个稳定但有 2m 偏移的全局位姿,在局部导航中完全不影响——但一旦和真实世界坐标对齐(比如为另一个机器人提供目标),偏移就会暴露。数据采集中的标定偏差也是这样:对单平台训练"正确",对跨平台迁移"灾难"。
数学接口¶
工程接口¶
- 采集标定板数据时覆盖工作空间不同深度和角度。
- 每次相机拆装后重新生成 calibration_id。
- 用已知物体尺寸做标定 sanity check。
⚠️ 常见陷阱¶
- 概念误区:只要图像看起来正常就说明外参正确。外参错 2cm 足以让抓取失败。
- 工程陷阱:腕相机支架轻微松动,整批数据外参随时间漂移。
- 数据陷阱:夹爪开合标定只在空载时做,接触物体后实际开度不同。
练习¶
- 推导手眼标定链 \(AX=XB\) 的物理含义。
- 设计一个用 AprilTag 检查相机外参的流程。
- 列出标定数据应进入 metadata 的字段。
85.6B 示教数据质量度量与数据策展流水线 ⭐⭐⭐¶
动机:采集了 500 条 episode,怎样判断质量够不够?¶
数据量是必要条件,不是充分条件。500 条全是操作者犹豫和重复纠错的 episode,不如 200 条干净流畅的 episode。质量度量和策展流水线能在训练前发现大量问题。
示教质量度量体系¶
示教数据的质量应从五个维度量化,而不是只靠"回放看起来不错"的主观判断。
| 维度 | 度量指标 | 计算方式 | 合格阈值参考 |
|---|---|---|---|
| 时间一致性 | 图像-关节时间偏差 | 比对视觉事件和关节事件时间戳 | \(\leq\) 30ms(接触任务)、\(\leq\) 80ms(导航) |
| 动作平滑度 | 关节加速度 RMS | \(\sqrt{\frac{1}{T}\sum_t \|\ddot{q}_t\|^2}\) | 不超过正常操作的 2 倍标准差 |
| 任务完成度 | 阶段达成率 | 每个子任务阶段独立评分 | 主阶段达成率 \(\geq\) 95% |
| 操作者一致性 | 动作轨迹方差 | 同一任务多次执行的轨迹聚类分析 | 主模式占比 \(\geq\) 70% |
| 标定稳定性 | 外参漂移 | 相邻 episode 间标定板重投影误差变化 | 每日漂移 \(\leq\) 1 像素 |
动作平滑度的深层含义。高频抖动不一定是操作者手抖——它可能来自遥操作延迟、leader 臂摩擦、关节编码器噪声或 USB 时钟不稳定。区分来源很重要:
- 如果抖动频率在 15-30Hz 且与操作无关,很可能是通信或采样问题
- 如果抖动只出现在接触瞬间,可能是操作者正常反应
- 如果抖动贯穿整段轨迹,应排查 leader 机械问题
数据策展流水线¶
策展不是一次性清洗,而是一条从采集到训练的持续流水线。
原始采集
↓
Stage 1: 自动过滤
- 图像掉帧 > 5% 的 episode 标记
- 动作幅值超出 3σ 的帧标记
- episode 长度异常(太短或太长)
↓
Stage 2: 时间校验
- 检查多路时间戳单调性
- 估计固定延迟
- 标记延迟跳变帧
↓
Stage 3: 回放抽检
- 每 20 条抽 3 条可视化回放
- 人工标注任务阶段和成功/失败
↓
Stage 4: 统计分析
- 按操作者、任务、硬件版本分组统计
- 检查动作分布是否覆盖任务需求
↓
Stage 5: 版本化入库
- 冻结 normalization stats
- 生成 dataset_id 和 calibration_id
本质洞察:数据策展的目标不是让数据"干净"——而是让数据的质量边界可观测、可追溯、可量化。一个标注了失败原因的坏 episode,比一个看似正常但时间偏移的 episode 更有价值。
⚠️ 常见陷阱¶
- 概念误区:删除所有"不完美"的 episode 就是好策展。适量犹豫和纠错数据能提高策略鲁棒性。
- 工程陷阱:策展规则只在采集初期执行一次,后续追加数据时不再检查。
- 数据陷阱:按操作者过滤后发现只剩一个人的数据,策略学到的是个人习惯而非任务结构。
练习¶
- 为 100 条搬杯子 episode 设计一个五阶段策展流水线。
- 定义三个自动过滤规则,并说明每条规则可能的误杀场景。
- 讨论"操作者一致性"指标在什么情况下反而应该被放松。
85.6C 模仿学习的数据规模定律 ⭐⭐⭐¶
动机:到底需要多少示教数据?¶
"数据越多越好"是正确但无用的回答。研究和工程都需要更精确的指导:100 条够不够?1000 条能提升多少?什么时候数据量不再是瓶颈?
影响数据需求的五个因素¶
数据需求不是一个绝对数字,而是以下五个因素的函数:
| 因素 | 数据需求影响方向 | 直觉解释 |
|---|---|---|
| 任务多样性 | 任务越多,需要越多数据 | 每类任务至少需要足够的模式覆盖 |
| 动作空间维度 | 维度越高,需要越多数据 | 底盘+双臂+夹爪的 16 维动作比单臂 7 维需要更多样本 |
| 环境变异度 | 变异越大,需要越多数据 | 固定桌面 vs 任意厨房 |
| 模型容量 | 模型越大,需要越多数据避免过拟合 | 7B 参数模型比 30M 参数模型需要更多数据 |
| 预训练数据 | 视觉语言预训练越强,操作数据需求相对减少 | VLM 骨干已学到物体语义 |
经验数据规模参考¶
以下数字来自公开论文和社区经验,应作为数量级参考而非精确标准。
| 场景 | 策略类型 | 参考数据量 | 期望效果 |
|---|---|---|---|
| 单任务单场景(如固定位置抓杯) | ACT | 50-100 条 episode | 80%+ 成功率 |
| 单任务多变体(如不同杯子、不同位置) | ACT / Diffusion | 200-500 条 | 70%+ 泛化成功率 |
| 多任务单平台(5-10 种桌面操作) | Diffusion / VLA 微调 | 500-2000 条 | 各任务 60%+ |
| 跨环境泛化(不同厨房/房间) | VLA 微调 | 2000-10000 条 | 新环境 50%+ |
| 跨本体基础模型 | 基础模型预训练 | 100k-1M 条 | 零样本或少样本迁移 |
幂律现象。多个公开研究观察到,模仿学习的成功率与数据量之间近似呈幂律关系:
其中 \(N\) 是 episode 数量,\(\alpha\) 通常在 \(0.3 \sim 0.8\) 之间。这意味着:
- 从 50 条增加到 200 条(4 倍)可能带来 15-25% 的提升
- 从 1000 条增加到 4000 条(4 倍)可能只带来 5-10% 的提升
- 到某个点后,数据量增加的边际效益急剧下降
反事实推理:如果忽略数据质量只追求数量会怎样?假设 10% 的 episode 有时间同步错误。在 100 条数据中,10 条坏样本可能被其他样本压制。但在 10000 条数据中,1000 条坏样本形成了稳定的噪声分布,策略可能学到"有时候应该提前闭合夹爪"——这就是时间偏移被当作正确行为学习的结果。数据量扩大时,质量门槛反而需要更严格。
数据效率提升策略¶
当真实数据采集成本很高时,可以通过以下方式提高数据效率:
| 策略 | 原理 | 适用场景 | 风险 |
|---|---|---|---|
| 数据增强 | 图像裁剪、颜色抖动、背景替换 | 视觉泛化 | 不能对动作标签做几何变换 |
| 共训练 | 混合不同平台或模态数据 | 跨平台、跨来源 | 动作语义需要对齐 |
| 预训练+微调 | 用大规模视觉语言预训练 | 语义理解 | 微调数据仍需高质量 |
| 仿真合成 | 在仿真中生成脚本化或 RL 轨迹 | 初始数据不足 | Sim2Real Gap |
| 主动学习 | 只采集模型不确定的场景 | 高效补采 | 需要在线评估能力 |
⚠️ 常见陷阱¶
- 思维陷阱:追求论文中报告的最少数据量。那个数字通常是在最有利条件下得到的,换环境后不一定复现。
- 概念误区:仿真数据可以无限替代真实数据。仿真生成的接触模式、光照和物体材质仍与真实有差距。
- 工程陷阱:数据量够了就停止采集。部署后发现的新失败模式仍需要针对性补采。
练习¶
- 为一个移动双臂整理桌面任务估算数据需求,写出假设和计算过程。
- 设计一个实验验证数据量与成功率的幂律关系,需要多少采集轮次?
- 在 200 条数据的预算下,比较"全部采集单任务"和"100 条主任务 + 100 条变体"的策略。
85.6D 移动操作平台硬件设计权衡 ⭐⭐⭐¶
动机:ALOHA、UMI 和其他平台的设计选择背后是什么?¶
每种数据采集平台都在成本、精度、灵活性、遥操作体验和数据可迁移性之间做权衡。理解这些权衡,才能为具体研究目标选择或设计合适的平台。
主流平台硬件对比¶
| 维度 | Mobile ALOHA | UMI(手持夹爪) | Franka + 移动底盘 | Stretch RE2 |
|---|---|---|---|---|
| 成本 | ~2-4 万美元 | ~数百美元 | ~15-20 万美元 | ~2.5 万美元 |
| 自由度 | 底盘 2 + 双臂 12 + 夹爪 2 | 夹爪 1(末端 6DoF 由 SLAM 恢复) | 底盘 2-3 + 单/双臂 7-14 + 夹爪 | 底盘 2 + 升降 1 + 臂 5 + 夹爪 |
| 遥操作方式 | 同构 leader-follower | 人手直接操作 | 力觉或键盘/手柄 | 键盘/手柄 |
| 动作记录 | 关节编码器实时读取 | 视频 SLAM + 手眼标定恢复 | 关节编码器实时读取 | 关节编码器实时读取 |
| 数据绑定 | 强绑定到目标平台 | 弱绑定(可迁移到不同机器人) | 强绑定 | 强绑定 |
| 接触精度 | 中等(依赖 leader 力反馈) | 高(人手直觉) | 高(力觉遥操作) | 中等 |
| 场景灵活性 | 需要搬运整台机器人 | 极高(手持随处采集) | 低(设备笨重) | 中等 |
| 同步难度 | 中等(USB 相机 + 关节总线) | 高(离线 SLAM 对齐) | 低(实时总线) | 中等 |
关键设计权衡分析¶
权衡 1:数据绑定 vs 采集灵活性。Mobile ALOHA 的数据直接包含机器人关节轨迹,训练出的策略可以直接部署。但采集场景必须有机器人在场。UMI 在任何厨房、办公室都能采集,但数据只包含夹爪轨迹,部署时需要 IK、碰撞检查和可达性验证。
反事实推理:如果 UMI 的 SLAM 轨迹精度从毫米级退化到厘米级会怎样?对于擦桌子这类粗操作,影响不大。但对于插入、开瓶这类精细接触任务,1cm 的位置误差就是"抓到"和"抓空"的区别。因此 UMI 路线在精细接触任务上的适用性受限于 SLAM 精度。
权衡 2:遥操作体验 vs 数据质量。人手直接操作(UMI)最自然,但缺少关节层面的闭环反馈。同构 leader-follower(ALOHA)提供了接近直觉的操作体验,但 leader 臂的摩擦和重量会影响示教质量。力觉主从(Franka)体验最精确,但设备成本高且操作者训练时间长。
权衡 3:成本 vs 可扩展性。ALOHA 的低成本允许多台并行采集,这是其数据规模优势的来源。但低成本也意味着更大的标定漂移、更多的维护需求和更低的重复精度。
⚠️ 常见陷阱¶
- 概念误区:更贵的硬件一定产生更好的数据。数据质量取决于标定、同步和采集流程,不只是硬件规格。
- 工程陷阱:选择 UMI 路线后忽略 SLAM 质量检查,把跳变轨迹直接用于训练。
- 思维陷阱:只看论文中报告的平台,不考虑自己实验室的硬件条件和维护能力。
练习¶
- 为一个厨房整理任务选择采集平台,写出选择依据。
- 比较 ALOHA 和 UMI 在"开抽屉"任务上各自可能遇到的数据问题。
- 设计一个混合采集方案:先用 UMI 大量采集,再用 ALOHA 精采关键接触阶段。
85.6E ACT 动作分块的内部机制:从数据格式到 CVAE ⭐⭐⭐¶
动机:为什么"预测一段动作"比"预测下一步"更适合人类示教?¶
前置自测第 1 题问"ACT 为什么要预测动作片段"。本节把这个问题彻底讲透,因为它直接决定本章采集的数据要以什么颗粒度对齐。 回顾复合/140:模仿学习的目标是从观测 \(o_t\) 学一个策略 \(\pi\) 输出动作。最朴素的做法是逐步预测——给定当前观测,预测下一个动作 \(a_t=\pi(o_t)\)。 这个做法在人类遥操作数据上有一个致命问题:人类示教是非马尔可夫的。操作者的动作不只取决于当前画面,还取决于他脑子里的意图("我打算先把手伸过去再合爪")。同一帧画面,操作者这一次可能在加速、下一次可能在减速。逐步策略被迫把这种内在随机性当作噪声去拟合,结果是在每一步都输出"平均动作",rollout 时误差逐步累积。
本质洞察:动作分块不是为了"一次多输出几个数省算力",而是为了把人类示教中的**时间相关性**显式建模进来。当策略一次预测一整段 \(k\) 步动作时,这段动作内部的加减速、起停节奏被当作一个整体学习,而不是被 \(k\) 次独立的"下一步预测"切碎并各自平均掉。
反面:逐步行为克隆在长程任务上为什么会漂移¶
ACT 论文(Zhao et al., RSS 2023,Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware)把这种漂移归因于**复合误差(compounding error)**和**非马尔可夫示教**两点。
- 复合误差:逐步策略每步都有小误差,下一步的观测因此略微偏离训练分布,误差被反复放大。对一个 1000 步的精细插拔任务,即使单步误差只有 1%,累积后也足以让末端完全脱靶。
- 非马尔可夫示教:人类在"暂停—观察—再动"的瞬间会产生几乎相同的观测对应完全不同的动作(停在原地 vs 启动)。逐步策略在这些点上方差极大,表现为实机执行时的犹豫和抖动。
动作分块用一个简单的结构性改变缓解两者:把预测的时间跨度从 1 步拉长到 \(k\) 步。\(k\) 步内策略不重新查询观测,复合误差的累积次数从 \(T\) 降到 \(T/k\);同时一整段动作作为一个"意图单元"被学习,停顿—启动这类多模态被打包进同一个 chunk 的内部结构。
来龙去脉:CVAE 如何吸收"人类意图"这一隐变量¶
如果只是简单地让网络回归 \(k\) 步动作,多模态问题仍未解决——回归损失(L1/L2)在多个合理动作序列之间会取平均,平均出来的轨迹可能两个模式都不是(比如"从左绕"和"从右绕"平均成"直接撞上去")。 ACT 的关键设计是用**条件变分自编码器(Conditional Variational Autoencoder, CVAE)**显式建模这个多模态。它引入一个隐变量 \(z\) 代表"这一段示教背后的风格/意图":
- CVAE 编码器(只在训练时使用):输入当前关节状态和未来 \(k\) 步真实动作序列,输出隐变量 \(z\) 的后验分布 \(q(z\mid a_{t:t+k}, s_t)\)。它的作用是"看一眼这段示教属于哪种意图",把意图压进 \(z\)。
- CVAE 解码器(即策略本体):输入多视角图像、当前关节状态和 \(z\),用 Transformer 编码器融合多模态观测、用 Transformer 解码器自回归地吐出 \(k\) 步动作。
训练损失是重建项加 KL 正则:
跨领域类比:ACT 的 CVAE 结构与复合/140 提到的隐变量策略、以及表示学习里的 VAE 是同一族思想——编码器把"难以观测的因素"压成隐变量,解码器在该隐变量条件下生成。像的地方:都用 \(z\) 承载观测之外的信息、都有 KL 正则把后验拉向先验。不像的地方:标准 VAE 的解码目标是重建输入图像,ACT 的解码目标是生成未来动作序列(输入和输出不是同一个对象);而且 ACT 推理时**直接丢掉编码器**,令 \(z=0\)(取先验均值),相当于"用最典型的意图"去执行。这一点初学者常误解——以为推理时还要采样 \(z\),其实默认实现是 \(z=0\) 的确定性解码。
核心机制:temporal ensembling(时间集成)平滑 chunk 边界¶
逐 chunk 执行会在 chunk 与 chunk 的接缝处产生跳变:第 \(k\) 步是上一段的末尾、第 \(k{+}1\) 步是新一段的开头,两段之间没有连续性约束,实机表现为周期性顿挫。 ACT 的解法是 temporal ensembling:不是执行完整段再换下一段,而是**每一步都重新查询策略**,于是同一个物理时刻 \(t\) 会被多个起点不同的 chunk 各预测一次。把这些重叠预测做指数加权平均:
其中 \(a_t^{(j)}\) 是"第 \(j\) 个最早预测了时刻 \(t\) 的 chunk"给出的动作,\(m\) 控制衰减:\(m\) 越大越偏向最新的预测(更敏捷但更抖),\(m\) 越小越偏向更早的预测(更平滑但响应慢)。
这对数据采集的直接含义。temporal ensembling 要求训练数据在时间轴上是**密集且对齐**的——如果采集时关节状态和图像的时间戳没对齐(见 85.5),同一时刻被不同 chunk 预测出的动作本来就建立在错位的观测上,平均只会把错误抹匀而不是消除。这就是为什么本章把时间同步列为第一质量门槛:ACT 这类分块策略的平滑机制建立在"同一物理时刻"这个前提之上。
数学接口:chunk size 如何与采集频率耦合¶
设采集频率为 \(f\)(Hz),chunk size 为 \(k\) 步,则一个 chunk 覆盖的物理时间为 \(k/f\) 秒。这个量必须匹配任务的"意图时间尺度":
- Mobile ALOHA 以 \(f=50\,\text{Hz}\) 采集,ACT 实现中 chunk size 取 \(k=45\),对应 \(T_{chunk}\approx 0.9\,\text{s}\)——约等于一次"伸手—接触"的子动作时长。
- 如果 \(k\) 取太大(如 \(k/f>2\,\text{s}\)),一个 chunk 会跨越多个意图,CVAE 难以用单个 \(z\) 概括;若 \(k\) 太小,又退化回逐步预测的漂移问题。
用数字看复合误差为何被削弱。考虑一个 50Hz、时长 10s 的任务,总步数 \(T=500\)。设逐步策略每次"重新查询观测并预测"时引入一个独立的小误差,方差为 \(\varepsilon^2\)。在最粗略的随机游走近似下,误差累积的标准差随查询次数 \(n\) 的平方根增长,约为 \(\varepsilon\sqrt{n}\):
| 策略 | 查询次数 \(n\) | 误差累积量级 \(\propto\varepsilon\sqrt{n}\) |
|---|---|---|
| 逐步预测(\(k=1\)) | \(500\) | \(\varepsilon\sqrt{500}\approx 22.4\,\varepsilon\) |
| 分块 \(k=45\) | \(\lceil 500/45\rceil=12\) | \(\varepsilon\sqrt{12}\approx 3.5\,\varepsilon\) |
| 分块 \(k=100\) | \(5\) | \(\varepsilon\sqrt{5}\approx 2.2\,\varepsilon\) |
把查询次数从 500 降到 12,误差累积量级降到约 1/6。这就是"chunk 把复合误差累积次数从 \(T\) 降到 \(T/k\)"的定量含义。但表里也藏着 \(k\) 不能无限增大的理由:\(k=100\) 相比 \(k=45\) 只把误差再压一点(3.5→2.2),收益递减;而 \(k\) 越大、单个 chunk 跨越的意图越多、CVAE 用一个 \(z\) 概括的难度越大——在"复合误差"与"意图可概括性"之间存在最优 \(k\),这正是它必须随任务和频率调的根本原因。
注:上面用的随机游走近似只为建立量级直觉。真实 rollout 误差还含分布漂移(误差把观测推出训练分布、放大后续误差)这一非线性项,实际增长可能快于 \(\sqrt{n}\)——这只会让"减少查询次数"的收益更大,不改变结论方向。
反事实推理:如果把采集频率从 50Hz 降到 10Hz 却不改 chunk size \(k=45\) 会怎样?\(T_{chunk}\) 从 0.9s 暴涨到 4.5s,单个 chunk 试图覆盖整段操作,CVAE 的隐变量被迫承载过多意图、动作预测在长跨度上方差激增。这说明 chunk size 不是纯模型超参,而是与采集频率绑定的数据接口参数——换采集频率必须同步重估 chunk size,这正是 85 章反复强调的"采集设置进 metadata"的原因之一。
工程接口¶
- 采集脚本固定
sample_rate字段,训练侧据此选 chunk size,二者写进同一份 config 并版本化。 - 动作维度顺序在编码器、解码器和数据 schema 之间必须完全一致——ACT 对动作向量的字段次序没有内建语义,错位会被静默学成偏差。
- 部署时确认是否启用 temporal ensembling 及其 \(m\) 值;它属于推理设置,不影响离线 loss,却显著影响实机平滑度。
⚠️ 常见陷阱¶
- 论文误导:很多二手资料说"ACT 默认预测 100 步"。ACT 原论文的默认 chunk size 确实是 \(k=100\)(在 ALOHA 桌面任务上),但 Mobile ALOHA 在移动任务上用的是 \(k=45\)。chunk size 是随任务/频率调的,不存在唯一正确值——以你复用的那份代码与 config 为准,不要照搬论文数字。
- 概念误区:以为推理时要从 \(q(z\mid\cdot)\) 采样。默认实现推理时丢弃编码器、令 \(z=0\),是确定性的;采样 \(z\) 是可选的多样性手段,不是必需步骤。
- 工程陷阱:temporal ensembling 的指数权重方向写反(把最大权重给了最旧的预测),表现为策略反应迟钝、像"慢半拍",但 loss 完全正常。
- 数据陷阱:chunk 内动作用了 delta(增量)表示,却在不同采集频率的数据间混用,增量的物理含义随频率改变(见卡片 019),分块预测随之失真。
练习¶
- 推导:若单步行为克隆的期望单步误差为 \(\epsilon\),在马尔可夫近似下 chunk size \(k\) 把 \(T\) 步任务的复合误差累积次数从 \(T\) 降到 \(T/k\),写出两种情形下末端漂移上界的数量级对比,并说明 \(k\) 不能无限增大的原因。
- 设计一个实验:固定数据,分别用 \(k\in\{15,45,90\}\) 训练 ACT,记录实机成功率与动作抖动指标,解释为什么存在最优 \(k\)。
- 给定一段"操作者中途停顿 0.5s 再继续"的示教,说明逐步策略、无 temporal ensembling 的分块策略、带 temporal ensembling 的分块策略三者在这一段上的行为差异。
85.6F Diffusion Policy 与动作视界:另一条动作生成路线 ⭐⭐⭐¶
动机:CVAE 之外,还有什么办法处理多模态动作?¶
85.6E 用 CVAE 的隐变量解决多模态。Diffusion Policy(Chi et al., RSS 2023,Visuomotor Policy Learning via Action Diffusion)给出另一条路线:不引入显式隐变量,而是用**去噪扩散**直接建模动作序列的条件分布。 这条路线之所以与本章高度相关,是因为 85.8 之后的 UMI 全程用 Diffusion Policy 作为策略,理解它才能理解 UMI 数据为什么要那样组织。
反面:回归与高斯策略为什么"撞模式"¶
回顾 85.6E 的"从左绕/从右绕"例子。用 L2 回归会平均成撞上去;用单峰高斯策略 \(\pi(a\mid o)=\mathcal N(\mu(o),\Sigma(o))\) 同样只能表达一个峰,遇到双峰动作分布时被迫二选一或取中间。 扩散模型天生擅长多模态——图像生成里它能从同一个文本条件生成风格迥异的图。把这套搬到动作上:用一个去噪网络 \(\epsilon_\theta\) 学会从高斯噪声逐步"雕刻"出一段合理动作序列,多个模式自然由不同噪声初值落到不同的吸引盆。
核心机制:把动作序列当作被去噪的对象¶
Diffusion Policy 用 DDPM(Denoising Diffusion Probabilistic Model)近似条件分布 \(p(A_t\mid O_t)\),其中 \(A_t\) 是一段未来动作序列、\(O_t\) 是最近若干步观测。推理时从纯高斯噪声 \(A_t^{K}\) 出发,迭代 \(K\) 步去噪:
每一步用网络预测当前噪声估计 \(\epsilon_\theta\) 并扣除一部分,\(k\) 从 \(K\) 递减到 \(0\),最终 \(A_t^{0}\) 就是输出的动作序列。注意这里去噪是在**动作空间**进行的(不是像素空间),观测 \(O_t\) 作为条件注入每一步。
本质洞察:ACT 与 Diffusion Policy 的分歧点在于"多模态从哪来"。ACT 把多模态塞进一个一次性采样的隐变量 \(z\),一步解码出动作;Diffusion Policy 把多模态分摊到 \(K\) 步去噪轨迹上,用迭代换取分布表达力。前者推理快(单次前向)、后者表达力强(可拟合任意复杂的多峰分布)但推理慢(\(K\) 次前向)。这不是谁取代谁,而是"表达力 vs 推理延迟"的工程权衡——这恰好呼应卡片 029:策略类型要匹配数据与部署约束。
数学接口:To / Tp / Ta 三个动作视界¶
Diffusion Policy 用**滚动视界(receding horizon)**执行,定义三个长度参数,它们直接约束本章采集的数据要覆盖多长的时间窗:
| 参数 | 名称 | 含义 | 对采集的要求 |
|---|---|---|---|
| \(T_o\) | 观测视界(observation horizon) | 策略输入最近 \(T_o\) 步观测 | episode 起始要有足够前导帧,否则首个窗口不完整 |
| \(T_p\) | 动作预测视界(prediction horizon) | 一次预测 \(T_p\) 步动作 | 训练样本必须能切出长度 \(T_p\) 的连续动作段 |
| \(T_a\) | 动作执行视界(execution horizon) | 只执行前 \(T_a\) 步就重新规划 | 部署频率与执行步数耦合,需与采集频率对齐 |
标准默认是 \(T_p/T_a\approx 2\)(例如预测 16 步、执行 8 步)。\(T_p\) 越长动作越平滑、时间一致性越好,\(T_a\) 越短对突发变化越敏捷——这是平滑性与反应性的权衡,与 ACT 的 chunk size + temporal ensembling 解决的是同一类问题,只是机制不同。
用数字看 \(T_a\) 如何决定反应延迟。最坏情况下,策略在执行完当前 \(T_a\) 步之前不会对新观测做出反应,因此"对突发事件的反应延迟上界"约为 \(T_a/f\)(再加上一次推理时间)。以 \(f=10\,\text{Hz}\) 的部署频率为例:
| 配置 | \(T_a\) | 反应延迟上界 \(T_a/f\) | 适用任务 |
|---|---|---|---|
| 平滑优先 | \(8\) | \(0.8\,\text{s}\) | 擦拭、搬运等无突发接触 |
| 折中 | \(4\) | \(0.4\,\text{s}\) | 一般抓放 |
| 反应优先 | \(2\) | \(0.2\,\text{s}\) | 插入、对突变接触敏感的任务 |
可见把 \(T_a\) 从 8 减到 2,反应延迟从 0.8s 压到 0.2s,但代价是重规划频率翻 4 倍、相邻规划段的接缝更多(更易抖动)。所以"接触敏感任务调小 \(T_a\)"是有量化依据的:你是在用更频繁的重规划换更短的反应延迟。这也说明 \(T_a\) 必须与采集/部署频率 \(f\) 一起看——同样的 \(T_a=8\),在 50Hz 下只有 0.16s 延迟、在 10Hz 下却是 0.8s。
跨领域类比:\(T_o/T_p/T_a\) 的滚动视界与 MPC(模型预测控制)的"预测时域 + 控制时域 + 滚动重规划"几乎一一对应。像的地方:都"想得长、做得短、做几步就重想"。不像的地方:MPC 每步在线优化一个显式代价函数,Diffusion Policy 把"优化"离线烘进了去噪网络的权重里,在线只做前向去噪、不解优化问题。理解这个对应能让学过 MPC 的读者迅速建立直觉。
工程接口¶
- 数据切片器要能产出 \((O_{t-T_o+1:t},\,A_{t:t+T_p-1})\) 这样的样本;episode 太短(长度 \(< T_o+T_p\))的要在策展阶段标记排除(呼应 85.6B Stage 1 的"长度异常")。
- 动作表示与 ACT 一样可选绝对或相对/增量,但 Diffusion Policy 在 UMI 中专门选了相对表示(见 85.8B),因为它对标定漂移更鲁棒。
- 推理延迟 \(\approx K\times\) 单次前向;若实时性紧张可用 DDIM 等加速采样把 \(K\) 降到个位数,属于部署设置,不改训练数据。
⚠️ 常见陷阱¶
- 概念误区:以为扩散是在"图像/像素"上做。Diffusion Policy 的去噪发生在**动作序列**上,图像只作为条件 \(O_t\) 输入;混淆这一点会误判数据需要存什么。
- 工程陷阱:\(T_o\)、\(T_p\)、\(T_a\) 在训练与部署用了不同值却没记录,导致离线指标好、实机节奏错乱——这三个量必须随模型版本一起冻结(呼应卡片 019/024)。
- 思维陷阱:因为 Diffusion Policy 表达力强就给极少量数据上高容量扩散模型,结果过拟合到采集噪声(呼应 85.6C 的反事实推理)。
练习¶
- 对比题:用一张表列出 ACT 与 Diffusion Policy 在"多模态建模方式、推理前向次数、平滑机制、对采集频率的依赖"四个维度上的差异。
- 推导:解释为什么 \(T_p/T_a\) 取 2 是平滑性与反应性的折中;若任务接触瞬间需要高反应性,应调大还是调小 \(T_a\)?
- 设计题:给定 50Hz、平均时长 8s 的搬运 episode,为 Diffusion Policy 选一组合理的 \((T_o,T_p,T_a)\) 并说明每个数字的依据与对应的采集约束。
85.6G 动作生成策略设计空间:ACT / Diffusion Policy / VLA 怎么选 ⭐⭐⭐¶
动机:三种策略对"同一批数据"提出的要求不一样¶
85.6E 讲 ACT、85.6F 讲 Diffusion Policy、85.12C 会讲 VLA。它们都是"从观测生成动作"的策略,但**对本章采集的数据提出的要求各不相同**。卡片 029 说"策略类型应匹配数据规模和质量"——本节把这句话展开成一张可操作的设计空间地图,让你在采集前就知道"我打算用哪种策略,因此数据要满足什么"。 这也是论文解读教学要求的"设计空间全景分析":不是罗列各方法优缺点,而是定义维度、横向比较、给出决策流程。
设计空间:六个维度横向对比¶
| 维度 | ACT(CVAE+Transformer) | Diffusion Policy(DDPM) | VLA(预训练骨干+动作头) |
|---|---|---|---|
| 多模态建模 | 隐变量 \(z\) 一次采样 | \(K\) 步去噪轨迹 | 取决于动作头(常用扩散或分块回归) |
| 推理前向次数 | 1 次(快) | \(K\) 次(慢,可用 DDIM 降到个位数) | 骨干 1 次 + 动作头若干次 |
| 平滑机制 | temporal ensembling | 滚动视界 \(T_p/T_a\) | 继承动作头机制 |
| 语言条件 | 无(单任务/少任务) | 无(原版) | 有(核心特性) |
| 单平台数据需求 | 低(50–100 条可起步) | 中(多模态需更多覆盖) | 低(骨干已含语义先验) |
| 对数据质量的敏感度 | 中 | 中 | 高(语言+跨本体对齐要求陡增) |
决策流程:采集前先回答这棵树¶
我要训练哪种策略?
├── 任务单一/少、要求实时性高、数据有限
│ └── ACT
│ 数据要点:固定 chunk size 与采集频率绑定(85.6E)
│ 关节状态与图像严格同步(temporal ensembling 前提)
├── 任务有强多模态(多种合理做法)、可容忍推理稍慢
│ └── Diffusion Policy
│ 数据要点:episode 长度 ≥ To+Tp,能切出连续动作段(85.6F)
│ 相对/增量动作表示,频率与 Ta 对齐
├── 需要语言指令泛化、或要混合多来源/多本体数据
│ └── VLA 微调
│ 数据要点:每条 episode 带规范语言标签(卡片 020)
│ 跨本体需 embodiment_id + valid_mask(85.7/85.12C)
│ UMI 数据先过 retargeting + 可达性过滤(85.12C)
└── 数据极少(< 50 条)且任务固定
└── 先别上高容量模型,补数据或先用 ACT 小规模闭环(85.6C 反事实)
本质洞察:这棵树的每个分支末端,挂的都不是"选哪个模型",而是"选了这个模型,采集要满足什么"。换句话说,策略选型应该发生在采集之前,而不是采完数据再挑模型——因为不同策略对同步精度、动作表示、语言标签、episode 长度的要求不同,这些都是采集时一次性决定、事后难以补救的接口(呼应 85.0 知识地图"采集质量门槛先于学习层")。一个常见的工程失误正是反过来:先稀里糊涂采一大批,再纠结用 ACT 还是 VLA,结果发现既没存语言标签(VLA 用不了)、同步又不够紧(ACT 抖),两头不靠。
⚠️ 常见陷阱¶
- 思维陷阱:用"哪个模型最强"来选型。没有最强,只有"最匹配你的数据规模、实时性预算和是否需要语言泛化"——这正是设计空间表存在的意义。
- 概念误区:以为换策略只是换训练脚本。换策略往往意味着换数据接口(动作表示、同步精度、是否要语言标签),可能要求重新采集或重新策展。
- 工程陷阱:在 Diffusion Policy 上沿用 ACT 的"执行完整段再换"的逐 chunk 执行,丢掉滚动视界,牺牲了 Diffusion Policy 对突发变化的反应性。
练习¶
- 给定三种数据条件:(a) 80 条固定位置抓取、(b) 400 条"多种抓法"的多模态演示、(c) 1500 条带语言指令的多任务数据,分别推荐策略并写出选型依据。
- 对比题:解释为什么"推理前向次数"这一维度同时影响部署实时性和能否用于高频接触任务,并说明 DDIM 如何改变 Diffusion Policy 在这一维度的位置。
- 设计题:你的实验室只能采集约 200 条数据但希望未来扩展到语言泛化。设计一个"现在用 ACT 起步、数据 schema 预留 VLA 接口"的采集方案,列出现在就必须存、以后才用得上的字段。
85.7 Mobile ALOHA 共训练配方 ⭐⭐⭐¶
动机:为什么少量移动数据可以借助静态数据提升?¶
移动双臂数据采集昂贵,静态双臂数据更容易积累。 co-training 的思想是把任务相关的移动数据与更大规模静态操作数据混合。 模型从静态数据学操作细节,从移动数据学全身时序。
反例与递进理解¶
- 反例:把静态双臂数据和移动双臂数据直接混合,模型把缺失的底盘动作解释成零速度。
- 机制:共训练要让模型共享操作技能,同时知道不同来源数据哪些字段有效。
- 工程接口:数据源、有效字段 mask、动作空间和任务标签必须一起进入训练批次。
- 失败模式:缺失字段处理不当会让模型学到“永远不移动底盘”的错误先验。
来龙去脉¶
Mobile ALOHA 论文(Fu, Zhao & Finn, Stanford, CoRL 2024, arXiv:2401.02117)把这个直觉做成了可复现的配方,并给出明确的量化结论。 系统在 ViperX 300 双臂加移动底盘上采集,动作空间是 16 维:底盘的线速度与角速度 \(a_{base}\in\mathbb R^2\),加上两条 6 自由度机械臂的关节目标与两个夹爪共 14 维。 论文的核心发现是:对每个任务只用 50 条移动演示,配合已有静态 ALOHA 数据共训练,可把某些任务的成功率提升最多 90 个百分点,从而完成如"煎虾并装盘""打开双开门橱柜收纳重物"这类长程移动操作。
下面给出论文实际使用的共训练目标(而不是泛泛的"混合")。设移动数据集 \(D_{mobile}^m\) 的样本带完整动作 \((a_{arms},a_{base})\),静态数据集 \(D_{static}\)(论文用了 825 条静态 episode)只有手臂动作、没有底盘动作,训练目标为:
关键细节有三个,都直接落在本章的采集与 schema 要求上:
- 底盘维度补零:静态数据没有底盘动作,论文把它的 \(a_{base}\) 直接补成 \([0,0]\),使两个数据集共享同一个 16 维动作空间。
- 等概率采样:训练时以**相等概率**从 \(D_{static}\) 与 \(D_{mobile}^m\) 取样,batch size 取 16。
- 混合比例鲁棒:把静态数据占比设为 30%、50%、70% 时,成功率分别约 95%、95%、90%——说明该配方对混合比例不敏感,工程上不必精细调比例。
⚠️ 论文-代码差异(CONFLICT):本节正文上方"Source mask 的精确含义"段落主张"用 mask 比补零更好——补零等于告诉模型底盘应该不动"。这是一个**有价值的工程改进观点**,但要诚实区分:Mobile ALOHA 原论文实际用的是补零 \([0,0]\) 并对其计算损失,并没有用 mask 把这些维度的梯度屏蔽。为什么补零在 Mobile ALOHA 里仍然 work?因为静态 ALOHA 数据在采集时底盘**本来就静止**——对这批数据而言"底盘速度 = 0"恰好是物理事实,补零不是错误标签。mask 的优势体现在另一种场景:当某来源数据缺失的字段并非真实为零(例如另一台机器人有底盘但没记录底盘动作)时,补零会注入假标签,此时必须用 mask。结论:补零 vs mask 的选择取决于"缺失维度是否恰好等于其真实值",不能一概而论。复现 Mobile ALOHA 请以补零为准;迁移到异构数据混合(见 85.C0)时再换 mask。
这启发后续基础模型把多机器人数据放进统一训练(见 85.12C 与复合/260)。
核心机制¶
- 数据混合不是简单拼接。
- 需要统一动作维度、观测字段和任务标签。
- 不同数据源的采样权重会影响模型偏好。
共训练的理论基础。共训练的有效性建立在一个假设之上:移动操作和静态操作共享底层的操作技能表征(如何抓、如何放、如何旋转),差异只在于底盘运动。如果这个假设成立,静态数据帮助模型学习更好的手部操作技能,移动数据帮助模型学习何时移动底盘、如何协调全身。
跨领域类比:共训练类似于迁移学习中的多任务预训练。在 NLP 中,一个模型同时在翻译、摘要和问答任务上训练,各任务共享语言理解能力。在这里,静态操作和移动操作共享手部操作技能,但各自保留特有的底盘/姿态控制知识。关键是共享的比例是否足够大——如果两类任务的操作模式完全不同,混合训练反而会产生负迁移。
Source mask 的精确含义。source mask 不是简单的数据标签,而是告诉模型"这个样本的哪些动作维度是有效的"。具体来说:
- 移动数据的 source mask:所有维度有效(底盘 + 双臂 + 夹爪)
- 静态数据的 source mask:底盘维度无效(mask = 0),双臂和夹爪维度有效(mask = 1)
训练时,无效维度的损失被乘以 0,模型不会从这些维度获得梯度。这比填零更好——填零意味着"底盘应该不动",mask 意味着"我不知道底盘应该怎样,请不要从这个样本学底盘"。
数学接口¶
$\(\mathcal L=\lambda \mathcal L_{mobile}+(1-\lambda)\mathcal L_{static}\)$ \(\lambda\) 控制移动任务和静态操作数据的梯度贡献(在原论文中由等概率采样隐式实现,对应 \(\lambda\) 随两数据集相对大小自然确定)。
共训练到底带来多少提升。下表摘自 Mobile ALOHA 论文(50 条演示/任务,煎虾与击掌为 20 条),对比同一策略在"共训练"与"不共训练(仅移动数据)"下的整任务成功率,是理解 co-training 价值的最直接证据:
| 任务 | 共训练 | 不共训练 | 提升 |
|---|---|---|---|
| 擦酒渍(Wipe Wine) | 95% | 95% | 0 |
| 用橱柜(Use Cabinet) | 85% | 85% | 0 |
| 呼叫电梯(Call Elevator) | 95% | 0% | +95 |
| 推椅子(Push Chairs) | 80% | 90% | −10 |
| 涮锅(Rinse Pan) | 80% | 95% | −15 |
| 煎虾(Cook Shrimp,20 条) | 40% | 20% | +20 |
| 击掌(High Five,20 条) | 85% | 85% | 0 |
本质洞察:这张表最该读出的不是"共训练总是更好",而是它**在哪类任务上救命、在哪类任务上无关甚至略降**。呼叫电梯从 0% 跳到 95%——这类任务需要精确对准按钮(强依赖静态数据里的精细操作技能);而推椅子、涮锅这类以底盘大幅运动为主、对手部精度要求低的任务,掺入大量静态数据反而略微稀释了移动信号。这正印证 85.7 反例与 85.6C 的判断:共训练的收益取决于"目标任务的瓶颈是否落在静态数据擅长的技能上",不是无条件的免费午餐。换句话说,co-training 不是"加数据总没错",而是一次有方向的技能借用——借的技能必须正好是目标任务缺的那一项。
工程接口¶
- 先对齐静态和移动数据的相机视角与动作字段。
- 为缺失底盘动作的数据填零并添加 source mask。
- 评估时单独看移动阶段和操作阶段。
⚠️ 常见陷阱¶
- 概念误区:更多静态数据一定提升移动任务。若静态数据任务不相关,模型会偏向坐定操作。
- 工程陷阱:底盘动作维度在静态数据中缺失,却被错误填成随机值。
- 数据陷阱:不同来源图像裁剪方式不同,模型学到数据源而不是任务。
练习¶
- 设计一个 50 条移动数据 + 500 条静态数据的采样权重方案。
- 解释 source mask 为什么能帮助模型区分缺失动作。
- 比较 fine-tuning 与 co-training 的稳定性。
85.8 UMI:不依赖目标机器人的手持采集 ⭐⭐⭐¶
动机:UMI 为什么能改变数据采集成本结构?¶
UMI 的核心思想是让人手持带相机的夹爪完成任务,再恢复夹爪在空间中的轨迹。 这样可以在真实厨房、办公室和日常物体上采集操作数据,而不需要目标机器人到场。 部署时再把恢复出的末端轨迹映射到机器人平台。
反例与递进理解¶
- 反例:手持夹爪采集轨迹后直接当作机器人末端轨迹,机器人臂长和避障能力却不满足同一路径。
- 机制:UMI 的关键是先从视频和 SLAM 恢复工具轨迹,再转成目标机器人可解释的任务帧动作。
- 工程接口:需要记录相机轨迹、夹爪相对相机位姿、任务 frame 和目标机器人可达性检查。
- 失败模式:手持数据缺少机器人动力学约束,迁移时最容易出现 IK 跳变和工作空间越界。
来龙去脉¶
Diffusion Policy 证明动作序列生成有效。 UMI 可作为把示教数据采集从目标机器人遥操作扩展到便携式手持工具的代表性路线。 UMI-on-Legs 等公开工作可作为任务帧 EE 轨迹迁移到腿足底座的代表性案例,具体结论仍应以论文和官方发布为准。
核心机制¶
- 手持夹爪提供人类自然操作。
- GoPro 或类似相机提供视觉和 SLAM 轨迹。
- 手眼标定把相机轨迹转换为夹爪轨迹。
- 机器人部署时使用 IK、控制器和任务帧转换执行。
UMI 数据链路的完整理解。从手持操作到策略训练要经过五个环节,每个环节都有精度损失:
人手操作 → 相机录像 → SLAM 恢复相机轨迹 → 手眼标定转夹爪轨迹 → 任务帧动作 → 策略训练
(自然) (视觉) (几何估计) (标定) (坐标变换) (学习)
↓ ↓ ↓ ↓
帧率/分辨率 SLAM 精度 标定残差 frame 选择
每个环节的误差都会传递到下游。如果 SLAM 轨迹在某段纹理不足的区域漂移了 3cm,手眼标定残差 1cm,任务帧对齐误差 0.5cm——叠加后的末端位置误差可达 4.5cm。对"拿杯子"来说这可能还行,对"插入 USB"就完全不行。
跨领域类比:UMI 的数据链路类似于 SLAM 后端中的因子图——每个环节是一个因子,精度取决于最弱的那个因子。回顾 SLAM 章节:当某个观测噪声特别大时,它会把整条轨迹拉偏。UMI 中 SLAM 精度就是那个最关键的因子——如果 SLAM 跳变,后续所有标定和坐标变换都基于错误位姿。
数学接口¶
$\(T_{world}^{ee}=T_{world}^{cam}T_{cam}^{ee}\)$ 关键是恢复 \(T_{world}^{cam}\) 并精确标定 \(T_{cam}^{ee}\)。
工程接口¶
- 采集时保证视觉纹理足够,避免纯白墙面和强反光。
- 运行 SLAM 后检查轨迹是否闭环一致。
- 把轨迹转换到任务坐标系,减少对全局地图的依赖。
⚠️ 常见陷阱¶
- 概念误区:UMI 数据天然等价于机器人数据。手持工具没有机器人动力学、关节限位和底盘遮挡。
- 工程陷阱:SLAM 丢失后轨迹跳变,训练中变成不连续动作。
- 标定陷阱:相机到夹爪的外参错,所有 EE 标签系统性偏移。
练习¶
- 画出 GoPro 视频到 EE 轨迹的数据流图。
- 解释任务坐标系动作为什么更利于跨平台迁移。
- 设计一个 SLAM 轨迹质量筛选指标。
85.9 UMI 轨迹恢复与动作表示 ⭐⭐⭐¶
动机:从相机轨迹到机器人动作还差哪几步?¶
SLAM 给出相机在世界中的轨迹,但策略需要的是机器人可执行动作。 需要把相机轨迹转换成夹爪轨迹,再转换成相对动作或任务帧动作。 这个转换决定 UMI 数据能否迁移到不同机械臂。
反例与递进理解¶
- 反例:把世界系轨迹直接迁移到另一个厨房,桌面位置变化后,动作仍指向原世界坐标。
- 机制:UMI 轨迹应尽量表达为相对物体、任务 frame 或末端增量,而不是绝对全局路径。
- 工程接口:动作表示中要写清 world、base、object、task frame 的变换顺序。
- 失败模式:frame 选择错误会让策略看似“方向正确”,但相对目标持续偏移。
来龙去脉¶
传统手眼标定解决传感器到末端的几何关系。 UMI 将这个几何关系用于大规模动作标签生成。
核心机制¶
- 绝对世界坐标动作对地图依赖强。
- 相对 EE 动作更适合局部闭环。
- 任务坐标系动作把操作目标作为参考,便于跨环境复用。
数学接口¶
工程接口¶
- 对 SLAM 轨迹做平滑,但不要过度抹掉接触动作。
- 对夹爪开合和 EE 位姿使用同一时间基准。
- 部署前检查机器人 IK 对整段轨迹是否连续可解。
⚠️ 常见陷阱¶
- 工程陷阱:轨迹平滑把开瓶、插入等关键接触瞬间抹掉。
- 概念误区:相对动作不需要坐标系;相对谁、在哪个 frame 下表示仍然必须明确。
- 部署陷阱:机器人臂长不够,直接执行 UMI 轨迹导致 IK 跳变。
练习¶
- 推导绝对 EE 轨迹到相对 EE 动作的转换。
- 为一个擦桌任务选择 world、base、task 三种坐标系中的一种,并说明理由。
- 设计 IK 连续性检查指标。
85.9B UMI 硬件与延迟匹配:把"便携"变成"可执行"的工程细节 ⭐⭐⭐¶
动机:UMI 的几个不起眼设计,每一个都在解决一个数据质量问题¶
85.8 讲了 UMI 的思想(手持夹爪 + 视觉 SLAM 恢复 EE 轨迹),85.9 讲了动作表示。但 UMI 论文(Chi et al., Stanford, RSS 2024, arXiv:2402.10329)真正难的部分在硬件与推理时的工程细节——这些细节决定手持数据能否在真机上**可执行**。 本节逐项拆解这些设计,每个设计都对应本章前面讲过的一个质量门槛(同步、标定、动作表示),是把抽象原则落到具体硬件的范例。
硬件四件套:为什么是 GoPro + 鱼眼 + 侧镜 + 软指¶
UMI 的采集端是一个 3D 打印的手持平行夹爪,BoM 成本约 73 美元,配一个 GoPro 及附件约 298 美元——整套数百美元,对比 Mobile ALOHA 的约 3.2 万美元,这就是"降低采集门槛"的字面含义。但便宜不是重点,每个部件都在补偿手持采集缺失的某种信息:
| 部件 | 规格(论文) | 它解决什么问题 | 对应本章门槛 |
|---|---|---|---|
| GoPro 广角 | 155° 鱼眼视场 | 手持时视角晃动大,宽视场保证物体不出画、SLAM 有足够特征 | 85.6 标定 / 85.8 SLAM 质量 |
| 物理侧镜 | 夹爪两侧加镜面 | 给单目相机提供**隐式立体**信息,改善深度与抓取对准 | 85.2 相机布局 |
| 内置 IMU | GoPro 自带陀螺/加速度计 | 视觉因运动模糊丢失时,惯性约束维持位姿跟踪 | 85.8 SLAM 跳变 |
| 软指 + 连续测宽 | 80mm 行程,软指;用 fiducial 连续跟踪开度 | 软指形变隐式编码抓取力;连续开度替代二值开合 | 85.6 夹爪零点 / 卡片 011 |
本质洞察:UMI 的硬件哲学是"用被动结构换主动传感"。机器人遥操作靠关节编码器和力矩传感器主动测量,手持夹爪没有这些,于是 UMI 用**鱼眼**换视野、用**侧镜**换深度、用**软指形变**换力觉、用 IMU 换跟踪鲁棒性。每一个都是"没有传感器时,让物理结构把信息编码进视频里"。这解释了为什么 UMI 数据的质量高度依赖采集硬件的一致性——换一个没有侧镜的相机,整批数据的隐式立体线索就没了。
软指与隐式力觉。卡片 011 强调夹爪零点与接触因果。UMI 在这里用了一个巧妙设计:夹爪用**串联弹性(series-elastic)原理的软指**,抓取时软指发生形变,通过连续控制夹爪开度来调节形变,于是**抓取力被隐式记录在开度信号里**——不需要额外的力传感器。代价是:开度不再是简单的几何开合宽度,而是耦合了接触力的量,标定和动作标签必须把这一点考虑进去(空载开度 ≠ 接触时同一命令下的开度,正是 85.6 数据陷阱"夹爪开合标定只在空载时做"所警告的)。
核心机制:IMU 单目 SLAM 的精度,决定动作标签的精度¶
85.8 说"SLAM 精度是最关键的因子"。UMI 给出了具体数字,让这句话可量化。UMI 用基于 ORB-SLAM3 的**惯性-单目 SLAM**,联合优化视觉跟踪与惯性位姿约束,即使视觉因运动模糊失败也能靠 IMU 维持跟踪。报告精度:
- 绝对轨迹误差(ATE):位置 6.1mm、旋转 3.5°;
- 同一任务两个夹爪之间的相对位姿误差:位置 10.1mm、旋转 0.8°。
把这些数字接回 85.8 的误差链:SLAM 位置误差约 6mm 已是链路里最大的一项,再叠加手眼标定残差和任务帧对齐,毫米级总误差对"擦桌/搬运"够用,对"插 USB/旋拧"逼近极限——这正是 85.6D 反事实推理"SLAM 从毫米级退化到厘米级"所讨论的边界。
数学接口:相对 SE(3) 动作为什么是 UMI 的命门¶
UMI 的动作不是绝对世界坐标,而是**相对初始末端位姿的 SE(3) 变换序列**:时刻 \(t\) 的动作表示为相对 \(t_0\) 时刻 EE 位姿的变换。论文给出一个极有说服力的对照实验:
为什么差距这么大?因为绝对动作要求部署时的世界坐标系与采集时严格对齐,任何标定漂移或相机位移都会整体平移目标;相对表示则把"目标相对当前末端在哪"作为动作,对全局标定漂移天然免疫。论文还指出一个细节:把**观测视界设为 2**(即输入当前帧与前一帧),相对轨迹表示就**隐式提供了速度信息**——这与 85.6F 中 Diffusion Policy 的 \(T_o\) 是同一个机制(用历史帧给出速度),也是为什么 UMI 用 Diffusion Policy 而非单帧策略。
跨领域类比:UMI 的相对 SE(3) 动作和 85.9 的"任务帧/物体帧动作"是同一思想的两种实现——都用"相对"换"跨场景鲁棒"。像的地方:都不依赖绝对世界坐标,换桌面位置不失效。不像的地方:任务帧动作相对的是"任务/物体坐标系"(需要先定义这个 frame),UMI 相对的是"末端自身的初始位姿"(不需要外部 frame,但只表达增量、不直接表达"对准某物体")。两者常组合使用:先用相对 EE 表示保证可迁移,再叠加物体帧锚定保证对准。
工程接口:推理时的延迟匹配(latency matching)¶
这是 UMI 最容易被忽略、却最体现"采集即接口"思想的一步。采集端(GoPro 离线)和部署端(不同机器人)的各路信号延迟完全不同:相机、末端位姿、夹爪开度三条流各有不同的延迟。UMI 在**推理时**显式对齐它们,分两层:
- 观测延迟匹配:把 RGB 相机下采样到目标频率(常用 10–20Hz),以每张图的采集时间戳为基准,**线性插值**夹爪与机器人本体的开度/位姿流,使三路观测对齐到延迟最大的那一路(通常是相机)。
- 动作延迟匹配:命令提前下发以补偿执行延迟;累计观测采集、推理、夹爪/机器人执行的总延迟后,丢弃过期动作、只执行带目标时间戳的动作。
本质洞察:延迟匹配把 85.5"时间同步"从采集阶段延伸到了部署阶段。85.5 说"动作和观测必须描述同一物理时刻",UMI 进一步指出:这个要求在采集端和部署端都要满足,而且两端的延迟结构不同。同一套策略要部署到 UR5、Franka、Kinova 等不同臂上,只需为每台机器人重新测一次三路延迟、重设插值与提前量即可——这就是"hardware-agnostic 策略"在工程上的真实含义:策略权重不变,变的是每台机器人的延迟匹配参数。这也解释了为什么 UMI 数据 schema 必须存每路流的原始时间戳(卡片 006)——没有原始时间戳,部署端无法重新对齐。
⚠️ 常见陷阱¶
- 论文误导:UMI 论文正文未明确给出 Diffusion Policy 的 \((T_o,T_p,T_a)\) 具体数值(只说观测视界为 2 用于提供速度信息),复现时这些属于需从代码/config 提取的 PARTIAL 项,不要凭论文正文猜。
- 标定陷阱:换一个无侧镜或不同视场的相机继续用旧策略,隐式立体线索和视场分布都变了,模型在接触对准阶段失效,但离线指标看不出来。
- 工程陷阱:部署时只对齐了观测延迟、忘了动作延迟(命令未提前下发),表现为机器人"慢半拍"地执行,与 85.6E 把 temporal ensembling 权重写反的现象相似但根因不同(一个是同步、一个是集成方向)。
- 数据陷阱:软指夹爪的开度标签当成纯几何宽度用,忽略了它耦合的接触力,导致接触瞬间的开度-力关系在跨夹爪迁移时错位。
练习¶
- 把 85.8 的 UMI 五环节误差链补上本节的具体数字(SLAM ATE 6.1mm 等),重新估算"插 USB"任务的总末端误差,并判断是否可行。
- 设计一个延迟匹配的标定流程:如何为一台新机器人测量相机、本体、夹爪三路的延迟?需要哪些可观测事件(提示:回顾 85.5 的 LED 法)?
- 论证题:解释为什么"观测视界 = 2 + 相对轨迹"等价于给策略喂了速度信息;如果改成观测视界 = 1,会丢失什么、应如何补偿?
85.10 数据清洗:失败不是垃圾,而是信息 ⭐⭐¶
动机:哪些数据应该进入训练集?¶
示教数据中包含成功、犹豫、碰撞、重新抓取和终止动作。 不加区分地训练会让策略模仿失败过程。 但失败数据也能用于异常检测和恢复策略。
反例与递进理解¶
- 反例:失败 episode 被简单删除,模型失去恢复样本,也无法知道哪些状态需要触发停机。
- 机制:失败数据不是垃圾,而是用于诊断、恢复训练和安全边界估计的信息。
- 工程接口:failure_reason 至少区分人为中止、硬件异常、标定问题、策略失败和环境变化。
- 失败模式:不分类的失败样本混入成功集会污染策略,全部删除又会削弱鲁棒性。
来龙去脉¶
早期行为克隆常只保留成功轨迹。 现代长期任务更需要保留失败标签,用于诊断和恢复。
核心机制¶
- 成功数据训练主策略。
- 轻微纠错数据可训练恢复能力。
- 危险失败数据不应直接作为动作目标。
- 所有失败都应进入评测和排查库。
数据三分类的决策逻辑:
episode 完成?
├── 是 → 成功集(D_success)
│ 注意:检查是否有犹豫、重复动作或异常长时间
│ 如有 → 标注但保留,可训练纠错能力
└── 否 → 失败分类
├── 操作者主动中止(按急停或口头停止)
│ └── 原因?
│ ├── 觉得动作不对 → 恢复集(D_recover)的候选
│ └── 硬件异常 → 排除集
├── 碰撞或掉物
│ └── 碰撞前窗口 → 安全边界估计
│ 碰撞后动作 → 不作为训练目标
└── 超时
└── 检查是否卡在某阶段
→ 定位瓶颈用于下一轮补采
本质洞察:数据清洗的核心不是"删除坏数据",而是"给每条数据标注正确的用途"。一条失败 episode 的价值可能比成功 episode 更高——如果它揭示了策略从未见过的状态空间边界。关键是不要让它以"正确行为"的身份进入监督学习。
数学接口¶
$\(D=D_{success}\cup D_{recover}\cup D_{unsafe}\)$ 三类数据的训练用途不同。
工程接口¶
- 用自动规则标记碰撞、掉物、超时和夹爪未闭合。
- 人工抽检边界样本。
- 训练时为失败类别设置采样策略。
⚠️ 常见陷阱¶
- 数据陷阱:把操作者开始和结束时的无关动作也放进训练窗口。
- 工程陷阱:失败标签只写在文件名里,训练脚本无法读取。
- 概念误区:删除所有失败数据会让策略缺乏异常状态经验。
练习¶
- 设计一套成功、恢复、危险失败三分类标签。
- 写出一个自动检测掉物的规则。
- 讨论失败数据如何用于训练恢复策略而不是主动作策略。
85.11 失败模式:硬件、标定、同步、策略四类 ⭐⭐⭐¶
动机:如何系统地定位采集失败?¶
采集失败通常不是单一原因。 硬件松动、标定漂移、同步延迟和策略过拟合会相互伪装。 系统化分类能避免盲目重训模型。
反例与递进理解¶
- 反例:训练失败后只调模型层,实际根因却是夹爪延迟和相机外参共同造成的系统误差。
- 机制:数据采集故障要按硬件、标定、同步、策略和环境逐层排查。
- 工程接口:排查表应绑定可观测证据,例如 replay、误差曲线、重投影和动作频谱。
- 失败模式:没有分层诊断时,团队容易把所有问题归因到模型容量。
来龙去脉¶
经典机器人调试强调传感器、执行器和模型。 学习系统还要加入数据分布和训练过程两个维度。
核心机制¶
- 硬件失败:相机掉帧、关节过热、夹爪打滑。
- 标定失败:外参偏移、零点错误、坐标轴方向反。
- 同步失败:图像和动作错相。
- 策略失败:分布外状态、多模态平均、动作延迟。
数学接口¶
工程接口¶
- 先回放原始数据。
- 再检查标定和时间戳。
- 最后才进入训练超参排查。
⚠️ 常见陷阱¶
- 思维陷阱:看到策略失败就先加数据。若根因是同步,加数据只会放大错误。
- 工程陷阱:实机失败没有保存原始传感器,只保存压缩视频。
- 概念误区:环境变化完全由 VLA 泛化解决;物理变化仍需要控制和标定适配。
练习¶
- 把一次抓取失败按四类原因分解。
- 设计一个采集前 10 分钟健康检查清单。
- 说明为什么原始数据比训练后数据更适合诊断。
85.12 从数据到部署:闭环改进节奏 ⭐⭐¶
动机:采完数据以后为什么还需要 replay 和实机评估?¶
训练 loss 只是数据拟合程度。 部署需要知道策略在真实闭环中的偏差如何累积。 replay 能在不上电执行危险动作前发现大量数据问题。
反例与递进理解¶
- 反例:每次训练后只看一次实机成功视频,没有把新失败回流到采集计划,系统能力长期停在原地。
- 机制:数据闭环应按 collect、clean、train、eval、deploy、diagnose 的节奏滚动改进。
- 工程接口:每轮新增数据要说明覆盖的任务阶段、失败类型、硬件版本和评测指标。
- 失败模式:闭环缺失会让数据越积越多,但有效分布没有扩张。
来龙去脉¶
机器人学习工程逐步形成 record、visualize、train、eval、deploy、collect-failure 的循环。 LeRobot 和 ALOHA 生态都强调可视化和回放。
核心机制¶
- replay 检查图像、状态和动作是否对齐。
- sim eval 检查策略闭环稳定性。
- real eval 检查硬件和环境差异。
- failure collection 为下一轮数据提供目标。
数学接口¶
工程接口¶
- 每次训练固定数据版本。
- 每次部署记录模型版本和标定版本。
- 每次失败都回到数据层定位。
⚠️ 常见陷阱¶
- 工程陷阱:训练数据变了但模型名没变,导致评测不可复现。
- 概念误区:仿真评估通过就能实机通过;真实摩擦、遮挡和延迟仍不同。
- 数据陷阱:把新失败混入旧数据后没有重新计算归一化统计。
练习¶
- 设计一次 Mobile ALOHA 数据闭环实验计划。
- 说明 replay、sim eval、real eval 各自能发现什么问题。
- 给一次失败写出从实机日志回到数据修正的路径。
85.13 采集现场操作清单¶
这份清单面向实际采集日使用,顺序按风险从低到高排列。
- 确认急停按钮、软急停和驱动断电路径均可用。
- 确认相机固定牢靠,视野覆盖任务关键区域。
- 确认 leader 与 follower 零点一致。
- 确认夹爪开合范围和力限制已经标定。
- 确认底盘遥操作速度限制适合室内场景。
- 确认所有设备使用同一时间基准或可离线对齐。
- 确认数据目录包含硬件版本、标定版本和任务名称。
- 采集 3 条短 episode 后立即 replay。
- 每 20 条 episode 检查一次相机掉帧和关节跟踪误差。
- 采集结束后立即备份原始数据和标定文件。
85.12B 从采集到训练的数据准备检查清单 ⭐⭐¶
在把数据交给训练脚本之前,应按以下顺序完成所有检查。跳过任何一步都可能在训练后期或部署时暴露。
| 步骤 | 检查内容 | 通过标准 | 不通过怎么办 |
|---|---|---|---|
| 1 | 所有 episode 的 schema 字段完整 | 无缺失字段、无空值 | 补充字段或标记并排除 |
| 2 | 多路时间戳单调递增 | 相邻帧时间差 > 0 且 < 2/频率 | 重采样或排除跳变帧 |
| 3 | 图像-关节时间偏差在容许范围内 | 偏差 < 30ms(接触任务) | 重新对齐或排除 |
| 4 | 标定版本一致 | 同批数据使用同一 calibration_id | 按版本分组或重新标定 |
| 5 | 成功/失败标签已标注 | 每条 episode 有 success 和 failure_reason | 抽检并标注 |
| 6 | replay 抽检通过 | 动作和图像同相位、无明显错位 | 返回 Stage 2-3 排查 |
| 7 | 归一化统计已计算并冻结 | stats 文件带版本号 | 计算并保存 |
本质洞察:这份检查清单不是形式主义——它是把第 85 章所有质量原则压缩成可执行的七步操作。每一步都对应本章某个小节中讨论的失败模式。能通过全部七步的数据才算"可训练"。
85.12C 把本章数据接到 VLA:与复合/140 和复合/260 的衔接 ⭐⭐⭐¶
动机:采来的数据,怎么"喂"给 VLA 模型?¶
前置自测把复合/140(VLA 移动操作)列为前置依赖,本章末尾又指向复合/260(VLA 基础模型)。但中间有一道没有讲透的桥:本章采集的 Mobile ALOHA / UMI 数据,到底以什么接口进入 VLA 训练? 本节把这道桥补上,它也是回答前置自测第 5 题(UMI 为何能不依赖目标机器人采集)的工程落点。
回顾复合/140:VLA(Vision-Language-Action)模型在一个视觉-语言预训练骨干上加动作头,输入图像与语言指令、输出动作。它与 ACT/Diffusion Policy 的区别不在动作生成机制(动作头常常就是 85.6E/85.6F 讲的分块回归或扩散),而在**前端多了语言条件、且骨干来自大规模预训练**。这意味着本章数据进入 VLA 时,除了 observation/state/action,还要多管好一路:语言标签。
核心机制:四路接口对齐¶
把一批本章数据接入 VLA 微调,本质是对齐四个接口。下表把它们与本章已有小节一一挂钩,说明"采集时做对了什么,VLA 才用得上":
| 接口 | VLA 的要求 | 本章对应保障 | 没做好的后果 |
|---|---|---|---|
| 观测接口 | 图像分辨率/视角/数量与骨干预期一致 | 85.2 固定相机布局;卡片 005 视角是策略条件 | 视角分布偏移,骨干视觉特征失配 |
| 动作接口 | 动作空间维度、单位、坐标系明确 | 85.1 的 16 维向量;85.9 任务帧动作;卡片 019 频率 | 动作头学到错误尺度或错误 frame |
| 语言接口 | 任务有稳定、规范的语言描述 | 卡片 020 语言标签要稳定 | 同义描述变成标签噪声,混淆相似任务 |
| 安全接口 | 输出动作经限位/速度/急停过滤 | 复合/140 的安全过滤;85.13 现场清单 | 不可执行或危险动作直接下发 |
本质洞察:VLA 微调相比 ACT/Diffusion Policy,对**语言标签质量**和**跨本体动作语义对齐**的要求陡然提高,但对**单一平台的数据量**要求反而下降——因为视觉语言骨干已经学到了物体语义(呼应 85.6C"预训练数据越强,操作数据需求相对减少")。所以给 VLA 准备数据时,工程重心从"多采"转向"标好、对齐好":一条语言描述混乱的 episode,对 VLA 的伤害远大于对 ACT 的伤害。
UMI 数据进 VLA:为什么是"近乎免费"的跨本体来源¶
UMI 数据有一个对 VLA 特别友好的性质:它的动作是**相对 SE(3) 末端轨迹**(85.9B),不绑定任何具体机器人的关节空间。这正是跨本体基础模型最想要的接口——VLA 想在一个统一动作空间里混合多来源数据,而"末端位姿增量"恰好是各种机械臂都能解释的通用语言(换 IK 求解器即可部署到 UR5/Franka/Kinova)。
但 85.8 的警告依然成立:UMI 数据**缺机器人动力学约束**。接入 VLA 时必须补两件事:
- 可达性过滤(卡片 015):离线对每条 UMI 轨迹在目标机器人上跑 IK + 碰撞检查,剔除不可达段,否则 VLA 会学到目标机器人无法执行的动作。
- 少量机器人端数据兜底(卡片 030):纯 UMI 数据缺底盘遮挡和关节限位经验,混入少量目标机器人遥操作数据补足这些分布。
跨领域类比:UMI 数据相对机器人遥操作数据,类似 NLP 里"大规模弱标注网络文本"相对"高质量人工标注数据"。像的地方:UMI 量大、便宜、覆盖广,像网络文本;机器人遥操作数据少、贵、精确,像人工标注。不像的地方:网络文本和标注数据共享同一种符号(文字),而 UMI 的末端轨迹与机器人关节轨迹是不同空间,必须先经 retargeting 和可达性过滤才"同语"。所以 UMI + 机器人数据的混合,比 NLP 的"预训练 + 微调"多了一道几何对齐工序——这道工序的质量,就是 85.C0"采集工具越轻量,距离可执行性越远"那条洞察的具体代价。
工程接口¶
- 在 DatasetSchema(见 85 累积项目)中为每条 episode 增加
language_instruction字段,并用卡片 020 的规范任务名做主键、自然语言描述做可选副本。 - 给跨本体混合批次同时带上
embodiment_id与 85.7 讨论的valid_mask:VLA 需要知道这条数据来自哪种本体、哪些动作维度有效。 - 把可达性过滤的结果(可达率、剔除原因)写回 metadata,作为 UMI 数据进 VLA 前的准入证据(呼应 85.12B 第 6 步 replay 抽检的精神)。
⚠️ 常见陷阱¶
- 概念误区:以为"用了 VLA 就能自动消化任何数据"。VLA 消化的是**对齐好的**数据;语言、动作、本体三者任一未对齐,骨干的预训练优势都救不回来。
- 工程陷阱:把 UMI 的相对 EE 动作直接当作目标机器人的关节动作喂给动作头,跳过 retargeting 与可达性过滤,部署时 IK 跳变(85.9 部署陷阱的 VLA 版本)。
- 思维陷阱:因为 VLA 对单平台数据量要求低,就忽视数据质量。质量门槛(同步、标定、语言一致性)在 VLA 上不降反升。
练习¶
- 为一个"把红色杯子放到水槽里"的任务,分别写出喂给 ACT 和喂给 VLA 所需的数据字段清单,标出 VLA 多出来的字段及其质量要求。
- 设计一条把 UMI 数据接入 VLA 微调的预处理流水线,至少包含 retargeting、可达性过滤、语言标注、本体标记四步,并说明每步失败时的可观测信号。
- 跨章综合题(衔接复合/140 + 本章 + 复合/260):给定一批 Mobile ALOHA 数据和一批 UMI 数据,设计一个共训练 VLA 的批次构造方案,明确 observation/action/language/embodiment/valid_mask 五类字段如何对齐,并说明评测时如何分别考察移动阶段、接触阶段和语言泛化。
85 章节总结¶
| 知识点 | 本章结论 | 能做什么 |
|---|---|---|
| Mobile ALOHA | 低成本全身遥操作把移动双臂任务变成可监督学习数据 | 能搭建硬件与数据流图 |
| UMI | 手持夹爪通过视觉 SLAM 恢复 EE 轨迹,降低采集门槛 | 能说明相机轨迹到机器人动作的变换 |
| 标定与同步 | 它们不是辅助环节,而是动作标签正确性的基础 | 能设计采集前检查 |
| 数据清洗 | 失败数据要分类使用,不能盲目删除或混入 | 能建立 failure taxonomy |
| 部署闭环 | record-train-eval-deploy-diagnose 是持续过程 | 能制定一次采集实验计划 |
85 累积项目:本章新增模块¶
- 新增
DatasetSchema:统一 Mobile ALOHA 与 UMI 的 episode 字段。 - 新增
SyncInspector:统计相机、关节、动作三类时间戳偏差。 - 新增
CalibrationRegistry:把内参、外参、手眼标定和夹爪标定版本化。 - 新增
FailureTaxonomy:把失败分为硬件、标定、同步、策略和环境五类。
85 复现指南要点¶
本章不要求从零复现,但给出可核对的锚点,便于读者把上文结论与官方实现对齐。具体命令与超参以各仓库最新发布为准。
| 项目 | 官方资源 | 关键可核对锚点 | 复现陷阱 |
|---|---|---|---|
| Mobile ALOHA | 论文 arXiv:2401.02117(CoRL 2024);项目页 mobile-aloha.github.io | 动作 16 维;静态数据底盘补零 \([0,0]\);等概率采样、batch 16;混合比例 30/50/70% 对应约 95/95/90%;ACT chunk 45 / DP chunk 64 / VINN chunk 100;采集 50Hz | 直接套用 ALOHA 桌面默认 chunk=100;忽略 co-train 采样比例;底盘里程计与双臂不同步 |
| UMI | 论文 arXiv:2402.10329(RSS 2024);项目页 umi-gripper.github.io;代码 github.com/real-stanford/universal_manipulation_interface | 夹爪 BoM $73、GoPro 附件 $298;155° 鱼眼 + 侧镜;IMU-单目 ORB-SLAM3,ATE 6.1mm/3.5°;相对 SE(3) 动作(绝对 25% vs 相对 100%);观测视界 2;Diffusion Policy | SLAM 轨迹未筛选直接训练;用绝对动作;漏动作延迟匹配;软指开度当纯几何宽度 |
| ACT | 论文 RSS 2023(Fine-Grained Bimanual Manipulation);常见实现见 LeRobot | CVAE 编码器+解码器;默认 chunk \(k=100\);推理 \(z=0\);temporal ensembling 指数加权 | 推理时误采样 \(z\);ensembling 权重方向写反 |
| Diffusion Policy | 论文 arXiv:2303.04137 | DDPM 近似 \(p(A_t\mid O_t)\);滚动视界 \(T_o/T_p/T_a\),默认 \(T_p/T_a\approx 2\) | 三视界训练/部署不一致且未冻结;误以为在像素上去噪 |
本质洞察:复现这类工作,最常见的失败不是跑不通代码,而是**照搬论文正文里的数字而忽略代码里的真实配置**——chunk size、采样比例、三视界、动作表示这些参数在论文正文常被一句话带过或省略,真正的值要去代码/config 里挖。这与论文解读教学反复强调的"以源码为准"是同一条纪律:loss 能正常下降不代表配置正确,配置错会在实机或迁移时才暴露。
85 延伸阅读¶
| 材料 | 难度 | 阅读重点 |
|---|---|---|
| Mobile ALOHA | ⭐⭐ | 全身遥操作硬件和 co-training 配方 |
| ALOHA / ACT | ⭐⭐⭐ | CVAE、Transformer action chunking 与双臂示教 |
| UMI | ⭐⭐⭐ | 手持夹爪、SLAM 轨迹恢复、跨平台部署 |
| Diffusion Policy | ⭐⭐⭐ | 动作片段生成与 receding horizon 执行 |
| LeRobot 数据工具 | ⭐⭐ | 统一 dataset、robot、teleoperator 与 policy 接口 |
85 故障排查手册¶
教学不能只讲系统如何搭起来,还要讲系统坏了怎么定位。 下表按症状组织排查路径,适合在仿真、采集和实机部署中直接使用。
| 症状 | 可能原因 | 排查步骤 | 修正方式 |
|---|---|---|---|
| replay 中手先动,图像后变化 | 图像时间戳滞后或写盘时间被误用 | 比较传感器时间、接收时间、写盘时间;用事件对齐 | 使用传感器时间戳重采样,估计固定延迟 |
| 同一策略在不同采集日成功率差很多 | 相机或夹爪标定版本变化 | 检查 calibration_id;重投影标定板;测夹爪零点 | 重新标定并按版本分组训练 |
| 夹爪经常抓空 | 外参偏移、夹爪开度标签错误或动作延迟 | 可视化目标、EE 和夹爪开合曲线 | 修正手眼标定,重新对齐夹爪动作 |
| SLAM 轨迹突然跳变 | 纹理不足、反光、快速转动或遮挡 | 检查关键帧轨迹、重定位点和闭环误差 | 剔除坏片段,改善采集路径和照明 |
| 训练 loss 正常但实机抖动 | 动作片段含高频噪声或插值方式不一致 | 画动作频谱;比较训练动作和部署动作 | 低通滤波,统一插值和执行频率 |
| 换采集频率后 ACT 实机变差 | chunk size 未随频率重估,\(T_{chunk}=k/f\) 失配(85.6E) | 算 \(k/f\) 是否仍约等于一个动作意图时长 | 按新频率重设 chunk size 并重训 |
| ACT 策略"慢半拍"反应迟钝 | temporal ensembling 指数权重方向写反(85.6E) | 检查 \(w_j=\exp(-mj)\) 是否把最大权重给了最新预测 | 修正权重方向,最新 chunk 权重最大 |
| Diffusion Policy 离线好实机节奏乱 | \((T_o,T_p,T_a)\) 训练与部署不一致(85.6F) | 比对训练与部署 config 的三个视界值 | 冻结三视界随模型版本一起发布 |
| UMI 策略在新机器人上"慢半拍" | 只对齐观测延迟、漏了动作延迟匹配(85.9B) | 检查命令是否按累计延迟提前下发 | 补动作延迟匹配,丢弃过期动作 |
| 异构数据混合后某本体动作恒为零 | 缺失维度补零当成真实标签(85.7 CONFLICT) | 确认缺失维度是否恰好等于真实值 | 非真零的缺失维度改用 valid_mask 屏蔽梯度 |
85 本章常见误解汇总¶
下表汇总本章及新增小节中最容易形成的误解,集中纠正。每条都指向正文对应小节,便于回查。
| 误解 | 实际情况 | 出处 |
|---|---|---|
| 动作分块只是"一次多输出几步省算力" | 它显式建模人类示教的时间相关性,缓解复合误差与非马尔可夫示教 | 85.6E |
| ACT 推理时要从隐变量后验采样 \(z\) | 默认实现推理时丢弃编码器、令 \(z=0\),是确定性解码 | 85.6E |
| ACT 默认 chunk size 永远是 100 | 100 是 ALOHA 桌面任务的默认值;Mobile ALOHA 移动任务用 45,随频率/任务调 | 85.6E |
| Diffusion Policy 的去噪发生在图像上 | 去噪发生在动作序列上,图像只作为条件 \(O_t\) 输入 | 85.6F |
| 共训练里缺失底盘动作用 mask 总比补零好 | Mobile ALOHA 实际用补零且 work,因为静态数据底盘本就静止;mask 只在缺失维度非真零时才必需 | 85.7 |
| co-training 加静态数据总能提升移动任务 | 仅当目标任务瓶颈落在静态数据擅长的技能上才提升,否则可能略降(推椅子 −10、涮锅 −15) | 85.7 |
| Mobile ALOHA 全身遥操作需要底盘-双臂协调算法 | 把协调交给操作者身体(系带拖动),无需融合算法 | 85.3B |
| UMI 数据等价于机器人数据 | UMI 缺机器人动力学/关节限位,须经 retargeting + 可达性过滤 | 85.8 / 85.9B / 85.12C |
| UMI 用绝对世界坐标动作 | 用相对初始 EE 的 SE(3) 轨迹,绝对动作仅 25% 成功率、相对 100% | 85.9B |
| 用了 VLA 就能自动消化任何数据 | VLA 消化的是对齐好的数据,语言/动作/本体任一未对齐都救不回来 | 85.12C |
85 专题学习路径:从遥操作采集到模仿学习数据闭环¶
本节把原先循环出现的卡片改成一条数据工程学习路径。 顺序从采集前检查开始,经过 Mobile ALOHA、UMI、标定同步、数据清洗,最后回到策略训练与部署反馈。
85.A 使用方法¶
这些卡片不是零散速记,而是把本章主线压缩成可执行判断。 阅读时建议按顺序回答三件事:当前系统的关键接口是什么,最可能出现的反例是什么,工程上如何观测这个反例。 每张卡片都对应一个设计检查点,适合在方案评审、实验准备和实机排查前使用。
卡片 001:采集先于训练¶
- 关键判断:数据质量决定模仿学习上限
- 反例:同步和标定未检查就开始训练
- 机制:错误监督会被模型认真学习
- 工程接口:采集前完成硬件、标定、同步、replay 四项检查
- 失败模式:loss 下降但实机失败
- 练习:写一份采集前检查清单
卡片 002:Mobile ALOHA 看闭环¶
- 关键判断:移动双臂价值来自全身遥操作闭环
- 反例:只复刻硬件外形,不记录底盘和双臂同步
- 机制:底盘提供粗定位,双臂提供精细接触
- 工程接口:动作向量同时定义底盘、双臂和夹爪
- 失败模式:长任务相位错乱
- 练习:画出全身动作字段表
卡片 003:leader/follower 要校准¶
- 关键判断:主从零点是监督信号的一部分
- 反例:leader 零点偏差被模型学成动作偏差
- 机制:遥操作映射决定人类意图如何落到机器人
- 工程接口:记录原始 leader、参考 follower 和实际状态
- 失败模式:策略学到操作者补偿
- 练习:推导零点偏差对末端的影响
卡片 004:硬件版本要入库¶
- 关键判断:同名机器人也可能不是同一数据分布
- 反例:相机支架换了但 metadata 不变
- 机制:硬件、固件和标定共同决定观测与动作
- 工程接口:metadata 记录版本、安装、限位和校准
- 失败模式:跨日期成功率跳变
- 练习:设计 hardware_id 字段
卡片 005:相机视角是策略条件¶
- 关键判断:换视角等于换输入分布
- 反例:训练有腕相机,部署时遮挡腕相机
- 机制:视觉 token 依赖安装位置、视场和曝光
- 工程接口:固定相机外参并保存 calibration_id
- 失败模式:接触阶段失效
- 练习:比较前视和腕视角在抓取中的角色
卡片 006:时间戳不可省略¶
- 关键判断:数据必须描述同一物理时刻
- 反例:写盘时间被当作采集时间
- 机制:传感器时间、接收时间和存储时间不同
- 工程接口:保存三类时间并做离线对齐
- 失败模式:动作和图像形成假因果
- 练习:设计 LED 与夹爪同步实验
卡片 007:episode 是教学单元¶
- 关键判断:单帧没有任务语义
- 反例:视频文件和动作表分开漂移
- 机制:episode 定义重置、任务、阶段和成功
- 工程接口:每帧关联 episode_id、step、task 和 success
- 失败模式:训练样本可读但语义错位
- 练习:写搬杯子 episode schema
卡片 008:失败要分类¶
- 关键判断:失败数据可用于诊断和恢复
- 反例:所有失败样本一起删除
- 机制:失败类型决定能否训练、能否回放、能否用于安全
- 工程接口:failure_reason 使用有限集合
- 失败模式:数据量变少且边界缺失
- 练习:定义五类 failure_reason
卡片 009:replay 是质检¶
- 关键判断:可视化回放低成本发现字段错误
- 反例:不看 replay 直接训练
- 机制:时间、frame、夹爪事件都能在回放中暴露
- 工程接口:每批数据抽样并保存 replay 结论
- 失败模式:离线指标误导
- 练习:列出 replay 检查项
卡片 010:标定要版本化¶
- 关键判断:外参和手眼标定是数据语义
- 反例:相机松动后继续追加数据
- 机制:坐标链变化会改变同一像素对应的动作
- 工程接口:每次标定生成 calibration_id
- 失败模式:模型学到固定空间偏差
- 练习:用 AprilTag 设计外参检查
卡片 011:夹爪零点要单测¶
- 关键判断:夹爪标签影响接触因果
- 反例:夹爪磨损后仍用旧开度范围
- 机制:开合宽度、力和接触状态共同决定抓取
- 工程接口:记录开度、命令、实际状态和延迟
- 失败模式:抓空但视频看似对准
- 练习:测量夹爪闭合延迟
卡片 012:共训练要 mask¶
- 关键判断:不同数据源字段缺失不能混成零
- 反例:静态 ALOHA 数据没有底盘动作,却被填零
- 机制:mask 告诉模型哪些字段有效
- 工程接口:source_id 与 valid_mask 一起进入 batch
- 失败模式:模型学到错误不动先验
- 练习:写 co-training batch 字段
卡片 013:UMI 看任务帧¶
- 关键判断:手持轨迹要转成机器人可执行语义
- 反例:全局手持轨迹直接下发给机械臂
- 机制:任务 frame 让数据和环境布局解耦
- 工程接口:保存 world、object、task、ee 的变换链
- 失败模式:换桌面位置后偏移
- 练习:把擦拭轨迹写成物体 frame
卡片 014:SLAM 轨迹要筛选¶
- 关键判断:轨迹恢复质量决定动作标签
- 反例:纹理不足片段仍进入训练
- 机制:SLAM 跳变会变成末端动作尖峰
- 工程接口:记录重定位、关键帧和轨迹置信度
- 失败模式:训练后动作突然跳变
- 练习:设计 SLAM 质量过滤规则
卡片 015:可达性要回放¶
- 关键判断:手持数据不包含目标机器人的运动学限制
- 反例:UMI 轨迹在机器人上 IK 不可行
- 机制:迁移前要检查工作空间、姿态和碰撞
- 工程接口:离线运行 IK、碰撞和速度检查
- 失败模式:部署时腕部跳变
- 练习:统计轨迹可达率
卡片 016:操作者也是变量¶
- 关键判断:示教风格会进入数据分布
- 反例:不同操作者速度差异未记录
- 机制:人类控制策略影响动作平滑性和失败恢复
- 工程接口:metadata 记录 operator_id 和经验等级
- 失败模式:策略对某类风格过拟合
- 练习:比较两名操作者的数据频谱
卡片 017:任务阶段要标注¶
- 关键判断:长任务失败需要阶段定位
- 反例:所有帧只标同一个 task_name
- 机制:阶段标签连接数据清洗和评测
- 工程接口:标注 approach、align、grasp、move、place
- 失败模式:不知道哪一步需要补数据
- 练习:为开冰箱任务写阶段标签
卡片 018:数据清洗要保守¶
- 关键判断:清洗不能破坏任务分布
- 反例:按动作幅值删除所有极端样本
- 机制:极端动作可能是必要恢复动作
- 工程接口:先分类再决定删除、保留或单独训练
- 失败模式:鲁棒性下降
- 练习:制定三类清洗决策
卡片 019:频率要统一¶
- 关键判断:训练频率和执行频率要匹配
- 反例:采集 50Hz,训练随意降采样,部署 20Hz
- 机制:频率改变动作增量语义
- 工程接口:schema 写 sample_rate 和执行周期
- 失败模式:动作速度不对
- 练习:推导降采样对 delta 动作的影响
卡片 020:语言标签要稳定¶
- 关键判断:同义表达会影响条件学习
- 反例:同一任务有多种随意描述
- 机制:语言可以增强泛化,也会引入标签噪声
- 工程接口:使用规范任务名和可选自然语言描述
- 失败模式:模型混淆相似任务
- 练习:设计任务命名规范
卡片 021:成功标签要可验证¶
- 关键判断:成功不是采集者主观印象
- 反例:操作者觉得完成但物体位置不稳定
- 机制:成功条件应能由状态、视觉或人工标注验证
- 工程接口:记录 success、终止原因和证据帧
- 失败模式:评测目标不一致
- 练习:为放置任务写成功判据
卡片 022:数据合并要对齐¶
- 关键判断:不同格式合并前先统一语义
- 反例:hdf5、LeRobot、RLDS 字段直接拼接
- 机制:格式不同不代表语义相同
- 工程接口:建立中间 DatasetSchema
- 失败模式:训练读取正确但含义错误
- 练习:比较三种格式的字段映射
卡片 023:现场日志要即时¶
- 关键判断:采集现场信息事后很难恢复
- 反例:夹爪碰撞和灯光变化没有记录
- 机制:环境事件解释异常 episode
- 工程接口:记录环境、异常、暂停和重试
- 失败模式:异常样本无法归因
- 练习:设计现场记录表
卡片 024:评测集要冻结¶
- 关键判断:改进需要固定比较基准
- 反例:每轮训练都换评测任务
- 机制:固定评测集暴露真实趋势
- 工程接口:保存 eval_split、场景和随机种子
- 失败模式:结果不可比较
- 练习:制定小规模固定评测集
卡片 025:部署反馈要回流¶
- 关键判断:实机失败是下一轮采集目标
- 反例:部署失败只写在聊天记录里
- 机制:闭环改进依赖失败到数据计划的转换
- 工程接口:失败前窗口进入采集任务队列
- 失败模式:重复犯同类错误
- 练习:把三次失败转成采集计划
卡片 026:安全边界要先定¶
- 关键判断:采集阶段也需要安全约束
- 反例:为了多样性允许危险动作
- 机制:坏数据和硬件风险都不可接受
- 工程接口:急停、软限位和速度上限先于采集
- 失败模式:示教中断和硬件损伤
- 练习:写采集安全边界
卡片 027:隐私和数据权限¶
- 关键判断:家庭或办公室数据有隐私边界
- 反例:采集视频未做权限记录
- 机制:数据治理影响发布、共享和复现
- 工程接口:记录场景权限、遮挡处理和访问范围
- 失败模式:数据不能合法使用
- 练习:设计数据权限字段
卡片 028:小批量先闭环¶
- 关键判断:少量高质量闭环胜过大量未检查数据
- 反例:一次采集大量 episode 后才发现同步错
- 机制:小批量能快速暴露接口问题
- 工程接口:先采集、replay、训练、实机各少量验证
- 失败模式:错误成批扩大
- 练习:制定第一天采集节奏
卡片 029:模型选择看数据¶
- 关键判断:策略类型应匹配数据规模和质量
- 反例:数据很少却训练高容量模型
- 机制:ACT、Diffusion、VLA 微调对数据要求不同
- 工程接口:先评估任务多样性、视角和失败覆盖
- 失败模式:过拟合或欠拟合
- 练习:为三类数据规模选择策略
卡片 030:跨平台要说明限制¶
- 关键判断:UMI 与 Mobile ALOHA 数据不是天然等价
- 反例:把手持数据当作完整机器人数据
- 机制:手持数据缺少机器人动力学和底盘遮挡
- 工程接口:迁移时补充可达性和机器人端小规模数据
- 失败模式:实机动作不可执行
- 练习:写出两类数据的互补关系
85.B 案例推演¶
场景 1:Mobile ALOHA 采集日¶
上午先做硬件检查:急停、底盘、双臂软限位、夹爪开合和相机固定。 随后做同步检查:用可见事件对齐视频、关节和夹爪动作,并估计固定延迟。 正式采集只做小批量,立刻 replay,确认动作和图像同相位后再扩大任务数量。 当天结束前冻结 metadata、calibration_id 和数据统计,避免第二天混入不可追溯变化。
场景 2:UMI 手持数据迁移¶
第一步检查 SLAM 轨迹质量,剔除跳变、重定位失败和严重遮挡片段。 第二步把夹爪相对相机的位姿链写清楚,恢复手持工具末端轨迹。 第三步把全局轨迹转为任务 frame 或物体 frame,并在目标机器人上运行 IK 与碰撞回放。 最后才进入策略训练;否则模型会学习到目标机器人无法执行的动作。
场景 3:共训练数据混合¶
Mobile ALOHA 数据有底盘、双臂和移动视角,静态 ALOHA 数据更强调双臂精细操作。 混合时不能把缺失底盘动作当作真实零速度,应提供 source mask 和有效字段 mask。 训练批次还要保留数据源权重,否则大规模静态数据可能淹没少量移动任务信号。 评测时必须分别看移动阶段和操作阶段,而不是只看最终成功率。
场景 4:故障定位¶
夹爪抓空时,不要立即调模型。先回放图像、末端、夹爪开度和动作时间。 如果图像中接触已发生但夹爪标签滞后,根因在同步。 如果图像和动作同步但末端位置偏移,优先查手眼标定。 如果标定和同步都正常,再看策略是否缺少失败场景。
场景 5:数据发布准备¶
发布数据前要去除隐私内容,保留必要的任务、硬件和标定元信息。 对外说明应写清动作含义、频率、单位、相机视角和失败标签定义。 如果某些 episode 因安全或权限不能发布,应在 split 中说明缺失原因。 这样数据才能被他人正确复用,而不是只成为不可解释的视频集合。
场景 6:闭环改进¶
一次训练失败后,把失败按阶段分成导航、对准、抓取、转移和放置。 每一类失败对应不同采集策略:补移动视角、补近距离接触、补恢复动作或补终止条件。 下一轮采集只针对最主要瓶颈,而不是平均增加所有任务。 这样数据增长才会带来能力增长。
85.C0 2025-2026 年数据采集前沿动态¶
数据采集方法仍在快速演进。以下梳理截至 2026 年初的主要公开趋势,具体结论以论文和官方发布为准。
ALOHA 2 与硬件迭代。ALOHA 硬件经历了多次社区和实验室迭代,更新集中在机械结构刚度、相机布局、主从延迟优化和夹爪力控能力。第二代系统通常在关节传动效率、线缆管理和安全急停方面做了改进。采集侧的核心变化不是更多自由度,而是更低的遥操作延迟和更稳定的同步。
UMI-on-Legs 与移动底座采集。UMI 路线已扩展到腿式底座。手持夹爪采集的 EE 轨迹被映射到四足或人形底座上,底座负责全身平衡和导航。这种做法对任务帧表示要求更高,因为手持采集时没有底座遮挡和动力学约束。部署时必须做 IK 可达性回放和碰撞检查。
大规模异构数据混合。多个公开方向尝试把不同硬件(ALOHA、Franka、UR、Stretch、手持工具)的数据放进统一训练。关键挑战不是格式转换,而是动作语义对齐:不同硬件的关节空间完全不同,末端动作在不同工作空间中的物理含义也不同。source mask 和 valid mask 变得更加重要。
人类视频到机器人数据。2025 年以来,利用人类第一视角或第三视角视频生成机器人训练数据的路线开始受到关注。核心思路是用视觉模型估计人手轨迹,再映射为机器人末端动作。这与 UMI 的思路一脉相承,但把采集工具进一步简化到普通相机。主要风险是人手到机器人的映射误差、遮挡处理和接触事件的保真度。
本质洞察:数据采集工具越轻量,距离真实机器人可执行性就越远。每降低一步采集门槛,都需要在 retargeting、可达性验证和接触标签质量上投入更多工程。
85.C 收束与综合练习¶
本章的主线是:Mobile ALOHA 代表机器人本体内的全身遥操作采集,UMI 代表把采集工具从目标机器人中部分解耦的手持采集。 两者都不是单纯“多收数据”,而是要求硬件、标定、同步、schema、清洗和训练形成闭环。 综合练习 1:为一个移动双臂厨房任务写完整采集计划,包含硬件检查、标定、同步、episode schema 和 replay 流程。 综合练习 2:把一段 UMI 手持轨迹迁移到目标机械臂,写出从相机轨迹到任务帧动作的变换链和可达性检查。 综合练习 3:设计一个 Mobile ALOHA + 静态 ALOHA 共训练批次,明确 source mask、valid mask 和评测拆分。 综合练习 4:给定五个失败 episode,按硬件、标定、同步、策略和环境五类归因,并决定哪些样本保留、哪些样本剔除。 完成这些练习后,应能判断一批数据是否可以进入 ACT、Diffusion Policy 或 VLA 微调流程。
85.D 递进串讲:从动机到练习¶
下面的串讲把本章关键概念重新组织为“动机 -> 反例 -> 机制 -> 工程接口 -> 失败模式 -> 练习”的链条。 它不是新增术语,而是帮助读者把前文内容转化为现场排查和研究设计能力。
串讲 1:采集前检查¶
- 动机:在错误进入数据前拦截。
- 反例:硬件未校准就批量采集。
- 机制:采集质量门槛先于模型训练。
- 工程接口:急停、零点、相机、夹爪和同步逐项确认。
- 失败模式:整批数据带固定偏差。
- 练习:写一份十项现场检查清单。
串讲 2:遥操作映射¶
- 动机:把人类动作稳定映射到机器人。
- 反例:leader 与 follower 零点不一致。
- 机制:映射关系决定监督动作含义。
- 工程接口:记录 leader 原值、参考命令和实际状态。
- 失败模式:模型学习人类补偿动作。
- 练习:测量遥操作延迟。
串讲 3:硬件 metadata¶
- 动机:让数据能复现实验条件。
- 反例:换相机支架后沿用旧标定。
- 机制:硬件版本决定观测和动作分布。
- 工程接口:hardware_id、firmware、calibration_id 进入 episode。
- 失败模式:跨日期结果跳变。
- 练习:设计 metadata 表。
串讲 4:时间同步¶
- 动机:保证观测和动作有正确因果关系。
- 反例:夹爪先动,图像后变。
- 机制:统一时钟和延迟估计建立样本时间轴。
- 工程接口:保存采集、接收和写盘时间。
- 失败模式:策略提前或滞后抓取。
- 练习:用 LED 事件验证同步。
串讲 5:标定链路¶
- 动机:把像素、末端和底盘坐标接起来。
- 反例:图像正常但外参偏移。
- 机制:坐标变换定义动作标签几何意义。
- 工程接口:每次拆装后重建 calibration_id。
- 失败模式:抓取落点稳定偏移。
- 练习:用已知物体尺寸做检查。
串讲 6:episode schema¶
- 动机:让每段示教成为可训练样本。
- 反例:视频和动作表索引错位。
- 机制:episode 边界定义任务语义。
- 工程接口:记录 task、stage、success 和 failure_reason。
- 失败模式:训练读取正常但语义错误。
- 练习:写完整 episode 字段。
串讲 7:Mobile ALOHA 共训练¶
- 动机:把全身时序和局部操作结合。
- 反例:缺失底盘字段被填成真实零。
- 机制:source mask 区分数据来源和有效字段。
- 工程接口:batch 中保留 source_id 与 valid_mask。
- 失败模式:模型学到不移动底盘。
- 练习:设计混合 batch。
串讲 8:UMI 轨迹恢复¶
- 动机:把手持工具动作变成机器人可用标签。
- 反例:SLAM 跳变片段直接训练。
- 机制:轨迹质量决定末端动作质量。
- 工程接口:记录轨迹置信度和筛选原因。
- 失败模式:动作中出现尖峰。
- 练习:写 SLAM 过滤规则。
串讲 9:任务帧动作¶
- 动机:提高跨场景迁移性。
- 反例:世界系路径换桌后失效。
- 机制:任务 frame 表达相对对象关系。
- 工程接口:保存 world、object、task、ee 变换链。
- 失败模式:轨迹整体偏移。
- 练习:把擦拭动作改写到物体 frame。
串讲 10:失败样本处理¶
- 动机:把失败转成诊断信息。
- 反例:失败全部删除或全部混入成功集。
- 机制:失败类型决定训练用途。
- 工程接口:分类为安全、可恢复、标定、同步、策略等。
- 失败模式:鲁棒性或数据纯度受损。
- 练习:制定失败分流表。
串讲 11:部署反馈¶
- 动机:让实机结果回到采集计划。
- 反例:部署失败没有进入数据队列。
- 机制:闭环改进靠失败阶段驱动。
- 工程接口:记录失败前窗口和下一轮补采任务。
- 失败模式:数据增长但能力不变。
- 练习:把一次失败写成采集需求。
串讲 12:数据权限¶
- 动机:保证数据可使用、可共享、可追溯。
- 反例:家庭视频没有权限和脱敏记录。
- 机制:数据治理影响长期研究。
- 工程接口:metadata 写权限、脱敏和访问范围。
- 失败模式:数据无法发布或复现。
- 练习:设计隐私字段。
85.E 口试式综合题¶
这些题目适合在读完本章后闭卷回答。每题都要求先说接口,再说风险,最后说验证方法。
- 选择一个真实移动操作任务,说明观测字段、动作字段和安全过滤字段。
- 给出一个模型离线指标提升但实机失败的例子,并按数据、模型、控制三层定位。
- 设计一次最小实机实验,要求能够区分同步错误、标定错误和策略错误。
- 写出一个失败 episode 的最小诊断记录,包括关键帧、动作、状态和失败原因。
- 说明本章方法与前置移动操作规划、MPC/WBC 和模仿学习章节的连接方式。
- 说明哪些结论可以通过离线 replay 验证,哪些必须通过实机接触验证。
- 把一个前沿模型名称转化为输入接口、动作接口、频率接口和安全接口四个问题。
- 给出一个你会拒绝部署的动作片段,并说明拒绝条件来自哪一层。
- 设计一个小规模数据闭环,让下一轮采集只补最关键的失败阶段。
- 用一段话总结本章最重要的工程原则,并说明它如何降低实机风险。
85.F 学习达标口径¶
- 是否能区分 Mobile ALOHA 的全身遥操作数据和 UMI 的手持工具数据?
- 是否能说明 leader/follower 零点、夹爪延迟和相机外参如何进入监督信号?
- 是否能写出 episode 中 observation、state、action、metadata 和 failure_reason 的关系?
- 是否能用 replay 判断一批数据是否存在时间错位或字段错位?
- 是否能把 UMI 的世界系轨迹转换成任务 frame 或物体 frame 动作?
- 是否能为共训练数据写出 source mask 和 valid mask?
- 是否能把失败样本分成保留、剔除、恢复训练和安全分析四种用途?
- 是否能把一次实机部署失败转化为下一轮采集计划?
85.G ALOHA 2.0 与 UMI 后续进展(2025-2026)¶
ALOHA 2.0(2025)。在 Mobile ALOHA 的基础上,ALOHA 2.0 的核心改进集中在三个方面:(1)更高保真度的遥操作——通过力反馈 leader 臂和更低延迟的通信链路,采集到的演示数据质量显著提升;(2)共训练(co-training)数据策略的系统化——明确了哪些辅助数据源(桌面 ALOHA 数据、仿真数据)以什么比例混入训练可以最大化迁移效益;(3)更长horizon的任务支持——通过分层策略(高层任务规划 + 低层动作生成),ALOHA 2.0 可以处理包含多个子任务的长程操作序列(如"打开冰箱-取出饮料-关上冰箱-放到桌上")。
UMI 后续:从手持工具到多平台部署。UMI 的世界坐标系轨迹表示在 2025 年被进一步验证为一种通用的跨平台接口——同一套演示数据在 UR5、Franka 和 Kinova 等不同臂上成功部署,只需更换逆运动学求解器。后续工作还探索了 UMI 数据与 VLA 模型的结合——用 UMI 的高质量轨迹数据微调 VLA 模型,使其在操作精度要求较高的任务(如插入、旋拧)上表现更好。
对学习者的意义:ALOHA 和 UMI 的演化轨迹表明,移动操作领域的核心瓶颈已经从"算法"转向"数据质量和数据基础设施"。理解数据采集管线(标定、同步、标注、质量控制)的工程细节,在当前阶段比追逐最新的模型架构更有实际价值。
85.H 现场排查顺序¶
- 先看 replay:确认图像、关节、夹爪和动作是否同相位。
- 再看标定:用已知物体或标定板检查外参、手眼和夹爪零点。
- 再看 schema:确认 episode 边界、任务标签、成功标签和失败原因没有错位。
- 再看训练:确认 source mask、valid mask、归一化统计和数据切分一致。
- 最后看实机:用小批量任务验证部署端插值、限位、急停和恢复策略。
- 如果前四步没有证据,不应把失败直接归因到模型容量。
- 每次排查结束都要把证据写回 dataset metadata 或实验日志。
- 下一轮采集只针对最主要的失败阶段,而不是盲目增加数据量。
85.I 研究视角:Mobile ALOHA 与 UMI 各自的贡献结构¶
读完本章的工程细节后,值得从"研究方法论"的高度回看这两篇工作——它们为什么够发顶会、给了什么范式启示。这一节教的不是"它们做了什么",而是"如何评估这类工作"。
Mobile ALOHA 的贡献结构¶
| 贡献维度 | 这篇工作做了什么 | 为什么重要 |
|---|---|---|
| 问题定义 | 把"移动 + 双臂 + 全身协调"这一困难采集问题,约化为一个低成本、可由单人操作的遥操作问题 | 让移动双臂数据从"需要专门团队"变成"一个人可采" |
| 框架贡献 | 给出从硬件(系带全身遥操作)到学习(co-training 配方)的端到端方案 | 不是单点技巧,而是一条可复现的完整管线 |
| 实验方法论 | 用 30/50/70% 混合比例的对照、co-train vs no-co-train 的逐任务对照,系统验证 co-training 的有效性与鲁棒性 | 结论可量化、可证伪,而非"我们发现混合有帮助"的模糊声明 |
本质洞察:Mobile ALOHA 最深的贡献不在于任何单个数字,而在于它**证明了一条命题**——移动双臂操作的瓶颈是"采集成本"而非"算法能力",且这个瓶颈可以用人体工学(系带)而非更复杂的算法来突破。它把研究社区的注意力从"设计更强的策略"引向"降低高质量数据的采集门槛",这正是 85.G 那条"瓶颈从算法转向数据"洞察的源头。
UMI 的贡献结构¶
| 贡献维度 | 这篇工作做了什么 | 为什么重要 |
|---|---|---|
| 问题定义 | 提出"in-the-wild 教学而无需 in-the-wild 机器人"——把采集工具与目标机器人解耦 | 开创了"便携式、与机器人无关"的数据采集新问题 |
| 框架贡献 | 鱼眼+侧镜+IMU-SLAM+软指+相对动作+延迟匹配,组成一套自洽的采集-部署接口 | 每个部件都精确补偿手持采集缺失的一种信息,缺一不可 |
| 实验方法论 | 用绝对 vs 相对动作的 25% vs 100% 对照、ATE 6.1mm 的定量精度报告,证明设计选择的必要性 | 让"相对动作更好"从直觉变成可复现的实验结论 |
本质洞察:UMI 的贡献结构核心是一个**接口设计**而非算法发明——它定义了一种"末端相对位姿轨迹"作为跨本体的通用动作语言,让同一批人手数据能部署到任意机械臂。它的深刻之处在于把"数据可迁移性"转化为一个**坐标表示选择问题**(相对 vs 绝对、世界帧 vs 任务帧),而这恰好是本章 85.9/85.9B 反复强调的主题。
两篇工作的共同局限(也是后续方向的入口)¶
诚实地看,两篇工作都留下明确局限,这些局限正是 85.C0 / 85.G 前沿动态的驱动力:
- 任务多样性仍有限:两者报告的成功案例集中在中等数量的桌面/厨房任务上,离"任意任务零样本"还很远——这驱动了向 VLA 基础模型(复合/260)扩展。
- 接触保真度受采集方式约束:Mobile ALOHA 的接触力靠 leader 臂的间接反馈,UMI 靠软指形变隐式编码,都不是直接力测量——这驱动了对力觉 leader 臂与更丰富接触传感的探索。
- UMI 的精度天花板:SLAM 毫米级 ATE 对精细插拔逼近极限,强反光/弱纹理场景仍易跳变——这驱动了 UMI-3D 等引入更强空间感知的后续工作。
理解这些局限,读者就能把本章从"两个具体系统"上升到"一类不断演进的数据采集范式"——下一节的范式总结正是沿这条线展开。
85.J 范式总结与跨方向迁移¶
本方向的核心范式¶
把 Mobile ALOHA 与 UMI 放在一起看,它们本质上在回答同一个问题:如何低成本地获得高质量、可训练、可部署的真实操作数据? 两者代表这个问题的两种正交解法:
- Mobile ALOHA 路线:保留目标机器人在场,用人体工学把"全身协调采集"做到极简,数据强绑定到本体、可直接部署。
- UMI 路线:移除目标机器人,用视觉 SLAM + 相对动作表示把数据与本体解耦,数据弱绑定、可跨平台,代价是要补可达性验证。
统一视角是一根**"绑定强度"光谱**:从"强绑定、直接可用、采集受限"(Mobile ALOHA)到"弱绑定、需后处理、采集灵活"(UMI),再到 85.C0 提到的"人类视频"(最弱绑定、最灵活、最需要 retargeting)。每向灵活端移动一步,就要在 retargeting、可达性验证和接触标签保真度上多付一份工程代价——这是贯穿本章的总规律。
跨方向迁移¶
| 迁移方向 | 为什么可行 | 预期挑战 |
|---|---|---|
| 灵巧手 / 多指操作数据采集 | 同样面临"高维动作 + 接触丰富 + 采集贵",相对动作与隐式力觉思想可迁移 | 多指的接触状态远比平行夹爪复杂,软指隐式力觉不够用 |
| 人形机器人全身遥操作 | Mobile ALOHA 的系带全身协调思想可扩展到上身+下肢 | 双足平衡引入动力学约束,被动拖动不再适用 |
| 跨本体基础模型数据基建 | UMI 的相对 EE 接口天然适合做统一动作空间 | 不同本体的工作空间、限位、遮挡差异需 valid_mask 与可达性过滤统一治理 |
组合创新头脑风暴¶
| 组合方案 | 预期效果 | 可行性 | 最大风险 |
|---|---|---|---|
| UMI 大规模采集 + Mobile ALOHA 精采关键接触阶段 | 兼得 UMI 的量与 ALOHA 的接触保真 | 中(两套数据需 schema 对齐) | 两类数据的接触分布不一致导致负迁移 |
| UMI 相对动作 + VLA 语言条件 | 跨本体 + 语言泛化的高质量微调数据 | 中高(接口已基本就绪) | 语言标注质量与 retargeting 误差叠加 |
| 系带全身遥操作 + 力觉 leader 臂 | 全身协调 + 精确接触力的高保真数据 | 中(成本与操作者训练上升) | 设备复杂度抵消低成本优势 |
定位:以上组合是教学文档的附加产出,目的是捕捉研究想法的种子,不要求深入论证可行性。若某个方向值得深入,可结合复合/260(VLA 基础模型)进一步评估。
本章要点总结¶
Mobile ALOHA 和 UMI 代表了移动操作数据采集的两种互补范式:前者通过全身遥操作获取高保真的全身协调数据,后者通过手持工具获取灵活的操作轨迹数据。两者的共同教训是:数据质量(标定精度、时间同步、标注一致性)比数据数量更重要。在构建移动操作系统时,先投资数据基础设施,再考虑模型架构。
学完本章后,建议进入复合/260(VLA 基础模型)了解如何利用这些数据训练端到端策略。
—— 本章终 ——