本文针对抓取任务中的一个关键问题——力封闭(Force closure)展开了较为详尽的叙述。
讲解力封闭前,本文首先介绍了力空间、力螺旋等基础概念,接着引入形封闭、力封闭的概念。
最后,本文介绍了力封闭抓取的评价指标。
假设现在有这样一个场景(如上图),机械手 H H H 需要抓取到物体 B B B ,那么在二者之间必定会产生“接触”。而对于一个手可能有多个手指(两指手、五指手等),因此设有 n c n_c nc个接触点,第 i i i 个接触点为 n i n_i ni 。
在接触点 n i n_i ni 处的力可以分解为:沿着垂直于 B B B 切平面的轴 n i n_i ni 方向(即法线方向);以及都在切线平面上的另外两个轴方向。
由此,每个接触点的力空间定义为切平面与接触点处法线构成的3D空间。
刚体运动是指物体上任意两点之间距离保持不变的运动。机器人运动学、动力学及其控制,实际上就是研究刚体的运动问题。
运⽤力螺旋理论(或者称为旋量理论)来描述刚体运动学问题有两个主要优点:
有如下定理:
因此,任意的刚体运动方式都可以用这三个量表达:
然而,通常不提供位移 d d d ,而是定义节距(或称螺距) h = d / θ h={d}/{\theta} h=d/θ 。
【旋量运动的定义】
旋量运动的三要素:
旋量运动表示绕轴 a \mathbf{a} a 旋转 ρ = θ \rho=\theta ρ=θ ,再沿该轴平移距离为 h θ h\theta hθ 的合成运动。
特例:
Twist 表示了物体的速度,它是一个六维向量:
t = [ v ω ] \mathbf{t}=\left[\begin{array}{c}\mathbf{v} \\\boldsymbol{\omega}\end{array}\right] t=[vω]
其中, v \mathbf{v} v 是平移速度, ω \boldsymbol{\omega} ω 是转速。 v \mathbf{v} v 和 ω \boldsymbol{\omega} ω 都是三维向量。
F = [ f m ] F=\left[\begin{array}{c}\mathbf{f} \\\mathbf{m}\end{array}\right] F=[fm]
其中, f \mathbf{f} f 为力, m \mathbf{m} m 为力矩。 f \mathbf{f} f 和 m \mathbf{m} m 都是三维向量。
对于无摩擦接触点,仅考虑fn≥0型的力;fn是沿法线方向的力。
上图展示了一个简单的接触物体模型,图中有三个坐标系—— P P P、 O O O、 C i C_i Ci,他们分别代表了世界坐标系、目标坐标系(通常以质心为原点)以及以第 i i i个接触点为原点定义的接触点坐标系。
在接触点坐标系 C i C_i Ci中,其力螺旋 F c i F_{c_{i}} Fci可以表示为:
F c i = [ 0 0 1 0 0 0 ] f c i , f c i ≥ 0 F_{c_{i}}=\left[\begin{array}{l}0 \\0 \\1 \\0 \\0 \\0\end{array}\right] f_{c_{i}} ,\quad f_{c_{i}} \geq 0 Fci=⎣⎢⎢⎢⎢⎢⎢⎡001000⎦⎥⎥⎥⎥⎥⎥⎤fci,fci≥0
式中, f c i f_{c_i} fci 即 f n f_n fn 。
显然我们可以注意到,在这个 [ 6 , 1 ] [6,1] [6,1]维的矩阵中前三项仅有第3行为1,后三项均为0。
前者很好理解:对于无摩擦接触仅存在沿法线方向的力;
对于后者,我们需注意到此处公式均考虑于接触点坐标系 C i C_i Ci中,而根据力矩的定义(力矩等于力的大小乘以力臂),且接触点处的三个分方向的力臂均为0,因此后三项均为0。
通过上文(1.1 接触点的力空间),我们知道:对于有摩擦接触点,需要考虑沿法线方向的力以及切平面的力。
此时,通过三个分力及其限制条件,可以定义出摩擦锥( friction cone, FC):
F C = { [ f 1 , f 2 , f n ] T ∈ R 3 ∣ f 1 2 + f 2 2 ≤ μ f n , f n ≥ 0 } \mathrm{FC}=\left\{\left[f_{1}, f_{2}, f_{n}\right]^{T} \in \mathbb{R}^{3} \mid \sqrt{f_{1}^{2}+f_{2}^{2}} \leq \mu f_{n} , f_{n} \geq 0\right\} FC={ [f1,f2,fn]T∈R3∣f12+f22≤μfn,fn≥0}
上式中 f 1 2 + f 2 2 ≤ μ f n \sqrt{f_{1}^{2}+f_{2}^{2}} \leq \mu f_{n} f12+f22≤μfn 限定了切平面方向的力要满足库伦定律; f n ≥ 0 f_{n} \geq 0 fn≥0 则限定了法线方向存在大于0的力,即存在沿着法线方向的分力。在这两个条件限制下, [ f 1 , f 2 , f n ] \left[f_{1}, f_{2}, f_{n}\right] [f1,f2,fn] 构成的力集合在空间中组成了如下图所示的圆锥,即摩擦锥:
在接触点坐标系 C i C_i Ci中,其力螺旋 F c i F_{c_{i}} Fci可以表示为:
F c i = [ 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 ] f c i , f c i ∈ F C c i , F C c i = { f ∈ R 3 : f 1 2 + f 2 2 ≤ μ f 3 , f 3 ≥ 0 } \begin{gathered} F_{c_{i}}=\left[\begin{array}{lll} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{array}\right] f_{c_{i}}, \quad f_{c_{i}} \in F C_{c_{i}}, \\ F C_{c_{i}}=\left\{f \in \mathbb{R}^{3}: \sqrt{f_{1}^{2}+f_{2}^{2}} \leq \mu f_{3}, f_{3} \geq 0\right\} \end{gathered} Fci=⎣⎢⎢⎢⎢⎢⎢⎡100000010000001000⎦⎥⎥⎥⎥⎥⎥⎤fci,fci∈FCci,FCci={ f∈R3:f12+f22≤μf3,f3≥0}
式中, f 3 f_{3} f3 即 f n f_n fn 。
τ ≤ γ f n \tau \leq \gamma f_{n} τ≤γfn
式中, γ \gamma γ 为扭转摩擦系数。
在接触点坐标系 C i C_i Ci中,其力螺旋 F c i F_{c_{i}} Fci可以表示为:
F c i = [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 ] f c i , f c i ∈ F C c i , F C c i = { f ∈ R 4 : f 1 2 + f 2 2 ≤ μ f 3 , f 3 ≥ 0 , ∣ f 4 ∣ ≤ γ f 3 } F_{c_{i}}=\left[\begin{array}{llll}1 & 0 & 0 & 0\\0 & 1 & 0 & 0 \\0 & 0 & 1 & 0 \\0 & 0 & 0 & 0 \\0 & 0 & 0 & 0 \\0 & 0 & 0 & 1\end{array}\right] f_{c_{i}}, \quad f_{c_{i}} \in F C_{c_{i}}, \\F C_{c_{i}}=\left\{f \in \mathbb{R}^{4}: \sqrt{f_{1}^{2}+f_{2}^{2}} \leq \mu f_{3}, f_{3} \geq 0,\left|f_{4}\right| \leq \gamma f_{3}\right\} Fci=⎣⎢⎢⎢⎢⎢⎢⎡100000010000001000000001⎦⎥⎥⎥⎥⎥⎥⎤fci,fci∈FCci,FCci={ f∈R4:f12+f22≤μf3,f3≥0,∣f4∣≤γf3}
式中, f 3 f_{3} f3 即 f n f_n fn , ∣ f 4 ∣ \left|f_{4}\right| ∣f4∣ 表示扭转力矩的强度 τ \tau τ 。
此外,我们注意到上式矩阵中右下角变为了 1 1 1(即针对扭矩,只有法向分量为1,其余为0),这是为什么呢?
对于考虑于接触点坐标系 C i C_i Ci中的软接触情况,只考虑三个方向的力以及沿着法向的扭矩。其中,沿着法向的扭矩并非来自于这三个分力,而是由相当于多点接触的接触面之间扭转导致的。
基于上述阐述,我们可以用力螺旋基(wrench basis) B c i B_{c_{i}} Bci及摩擦锥 F C c i F C_{c_{i}} FCci建立出表示一般接触情况的数学模型。即:
F c i = B c i f c i f c i ∈ F C c i F_{c_{i}}=B_{c_{i}} f_{c_{i}} \quad f_{c_{i}} \in F C_{c_{i}} Fci=Bcifcifci∈FCci
其中,力螺旋基(wrench basis) B c i B_{c_{i}} Bci的维度为 [ 6 × m ] \left[6 \times m\right] [6×m], m m m为接触点力的个数。
总结各类接触类型与对应的力螺旋基以及力的约束,列表如下。其中,第一列是接触类型,第二列是示意图,第三列是力螺旋基,最后一列是力约束条件构成的摩擦锥。
前文所讲的力螺旋均是在接触点坐标系下,为了研究多个接触力对物体的影响,我们需要将各个接触力、力螺旋等转换到同一个坐标系——目标坐标系下。
我们用 R o c i R_{o c_{i}} Roci和 p o c i p_{o c_{i}} poci表示第i个接触点坐标系相对于目标坐标系的RT变换,那么,对于之前分析的每个接触力的力螺旋,我们将其转换到目标坐标系:
F o = A d g o c i − 1 T F c i = A d g o c i − 1 T B c i f c i = [ R o c i 0 p ^ o c i R o c i R o c i ] B c i f c i , f c i ∈ F C c i \begin{aligned}F_{o}&=\mathrm{Ad}_{g_{o c_{i}}^{-1}}^{T} F_{c_{i}} \\&=\mathrm{Ad}_{g_{o c_{i}}^{-1}}^{T}B_{c_{i}} f_{c_{i}} \\&=\left[\begin{array}{c}R_{o c_{i}} & 0 \\\widehat{p}_{o c_{i}} R_{o c_{i}} & R_{o c_{i}}\end{array}\right] B_{c_{i}} f_{c_{i}}, \quad f_{c_{i}} \in F C_{c_{i}}\end{aligned} Fo=Adgoci−1TFci=Adgoci−1TBcifci=[Rocip ociRoci0Roci]Bcifci,fci∈FCci
式中, A d g o c i − 1 T \mathrm{Ad}_{g_{o c_{i}}^{-1}}^{T} Adgoci−1T表示从接触点坐标系到目标坐标系下的力螺旋变换矩阵, p ^ o c i \widehat{p}_{o c{i}} p oci为 p o c i {p}_{o c{i}} poci的反对称阵。
反对称阵: w ^ = [ x y z ] ∧ = [ 0 − z y z 0 − x − y x 0 ] \widehat{w}=\left[\begin{array}{l} x \\ y \\ z \end{array}\right]^{\wedge}=\left[\begin{array}{rrr} 0 & -z & y \\ z & 0 & -x \\ -y & x & 0 \end{array}\right] w =⎣⎡xyz⎦⎤∧=⎣⎡0z−y−z0xy−x0⎦⎤
我们将从接触力 f c i f_{c_{i}} fci到目标坐标系下力螺旋 F o F_{o} Fo的映射矩阵定义为 G i G_{i} Gi:
G i : = A d g o c i − 1 T B c i G_{i}:=\mathrm{Ad}_{g_{o c_{i}}^{-1}}^{T} B_{c_{i}} Gi:=Adgoci−1TBci
如果有 k k k 个手指接触到目标物体,那么该物体上总的力螺旋是由于每个手指产生的力螺旋的总和。由于每个接触点的映射矩阵都是线性的,并且力螺旋可以叠加(同一坐标系中),所以目标坐标系下总的力螺旋 F o F_{o} Fo:
F o = G 1 f c 1 + ⋯ + G k f c k = [ G 1 ⋯ G k ] [ f c 1 ⋮ f c k ] \begin{aligned}F_{o}&=G_{1} f_{c_{1}}+\cdots+G_{k} f_{c_{k}} \\&=\left[\begin{array}{lll}G_{1} & \cdots & G_{k}\end{array}\right]\left[\begin{array}{c}f_{c_{1}} \\\vdots \\f_{c_{k}}\end{array}\right] \end{aligned} Fo=G1fc1+⋯+Gkfck=[G1⋯Gk]⎣⎢⎡fc1⋮fck⎦⎥⎤
此时,总的映射矩阵 G G G:
G = [ Ad g o c 1 − 1 T B c 1 ⋯ Ad g o c k − 1 T B c k ] G=\left[\begin{array}{lll}\operatorname{Ad}_{g_{o c_{1}}^{-1}}^{T} B_{c_{1}} & \cdots & \operatorname{Ad}_{g_{o c_{k}}^{-1}}^{T} B_{c_{k}}\end{array}\right] G=[Adgoc1−1TBc1⋯Adgock−1TBck]
G : R m → R 6 , m = m 1 + ⋯ + m k G: \mathbb{R}^{m} \rightarrow \mathbb{R}^{6}, m=m_{1}+\cdots+m_{k} G:Rm→R6,m=m1+⋯+mk
其维度为 [ 6 × m ] [6 \times m] [6×m], m m m为所有接触点力的个数总和。
由此,我们将多指抓取情况下总的映射矩阵 G G G定义为多指抓取的抓取矩阵。
那么基于此,目标坐标系下总的力螺旋 F o F_{o} Fo可以写为:
F o = G f c , f c ∈ F C F_o=G f_{c}, \quad f_{c} \in F C Fo=Gfc,fc∈FC
式中,
f c = ( f c 1 , … , f c k ) ∈ R m F C = F C c 1 × ⋯ × F C c k ⊂ R m m = m 1 + ⋯ + m k \begin{gathered}f_{c}=\left(f_{c_{1}}, \ldots, f_{c_{k}}\right) \in \mathbb{R}^{m} \\F C=F C_{c_{1}} \times \cdots \times F C_{c_{k}} \subset \mathbb{R}^{m} \\m=m_{1}+\cdots+m_{k}\end{gathered} fc=(fc1,…,fck)∈RmFC=FCc1×⋯×FCck⊂Rmm=m1+⋯+mk
至此,可以用抓取矩阵 G G G和摩擦锥 F C FC FC完完全全地描述出一个多指抓取了。
对于每个无摩擦接触点,通过代入无摩擦接触的力螺旋基,得到其力螺旋 F o F_o Fo:
F o = [ R o c i 0 p ^ o c i R o c i R o c i ] [ 0 0 1 0 0 0 ] f c i f c i ≥ 0 F_{o}=\left[\begin{array}{cc} R_{oc_{i}} & 0 \\ \widehat{p}_{oc{i}} R_{oc_{i}} & R_{oc_{i}} \end{array}\right]\left[\begin{array}{l} 0 \\ 0 \\ 1 \\ 0 \\ 0 \\ 0 \end{array}\right] f_{c_{i}} \quad f_{c_{i}} \geq 0 Fo=[Rocip ociRoci0Roci]⎣⎢⎢⎢⎢⎢⎢⎡001000⎦⎥⎥⎥⎥⎥⎥⎤fcifci≥0
通过矩阵乘法运算规则,可将力螺旋 F o F_o Fo写为如下形式:
F o = [ n c i p c i × n c i ] f c i F_{o}=\left[\begin{array}{c} n_{c_{i}} \\p_{c_{i}} \times n_{c_{i}}\end{array}\right] f_{c_{i}} Fo=[ncipci×nci]fci
式中, n c i n_{c_{i}} nci为目标坐标系下接触面向内的法方向。
对于多个无摩擦接触点,总的力螺旋 F o F_o Fo:
F o = [ n c 1 ⋯ n c k p c 1 × n c 1 ⋯ p c k × n c k ] [ f c 1 ⋮ f c k ] = G f c , F o ∈ R 6 f c i ≥ 0 F_{o}=\left[\begin{array}{ccc} n_{c_{1}} & \cdots & n_{c_{k}} \\ p_{c_{1}} \times n_{c_{1}} & \cdots & p_{c_{k}} \times n_{c_{k}} \end{array}\right]\left[\begin{array}{c} f_{c_{1}} \\ \vdots \\ f_{c_{k}} \end{array}\right]=G f_{c}, \quad \begin{aligned} &F_{o} \in \mathbb{R}^{6} \\ &f_{c_{i}} \geq 0 \end{aligned} Fo=[nc1pc1×nc1⋯⋯nckpck×nck]⎣⎢⎡fc1⋮fck⎦⎥⎤=Gfc,Fo∈R6fci≥0
考虑由两个软指握住一个盒子的情况,如下图所示:
两个接触点在目标坐标系的R和T如下:
R c 1 = [ 0 1 0 0 0 1 1 0 0 ] p c 1 = [ 0 − r 0 ] R c 2 = [ 1 0 0 0 0 − 1 0 1 0 ] p c 2 = [ 0 r 0 ] R_{c_{1}}=\left[\begin{array}{lll} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{array}\right] \quad p_{c_{1}}=\left[\begin{array}{c} 0 \\ -r \\ 0 \end{array}\right] \quad R_{c_{2}}=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{array}\right] \quad p_{c_{2}}=\left[\begin{array}{l} 0 \\ r \\ 0 \end{array}\right] Rc1=⎣⎡001100010⎦⎤pc1=⎣⎡0−r0⎦⎤Rc2=⎣⎡1000010−10⎦⎤pc2=⎣⎡0r0⎦⎤
对于每个软指,代入 力螺旋基
,可得每个软指的抓取矩阵:
G i = [ R o c i 0 p ^ o c i R o c i R o c i ] [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 ] G_{i}=\left[\begin{array}{cc} R_{oc_{i}} & 0 \\ \widehat{p}_{oc{i}} R_{oc_{i}} & R_{oc_{i}} \end{array}\right]\left[\begin{array}{llll} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1 \end{array}\right] Gi=[Rocip ociRoci0Roci]⎣⎢⎢⎢⎢⎢⎢⎡100000010000001000000001⎦⎥⎥⎥⎥⎥⎥⎤
代入 R o c i R_{o c_{i}} Roci和 p o c i p_{o c_{i}} poci后得到总的抓取矩阵:
G = [ 0 1 0 0 1 0 0 0 0 0 1 0 0 0 − 1 0 1 0 0 0 0 1 0 0 − r 0 0 0 0 + r 0 0 0 0 0 1 0 0 0 − 1 0 + r 0 0 − r 0 0 0 ] \\G=\left[\begin{array}{cccc|cccc} 0 & 1 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & -1 & 0 \\ 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ \hline-r & 0 & 0 & 0 & 0 & +r & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & -1 \\ 0 & +r & 0 & 0 & -r & 0 & 0 & 0 \end{array}\right] G=⎣⎢⎢⎢⎢⎢⎢⎡001−r0010000+r01000000001010000−r001+r000−100000000−10⎦⎥⎥⎥⎥⎥⎥⎤
此外,接触力:
f c = ( f c 1 1 , f c 1 2 , f c 1 3 , f c 1 4 , f c 2 1 , f c 2 2 , f c 2 3 , f c 2 4 ) ∈ R 8 f_{c}=\left(f_{c_{1}}^{1}, f_{c_{1}}^{2}, f_{c_{1}}^{3}, f_{c_{1}}^{4}, f_{c_{2}}^{1}, f_{c_{2}}^{2}, f_{c_{2}}^{3}, f_{c_{2}}^{4}\right) \in \mathbb{R}^{8} fc=(fc11,fc12,fc13,fc14,fc21,fc22,fc23,fc24)∈R8
其构成的摩擦锥:
F C = F C c 1 × F C c 2 F C c 1 = { f c : ( f c 1 1 ) 2 + ( f c 1 2 ) 2 ≤ μ f c 1 3 , ∣ f c 1 4 ∣ ≤ γ f c 1 3 , f c 1 3 ≥ 0 } F C c 2 = { f c : ( f c 2 1 ) 2 + ( f c 2 2 ) 2 ≤ μ f c 2 3 , ∣ f c 2 4 ∣ ≤ γ f c 2 3 , f c 2 3 ≥ 0 } \begin{aligned} F C &=F C_{c_{1}} \times F C_{c_{2}} \\ F C_{c_{1}} &=\left\{f_{c}: \sqrt{\left(f_{c_{1}}^{1}\right)^{2}+\left(f_{c_{1}}^{2}\right)^{2}} \leq \mu f_{c_{1}}^{3},\left|f_{c_{1}}^{4}\right| \leq \gamma f_{c_{1}}^{3}, f_{c_{1}}^{3} \geq 0\right\} \\ F C_{c_{2}} &=\left\{f_{c}: \sqrt{\left(f_{c_{2}}^{1}\right)^{2}+\left(f_{c_{2}}^{2}\right)^{2}} \leq \mu f_{c_{2}}^{3},\left|f_{c_{2}}^{4}\right| \leq \gamma f_{c_{2}}^{3}, f_{c_{2}}^{3} \geq 0\right\} \end{aligned} FCFCc1FCc2=FCc1×FCc2={ fc:(fc11)2+(fc12)2≤μfc13,∣∣fc14∣∣≤γfc13,fc13≥0}={ fc:(fc21)2+(fc22)2≤μfc23,∣∣fc24∣∣≤γfc23,fc23≥0}
在引入力封闭概念之前,我们需要先了解什么是形封闭。毕竟,形封闭一定是力封闭,但反之则不成立。换句话说,形封闭是力封闭的特例。
那么到底什么是形封闭呢?有以下几种说法:
【形封闭的定义】
首先,定义距离函数表示机械手和物体之间的间隙:
ψ i ( u , q ) , 1 ≤ i ≤ n c \psi_{i}(\mathbf{u}, \mathbf{q}), 1 \leq i \leq n_{c} ψi(u,q),1≤i≤nc
其中, u \mathbf{u} u 和 q \mathbf{q} q 分别代表了物体和机械手, n c n_{c} nc 为机械手和物体接触点的数目。
那么上式值的正负分别代表了三种情况:
基于距离函数的定义,可以给出形封闭的定义:
ψ ( u + d u , q ) ≥ 0 ⇒ d u = 0 \psi(\mathbf{u}+d \mathbf{u}, \mathbf{q}) \geq 0 \Rightarrow d \mathbf{u}=0 ψ(u+du,q)≥0⇒du=0
【上式含义】假设有这种情况:稍微移动物体(物体发生 d u d \mathbf{u} du 的变化),机械手与物体不碰撞渗透(距离函数大于等于0)。求解这个不等式,若得到 d u d \mathbf{u} du 的非零解,表示存在这种情况;反之若仅有 d u = 0 d \mathbf{u}=0 du=0 的解(物体状态不可变),表示不存在这种情况,即形成了形封闭。
何为力封闭?
如果抓取能够平衡或者抵消施加在物体上的任何外部作用力,即实现力封闭。
力封闭定义
对于任何外力螺旋(例如:重力) w e \mathbf{w}_{e} we ,都存在满足摩擦锥约束的接触力向量 l l l ,使得:
G l = − w e \mathbf{G} \mathbf{l}=-\mathbf{w}_{e} Gl=−we
力封闭成立的条件
充分必要条件:
G ( F C ) = R 6 G(F C)=\mathbb{R}^{6} G(FC)=R6
其中, G ( F C ) G(F C) G(FC) 是将抓取映射矩阵G应用于摩擦锥FC中的每个接触力向量 l l l 所得到的集合。
【含义】当接触力向量取遍其摩擦锥空间的所有情况时,可以使产生的力螺旋填满整个 R 6 \mathbb{R}^{6} R6 空间,即可以抵消掉任何外部力。
必要非充分条件:
对于任何力封闭情况,其抓取矩阵均需满足行满秩,即:
rank ( G ) = 6 \operatorname{rank}(\mathbf{G})=6 rank(G)=6
【含义】仅抓取矩阵行满秩时,才能将力空间( R 3 \mathbb{R}^{3} R3)完整映射到力螺旋空间( R 6 \mathbb{R}^{6} R6)。
L Q W e = max l ∥ W e ∥ ∥ l ∣ ∣ L Q_{W_{e}}=\max _{l} \frac{\left\|W_{e}\right\|}{\| l||} LQWe=lmax∥l∣∣∥We∥
其中,正如上文所讲的,
G l = − w e \mathbf{G} \mathbf{l}=-\mathbf{w}_{e} Gl=−we
LQ表示外部力螺旋大小和施加的力大小的最大比值,表达了所施加力的有效性。
Q = min w e L Q w e Q=\min _{w_{e}} L Q_{w_{e}} Q=weminLQwe
又因为 ∥ W e ∥ \left\|W_{e}\right\| ∥We∥ 和 ∥ l ∥ \left\|l\right\| ∥l∥ 是线性的,所以不失一般性地,令 ∥ l ∥ = 1 \left\|l\right\|=1 ∥l∥=1 ,可以得到对应的力螺旋空间 W e , ∥ l ∥ = 1 W_{e,\|l\|=1} We,∥l∥=1 ,定义该力螺旋空间为BG。重写LQ和Q的表达式得到:
L Q W = max W ∈ B G ∥ W ∥ → L Q = ∥ w ∥ , w ∈ B d ( B G ) L Q_{W}=\max _{W \in B G}\|W\| \rightarrow L Q=\|w\|, w \in B d(B G) LQW=W∈BGmax∥W∥→LQ=∥w∥,w∈Bd(BG)
Q = min w ∈ B d ( B G ) ∥ w ∥ \boldsymbol{Q}=\min _{w \in Bd(\boldsymbol{B G})}\|\boldsymbol{w}\| Q=w∈Bd(BG)min∥w∥
这里的 B d ( B G ) Bd(BG) Bd(BG)表示力螺旋空间BG的边界,以及由BG构成的凸包的边界。如下图分别表示2D空间的一个抓取对应的力螺旋空间所构成的凸包,左图对应 Q ∞ Q_{\infty} Q∞ ,右图对应 Q 1 Q_{1} Q1,将在下一小节介绍。
Q ∞ Q_{\infty} Q∞ —— Minimize the max finger force
其需满足:
∥ l ∥ ∞ = max ( l 1 , . , n ) = 1 \|l\|{\infty}=\max \left(l{1, ., n}\right)=1 ∥l∥∞=max(l1,.,n)=1
B G = W L ∞ = W 1 ⊕ … ⊕ W n B \mathcal{G}=W_{L_{\infty}}=W_{1} \oplus \ldots \oplus W_{n} BG=WL∞=W1⊕…⊕Wn
W i = { w i ∣ w i = ∑ i = 1 m α i , j w i , j , α i , j ≥ 0 , ∑ j = 1 m α i , j ≤ 1 } W_{i}=\left\{\mathbf{w}{i} \mid \mathbf{w}{i}=\sum_{i=1}^{m} \alpha_{i, j} \mathbf{w}{i, j}, \quad \alpha{i, j} \geq 0, \sum_{j=1}^{m} \alpha_{i, j} \leq 1\right\} Wi={ wi∣wi=i=1∑mαi,jwi,j,αi,j≥0,j=1∑mαi,j≤1}
上式中 ⊕ \oplus ⊕ 表示闵可夫斯基求和 ,其表征了空间中两个点集求和的所有可能集合,如下图所示:
接着将得到的BG代入下式即可:
Q = min w ∈ B d ( B G ) ∥ w ∥ \boldsymbol{Q}=\min _{w \in Bd(\boldsymbol{B G})}\|\boldsymbol{w}\| Q=w∈Bd(BG)min∥w∥
Q 1 Q_{1} Q1 —— Minimize the total finger force
对于 Q 1 Q_{1} Q1,需要满足:
∥ l ∥ 1 = sum ( l 1 , , , n ) = 1 \|l\|{1}=\operatorname{sum}\left(l{1,,, n}\right)=1 ∥l∥1=sum(l1,,,n)=1
其对应的BG为:
W L 1 = Convex Hull ( ⋃ i = 1 n { w i , 1 , … , w i , m } ) W_{L_{1}}=\text { Convex } \operatorname{Hull}\left(\bigcup_{i=1}^{n}\left\{\mathbf{w}{i, 1}, \ldots, \mathbf{w}{i, m}\right\}\right) WL1= Convex Hull(i=1⋃n{ wi,1,…,wi,m})
同理,代入下式即可:
Q = min w ∈ B d ( B G ) ∥ w ∥ \boldsymbol{Q}=\min _{w \in Bd(\boldsymbol{B G})}\|\boldsymbol{w}\| Q=w∈Bd(BG)min∥w∥
[1] Carpin, Stefano, et al. “Multi-fingered robotic grasping: A primer.” arXiv preprint arXiv:1607.06620 (2016).
[2] 摩雷. 机器人操作的数学导论[M]. 机械工业出版社, 1998.
[3] Murray, Richard M., Zexiang Li, and S. Shankar Sastry. A mathematical introduction to robotic manipulation. CRC press, 2017.
[4] Ferrari, Carlo, and John F. Canny. “Planning optimal grasps.” ICRA. Vol. 3. No. 4. 1992.