← 返回列表

Lessons from Learning to Spin Pens

作者 Jun Wang, Ying Yuan, Haichuan Che, Haozhi Qi, Yi Ma, Jitendra Malik, Xiaolong Wang
年份 2024
会议/期刊 arXiv 2024
评分
标签 机器人操控 灵巧手 Sim-to-Real
摘要 三阶段学习笔旋转:仿真 RL 训练 Oracle + 本体感受预训练 + 不到 50 条真实轨迹微调,首次实现灵巧手多圈连续笔旋转

核心思想

让机器人灵巧手(Allegro Hand)学会连续旋转笔状物体——这是一个对人类来说自然但对机器人极具挑战性的任务,因为它需要动态平衡和精密的多指协调。

核心方法:三阶段流程

  1. 仿真中训练 Oracle 策略(有特权信息的 RL)
  2. 本体感受策略预训练(从 Oracle 轨迹学习运动先验)
  3. 真实世界微调(不到 50 条轨迹桥接 sim-to-real gap)

背景知识

为什么笔旋转特别难

挑战 说明
动态平衡 笔在手指间旋转时需要持续调整力的平衡
手指换位 连续旋转需要手指”接力”——一组手指放开时另一组接住
遥操作不可行 延迟和复杂度使人类无法通过遥操作演示此任务
Sim-to-real gap 巨大 高动态任务中,仿真的接触力模型误差被放大

之前方法的局限

  • 已有方法只能处理球形或方形物体的旋转
  • 笔状(细长)物体的旋转此前从未被解决

方法详解

Stage 1:仿真中训练 Oracle 策略

1.1 Oracle 的观察空间(特权信息)

Oracle 能看到真实机器人无法获取的完整信息:

观察 维度 说明
关节位置 $q_t$ $\mathbb{R}^{3 \times 16}$ 3 步历史 × 16 个关节
上一步动作 $a_{t-1}$ $\mathbb{R}^{3 \times 16}$ 3 步历史
触觉信号 $c_t$ $\mathbb{R}^{32}$ 5 个传感器/指尖 × 4 指 + 额外
指尖位置 $p_t$ $\mathbb{R}^{4 \times 3}$ 4 个指尖的 3D 坐标
笔的位姿和角速度 $w_t$ $\mathbb{R}^7$ 位置 + 四元数 + 角速度
点云编码 $\mathbb{R}^{100 \times 3}$ 通过 PointNet 编码物体形状
物理属性 质量、质心、摩擦系数、尺寸

1.2 动作空间

\[a_t = \eta \cdot f_\theta(o_t) + a_{t-1}\]
  • $f_\theta$:策略网络输出相对位置增量
  • $\eta$:动作缩放因子
  • 增量式动作 + PD 控制器转换为关节力矩

为什么用增量式:相比绝对位置命令,增量式更平滑、更稳定。

1.3 奖励函数

\[r = r_\text{rot} + \lambda_z \cdot r_z + \lambda_\text{energy} \cdot r_\text{energy}\]

旋转奖励 $r_\text{rot}$($\lambda_\text{rot} = 1.0$):鼓励绕 z 轴的旋转速度。

高度惩罚 $r_z$($\lambda_z = -1.0$):

\[r_z = |z_\text{pen} - z_\text{target}|\]

保持笔水平——这个看似简单的项至关重要:

  • 没有 $r_z$:笔会倾斜甚至竖直,导致不稳定
  • 有 $r_z$:笔保持水平 → 开环轨迹回放时也能成功(Stage 3 依赖此特性)

能量惩罚 $r_\text{energy}$(5 个子项):

子项 含义 权重
$r_\text{vel}$ 惩罚笔的线速度(防止甩飞) $-0.3$
$r_\text{diff}$ 惩罚手偏离默认姿态(防止怪异姿势) $-0.1$
$r_\text{ang}$ 惩罚过大的角速度(保持可控) $-0.3$
$r_\text{torq}$ 惩罚大力矩(保护电机) $-0.1$
$r_\text{work}$ 惩罚控制器做功(节能) $-1.0$

1.4 初始状态设计

6 种手动设计的标准抓取姿态(灵感来自人类转笔技巧),加噪声生成多样初始状态。

为什么不随机初始化

  • 随机姿态 99.9% 没有意义(笔在手里的姿态空间极小)
  • 从有意义的抓取姿态出发 → RL 才能探索到手指换位的动作

1.5 训练配置

参数
算法 PPO
并行环境 8192
总步数 5 亿
仿真器 Isaac Gym
控制频率 20 Hz
仿真频率 200 Hz
域随机化 感知噪声 + 物理参数 + 物体属性

Stage 2:本体感受策略预训练

2.1 为什么不直接蒸馏

方法 结果
DAgger 蒸馏 失败(本体感受信息不足以替代特权信息)
视觉蒸馏 失败(笔的高频振荡 → 图像极度模糊 → sim-to-real gap 巨大)
行为克隆预训练 成功(提供运动先验,后续微调桥接 gap)

2.2 数据收集

从 Oracle 策略的 rollout 中收集 $(s_t, a_t)$ 对。

2.3 输入

仅使用本体感受信息(真实机器人可获取的信息):

  • 30 步历史的关节位置 $q_{t-29:t}$
  • 30 步历史的关节目标 $a_{t-30:t-1}$

不使用视觉、触觉、笔的位姿(这些在真实世界难以获取或精度不足)。

2.4 架构

  • Temporal Transformer:处理 30 步的时间序列特征
  • MLP 策略网络:输出动作

2.5 目标

行为克隆(Behavioral Cloning):让策略接触到多样的运动原语(如手指换位、平衡调整),为后续微调提供良好初始化。

Stage 3:真实世界微调

3.1 开环轨迹回放收集真实数据

核心洞察:Oracle 在仿真中生成的动作序列可以直接在真实机器人上开环回放

为什么可行:

  • $r_z$ 奖励确保笔保持水平 → 轨迹相对稳定
  • 开环回放虽然不完美,但能收集到”接近成功”的轨迹

过程

  1. 在仿真中用 15 种初始姿态运行 Oracle
  2. 筛选持续 > 800 步的轨迹(质量好的)
  3. 在真实机器人上回放这些轨迹
  4. 保留旋转超过 $2\pi$(一整圈)的轨迹
  5. 3 个训练物体 × 15 条轨迹/物体 = 45 条总计

3.2 微调

用收集到的约 50 条真实轨迹对预训练的本体感受策略进行行为克隆微调。

参数
总轨迹 ~50 条(3 个物体 × ~15 条)
Epochs 2000
学习率 $10^{-3}$

实验结果

真实世界部署

方法 训练物体 (RR) 训练物体 (成功率) 未见物体 (RR) 未见物体 (成功率)
开环回放 2.80-3.37 30-55% 2.47-3.53 30-67%
视觉蒸馏 ~1.57 0% 失败 失败
本文方法 3.38-3.43 54-70% 2.71-4.63 46-80%

RR = 旋转弧度(越大越好),成功 = 旋转 ≥ 180°。

关键发现:视觉蒸馏完全失败——本体感受才是笔旋转的正确感知模态。

预训练 + 微调的必要性

配置 物体 A (RR) 未见物体 D (RR)
仅预训练 1.89 1.74
仅微调(45 条) 2.62 1.92
两者都有 3.43 4.10

两者缺一不可

  • 预训练提供运动先验 → 防止过拟合少量真实数据
  • 微调桥接 sim-to-real gap → 适应真实物理

数据效率

真实轨迹数 无预训练 (物体 A) 有预训练
15 条 1.80 RR, 14%
45 条 2.62 RR, 54% 3.43 RR, 55%
75 条 2.93 RR, 77%

预训练使得 45 条数据就能达到无预训练 75 条数据的性能。

消融:奖励设计

因素 发现
去掉 $r_z$ 笔倾斜/竖直 → 不稳定,开环回放失败
单一初始姿态 无法学会手指换位
去掉触觉/点云 Oracle 性能显著下降

$r_z$(保持水平)是整个系统的基石——没有它,Stage 3 的开环回放策略不可行。

个人思考

  1. 三阶段设计的逻辑链极其清晰:仿真探索技能(Stage 1)→ 提炼运动先验(Stage 2)→ 适应真实世界(Stage 3),每阶段解决一个明确问题。
  2. “仿真用于技能探索而非直接部署”是核心理念:不指望 sim-to-real 完美迁移,而是用仿真发现可行的运动模式。
  3. $r_z$ 奖励的连锁效应出人意料:一个简单的”保持水平”约束使得开环回放成为可能 → 从而解决了真实数据收集的难题。
  4. 视觉失败 + 本体感受成功挑战了常见假设:对于高动态接触任务,关节角度比图像更可靠。
  5. <50 条真实轨迹就能泛化到 7 种未见物体——说明仿真预训练的运动先验具有强泛化性。
← 返回列表