操作臂的雅可比矩阵
雅可比矩阵
雅可比矩阵的基本定义
已知
- 变量矢量 x=[x1x2…xn]T∈Rn
- 矢量函数 f(x)=[f1(x)f2(x)…fm(x)]T∈Rm
定义雅可比矩阵
J(x)=∂x∂f(x)=∂x1∂f1∂x1∂f2⋮∂x1∂fm∂x2∂f1∂x2∂f2⋮∂x2∂fm……⋱…∂xn∂f1∂xn∂f2⋮∂xn∂fm∈Rm×n
由定义可得
- 矩阵的第 i 行第 j 列为多元函数 fi(x) 关于变量 xj 的偏导数 ∂xj∂fi(x)
- 矩阵的行数由矢量函数的行数 f 决定, 矩阵的列数由变量矢量 x 决定
通过雅可比矩阵, 表明了矢量函数各个元素全微分与微分变量矢量之间的关系
df(x)=df1(x)df2(x)⋮dfm(x)=∂x1∂f1∂x1∂f2⋮∂x1∂fm∂x2∂f1∂x2∂f2⋮∂x2∂fm……⋱…∂xn∂f1∂xn∂f2⋮∂xn∂fmdx1dx2⋮dxn=J(x)dx
将等式除以时间微元 dt 有
f˙(x)=f1˙(x)f2˙(x)⋮fm˙(x)=J(x)x1˙x2˙⋮xn˙=J(x)x˙
平面操作臂雅可比矩阵示例
将操作臂的关节变量作为变量矢量 θ=[θ1θ2]T
将操作臂末端点 0pT=[xy]T 作为矢量函数
存在关系 (第一根连杆长 l1, 第二根连杆长 l2)
{x=l1cosθ1+l2cos(θ1+θ2)y=l1sinθ1+l2sin(θ1+θ2)
通过求导可得该操作臂的速度雅可比矩阵为
J(θ)=[−l1sinθ1−l2sin(θ1+θ2)l1cosθ1+l2cos(θ1+θ2)−l2sin(θ1+θ2)l2cos(θ1+θ2)]
满足
[svxsvy]=J(θ)[θ˙1θ˙2]
操作臂雅可比矩阵的意义
在操作臂运动学中, 通常将关节空间中的关节变量矢量 q 作为变量矢量, 将操作空间中的元素作为矢量函数, 将两者的雅可比矩阵称为操作臂雅可比矩阵
由雅可比矩阵的基本定义可知, 操作比雅可比矩阵描述了关节变量相对时间的导数 (即关节转动或平动速度) 相对于操作臂末端执行器的位姿相对时间的变化 (对于三维空间, 一般将末端执行器视为刚体, 使用末端执行器的速度线矢量) 的映射, 满足 (D 为微分运动矢量)
D=J(q)dq→V=[vω]=J(q)q˙
当雅可比矩阵 J(q) 行满秩时, 表明总是存在一组特定的关节速度 q˙ 使当前操作臂的末端执行器以任意速度运动
反之, 当行不满秩时, 操作臂末端只能以特定形式的速度运行, 称此时的操作臂 q 处于奇异状态
综上可知
- 操作臂的雅可比矩阵有形状 m×n, 其中
- m 为操作空间的维数, 对于三维空间一般为 6
- n 为操作臂的关节数, 因此三维空间中的雅可比矩阵行数一定为 6, 但列数不固定
- 以三维空间为例, 当操作臂的关节数 n 少于 6 时, 雅可比矩阵行必定不满秩, 因此总是处于奇异状态
- 对于三维空间的 6 关节操作臂, 此时雅可比矩阵为 6×6 的方阵, 因此可通过行列式 J(q)=0 判断操作臂当前是否处于奇异状态
- 对于不同的观察坐标系, 速度线矢量不同, 同样的, 这些不同观察坐标系下对应的雅可比矩阵也不同
通常情况下, 总是将速度线矢量 V 的原点固连在手腕坐标系原点 pOn 上, 但坐标轴的方向可能不同 - 使用 J(q) 表示基座标 {B} 下的雅可比矩阵, 此时得到的速度线矢量的观察坐标系的坐标轴平行于基坐标系 (注意原点依然在手腕坐标系原点 pOn 上), 定义该坐标系为 {W0}
- 使用 TJ(q) 表示手腕坐标系 {W} (即末端连杆 {n}) 下的雅可比矩阵, 此时得到的速度线矢量以工具坐标系 {W} 为观察坐标系
雅可比矩阵的构造
虽然雅可比矩阵来自于求导, 但在三维空间中, 不易于使用, 因此更多使用构造的方法
以下内容均默认以三维空间为讨论范围, 并默认以线速度 V 表示操作臂的末端速度
雅可比矩阵的分解
根据矩阵乘法的定义可知, 对于雅可比矩阵的第 i 列 Ji(q), 关节变量的运动速度 q˙ 与末端速度线矢量 V 之间存在线性关系
V=i=1∑nJi(q)q˙i
因此可分别找出关节 i 的运动对末端速度的影响 Ji(q), 通过组合即可得到操作臂的速度雅可比矩阵 J(q)
在雅可比矩阵的构造中, 将连杆 i 及其后的操作臂所有部分均视为一个刚体 Bi, 末端执行器即刚体上的一部分
假设其他关节静止, 关节 i 以速度 qi 绕 0zi 旋转或沿 0zi 平移时
关节方向决定了速度线矢量的方向 Lir, 关节速度决定了速度线矢量的幅值 qi, 两者的乘积即该关节对末端执行器的运动 Vi
由速度雅可比矩阵的分解可得, 线矢量 Lir 即雅可比矩阵的分量 Ji(q)=Lir
矢量积方法构造雅可比矩阵
该方法构造时, 始终以基座标系的坐标轴与工具坐标系原点 pOn 组合而成的坐标系为观察坐标系 {W0}
虽然使用了 0zi, 但该矢量是表示方向的自由矢量, 因此与原点位置无关
对于平动关节的情况
刚体 Bi 的旋转轴 n=0, 线速度方向 r×n=0zi, 因此有
Ji(q)=0Lir=[0zi0]
对于旋转关节的情况
刚体 Bi 旋转轴方向为 n=0zi
由观察坐标系下的末端关节原点 0pOn 指向旋转轴上一点 0pOi 有 r=0pOi−0pOn=0pOnOi (注意相减次序)
这些点的坐标可通过变换矩阵 i0T 的第四列找出
因此有
Ji(q)=0Lir=[r×nn]=[0pOnOi×0zi0zi]
微分变换法构造雅可比矩阵
该方法构造时, 始终以手腕坐标系 {W} 为观察坐标系
首先以连杆坐标系 {i} 为观察坐标系得到 iLr, 然后使用速度线矢量的伴随矩阵 AdV(niT), 将观察坐标系转移到 {W} 上
将 niT 展开有
niT=ixxixyixz0iyxiyyiyz0izxizyizz0ipOnxipOnxipOnx1
对于平动关节的情况
刚体 Bi 的旋转轴 n=0 线速度方向为 izi=[001]T, 因此有
iLir=001−0TJi(q)=nLir=AdV−1(niT)iLir=niRTizi−0=ixziyzizz−0
对于旋转关节的情况
刚体 Bi 旋转轴方向为 n=izi=[001]T
旋转轴就在原点上, 有 r=0
因此有
iLir=0−001TJi(q)=nLir=AdV−1(niT)iLir=[−niRT[ipOn]iziniRTizi]=npOiOn×ixziyzizzixziyzizz
对于旋转关节中的速度矢量 v, 上述公式基于交叉积与姿态矩阵的推论得到 (其中 niRTipOn=npOiOn)
部分情况下也写为以下的等价形式 (将 niRT 各行用于叉乘, 参见向量交叉积的性质)
TJi(q)=(ipOn×ix)z(ipOn×iy)z(ipOn×iz)zixziyzizz
两种坐标系下雅可比矩阵的转换
由操作臂雅可比矩阵的意义可知, 雅可比矩阵存在两种表示观察坐标系 {W0},{W}
由于两个坐标系的原点重合, 坐标系变换时仅有旋转, 以 {W0} 观察坐标系 {W} 时有齐次矩阵
WW0T=[n0R001]
根据旋转伴随变换可得, 相应的有速度线矢量伴随变换矩阵
AdV(WW0T)=[n0R00n0R]AdV−1(WW0T)=[n0RT00n0RT]
由速度雅可比矩阵的分解, 可知雅可比矩阵本质由 n 列速度线矢量 V 组成
因此两种形式的雅可比矩阵之间存在转换关系
AdV−1(WW0T)J(q)=TJ(q)
末端执行器雅可比矩阵的构造
对于位于末端连杆上的末端执行器点 T, 同样可使用矢量积法或微分变换法构造关于末端执行器的雅可比矩阵
此时的坐标规则与固连在末端手腕的规则类似, 同样分为以末端执行观察 {T} 与以平行于基坐标系的, 固连在末端执行器上的坐标系 {T0} 观察两种
因此观察坐标系中, 只需要改用 T0R 即可
由于末端执行器与末端关节原点在同一刚体上
- 对于矢量积法, 仅需在旋转关节改用矢量 0pOnOi→0pTOi
- 对于微分变换法, 仅需改用变换矩阵 niT→TiT
力雅可比矩阵
在以上讨论中, 均是以操作空间以及关节空间关于时间的导数, 即速度在讨论的, 因此也称为速度雅可比矩阵 JV
速度雅可比矩阵 JV 反映了由关节空间速度向操作空间速度的映射关系
与之对应的, 力雅可比矩阵 JF 则反映了操作空间受力向关节空间受力的映射关系, 满足
τ=JF(q)F
因此对于末端执行器所受的外载荷表示为力线矢量 F (坐标系选择与速度雅可比矩阵相同) 与各关节为了保持平衡产生广义约束力组成的矢量 τ
根据虚功原理, 当系统处于平衡状态时, 外载荷 F 所作产生的功率与关节约束力 τ 产生的功率应当相同有
{Po=FTV=fxvx+fyvy+fzvz+mxωx+myωy+mzωzPq=τTq˙=∑τiqi˙
此外, 根据速度雅可比矩阵的意义可得, 操作空间的末端执行器速度 V 与关节速度矢量 q˙ 满足 V=JV(q)q˙, 因此
PoFTVFTJV(q)τ=Pq=τTq˙=τT=JVT(q)F
由以上推导可得, 速度雅可比矩阵与力雅可比矩阵之间满足关系
JF(q)=JVT(q)
因此习惯上直接使用雅可比矩阵 J(q) 表示速度雅可比矩阵, 其转置 JT(q) 表示力雅可比矩阵
操作臂雅可比矩阵的意义
雅可比矩阵的四个基本子空间
通过雅可比矩阵的四个基本子空间中, 行空间与零空间为关节速度空间 Rn 的子空间, 列空间与左零空间为操作速度空间 Rm=6 的子空间
雅可比矩阵子空间的形状能一定程度上反应操作臂当前状态 q 下的运动特点
雅可比矩阵的列空间
对于雅可比矩阵的列空间满足 (教材上也称为域空间 R[J(q)])
C[J(q)]={V∣V=J(q)q˙}
因此列空间包含了操作臂在当前状态下, 所能达到的所有速度 V
易得列空间维数即雅可比矩阵的秩 r, 满足 dim(C[J(q)])=r
列空间的维数反映了操作臂当前状态下所具有的自由度
- 当雅可比矩阵行满秩时, r=m=6, 列空间张满整个操作速度空间 R6
此时对于任意指定的末端执行器速度 V, 总是存在至少一种关节速度组合 q˙ 可得达到该速度 - 当行不满秩时 r<m=6, 操作臂则处于奇异状态, 存在无法达到的速度
雅可比矩阵的零空间
对于雅可比矩阵的零空间满足
N[J(q)]={q˙∣0=J(q)q˙}
因此零空间包含了一系列关节速度的组合 q˙, 这些速度组合对于末端执行器的速度没有任何效果
易得零空间维数满足 dim(N[J(q)])=n−r
当行满秩时, 零空间的维数反映了操作臂冗余度, 冗余的自由度可用于躲避障碍
- 对于六关节六自由度操作臂, 显然其冗余度 dim(N[J(q)])=0, 无法实现避障, 只能在开阔空间中移动
- 对于七关节以上的操作臂, 其具有额外冗余度用于避障, 反解具有无限多的可能性
雅可比矩阵的左零空间
对于雅可比矩阵的左零空间满足
N[JT(q)]={F∣0=JT(q)F}
因此零空间包含了一系列外载荷 F, 当末端执行器受到该载荷时, 关节的约束力几乎为 0, 载荷由机器人的基座承担
易得左零空间维数满足 dim(N[J(q)])=m−r
当左零空间维数不为 0 时, 也即行不满秩, 操作臂处于奇异状态
因此奇异状态下, 操作臂除了存在无法到达的速度 V′, 还存在可完全通过基座承担的外载荷 F
由于列空间与左零空间互为正交补, 因此奇异状态下, 操作臂所能达到的速度 V 与可通过基座承担的外载荷 F 满足 VTF=0
操作臂的灵巧性
操作臂的奇异值分解
将雅可比矩阵进行奇异值分解后有
J(q)=UΣVTJ(q)vi=σiui
根据奇异值分解的特性可得, U∈R6×6,V∈Rn×n
- 奇异值 σi 反映了末端执行器速度 Vi 在 ui 方向上达到要求的大小时, 所需要的 vi 方向上的关节速度 q˙
- 因此奇异值 σi 越大表明末端执行器越容易达到方向 Vi 上的速度, 反之越不容易达到
- 当奇异值 σi=0 或不存在, 即雅可比矩阵处于奇异状态. ui 方向的速度不可能达到
- 设计时尽量使操作臂处于所有奇异值均相同的状态, 此时操作臂沿任意方向均具有相同的灵巧性
因此使用奇异值分解能定量地分析操作臂的灵巧性
灵巧性指标
- 条件数 k[J(q)]=σrσ1, 即最大与最小的奇异值之比 (奇异值按从大到小排列)
当 k=1, 所有奇异值相同, 操作臂的灵巧性最高 - 最小奇异值 σr, 最小奇异值越大, 末端对关节速度的相应越快
- 可操作度 w=detJ(q)JT(q)=∏σi, 奇异状态下, w=0
- 速度比椭球 vT[J(q)JT(q)]v=f(v)=1, 使用二次型表示的, 关于末端速度 V 的六维椭球, 反映了操作臂沿各个方向上的灵巧性