Hana's Blog
Robotic Grasp Detection (4): 基于点云的采样式 6-DoF 抓取检测Blur image

6-DoF 抓取的任务定义与表示(Task Definition and Representation)#

平面抓取(Planar Grasp)通常假设夹爪沿固定方向接近桌面。对于堆叠、货架、箱体或侧面可抓物体,这个假设会排除大量可行姿态。六自由度抓取(Six-Degrees-of-Freedom Grasp, 6-DoF Grasp)使用三维特殊欧氏群(Special Euclidean Group, SE(3)SE(3))位姿表示任意三维位置和旋转:

g=(R,t⃗,w),R∈SO(3),t⃗∈R3,w∈R>0,g=(R,\vec t,w), \qquad R\in SO(3),\quad \vec t\in\mathbb{R}^3,\quad w\in\mathbb R_{>0},

其中 SO(3)SO(3) 是三维特殊正交群(Special Orthogonal Group),ww 是夹爪开口。点云(Point Cloud)提供带度量尺度的表面样本,适合构造三维接触与碰撞关系,但它只包含相机可见部分,并带有噪声、遮挡和法线估计误差。

采样式检测通常采用“生成—评价—过滤”(Generate–Evaluate–Filter)结构。Gualtieri 等人和后续抓取姿态检测(Grasp Pose Detection, GPD)系统建立了这一经典范式 [1,2]。


采样式 6-DoF 抓取检测的系统结构(System Structure)#

  1. 场景点云(Scene Point Cloud):获取带有三维坐标的场景表面采样。
  2. 预处理与法线估计(Preprocessing / Normal Estimation):去除离群点和无效点,并估计局部表面方向。
  3. 表面与接近方向采样(Surface / Approach Sampling):选择种子点,并围绕局部表面方向生成接近方向。
  4. 构造夹爪候选坐标系(Candidate Frame Construction):为每个采样结果确定接近轴、闭合轴和横向轴,形成候选姿态。
  5. 提取夹爪闭合区域(Closing-Region Crop):将候选附近的点云变换到夹爪坐标系,并裁剪局部输入。
  6. 几何或神经质量评价(Geometric / Learned Scoring):使用解析判据或候选评分网络判断抓取质量。
  7. 碰撞过滤与非极大值抑制(Collision Filtering / Non-Maximum Suppression, NMS):删除碰撞候选和重复姿态。
  8. 机器人可达性与最终选择(Reachability / Selection):检查逆运动学、接近轨迹和执行约束,并选择最终抓取。

每个阶段都会改变最终候选分布。评分网络只是其中一环。


点云预处理与表面采样(Point-Cloud Preprocessing and Surface Sampling)#

设场景点云为 P={p⃗j}j=1N⊂R3P=\{\vec p_j\}_{j=1}^{N}\subset\mathbb R^3,其中 N∈NN\in\mathbb N 是点数。候选生成器首先从可见表面选取种子点 p⃗∈R3\vec p\in\mathbb R^3(Seed Point),并在其局部邻域估计单位表面法线(Surface Normal):

n⃗∈R3,∥n⃗∥2=1.\vec n\in\mathbb R^3, \qquad \lVert\vec n\rVert_2=1.

后续流程围绕法线或局部切平面采样接近方向(Approach Direction)和夹爪绕轴角(Roll Angle)。这里的 n⃗\vec n 是向量,不是点数;它垂直于种子点附近的局部切平面。

法线通常由局部主成分分析(Principal Component Analysis, PCA)得到。对种子点 p⃗\vec p 的邻域 N(p⃗)\mathcal N(\vec p),先计算协方差矩阵:

C(p⃗)=1∣N(p⃗)∣∑x⃗∈N(p⃗)(x⃗−x⃗ˉ)(x⃗−x⃗ˉ)T.C(\vec p)=\frac{1}{|\mathcal N(\vec p)|} \sum_{\vec x\in\mathcal N(\vec p)} (\vec x-\bar{\vec x})(\vec x-\bar{\vec x})^{\mathsf T}.

x⃗ˉ∈R3\bar{\vec x}\in\mathbb R^3 是邻域点的均值。C(p⃗)∈R3×3C(\vec p)\in\mathbb R^{3\times3} 的最小特征值(Eigenvalue)对应的特征向量(Eigenvector)近似 n⃗\vec n,另外两个特征向量张成局部切平面。最小特征值与另外两个特征值接近时,局部几何接近球形或噪声很大,法线方向不稳定;在边缘处,邻域还可能同时包含两个表面。因而实现中常按曲率比值拒绝不可靠法线,并使用相机视点统一法线正负方向。

一种局部夹爪坐标系可以由三条轴构成:

  • 接近轴(Approach Axis):夹爪向物体移动的方向;
  • 闭合轴(Closing Axis):两个夹指相向运动的方向;
  • 横向轴(Lateral Axis):由前两者叉乘得到。

在噪声点云上,法线方向可能翻转或被遮挡边缘污染。邻域半径过小会放大噪声,过大则会抹平小物体和尖锐结构。采样参数因此同时决定精度和计算量。

候选姿态的参数化与采样(Candidate Pose Parameterization and Sampling)#

仅有法线还不能确定六自由度姿态。一个常见枚举过程是:

  1. 选择接近轴 a⃗\vec a,它可以沿 −n⃗-\vec n,也可以在法线附近的圆锥中采样;
  2. 在与 a⃗\vec a 正交的平面内离散闭合轴 b⃗\vec b;
  3. 令横向轴 c⃗=a⃗×b⃗\vec c=\vec a\times\vec b,组成旋转矩阵 R=[a⃗ b⃗ c⃗]R=[\vec a\ \vec b\ \vec c];
  4. 沿 a⃗\vec a 改变夹爪插入深度,沿 b⃗\vec b 改变闭合中心;
  5. 根据局部点投影估计刚好包围物体的开口 ww;
  6. 把候选变换到夹爪坐标系后执行碰撞与接触检查。

若每个种子点采样 NaN_a 个接近方向、NrN_r 个绕轴角和 NdN_d 个深度,原始候选量就是 NseedNaNrNdN_{\text{seed}}N_aN_rN_d。因此“使用 2,048 个点”不能说明候选预算,还必须给出每点方向数、深度数和前级拒绝比例。


解析几何过滤与碰撞检查(Analytic Filtering and Collision Checking)#

一个候选夹爪放入场景后,可以检查:

  1. 闭合区域内是否包含足够物体点;
  2. 两个夹指路径是否与物体或环境碰撞;
  3. 指尖之间是否存在近似对向接触(Antipodal Contact);
  4. 开口宽度是否处于硬件范围;
  5. 手掌和腕部扫掠体积(Swept Volume)是否安全。

解析过滤(Analytic Filtering)可以快速删除明显无效候选,但可见点云中的“无碰撞”不等于完整场景无碰撞。未观测背面和桌面边缘仍可能造成执行失败。

碰撞检查通常把夹爪拆成左指、右指、手掌和内部闭合区域四个长方体。把场景点 x⃗\vec x 变换到候选夹爪坐标系:

x⃗G=RT(x⃗−t⃗),\vec x_G=R^{\mathsf T}(\vec x-\vec t),

即可用轴对齐区间(Axis-Aligned Interval)判断点属于哪个体积。有效候选需要两个夹指和手掌体积中的点数低于碰撞阈值,同时闭合区域内存在足够物体点。为了容忍深度噪声,碰撞盒常向外膨胀几毫米;膨胀过小会漏掉真实碰撞,过大则会错误删除狭窄空间中的可行姿态。

接近路径还要检查从预抓取位姿到最终位姿的扫掠体积(Swept Volume)。只在终点放置一次夹爪模型,无法发现手掌沿途撞到邻物体的情况。


候选局部输入与视觉特征表示(Candidate-Centric Visual Representation)#

GPD 将夹爪闭合区域中的点投影成适合卷积神经网络(Convolutional Neural Network, CNN)的局部表示,再把候选分类为可抓或不可抓 [1,2]。关键思想是把每个候选转换到自己的夹爪坐标系,从而让网络关注接触附近的相对几何。

候选规范化后,GPD 类方法把闭合区域投影到多个正交平面,在栅格中编码占据情况与表面法线统计,得到固定尺寸的“手部图像”(Hand Image):

Ii∈RCH×HH×WH,I_i\in\mathbb R^{C_H\times H_H\times W_H},

其中 ii 表示第 ii 个抓取候选,CHC_H 是占据、深度或法线等局部几何通道,HH,WHH_H,W_H 是栅格尺寸。CNN 在这个局部图像上重复使用卷积核,先提取边缘和局部表面模式,再通过更深层特征判断两指之间是否存在合适的支撑几何。同一个物体在世界坐标中旋转后,只要候选相对接触几何相同,规范化图像就近似一致;网络因此不必同时学习全局物体姿态与局部夹持关系。

这一步也会丢失信息:投影把不同深度的点压到同一像素,固定栅格分辨率会抹平薄片和小间隙,而只裁剪闭合区域又看不到手腕外部的场景。实际流水线通常让局部网络负责接触评分,再让独立的全场景碰撞模块检查环境。

局部表示需要平衡:

  • 保留接触形状与空闲空间;
  • 对全局物体姿态不敏感;
  • 对点数和遮挡变化具有鲁棒性;
  • 能区分夹指碰撞、掌部碰撞和有效闭合。

如果只看很小的局部区域,模型可能无法判断候选属于哪个物体或是否会撞到邻居;如果输入整个场景,候选级评价成本又会显著上升。


点集网络的候选评分:PointNetGPD(Point-Set Scoring with PointNetGPD)#

PointNetGPD 将每个候选闭合区域内的原始点集直接送入 PointNet 风格编码器 [4]。点集网络通过对称聚合获得排列不变性(Permutation Invariance),避免手工投影和固定栅格。

具体地,候选点先用 x⃗G=RT(x⃗−t⃗)\vec x_G=R^{\mathsf T}(\vec x-\vec t) 变换到夹爪坐标系,再按闭合盒裁剪。由于每个候选包含的点数不同,训练批次通常随机采样或重复补齐到固定点数 MM,并按夹爪尺寸归一化坐标。PointNet 编码可写成:

h=max⁡j=1,…,Mϕ(x⃗Gj),q^=σ(ψ(h)),h=\max_{j=1,\ldots,M}\phi(\vec x_{Gj}), \qquad \hat q=\sigma(\psi(h)),

其中 ϕ\phi 是逐点多层感知机(Multi-Layer Perceptron, MLP),最大池化提供排列不变性,ψ\psi 输出可抓概率。若闭合区点数很少,重复补点不会创造几何信息;因此最小点数阈值仍是模型输入定义的一部分。

这种方法提升了局部表示的通用性,但仍是候选评价器(Candidate Evaluator),不是完整生成器。如果前端没有采到正确接近方向,PointNetGPD 无法从评分阶段创造新候选。


候选评分网络的监督训练(Supervised Training of Candidate Scorers)#

采样式方法中的网络通常不是直接输出完整的 SE(3)SE(3) 位姿,而是回答一个更局部的问题:给定候选 gig_i 及其局部点云,执行这个候选的可能性有多大。将候选点变换到自身坐标系后,记局部输入为 XiX_i,评分网络可以写成:

qi=fϑ(Xi,gi),qi∈[0,1].q_i=f_{\vartheta}(X_i,g_i), \qquad q_i\in[0,1].

这里 fϑf_{\vartheta} 可以是 GPD 中处理手部图像的 CNN,也可以是 PointNetGPD 中处理点集的 PointNet 风格网络。gig_i 是否显式输入取决于实现:如果 XiX_i 已经在候选夹爪坐标系中,位置和旋转通常已经通过坐标变换编码在局部点云里。

训练标签 yi∈{0,1}y_i\in\{0,1\} 或 yi∈[0,1]y_i\in[0,1] 来自解析判据、仿真抓取结果或真实机器人执行结果。二值标签下,候选评分可以使用二元交叉熵:

L(ϑ)=−1B∑i=1B[yilog⁡qi+(1−yi)log⁡(1−qi)],\mathcal L(\vartheta)= -\frac{1}{B} \sum_{i=1}^{B} \left[ y_i\log q_i+(1-y_i)\log(1-q_i) \right],

其中 B∈NB\in\mathbb N 是一个训练批次中的候选数量。正负候选通常严重不平衡,训练时需要正负采样、困难负样本挖掘(Hard-Negative Mining)或类别加权;否则网络可能通过大量预测“不可抓”获得表面上较高的准确率。

候选评分器的训练数据还必须记录候选是如何生成的。若训练集只包含经过强碰撞过滤的候选,网络学习到的是“过滤后的候选分布”;若测试时采样密度、法线估计或候选坐标系定义发生变化,评分结果可能明显退化。

Algorithm 1 训练采样式 6-DoF 候选评分网络
Input:
候选集合 G\mathcal G、局部点云或手部图像、标签 yiy_i、初始参数 ϑ\vartheta 和训练轮数
Output:
验证集上表现最好的评分网络参数 ϑ∗\vartheta^*
  1. for 对每个训练轮次
  2. for 从候选集合中采样一个包含正负样本的批次
  3. 将每个候选的局部几何变换到夹爪坐标系
  4. 生成局部表示 XiX_i 并计算 qi=fϑ(Xi,gi)q_i=f_{\vartheta}(X_i,g_i)
  5. 根据 qiq_i 与 yiy_i 计算分类或回归损失
  6. 反向传播并更新网络参数 ϑ\vartheta
  7. end for
  8. 在验证候选上比较损失、Recall@kk 和评分排序结果
  9. end for
  10. return 验证集选择的 ϑ∗\vartheta^*

推理时,评分网络只对已生成的候选计算 qiq_i,再结合碰撞、可达性和轨迹代价进行排序。因此,评分器的高分不能弥补候选生成阶段的覆盖不足。

6-DoF GraspNet:生成式候选生成(Generative Candidate Generation)#

前面的 GPD 和 PointNetGPD 都先用局部表面几何枚举候选,再由网络判断候选是否可抓。6-DoF GraspNet 改变的是候选的来源:它直接学习“一个物体可能在哪里、以什么方向被抓取”,用生成模型从部分点云提出一组 6-DoF 位姿 [3]。不过,它并不是一个从点云到最终机器人动作的单网络,而是由 Sampler—Evaluator—Refinement 三个环节组成:

环节输入输出解决的问题
Grasp Sampler物体点云 XX、潜变量 zz初始抓取 g(0)g^{(0)}生成多样候选
Grasp Evaluator物体点云 XX、夹爪姿态 gg成功概率 ss识别生成器产生的失败候选
Grasp RefinementEvaluator 的姿态梯度修正后的抓取 g(j+1)g^{(j+1)}将邻近候选推向更高分的位姿

三个环节并不是同一个端到端损失下联合训练的。Sampler 作为条件 VAE 学习成功抓取分布,Evaluator 使用正负抓取独立训练;推理时再把 Evaluator 的梯度用于修正 Sampler 的输出。论文将两者类比为生成器和判别器,但这里没有 GAN 的对抗训练。

输入、输出与学习目标(Inputs, Outputs, and Objective)#

论文处理的是已经从场景中分割出的单个目标物体。设深度相机得到的部分物体点云为:

X={x⃗n}n=1N,x⃗n∈R3,X=\{\vec x_n\}_{n=1}^{N}, \qquad \vec x_n\in\mathbb R^3,

其中 N∈NN\in\mathbb N 是点数。物体参考系的原点设在观测点云的中心,坐标轴与相机坐标系平行。对固定几何的平行夹爪,网络只预测夹爪的 6-DoF 位姿:

g=(R,t⃗)∈SE(3),R∈SO(3),t⃗∈R3.g=(R,\vec t)\in SE(3), \qquad R\in SO(3),\quad \vec t\in\mathbb R^3.

RR 和 t⃗\vec t 分别把夹爪从自身坐标系旋转、平移到物体点云坐标系;夹爪开口不是该网络的预测量。网络要输出的也不是唯一姿态,而是一组抓取候选:

G^={g1,g2,…,gK}.\widehat{\mathcal G} =\{g_1,g_2,\ldots,g_K\}.

这是因为成功抓取只占整个 SE(3)SE(3) 空间中的狭窄区域,而且通常具有多个彼此分离的模式。例如,杯口、杯身和把手附近可以形成不同的抓取模式。直接回归一个姿态会把多个模式压成一个结果,甚至得到落在模式之间的无效“平均姿态”;在整个 SE(3)SE(3) 空间均匀采样又需要极大的候选预算。6-DoF GraspNet 因此学习部分点云条件下的成功抓取分布:

p(G∗∣X),p(\mathcal G^*\mid X),

其中 G∗\mathcal G^* 是训练数据中能够成功夹持物体的抓取集合。

Grasp Sampler:从潜变量解码一个 6-DoF 抓取#

Grasp Sampler 是条件变分自编码器(Conditional Variational Autoencoder, CVAE)。它的关键不是让 VAE 一次输出整组候选,而是让同一个物体点云与不同潜变量分别生成不同抓取。训练和推理过程并不相同。

训练时,从 G∗\mathcal G^* 中取一个成功抓取 gg,编码器根据点云和该抓取预测潜变量分布:

qϕ(z⃗∣X,g),z⃗∈Rdz.q_{\phi}(\vec z\mid X,g), \qquad \vec z\in\mathbb R^{d_z}.

从该分布采样 z⃗\vec z 后,解码器根据同一个点云重建抓取:

g^=Gψ(X,z⃗).\hat g=G_{\psi}(X,\vec z).

在具体网络中,编码器会把真实抓取参数作为特征附加到点云中的各个点,学习“这个抓取相对于该物体位于哪里”;解码器则把同一个潜变量 z⃗\vec z 附加到点特征,通过 PointNet++ 的集合抽象层(Set-Abstraction Layer)提取局部到全局的点云特征。解码器最后输出三维平移和一个四维四元数(Quaternion);四元数经过 L2L_2 归一化后转换为旋转 RR。

为了同时衡量旋转和平移误差,论文没有直接把“米”和“弧度”相加,而是在标准夹爪模型上固定 MM 个点 {r⃗m}m=1M\{\vec r_m\}_{m=1}^{M},其中 r⃗m∈R3\vec r_m\in\mathbb R^3。姿态 g=(R,t⃗)g=(R,\vec t) 作用于夹爪点的结果为:

T(g;r⃗m)=Rr⃗m+t⃗∈R3.T(g;\vec r_m)=R\vec r_m+\vec t\in\mathbb R^3.

两个姿态之间的重建误差定义为变换后夹爪点的位置差:

Lpose(g,g^)=1M∑m=1M∥T(g;r⃗m)−T(g^;r⃗m)∥1.\mathcal L_{\mathrm{pose}}(g,\hat g) =\frac{1}{M}\sum_{m=1}^{M} \left\| T(g;\vec r_m)-T(\hat g;\vec r_m) \right\|_1.

将 VAE 目标写成最小化形式,其结构为:

Lsampler=Eqϕ(z⃗∣X,g)[Lpose(g,g^)]+βDKL(qϕ(z⃗∣X,g) ∥ N(0,Idz)),\mathcal L_{\mathrm{sampler}} =\mathbb E_{q_{\phi}(\vec z\mid X,g)} \left[\mathcal L_{\mathrm{pose}}(g,\hat g)\right] +\beta D_{\mathrm{KL}} \left(q_{\phi}(\vec z\mid X,g)\,\|\,\mathcal N(0,I_{d_z})\right),

其中第一项要求潜变量保留重建抓取所需的信息,第二项把潜空间约束到已知的标准正态先验。推理时不再有真实抓取 gg,因此直接删除编码器,重复采样:

z⃗k∼N(0,Idz),gk(0)=Gψ(X,z⃗k),k=1,…,K.\vec z_k\sim\mathcal N(0,I_{d_z}), \qquad g_k^{(0)}=G_{\psi}(X,\vec z_k), \qquad k=1,\ldots,K.

固定 XX、改变 z⃗k\vec z_k,就会得到一组不同位置和方向的抓取。论文实验选择 dz=2d_z=2,机器人实验一次采样 200 个潜变量。候选数量 KK 越大,越可能覆盖不同抓取模式,但推理、评价和精化成本也随之增加。

Sampler 只使用成功抓取训练,这并不意味着每个生成结果都成功。VAE 的潜空间是连续的,而不同成功模式之间可能隔着失败区域;解码器在两个模式之间插值时,可能生成与物体碰撞、离物体过远或没有将物体包在两指之间的姿态。这正是 Evaluator 必须存在的原因。

Grasp Evaluator:显式编码物体—夹爪相对几何#

Grasp Evaluator 学习的是给定观测和候选后的成功概率:

s=fω(X,g)≈p(S=1∣X,g),s∈[0,1].s=f_{\omega}(X,g)\approx p(S=1\mid X,g), \qquad s\in[0,1].

一种直接做法是把 RR、t⃗\vec t 拼接到物体的全局点云特征上,但论文实验发现这种表示的分类效果较差。原因是网络仍需从抽象的姿态参数中自行恢复两指、手掌和物体表面之间的空间关系。6-DoF GraspNet 改为把标准夹爪模型采样成 MM 个点,并按候选姿态变换:

Xg={x⃗mg=T(g;r⃗m)}m=1M,x⃗mg∈R3.X_g =\left\{\vec x_m^g=T(g;\vec r_m)\right\}_{m=1}^{M}, \qquad \vec x_m^g\in\mathbb R^3.

然后将物体点与夹爪点合并,并为每个点增加一个来源标记:

X~(g)={[x⃗nT,0]T}n=1N∪{[(x⃗mg)T,1]T}m=1M⊂R4.\widetilde X(g) =\left\{[\vec x_n^{\mathsf T},0]^{\mathsf T}\right\}_{n=1}^{N} \cup \left\{[(\vec x_m^g)^{\mathsf T},1]^{\mathsf T}\right\}_{m=1}^{M} \subset\mathbb R^4.

因此 Evaluator 实际处理的是一个 (N+M)×4(N+M)\times4 的带标记点集。PointNet/PointNet++ 风格的点集网络可以直接从局部邻域中观察夹爪点与物体点的关系,例如手指是否穿入可见表面、手掌是否离物体过远,以及两指之间是否存在物体点。这里的“夹爪点云”不是另一个传感器的观测,而是根据已知夹爪几何和候选位姿在软件中渲染出来的。

Evaluator 同时需要成功与失败抓取。二值标签 y∈{0,1}y\in\{0,1\} 下,它使用二元交叉熵:

Leval=−ylog⁡s−(1−y)log⁡(1−s).\mathcal L_{\mathrm{eval}} =-y\log s-(1-y)\log(1-s).

随机从整个 SE(3)SE(3) 空间采到的负样本大多离物体很远,太容易区分,不能训练出精细的决策边界。论文因此使用困难负样本挖掘(Hard-Negative Mining):先对成功抓取做小幅旋转和平移扰动,再保留那些与原成功姿态接近、但已经碰撞或离物体过远的失败抓取。论文生成困难负样本时在每个旋转轴上最多扰动 ±0.6\pm0.6 rad、平移最多扰动 ±3\pm3 cm。这样,Evaluator 学到的不是粗略的“夹爪是否靠近物体”,而是成功姿态附近的细微几何差异。

需要注意,ss 是在论文仿真标签和部分点云条件下学习到的成功分数,并不是解析力闭合指标。遮挡区域、材质、摩擦和物体质量没有被当前输入完整观测,网络只能依赖训练数据中的形状先验进行判断。

Grasp Refinement:将点级梯度转换为刚体位姿更新#

如果只用 Evaluator 过滤低分候选,许多“已经接近成功”的姿态仍会被直接丢弃。Grasp Refinement 的做法是固定网络参数,反向传播成功分数对候选姿态的梯度,再沿提高 ss 的方向更新抓取。

这里不能独立更新 XgX_g 中的每一个夹爪点,否则夹爪会被拉伸成非刚体形状。论文将抓取参数写成三维欧拉角和三维平移:

ξ⃗=[αβγtxtytz]T∈R6.\vec\xi =\begin{bmatrix} \alpha & \beta & \gamma & t_x & t_y & t_z \end{bmatrix}^{\mathsf T} \in\mathbb R^6.

再把全部夹爪点的坐标堆叠为:

u⃗(ξ⃗)=[T(g(ξ⃗);r⃗1)T⋯T(g(ξ⃗);r⃗M)T]T∈R3M.\vec u(\vec\xi) =\begin{bmatrix} T(g(\vec\xi);\vec r_1)^{\mathsf T} & \cdots & T(g(\vec\xi);\vec r_M)^{\mathsf T} \end{bmatrix}^{\mathsf T} \in\mathbb R^{3M}.

自动微分先得到成功分数对全部夹爪点坐标的梯度 ∇u⃗s∈R3M\nabla_{\vec u}s\in\mathbb R^{3M},再通过刚体变换的雅可比矩阵(Jacobian Matrix)把它转换为六维姿态梯度:

∇ξ⃗s=Ju⃗,ξ⃗T∇u⃗s∈R6,Ju⃗,ξ⃗=∂u⃗∂ξ⃗∈R3M×6.\nabla_{\vec\xi}s =J_{\vec u,\vec\xi}^{\mathsf T}\nabla_{\vec u}s \in\mathbb R^6, \qquad J_{\vec u,\vec\xi} =\frac{\partial\vec u}{\partial\vec\xi} \in\mathbb R^{3M\times6}.

第 jj 次精化使用梯度上升更新:

ξ⃗k(j+1)=ξ⃗k(j)+η∇ξ⃗sk(j),sk(j)=fω(X,g(ξ⃗k(j))),\vec\xi_k^{(j+1)} =\vec\xi_k^{(j)} +\eta\nabla_{\vec\xi}s_k^{(j)}, \qquad s_k^{(j)}=f_{\omega}\left(X,g(\vec\xi_k^{(j)})\right),

其中 η∈R>0\eta\in\mathbb R_{>0} 是步长。由于一阶梯度只在当前姿态附近可靠,论文限制步长,使单次更新的最大平移不超过 11 cm。更新姿态后需要重新渲染夹爪点云、再次前向计算成功分数,再进行下一轮反向传播。

例如,Sampler 可能在碗口附近生成一个两指之间还没有包住碗壁的候选。Evaluator 从物体点与夹爪点的相对位置给出低分;其梯度经过上述雅可比矩阵转换后,会同时调整夹爪的平移和朝向,而不是任意移动某一个夹爪点。经过数次更新,候选可能进入训练数据中更像成功抓取的区域。这个过程只保证提升 Evaluator 的预测分数,不保证真实物理成功;错误的评分函数或局部极值仍会导致失败。

完整推理流程(Complete Inference Procedure)#

Algorithm 2 6-DoF GraspNet 的候选生成、评价与精化
Input:
部分物体点云 XX、训练好的 Sampler GψG_{\psi}、Evaluator fωf_{\omega}、候选数 KK、精化步数 JJ 和分数阈值 τs\tau_s
Output:
精化后且分数不低于 τs\tau_s 的抓取集合 G^\widehat{\mathcal G}
  1. 采样 z⃗1,…,z⃗K∼N(0,Idz)\vec z_1,\ldots,\vec z_K\sim\mathcal N(0,I_{d_z})
  2. 批量生成初始姿态 gk(0)=Gψ(X,z⃗k)g_k^{(0)}=G_{\psi}(X,\vec z_k)
  3. for 精化轮次 j=0,…,J−1j=0,\ldots,J-1
  4. 将标准夹爪点变换到各个 gk(j)g_k^{(j)},得到 Xgk(j)X_{g_k^{(j)}}
  5. 合并物体点和带来源标记的夹爪点,计算 sk(j)s_k^{(j)}
  6. 反向传播 ∇u⃗sk(j)\nabla_{\vec u}s_k^{(j)},并用 Ju⃗,ξ⃗TJ_{\vec u,\vec\xi}^{\mathsf T} 得到姿态梯度
  7. 限制更新幅度,并令 ξ⃗k(j+1)=ξ⃗k(j)+η∇ξ⃗sk(j)\vec\xi_k^{(j+1)}=\vec\xi_k^{(j)}+\eta\nabla_{\vec\xi}s_k^{(j)}
  8. end for
  9. 重新计算最终成功分数,删除 sk(J)<τss_k^{(J)}\lt\tau_s 的候选
  10. return G^={gk(J)∣sk(J)≥τs}\widehat{\mathcal G}=\{g_k^{(J)}\mid s_k^{(J)}\geq\tau_s\}

算法框给出的是 6-DoF GraspNet 的核心网络流程。论文中的网络只针对分割后的单个目标物体,并不把邻近物体、机械臂可达性或完整接近轨迹作为网络输入;真实机器人实验在网络返回候选后,另用运动规划器检查无碰撞路径并执行最高分的可行抓取。因此,这项工作的准确定位是:从部分物体点云学习多样的候选分布,再用可微成功模型过滤并局部修正候选。


数据集与监督信号(Datasets and Supervision)#

6-DoF GraspNet 的仿真监督(Simulation Supervision in 6-DoF GraspNet)#

6-DoF GraspNet 的训练数据不是 ACRONYM,而是作者用 FleX 物理模拟器为 6-DoF GraspNet 单独生成的抓取数据。作者从物体表面采样点,将夹爪的接近轴与表面法线对齐,再随机设置夹爪到表面的距离和绕接近轴的旋转;只有闭合区域包含物体且初始姿态不碰撞的候选才进入抓取模拟。数据包含 206 个物体模型,先生成 10,816,720 个候选,其中 7,074,038 个通过非空闭合区域检查并实际模拟,最终得到 2,104,894 个成功抓取标签 [3]。

模拟中的平行夹爪和物体是自由运动的,仿真不使用重力,并固定表面摩擦系数和物体密度。夹爪完成闭合后还会执行预定义的摇晃动作;如果物体仍保持在两指之间,就把该姿态标为成功。摩擦系数、物体密度、夹爪几何和摇晃协议都会影响这个标签。因此,Evaluator 学到的是“在该仿真设置下抓取成功的概率”,而不是脱离夹爪和物体参数的普适物理真值。论文随后直接将只用仿真训练的模型用于真实机器人实验,这也是其 sim-to-real 结果需要重点解读的地方。

仿真数据集:ACRONYM(Simulation Dataset)#

ACRONYM 提供 17.744M 个物理仿真平行夹爪抓取,覆盖 8,872 个物体和 262 个类别 [5]。大规模仿真使生成器能够看到更多形状和姿态,但标签继承了网格、摩擦、质量、接触求解器和夹爪模型的假设。

监督信号的语义(Semantics of Supervision)#

采样式检测器常混合三种监督:

  • 解析对向/力闭合标签(Analytic Antipodal / Force-Closure Label);
  • 仿真抓取结果(Simulation Outcome);
  • 真实机器人成功或失败(Physical Outcome)。

解析标签通常判断几何和摩擦模型下的理论可抓性,仿真标签还会受到碰撞、接触求解和物体参数影响,真实标签则包含深度误差、标定误差、运动规划和夹爪执行误差。训练标签决定评分器学习的“质量”语义,不能仅用网络结构名称概括。

因此,比较两个候选评分网络时,至少要同时报告候选来源、标签来源、碰撞过滤规则和候选预算。相同的网络结构在不同标签语义下训练,得到的分数并不一定具有相同含义。


候选聚类、去重与排序(Candidate Clustering, Deduplication, and Ranking)#

大量候选会集中在同一物体表面。常见后处理包括:

  • 非极大值抑制(Non-Maximum Suppression, NMS);
  • SE(3)SE(3) 距离聚类(SE(3) Distance Clustering);
  • 按物体或接触区域保留多样候选;
  • 碰撞、可达性和轨迹代价重新排序。

在 SE(3)SE(3) 中,平移与旋转没有天然统一量纲,距离函数需要人为设置权重。平行夹爪还具有约 180∘180^\circ 平面对称性,相同物理抓取可能有两个旋转表示。如果不处理对称性,聚类和损失都会重复计算等价姿态。

Efficient and Accurate Candidate Generation 进一步优化了 SE(3)SE(3) 候选生成效率 [6];Automatic Grasp Pose Generation 则通过解析接触、摩擦与聚类保留多样候选 [7]。这些方法强调:候选生成本身就是独立研究问题。


评测协议与报告指标(Evaluation Protocols and Metrics)#

采样式 6-DoF 方法至少需要区分候选生成和候选评分两个环节。一个评分网络可能在给定候选上排序很好,但如果生成器没有覆盖正确姿态,最终系统仍然无法成功抓取。

候选覆盖与 Top-kk 质量(Candidate Coverage and Top-kk Quality)#

若测试场景有参考抓取集合 G∗\mathcal G^*,可以在固定位姿距离阈值下判断候选是否覆盖某个参考抓取。一个抽象的覆盖率写法是:

Recall⁡@K=1N∑n=1N1[∃i≤K,dSE(3)(gi,gn∗)<τ],\operatorname{Recall}@K =\frac{1}{N} \sum_{n=1}^{N} \mathbf 1 \left[ \exists i\le K, d_{SE(3)}(g_i,g_n^*)<\tau \right],

其中 NN 是测试场景或参考抓取数量,gig_i 是排序后的候选,gn∗g_n^* 是参考抓取,dSE(3)d_{SE(3)} 是同时考虑平移和旋转的距离,τ\tau 是评价阈值。具体的平移、旋转和开口容差必须随协议报告,不能只给出一个没有定义的 Recall 数字。

Top-kk 抓取成功率还要说明 kk、候选是否经过碰撞过滤,以及“成功”来自解析判据、仿真执行还是真实机器人执行。候选数量增加通常会提高覆盖率,但也会增加评分和碰撞检查成本。

需要共同报告的系统量(System-Level Quantities)#

  • 原始采样候选数与每个场景的采样预算;
  • 解析过滤、碰撞检查和 NMS 后的候选数;
  • 候选生成时间、单候选评分时间和总推理延迟;
  • Recall@kk、Top-kk 质量和候选多样性;
  • 仿真或真实机器人抓取成功率,以及失败原因。

只有在这些量使用相同候选预算、相同过滤规则和相同测试划分时,不同采样式方法之间的比较才有意义。

候选覆盖率、评分质量与计算成本(Coverage, Scoring Quality, and Cost)#

采样式 6-DoF 检测的核心矛盾可以写成:

Coverage↑⟹Ncandidate↑⟹Scoring and Collision Cost↑.\text{Coverage}\uparrow \quad\Longrightarrow\quad N_{\text{candidate}}\uparrow \quad\Longrightarrow\quad \text{Scoring and Collision Cost}\uparrow.

提高评分器准确率不能解决候选缺失;扩大候选集合又会增加计算和多重比较。实用系统通常需要在下面几项之间折中:

变量过低的后果过高的后果
表面采样密度漏掉小物体和窄接触候选爆炸
方向采样数接近方向覆盖不足旋转评价成本高
局部区域大小缺少上下文输入冗余、混入邻物体
碰撞模型精度执行碰撞过滤耗时
聚类阈值重复姿态多删除不同抓取模式

采样式方法的价值在于可解释、易结合解析约束,并能明确观察候选覆盖和碰撞过程。它的局限也同样清晰:前端采样质量决定了后端模型能力的上限。

若把每个候选独立命中某个可行模式的概率粗略记为 pp,采样 NN 次至少命中一次的概率为:

P(hit)=1−(1−p)N.P(\text{hit})=1-(1-p)^N.

真实候选并不独立:相邻种子点、相近法线和小角度步长会产生大量相关样本,因此实际覆盖增长慢于上式。非极大值抑制删除重复候选时,又可能把同一位置但不同接近方向的两个有效模式合并。复现实验最好同时报告原始候选数、解析过滤后数量、NMS 后数量、评分耗时与最终 Recall@kk,这样才能判断瓶颈发生在生成、过滤还是排序。


参考文献(References)#

  1. M. Gualtieri, A. ten Pas, K. Saenko, and R. W. Platt, “High Precision Grasp Pose Detection in Dense Clutter,” 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2016. DOI ↗
  2. A. ten Pas, M. Gualtieri, K. Saenko, and R. W. Platt, “Grasp Pose Detection in Point Clouds,” The International Journal of Robotics Research, 2017. DOI ↗
  3. A. Mousavian, C. Eppner, and D. Fox, “6-DOF GraspNet: Variational Grasp Generation for Object Manipulation,” 2019 IEEE/CVF International Conference on Computer Vision, 2019. DOI ↗
  4. H. Liang et al., “PointNetGPD: Detecting Grasp Configurations from Point Sets,” 2019 International Conference on Robotics and Automation, 2019. DOI ↗
  5. C. Eppner, A. Mousavian, and D. Fox, “ACRONYM: A Large-Scale Grasp Dataset Based on Simulation,” 2021 IEEE International Conference on Robotics and Automation, 2021. DOI ↗
  6. A. ten Pas, C. Keil, and R. W. Platt, “Efficient and Accurate Candidate Generation for Grasp Pose Detection in SE(3),” 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2021. DOI ↗
  7. K. Kleeberger, F. Roth, R. Bormann, and M. F. Huber, “Automatic Grasp Pose Generation for Parallel Jaw Grippers,” Lecture Notes in Networks and Systems, 2022. DOI ↗
Robotic Grasp Detection (4): 基于点云的采样式 6-DoF 抓取检测
https://hana-blog.pages.dev/blog/robotic-grasp-detection-4
Author 菊花花
Published at August 14, 2026
Comment seems to stuck. Try to refresh?✨