QT-Opt:让 7 个机械臂自己抓 58 万次,学到 96% 成功率
🎯 为什么重要:抓取的「看一眼就动手」模式 vs 「边看边动」模式
2018 年前,机器人抓取有两条主流路线:
QT-Opt 走了完全相反的路:closed-loop dynamic grasping(闭环动态抓取)——机械臂边动边看,每一步都基于最新一帧观察更新策略。这种模式天然能处理打滑、扰动、密集杂物,但代价是必须从大量真实试错里学,而不能靠一次性规划。
💡 核心思想:不要 actor,只用 Q 函数 + CEM 选动作
2018 年做连续动作 RL,主流是 actor-critic(DDPG / TD3)——训一个 actor 网络直接输出动作。但论文明确指出:「actor-critic 在大规模 RL 里 notoriously unstable」,调参成本极高。QT-Opt 的选择是彻底丢掉 actor:
核心选择有两条:
| 选择 | 具体做法 | 为什么 |
|---|---|---|
| ① loss 用 cross-entropy 不用 MSE | $D$ 用交叉熵,因为 total returns 有界 $[0,1]$ | 实验发现比 MSE 更稳(Appendix C) |
| ② 双 target network | $\bar\theta_1$ = EMA(0.9999);$\bar\theta_2$ = $\bar\theta_1$ 的 lagged 版本(~6000 steps);target $V(s')=\min_i Q_{\bar\theta_i}(s',\cdot)$ | Polyak averaging + clipped double Q 双重防 overestimation |
| ③ CEM 而不是 actor | 每步采 N=64 个动作 → 选 top M=6 → 拟合高斯 → 再采 N=64 → 共 2 轮 | grasping 的 Q 函数高度非凸(抓物体方向 Q 高、物体间隙方向 Q 低),DDPG 的 amortized actor 不稳,NAF 要求 Q 凸也不行 |
🛠️ 怎么做:MDP 设计 + 分布式系统 + off-policy 重用
MDP for grasping(Sec.5)
| 分量 | 具体 |
|---|---|
| State $s$ | ① RGB 472×472(over-the-shoulder 单目 RGB,无 depth) ② gripper 二值状态(open/closed) ③ gripper 离地高度 |
| Action $a$ | $(t,r,g_\text{open},g_\text{close},e)$:$t\in\mathbb{R}^3$ 笛卡尔增量;$r\in\mathbb{R}^2$ 方位角 sin-cos;二值开/关夹爪;终止命令 |
| Reward | episode 末「夹爪含物体 + 高于阈值」→ +1;每步 −0.05(鼓励快);最多 20 步 |
| Q-network | 1.2M 参数 large CNN;image 进 conv 底部,action+gripper+height 进 stack 中间层(mid-stack fusion) |
分布式异步系统(Sec.4.3 + Fig.3,工程关键)
580k+ grasps 单机训不动,论文搭了一套「1000 个 Bellman updater + 10 个 training worker + 异步 parameter server」的分布式系统——这是后续大规模机器人 RL 的工程模板:
关键 trick:off-policy 重用 + joint finetune
📊 关键结果:96% 成功率,failure rate 比 Levine 2016 降约 5 倍
| 方法 | 数据 | Test 成功率 | Bin empty 前 10 | 前 20 | 前 30 |
|---|---|---|---|---|---|
| QT-Opt(off + on-policy) | 580k off + 28k on | 96% | 88% | 88% | 76% |
| Levine et al. 2016 | Levine 原数据 900k | 78% | 76% | 72% | 72% |
| QT-Opt(off-policy only) | 580k off | 87% | — | — | — |
| Levine et al. 2016 | 改用 QT-Opt 数据 400k | 67% | — | — | — |
① 96% vs 78%:QT-Opt 把同类 self-supervised 方法的 failure rate 降了约 5 倍(22% → 4%),且用更少数据(580k vs 900k)。
② 纯 off-policy 87% > Levine 78%:连不采新数据都超 baseline——off-policy 重用是核心价值,能快速 iter 超参 / 架构。
③ bin emptying:30 步内清空 28 物体的 bin,QT-Opt 5 次试验成功 2 次,Levine 仅 1 次。
State representation ablation(Appendix A,off-policy 2.5M steps)
| State 输入 | 成功率 |
|---|---|
| image only | 53% |
| + gripper status | 58%(+5) |
| + gripper status + height | 70%(+12) |
height 是最关键的 low-dim feature(+12 个点)——机器人需要知道夹爪离地多高,光看图像学不出来。
自动涌现的高阶策略(Sec.6.2,最 qualitative impressive 的部分)
以下行为全部从「优化抓取成功」自动涌现,无任何 reward shaping:
| 涌现行为 | 描述 |
|---|---|
| Singulation & pre-grasp manipulation | 把物体从堆里拨出来再抓;推倒番茄酱瓶再抓 |
| Regrasping | 检测到 grasp 不稳就松开重抓;物体滑出就 reposition 再抓 |
| Handling dynamic objects | 球滚出夹爪就跟;故意推走被抓物体,policy 立即转向抓别的 |
| Grasping in clutter | 训练时 ≤10 物体,部署能抓密集杂乱堆(>10) |
🌐 在领域中的位置
QT-Opt 是真机大规模 RL 抓取的开山作。它确立了「真机试错 + off-policy 重用 + on-policy finetune」范式,之后 Google 的 RT-1 直接继承这个范式。论文最强论点:传统「看一眼选 grasp → open-loop 执行」根本无法做 pre-grasp manipulation / regrasp / 响应扰动,而这些能力 RL closed-loop 自动学到。关联线索:T14 抓取 转折 2。
❓ 常见误区
QT-Opt 用了 depth camera 吗?
没用。论文明确只用 over-the-shoulder 单目 RGB 相机(472×472),无 depth。这正是 closed-loop 的优势——动态闭环策略对感知精度的依赖远低于 open-loop 规划式方法(如 Dex-Net 需要精确点云)。
为什么不用 DDPG / TD3 这种 actor-critic?
论文 §4.2 明确说:actor-critic 在 large-scale RL 任务里 notoriously unstable(Henderson 2017),跑 hyperparameter sweep 太贵。QT-Opt dispenses with the need to train an explicit actor——只训 Q-function,policy 由 Q + CEM 隐式诱导。CEM 在低维动作空间(7 维)又稳又简单。
58 万次真机抓取,复现门槛有多高?
极高。论文用了 7 个 KUKA 机械臂 × 4 个月(累计约 800 robot hours),物体每 4 小时在工作时间人工替换,夜间和周末无人值守继续采集。算上磨损、电力、人工重置,只有 Google 这种大公司做得到。代码、数据、模型全部闭源,学术复现几乎不可能——只能用仿真版(PyBullet + 简化 QT-Opt)理解算法。
它和 Dex-Net 是竞争关系吗?
是对偶路线。Dex-Net:合成数据(上亿)+ depth camera + open-loop 规划;QT-Opt:真机数据(58 万)+ 单目 RGB + closed-loop RL。现代抓取系统常结合两者:用 Dex-Net/AnyGrasp 出候选姿态(规划),用 RL/IL 微调(学习)。