机器人操作数学重学 04:抓取约束与非完整运动

两根手指向内夹紧物体,为什么可以“很用力却不推动物体”?轮子不能侧滑,小车为什么又能经过几次前后转向改变横向位置?这两个问题都在研究运动受到约束后,力与速度还可以怎样组合。本篇用一个两指抓取和一次四段小车运动,把矩阵的零空间与 Lie 括号变成可计算的过程。

系列学习地图 · 上一篇:03 动力学与控制 · 回看:01 刚体运动、02 运动学与雅可比

1. 两个接触点,合起来能产生什么力

在物体中心建立平面坐标,左右接触点分别为 p₁ = (−a, 0)、p₂ = (a, 0)。所有力都先用同一组坐标轴表达,并约定 f₁、f₂ 是手指施加给物体的力。

平面两指抓取的接触位置、接触力、内部夹紧与物体合力矩

把两个接触力按固定顺序放入向量:

fc=[fx1fy1fx2fy2]Tf_c=\begin{bmatrix}f_{x1}&f_{y1}&f_{x2}&f_{y2}\end{bmatrix}^T

物体受到的合力是两力相加,绕中心的力矩由 p × f 得到。因此抓取映射为:

Fo=Gfc,G=[101001010−a0a]F_o=Gf_c,\qquad G=\begin{bmatrix} 1&0&1&0\\ 0&1&0&1\\ 0&-a&0&a \end{bmatrix}

F_o = (F_x, F_y, τ_z) 是平面力旋量,对应本系列六维顺序 (f, τ) 的平面分量。第三行的负号可以直接检查:左侧向上的力会让物体顺时针转动,因此贡献 −a f_y1。

取 a = 0.5 m,先不考虑接触是否可实现,代入 f_c = (2, −1, −2, 1) N:

合水平力:  2 + (−2) = 0 N
合竖直力: −1 + 1 = 0 N
合力矩: −0.5×(−1) + 0.5×1 = 1 N·m

它形成一个净转矩。矩阵乘法不仅给出答案,也把每一项的物理来源保存下来。

2. 零空间:为什么夹紧却不移动物体

换成相向夹紧的力:

fint=λ[10−10],Gfint=0f_{\mathrm{int}}=\lambda \begin{bmatrix}1\\0\\-1\\0\end{bmatrix}, \qquad Gf_{\mathrm{int}}=0

左手指向右推、右手指向左推,两力大小相同且作用线相同,合力与合力矩都为零。这就是内部力:落在 G 的零空间里,能改变接触载荷,却不改变物体的合力旋量。

“合力为零”不等于没有应力,更不等于可以无限加大夹紧力。物体强度、指尖接触、驱动器转矩和传感器量程都会给出实际边界。对只能推不能拉的接触,以上夹紧方向还要求 λ ≥ 0。

若某个 f₀ 已经能产生所需合力 F_o,那么 f₀ + f_int 仍给出同样的 F_o。这种自由度可以用于调节夹紧,但调节后的力还必须满足接触约束。

3. 力闭合不能只看矩阵秩

对理想点接触,通常不能随意选择四个力分量。假设左接触法向朝右、右接触法向朝左,采用平面库仑摩擦模型:

fx1≥0,∣fy1∣≤μfx1,−fx2≥0,∣fy2∣≤μ(−fx2).\begin{aligned} f_{x1}&\geq0,& |f_{y1}|&\leq\mu f_{x1},\\ -f_{x2}&\geq0,& |f_{y2}|&\leq\mu(-f_{x2}). \end{aligned}

法向力非负表达“只能推”,摩擦不等式限制切向力。前面 f_c = (2, −1, −2, 1) 的例子若取 μ = 0.6,每边允许的切向力上限为 1.2 N,而实际为 1 N,所以在这个简化模型下可行。

力闭合讨论:允许的接触力能否合成任意方向的物体力旋量,以抵抗任意方向的外扰。G 满行秩只说明不受限制的代数力分量可以张成这些方向,不代表摩擦锥内的力也能做到。

例如把摩擦系数设为 0,两接触只剩水平方向的推力;即使上面那个未约束的 G 仍是满行秩,也无法抵抗竖直外力。实际执行器还有幅值限制,因此“方向上力闭合”也不意味着能抵抗任意大的扰动。

4. 同一个转置,连接抓取的力和速度

设物体平面速度为 V_o = (v_x, v_y, ω)。左接触点的速度是 (v_x, v_y − aω),右接触点是 (v_x, v_y + aω);堆叠起来恰好是:

vc=GTVov_c=G^TV_o

另一方面,手指接触点速度由手的雅可比给出 v_c = J_h(q)q̇。在刚性接触、接触持续保持且无滑动的假设下,两侧接触速度必须一致:

Jh(q)q˙=GTVoJ_h(q)\dot q=G^TV_o

这里的速度分量与前面接触力分量采用相同坐标和相同堆叠顺序。于是接触功率满足:

fcTJhq˙=fcTGTVo=(Gfc)TVof_c^TJ_h\dot q=f_c^TG^TV_o=(Gf_c)^TV_o

这与上一章的 τ = JᵀF 是同一种虚功对偶关系。若 f_c 定义为手施加给物体的力,则物体施加给手的反力是 −f_c,它在手关节上的广义外力为 −J_hᵀf_c;准静态忽略其他作用时,驱动器需要相应抵消它。

发生滑动、分离或接触模型改变时,不能继续无条件使用整组速度相等关系,而应重新写出允许的速度与力约束。

5. 轮子不能侧滑,为什么还能换到旁边

下面切换到一个理想差速底盘/独轮车运动学模型。配置为 q = (x, y, θ),控制输入为前进速度 v 和转向角速度 ω:

x˙=vcos⁡θ,y˙=vsin⁡θ,θ˙=ω\dot x=v\cos\theta,\qquad \dot y=v\sin\theta,\qquad \dot\theta=\omega

车体侧向速度必须为零:

−sin⁡θ x˙+cos⁡θ y˙=0-\sin\theta\,\dot x+\cos\theta\,\dot y=0

这是瞬时速度约束。车头朝向 θ = 0 时,确实不能直接产生 ẏ;但可以先改变车头方向,再前进或后退。它一般不能被等价地写成一个仅约束当前位置的方程 h(x,y,θ)=0,因此属于非完整约束。

这个模型允许原地转向与倒退,不是带最小转弯半径的汽车模型。不同平台要从各自的轮式约束重新建模。

6. 四段运动,把横向位移算出来

四段独轮车运动:前进、左转、倒退、右转,回到原朝向但留下净位移

从 (0, 0, 0) 开始,按顺序执行四段运动。转向时位置不变,直行时朝向不变。

段 动作 结束状态 (x, y, θ)
1 前进距离 a (a, 0, 0)
2 原地左转角度 b (a, 0, b)
3 沿当前朝向倒退距离 a (a − a cos b, −a sin b, b)
4 原地右转角度 b (a(1 − cos b), −a sin b, 0)

取 a = 0.6 m、b = 0.45 rad,最后得到:

(x,y,θ)≈(0.05973, −0.26098, 0)(x,y,\theta)\approx(0.05973,\,-0.26098,\,0)

朝向回来了,位置却没有回来。这里有明显的负 y 位移,同时仍有约 0.06 m 的正 x 位移;有限步长的四段运动不是精确的纯横移。

点击“下一步”,依次观察这组固定参数下的中间状态与终点;用“上一步”和“重置”对照动作前后。每一段都满足不能侧滑的约束,但整段路径积累出一开始无法瞬时产生的横向位移。

7. Lie 括号:给“先后顺序产生的方向”命名

把前进和转向的向量场分别写成:

g1=[cos⁡θsin⁡θ0],g2=[001]g_1=\begin{bmatrix}\cos\theta\\\sin\theta\\0\end{bmatrix}, \qquad g_2=\begin{bmatrix}0\\0\\1\end{bmatrix}

采用括号约定 [g₁,g₂] = Dg₂·g₁ − Dg₁·g₂,直接求导得到:

[g1,g2]=[sin⁡θ−cos⁡θ0][g_1,g_2]=\begin{bmatrix}\sin\theta\\-\cos\theta\\0\end{bmatrix}

在起点 θ = 0,它指向负 y,正好对应上述“前进—左转—倒退—右转”的净位移主方向。交换动作顺序或交换括号的次序,方向符号也会改变。

当 b 很小时,sin b ≈ b、1 − cos b ≈ b²/2,所以:

Δy≈−ab,Δx≈ab22\Delta y\approx-ab,\qquad \Delta x\approx\frac{ab^2}{2}

若 a、b 都按小量 ε 缩小,横向主效应是二阶量,纵向残差是三阶量。这解释了为什么反复组合小动作可以积累侧向效果,也说明不能把有限转角时的近似当成精确公式。

在这个允许正反控制的无漂移模型中,前进、转向和括号方向能张成三个配置方向。它揭示了运动的可达能力;碰撞、转角与速度限制、执行误差等仍需在具体规划和控制中处理。

8. 两组练习,分别检查力与运动

  1. 两指例子中取 a = 0.5 m,把内部夹紧力从 λ = 2 N 增加到 λ = 3 N,物体合力旋量怎样变化?若指尖摩擦系数为 0.4,法向力为 2 N 时能否支持 1 N 切向力?
  2. 小车四段动作保持 a = 0.6 m,把左转角改为 b = −0.45 rad,终点的哪一项变号?把 b 改为 0 又会怎样?
展开检查答案

第一组:单纯增加内部夹紧,合力旋量仍为零;法向载荷和可用摩擦余量会改变。0.4 × 2 = 0.8 N 小于 1 N,因此该切向力不满足模型中的摩擦限制。第二组:cos 是偶函数、sin 是奇函数,所以 x 不变、y 变为正值;b = 0 时前进与倒退完全抵消,终点回到原位。

本篇使用原创数值例子与推导,对应 Murray、Li、Sastry 教材的多指手运动学和非完整运动主题。作者版本页面提供原书及勘误。

知识共享许可协议