Hana's Blog
Robotic Grasp Detection (2): 抓取几何与质量评价Blur image

先看一个具体问题(A Concrete Starting Point)#

假设机器人要从桌面上夹起一个纸盒。视觉系统已经找到了两个候选抓取:

  • 候选 A:两个夹指接触纸盒的左右两侧,接触位置大致位于中部;
  • 候选 B:两个夹指也能接触左右两侧,但位置更靠近顶部。

这两个候选都可能看起来“能够夹住”。但是,当机器人抬起纸盒、机械臂发生一点姿态误差,或者纸盒受到侧向扰动时,它们的表现可能完全不同。候选 A 也许能够稳定抬起,候选 B 则可能让纸盒旋转或从夹指中滑落。

因此,抓取检测(Grasp Detection)不能只回答:

这个姿态看起来像不像一个抓取?

它还需要回答:

在多个可行候选中,哪一个更值得执行?

这就是抓取质量(Grasp Quality)要解决的问题。抓取质量不是一个由网络凭空产生的神秘分数,而是对某个抓取候选进行评价的结果。评价可以来自接触力学模型、仿真执行,也可以来自真实机器人试验;不同来源得到的分数,含义并不相同。

Grasp Quality 的宽泛定义(A Broad Meaning of Grasp Quality)#

对于给定的物体和机械手,通常不止一个抓取能够满足基本要求。Roa 和 Suárez 将抓取质量指标(Grasp Quality Measure)概括为:用于量化一个抓取“好坏程度”的指标(an index that quantifies the goodness of a grasp)[1]。

这个定义故意比较宽泛,因为“好”取决于我们究竟想评价什么:

  • 如果关心接触力能否抵抗外部扰动,质量可以由力闭合(Force Closure)或 Ferrari–Canny 指标表示;
  • 如果关心感知误差和控制误差,质量可以表示不确定性下的成功概率;
  • 如果关心仿真中的动作结果,质量可以是是否成功闭合和抬升;
  • 如果关心真实部署,质量可以是多次机器人试验中的执行成功率;
  • 如果抓取服务于后续操作,质量还要考虑抓取是否适合任务。

所以,Grasp Quality 不是所有论文都共用的一个固定公式。下面这三个概念需要先分开:

概念含义典型输出
力闭合(Force Closure)接触力学上是否能够抵抗各个方向的外部扰动通常是二值判断
解析质量(Analytic Quality)在力学模型下,抵抗扰动的余量有多大连续分数,例如 Ferrari–Canny Epsilon
执行成功(Execution Success)机器人实际是否完成闭合、抬升或后续任务二值结果或成功率

一个力闭合抓取不一定能够被机器人成功执行;一个真实执行成功的抓取,也不一定具有较高的 Ferrari–Canny 分数。它们评价的是同一个抓取候选的不同方面。

本文聚焦平行夹爪(Parallel-Jaw Gripper),但重点不是某一副夹爪,而是建立一条从接触几何到质量分数的推导链:

接触位置和法线摩擦约束力与力矩Force Closure / Quality\text{接触位置和法线} \rightarrow \text{摩擦约束} \rightarrow \text{力与力矩} \rightarrow \text{Force Closure / Quality}

先固定一个最简单的物理模型(A Minimal Physical Model)#

为了能够计算,我们先暂时做几个简化:

  1. 物体是刚体(Rigid Body),形状在抓取过程中不改变;
  2. 抓取过程是准静态的(Quasi-Static),暂不考虑碰撞冲击和高速动态;
  3. 夹指与物体在有限个接触点接触;
  4. 接触遵循库仑摩擦模型(Coulomb Friction Model);
  5. 物体的质心、接触位置和接触法线已经能够估计。

这些假设不是现实世界的完整描述,而是让接触力可以被写成公式。后面讨论的每个解析指标,都只在这些假设下成立。

下面统一使用物体坐标系,并把向量写成列向量。设 nNn\in\mathbb N 为接触点数量,接触编号为 i=1,,ni=1,\ldots,n;这里 N\mathbb N 表示正整数集合。三维位置、方向和力都属于 R3\mathbb R^3;标量(例如法向力、摩擦系数和长度)属于 R\mathbb R

力负责平移,力矩负责旋转#

先不考虑摩擦。物体受到的接触力可以改变物体的平移运动;如果力的作用线没有经过质心,它还会产生旋转效果。

设第 ii 个接触点为 piR3p_i\in\mathbb R^3,物体质心为 cR3c\in\mathbb R^3,接触力为 fiR3f_i\in\mathbb R^3。从质心指向接触点的向量是力臂(Moment Arm)riR3r_i\in\mathbb R^3

ri=pic.r_i=p_i-c.

接触力产生的力矩(Torque)τiR3\tau_i\in\mathbb R^3 为:

τi=ri×fi.\tau_i=r_i\times f_i.

这里的叉乘说明了一个很直观的事实:力越大、力臂越长,产生的旋转效果通常越明显;如果力的作用线正好经过质心,力矩就会变小。

在准静态平衡下,设 fextR3f_{\mathrm{ext}}\in\mathbb R^3τextR3\tau_{\mathrm{ext}}\in\mathbb R^3 分别是作用在物体上的外部力和外部力矩。记 03R3\mathbf 0_3\in\mathbb R^3 为三维零向量,接触力和外部扰动需要满足:

i=1nfi+fext=03,\sum_{i=1}^{n} f_i+f_{\mathrm{ext}}=\mathbf 0_3, i=1n(pic)×fi+τext=03.\sum_{i=1}^{n} (p_i-c)\times f_i+\tau_{\mathrm{ext}}=\mathbf 0_3.

第一行平衡平移,第二行平衡旋转。抓取质量的核心问题,就是判断接触力是否有足够的方向和幅值,同时满足这两个平衡关系。

摩擦锥:接触力不是任意方向(Friction Cone)#

如果夹指和物体完全没有摩擦,夹指只能沿接触法线推物体。现实中的夹指存在摩擦,因此还可以施加一部分切向力,但切向力不能无限增大。

把第 ii 个接触力分成法向分量和切向分量:

fi=fn,ini+ft,i,f_i=f_{n,i}n_i+f_{t,i},

其中 niR3n_i\in\mathbb R^3 是指向物体内部的单位接触法线(Contact Normal),fn,iRf_{n,i}\in\mathbb R 是法向力大小,ft,iR3f_{t,i}\in\mathbb R^3 是切向力向量:

  • ni2=1\lVert n_i\rVert_2=1,且 fn,i0f_{n,i}\ge 0
  • nift,i=0n_i^\top f_{t,i}=0,所以 ft,if_{t,i} 位于接触切平面内。

库仑摩擦模型给出的限制是:

ft,i2μfn,i,\lVert f_{t,i}\rVert_2\le \mu f_{n,i},

其中 μR0\mu\in\mathbb R_{\ge 0} 是摩擦系数(Friction Coefficient)。当 μ\mu 较大时,切向力允许更大,接触力的方向也可以偏离法线更多。

把所有满足这个不等式的力方向画在接触点周围,就得到一个圆锥,称为摩擦锥(Friction Cone)。记摩擦锥半角为 θμR\theta_\mu\in\mathbb R,则:

θμ=arctanμ.\theta_\mu=\arctan\mu.

因此,判断一个候选是否可能稳定,第一步不是看两个接触点距离有多远,而是看夹指施加的力是否落在两个接触点各自的摩擦锥内。

为什么要离散化摩擦锥#

连续圆锥包含无穷多个力方向,计算机通常用 mNm\in\mathbb N 条边组成的多面锥近似它。设 ti1,ti2R3t_{i1},t_{i2}\in\mathbb R^3 是接触切平面的两个正交单位向量,即 niti1=niti2=0n_i^\top t_{i1}=n_i^\top t_{i2}=0ti1ti2=0t_{i1}^\top t_{i2}=0ti12=ti22=1\lVert t_{i1}\rVert_2=\lVert t_{i2}\rVert_2=1;再设每个接触的法向力预算为 fˉn,iR>0\bar f_{n,i}\in\mathbb R_{>0}。令 k=0,,m1k=0,\ldots,m-1,第 kk 条边对应的接触力 fikR3f_{ik}\in\mathbb R^3 可以写成:

fik=fˉn,i[ni+μcos ⁣(2πkm)ti1+μsin ⁣(2πkm)ti2],k=0,,m1.f_{ik}=\bar f_{n,i}\left[ n_i+ \mu\cos\!\left(\frac{2\pi k}{m}\right)t_{i1} +\mu\sin\!\left(\frac{2\pi k}{m}\right)t_{i2} \right], \qquad k=0,\ldots,m-1.

这些 fikf_{ik} 是摩擦锥边界上的代表性接触力。mm 越大,圆锥近似越精细,但后续需要处理的候选力也越多。

如果只需要表示允许的力方向,通常令法向力预算为 11;如果需要保留力的物理尺度,则使用具体的 fˉn,i\bar f_{n,i}。在不带上限的库仑模型下,第 ii 个接触的摩擦锥可以写成:

Ci={fiR3 | fi=fn,ini+ft,i, fn,i0, nift,i=0, ft,i2μfn,i}.\mathcal C_i= \left\{ f_i\in\mathbb R^3\ \middle|\ f_i=f_{n,i}n_i+f_{t,i},\ f_{n,i}\ge 0,\ n_i^\top f_{t,i}=0,\ \lVert f_{t,i}\rVert_2\le \mu f_{n,i} \right\}.

因此,Ci\mathcal C_i 是一个力的集合,而不是一个单独的力向量;fikf_{ik} 则是给定法向力预算下对这个集合边界的离散采样。

这里的 fˉn,i\bar f_{n,i} 很重要。如果不限制法向力大小,那么把所有接触力同时放大,就可以得到任意大的“抗扰动能力”,质量分数将失去有限尺度。因此,计算 Ferrari–Canny 指标时必须说明力是否被归一化,以及采用了怎样的力预算。

对向抓取:一个快速的几何判断(Antipodal Grasp)#

对于平行夹爪,常见的候选生成方法是寻找对向抓取(Antipodal Grasp)。它的直观条件是:

  1. 两个接触点位于物体相对的两侧;
  2. 两个夹指的压紧方向大致相反;
  3. 连接两个接触点的方向落在两侧接触摩擦锥允许的范围内。

如果两个夹指只是碰到了物体,但接触力方向明显偏向同一侧,物体就可能沿着另一个方向滑走。对向条件可以快速排除这类候选。

但对向抓取只是局部几何条件,不是完整的质量评价。即使一个候选满足对向条件,它仍然可能:

  • 与桌面或邻近物体碰撞;
  • 夹爪开口不足;
  • 夹得太浅;
  • 产生过大的旋转力矩;
  • 超出机械臂的可达范围。

因此,对向抓取通常用于候选生成,随后还需要进行力闭合、解析质量和执行可行性检查。

把接触力写成力旋量(Wrench)#

前面的分析同时涉及合力和力矩。为了用同一个数学对象表示它们,机器人抓取理论把三维力和三维力矩合称为力旋量(Wrench)。设 ρR>0\rho\in\mathbb R_{>0} 是物体的特征长度(Characteristic Length),并用它把力矩归一化;单个接触产生的归一化力旋量 wiR6w_i\in\mathbb R^6 写成:

wi=[fiτi/ρ]R6.w_i= \begin{bmatrix} f_i\\ \tau_i/\rho \end{bmatrix} \in\mathbb R^6.

上面有六个分量:三维力 fif_i 和三维力矩 τi\tau_i。除以 ρ\rho 是为了处理单位不同的问题:

  • 力的单位是牛顿(N);
  • 力矩的单位是牛顿米(N·m);
  • ρ\rho 是物体的特征长度(Characteristic Length)。

如果不进行归一化,就不能直接把力和力矩放在同一个欧氏距离中比较。ρ\rho 越大,同样大小的力矩在归一化后越小;因此 ρ\rho 会影响之后的质量分数,复现实验时必须记录这个参数。

抓取映射(Grasp Map)#

把接触力转换为力旋量,可以写成矩阵形式。先定义三维单位矩阵 I3R3×3I_3\in\mathbb R^{3\times3},以及叉乘矩阵 [ri]×R3×3[r_i]_{\times}\in\mathbb R^{3\times3};对任意 vR3v\in\mathbb R^3,它满足 [ri]×v=ri×v[r_i]_{\times}v=r_i\times v。下式中的 [pic]×[p_i-c]_{\times} 就是同一个矩阵,因为 ri=picr_i=p_i-c。于是抓取映射 GiR6×3G_i\in\mathbb R^{6\times3} 为:

wi=Gifi,Gi=[I3[pic]×/ρ].w_i=G_i f_i, \qquad G_i= \begin{bmatrix} I_3\\ [p_i-c]_{\times}/\rho \end{bmatrix}.

其中 [pic]×[p_i-c]_{\times} 是叉乘矩阵。它的作用就是把“力作用在什么位置”编码进矩阵:同一个力作用在不同的接触点上,会产生不同的力矩。

如果有 nn 个接触点,把所有接触力按接触编号拼接为 fR3nf\in\mathbb R^{3n}

f=[f1f2fn]R3n,f=\begin{bmatrix}f_1^\top&f_2^\top&\cdots&f_n^\top\end{bmatrix}^\top\in\mathbb R^{3n},

把所有接触的映射块横向拼接为 GR6×3nG\in\mathbb R^{6\times3n},就可以写成:

w=Gf,G=[G1G2Gn].w=Gf, \qquad G=\begin{bmatrix}G_1&G_2&\cdots&G_n\end{bmatrix}.

这里的 wR6w\in\mathbb R^6 是某一组接触力产生的合力旋量;把所有允许的 ww 收集起来,才得到后面定义的集合 W\mathcal W

Grasp Wrench Space:抓取能够抵抗哪些扰动#

到目前为止,我们已经完成了三次转换:

接触点和法线允许的接触力接触力产生的力旋量.\text{接触点和法线} \rightarrow \text{允许的接触力} \rightarrow \text{接触力产生的力旋量}.

把所有可能的力旋量收集起来,就得到抓取力旋量空间(Grasp Wrench Space, GWS)。真实的 GWS 位于六维空间 R6\mathbb R^6,因为它同时包含三个力分量和三个力矩分量。虽然人无法直接画出六维空间,但计算机可以在六维空间中计算它的凸包(Convex Hull)。

在常见的接触力归一化下,先把每个接触的摩擦锥离散成 fikR3f_{ik}\in\mathbb R^3,再计算接触点 ii 的力矩 τikR3\tau_{ik}\in\mathbb R^3 和对应力旋量 wikR6w_{ik}\in\mathbb R^6

τik=(pic)×fik,\tau_{ik}=(p_i-c)\times f_{ik}, wik=[fikτik/ρ].w_{ik}= \begin{bmatrix} f_{ik}\\ \tau_{ik}/\rho \end{bmatrix}.

conv()\operatorname{conv}(\cdot) 为包含给定点集的最小凸集。对所有原始力旋量求凸包,得到 WR6\mathcal W\subseteq\mathbb R^6

W=conv({wiki=1,,n, k=0,,m1}).\mathcal W= \operatorname{conv} \left( \{w_{ik}\mid i=1,\ldots,n,\ k=0,\ldots,m-1\} \right).

“求凸包”可以先用二维例子理解:给平面上一组点,用一条橡皮筋把它们从外面包起来,橡皮筋围成的区域就是凸包。在这里,点变成了六维向量,橡皮筋变成了六维凸多面体。

实际程序通常执行以下步骤:

Algorithm 1 由离散摩擦锥构造抓取力旋量空间
Input:

接触点 pip_i、法线 nin_i、质心 cc、摩擦系数 μ\mu、摩擦锥边数 mm、法向力预算 fˉn,i\bar f_{n,i} 和特征长度 ρ\rho

Output:
抓取力旋量空间 WR6\mathcal W\subseteq\mathbb R^6
  1. for 对每个接触点 i=1,,ni=1,\ldots,n
  2. 建立接触切平面的正交单位基 ti1,ti2t_{i1},t_{i2}
  3. for 对每条摩擦锥边 k=0,,m1k=0,\ldots,m-1
  4. 根据离散摩擦锥公式计算 fikR3f_{ik}\in\mathbb R^3
  5. 计算 τik=(pic)×fik\tau_{ik}=(p_i-c)\times f_{ik}wik=[fik;τik/ρ]R6w_{ik}=[f_{ik};\tau_{ik}/\rho]\in\mathbb R^6

  6. end for
  7. end for
  8. R6\mathbb R^6 中计算 W=conv({wik})\mathcal W=\operatorname{conv}(\{w_{ik}\})

如果每个接触点有独立的力上限,允许的 GWS 更严格地说是各接触力旋量集合的闵可夫斯基和(Minkowski Sum),而不是简单套用同一个总力预算。这个区别会影响最终分数,但初学时可以先掌握“摩擦锥边 → 力旋量点 → 凸包”的主线。

Force Closure:原点为什么重要#

外部扰动可以是任意方向的力和力矩,例如:

  • 从侧面推物体;
  • 向下拉物体;
  • 让物体绕质心旋转。

对于下面的有限力旋量凸包判据,06R6\mathbf 0_6\in\mathbb R^6 表示六维零向量:

如果接触力能够组合出大小相反的力旋量,抵消这些扰动,抓取就具有较强的抗扰动能力。

在 GWS 中,常用的判断方式是看六维原点 06\mathbf 0_6 是否位于凸包 W\mathcal W 的内部。这里 int(W)\operatorname{int}(\mathcal W) 表示集合 W\mathcal W 的内部:

06int(W)Force Closure.\mathbf 0_6\in\operatorname{int}(\mathcal W) \quad\Longrightarrow\quad \text{Force Closure}.

这里的“原点”代表零合力、零合力矩;“位于内部”表示原点周围存在一个小区域,扰动方向稍微变化时,仍然可以通过改变接触力来平衡。

因此,Force Closure 是一个二值判断:满足或不满足。它回答的是:

理论上,接触力是否能够抵抗各个方向的外部扰动?

它没有回答以下问题:

  • 需要多大的夹紧力?
  • 机器人能否准确到达接触点?
  • 夹爪是否会先撞到桌面?
  • 摩擦系数的估计是否准确?
  • 真实物体是否会变形?

这也是为什么还需要连续的质量指标。

Ferrari–Canny:从“能不能”到“余量有多大”#

Force Closure 只能把抓取分成“可以”和“不可以”。但如果两个候选都满足 Force Closure,我们还想知道哪个候选更有余量。

Ferrari–Canny Epsilon 指标用一个非常直观的几何量回答这个问题:以 GWS 原点为球心,能够放进 GWS 的最大球半径是多少。下面用 ϵR0\epsilon\in\mathbb R_{\ge0} 表示这个半径。

假设凸包已经被写成一组半空间约束。这里 JNJ\in\mathbb N 是凸包面的数量;对每个 j=1,,Jj=1,\ldots,JajR6a_j\in\mathbb R^6 是第 jj 个面的外向法向量,bjRb_j\in\mathbb R 是该面的偏置;wR6w\in\mathbb R^6 仍表示任意一个力旋量:

ajwbj,j=1,,J.a_j^\top w\le b_j, \qquad j=1,\ldots,J.

其中每个约束对应凸包的一个面。若原点位于凸包内部,则在采用外向法向量、因而 bj>0b_j>0 的约定下,原点到第 jj 个面的距离 djR>0d_j\in\mathbb R_{>0} 为:

dj=bjaj2.d_j=\frac{b_j}{\lVert a_j\rVert_2}.

最小的距离就是最薄弱方向的余量:

ϵ=minjdj=minjbjaj2.\epsilon=\min_j d_j =\min_j\frac{b_j}{\lVert a_j\rVert_2}.

计算过程可以概括为:

  1. 离散每个接触的摩擦锥;
  2. 将每条锥边变成六维力旋量;
  3. R6\mathbb R^6 中求凸包;
  4. 检查原点是否在内部;
  5. 求原点到所有凸包面的距离;
  6. 取最小距离作为 ϵ\epsilon

因此,ϵ\epsilon 不是“两个接触点距离越远越大”的简单几何启发式,而是 GWS 在最弱方向上的安全余量。摩擦锥边数、力矩归一化、最大接触力和接触模型都会影响它 [1]。

其他解析指标#

除了 ϵ\epsilon,还可以使用其他指标。令 σmin(G),σmax(G)R0\sigma_{\min}(G),\sigma_{\max}(G)\in\mathbb R_{\ge0} 分别表示矩阵 GG 的最小、最大奇异值,并令 QisoRQ_{\mathrm{iso}}\in\mathbb R 表示各向同性分数,则常见形式为:

  • GWS 体积(Wrench-Space Volume):计算 W\mathcal W 的六维体积,描述整体覆盖范围;

  • 抓取矩阵最小奇异值:如果 GG 的最小奇异值很小,说明某个方向的力传递接近退化;

  • 各向同性(Isotropy)

    Qiso=σmin(G)σmax(G).Q_{\mathrm{iso}} =\frac{\sigma_{\min}(G)}{\sigma_{\max}(G)}.

    这个比值越接近 11,表示不同方向的力传递越均衡;

  • 几何和环境指标:例如接触到质心的距离、夹爪闭合余量、表面平坦度、重力方向和碰撞距离。

这些指标没有绝对的“最佳选择”。ϵ\epsilon 强调最弱方向,体积强调整体范围,各向同性强调方向均衡,碰撞距离则关注执行安全。Hybrid Physical Metric 将力闭合、平坦度、重力和碰撞等因素结合起来 [6],说明场景级抓取通常需要组合多个评价信号。

鲁棒抓取质量:把误差加入计算(Robust Grasp Quality)#

上面的计算默认物体模型、接触位置、夹爪姿态和摩擦系数都准确。但真实系统中至少存在以下误差:

  • 深度相机的测量噪声;
  • 手眼标定误差;
  • 机器人到达姿态的误差;
  • 摩擦系数未知;
  • 物体质心估计不准。

一个名义姿态的 ϵ\epsilon 很高,并不代表它在姿态偏移后仍然可靠。鲁棒抓取质量(Robust Grasp Quality)会对这些变量进行扰动,再重新计算质量。

Dex-Net 2.0 使用鲁棒性函数描述在观测和控制不确定性下的抓取表现。设 uUu\in\mathcal U 是抓取动作,yYy\in\mathcal Y 是观测,ξΞ\xi\in\Xi 表示由感知、标定或执行误差引起的不确定性状态;这里 U\mathcal UY\mathcal YΞ\Xi 分别表示动作、观测和不确定性状态的取值空间。令 S(u,ξ){0,1}S(u,\xi)\in\{0,1\} 表示在该状态下是否成功,令 p(ξy)p(\xi\mid y) 表示给定观测后的不确定性分布,则期望成功质量 Q(u,y)[0,1]Q(u,y)\in[0,1] 为:

Q(u,y)=Eξp(ξy)[S(u,ξ)]=Pr(S(u,ξ)=1u,y),Q(u,y)=\mathbb E_{\xi\sim p(\xi\mid y)}[S(u,\xi)] =\Pr\bigl(S(u,\xi)=1\mid u,y\bigr),

这里的 S(u,ξ)S(u,\xi) 可以由 Force Closure 或物理抬升等二值结果定义 [4]。如果质量函数不是二值成功指标,则令 R(u,ξ)RR(u,\xi)\in\mathbb R 表示某次不确定性状态下得到的连续质量,并在采样时用 RR 替换 SS;此时对应的期望质量不再必然是成功概率。

如果解析积分无法直接求出,最常见的方法是蒙特卡洛采样(Monte Carlo Sampling)。设 NMCNN_{\mathrm{MC}}\in\mathbb N 为样本数,s=1,,NMCs=1,\ldots,N_{\mathrm{MC}} 为样本编号,α(0,1)\alpha\in(0,1) 为分位数水平;对第 ss 个不确定性样本记 Rs=R(u,ξs)RR_s=R(u,\xi_s)\in\mathbb R。当标签是成功与否时,RsR_s 就是二值变量 Ss=S(u,ξs){0,1}S_s=S(u,\xi_s)\in\{0,1\}

Algorithm 2 蒙特卡洛估计鲁棒抓取质量
Input:

抓取动作 uu、观测 yy、不确定性分布 p(ξy)p(\xi\mid y)、样本数 NMCN_{\mathrm{MC}} 和分位数水平 α\alpha

Output:
样本均值 Q^\hat Q、低分位数 qαq_\alpha,以及二值标签下的失败比例
  1. fors=1,,NMCs=1,\ldots,N_{\mathrm{MC}}
  2. p(ξy)p(\xi\mid y) 采样不确定性状态 ξs\xi_s
  3. 根据 ξs\xi_s 扰动物体位姿、夹爪位姿、摩擦系数或质心
  4. 重新计算接触、碰撞和单次质量 Rs=R(u,ξs)R_s=R(u,\xi_s)
  5. if 质量标签是成功与否
  6. Rs=Ss=S(u,ξs){0,1}R_s=S_s=S(u,\xi_s)\in\{0,1\}
  7. end if
  8. end for
  9. 计算 Q^=NMC1s=1NMCRs\hat Q=N_{\mathrm{MC}}^{-1}\sum_{s=1}^{N_{\mathrm{MC}}}R_s
  10. 计算质量样本的 α\alpha 分位数 qαq_\alpha
  11. if 使用二值成功标签
  12. 计算失败比例 1NMC1s=1NMCSs1-N_{\mathrm{MC}}^{-1}\sum_{s=1}^{N_{\mathrm{MC}}}S_s

  13. end if

其中 Q^R\hat Q\in\mathbb R 是样本均值,qαRq_\alpha\in\mathbb R 是质量样本的 α\alpha 分位数。平均质量适合风险中性的排序;低分位数 qαq_\alpha 更关注最差的一部分情况。一个候选可能平均分很高,但在少量姿态偏差下突然失效,这种候选的低分位数会较低。

Dex-Net 1.0 将物体模型、抓取模型和相关奖励组织到数据库中,用于鲁棒抓取规划 [2]。Johns 等人则研究了夹爪位姿不确定性对抓取函数的影响 [3]。这些工作说明,鲁棒质量不是给解析指标简单加一个噪声,而是需要明确扰动变量、分布和重新计算规则。

学习模型输出的质量是什么(Learned Quality Score)#

解析计算需要物体几何、接触位置和摩擦假设。在大规模检测中,网络通常学习从深度图或点云直接预测一个质量分数。

以 GQ-CNN 为例,输入并不是一张完整深度图就结束了。一个候选需要先确定:

  • 抓取中心;
  • 平面内旋转角;
  • 夹爪距离相机的深度;
  • 夹爪开口或候选宽度。

随后,系统把候选附近的深度区域旋转到夹爪闭合轴对齐的坐标系,裁剪成固定尺寸的局部图块,再把图块和候选深度送入网络。网络预测的是该候选在 Dex-Net 标签模型下的鲁棒质量 [4]。

因此,学习模型的输出语义完全依赖训练标签:

  • 训练标签来自 Force Closure,模型学习的是力闭合相关分数;
  • 训练标签来自仿真抬升,模型学习的是仿真成功相关分数;
  • 训练标签来自真实机器人试验,输出才可能与真实执行概率相关。

网络输出一个位于 0011 之间的分数,并不自动意味着它是经过校准的真实成功概率。更准确的推理流程是:

Algorithm 3 学习式抓取质量评分与候选筛选
Input:
场景观测、抓取候选生成器和训练完成的质量预测网络
Output:
满足执行约束且预测质量最高的抓取候选
  1. 采样或生成抓取候选
  2. 删除缺少有效深度或存在明显碰撞的候选
  3. 为每个保留候选构造候选对齐的局部输入
  4. 用网络预测训练标签所定义的抓取质量
  5. 检查夹爪宽度、场景碰撞、机械臂可达性和接近轨迹
  6. 在满足全部约束的候选中选择最高分抓取

仿真成功和真实成功(Simulation and Physical Outcomes)#

仿真可以比静态力闭合加入更多因素,例如夹爪闭合过程、物体质量、重力、碰撞和动力学接触。ACRONYM 使用大规模物理仿真生成平行夹爪抓取数据,并将仿真结果作为成功标签 [5]。

但仿真成功仍然依赖:

  • 物体网格是否准确;
  • 质量和质心是否准确;
  • 摩擦系数是否准确;
  • 接触求解器是否可靠;
  • 夹爪碰撞模型是否接近真实硬件。

真实机器人实验更接近最终目标,通常记录:

  • 夹爪是否成功闭合;
  • 物体是否被抬离桌面;
  • 搬运过程中是否掉落;
  • 受到扰动后是否保持;
  • 多次试验中的成功率。

这些结果属于执行层面的评价。它们受到控制器、传感器、机械臂和环境的共同影响,因此不能直接替代解析质量;同样,解析质量也不能直接被称为真实成功概率。

解析质量不是执行终点(From Analytic Quality to Execution)#

一个解析分数较高的候选,真正发送给机器人之前还要通过几何和运动检查:

  1. 夹爪是否与物体、桌面和邻近物体碰撞;
  2. 夹爪开口是否处于硬件范围;
  3. 机械臂是否存在逆运动学(Inverse Kinematics, IK)解;
  4. 接近和退出轨迹是否能够规划;
  5. 抓取位置是否适合后续搬运、放置或操作。

这解释了为什么实际系统常常先用解析质量筛掉明显不稳定的候选,再用碰撞、可达性和任务约束重新排序。

对于柔性物体,刚体模型还会失效。Deformation-Aware Grasp Synthesis 将物体刚度和形变信息加入抓取选择 [7]:一个几何上稳定的接触,可能会让软物体产生过大变形。对于已经发生接触的系统,视觉和触觉还可以继续判断滑移,并通过重新抓取修正初始动作 [8]。

小结(Summary)#

可以把本文的主线压缩成四句话:

  1. 抓取检测通常会产生多个候选,因此需要质量指标进行排序;
  2. 摩擦锥规定接触力允许朝哪些方向施加;
  3. 接触力通过力臂产生力矩,再被组合成六维力旋量;
  4. GWS 的位置和形状可以给出 Force Closure、ϵ\epsilon、体积等解析质量,但这些分数始终依赖物理假设,不能自动等同于真实执行成功。

后续分析任何抓取质量方法时,首先要问的不是“分数越大是不是越好”,而是:

这个分数究竟评价了什么,使用了什么假设,又与真实机器人执行的哪一个阶段对应?


参考文献(References)#

  1. M. A. Roa and R. Suárez, “Grasp Quality Measures: Review and Performance,” Autonomous Robots, 2014. DOI
  2. J. Mahler et al., “Dex-Net 1.0: A Cloud-Based Network of 3D Objects for Robust Grasp Planning Using a Multi-Armed Bandit Model with Correlated Rewards,” 2016 IEEE International Conference on Robotics and Automation, 2016. DOI
  3. E. Johns, S. Leutenegger, and A. J. Davison, “Deep Learning a Grasp Function for Grasping under Gripper Pose Uncertainty,” 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2016. DOI
  4. J. Mahler et al., “Dex-Net 2.0: Deep Learning to Plan Robust Grasps with Synthetic Point Clouds and Analytic Grasp Metrics,” Robotics: Science and Systems XIII, 2017. 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. Y. Lu et al., “Hybrid Physical Metric for 6-DoF Grasp Pose Detection,” 2022 International Conference on Robotics and Automation, 2022. DOI
  7. T. N. Le, J. Lundell, F. J. Abu-Dakka, and V. Kyrki, “Deformation-Aware Data-Driven Grasp Synthesis,” IEEE Robotics and Automation Letters, 2022. DOI
  8. R. Calandra et al., “More Than a Feeling: Learning to Grasp and Regrasp Using Vision and Touch,” IEEE Robotics and Automation Letters, 2018. DOI
Robotic Grasp Detection (2): 抓取几何与质量评价
https://agusexp25.top/en/blog/robotic-grasp-detection-2
Author 菊花花
Published at August 14, 2026