Hana's Blog
Robotic Grasp Detection (5): 稠密、接触中心与体素抓取表示Blur image

稠密抓取表示的统一视角(A Unified View of Dense Grasp Representations)#

第(4)篇讨论的采样式方法先提出很多候选,再逐个提取局部几何并评分。本篇讨论另一条路线:网络先对一组空间锚点(Spatial Anchors)共享计算特征,再在锚点处直接预测抓取参数。这样做的重点不是“输出一张更密的图”,而是把原本在连续 SE(3)SE(3) 中进行的搜索,改写成有限锚点上的并行回归、分类和后处理。

设输入点云为:

P={p⃗i}i=1N,p⃗i∈R3,P=\{\vec p_i\}_{i=1}^{N}, \qquad \vec p_i\in\mathbb R^3,

网络在一个锚点 a⃗j∈R3\vec a_j\in\mathbb R^3 附近输出一个抓取预测。平行夹爪的完整抓取可以写为:

gj=(Rj,t⃗j,wj),Rj∈SO(3),t⃗j∈R3,wj∈R≥0,g_j=(R_j,\vec t_j,w_j), \qquad R_j\in SO(3),\quad \vec t_j\in\mathbb R^3,\quad w_j\in\mathbb R_{\geq0},

其中 RjR_j 是夹爪朝向,t⃗j\vec t_j 是夹爪参考点在场景坐标系中的位置,wjw_j 是执行时的夹爪开口。不同工作并不一定直接预测这三个量:有的方法预测接触点和两个方向,有的方法预测体素中心和四元数,有的方法预测区域内的旋转热图。只要最终能够解码为 (Rj,t⃗j,wj)(R_j,\vec t_j,w_j),它们就属于同一类问题。

可以把一个稠密预测器抽象为:

Fϑ(P)={(sj,δj,ρj,ωj)}j=1M,F_{\vartheta}(P) =\{(s_j,\delta_j,\rho_j,\omega_j)\}_{j=1}^{M},

其中 MM 是锚点数,sjs_j 是该锚点的抓取分数或前景分数,δj\delta_j 是位置修正,ρj\rho_j 是方向表示,ωj\omega_j 是宽度表示。解码器 DD 再将它们变成有限候选集合:

G^=D(Fϑ(P))={g1,…,gK}.\widehat{\mathcal G} =D\left(F_{\vartheta}(P)\right) =\{g_1,\ldots,g_K\}.

这里有三个容易混淆的概念:

  1. **锚点(Anchor)**是网络输出所在的空间位置,例如输入点、体素中心或局部区域中心;
  2. **预测参数(Predicted Parameters)**是锚点附近的方向、中心偏移、深度和宽度;
  3. **候选抓取(Decoded Grasp)**是经过坐标恢复、碰撞过滤和非极大值抑制后真正交给规划器的姿态。

因此,稠密网络并没有把连续的抓取空间完全消除。点采样密度、体素边长、方向桶、局部区域大小和解码规则共同决定了它能够覆盖哪些抓取。

为什么要改变抓取表示(Why Change the Representation)#

直接从点云回归一个 SE(3)SE(3) 姿态有两个困难。第一,成功抓取通常是多模态的:一个杯子可能有杯身、杯口和把手等不同抓取模式。第二,抓取成功区域很窄,几毫米的平移或几度的旋转都可能改变接触和碰撞关系。若网络在一个锚点上只回归单个平均姿态,两个正确模式的平均值可能落在失败区域。

稠密表示通常通过以下方式缓解这个问题:

  • 用大量空间锚点表达“在哪里可能抓”;
  • 用方向分类或方向锚点代替一次性回归任意旋转;
  • 用接触点、区域或体素中心把位置预测绑定到可观测几何;
  • 用宽度、深度和质量头把不同物理量分开监督;
  • 在网络输出之后保留多个峰值,而不是只取全局最大值。

这种分解带来的代价是标签生成和解码更加重要。网络的损失下降,并不自动意味着最终候选覆盖率高;如果正样本只落在少数锚点,模型仍可能漏掉细把手、背面接触或相邻物体之间的窄空间。

点级直接预测:PointNet++ Grasping(Point-Wise Direct Prediction)#

将输入点作为抓取锚点#

PointNet++ Grasping 的出发点是:如果测试时仍然需要先随机采样候选,稀疏点云中的小物体和细结构可能需要大量采样才能被碰到。因此,它让点云中的每个输入点直接承担一个潜在抓取锚点的角色,使用 PointNet++ 的层次化点特征一次预测多个空间抓取 [1]。

论文采用平行夹爪、已知夹爪几何和单深度相机等假设,并进一步假设夹爪接近方向沿抓取点处的表面法线。对一个点级抓取,论文使用以下几何量:

gi=(p⃗i,n⃗i,r⃗i,di),g_i=(\vec p_i,\vec n_i,\vec r_i,d_i),

其中 p⃗i∈R3\vec p_i\in\mathbb R^3 是抓取点,n⃗i∈R3\vec n_i\in\mathbb R^3 是单位接近向量,r⃗i∈R3\vec r_i\in\mathbb R^3 是夹爪开口方向,di∈Rd_i\in\mathbb R 是相对于抓取点沿接近方向的距离。论文的网络同时预测点是否适合产生抓取、n⃗i\vec n_i 和 r⃗i\vec r_i;接近距离则根据抓取点下方点云的最深位置和夹爪允许的最大深度计算,而不是作为一个完全自由的回归量。

在解码时,n⃗i\vec n_i 和 r⃗i\vec r_i 需要先规范化并正交化。可以将开口方向投影到垂直于接近方向的平面:

r⃗i⊥=r⃗i−(r⃗iTn⃗i)n⃗i,b⃗i=r⃗i⊥∥r⃗i⊥∥2.\vec r_i^{\perp} =\vec r_i-(\vec r_i^{\mathsf T}\vec n_i)\vec n_i, \qquad \vec b_i =\frac{\vec r_i^{\perp}}{\lVert\vec r_i^{\perp}\rVert_2}.

若 ∥r⃗i⊥∥2\lVert\vec r_i^{\perp}\rVert_2 太小,说明网络预测的两个方向近似平行,无法形成稳定的夹爪坐标系,该点应被拒绝或使用回退方向。这个数值检查是“向量回归”与“可执行姿态”之间的必要接口。

为什么需要多掩码损失#

PointNet++ Grasping 的训练标签来自单物体抓取规划和多物体场景构造。单物体阶段使用 Ferrari–Canny 力闭合指标(Ferrari–Canny Force-Closure Metric)评估抓取,并为同一位置保留主抓取和补充抓取;多物体阶段还要进行场景碰撞检查。这样得到的每个场景点并不一定同时拥有所有标签:

  • 背景点没有法线抓取标签;
  • 负抓取点可以有“不可抓”标签,但没有有效姿态回归目标;
  • 正抓取点才有方向、质量和类别等监督。

因此,论文为每个点附带不同任务的掩码(Mask),分别控制法线、开口方向、抓取类别和质量损失。用 mi(u)∈{0,1}m_i^{(u)}\in\{0,1\} 表示第 uu 个任务在点 ii 上是否有标签,y^i(u)\hat y_i^{(u)} 和 yi(u)y_i^{(u)} 分别表示预测与标签,则一个带掩码的回归损失可以写成:

Lu=1∑imi(u)+ϵ∑i=1Nmi(u) ℓu(y^i(u),yi(u)),\mathcal L_u =\frac{1}{\sum_i m_i^{(u)}+\epsilon} \sum_{i=1}^{N} m_i^{(u)}\,\ell_u\left(\hat y_i^{(u)},y_i^{(u)}\right),

其中 ϵ>0\epsilon>0 防止一个批次中没有该类标签时除零。掩码的作用不是忽略困难样本,而是避免把“没有定义的姿态”误当成零向量监督。若背景点被大量填成零角度和零宽度,网络会学到数据集编码习惯,而不是抓取几何。

PointNet++ 的 Set-Abstraction 层先在不同半径内聚合局部点,再通过 Feature-Propagation 层把特征传播回点级输出。相比逐候选 CNN,这种结构不需要为每个候选重新裁剪局部输入;相比纯全局池化,它还保留了点的空间邻域。但它的性能上限仍受点云采样影响:如果细把手在输入中没有足够点,点级头部没有新的几何信息可以恢复它。

接触中心表示:Contact-GraspNet(Contact-Centric Generation)#

从完整位姿改写为接触点加方向#

Contact-GraspNet 的关键观察是:对于大多数可预测的平行夹爪抓取,至少有一个指尖接触点在抓取前可见。与其在整个 SE(3)SE(3) 空间预测夹爪参考点,不如先在观测表面上预测“哪个点可以作为接触”,再从该点恢复夹爪姿态 [2]。

设 c⃗∈R3\vec c\in\mathbb R^3 是一个可见接触点,a⃗∈R3\vec a\in\mathbb R^3 是单位接近方向,b⃗∈R3\vec b\in\mathbb R^3 是单位夹爪基线方向,且二者正交:

∥a⃗∥2=1,∥b⃗∥2=1,a⃗Tb⃗=0.\lVert\vec a\rVert_2=1, \qquad \lVert\vec b\rVert_2=1, \qquad \vec a^{\mathsf T}\vec b=0.

设 d∈Rd\in\mathbb R 是夹爪基线到夹爪参考坐标原点的固定距离,w∈R≥0w\in\mathbb R_{\geq0} 是夹爪开口,则论文使用:

t⃗g=c⃗+w2b⃗+da⃗,\vec t_g =\vec c+\frac{w}{2}\vec b+d\vec a,

以及:

Rg=[b⃗a⃗×b⃗a⃗]∈SO(3).R_g =\begin{bmatrix}\vec b & \vec a\times\vec b & \vec a\end{bmatrix} \in SO(3).

这里 c⃗\vec c 可以理解为其中一个指尖接触位置:沿 b⃗\vec b 方向移动 ww 后,另一侧理想接触位置约为 c⃗+wb⃗\vec c+w\vec b;夹爪参考点则位于两接触位置的中间并沿 a⃗\vec a 偏移。这个参数化把位置的一部分直接绑定到真实观测表面,因此比任意回归 t⃗g∈R3\vec t_g\in\mathbb R^3 更容易产生靠近物体的候选。

网络首先预测两个三维向量,再用 Gram–Schmidt 正交化(Gram–Schmidt Orthonormalization)得到 a⃗\vec a 和 b⃗\vec b。设网络原始输出为 z⃗1,z⃗2∈R3\vec z_1,\vec z_2\in\mathbb R^3,一种实现为:

b⃗^=z⃗1∥z⃗1∥2,a⃗^=z⃗2−(b⃗^Tz⃗2)b⃗^∥z⃗2−(b⃗^Tz⃗2)b⃗^∥2.\hat{\vec b}=\frac{\vec z_1}{\lVert\vec z_1\rVert_2}, \qquad \hat{\vec a} =\frac{\vec z_2-(\hat{\vec b}^{\mathsf T}\vec z_2)\hat{\vec b}} {\left\|\vec z_2-(\hat{\vec b}^{\mathsf T}\vec z_2)\hat{\vec b}\right\|_2}.

如果分母接近零,说明两个原始方向无法稳定构造旋转,推理时应降低置信度或丢弃候选。网络因此不必依靠损失函数“希望”两个向量正交,而是把正交约束写进解码过程。

训练标签如何投影到观测点#

Contact-GraspNet 使用 ACRONYM 的大规模网格抓取标注,并把物体网格上的成功抓取映射到可见场景点。具体过程包含三个坐标和邻域关系:

  1. 在离线网格上记录每个非碰撞成功抓取与物体表面的接触点;
  2. 从随机相机视角渲染部分场景点云;
  3. 若一个观测点与某个网格接触点的距离不超过 5 mm5\,\mathrm{mm},就把它标为正接触点,并关联距离最近的成功抓取。

于是,一个点级正标签不只是“这个点附近存在成功抓取”,还携带对应的 RgR_g、t⃗g\vec t_g 和 ww。如果一个点附近有多个成功模式,训练时选择最近或关联的抓取并不等于完整表示了所有模式;Contact-GraspNet 通过在整个可见点集上保留大量接触点来近似覆盖这些模式。

网络采用 PointNet++ 风格的编码器—解码器。论文实现中先输入约 20,00020{,}000 个随机点,再选择 2,0482{,}048 个最远点(Farthest Points)产生输出,以在显存限制下保持空间覆盖。每个输出点有四类预测:接触成功分数、两个三维方向向量,以及十个宽度区间的分类得分。

为什么姿态损失要和接触置信度耦合#

仅对每个输出头分别计算损失,会出现一个问题:网络可能在错误的位置预测了一个看似合理的姿态。论文在夹爪模型上选取五个固定点 {v⃗m}m=15\{\vec v_m\}_{m=1}^{5},把真实姿态和预测姿态作用到这些点上:

v⃗m ∗=Rgv⃗m+t⃗g,v⃗^m=R^gv⃗m+t⃗^g,v⃗m ∗,v⃗^m∈R3.\vec v_m^{\,*} =R_g\vec v_m+\vec t_g, \qquad \hat{\vec v}_m =\hat R_g\vec v_m+\hat{\vec t}_g, \qquad \vec v_m^{\,*},\hat{\vec v}_m\in\mathbb R^3.

对每个正接触点,计算预测夹爪点集与最近真实抓取点集之间的平均距离,并乘以预测接触分数。用 s^i\hat s_i 表示点 ii 的预测接触分数,用 Gi∗\mathcal G_i^* 表示与它关联的真实抓取集合,可以写成:

Ladd−s=1N+∑i∈P+s^imin⁡g∗∈Gi∗[15∑m=15∥v⃗^im−v⃗im ∗∥2],\mathcal L_{\mathrm{add-s}} =\frac{1}{N_+} \sum_{i\in\mathcal P_+} \hat s_i \min_{g^*\in\mathcal G_i^*} \left[ \frac{1}{5}\sum_{m=1}^{5} \left\|\hat{\vec v}_{im}-\vec v_{im}^{\,*}\right\|_2 \right],

其中 P+\mathcal P_+ 是正接触点集合,N+=∣P+∣N_+=|\mathcal P_+|。这个损失形成了一个有用的闭环:若预测的姿态离所有真实抓取都很远,接触分数不能仅凭位置特征维持高值;若一个点附近存在多个真实抓取,最小距离允许网络学习其中任意一个模式。论文还对接触分数的二元交叉熵只反向传播误差最大的前 512512 个点,以缓解正负点数量严重不平衡。

推理时如何从接触点得到场景抓取#

推理流程不是“得到接触点就执行”,还需要把接触候选变成完整机器人姿态:

  1. 从点云特征输出每个点的接触分数、方向和宽度;
  2. 依据分数保留可见接触点,并将两个方向正交化;
  3. 根据 t⃗g=c⃗+w2b⃗+da⃗\vec t_g=\vec c+\frac{w}{2}\vec b+d\vec a 解码平移,根据 RgR_g 解码旋转;
  4. 在目标物体分割区域内关联接触点,删除接触点落在其他物体或背景上的候选;
  5. 进行夹爪碰撞、运动学可达性和候选去重检查。

接触表示的局限也正来自它的优点:它把抓取锚定在可见表面。如果一个可靠抓取需要两个都被遮挡的接触,或者可见表面与真实接触之间存在较大深度误差,网络需要依靠形状先验外推,不能从接触参数化中凭空获得隐藏几何。

Graspness:把候选预算分配到可抓区域(Graspness as a Proposal Prior)#

Contact-GraspNet 直接从点生成姿态;Graspness Discovery / GSNet 则进一步把问题拆成“哪里值得花计算”和“在这里如何抓”两步 [3]。抓取性(Graspness)不是某个固定的力学指标,而是对一个点或一个点—接近方向组合,在给定候选生成规则下成功抓取比例的统计描述。

抓取性标签不是点的固有属性#

设点云中第 ii 个点为 p⃗i\vec p_i,在其周围对第 jj 个接近方向生成候选集合 Gi,j\mathcal G_{i,j}。如果 q(g)q(g) 是解析抓取质量,τq\tau_q 是“可接受抓取”的阈值,则一个可操作的点级抓取性标签可以写为:

sip=∑j∑g∈Gi,j1[q(g)>τq]∑j∣Gi,j∣.s_i^{\mathrm p} =\frac{\sum_j\sum_{g\in\mathcal G_{i,j}} \mathbf 1[q(g)>\tau_q]} {\sum_j|\mathcal G_{i,j}|}.

同一个点如果换一套深度采样、摩擦系数、夹爪尺寸或碰撞规则,sips_i^{\mathrm p} 就会改变。因此 Graspness 不是物体表面自带的真值,而是“点 + 候选生成协议 + 质量判据”的函数。场景中还要额外考虑邻物体碰撞,并将物体模型上的标签通过最近邻映射到部分观测点。

除了点级分数,GSNet 还为每个点的多个接近方向预测视角级抓取性:

s⃗iv=[si,1v,…,si,Vv]∈[0,1]V,\vec s_i^{\mathrm v} =\left[s_{i,1}^{\mathrm v},\ldots,s_{i,V}^{\mathrm v}\right] \in[0,1]^V,

其中 VV 是球面上采样的接近方向数。点级分数回答“这里有没有希望”,视角级分数回答“从哪个方向靠近更有希望”。两者分开后,网络不会为整片场景的所有点都计算昂贵的方向条件姿态。

GSNet 的级联结构#

GSNet 使用稀疏三维卷积的编码器—解码器提取点特征,随后使用级联抓取性模型(Cascaded Graspness Model):

  1. Objectness:区分物体表面点与背景点;
  2. Point-wise Graspness:为物体点输出点级抓取性;
  3. Graspable FPS:只在高抓取性点中使用最远点采样,保留空间多样性;
  4. View-wise Graspness:对每个种子点的多个球面方向打分;
  5. Probabilistic View Selection:按照视角分数形成概率并选择点—视角对;
  6. Grasp Operation:在选中的点—视角对周围建立定向圆柱,提取局部点并预测抓取分数、宽度、绕轴角和接近深度。

论文实现中先从场景选择 M=1024M=1024 个种子点,对每个点采样 V=300V=300 个视角;在抓取操作阶段,圆柱局部区域采样 K=16K=16 个点,绕接近方向离散为 A=12A=12 个角度,接近深度离散为 D=4D=4 个类别。因此,一个种子点—视角对并不只对应一个姿态,而对应 A×D=48A\times D=48 个角度—深度组合,每个组合输出抓取分数和夹爪宽度。

这种设计的计算逻辑是:先用廉价的点级和视角级预测缩小搜索,再用局部 PointNet 对少量候选进行精细操作。若点级阈值过高,真正可抓区域在第一阶段就会被删除;若阈值过低,后面的圆柱分组和 4848 个组合预测又会失去效率优势。

GSNet 的抓取分数使用与最小摩擦系数相关的归一化质量,并通过多任务损失同时训练物体性、点级抓取性、视角抓取性、抓取分数和宽度。这个例子说明“抓取性”最好被理解为候选生成的先验,而不能直接当作最终执行成功概率。

区域级表示:从一个点扩大到一个局部抓取空间(Region-Level Representation)#

点级锚点计算高效,但单个点的特征未必包含完整夹爪闭合区域中的几何。REGNet 因此先从点云中分割物体表面和抓取区域,再在区域内预测和精化姿态 [4]。

REGNet:区域提议与闭合区域精化#

REGNet 的流程可以拆成三个网络:

  • Segmentation Network, SN:输出点级物体/背景分数;
  • Grasp Region Network, GRN:在正物体点周围构造球形抓取区域,使用区域点特征产生粗抓取提议;
  • Refine Network, RN:将粗抓取的闭合区域变换到抓取坐标系,并融合区域特征与闭合区域特征进行精化。

GRN 使用抓取锚点(Grasp Anchor)而不是直接回归任意旋转。对正点 p⃗a\vec p_a,预先在球面上设置一组参考方向 r⃗a,i\vec r_{a,i},每个方向对应一个候选方向类别;网络预测最接近的锚点类别及其残差,同时回归中心偏移和绕接近轴角度。分类负责把预测拉到正确的方向邻域,Smooth-L1L_1 回归负责在该邻域内提高精度。

RN 的输入不是单个点,而是候选夹爪闭合体积中的点集。点首先被变换到候选抓取坐标系:

x⃗G=RT(x⃗−t⃗),x⃗,t⃗∈R3,R∈SO(3).\vec x_G=R^{\mathsf T}(\vec x-\vec t), \qquad \vec x,\vec t\in\mathbb R^3, \quad R\in SO(3).

这样,网络看到的是“夹爪相对于局部几何的关系”,而不是依赖相机坐标系中的绝对姿态。REGNet 的区域设计解决了单点上下文不足的问题,但也带来两类误差:正点选择错误会让后续没有正确区域;区域半径过小看不到完整闭合几何,过大则会混入邻物体并增加计算量。

TransGrasp 从特征聚合角度处理相似问题。它仍然以点为输出锚点,但用多尺度局部—全局 Transformer(Multi-Scale Local-Global Transformer)建模远距离点之间的关系,并用层次化协同注意力上采样(Hierarchical Co-Attention Upsampling)把高层场景信息传回较密的点集 [5]。这类关系对抓取很有用:远处的物体轮廓和邻物体位置能够帮助网络判断候选是否会发生碰撞,而不同尺度的局部几何能够减轻点云密度不均匀的影响。TransGrasp 的 7-DoF 输出把夹爪宽度作为 6-DoF 位姿之外的一个量,仍然可以在平行夹爪抓取的解码阶段还原为 (R,t⃗,w)(R,\vec t,w)。它说明“稠密表示”的改进不只发生在输出头,也可以发生在锚点之间如何共享上下文。

Normalized Grasp Space:先归一化再预测区域姿态#

Region-Aware Grasp Framework with Normalized Grasp Space 进一步关注区域尺度和相机距离变化 [8]。它以 RGB-D 图像为输入,先用抓取位置热图找到区域中心,再依据深度生成真实尺度近似恒定的局部 patch。设 patch 中心深度为 zi∈R>0z_i\in\mathbb R_{>0},相机焦距为 F∈R>0F\in\mathbb R_{>0},参考物理感受野为 wref∈R>0w_{\mathrm{ref}}\in\mathbb R_{>0},则 patch 在图像上的边长可写为:

ri=wrefFzi.r_i=\frac{w_{\mathrm{ref}}F}{z_i}.

相机越远,同样的真实物理区域占用的像素越小,因此 rir_i 随 1/zi1/z_i 缩放。裁剪得到的 RGB-D patch 会通过相机内参转成 XYZ 坐标图。设 patch 的三维坐标张量为 Pi∈RS×S×3P_i\in\mathbb R^{S\times S\times3},中心三维点为 p⃗i∈R3\vec p_i\in\mathbb R^3,归一化后的局部输入为:

Pi∗=Pi−p⃗iwref.P_i^*=\frac{P_i-\vec p_i}{w_{\mathrm{ref}}}.

抓取标签也必须进行同样变换。若场景中的真实抓取为 (Rj,t⃗j,wj)(R_j,\vec t_j,w_j),只保留中心距离满足:

∥t⃗j−p⃗i∥2<0.1wref,\left\|\vec t_j-\vec p_i\right\|_2 <0.1w_{\mathrm{ref}},

然后将其局部平移和宽度归一化:

t⃗j∗=t⃗j−p⃗iwref,wj∗=wjwref,Rj∗=Rj.\vec t_j^*=\frac{\vec t_j-\vec p_i}{w_{\mathrm{ref}}}, \qquad w_j^*=\frac{w_j}{w_{\mathrm{ref}}}, \qquad R_j^*=R_j.

网络在这个 Normalized Grasp Space 中预测局部旋转热图、中心偏移和宽度,最后执行逆归一化:

t⃗j=p⃗i+wreft⃗j∗,wj=wrefwj∗.\vec t_j=\vec p_i+w_{\mathrm{ref}}\vec t_j^*, \qquad w_j=w_{\mathrm{ref}}w_j^*.

归一化带来了平移不变性和一定的尺度不变性,也让不同相机距离的局部区域具有更接近的物理尺度。但它并不是免费的不变性:深度噪声会影响 rir_i 和三维坐标,中心热图的误差会改变整个 patch,参考感受野和真实夹爪尺寸不匹配时仍可能出现漏抓或碰撞。

体素抓取场:VGN(Volumetric Grasp Field)#

点级和区域级方法在不规则点集上工作;VGN 将固定工作空间离散为三维体素,并让每个体素中心对应一个抓取姿态 [6]。它的输入不是只包含表面的点坐标,而是截断符号距离场(Truncated Signed Distance Field, TSDF)。

TSDF 如何把深度变成三维卷积输入#

设固定工作空间被划分为 NV×NV×NVN_V\times N_V\times N_V 个体素,体素边长为 v∈R>0v\in\mathbb R_{>0}。对体素中心 x⃗\vec x,根据深度观测计算其到最近表面的带符号距离 d(x⃗)∈Rd(\vec x)\in\mathbb R,再用截断距离 τ∈R>0\tau\in\mathbb R_{>0} 限制范围:

D(x⃗)=clip⁡(d(x⃗)τ,−1,1).D(\vec x) =\operatorname{clip}\left(\frac{d(\vec x)}{\tau},-1,1\right).

自由空间、表面附近和表面后方的体素会得到不同符号或数值。多帧深度可以在同一个体素网格中融合,从而让网络使用邻域、空闲空间和表面距离,而不必每次只看一张深度图的局部投影。

VGN 的网络是全卷积网络(Fully Convolutional Network, FCN),输出与输入体素网格对齐的三个张量:

Q^∈[0,1]NV×NV×NV,\hat Q\in[0,1]^{N_V\times N_V\times N_V}, R^∈RNV×NV×NV×4,W^∈RNV×NV×NV.\hat R\in\mathbb R^{N_V\times N_V\times N_V\times4}, \qquad \hat W\in\mathbb R^{N_V\times N_V\times N_V}.

其中 Q^ijk\hat Q_{ijk} 是在体素中心执行抓取的预测成功概率,R^ijk\hat R_{ijk} 是四元数方向,W^ijk\hat W_{ijk} 是开口宽度。四元数最后要归一化到单位球面;它只表示旋转,不包含体素中心的平移。

VGN 的监督与平行夹爪对称性#

仿真抓取标签需要先转换到 TSDF 网格坐标。设 TRVT_{RV} 是机器人基座坐标系到体素体积坐标系的刚体变换,t⃗\vec t 是基座坐标系中的抓取中心,则体素索引近似为:

t⃗~=TRV(t⃗)v,w~=wv.\tilde{\vec t}=\frac{T_{RV}(\vec t)}{v}, \qquad \tilde w=\frac{w}{v}.

标签只在有真实抓取监督的体素位置计算损失,而不是强行给所有体素填写一个姿态。设 qi∈{0,1}q_i\in\{0,1\} 是体素 ii 的仿真成功标签,q^i\hat q_i、r^i\hat r_i、w^i\hat w_i 是网络预测,标签宽度和旋转为 w~i\tilde w_i、r~i\tilde r_i,则可写成:

Li=Lq(q^i,qi)+qi[Lr(r^i,r~i)+Lw(w^i,w~i)].\mathcal L_i =\mathcal L_q(\hat q_i,q_i) +q_i\left[ \mathcal L_r(\hat r_i,\tilde r_i) +\mathcal L_w(\hat w_i,\tilde w_i) \right].

正标签才需要姿态和宽度损失;对失败体素强行回归“失败姿态”没有物理意义。旋转损失还必须处理单位四元数的符号等价性:r⃗\vec r 与 −r⃗-\vec r 表示同一个旋转。平行夹爪还存在绕夹爪对称轴旋转 π\pi 后物理等价的情况,因此 VGN 对原旋转标签和其对称旋转都计算距离并取较小值:

Lr(r^i,r~i)=min⁡(1−∣r^iTr~i∣,1−∣r^iTr~iπ∣).\mathcal L_r(\hat r_i,\tilde r_i) =\min\left( 1-\left|\hat r_i^{\mathsf T}\tilde r_i\right|, 1-\left|\hat r_i^{\mathsf T}\tilde r_i^{\pi}\right| \right).

如果忽略这种对称性,网络即使预测了物理上等价的姿态,也可能被损失错误惩罚,表现为旋转回归不稳定。

从体素场到有限候选#

VGN 的一个高分体素并不是最终动作。论文的解码流程包含:

  1. 对质量体素做三维高斯平滑,使局部高质量区域形成稳定峰值;
  2. 删除离表面太近、手指深度无法容纳的体素;
  3. 用质量阈值删除低分体素;
  4. 对剩余体素执行三维非极大值抑制;
  5. 在保留的体素位置读取旋转和宽度,反变换到机器人坐标系;
  6. 检查夹爪与场景碰撞、接近方向和机器人可达性。

这一流程解释了为什么“每个体素输出一个抓取”不会导致最终执行数目爆炸:质量峰值提取和 NMS 将体素场压缩成有限候选。但它也说明,体素边长、质量阈值和 NMS 半径都是方法的一部分。

若体素边长从 vv 减半,在相同三维工作空间内体素数量约增加到原来的八倍。粗网格会抹平薄物体和窄缝;细网格会增加显存、卷积和解码成本。VGN 还在每个体素只预测一个姿态,因此同一中心附近多个方向的多模态分布无法完全表达;它用高质量单峰候选和后处理效率换取了表示简洁性。

其他锚点:图结构与概率关键点(Graph and Keypoint Anchors)#

GraNet:让候选感知场景关系#

前面的点级表示通常通过局部邻域编码几何,但点与点之间的关系仍由网络隐式学习。GraNet 构造多层图(Multi-Level Graph),使用图特征嵌入(Graph Feature Embedding, GFE)、抓取点选择(Grasp Point Selection, GPS)和抓取姿态生成(Grasp Pose Generation, GPG)三个模块 [7]。

GFE 在点图上聚合多跳邻域,同时融合局部注意力、全局池化和位置编码;GPS 先删除背景点,再根据场景中遮挡和空间分布筛选有价值的抓取点;GPG 在保留的节点上分解预测接近方向、绕轴旋转、宽度和深度。图结构的价值在于把邻近物体和候选之间的关系带进表示,但它依赖邻接边的定义。邻域半径过小会看不到碰撞物,过大则增加图传播和错误关系;如果物体分组或背景过滤错误,图网络也会传播错误信息。

KGN-Pro:从二维关键点概率恢复三维姿态#

KGN-Pro 使用 RGB-D 输入中的二维抓取关键点概率,再通过概率二维—三维对应(Probabilistic 2D–3D Correspondence)和可微分透视 nn 点求解(Differentiable Perspective-nn-Point, PnP)恢复 6-DoF 姿态 [9]。对一个候选,网络先预测抓取中心热图 HH、中心亚像素偏移 SS、中心到四个夹爪关键点的偏移 OO,以及每个关键点的二维置信度。设夹爪模型中的三维关键点为 X⃗j∈R3\vec X_j\in\mathbb R^3,对应像素为 u⃗j∈R2\vec u_j\in\mathbb R^2,相机内参为 K∈R3×3K\in\mathbb R^{3\times3},理想投影满足:

λj[u⃗j1]=K(RX⃗j+t⃗),λj∈R>0.\lambda_j\begin{bmatrix}\vec u_j\\1\end{bmatrix} =K\left(R\vec X_j+\vec t\right), \qquad \lambda_j\in\mathbb R_{>0}.

如果只取热图最大值,遮挡关键点的一个错误峰值可能明显拉偏整体姿态。KGN-Pro 将加权重投影误差写成概率模型,并通过 Monte Carlo Pose Loss 对多个姿态样本进行优化;同时用最近邻匹配把预测姿态分配给最接近的物理可行抓取标签。这样,3D 姿态监督可以通过可微分 PnP 回传到二维关键点图,而不是在不可微 PnP 之后中断。它的优点是可以借用成熟的二维特征提取器,并保留亚像素定位精度;缺点是二维对应误差会经过 PnP 放大为三维旋转和平移误差,且必须明确夹爪模型关键点与实际平行夹爪之间的几何对应。

稠密抓取检测的训练流程(Training a Dense Grasp Detector)#

无论锚点是点、接触点、区域还是体素,训练流程都可以分解为“把连续抓取标签分配给锚点—预测局部参数—只在有意义的位置计算损失”。下面给出抽象流程;不同论文在标签来源、方向参数化和损失权重上有所不同。

Algorithm 1 训练锚点式稠密抓取检测器
Input:

点云或 TSDF 输入、成功抓取标签、负抓取标签、锚点生成规则、初始参数 ϑ\vartheta 和训练轮数

Output:
验证集上表现最好的检测器参数 ϑ∗\vartheta^*
  1. for 对每个训练轮次
  2. for

    读取一个场景并构造点、区域或体素锚点

  3. 将真实抓取分配到距离、接触或体素约束满足的锚点
  4. 生成物体性、抓取质量、方向、中心偏移、深度和宽度标签
  5. 前向计算共享特征和锚点级预测
  6. 使用任务掩码只在有定义的标签上计算分类或回归损失
  7. 反向传播并更新参数 ϑ\vartheta
  8. end for
  9. 在验证集上分别检查候选覆盖、排序质量和推理成本
  10. end for
  11. return 验证集选择的 ϑ∗\vartheta^*

这个流程中最容易被忽略的是“标签分配”。如果一个真实抓取只被分配到离它很远的体素,网络学到的中心会系统性偏移;如果同一个锚点附近存在多个互相冲突的旋转,却只保留一个角度标签,回归头会受到多模态平均的影响。实际实现会通过多锚点、方向分类、最近模式匹配、最小姿态距离或多标签监督缓解这一问题。

推理与解码:网络输出如何变成机器人候选(Inference and Decoding)#

网络输出的张量仍然不是机器人可以直接执行的位姿。一个与表示无关的解码接口通常包含以下步骤:

  1. 恢复坐标:把归一化区域、体素索引或相机坐标转换回统一的机器人基座坐标系;
  2. 恢复姿态:对四元数归一化,对方向向量正交化,对角度或方向桶解码残差;
  3. 恢复宽度:把归一化宽度、宽度桶或网络输出截断到夹爪的物理开口范围;
  4. 质量筛选:按分数阈值保留候选,并明确分数是解析质量、仿真成功概率还是网络置信度;
  5. 空间去重:按平移、旋转和夹爪对称性执行 NMS;
  6. 执行过滤:检查指尖、手掌、腕部和接近轨迹与场景的碰撞,再检查逆运动学和控制器约束。

设两个候选为 gi=(Ri,t⃗i,wi)g_i=(R_i,\vec t_i,w_i) 和 gj=(Rj,t⃗j,wj)g_j=(R_j,\vec t_j,w_j)。一个考虑平移和旋转的去重距离可以写成:

dgrasp(gi,gj)=∥t⃗i−t⃗j∥2σt+dRsym(Ri,Rj)σR,d_{\mathrm{grasp}}(g_i,g_j) =\frac{\lVert\vec t_i-\vec t_j\rVert_2}{\sigma_t} +\frac{d_R^{\mathrm{sym}}(R_i,R_j)}{\sigma_R},

其中 σt∈R>0\sigma_t\in\mathbb R_{>0} 和 σR∈R>0\sigma_R\in\mathbb R_{>0} 是阈值尺度,dRsymd_R^{\mathrm{sym}} 在平行夹爪等价旋转集合中取最小角距离。只按位置去重会删除同一点的顶抓和侧抓;只按角度去重又会留下大量空间重复姿态。

生成和评分必须分开报告#

稠密检测器常被概括成“速度快”,但速度至少包含三部分:共享特征提取、锚点解码和候选后处理。比较方法时需要说明:

  • 输入点数、体素尺寸或区域数;
  • 每个锚点生成多少方向、深度和宽度组合;
  • 质量阈值、NMS 半径和碰撞检查是否开启;
  • 最终保留多少候选、Top-kk 使用的 kk 是多少;
  • 评测使用力闭合、仿真执行还是真实机器人成功率。

否则,一个只保留少量候选的方法可能看起来推理很快,但它的覆盖率也可能更低;一个保留大量候选的方法可能排序质量更高,却把成本推迟到碰撞检查和运动规划。

评测:分数、覆盖与分辨率的关系(Evaluation and Resolution Trade-offs)#

GraspNet-1Billion 中的候选评测#

GraspNet-1Billion 等 6-DoF 基准通常先对检测结果做抓取 NMS,再取前若干候选,在不同摩擦系数和力闭合条件下计算平均精度(Average Precision, AP)或相关成功指标。这样的指标同时依赖候选覆盖和排序质量:如果正确抓取根本没有被生成,评分器再准确也无法提升 AP;如果候选覆盖很高但排序差,Top-kk 也可能选不到高质量抓取。

点级方法的瓶颈是输入点密度和点级召回,接触中心方法的瓶颈是可见接触和深度关联,体素方法的瓶颈是网格分辨率和固定工作空间,区域方法的瓶颈则是区域中心和尺度归一化。将这些方法只按一个最终 AP 排序,会掩盖它们在搜索空间上的不同取舍。

统一比较不同表示#

表示网络锚点网络主要预测后处理重点典型失败模式
点级直接预测输入点方向、开口方向、质量、类别点筛选、正交化、碰撞细结构缺点、单点上下文不足
接触中心可见接触点接近方向、基线方向、宽度、接触分数接触关联、姿态恢复隐藏接触和深度误差
Graspness 级联高抓取性点—视角点/视角先验、局部操作参数阈值、FPS、圆柱裁剪前级误删导致后级无法恢复
区域级局部区域中心区域姿态热图、偏移、宽度区域融合、坐标逆变换区域尺度不匹配、邻物体混入
体素抓取场体素中心质量、四元数、宽度体素峰值、NMS、反体素化分辨率、显存和单姿态限制
图/关键点图节点或二维关键点关系特征或关键点概率图构造、PnP、对应筛选边错误、遮挡对应和姿态放大

表示分辨率不是越高越好#

若空间锚点间距为 hh,降低 hh 通常能减少位置量化误差,但会增加锚点数量;对三维体素而言,体素数量近似按 h−3h^{-3} 增长。另一方面,过小的区域或圆柱会缺少夹爪闭合所需上下文,过大的区域会把更多邻物体送进网络。真正需要优化的是“可抓模式覆盖—局部几何分辨率—推理与执行成本”的平衡,而不是单独追求输出分辨率。

稠密、接触中心和体素表示的共同贡献,是把候选搜索从逐候选循环改成共享特征上的结构化解码;它们没有消除多模态、遮挡、碰撞和执行不确定性,而是把这些问题放到了锚点设计、标签分配和解码阶段。理解这层关系,才能公平地比较 PointNet++、Contact-GraspNet、GSNet、REGNet 和 VGN 等看似不同的模型。


参考文献(References)#

  1. P. Ni, W. Zhang, X. Zhu, and Q. Cao, “PointNet++ Grasping: Learning an End-to-End Spatial Grasp Generation Algorithm from Sparse Point Clouds,” 2020 International Conference on Robotics and Automation, 2020. DOI ↗
  2. M. Sundermeyer, A. Mousavian, R. Triebel, and D. Fox, “Contact-GraspNet: Efficient 6-DoF Grasp Generation in Cluttered Scenes,” 2021 IEEE International Conference on Robotics and Automation, 2021. DOI ↗
  3. C. Wang et al., “Graspness Discovery in Clutters for Fast and Accurate Grasp Detection,” 2021 IEEE/CVF International Conference on Computer Vision, 2021. DOI ↗
  4. B. Zhao et al., “REGNet: Region-Based Grasp Network for End-to-End Grasp Detection in Point Clouds,” 2021 IEEE International Conference on Robotics and Automation, 2021. DOI ↗
  5. Z. Liu, Z. Chen, S. Xie, and W.-S. Zheng, “TransGrasp: A Multi-Scale Hierarchical Point Transformer for 7-DoF Grasp Detection,” 2022 International Conference on Robotics and Automation, 2022. DOI ↗
  6. M. Breyer, J. J. Chung, L. Ott, R. Siegwart, and J. Nieto, “Volumetric Grasping Network: Real-Time 6 DOF Grasp Detection in Clutter,” Proceedings of the Conference on Robot Learning, PMLR 155, 2021. PMLR ↗
  7. H. Wang, W. Niu, and C. Zhuang, “GraNet: A Multi-Level Graph Network for 6-DoF Grasp Pose Generation in Cluttered Scenes,” 2023 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2023. DOI ↗
  8. S. Chen et al., “Region-Aware Grasp Framework with Normalized Grasp Space for Efficient 6-DoF Grasping,” Proceedings of the 8th Conference on Robot Learning, 2024. PMLR ↗
  9. B. Chen, B. Li, J. Yang, Y. Liu, and G. Zhai, “KGN-Pro: Keypoint-Based Grasp Prediction through Probabilistic 2D–3D Correspondence Learning,” 2025 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2025. DOI ↗
Robotic Grasp Detection (5): 稠密、接触中心与体素抓取表示
https://hana-blog.top/blog/robotic-grasp-detection-5
Author 菊花花
Published at August 14, 2026
Comment seems to stuck. Try to refresh?✨