CABINET / Machines in Motion / 具身智能研究
机器人学习
机器人学习 (Robot Learning) 是具身智能系统的核心算法层。这一层决定了机器人如何从数据中获取行为能力,如何将仿真中训练的策略迁移到真实世界,以及如何通过基础模型实现跨任务、跨形态的泛化。本层覆盖仿真器、Sim-to-Real 迁移、模仿学习、扩散策略、强化学习、机器人基础模型、世界模型、数据规模化挑战,以及公司格局。
1. 仿真器 (Simulators)
仿真器是机器人学习的基础设施。由于真实世界中的数据收集速度极低(通常每小时仅 10-20 次演示),大规模训练必须在仿真环境中完成。仿真器需要同时满足物理精度(接触力学、摩擦、关节动力学)和计算速度(GPU 并行化)两个需求。
1.1 MuJoCo
MuJoCo (Multi-Joint dynamics with Contact) 由 Eman Todorov 开发,2022 年被 DeepMind 收购后开源。其核心优势在于接触模型 (contact model) 的精度和计算效率。
接触模型:MuJoCo 采用凸优化 (convex optimization) 方式求解接触力,而非传统的惩罚方法 (penalty method) 或 LCP (Linear Complementarity Problem)。具体而言,MuJoCo 在每个时间步通过求解以下优化问题确定接触力:
minimize ||J * qacc - aref||² + cost_of_contact_forces
subject to friction cone constraints
这种方法避免了惩罚方法中弹簧刚度参数选取的困难,也避免了 LCP 方法中非唯一解的问题。结果是接触力计算在物理上更合理,数值上更稳定。
MJX (MuJoCo XLA):MuJoCo 3.0 引入了 MJX 后端,将物理模拟编译为 JAX/XLA 计算图,在 GPU 上实现大规模并行。单张 A100 可同时运行数千个环境实例。MJX 的设计原则是保持与 CPU 版本完全相同的物理方程和数值行为,仅改变计算后端。
import mujoco
from mujoco import mjx
# 加载模型
model = mujoco.MjModel.from_xml_path("robot.xml")
# 转换为 MJX 数据结构
mjx_model = mjx.put_model(model)
mjx_data = mjx.put_data(model, mujoco.MjData(model))
# 在 GPU 上批量 step
import jax
batched_step = jax.vmap(mjx.step, in_axes=(None, 0))
# 同时推进 4096 个环境
mjx_data_batch = batched_step(mjx_model, mjx_data_batch)
局限:MuJoCo 的渲染能力相对有限,原生渲染器不支持光线追踪 (ray tracing) 和真实感材质,视觉域随机化 (visual domain randomization) 能力弱于 Isaac Sim。
1.2 Isaac Sim / Isaac Lab
NVIDIA Isaac Sim 基于 Omniverse 平台构建,底层使用 PhysX 5 物理引擎。Isaac Lab(前身为 Orbit)是其上层的强化学习框架。
PhysX 5 的关键特性:
- GPU 加速的刚体、关节和接触模拟
- TGS (Temporal Gauss-Seidel) 迭代求解器,适合大规模并行
- 可配置的接触偏差 (contact offset) 和摩擦模型
- 支持可变形体 (soft body) 和流体模拟
Omniverse 渲染:基于 RTX 技术提供真实感渲染,支持 PBR (Physically Based Rendering) 材质、全局光照、光线追踪反射。这使得视觉策略的 sim-to-real 迁移成为可能。
Domain Randomization 工具:Isaac Lab 内置了系统化的域随机化 API,包括:
- 光照随机化(方向、颜色、强度)
- 材质随机化(粗糙度、金属度、纹理)
- 相机参数随机化(焦距、位姿噪声)
- 物理参数随机化(质量、摩擦、关节阻尼)
from omni.isaac.lab.envs import ManagerBasedRLEnv
from omni.isaac.lab.utils.noise import AdditiveUniformNoise
# 在 Isaac Lab 中配置域随机化
class MyEnvCfg:
class domain_rand:
# 质量随机化: ±20%
mass_randomization = {"range": [0.8, 1.2], "operation": "scale"}
# 摩擦随机化
friction_randomization = {"range": [0.5, 1.5], "operation": "scale"}
# 观察噪声
obs_noise = AdditiveUniformNoise(n_min=-0.05, n_max=0.05)
并行规模:在单张 RTX 4090 上可运行 4096 个机器人环境,在 A100 上可达 10000+ 个环境同时运行。
1.3 PyBullet
PyBullet 是 Bullet Physics SDK 的 Python 封装,由 Erwin Coumans 开发。其主要优势是开源免费、API 简洁、安装零依赖。接触求解采用 Sequential Impulse 方法。物理精度和 GPU 加速能力弱于 MuJoCo 和 Isaac Sim,但作为快速原型验证工具仍有价值。许多经典论文(如早期的 locomotion 工作)使用 PyBullet 作为实验平台。
1.4 Gazebo
Gazebo 是 ROS (Robot Operating System) 生态的标准仿真器,由 Open Robotics 维护。其核心价值在于与 ROS 的深度集成:传感器模型(LIDAR、IMU、相机)可以直接通过 ROS topic 发布数据,与真实硬件驱动程序接口一致。物理后端可选 ODE、Bullet 或 DART。新版 Gazebo (Ignition/Garden) 改进了渲染和 API,但在 GPU 并行化方面仍落后于 Isaac Sim。
1.5 Drake
Drake 由 MIT Robot Locomotion Group 开发,核心特色是数学优化驱动的机器人建模 (mathematical programming for robotics)。Drake 不仅是仿真器,也是一个控制器设计框架,内置了轨迹优化 (trajectory optimization)、LQR、MPC 等控制算法。其物理模拟基于 Lagrangian 力学的精确公式化,特别适合需要与控制理论紧密结合的场景(如操纵、抓取规划)。
1.6 仿真器对比表
| 特性 | MuJoCo | Isaac Sim/Lab | PyBullet | Gazebo | Drake |
|---|---|---|---|---|---|
| 物理精度 | 高(凸优化接触) | 中高(TGS迭代) | 中(Sequential Impulse) | 中(多后端可选) | 高(Lagrangian精确公式化) |
| GPU并行 | MJX(JAX后端) | 原生PhysX 5 GPU | 不支持 | 不支持 | 不支持 |
| 单GPU环境数 | 4000-8000 | 4096-10000+ | 1 | 1 | 1 |
| 渲染质量 | 低(简单OpenGL) | 高(RTX光线追踪) | 低 | 中(OGRE2) | 低(VTK) |
| 域随机化 | 需自行实现 | 内置完整工具链 | 需自行实现 | 有限 | 需自行实现 |
| ROS集成 | 非原生 | 支持 | 非原生 | 原生(核心优势) | 支持ROS2 |
| 开源 | 是(Apache 2.0) | 部分(Isaac Lab开源) | 是(zlib) | 是(Apache 2.0) | 是(BSD) |
| 典型用例 | RL训练、locomotion | 大规模RL、视觉策略 | 快速原型 | 系统集成测试 | 控制器设计、操纵规划 |
| 主要用户 | DeepMind, UC Berkeley | NVIDIA, Agility | 学术界广泛 | 工业/学术ROS项目 | MIT, TRI |
2. Sim-to-Real 迁移
2.1 Reality Gap 分析
Sim-to-Real 问题的核心是仿真环境与真实世界之间存在系统性偏差 (reality gap)。这些偏差来源于以下层面:
物理层偏差:
- 接触力学:真实世界中的接触面积、材料形变、微滑移等现象难以在仿真中精确建模
- 摩擦系数:真实表面的摩擦系数随温度、湿度、磨损状态变化,仿真中通常为固定值
- 关节动力学:真实电机存在齿轮间隙 (backlash)、摩擦、温升导致的参数漂移
- 柔性:电缆、皮带、软性材料的形变在刚体仿真中被忽略
感知层偏差:
- 相机渲染:仿真图像与真实图像在光照、纹理、阴影、运动模糊方面存在分布差异
- 传感器噪声:真实传感器存在时变噪声、偏置漂移、量化误差
- 时间延迟:真实系统中的通信延迟和计算延迟在仿真中通常被忽略
执行层偏差:
- 控制频率:真实系统受通信带宽限制,控制频率可能低于仿真频率
- 执行器响应:电机的转矩响应、液压系统的压力建立均有延迟
2.2 Domain Randomization (DR)
Domain Randomization 的核心思想是:如果训练分布足够广,真实世界就会落在训练分布以内。
2.2.1 物理域随机化 (Physical DR)
对物理参数施加随机扰动,使策略学会对参数不确定性保持鲁棒:
| 参数 | 典型随机化范围 | 分布 |
|---|---|---|
| 物体质量 | ±30% | 均匀分布 |
| 摩擦系数 | [0.3, 1.5] | 对数均匀分布 |
| 关节阻尼 | ±50% | 均匀分布 |
| 关节摩擦 | [0, 0.5] Nm | 均匀分布 |
| 接触刚度 | ±40% | 均匀分布 |
| 执行器延迟 | [0, 40] ms | 均匀分布 |
| 观察噪声 | ±5% 量程 | 高斯分布 |
| 外部扰动力 | [0, 10] N | 均匀分布 |
| 地面倾斜 | [-5°, 5°] | 均匀分布 |
| 连杆长度 | ±3% | 均匀分布 |
2.2.2 视觉域随机化 (Visual DR)
对渲染环境施加视觉变化:
| 参数 | 典型随机化方式 |
|---|---|
| 光照方向 | 球面均匀采样 |
| 光照颜色 | RGB 各通道 [0.5, 1.5] |
| 光照数量 | [1, 5] 个点光源 |
| 材质颜色 | RGB 随机 |
| 材质纹理 | 随机噪声纹理或数据库采样 |
| 背景 | COCO 数据集图像随机填充 |
| 相机位姿 | 位置 ±2cm,角度 ±3° |
| 相机参数 | 焦距 ±10%,畸变系数随机 |
| 后处理 | 亮度/对比度/饱和度/模糊 随机 |
OpenAI 在 Dactyl 项目中的实践表明,视觉 DR 与物理 DR 结合使用时效果最佳。单独的视觉 DR 可以让视觉编码器学到对外观变化不变的特征表示。
2.3 System Identification (SysID)
System Identification 采取相反的策略:不是让策略对所有参数鲁棒,而是精确估计真实系统的物理参数,使仿真尽可能逼近现实。
方法流程:
- 在真实系统上执行预定义轨迹(如关节空间正弦扫描)
- 记录输入指令与输出状态的时间序列
- 在仿真中搜索使仿真轨迹与真实轨迹之间误差最小的参数组合
- 通常使用 CMA-ES 或贝叶斯优化进行参数搜索
OpenAI Dactyl 方法:OpenAI 在训练灵巧手操作魔方时,结合了 DR 和 SysID。首先通过 SysID 确定参数分布的大致中心,然后在该中心周围施加 DR。这样既保证了训练分布覆盖真实参数,又避免了分布过宽导致策略过于保守。
真实系统参数估计 → 确定 DR 中心 → 以估计值为中心施加 DR → 训练策略
2.4 Rapid Motor Adaptation (RMA)
RMA 由 Ashish Kumar 等人在 2021 年提出,是目前 sim-to-real 迁移中最具影响力的方法之一。其核心思想是将适应 (adaptation) 从离线的域随机化转变为在线的实时参数估计。
架构:
┌─────────────────────────────────────────────────┐
│ Phase 1: 仿真训练 │
│ │
│ 环境参数 e_t ──→ [特权编码器μ] ──→ 特权嵌入 z_t │
│ │
│ 状态 s_t + z_t ──→ [策略网络π] ──→ 动作 a_t │
│ │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ Phase 2: 适应模块训练 │
│ │
│ 历史状态 [s_{t-k},...,s_t] ──→ [适应模块φ] │
│ ──→ 估计嵌入 ẑ_t │
│ │
│ 训练目标: minimize ||ẑ_t - z_t||² │
│ │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ Phase 3: 真实部署 │
│ │
│ 历史状态 ──→ [适应模块φ] ──→ ẑ_t │
│ 当前状态 s_t + ẑ_t ──→ [策略网络π] ──→ 动作 │
│ │
└─────────────────────────────────────────────────┘
训练过程:
- Phase 1:在仿真中使用 PPO 训练策略。策略网络接收当前状态 s_t 和特权信息编码 z_t(由环境参数 e_t 通过编码器得到)。特权信息包括地面摩擦、质量、外部扰动等真实部署时不可观测的量。
- Phase 2:冻结策略网络,训练适应模块 (adaptation module)。适应模块是一个时序网络(1D CNN 或 TCN),输入最近 k 步的状态历史,输出对特权嵌入 z_t 的估计 ẑ_t。训练目标是最小化 ẑ_t 与 z_t 之间的 L2 距离。
- Phase 3:部署时丢弃特权编码器,仅使用适应模块从状态历史中在线估计 ẑ_t,输入策略网络产生动作。
效果:RMA 在四足行走任务中实现了对未见过的地形(草地、碎石、楼梯)的零样本适应。策略在部署时不需要任何 fine-tuning 即可适应新环境。
2.5 RAPP (Robot Adaptation via Proprioceptive Priors)
RAPP 扩展了 RMA 的思路,引入本体感觉先验 (proprioceptive priors) 来约束适应模块的输出空间。在 RMA 中,适应模块的输出是无约束的向量;在 RAPP 中,适应模块的输出被结构化为与物理参数直接对应的有意义量(如估计的质量、摩擦、地形坡度)。这使得适应过程可解释,且在分布外场景中表现更稳定。
2.6 Teacher-Student Distillation
Teacher-Student 蒸馏是 sim-to-real 的另一种主流范式:
Teacher(仿真中训练,使用特权信息)
│
│ 蒸馏(行为克隆)
↓
Student(仅使用部署时可用的信息)
流程:
- 在仿真中训练 Teacher 策略,Teacher 可以访问所有仿真内部状态(精确的物体位姿、接触力、环境参数)
- 使用 Teacher 策略收集大量轨迹
- 训练 Student 策略模仿 Teacher 的行为,但 Student 只能使用部署时可用的传感器输入(如关节编码器、IMU、相机图像)
- Student 策略直接部署到真实机器人
与 RMA 的区别在于:RMA 保留了 RL 训练的策略结构,仅替换了特权信息获取方式;Teacher-Student 蒸馏可以完全改变 Student 的输入模态(例如 Teacher 用精确物体位姿,Student 用相机图像)。
3. 模仿学习 (Imitation Learning)
模仿学习的目标是从专家演示中学习策略,无需设计奖励函数。
3.1 Behavioral Cloning (BC)
形式化:给定专家演示数据集 D = {(s_i, a_i)}_{i=1}^N,Behavioral Cloning 将策略学习转化为监督学习问题:
minimize 𝔼_{(s,a)~D} [L(π_θ(s), a)]
其中 L 可以是 MSE loss(连续动作)或 cross-entropy loss(离散动作)。
分布偏移问题 (Distribution Shift / Compounding Errors):
BC 的核心缺陷是复合误差。在训练时,策略看到的状态来自专家分布 d_expert。在测试时,策略的微小偏差导致状态偏离专家分布,进入策略从未见过的状态区域。此时策略的行为不可预测,进一步偏离正确轨迹,误差以 O(T²) 的速率增长(T 为轨迹长度)。
时间步 t=0: 策略在专家分布内,误差 ε
时间步 t=1: 累计偏差 ~2ε,仍可能在专家分布内
时间步 t=k: 累计偏差 ~kε,可能已离开专家分布
→ 策略输出不可预测 → 偏差加速增长
这意味着 BC 策略的性能对演示数据的覆盖度极为敏感。在长时间序列任务中,BC 通常需要大量数据才能稳定工作。
3.2 DAgger (Dataset Aggregation)
DAgger 由 Stéphane Ross 等人在 2011 年提出,通过迭代式数据聚合解决分布偏移问题:
算法: DAgger
输入: 专家策略 π*, 初始数据集 D_0
For i = 1, 2, ..., N:
1. 使用当前策略 π_i 采集轨迹 τ_i
2. 对 τ_i 中每个状态 s_t,查询专家标签 a* = π*(s_t)
3. 将 (s_t, a*) 加入数据集: D_i = D_{i-1} ∪ {(s_t, a*)}
4. 在 D_i 上重新训练策略: π_{i+1} = argmin L(π, D_i)
Return: 最优策略 π*_i
关键创新:在策略执行过程中遇到的状态上获取专家标签,使训练分布逐渐覆盖策略实际会遇到的状态空间。理论上,DAgger 可以将误差增长从 O(T²) 降低到 O(T)。
局限:需要在线查询专家,这在机器人场景中意味着需要人类操作员持续在线标注。
3.3 ACT (Action Chunking with Transformers)
ACT 由 Tony Zhao 等人(Stanford)在 2023 年提出,是近年模仿学习领域最具影响力的方法之一。
核心架构:
┌─────────────────────────────────────────────────────┐
│ ACT 架构 │
│ │
│ 训练时: │
│ ┌──────┐ ┌──────────┐ ┌────────────────┐ │
│ │动作序列│──→│ CVAE │──→ │ 潜在变量 z │ │
│ │a_{t:t+k}│ │ Encoder │ │ (style code) │ │
│ └──────┘ └──────────┘ └───────┬────────┘ │
│ │ │
│ ┌──────────┐ ↓ │
│ │观察 o_t │──→ ┌──────────────────────────┐ │
│ │(图像+关节)│ │ Transformer Decoder │ │
│ └──────────┘──→ │ + Cross-attention │ │
│ │ → 预测 â_{t:t+k} │ │
│ └──────────────────────────┘ │
│ │
│ 推理时: │
│ z ~ N(0, I) (丢弃 CVAE Encoder) │
│ 观察 o_t + z ──→ Transformer ──→ â_{t:t+k} │
│ │
└─────────────────────────────────────────────────────┘
CVAE (Conditional Variational Autoencoder) 的作用:对于相同的观察,专家可能有多种合理的行为模式(例如从左边绕过障碍物或从右边绕过)。CVAE 通过潜在变量 z 捕获这种多模态性。训练时 z 由动作序列编码得到;推理时 z 从先验分布采样。
Action Chunking 机制:策略不是预测单步动作 a_t,而是一次预测未来 k 步的动作序列 a_{t:t+k}(论文中 k=100,对应约 1 秒)。这带来两个好处:
- 减少决策频率,降低复合误差的影响
- 输出的时序一致性更好,避免了逐帧决策导致的抖动
执行方式:在执行时采用 temporal ensembling。每个时间步都有多个 chunk 的预测重叠(来自不同时间步发出的 chunk),最终动作通过指数加权平均计算:
# Temporal Ensembling
weights = [exp(-m * w) for w in range(num_overlapping_chunks)]
action_t = weighted_average(all_predictions_for_t, weights)
在 ALOHA 平台上的结果:ACT 在双臂灵巧操作任务上取得了当时最优的模仿学习性能,使用 50 条人类演示即可学会插入充电器、折叠衣物等精细任务。
3.4 示教数据收集系统
3.4.1 ALOHA / ALOHA 2
ALOHA (A Low-cost Open-source Hardware System for Bimanual Teleoperation) 由 Stanford 开发:
- 4 个 ViperX 300s 6-DOF 机械臂(2 个 leader + 2 个 follower)
- 总成本约 $20,000
- Leader 机械臂通过关节位置映射控制 Follower 机械臂
- 操作者直接移动 Leader 臂,Follower 臂实时跟随
- 数据收集频率:50 Hz
ALOHA 2 的改进:
- 增加了触觉反馈
- 改进了夹爪设计
- 增加了更多相机视角
- 提高了关节分辨率
3.4.2 Mobile ALOHA
在 ALOHA 基础上增加了移动底盘 (AgileX Tracer),使双臂系统具备移动能力。这使得数据收集可以覆盖需要导航和操作协同的任务(如推开门走进去、从冰箱取物品)。操作者通过脚踏板控制底盘运动,同时双手操控 Leader 臂。
3.4.3 UMI (Universal Manipulation Interface)
UMI 由 Cheng Chi 等人(Columbia)开发。核心创新是将数据收集与特定机器人硬件解耦:
- 使用手持夹爪工具收集演示数据
- 夹爪上安装 GoPro 相机和 IMU
- 通过 SLAM 追踪夹爪的 6-DOF 位姿
- 收集的数据可以重映射到任意机器人平台执行
手持工具(便宜、直觉性强)→ 位姿轨迹 → 重映射 → 机器人执行
这大幅降低了数据收集的门槛:不需要遥操作系统,不需要机器人硬件在场。任何人拿着手持工具就能收集高质量的操作演示。
3.4.4 遥操作系统 (Teleoperation)
| 系统类型 | 代表 | 特点 | 适用场景 |
|---|---|---|---|
| 关节映射 | ALOHA | 1:1 关节位置映射,直觉性强 | 双臂精细操作 |
| VR控制器 | Meta Quest + ROS | 6-DOF 位姿跟踪,手柄触发夹爪 | 单臂操作 |
| 外骨骼 | Dexterous Robotics | 手指级别映射,力反馈 | 灵巧手操作 |
| 手套 | Manus VR Glove | 手指弯曲角度传感 | 灵巧手数据收集 |
| 视觉重定向 | Holo-Dex | 从人手视频提取灵巧手动作 | 无需硬件的数据收集 |
3.5 数据规模化法则 (Data Scaling Laws)
机器人学习中的 scaling law 与 NLP 不同。已有实验表明:
- 量的 scaling:在 RT-1 的实验中,从 100 个演示增加到 130,000 个演示,成功率从 ~30% 提升到 ~97%。但收益递减明显:前 10,000 个演示的边际收益远高于后 100,000 个。
- 多样性 scaling:任务多样性的增加比单任务数据量的增加更重要。在 Open X-Embodiment 的实验中,跨具身形态的数据混合训练比同等数据量的单形态训练效果更好。
- 质量 scaling:低质量演示(如有噪声的遥操作数据)的边际收益显著低于高质量演示。ACT 论文表明 50 条高质量演示可以比 500 条低质量演示效果更好。
4. 扩散策略 (Diffusion Policy)
扩散策略是 2023 年以来机器人学习领域最重要的方法论创新之一。由 Cheng Chi 等人(Columbia)提出,将去噪扩散概率模型 (DDPM) 应用于机器人动作生成。
4.1 DDPM 背景
前向过程 (Forward Process):逐步向数据 x_0 添加高斯噪声,经过 T 步后变为纯噪声 x_T ~ N(0, I)。
q(x_t | x_{t-1}) = N(x_t; √(1-β_t) * x_{t-1}, β_t * I)
其中 β_t 是噪声调度 (noise schedule)。定义 α_t = 1 - β_t, ᾱ_t = ∏_{s=1}^{t} α_s,可以直接计算任意时间步的噪声版本:
q(x_t | x_0) = N(x_t; √ᾱ_t * x_0, (1-ᾱ_t) * I)
即:x_t = √ᾱ_t * x_0 + √(1-ᾱ_t) * ε, 其中 ε ~ N(0, I)
反向过程 (Reverse Process):训练一个噪声预测网络 ε_θ(x_t, t) 来预测 x_t 中的噪声分量。训练目标:
L = 𝔼_{t, x_0, ε} [||ε - ε_θ(x_t, t)||²]
推理时从纯噪声 x_T 出发,迭代去噪:
x_{t-1} = (1/√α_t) * (x_t - (β_t/√(1-ᾱ_t)) * ε_θ(x_t, t)) + σ_t * z
4.2 为什么扩散模型适合动作生成
多模态动作分布 (Multimodal Action Distributions):
机器人操作中经常存在多个同样合理的动作模式。例如,绕过障碍物可以走左边也可以走右边。传统方法的问题:
| 方法 | 多模态处理 | 问题 |
|---|---|---|
| MSE回归 | 输出均值 | 模式平均:预测左右两条路的中间位置(撞上障碍物) |
| GMM | 显式混合 | 需要预设混合数量,高维空间中难以扩展 |
| CVAE | 潜在变量采样 | 后验塌缩 (posterior collapse),训练不稳定 |
| 扩散模型 | 隐式表达 | 天然支持任意形状的分布,无模式平均问题 |
扩散模型通过迭代去噪过程,可以从同一个噪声起点”分流”到不同的模态峰值,无需显式建模模态数量。
无模式平均 (No Mode Averaging):扩散模型的目标函数是对每个数据点独立的噪声预测,不会将两个不同模态的数据点”拉到一起”。最终的分布由去噪轨迹的几何结构决定,天然支持多峰分布。
4.3 Diffusion Policy 的具体实现
输入输出定义:
- 条件 (condition): 观察序列 O_t = {o_{t-T_o+1}, …, o_t}(包含图像和/或关节状态)
- 输出: 未来动作序列 A_t = {a_t, a_{t+1}, …, a_{t+T_a-1}}(action chunk)
- T_o = 观察历史长度(通常 2-3 帧)
- T_a = 动作预测长度(通常 8-16 步)
CNN-based 架构 (1D Temporal CNN):
┌──────────────────────────────────────────────────────┐
│ CNN-based Diffusion Policy │
│ │
│ 观察编码: │
│ 图像 o_t ──→ [ResNet-18 / ViT] ──→ obs_embedding │
│ │
│ 去噪网络 ε_θ: │
│ ┌──────────────────────────────────────────┐ │
│ │ 输入: concat(noisy_action_t, obs_emb, t_emb)│ │
│ │ │ │
│ │ 1D Conv Block (kernel=5, groups=8) │ │
│ │ ↓ │ │
│ │ 1D Conv Block (kernel=5, groups=8) │ │
│ │ ↓ │ │
│ │ ... (4-6 层 residual blocks) │ │
│ │ ↓ │ │
│ │ 输出: predicted_noise (same shape as input)│ │
│ └──────────────────────────────────────────┘ │
│ │
│ FiLM conditioning: │
│ 时间步 t ──→ sinusoidal embedding ──→ MLP ──→ γ, β │
│ features = γ * features + β │
│ │
└──────────────────────────────────────────────────────┘
Transformer-based 架构:
┌──────────────────────────────────────────────────────┐
│ Transformer-based Diffusion Policy │
│ │
│ 输入 tokens: │
│ [obs_token_1, ..., obs_token_T_o, │
│ noisy_action_1, ..., noisy_action_T_a] │
│ │
│ 位置编码: sinusoidal (时间步 t 作为额外条件) │
│ │
│ Transformer: │
│ - Self-attention over all tokens │
│ - 交替的 self-attention 和 cross-attention │
│ - t embedding 通过 AdaLN (Adaptive Layer Norm) 注入 │
│ │
│ 输出: predicted_noise for action tokens only │
│ │
└──────────────────────────────────────────────────────┘
CNN 变体推理更快(适合实时控制),Transformer 变体在长序列和复杂任务上表现更好。
4.4 训练流程
# Diffusion Policy 训练伪代码
def train_step(batch):
obs = batch['observations'] # (B, T_o, obs_dim) 或图像
actions = batch['actions'] # (B, T_a, action_dim)
# 编码观察
obs_emb = obs_encoder(obs) # (B, emb_dim)
# 采样随机时间步
t = torch.randint(0, T, (B,))
# 前向扩散:向动作序列添加噪声
noise = torch.randn_like(actions)
alpha_bar_t = alpha_bar_schedule[t]
noisy_actions = sqrt(alpha_bar_t) * actions + sqrt(1 - alpha_bar_t) * noise
# 预测噪声
predicted_noise = noise_net(noisy_actions, obs_emb, t)
# 损失: MSE between predicted and actual noise
loss = F.mse_loss(predicted_noise, noise)
return loss
4.5 推理流程
# Diffusion Policy 推理伪代码
def predict_action(obs):
obs_emb = obs_encoder(obs)
# 从纯噪声开始
action_t = torch.randn(1, T_a, action_dim) # x_T
# 迭代去噪 (DDPM sampler, T步)
for t in reversed(range(T)):
predicted_noise = noise_net(action_t, obs_emb, t)
# DDPM 去噪公式
action_t = (1/sqrt(alpha[t])) * (
action_t - (beta[t] / sqrt(1 - alpha_bar[t])) * predicted_noise
)
if t > 0:
action_t += sqrt(beta[t]) * torch.randn_like(action_t)
return action_t # 去噪完成的动作序列
推理速度问题:标准 DDPM 需要 T=100 步去噪迭代,每步需要一次网络前向传播。在控制频率为 10-50 Hz 的机器人系统中,这意味着推理延迟过高。解决方案包括:DDIM (减少到 10-20 步)、Consistency Policy (单步推理)、Flow Matching。
4.6 Consistency Policy
Consistency Policy 由 Prasann Singhal 等人提出,将扩散模型蒸馏为单步推理模型。
核心思想:Consistency Model (Song et al., 2023) 训练一个函数 f_θ,使得沿同一条去噪轨迹上的所有点都映射到相同的终点:
f_θ(x_t, t) = f_θ(x_s, s) 对于所有 t, s 在同一条轨迹上
应用于 Diffusion Policy:
- 先训练标准 Diffusion Policy
- 使用 Consistency Distillation 将其蒸馏为单步模型
- 推理时仅需一次前向传播即可从噪声直接得到动作
效果:推理速度提升 10-100 倍(从 100 步减少到 1-2 步),性能损失通常在 5% 以内。这使得 Diffusion Policy 可以在高频控制场景(如灵巧操作)中实际部署。
4.7 Flow Matching
Flow Matching 提供了一种比 DDPM 更简洁的生成模型形式化。在扩散模型中,前向过程是随机的(加噪声);Flow Matching 将其替换为确定性的流 (flow)。
形式化:定义从噪声分布 p_0 = N(0, I) 到数据分布 p_1 = p_data 的连续时间流:
dx/dt = v_θ(x, t) t ∈ [0, 1]
其中 v_θ 是学习的速度场 (velocity field)。训练目标是让 v_θ 匹配将噪声样本 x_0 线性移动到数据样本 x_1 的最优路径:
最优传输路径: x_t = (1-t) * x_0 + t * x_1
对应速度场: u_t(x | x_0, x_1) = x_1 - x_0
训练目标: L = 𝔼_{t, x_0, x_1} [||v_θ(x_t, t) - (x_1 - x_0)||²]
与 DDPM 的关系:Flow Matching 的最优传输路径是直线,而 DDPM 的去噪路径是曲线。直线路径意味着:
- 更少的推理步数(ODE 求解器在直线路径上收敛更快)
- 更稳定的训练(没有复杂的噪声调度)
- 与 π0 (Physical Intelligence) 的架构直接对接
与 π0 的关系:π0 使用 Flow Matching 作为动作生成的底层框架。选择 Flow Matching 而非 DDPM 的原因包括:训练更稳定、推理步数更少(通常 5-10 步即可)、与 Transformer 架构的组合更自然。
4.8 Diffusion Policy 的完整训练管线
数据采集 → 数据预处理 → 模型训练 → 推理优化 → 部署
1. 数据采集:
- 使用 ALOHA/UMI 等系统收集 50-200 条演示
- 每条演示包含: 多视角图像 + 关节位置/速度 + 夹爪状态
- 数据频率: 通常 10-50 Hz
2. 数据预处理:
- 动作归一化到 [-1, 1] 范围
- 图像 resize 到 224x224 或 84x84
- 滑动窗口切分为 (observation_chunk, action_chunk) 对
- 数据增强: 图像随机裁剪、颜色抖动
3. 模型训练:
- 观察编码器: ResNet-18 (pretrained on ImageNet) 或 ViT
- 去噪网络: 1D CNN (ConditionalUnet1D) 或 Transformer
- 优化器: AdamW, lr=1e-4, weight_decay=1e-6
- 训练步数: 通常 100k-500k steps
- Batch size: 64-256
- EMA (Exponential Moving Average): decay=0.9999
4. 推理优化:
- DDIM sampler: 将 100 步减少到 10-16 步
- 或 Consistency Distillation: 减少到 1-2 步
- 观察编码器可提前计算并缓存
5. 部署:
- Action chunk 长度: 8-16 步
- 执行方式: temporal ensembling 或 执行完一个 chunk 再生成下一个
- 控制频率: 10-50 Hz(取决于推理速度和任务需求)
5. 强化学习 for Robotics
5.1 核心算法选择
| 算法 | 类型 | 适用场景 | 关键特点 |
|---|---|---|---|
| PPO | On-policy, Actor-Critic | Locomotion, 高维连续控制 | 稳定、可大规模并行、clip机制限制更新幅度 |
| SAC | Off-policy, Actor-Critic | 操作、精细控制 | 最大熵框架、自动温度调节、样本效率高 |
| TD3 | Off-policy, Actor-Critic | 连续控制基准 | 双Q网络、延迟策略更新、噪声平滑 |
何时使用哪个:
- PPO:首选用于 locomotion(行走、跑步、跳跃)。原因:这类任务的状态空间虽然高维但相对平滑,PPO 的 on-policy 特性保证了训练稳定性。配合 Isaac Lab 的大规模并行(10000+ 环境),PPO 的样本效率问题被硬件并行弥补。
- SAC:首选用于操作任务 (manipulation),特别是需要从少量真实数据中学习时。原因:off-policy 方法可以重用历史数据(高样本效率),最大熵框架鼓励探索(避免在操作任务的复杂接触空间中过早收敛)。
- TD3:SAC 的前身,在某些需要确定性策略的场景中仍有用。但在大多数现代机器人学习工作中已被 SAC 取代。
5.2 奖励设计 (Reward Design)
稀疏奖励 vs 密集奖励:
稀疏奖励 (Sparse):
r(s, a) = 1 if task_completed
r(s, a) = 0 otherwise
密集奖励 (Dense):
r(s, a) = w1 * distance_to_goal
+ w2 * velocity_reward
+ w3 * orientation_reward
+ w4 * energy_penalty
+ w5 * contact_penalty
+ ...
稀疏奖励的问题:在高维动作空间中,随机探索几乎不可能触发成功条件。例如,让人形机器人站起来,如果只在完全站立时给奖励,初始随机策略可能永远无法获得正反馈。
密集奖励的陷阱 (Reward Shaping Pitfalls):
- 局部最优:过度塑形的奖励可能引导策略进入非自然行为。例如,locomotion 中如果过度奖励前进速度,机器人可能学会”滑步”而非真正行走。
- 奖励黑客 (Reward Hacking):智能体发现了获取高奖励但不符合设计意图的行为。经典案例:给关节扭矩惩罚以鼓励节能行走,智能体学会了”摔倒并滑行”(零扭矩但前进了)。
- 权重敏感:多目标奖励中各项权重的选择对最终行为影响极大,需要大量人工调试。
现代最佳实践:
# ANYmal locomotion 奖励设计示例 (ETH Zurich)
def compute_reward(state, action, next_state):
# 正向奖励
forward_vel_reward = clip(forward_velocity, 0, target_vel)
# 惩罚项
torque_penalty = -0.0001 * sum(torques ** 2)
action_rate_penalty = -0.01 * sum((action - prev_action) ** 2)
collision_penalty = -1.0 * (any_body_collision)
orientation_penalty = -0.5 * (abs(roll) + abs(pitch))
joint_limit_penalty = -10.0 * (any_joint_at_limit)
# 步态奖励 (鼓励自然步态)
feet_air_time_reward = sum(clip(air_time - 0.5, 0, inf))
total = (forward_vel_reward
+ torque_penalty
+ action_rate_penalty
+ collision_penalty
+ orientation_penalty
+ joint_limit_penalty
+ feet_air_time_reward)
return total
5.3 大规模并行训练 (Massively Parallel Training)
Isaac Lab 和 MJX 实现了单 GPU 上数千至上万个环境的并行模拟,将 RL 训练时间从天级缩短到分钟级。
计算流程:
┌──────────────────────────────────────────────┐
│ 单 GPU 大规模并行 RL 训练 │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │Env 0 │ │Env 4095 │ │
│ │state_0 │... │state_4095│ ← GPU 并行物理 │
│ └────┬─────┘ └────┬─────┘ │
│ │ │ │
│ ↓ ↓ │
│ ┌──────────────────────────┐ │
│ │ 批量观察 (4096, obs_dim)│ │
│ └────────────┬─────────────┘ │
│ ↓ │
│ ┌──────────────────────────┐ │
│ │ 策略网络 (GPU forward) │ │
│ └────────────┬─────────────┘ │
│ ↓ │
│ ┌──────────────────────────┐ │
│ │ 批量动作 (4096, act_dim)│ │
│ └────────────┬─────────────┘ │
│ ↓ │
│ ┌──────────────────────────┐ │
│ │ GPU 并行 env.step() │ │
│ └──────────────────────────┘ │
│ │
│ 关键: 所有数据始终在 GPU 上, 零 CPU-GPU 传输 │
└──────────────────────────────────────────────┘
典型性能数据:
- ANYmal 四足行走 (Isaac Lab, RTX 4090): 4096 环境, PPO 训练到收敛约需 20 分钟
- Humanoid locomotion (MJX, A100): 8192 环境, 训练到跑步约需 10 分钟
- Dexterous manipulation (Isaac Lab, A100): 10000+ 环境, 训练到 Rubik’s cube 约需数小时
5.4 Curriculum Learning
Curriculum Learning 通过逐步增加任务难度来引导学习过程。
ANYmal 地形适应 (ETH Zurich, Rudin et al. 2022):
课程设计:
Level 0: 平坦地面
Level 1: 小幅高度变化 (±2cm)
Level 2: 中等坡度 (5-10°) + 台阶 (5cm)
Level 3: 陡坡 (15-20°) + 高台阶 (10cm) + 缝隙
Level 4: 离散踏脚石 + 楼梯 + 随机障碍物
Level 5: 极端地形 (单腿平衡、攀爬)
晋级规则:
- 每个环境独立追踪当前 level
- 连续 N 步 episode 成功完成 → level + 1
- 连续 M 步 episode 失败 → level - 1
- 环境 reset 时随机采样当前 level 对应的地形参数
这种自适应课程确保了训练前期不浪费时间在过难的任务上(会导致稀疏奖励和低效探索),同时训练后期不会在已掌握的简单任务上浪费时间。
5.5 Residual RL
Residual RL 在已有的基础控制器之上叠加一个 RL 策略,用于修正和增强基础行为:
最终动作 = 基础控制器输出 + RL 残差策略输出
a_total = a_base(s) + π_residual(s)
动机:许多机器人任务已有传统控制器(PID、MPC、运动规划器),但这些控制器在面对不确定性和非结构化环境时性能退化。Residual RL 不需要从零学习完整行为,只需要学习修正传统控制器的不足。
优势:
- 需要的训练数据量远少于从零 RL
- 基础行为保证了安全性底线(RL 残差被限制在一定范围内)
- 可以结合模仿学习的基础策略和 RL 的在线适应
典型应用:
- 在模仿学习得到的基础策略上叠加 residual RL 来处理分布外场景
- 在 MPC 控制器上叠加 RL 来补偿模型误差
6. 机器人基础模型 (Robot Foundation Models)
机器人基础模型的核心目标是:通过在大规模多任务、多形态数据上预训练,获得可以迁移到新任务和新机器人的通用能力。
6.1 RT-1 (Robotics Transformer 1)
由 Google DeepMind 于 2022 年提出。
架构:
┌───────────────────────────────────────────────────┐
│ RT-1 架构 │
│ │
│ 输入: │
│ - 图像: 6 张相机图 (300x300) → FiLM-EfficientNet │
│ - 语言指令: "pick up the red block" │
│ → Universal Sentence Encoder → 语言嵌入 │
│ │
│ 图像特征 + 语言嵌入 → TokenLearner (8 tokens) │
│ │
│ 8 tokens → Transformer (8 layers, 自回归) │
│ │
│ 输出: 离散化动作 token │
│ - 7-DOF arm movement (每维度 256 bins) │
│ - Gripper open/close │
│ - Base movement (x, y, yaw) │
│ - Terminate episode (yes/no) │
│ │
│ 动作离散化: 连续空间均匀分为 256 个 bin │
│ 每个维度独立离散化, 总输出为多分类问题 │
│ │
└───────────────────────────────────────────────────┘
训练数据规模:
- 130,000 条机器人演示
- 700+ 不同任务(抓取、放置、推动、开关抽屉等)
- 13 个月持续收集
- 13 台真实机器人并行数据采集
关键结果:
- 在已见任务上成功率 97%
- 在新物体/新背景上泛化成功率 76%
- 当结合 SayCan 语言规划器时可执行长序列任务
6.2 RT-2 (Vision-Language-Action Model)
RT-2 是第一个 VLA (Vision-Language-Action) 模型,将视觉语言模型 (VLM) 直接 fine-tune 为机器人策略。
核心创新:将机器人动作编码为文本 token,从而可以直接利用预训练 VLM 的视觉理解和语言推理能力。
┌───────────────────────────────────────────────────┐
│ RT-2 架构 │
│ │
│ 基础模型: PaLI-X (55B) 或 PaLM-E (12B) │
│ │
│ 输入: │
│ - 图像 (同 VLM 输入格式) │
│ - 语言指令: "move the apple to the plate" │
│ │
│ 输出 (作为文本生成): │
│ "1 128 91 241 5 101 127" │
│ ↓ ↓ ↓ ↓ ↓ ↓ ↓ │
│ terminate, x, y, z, rx, ry, rz (discretized) │
│ │
│ 动作被编码为整数字符串 │
│ 每个维度映射到 [0, 255] 的整数 │
│ VLM 将动作预测视为"下一个 token 预测" │
│ │
└───────────────────────────────────────────────────┘
为什么有效:VLM 在互联网规模数据上学到了丰富的视觉语义理解和常识推理能力。通过将动作嵌入到 VLM 的输出空间中,机器人可以继承这些能力。例如,VLM 理解”apple”的视觉概念和”plate”的功能概念,这些知识迁移到了机器人策略中。
结果:
- 在需要语义理解的任务上(如”把垃圾扔进垃圾桶”)泛化能力显著优于 RT-1
- 对新物体和新指令的 zero-shot 泛化能力提升 2-3 倍
- 展示了 emergent 的推理能力(如推断物体属性:把最重的物体移到左边)
6.3 OpenVLA
OpenVLA 是由 Stanford 和 UC Berkeley 联合开发的开源 VLA 模型。
架构:
- 基础模型:Prismatic VLM (基于 LLaVA 架构)
- 视觉编码器:SigLIP + DinoV2 (双视觉编码器融合)
- 语言模型:Llama 2 7B
- 动作输出:离散化为 256 bin 的 token(与 RT-2 相同范式)
- 总参数量:7B
训练数据:
- Open X-Embodiment 数据集(970k 条轨迹)
- 覆盖 22 种不同机器人形态
- 混合训练:机器人数据 + VQA 数据(保持语言能力)
开源价值:
- 完整的训练代码和权重公开
- 支持在自定义数据上 fine-tuning
- 推理可在单张消费级 GPU 上运行
- 为社区提供了可复现的 VLA 基准
6.4 π0 (Physical Intelligence)
π0 由 Physical Intelligence 公司(由 Sergey Levine, Chelsea Finn, Karol Hausman 等人创立)于 2024 年发布,是当前最前沿的机器人基础模型。
核心架构:
┌───────────────────────────────────────────────────────┐
│ π0 架构 │
│ │
│ 预训练 VLM backbone (PaliGemma 或类似) │
│ │ │
│ ↓ │
│ ┌─────────────────────────────────────────────┐ │
│ │ 混合专家 (Mixture of Experts) │ │
│ │ │ │
│ │ Robot Token Expert ←── 处理动作相关计算 │ │
│ │ Vision Token Expert ←── 处理视觉特征 │ │
│ │ Language Token Expert ←── 处理语言指令 │ │
│ │ │ │
│ │ 路由网络决定每个 token 由哪个 expert 处理 │ │
│ └─────────────────────────────────────────────┘ │
│ │ │
│ ↓ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Flow Matching Action Head │ │
│ │ │ │
│ │ 输入: VLM 输出的 action embedding │ │
│ │ 过程: 连续时间 ODE, v_θ(x_t, t) = dx/dt │ │
│ │ 输出: 连续动作序列 (非离散化) │ │
│ │ │ │
│ │ 推理: 5-10 步 ODE 求解 │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ 关键设计选择: │
│ 1. 动作不离散化为 token, 使用 Flow Matching 连续生成 │
│ 2. 多具身形态: 同一模型支持多种机器人 │
│ 3. MoE 允许不同模态的计算隔离 │
│ │
└───────────────────────────────────────────────────────┘
与 RT-2 的关键差异:
- RT-2 将动作离散化为文本 token → π0 使用 Flow Matching 生成连续动作
- RT-2 使用单一 Transformer → π0 使用 MoE 架构分离不同模态
- RT-2 仅在一种机器人上训练 → π0 在多种机器人形态上联合训练
Flow Matching 的优势:连续动作空间上的 Flow Matching 避免了离散化带来的精度损失,对于需要毫米级精度的操作任务尤为重要。
训练数据:多具身形态的混合数据,包括单臂、双臂、移动操作等不同形态的机器人。具体数据规模未完全公开。
6.5 Octo
Octo 由 UC Berkeley 主导开发,是一个开源的多任务多形态机器人策略模型。
设计特点:
- 可接受任意数量和组合的输入模态(图像、关节状态、语言指令)
- 可输出适应不同机器人的动作空间
- 基于 Transformer 架构,支持可变长度输入
- 使用 Diffusion Action Head 生成动作
训练数据:Open X-Embodiment 数据集的子集,覆盖多种机器人形态。
使用方式:
- 加载预训练 Octo 模型
- 在目标机器人上收集少量演示(~50 条)
- Fine-tune action head 以适应新机器人的动作空间
- 部署
6.6 RoboFlamingo
RoboFlamingo 将 Flamingo (多模态 few-shot learner) 的架构应用于机器人学习。通过 Perceiver Resampler 处理多帧视觉输入,结合语言指令生成动作。主要贡献在于展示了大规模视觉语言预训练对机器人学习的迁移价值。
6.7 关键技术趋势
预训练 → 微调 (Pretraining → Finetuning):
- Stage 1: 在大规模混合数据上预训练(获得通用视觉理解和运动先验)
- Stage 2: 在目标任务的少量数据上微调(适应具体场景和机器人)
- 这与 NLP/CV 中的 foundation model 范式一致
动作表示:离散化 vs 连续回归:
| 方法 | 代表 | 优势 | 劣势 |
|---|---|---|---|
| 离散化 Token | RT-1, RT-2, OpenVLA | 可直接复用 LLM 架构和训练基础设施 | 精度受限于 bin 数量,高维动作空间 token 数爆炸 |
| 连续回归 (MSE) | 早期 BC 方法 | 精度无限制 | 无法表达多模态分布 |
| Diffusion/Flow | π0, Octo | 连续+多模态,精度高 | 推理慢(需多步迭代) |
跨具身形态迁移 (Cross-Embodiment Transfer):
- 核心假设:不同机器人在执行相似任务时共享底层的视觉理解和策略逻辑
- 实现方式:通用视觉/语言编码器 + 形态特定的 action decoder
- 证据:Open X-Embodiment 实验表明混合训练优于单形态训练
6.8 机器人基础模型对比表
| 模型 | 参数量 | 训练数据 | 支持形态 | 动作表示 | 开源 | 发布时间 |
|---|---|---|---|---|---|---|
| RT-1 | 35M | 130k demos, 700 tasks | 1 (单臂) | 离散 token (256 bins) | 否 | 2022.12 |
| RT-2 | 55B (PaLI-X) | RT-1 数据 + VLM 预训练 | 1 (单臂) | 离散 token (256 bins) | 否 | 2023.07 |
| OpenVLA | 7B | 970k trajectories (OXE) | 22种 | 离散 token (256 bins) | 是 | 2024.06 |
| π0 | 未公开 (估计 3-10B) | 多源混合 | 多种 (单臂/双臂/移动) | Flow Matching (连续) | 否 | 2024.10 |
| Octo | 93M | OXE 子集 | 多种 | Diffusion Head | 是 | 2024.05 |
| RoboFlamingo | ~3B | Calvin benchmark + OXE | 多种 | 连续回归 | 是 | 2023.11 |
| RT-H | 55B | RT-2 数据 + human corrections | 1 | 离散 token | 否 | 2024.03 |
| GR-1 | ~1B | 视频预训练 + 机器人数据 | 人形 | 连续回归 | 否 | 2024.03 |
7. 世界模型 (World Models)
世界模型学习环境的预测动力学:给定当前状态和动作,预测下一个状态。在机器人学习中,世界模型使规划和决策可以在”想象”中进行,减少对真实世界交互的依赖。
7.1 DreamerV3
DreamerV3 (Hafner et al., 2023) 是目前最先进的基于模型的 RL 方法。
RSSM (Recurrent State-Space Model) 架构:
┌────────────────────────────────────────────────────┐
│ RSSM 世界模型 │
│ │
│ 状态由两部分组成: │
│ - 确定性状态 h_t (RNN 隐藏状态, 编码长期历史) │
│ - 随机性状态 z_t (离散潜变量, 编码当前不确定性) │
│ │
│ 转移模型: h_t = f(h_{t-1}, z_{t-1}, a_{t-1}) │
│ 先验模型: z_t ~ p(z_t | h_t) │
│ 后验模型: z_t ~ q(z_t | h_t, o_t) │
│ 观察解码器: ô_t = decode(h_t, z_t) │
│ 奖励预测器: r̂_t = reward_head(h_t, z_t) │
│ 终止预测器: done_t = continue_head(h_t, z_t) │
│ │
│ DreamerV3 的关键改进: │
│ - z_t 使用离散潜变量 (32 个 categorical, 每个 32维) │
│ - Symlog 预测 (处理不同量级的奖励) │
│ - 无需任何超参数调优即可在多种环境中工作 │
│ │
└────────────────────────────────────────────────────┘
训练和使用流程:
- 收集真实数据,训练世界模型(重构+预测)
- 在世界模型中”想象”轨迹(通过 RSSM 递推)
- 在想象轨迹上训练 Actor-Critic 策略
- 将策略应用于真实环境,收集新数据
- 迭代
与机器人学习的关系:世界模型可以显著减少真实交互次数。在真实机器人上,每次交互都需要时间和人工监督,世界模型允许在模型内部进行大量”虚拟”训练。
7.2 UniSim
UniSim (Universal Simulator) 由 Google 提出,目标是构建一个通用的视觉世界模型。给定当前视觉观察和文本描述的动作/事件,UniSim 生成下一帧图像。
与传统世界模型的区别:
- DreamerV3 在低维状态空间上建模动力学
- UniSim 在像素/视觉空间上直接建模未来帧
- UniSim 可以用于生成合成训练数据:定义任务指令,让 UniSim 想象机器人完成任务的视频,再用这些视频训练策略
7.3 GROOT
GROOT (Guiding Robot Operations with Open-world Text) 结合了视觉世界模型和目标条件策略。给定一个目标图像或文本描述,GROOT 在学到的世界模型中规划一条从当前观察到达目标的轨迹,然后执行该轨迹。
7.4 世界模型与基于模型的规划
世界模型的核心价值在于启用 model-based planning:
当前状态 s_t
│
↓
在世界模型中展开多条可能的未来轨迹:
轨迹 1: s_t → s_{t+1}^1 → s_{t+2}^1 → ... (reward_1)
轨迹 2: s_t → s_{t+1}^2 → s_{t+2}^2 → ... (reward_2)
...
轨迹 N: s_t → s_{t+1}^N → s_{t+2}^N → ... (reward_N)
│
↓
选择累计奖励最高的轨迹对应的第一步动作 → 执行
│
↓
下一个时间步重新规划 (MPC 方式)
这种方法的优势是:策略不需要预先训练到完美,通过在线规划可以在部署时适应新场景。劣势是:世界模型的预测误差在多步展开后会累积,长时序规划的可靠性受限。
8. 数据收集的规模化挑战
8.1 机器人数据为什么难以规模化
核心数据对比:
| 领域 | 数据获取速度 | 可用数据规模 | 数据成本 |
|---|---|---|---|
| 自然语言 | 互联网爬取 | 数万亿 token | ~$0/样本 |
| 计算机视觉 | 互联网爬取 | 数十亿图像 | ~$0/样本 |
| 机器人操作 | 人工演示 | ~10条/小时 | ~$50-100/条 |
| 机器人 locomotion | 仿真 + sim-to-real | 仿真中无限 | 仿真成本 |
瓶颈分析:
- 物理时间限制:每条机器人演示需要操作者实时执行,一个精细操作任务的演示通常需要 30-60 秒。加上 reset 时间,每小时约 10-20 条。
- 硬件成本:每台数据采集工作站(机器人 + 相机 + 遥操作设备)成本 $20,000-$100,000。
- 人工成本:需要训练有素的操作者。高质量操作者的培训周期为数天。
- 标注困难:与图像标注不同,机器人数据不能事后标注。动作是在执行时产生的,不存在”给一条轨迹打标签”这种操作。
- 环境多样性:真实世界的视觉/物理多样性远超仿真。在一间实验室收集的数据可能不泛化到另一间实验室。
8.2 规模化策略
8.2.1 仿真数据
- 在仿真中生成数百万条轨迹,通过 Domain Randomization 和 Sim-to-Real 技术迁移
- 优势:速度极快(GPU 并行可达百万 FPS)、成本极低、环境完全可控
- 局限:视觉 gap 仍然存在、接触丰富的任务(如织物操作)仿真不准确
- 典型应用:locomotion(ANYmal, Humanoid)、基础抓取
8.2.2 遥操作规模化
- Google RT-1 方案:13 台机器人、专职操作团队、13 个月持续采集
- 问题:线性扩展,成本高,单点故障(操作者疲劳、设备损坏)
- 改进方向:降低操作者培训门槛(如 UMI 的手持工具)、提高单条演示质量
8.2.3 自主数据收集 (Autonomous Data Collection)
让机器人在无人监督的情况下自主收集数据:
方法 1: 自主探索 (exploration)
- 让机器人随机尝试动作
- 使用好奇心驱动 (curiosity-driven) 的策略
- 问题: 有效数据比例极低
方法 2: 自主 reset + retry
- 执行当前策略, 成功/失败后自动 reset
- Hindsight Relabeling: 即使失败也可以把"到达的位置"作为目标重新标注
- 优势: 可24小时无人值守运行
方法 3: 互联网视频挖掘
- 从 YouTube/instructional video 中提取操作知识
- 问题: 无法获取动作标签, 仅有视觉观察
- 方法: 用视频预训练视觉表征, 再在少量机器人数据上微调
8.2.4 跨具身形态数据集 (Cross-Embodiment Datasets)
Open X-Embodiment (OXE):由 Google DeepMind 主导,汇集了来自 21 个研究机构、22 种机器人形态的机器人演示数据:
- 总计 ~1M 条轨迹
- 覆盖单臂、双臂、移动操作、灵巧手等多种形态
- 统一格式存储 (RLDS format on TensorFlow Datasets)
- 实验表明:在 OXE 上预训练 + 在目标机器人上微调 > 仅在目标机器人数据上从零训练
DROID:一个标准化的多站点数据收集协议,确保不同实验室收集的数据具有一致的质量和格式。
8.3 数据效率提升方向
当前: 目标:
10 demos/hour (人工) → 1000+ demos/hour (自主)
$50-100 per demo → ~$0 per demo (仿真/自主)
1 embodiment per dataset → N embodiments shared
1 lab per dataset → distributed collection
关键技术路径:
1. 仿真保真度提升 → 减少 sim-to-real gap → 更多仿真数据可用
2. 自主数据收集 → 24/7 无人运行 → 数据量线性增长
3. 跨形态预训练 → 共享数据 → 有效数据量倍增
4. 视频预训练 → 利用互联网视频 → 视觉表征更强
5. 数据增强 → 从少量 demo 合成更多变体
9. 公司格局
9.1 主要公司/实验室
| 公司/实验室 | 定位 | 核心技术 | 代表成果 | 融资/阶段 |
|---|---|---|---|---|
| Physical Intelligence (π) | 通用机器人基础模型 | Flow Matching, MoE, VLA | π0 | $400M+ (Series A, 2024) |
| Google DeepMind Robotics | 研究→产品 | VLA, Sim-to-Real, World Model | RT-1/RT-2, Gemini Robotics | Google 内部 |
| Covariant | 仓储物流操作 | 大规模模仿学习, 基础模型 | RFM-1 (多模态机器人基础模型) | $222M (Series C) |
| 1X Technologies | 人形机器人 (EVE/NEO) | 世界模型, 神经网络控制 | NEO Beta 人形机器人 | $100M+ (OpenAI Fund) |
| Figure AI | 人形机器人 | VLA (与 OpenAI 合作) | Figure 01/02 + 语言交互 | $675M (Series B) |
| NVIDIA Isaac | 开发平台/工具链 | PhysX 5, Omniverse, Isaac Lab | 大规模并行训练基础设施 | NVIDIA 内部 |
| Stanford IRIS Lab | 学术研究 | Diffusion Policy, ACT, Mobile ALOHA | 模仿学习前沿方法论 | 学术拨款 |
| UC Berkeley RAIL/AUTOLAB | 学术研究 | OpenVLA, Octo, DROID | 开源基础模型生态 | 学术拨款 |
| Columbia REAL Lab | 学术研究 | Diffusion Policy, UMI | 数据收集方法论创新 | 学术拨款 |
| Toyota Research Institute (TRI) | 家庭服务机器人 | Diffusion Policy 应用, Drake | 大规模遥操作数据收集 | Toyota 内部 |
| Skild AI | 通用机器人大脑 | 大规模仿真 + foundation model | 跨形态通用策略 | $300M (Series A) |
9.2 技术路线分化
路线一:VLA (Vision-Language-Action)
- 代表:Google (RT-2), OpenVLA, Figure (与 OpenAI)
- 核心逻辑:语言和视觉的 internet-scale 预训练提供通用语义理解 → fine-tune 为动作输出
- 优势:继承 LLM/VLM 的推理和泛化能力
- 挑战:离散化动作精度受限,推理延迟高
路线二:专用动作生成模型
- 代表:Physical Intelligence (π0), Columbia (Diffusion Policy)
- 核心逻辑:动作分布与语言/视觉本质不同,需要专门的生成架构(Flow Matching/Diffusion)
- 优势:连续动作精度高,多模态分布表达能力强
- 挑战:需要大量高质量机器人数据
路线三:大规模仿真 + Sim-to-Real
- 代表:NVIDIA Isaac, ETH Zurich (ANYmal), Agility Robotics
- 核心逻辑:在仿真中用 RL 学会完美策略 → 通过 DR/adaptation 迁移到真实
- 优势:数据量几乎无限,locomotion 领域已证明有效
- 挑战:对接触丰富的操作任务仿真精度不足
路线四:世界模型 + 规划
- 代表:1X Technologies, DreamerV3
- 核心逻辑:学习环境的预测模型 → 在模型内部规划 → 执行
- 优势:样本效率极高,可以处理长序列决策
- 挑战:模型误差累积,对快速反应场景不适用
10. 开放问题与研究前沿
10.1 当前未解决的核心问题
-
数据瓶颈:目前最好的机器人基础模型(π0)仍然需要数十万条演示。如何将数据需求降低 10-100 倍?
-
长序列任务:当前方法在 10-30 步的短任务上表现良好,但对于需要数百步决策的长序列任务(如整理房间)仍力不从心。需要分层规划 (hierarchical planning) + 策略执行的有效结合。
-
安全性与鲁棒性:RL/模仿学习得到的策略可能在 out-of-distribution 场景中产生危险行为。如何在保证性能的同时提供安全保障?
-
实时适应:RMA 类方法可以适应环境参数变化,但对于完全新颖的场景(如之前从未见过的工具)仍无法在线适应。
-
多模态融合:视觉、触觉、力觉、本体感觉的有效融合仍是开放问题。当前大多数方法以视觉为主,触觉/力觉信息的整合方法尚不成熟。
10.2 2025-2026 年值得关注的方向
- 视频预训练 → 机器人策略:利用互联网规模的操作视频预训练视觉世界模型,然后用少量机器人数据微调为可执行策略
- 自主改进 (Self-Improvement):机器人通过自主练习持续提高,类似 AlphaGo 的自我对弈
- Foundation Model + Classical Control:将基础模型的语义理解与传统控制器的精确性和安全性结合
- 硬件-算法协同设计:针对学习型控制器设计新型执行器和传感器配置
参考文献
- Todorov, E., Erez, T., & Tassa, Y. (2012). MuJoCo: A physics engine for model-based control. IROS.
- Makoviychuk, V., et al. (2021). Isaac Gym: High performance GPU-based physics simulation for robot learning. NeurIPS.
- Tobin, J., et al. (2017). Domain randomization for transferring deep neural networks from simulation to the real world. IROS.
- Kumar, A., et al. (2021). RMA: Rapid Motor Adaptation for Legged Robots. RSS.
- Zhao, T., et al. (2023). Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware. RSS. (ACT)
- Chi, C., et al. (2023). Diffusion Policy: Visuomotor Policy Learning via Action Diffusion. RSS.
- Brohan, A., et al. (2022). RT-1: Robotics Transformer for Real-World Control at Scale. RSS.
- Brohan, A., et al. (2023). RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control. CoRL.
- Kim, M., et al. (2024). OpenVLA: An Open-Source Vision-Language-Action Model. CoRL.
- Black, K., et al. (2024). π0: A Vision-Language-Action Flow Model for General Robot Control. arXiv.
- Team, O., et al. (2024). Octo: An Open-Source Generalist Robot Policy. RSS.
- Hafner, D., et al. (2023). Mastering Diverse Domains through World Models. (DreamerV3)
- Rudin, N., et al. (2022). Learning to Walk in Minutes Using Massively Parallel Deep Reinforcement Learning. CoRL.
- Open X-Embodiment Collaboration (2024). Open X-Embodiment: Robotic Learning Datasets and RT-X Models.
- Chi, C., et al. (2024). Universal Manipulation Interface: In-The-Wild Robot Teaching Without In-The-Wild Robots. RSS. (UMI)
- Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. NeurIPS. (DDPM)
- Lipman, Y., et al. (2023). Flow Matching for Generative Modeling. ICLR.
- Song, Y., et al. (2023). Consistency Models. ICML.
- Ross, S., Gordon, G., & Bagnell, D. (2011). A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning. AISTATS. (DAgger)
- Levine, S., et al. (2020). Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems.
- Fu, Z., et al. (2024). Mobile ALOHA: Learning Bimanual Mobile Manipulation with Low-Cost Whole-Body Teleoperation. CoRL.
- Singhal, P., et al. (2024). Consistency Policy: Accelerated Visuomotor Policies via Consistency Distillation. RSS.