UniDexGrasp:把灵巧手抓取拆成「先想好怎么抓,再执行」
🎯 为什么重要:灵巧手的「通用化」关卡
平行夹爪(两指)抓取已经被攻下:GraspNet-1Billion 等工作能在上千类物体上稳定抓。但灵巧手(五指、20+ DoF)一直是块硬骨头:
UniDexGrasp 是第一个在这条「真·通用灵巧抓取」赛道上跑通的 pipeline:133 类、5519 个物体实例、超过 100 万条抓取数据,最终在未见类别上仍有 66% 的成功率。
💡 核心思想:偷师平行夹爪的「两段式 pipeline」
平行夹爪抓取为什么能做通用?因为它把任务解耦成两段:「提议抓取姿态」+「执行」。UniDexGrasp 把同样的范式搬到灵巧手——但每一段都得解决灵巧手特有的难题。
Stage 1 的关键巧思:抓取姿态 = 旋转 $R$ + 平移 $t$ + 关节角 $q$。直接用 normalizing flow 建模 $p(R, t, q | X_0)$ 会因为 SO(3) 拓扑特殊而崩。论文把它拆开:用 GraspIPDF(基于 ImplicitPDF)专管 $p(R|X_0)$,再用 GraspGlow(基于 Glow)管 $p(t, q | X_0, R)$。这一拆,既能在 SO(3) 上正确建模,又能生成多模态的抓法(CVAE 会 mode-collapse 成一种,flow 不会)。
🛠️ Stage 2 的三大创新:让「跨类通用」的视觉策略能学出来
光有一个好目标姿态还不够——第二段「照着目标抓」的视觉策略极难学。RL 直接训只会失败。论文给出三个互相配合的关键设计:
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① 状态对齐 State Canonicalization | 把整个场景转到「以手初始朝向为基准」的坐标系,让策略对绕重力轴的旋转等变(SO(2) equivariant) | 目标条件 + 跨类设定下样本效率极低;等变让「这一圈旋转的训练数据」自动复用到「另一圈」,等价于数据增强 4 倍效果 |
| ② 物体课程 Object Curriculum | 3 阶段:先单物 → 单类 → 多代表类 → 全部类。循序渐进 | 直接在 133 类上训,策略几乎学不出来(success 几乎为 0)。课程让策略先「在简单分布上学懂抓」,再慢慢加难度 |
| ③ 老师-学生蒸馏 Teacher-Student | 先用 PPO 训一个能看 oracle 状态(物体位姿、全点云)的老师;再用 DAgger 把它蒸馏成只看深度+本体感觉的学生 | 真机没有 oracle 状态;但直接从视觉学 RL 几乎不可能。两段式让学生策略站在「老师已学会」的肩膀上 |
旋转 SO(3) 是个「环面」拓扑——0° 和 360° 是同一个姿态,普通 flow 在欧式空间建模会出现「不连续」和「无穷到一」映射(论文 §B.1.2 详细分析)。IPDF 用「网格 + softmax 归一化」绕开了这个拓扑难题,所以专管旋转;平移和关节角是欧式空间,Glow 直接用就行。把难的部分单独拎出来用对的工具打,这是整个 Stage 1 的灵魂。
📊 结果:未见类别 66%,全面碾压 baseline
| 维度 | 数字(PDF 溯源) |
|---|---|
| 数据规模 | 1.12M 条合成抓取,覆盖 5519 物体实例 / 133 类(§4.1)。拆分:训练 3251 / 见类未见实例 754 / 未见类 1514 |
| Stage 2 老师(状态)成功率 | 训练集 74%,测试集见类 71%,未见类 66%(Tab.3) |
| Student(视觉)成功率 | GT 目标下 68%(train)/ 65%(见类)/ 63%(未见类);用 Stage 1 预测目标 66/59/58%(Tab.4) |
| vs. 基线 | PPO 仅 14%,DAPG(模仿)13%;比 ILAD 在 train/test 上分别高 49% / 47%(Tab.3) |
| 消融:去掉课程 OCL | 成功率从 74% 暴跌到 31%(train)/ 21%(未见类)—— 课程是命脉(Tab.3) |
| 消融:去掉状态对齐 SC | 74% → 59%(train)—— 等变同样关键(Tab.3) |
| 语言引导抓取(彩蛋) | 接 CLIP,10 分钟微调后,「抓锤子把柄/抓瓶颈」等指令准确率 ≈90%(§4.4) |
| 整体声明 | 「首次」在千级物体上实现通用灵巧抓取,平均成功率 >60%,generalization gap 很小 |
🌐 在领域中的位置
UniDexGrasp 是灵巧手通用抓取的分水岭:之前的灵巧工作要么假设 oracle 几何,要么只在一两类物体上 demo。它把「跨数百类、纯视觉、目标条件」做成可复现的 pipeline,后续的 DexGraspNet 3D 数据集、UniDexGrasp++、以及诸多真机迁移工作都建立在它确立的两段式范式上。关联线索:T11 灵巧操作。
❓ 常见误区
它是端到端从视觉学到抓取的吗?
不是「一个网络端到端」,而是两段式 pipeline。Stage 1 生成目标姿态(生成模型),Stage 2 是目标条件的视觉策略(RL+蒸馏)。而且 Stage 2 内部又分老师(看 oracle)和学生(看视觉)两层。这种「分而治之」恰恰是它能通用的关键。
为什么不用 diffusion 而用 normalizing flow(Glow)?
两个原因:(1) 抓取姿态的旋转部分在 SO(3) 上,diffusion 当时在 SO(3) 上建模还不成熟,IPDF 用网格归一化更直接;(2) normalizing flow 用 NLL 损失,能建模复杂多模态分布,而 CVAE 会 mode-collapse(论文 Fig.4 直观展示了 CVAE 输出全塌成一种)。后续 UniDexGrasp++ 等工作才把 diffusion 引入这一阶段。
它能直接上真机吗?
论文主实验在 IsaacGym 仿真里,但只用深度点云 + 本体感觉(不依赖 oracle 状态),是为真机迁移做的设计。论文本身把「真机迁移」作为 future work;后续工作(如 UniDexGrasp++、DexGraspNet 系列)才完成 sim-to-real。限制:只处理刚体,不处理剪刀之类的铰接物体。
「目标条件 policy」是什么意思?
策略的输入除了当前观察,还有一个「目标抓取姿态 g」(来自 Stage 1)。策略要做的不是「随便抓住」,而是「按 g 指定的方式抓」——比如抓瓶身 vs 抓瓶颈,是两种不同的 g。这让系统能配合语言指令(如「抓锤子把柄」)执行功能性抓取。