里程碑
机器人Kuka
上真机
实时
输入模态vision

QT-Opt:让 7 个机械臂自己抓 58 万次,学到 96% 成功率

Dmitry Kalashnikov, Alex Irpan, Peter Pastor 等(Google Brain + Google X + UC Berkeley)。CoRL 2018 / arXiv:1806.10293。 项目页 ai.googleblog.com · 闭源 · reinforcement learninggrasping 线索 T14

🧠 一句话心智模型:与其让人写「选哪个抓取点」的复杂规划,不如让 7 个机械臂日夜不停抓 58 万次,从失败里直接学一个 Q 函数——这个 Q 函数不仅96% 能抓起来,还自动涌现出「拨开杂物再抓」「抓不稳就松手重抓」「球滚了就跟过去」这些传统规划根本写不出来的闭环策略。

🎯 为什么重要:抓取的「看一眼就动手」模式 vs 「边看边动」模式

2018 年前,机器人抓取有两条主流路线:

传统范式:open-loop(开环)——相机拍一张照 → 算法挑一个「最佳抓取点」 → 机械臂闭眼执行。一旦执行起来物体滑了、滚了、被遮挡了,机器人完全不知道,只能眼睁睁抓空。

QT-Opt 走了完全相反的路:closed-loop dynamic grasping(闭环动态抓取)——机械臂边动边看,每一步都基于最新一帧观察更新策略。这种模式天然能处理打滑、扰动、密集杂物,但代价是必须从大量真实试错里学,而不能靠一次性规划。

open-loop(传统规划式) 拍一张照 选最佳抓点 闭眼执行(不再看) ❌ 物体一动就抓空 closed-loop(QT-Opt RL)✅ 看 O_t Q → 选动作 每步都看,循环 20 步 ✅ 自动涌现 regrasp / pre-grasp / 抗扰
图 1:open-loop 选一次抓点就闭眼执行;closed-loop 边看边动,每一步基于最新观察重算动作。QT-Opt 用 58 万次真机试错直接学后者。

💡 核心思想:不要 actor,只用 Q 函数 + CEM 选动作

2018 年做连续动作 RL,主流是 actor-critic(DDPG / TD3)——训一个 actor 网络直接输出动作。但论文明确指出:「actor-critic 在大规模 RL 里 notoriously unstable」,调参成本极高。QT-Opt 的选择是彻底丢掉 actor

state s RGB 472×472 +gripper+height Q_θ(s,a) 1.2M params CNN argmaxₐ Q CEM 随机优化 N=64 → top M=6 → fit Gaussian × 2 iter action a 7 维 + 终止 target: θ̄₁ (EMA 0.9999) + θ̄₂ (lag 6000 step)
图 2:QT-Opt 推理流程。给定观察 $s$,用 CEM 在动作空间里随机采样 → 选 top → 拟合高斯 共 2 轮,从 $Q_{\bar\theta_1}(s,a)$ 里搜出最佳动作。没有 actor 网络,policy 由 Q 隐式诱导。

核心选择有两条:

选择具体做法为什么
① 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;二值开/关夹爪;终止命令
Rewardepisode 末「夹爪含物体 + 高于阈值」→ +1;每步 −0.05(鼓励快);最多 20 步
Q-network1.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 的工程模板:

7× KUKA LBR IIWA 真机 Distributed Replay Buffer 580k grasps(含早期失败) 1000 × Bellman updater 异步 CEM 算 target Q Ring Buffer labeled samples 10 × trainer 异步 gradient Parameter Server → Q_θ θ 回流到 Bellman updater / 真机
图 3:QT-Opt 分布式异步架构。7 个真机持续采数据 → replay buffer → 1000 个 Bellman updater 异步算 target → 10 个 trainer 异步算 gradient → parameter server 聚合。训练最多跑 15M gradient steps

关键 trick:off-policy 重用 + joint finetune

所有 580k grasps(含早期失败策略的产物)全部进 replay buffer,QT-Opt 持续重用。后期再采 28k on-policy grasps 做 joint finetune,提供「hard negative mining」机制,让 policy 快速纠正错误乐观外推。off-policy 单独 87% → +on-policy 28k 后 96%(Tab.1)。

📊 关键结果:96% 成功率,failure rate 比 Levine 2016 降约 5 倍

方法数据Test 成功率Bin empty 前 10前 20前 30
QT-Opt(off + on-policy)580k off + 28k on96%88%88%76%
Levine et al. 2016Levine 原数据 900k78%76%72%72%
QT-Opt(off-policy only)580k off87%
Levine et al. 2016改用 QT-Opt 数据 400k67%
三个关键结论
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 only53%
+ gripper status58%(+5)
+ gripper status + height70%(+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)

🌐 在领域中的位置

Levine 2016 hand-eye coordination(self-supervised 但单步 greedy) QT-Opt(long-horizon 闭环 RL 抓取)⭐ RT-1(大规模真机 IL) GraspNet-1Billion / AnyGrasp(数据/工业化)

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 微调(学习)。