数学原理---雅可比矩阵(多变量微积分本质)
雅可比矩阵(Jacobian Matrix)脱胎于多变量微积分,是描述向量值函数一阶导数的核心数学工具,其命名源自19世纪德国数学家卡尔·古斯塔夫·雅可比(Carl Gustav Jacob Jacobi)。
作为非线性系统局部线性化的标准手段,雅可比矩阵的应用横跨多个学科领域:
- 控制科学:非线性系统线性化、扩展卡尔曼滤波状态估计
- 机器人学:微分运动学、静力学映射、逆运动学求解、奇异分析
- 数值优化:非线性最小二乘、高斯-牛顿法、LM算法
- 机器学习:自动微分、反向传播、归一化流概率密度变换
- 几何计算:坐标变换、误差协方差传播
一、数学基础:
1.1 数学定义
设存在多输入多输出的向量值函数:
y=f(x)\mathbf y = \mathbf f(\mathbf x)y=f(x)
其中输入向量 x∈Rn\mathbf x \in \mathbb{R}^nx∈Rn,输出向量 y∈Rm\mathbf y \in \mathbb{R}^my∈Rm,即映射关系为 f:Rn→Rm\mathbf f: \mathbb{R}^n \rightarrow \mathbb{R}^mf:Rn→Rm。
函数 f\mathbf ff 在点 x\mathbf xx 处的雅可比矩阵定义为所有一阶偏导数构成的矩阵:
Jf(x)=∂f∂x=[∂f1∂x1∂f1∂x2⋯∂f1∂xn∂f2∂x1∂f2∂x2⋯∂f2∂xn⋮⋮⋱⋮∂fm∂x1∂fm∂x2⋯∂fm∂xn]J_{\mathbf f}(\mathbf x) = \frac{\partial \mathbf f}{\partial \mathbf x}= \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_1}{\partial x_2} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \frac{\partial f_2}{\partial x_1} & \frac{\partial f_2}{\partial x_2} & \cdots & \frac{\partial f_2}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \frac{\partial f_m}{\partial x_2} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix} Jf(x)=∂x∂f=
∂x1∂f1∂x1∂f2⋮∂x1∂fm∂x2∂f1∂x2∂f2⋮∂x2∂fm⋯⋯⋱⋯∂xn∂f1∂xn∂f2⋮∂xn∂fm
雅可比矩阵是一个 m×nm \times nm×n 的矩阵,满足核心维度约定:
- 行数 = 输出空间维数
- 列数 = 输入空间维数
这一约定为数学与工程界的通用标准,SciPy官方文档同样采用该定义:对于映射 f:Rn→Rmf:\mathbb{R}^n\rightarrow\mathbb{R}^mf:Rn→Rm,雅可比矩阵形状为 m×nm\times nm×n,元素 JijJ_{ij}Jij 表示第 iii 个输出分量对第 jjj 个输入变量的偏导数。
1.2 本质:非线性函数的局部线性化
雅可比矩阵形式上是“将偏导数排列成矩阵”,而核心意义是在指定工作点附近对非线性函数进行一阶泰勒近似,实现局部线性化。
对于一元函数 y=f(x)y=f(x)y=f(x),在 xxx 附近的增量满足:
f(x+Δx)≈f(x)+f′(x)Δxf(x+\Delta x) \approx f(x) + f'(x)\Delta xf(x+Δx)≈f(x)+f′(x)Δx
推广至向量值函数,增量形式为:
f(x+Δx)=f(x)+Jf(x)Δx+o(∣Δx∣)\mathbf f(\mathbf x+\Delta \mathbf x) = \mathbf f(\mathbf x) + J_{\mathbf f}(\mathbf x)\Delta \mathbf x + o(|\Delta \mathbf x|)f(x+Δx)=f(x)+Jf(x)Δx+o(∣Δx∣)
忽略高阶无穷小项后,得到最核心的线性近似关系:
Δy≈J(x)Δx\Delta \mathbf y \approx J(\mathbf x)\Delta \mathbf xΔy≈J(x)Δx
该式的物理含义十分直观:当输入在当前点 x\mathbf xx 附近发生微小变化 Δx\Delta \mathbf xΔx 时,输出的变化量近似等于雅可比矩阵与输入增量的乘积。
机器人学中的微分运动学,本质上就是对正运动学这一非线性函数应用该线性近似,从而建立关节速度与末端速度的映射关系。
局部性的直观解释
雅可比的线性近似仅在工作点的小邻域内有效。以函数 y=x2y=x^2y=x2 为例,在 x=2x=2x=2 处导数为4,即 Δy≈4Δx\Delta y \approx 4\Delta xΔy≈4Δx:
- 当 Δx=0.01\Delta x=0.01Δx=0.01 时,近似值 Δy=0.04\Delta y=0.04Δy=0.04,真实值为 2.012−22=0.04012.01^2-2^2=0.04012.012−22=0.0401,误差极小;
- 当 Δx=10\Delta x=10Δx=10 时,近似值 Δy=40\Delta y=40Δy=40,真实值为 122−22=14012^2-2^2=140122−22=140,误差极大。
这充分说明:雅可比矩阵描述的是当前工作点附近的小范围变化关系,而非全局映射规律。
1.3 行与列的物理意义
对于雅可比矩阵 J∈Rm×nJ \in \mathbb{R}^{m\times n}J∈Rm×n,其行与列分别对应不同的物理含义:
每一行:单个输出的梯度
第 iii 行向量 Ji,:J_{i,:}Ji,: 为:
[∂fi∂x1∂fi∂x2⋯∂fi∂xn] \begin{bmatrix} \frac{\partial f_i}{\partial x_1} & \frac{\partial f_i}{\partial x_2} & \cdots & \frac{\partial f_i}{\partial x_n} \end{bmatrix} [∂x1∂fi∂x2∂fi⋯∂xn∂fi]
它描述了第 iii 个输出分量对所有输入变量的敏感程度,本质上是标量函数 fif_ifi 的梯度转置:
Ji,:=∇fiTJ_{i,:} = \nabla f_i^TJi,:=∇fiT
每一列:单个输入的影响
第 jjj 列向量 J:,jJ_{:,j}J:,j 为:
J:,j=[∂f1∂xj∂f2∂xj⋮∂fm∂xj] J_{:,j} = \begin{bmatrix} \frac{\partial f_1}{\partial x_j} \\ \frac{\partial f_2}{\partial x_j} \\ \vdots \\ \frac{\partial f_m}{\partial x_j} \end{bmatrix} J:,j=
∂xj∂f1∂xj∂f2⋮∂xj∂fm
它描述了仅第 jjj 个输入发生单位微小变化时,所有输出分量的变化方向与幅度。
在机器人学中这一解释尤为关键:机器人雅可比的第 jjj 列,对应第 jjj 个关节以单位速度运动、其余关节静止时,末端执行器产生的运动速度,这也是螺旋理论构造雅可比的核心依据。
1.4 方向导数:JVP与VJP
在工程实践中,完整计算大规模雅可比矩阵往往计算代价极高,多数场景仅需计算雅可比与向量的乘积,无需显式构造完整矩阵。
雅可比-向量乘积(JVP)
给定方向向量 v∈Rn\mathbf v \in \mathbb{R}^nv∈Rn,雅可比-向量乘积定义为:
J(x)v=ddϵf(x+ϵv)∣ϵ=0 J(\mathbf x)\mathbf v = \left. \frac{d}{d\epsilon} \mathbf f(\mathbf x+\epsilon \mathbf v) \right|_{\epsilon=0} J(x)v=dϵdf(x+ϵv)
ϵ=0
它表示函数沿方向 v\mathbf vv 的方向导数。
机器人中的正微分运动学 x˙=Jq˙\dot{\mathbf x} = J\dot{\mathbf q}x˙=Jq˙ 就是典型的JVP运算:无需逐元素求导构造完整雅可比,仅需通过运动学链传播关节速度,即可直接得到末端速度。JVP对应自动微分中的前向模式(Forward Mode)。
向量-雅可比乘积(VJP)
给定向量 u∈Rm\mathbf u \in \mathbb{R}^mu∈Rm,向量-雅可比乘积定义为:
JTu=∇x(uTf(x)) J^T\mathbf u = \nabla_{\mathbf x} \left( \mathbf u^T \mathbf f(\mathbf x) \right) JTu=∇x(uTf(x))
它表示将输出空间的向量反向传播至输入空间,对应自动微分中的反向模式(Reverse Mode)。
机器人中的静力学映射 τ=JTW\boldsymbol\tau = J^T\mathbf Wτ=JTW、深度学习中的反向传播算法,本质上都属于VJP运算。JAX官方文档明确将jacfwd(前向模式)与JVP对应、jacrev(反向模式)与VJP对应,为不同维度的雅可比计算提供最优方案。
1.5 梯度、雅可比与Hessian的辨析
三者均为多元函数的导数概念,但适用场景与维度完全不同,是极易混淆的基础概念:
梯度(Gradient)
针对标量函数 f:Rn→Rf: \mathbb{R}^n \rightarrow \mathbb{R}f:Rn→R,梯度是 nnn 维列向量:
∇f=[∂f∂x1⋮∂f∂xn] \nabla f = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix} ∇f=
∂x1∂f⋮∂xn∂f
在“输出为行、输入为列”的雅可比约定下,标量函数的雅可比是其梯度的转置:
Jf=∇fTJ_f = \nabla f^TJf=∇fT
雅可比(Jacobian)
针对向量值函数 f:Rn→Rm\mathbf f: \mathbb{R}^n \rightarrow \mathbb{R}^mf:Rn→Rm,一阶导数为 m×nm\times nm×n 的雅可比矩阵。
Hessian矩阵
针对标量函数 f:Rn→Rf: \mathbb{R}^n \rightarrow \mathbb{R}f:Rn→R,Hessian是二阶偏导数构成的 n×nn\times nn×n 方阵:
Hf=[∂2f∂x12⋯∂2f∂x1∂xn⋮⋱⋮∂2f∂xn∂x1⋯∂2f∂xn2] H_f = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \cdots & \frac{\partial^2 f}{\partial x_1\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n\partial x_1} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix} Hf=
∂x12∂2f⋮∂xn∂x1∂2f⋯⋱⋯∂x1∂xn∂2f⋮∂xn2∂2f
Hessian可以理解为“梯度函数的雅可比”,即 Hf=J∇fH_f = J_{\nabla f}Hf=J∇f。
对于向量值函数,每个输出分量都对应一个Hessian矩阵,因此二阶导数本质上是 m×n×nm\times n\times nm×n×n 的三阶张量。JAX官方文档同样明确了该维度约定:向量函数一阶导数形状为 m×nm\times nm×n,二阶导数形状为 m×n×nm\times n\times nm×n×n。
1.6 链式法则
设存在两层复合映射:
y=f(x),z=g(y)\mathbf y = \mathbf f(\mathbf x), \quad \mathbf z = \mathbf g(\mathbf y)y=f(x),z=g(y)
即复合函数为 z=g(f(x))\mathbf z = \mathbf g(\mathbf f(\mathbf x))z=g(f(x)),则复合函数的雅可比满足:
Jg∘f=Jg(f(x))⋅Jf(x) J_{\mathbf g \circ \mathbf f} = J_{\mathbf g}(\mathbf f(\mathbf x)) \cdot J_{\mathbf f}(\mathbf x) Jg∘f=Jg(f(x))⋅Jf(x)
矩阵乘法顺序不可颠倒,维度匹配关系为:若 x∈Rn\mathbf x\in\mathbb{R}^nx∈Rn、y∈Rm\mathbf y\in\mathbb{R}^my∈Rm、z∈Rp\mathbf z\in\mathbb{R}^pz∈Rp,则 Jf∈Rm×nJ_f\in\mathbb{R}^{m\times n}Jf∈Rm×n、Jg∈Rp×mJ_g\in\mathbb{R}^{p\times m}Jg∈Rp×m,最终复合雅可比 JgJf∈Rp×nJ_g J_f \in \mathbb{R}^{p\times n}JgJf∈Rp×n。
机器人正运动学本质上是多级刚体变换的复合,因此机械臂雅可比既可以通过对正运动学表达式求导得到,也可以通过链式递推或螺旋理论逐列构造。
1.7 雅可比行列式:面积/体积缩放与可逆性
只有当输入与输出维数相等(n=mn=mn=m)时,雅可比矩阵为方阵,才可计算行列式 detJ\det JdetJ。
局部几何缩放
在坐标变换中,雅可比行列式的绝对值 ∣detJ∣|\det J|∣detJ∣ 表示局部面积/体积的缩放倍数:
- 二维场景:微小面积元 dxdydxdydxdy 经过变换后,面积近似乘以 ∣detJ∣|\det J|∣detJ∣;
- 三维及更高维:微小体积元经过变换后,体积近似乘以 ∣detJ∣|\det J|∣detJ∣。
MIT多变量微积分课程的坐标变换章节,正是以雅可比行列式为核心工具描述面积/体积元的映射关系。
行列式的符号与几何意义
- detJ>0\det J > 0detJ>0:变换保持局部空间方向;
- detJ<0\det J < 0detJ<0:变换发生局部方向翻转;
- detJ=0\det J = 0detJ=0:局部空间被压缩至更低维度,面积/体积变为0。
局部可逆性
根据逆函数定理,若在点 x0\mathbf x_0x0 处满足 detJ(x0)≠0\det J(\mathbf x_0) \neq 0detJ(x0)=0,则函数在该点的邻域内局部可逆。
需要特别注意:局部可逆 ≠ 全局可逆。例如函数 y=x2y=x^2y=x2 在 x=1x=1x=1 处雅可比行列式不为零,局部可逆,但在整个实数域上并非一一映射。
机器人正运动学同理:某一位姿下雅可比满秩仅说明可进行局部逆运动学求解,不代表整个工作空间内该位姿对应唯一关节解。
延伸:概率密度变换
雅可比行列式是概率统计中随机变量变换的核心工具。若随机变量 X\mathbf XX 服从概率密度 pX(x)p_X(\mathbf x)pX(x),经过可逆变换 y=f(x)\mathbf y = \mathbf f(\mathbf x)y=f(x) 得到随机变量 Y\mathbf YY,则 Y\mathbf YY 的概率密度满足:
pY(y)=pX(f−1(y))⋅∣detJf−1(y)∣p_Y(\mathbf y) = p_X(\mathbf f^{-1}(\mathbf y)) \cdot \left| \det J_{\mathbf f^{-1}}(\mathbf y) \right|pY(y)=pX(f−1(y))⋅∣detJf−1(y)∣
这一性质是归一化流(Normalizing Flow)等深度生成模型的理论基础,广泛应用于生成式AI领域。
二、机器人学:微分运动学与静力学
2.1 机器人雅可比的基本定义
设机器人关节变量向量为 q=[q1q2⋯qn]T\mathbf q = \begin{bmatrix} q_1 & q_2 & \cdots & q_n \end{bmatrix}^Tq=[q1q2⋯qn]T,末端任务变量(位姿)为 x=f(q)\mathbf x = \mathbf f(\mathbf q)x=f(q),其中 f\mathbf ff 为正运动学函数。
对时间求导可得速度映射关系:
x˙=∂f∂qq˙ \dot{\mathbf x} = \frac{\partial \mathbf f}{\partial \mathbf q} \dot{\mathbf q} x˙=∂q∂fq˙
定义机器人雅可比矩阵为正运动学函数对关节变量的偏导:
J(q)=∂f∂qJ(\mathbf q) = \frac{\partial \mathbf f}{\partial \mathbf q}J(q)=∂q∂f
由此得到微分运动学核心方程:
x˙=J(q)q˙\dot{\mathbf x} = J(\mathbf q) \dot{\mathbf q}x˙=J(q)q˙
雅可比矩阵是连接关节空间与笛卡尔任务空间的核心桥梁,它不仅将关节速度映射为末端速度,还可通过转置将末端广义力(wrench)映射为关节广义力矩。
机器人雅可比重在回答以下核心问题:
- 单个关节微小运动时,末端的运动方向与幅度;
- 给定关节速度组合,对应的末端运动速度;
- 期望末端沿指定方向运动时,各关节的速度配合关系;
- 末端受到外力/力矩时,各关节需要承担的驱动力矩;
- 当前位姿是否接近奇异位形;
- 当前位姿下,末端在哪些方向更易运动或施力。
2.2 案例:平面二连杆机械臂推导
以最经典的二自由度平面机械臂为例,完整推导其位置雅可比。设连杆长度为 l1,l2l_1, l_2l1,l2,关节角为 q1,q2q_1, q_2q1,q2,末端坐标为 (x,y)(x,y)(x,y)。
正运动学方程为:
{x=l1cosq1+l2cos(q1+q2)y=l1sinq1+l2sin(q1+q2) \begin{cases} x = l_1\cos q_1 + l_2\cos(q_1+q_2) \\ y = l_1\sin q_1 + l_2\sin(q_1+q_2) \end{cases} {x=l1cosq1+l2cos(q1+q2)y=l1sinq1+l2sin(q1+q2)
写成向量形式为 p=[xy]=f(q1,q2)\mathbf p = \begin{bmatrix} x \\ y \end{bmatrix} = \mathbf f(q_1,q_2)p=[xy]=f(q1,q2),雅可比矩阵为 2×22\times22×2 方阵:
J=[∂x∂q1∂x∂q2∂y∂q1∂y∂q2] J = \begin{bmatrix} \frac{\partial x}{\partial q_1} & \frac{\partial x}{\partial q_2} \\ \frac{\partial y}{\partial q_1} & \frac{\partial y}{\partial q_2} \end{bmatrix} J=[∂q1∂x∂q1∂y∂q2∂x∂q2∂y]
对各分量求偏导:
∂x∂q1=−l1sinq1−l2sin(q1+q2)∂x∂q2=−l2sin(q1+q2)∂y∂q1=l1cosq1+l2cos(q1+q2)∂y∂q2=l2cos(q1+q2) \begin{align*} \frac{\partial x}{\partial q_1} &= -l_1\sin q_1 - l_2\sin(q_1+q_2) \\ \frac{\partial x}{\partial q_2} &= -l_2\sin(q_1+q_2) \\ \frac{\partial y}{\partial q_1} &= l_1\cos q_1 + l_2\cos(q_1+q_2) \\ \frac{\partial y}{\partial q_2} &= l_2\cos(q_1+q_2) \end{align*} ∂q1∂x∂q2∂x∂q1∂y∂q2∂y=−l1sinq1−l2sin(q1+q2)=−l2sin(q1+q2)=l1cosq1+l2cos(q1+q2)=l2cos(q1+q2)
最终得到二连杆平面机械臂的位置雅可比:
J=[−l1sinq1−l2sin(q1+q2)−l2sin(q1+q2)l1cosq1+l2cos(q1+q2)l2cos(q1+q2)] \boxed{ J = \begin{bmatrix} -l_1\sin q_1 - l_2\sin(q_1+q_2) & -l_2\sin(q_1+q_2) \\ l_1\cos q_1 + l_2\cos(q_1+q_2) & l_2\cos(q_1+q_2) \end{bmatrix} } J=[−l1sinq1−l2sin(q1+q2)l1cosq1+l2cos(q1+q2)−l2sin(q1+q2)l2cos(q1+q2)]
速度映射关系为:
[x˙y˙]=J[q˙1q˙2] \begin{bmatrix} \dot x \\ \dot y \end{bmatrix} = J \begin{bmatrix} \dot q_1 \\ \dot q_2 \end{bmatrix} [x˙y˙]=J[q˙1q˙2]
也可按列分解为:
p˙=J1q˙1+J2q˙2\dot{\mathbf p} = J_1 \dot q_1 + J_2 \dot q_2p˙=J1q˙1+J2q˙2
其中 J1J_1J1 为关节1单位转速产生的末端速度,J2J_2J2 为关节2单位转速产生的末端速度,与“雅可比列向量对应单关节单位速度”的物理解释完全一致。
2.3 关节类型与雅可比列向量的几何构造
对于串联机器人,无需展开正运动学求导,可直接通过关节轴的几何关系逐列构造六维几何雅可比。本文采用通用的运动旋量(twist)排列顺序:
V=[vω] \mathbf V = \begin{bmatrix} \mathbf v \\ \boldsymbol \omega \end{bmatrix} V=[vω]
其中 v\mathbf vv 为末端线速度,ω\boldsymbol \omegaω 为末端角速度。
注意:部分教材与函数库采用 [ω;v][\boldsymbol \omega; \mathbf v][ω;v] 的排列顺序,工程使用前必须确认接口约定,避免线速度与角速度混淆。
旋转关节(Revolute Joint)
设第 iii 个旋转关节的关节轴方向单位向量为 zi−1\mathbf z_{i-1}zi−1,关节轴上任意一点的位置为 pi−1\mathbf p_{i-1}pi−1,末端执行器位置为 pe\mathbf p_epe,则雅可比第 iii 列为:
Ji=[zi−1×(pe−pi−1)zi−1] \boxed{ J_i = \begin{bmatrix} \mathbf z_{i-1} \times (\mathbf p_e - \mathbf p_{i-1}) \\ \mathbf z_{i-1} \end{bmatrix} } Ji=[zi−1×(pe−pi−1)zi−1]
上半部分线速度源自刚体定轴转动公式 v=ω×r\mathbf v = \boldsymbol \omega \times \mathbf rv=ω×r:关节以单位角速度旋转时,ω=zi−1\boldsymbol \omega = \mathbf z_{i-1}ω=zi−1,关节轴到末端的径向向量为 r=pe−pi−1\mathbf r = \mathbf p_e - \mathbf p_{i-1}r=pe−pi−1,因此线速度为 vi=zi−1×(pe−pi−1)\mathbf v_i = \mathbf z_{i-1} \times (\mathbf p_e - \mathbf p_{i-1})vi=zi−1×(pe−pi−1);下半部分角速度即为关节轴方向。
移动关节(Prismatic Joint)
移动关节仅产生平动,不直接带动末端转动,因此雅可比第 iii 列为:
Ji=[zi−10] \boxed{ J_i = \begin{bmatrix} \mathbf z_{i-1} \\ \mathbf 0 \end{bmatrix} } Ji=[zi−10]
其中 zi−1\mathbf z_{i-1}zi−1 为移动关节的运动方向。
2.4 位置雅可比与几何雅可比
根据任务空间的维度,机器人雅可比可分为两类:
位置雅可比
若仅关注末端位置 p∈R3\mathbf p \in \mathbb{R}^3p∈R3,不考虑姿态,则使用位置雅可比 Jv∈R3×nJ_v \in \mathbb{R}^{3\times n}Jv∈R3×n,满足:
p˙=Jvq˙\dot{\mathbf p} = J_v \dot{\mathbf q}p˙=Jvq˙
几何雅可比
若同时考虑末端位置与姿态,使用六维几何雅可比(Geometric Jacobian):
[vω]=[JvJω]q˙ \begin{bmatrix} \mathbf v \\ \boldsymbol \omega \end{bmatrix} =\begin{bmatrix} J_v \\ J_\omega \end{bmatrix} \dot{\mathbf q} [vω]=[JvJω]q˙
即完整几何雅可比 Jg=[JvJω]∈R6×nJ_g = \begin{bmatrix} J_v \\ J_\omega \end{bmatrix} \in \mathbb{R}^{6\times n}Jg=[JvJω]∈R6×n。
对于六自由度工业机械臂,几何雅可比为 6×66\times66×6 方阵,但这并不意味着其在所有位姿下都可逆,奇异位形下矩阵秩会下降。
2.5 空间雅可比与本体雅可比
末端运动旋量可以在不同参考坐标系中表达,由此衍生出两类雅可比:
空间雅可比(Space Jacobian)
末端运动旋量在固定基坐标系(空间坐标系)中表达:
Vs=Js(q)q˙\mathbf V_s = J_s(\mathbf q) \dot{\mathbf q}Vs=Js(q)q˙
空间雅可比形状为 6×n6\times n6×n,其第 iii 列的运动学意义仅受该关节之前的连杆位姿影响。
本体雅可比(Body Jacobian)
末端运动旋量在末端自身连杆坐标系(本体坐标系)中表达:
Vb=Jb(q)q˙\mathbf V_b = J_b(\mathbf q) \dot{\mathbf q}Vb=Jb(q)q˙
本体雅可比形状同样为 6×n6\times n6×n,其列向量在末端坐标系中描述,第 iii 列的运动学意义主要受该关节之后的连杆配置影响。
二者的转换关系
设末端坐标系相对于空间坐标系的位姿为 Tsb∈SE(3)T_{sb} \in SE(3)Tsb∈SE(3),运动旋量可通过伴随矩阵(Adjoint)进行坐标变换:
Vs=AdTsbVb\mathbf V_s = \operatorname{Ad}_{T_{sb}} \mathbf V_bVs=AdTsbVb
因此两类雅可比满足转换关系:
Js=AdTsbJb \boxed{ J_s = \operatorname{Ad}_{T_{sb}} J_b } Js=AdTsbJb
本质上,空间雅可比与本体雅可比并非两个不同的物理量,而是同一末端运动在不同参考坐标系下的数学表达。
2.6 几何雅可比与解析雅可比
几何雅可比
几何雅可比输出的是刚体真实的线速度与角速度,对应物理上可直接测量的运动:
[vω]=Jgq˙ \begin{bmatrix} \mathbf v \\ \boldsymbol \omega \end{bmatrix} = J_g \dot{\mathbf q} [vω]=Jgq˙
其中 ω\boldsymbol \omegaω 是刚体瞬时角速度矢量。
解析雅可比
若末端姿态采用欧拉角、RPY角等最小参数化表示,设姿态角向量为 ϕ=[rpy]T\boldsymbol \phi = \begin{bmatrix} r & p & y \end{bmatrix}^Tϕ=[rpy]T,定义任务坐标 x=[pϕ]\mathbf x = \begin{bmatrix} \mathbf p \\ \boldsymbol \phi \end{bmatrix}x=[pϕ],则:
x˙=[p˙ϕ˙]=Jaq˙ \dot{\mathbf x} = \begin{bmatrix} \dot{\mathbf p} \\ \dot{\boldsymbol \phi} \end{bmatrix} = J_a \dot{\mathbf q} x˙=[p˙ϕ˙]=Jaq˙
其中 JaJ_aJa 称为解析雅可比(Analytic Jacobian)。
核心区别:欧拉角变化率 ≠ 角速度
一般情况下,欧拉角的时间导数不等于刚体角速度,即:
ϕ˙≠ω\dot{\boldsymbol \phi} \neq \boldsymbol \omegaϕ˙=ω
二者之间存在姿态相关的转换矩阵 E(ϕ)E(\boldsymbol \phi)E(ϕ):
ω=E(ϕ)ϕ˙\boldsymbol \omega = E(\boldsymbol \phi) \dot{\boldsymbol \phi}ω=E(ϕ)ϕ˙
因此几何雅可比与解析雅可比满足:
Jg=[I00E(ϕ)]Ja J_g = \begin{bmatrix} I & 0 \\ 0 & E(\boldsymbol \phi) \end{bmatrix} J_a Jg=[I00E(ϕ)]Ja
Pinocchio官方文档单独提供了RPY角变化率到角速度的转换雅可比,明确指出二者不可直接等同,需通过额外的变换矩阵进行转换。
两类奇异性
- 机构运动学奇异性:几何雅可比降秩,由机器人机构本身的位形导致,是真实的运动能力丧失;
- 姿态表示奇异性:解析雅可比因欧拉角参数化本身出现奇异(如俯仰角接近 ±π/2\pm\pi/2±π/2 时的万向锁),属于参数化导致的数值奇异,并非机构本身失去运动能力。
两类奇异可能同时出现,也可能单独出现,工程分析中必须加以区分。
2.7 参考坐标系与参考点的工程影响
雅可比矩阵的数值不仅取决于机器人关节位形,还与三个工程约定强相关:
- 速度/力所参考的坐标系(基坐标系、末端坐标系等);
- 雅可比对应末端连杆上的参考点(法兰中心、TCP尖端等);
- 运动旋量中线速度与角速度的排列顺序。
例如同一末端连杆,分别对法兰原点和法兰前方100mm的焊枪TCP尖端求雅可比,二者角速度部分完全相同,但线速度部分存在差异。这是因为刚体上两点的速度满足:
vB=vA+ω×rAB\mathbf v_B = \mathbf v_A + \boldsymbol \omega \times \mathbf r_{AB}vB=vA+ω×rAB
更换参考点仅影响雅可比的线速度部分 JvJ_vJv,不影响角速度部分 JωJ_\omegaJω。
主流机器人库均对参考系与参考点做了明确区分:MoveIt的RobotState::getJacobian()接口要求指定关节组、目标连杆及链路上的参考点;Pinocchio则提供LOCAL、WORLD、LOCAL_WORLD_ALIGNED等多种参考坐标系选项。
2.8 加速度映射与雅可比时间导数
已知速度映射关系 x˙=J(q)q˙\dot{\mathbf x} = J(\mathbf q)\dot{\mathbf q}x˙=J(q)q˙,对时间再次求导可得加速度映射:
x¨=ddt(J(q)q˙) \ddot{\mathbf x} = \frac{d}{dt}\left( J(\mathbf q)\dot{\mathbf q} \right) x¨=dtd(J(q)q˙)
展开后得到:
x¨=J(q)q¨+J˙(q,q˙)q˙ \boxed{ \ddot{\mathbf x} = J(\mathbf q)\ddot{\mathbf q} + \dot J(\mathbf q, \dot{\mathbf q}) \dot{\mathbf q} } x¨=J(q)q¨+J˙(q,q˙)q˙
其中雅可比的时间导数 J˙\dot JJ˙ 满足:
J˙=∑i=1n∂J∂qiq˙i\dot J = \sum_{i=1}^{n} \frac{\partial J}{\partial q_i} \dot q_iJ˙=i=1∑n∂qi∂Jq˙i
两项的物理含义分别为:
- Jq¨J\ddot{\mathbf q}Jq¨:关节加速度直接产生的末端加速度;
- J˙q˙\dot J\dot{\mathbf q}J˙q˙:机器人位姿变化导致雅可比本身改变,进而产生的速度耦合项。
即使关节速度恒定(q¨=0\ddot{\mathbf q}=0q¨=0),末端加速度也可能不为零,正是因为耦合项的存在。
Pinocchio提供了frame Jacobian时间变化量的计算接口,Orocos KDL也提供ChainJntToJacDotSolver专门用于求解 J˙\dot JJ˙。
2.9 静力学对偶:雅可比转置与力映射
雅可比矩阵不仅映射速度,其转置还可实现力/力矩的空间映射,这一关系可由功率守恒或虚功原理推导。
设末端广义力(wrench)为 W=[fm]\mathbf W = \begin{bmatrix} \mathbf f \\ \mathbf m \end{bmatrix}W=[fm],其中 f\mathbf ff 为末端作用力,m\mathbf mm 为末端作用力矩;关节广义驱动力为 τ\boldsymbol \tauτ。
根据功率守恒,关节空间功率等于笛卡尔空间功率:
τTq˙=WTV\boldsymbol \tau^T \dot{\mathbf q} = \mathbf W^T \mathbf VτTq˙=WTV
代入速度映射 V=Jq˙\mathbf V = J\dot{\mathbf q}V=Jq˙,可得:
τTq˙=WTJq˙\boldsymbol \tau^T \dot{\mathbf q} = \mathbf W^T J \dot{\mathbf q}τTq˙=WTJq˙
由于该式对任意 q˙\dot{\mathbf q}q˙ 成立,因此得到静力学核心方程:
τ=JTW \boxed{ \boldsymbol \tau = J^T \mathbf W } τ=JTW
该结论同样可由虚功原理推导,是机器人力控制的核心基础。MIT Underactuated Robotics课程与《Modern Robotics》均采用该推导方式,建立笛卡尔力到关节力矩的映射关系。
注意:若 W\mathbf WW 定义为“环境施加给机器人的外力”,而 τ\boldsymbol \tauτ 定义为“电机平衡外力所需的力矩”,公式可能因受力方向约定带有负号,工程应用中需确认符号定义。
2.10 奇异位形分析
奇异的通用定义
雅可比奇异并非简单的“行列式为零”——因为机器人雅可比常为非方阵。更通用的定义是:
rank(J)<机器人正常位形下的最大秩 \operatorname{rank}(J) < \text{机器人正常位形下的最大秩} rank(J)<机器人正常位形下的最大秩
即雅可比矩阵失去满秩,列空间维数下降。
列空间视角的解释
所有关节速度组合能产生的末端速度,都属于雅可比的列空间 Col(J)\operatorname{Col}(J)Col(J)。当发生奇异时,列空间维数降低,机械臂丧失部分瞬时运动方向。
《Modern Robotics》正是将奇异位姿定义为雅可比列空间维数从最大值下降的关节配置。
二连杆机械臂的奇异条件
对前述二连杆位置雅可比求行列式:
detJ=l1l2sinq2\det J = l_1 l_2 \sin q_2detJ=l1l2sinq2
因此当 q2=0q_2=0q2=0(完全展开)或 q2=πq_2=\piq2=π(完全折叠)时,detJ=0\det J=0detJ=0,机械臂进入奇异位形。此时两根连杆共线,雅可比两列向量平行,机械臂失去沿连杆方向的瞬时运动能力。
延伸:六轴工业机器人的典型奇异
工业六轴机器人常见三类奇异位形:
- 腕部奇异:腕部轴线与肩部轴线共线,腕部关节失去绕自身轴线的转动能力;
- 肘部奇异:肘关节完全伸展或折叠,与二连杆奇异原理一致;
- 肩部奇异:末端位置落在肩部关节轴线上,肩关节失去绕竖直轴的转动能力。
接近奇异的工程现象
若采用 q˙=J−1Vd\dot{\mathbf q} = J^{-1}\mathbf V_dq˙=J−1Vd 进行逆运动学求解,当雅可比接近奇异时,逆矩阵元素数值会急剧增大,工程中表现为:
- 关节速度指令突增,超出电机限速;
- 路径跟踪误差显著增大;
- 机器人出现抖动与冲击;
- 控制指令不连续,数值稳定性恶化;
- 测量噪声被大幅放大;
- 迭代式逆运动学收敛困难。
2.11 SVD:雅可比分析的核心工具
奇异值分解(Singular Value Decomposition, SVD)是分析雅可比矩阵性质最强大的工具。对雅可比矩阵做SVD:
J=UΣVT \boxed{ J = U \Sigma V^T } J=UΣVT
其中:
- U∈Rm×mU \in \mathbb{R}^{m\times m}U∈Rm×m:任务空间的正交基矩阵,列向量为左奇异向量;
- V∈Rn×nV \in \mathbb{R}^{n\times n}V∈Rn×n:关节空间的正交基矩阵,列向量为右奇异向量;
- Σ∈Rm×n\Sigma \in \mathbb{R}^{m\times n}Σ∈Rm×n:对角矩阵,对角元素为奇异值,按降序排列 σ1≥σ2≥⋯≥σr>0\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0σ1≥σ2≥⋯≥σr>0。
奇异值的物理意义
若关节速度沿第 iii 个右奇异向量方向,即 q˙=vi\dot{\mathbf q} = \mathbf v_iq˙=vi,则:
Jvi=σiuiJ \mathbf v_i = \sigma_i \mathbf u_iJvi=σiui
这表示:
- 关节空间的运动方向 vi\mathbf v_ivi,对应末端任务空间的运动方向 ui\mathbf u_iui;
- 速度的放大/缩小倍数为奇异值 σi\sigma_iσi。
简言之,奇异值描述了当前位姿下,关节速度沿特定方向转换为末端速度的增益。
最小奇异值
最小奇异值 σmin\sigma_{\min}σmin 对应末端最难产生运动的方向。当 σmin→0\sigma_{\min} \to 0σmin→0 时,机械臂沿该方向的运动能力趋近于零;当 σmin=0\sigma_{\min} = 0σmin=0 时,雅可比降秩,机器人进入奇异状态。
条件数
雅可比的条件数定义为最大奇异值与最小奇异值的比值:
κ(J)=σmaxσmin\kappa(J) = \frac{\sigma_{\max}}{\sigma_{\min}}κ(J)=σminσmax
- 当 κ≈1\kappa \approx 1κ≈1 时,各方向运动能力均匀,机器人各向同性好;
- 当 κ≫1\kappa \gg 1κ≫1 时,不同方向运动能力差异悬殊;
- 当 σmin=0\sigma_{\min}=0σmin=0 时,条件数趋于无穷大。
条件数同时反映了逆运动学求解的数值稳定性,条件数越大,求解对噪声越敏感。
2.12 可操作度椭球与可操作度指标
可操作度椭球
假设关节速度受单位球约束:
q˙Tq˙≤1\dot{\mathbf q}^T \dot{\mathbf q} \leq 1q˙Tq˙≤1
经过雅可比映射到任务空间后,单位球会变为椭球,即可操作度椭球(Manipulability Ellipsoid):
- 椭球主轴方向由左奇异向量矩阵 UUU 决定;
- 各主轴长度由对应奇异值 σi\sigma_iσi 决定。
其物理含义十分直观:
- 长轴方向:末端容易产生速度,运动灵活性高;
- 短轴方向:末端难以产生速度,运动灵活性低;
- 某一轴长度趋近于零:接近奇异位形;
- 椭球退化为平面或直线:发生奇异。
与之对偶的是力可操作度椭球:速度椭球的长轴对应力椭球的短轴,即运动灵活的方向施力能力弱,运动困难的方向施力能力强。
Yoshikawa可操作度指标
Yoshikawa在1985年的经典论文中提出了量化机器人操作灵活性的指标——可操作度。对于满行秩雅可比,可操作度定义为:
w(q)=det(JJT) \boxed{ w(\mathbf q) = \sqrt{\det(J J^T)} } w(q)=det(JJT)
由于 det(JJT)=∏iσi2\det(JJ^T) = \prod_i \sigma_i^2det(JJT)=∏iσi2,因此 w=∏iσiw = \prod_i \sigma_iw=∏iσi,即可操作度与速度可操作度椭球的体积成正比。当机器人接近奇异点时,w→0w \to 0w→0。
指标的局限性
空间机械臂的几何雅可比同时包含线速度(单位m/s)和角速度(单位rad/s),二者量纲不同,直接计算条件数或可操作度会受长度单位选择的强烈影响。例如将单位从米改为毫米,平移部分数值扩大1000倍,可操作度数值会发生量级变化。
因此工程实践中通常采用以下优化方案:
- 分别计算平移可操作度与旋转可操作度;
- 引入特征长度进行无量纲化处理;
- 根据具体任务对平移与旋转分量加权;
- 仅分析任务真正关心的雅可比子矩阵。
《Modern Robotics》同样明确指出,角速度与线速度单位不一致,将雅可比拆分分析通常更合理。
三、逆运动学与控制:雅可比的工程落地
3.1 逆运动学求解:逆矩阵与伪逆
已知期望末端速度 Vd\mathbf V_dVd,求解对应的关节速度 q˙\dot{\mathbf q}q˙,本质是解线性方程 Jq˙=VdJ\dot{\mathbf q} = \mathbf V_dJq˙=Vd。
普通逆矩阵
仅当雅可比为方阵且满秩时,可使用逆矩阵求解:
q˙=J−1Vd\dot{\mathbf q} = J^{-1} \mathbf V_dq˙=J−1Vd
工程中不推荐直接手动计算逆矩阵,原因包括:
- 雅可比常为非方阵(冗余机械臂、欠驱动系统);
- 接近奇异点时逆矩阵数值不稳定;
- 显式求逆计算量大且数值精度差。
Moore–Penrose伪逆
通用场景下使用Moore–Penrose伪逆(广义逆)求解:
q˙=J+Vd \boxed{ \dot{\mathbf q} = J^+ \mathbf V_d } q˙=J+Vd
基于SVD分解,伪逆可表示为:
J+=VΣ+UTJ^+ = V \Sigma^+ U^TJ+=VΣ+UT
其中 Σ+\Sigma^+Σ+ 将非零奇异值取倒数,零奇异值保持为零。
Penrose在1955年的经典论文中证明,该广义逆对任意矩形矩阵或奇异矩阵都存在,且满足四个唯一性条件,是广义逆的标准定义。
行满秩情况(冗余机械臂)
当 J∈Rm×nJ\in\mathbb{R}^{m\times n}J∈Rm×n 且 m<nm<nm<n、满行秩时,伪逆可表示为:
J+=JT(JJT)−1J^+ = J^T (J J^T)^{-1}J+=JT(JJT)−1
该场景常见于7自由度冗余机械臂:7个关节控制6维末端位姿。伪逆给出满足任务要求的最小二范数关节速度解。
列满秩情况
当 m>nm>nm>n 且满列秩时,伪逆可表示为:
J+=(JTJ)−1JTJ^+ = (J^T J)^{-1} J^TJ+=(JTJ)−1JT
此时任务约束多于关节自由度,无法精确满足所有输出要求,伪逆给出最小二乘意义下的最优解。
3.2 阻尼最小二乘:奇异鲁棒求解
普通伪逆在接近奇异点时,最小奇异值的倒数趋于无穷大,导致关节速度指令失控。工程中广泛使用阻尼最小二乘(Damped Least Squares, DLS),也称为阻尼伪逆:
q˙=JT(JJT+λ2I)−1Vd \boxed{ \dot{\mathbf q} = J^T \left( J J^T + \lambda^2 I \right)^{-1} \mathbf V_d } q˙=JT(JJT+λ2I)−1Vd
等价正则化形式为:
q˙=(JTJ+λ2I)−1JTVd\dot{\mathbf q} = \left( J^T J + \lambda^2 I \right)^{-1} J^T \mathbf V_dq˙=(JTJ+λ2I)−1JTVd
它等价于求解带L2正则项的最小二乘问题:
minq˙(∣Jq˙−Vd∣2+λ2∣q˙∣2) \min_{\dot{\mathbf q}} \left( |J\dot{\mathbf q} - \mathbf V_d|^2 + \lambda^2 |\dot{\mathbf q}|^2 \right) q˙min(∣Jq˙−Vd∣2+λ2∣q˙∣2)
其中第一项保证末端速度跟踪精度,第二项抑制关节速度幅值,λ\lambdaλ 为阻尼系数。
Nakamura与Hanafusa在1986年的经典工作中提出了奇异鲁棒逆运动学思想,为阻尼伪逆方法奠定了理论基础。
阻尼的作用机制
- 当奇异值较大时,σiσi2+λ2≈1σi\frac{\sigma_i}{\sigma_i^2+\lambda^2} \approx \frac{1}{\sigma_i}σi2+λ2σi≈σi1,行为接近普通伪逆,跟踪精度高;
- 当奇异值很小时,σiσi2+λ2\frac{\sigma_i}{\sigma_i^2+\lambda^2}σi2+λ2σi 不会无限增大,关节速度被限制在合理范围内。
阻尼方法的代价是牺牲部分末端跟踪精度,换取数值稳定性与速度有界性,是精度与稳定性的权衡。
3.3 冗余机械臂与零空间优化
当关节自由度多于任务维数(n>mn>mn>m)时,满足末端任务的关节速度解不唯一,通解可表示为:
q˙=J+Vd+(I−J+J)z \boxed{ \dot{\mathbf q} = J^+ \mathbf V_d + \left( I - J^+ J \right) \mathbf z } q˙=J+Vd+(I−J+J)z
其中 N=I−J+JN = I - J^+ JN=I−J+J 称为零空间投影矩阵,满足 JN=0JN = 0JN=0,因此第二项不会改变末端速度,仅在零空间内调整关节运动。
零空间的应用
通过设计向量 z\mathbf zz,可在不影响主任务的前提下实现次级优化目标,典型目标包括:
- 远离关节限位,避免超程;
- 提升可操作度,远离奇异位形;
- 规避障碍物与自碰撞;
- 优化关节力矩分布,降低能耗;
- 保持肘部、肩部等特定姿态;
- 维持传感器视野朝向。
例如以提升Yoshikawa可操作度为目标时,可设:
z=k∇qw(q)\mathbf z = k \nabla_{\mathbf q} w(\mathbf q)z=k∇qw(q)
其中 kkk 为增益系数,沿可操作度梯度方向调整关节位形。
工程注意事项
若使用阻尼伪逆 Jλ#J_\lambda^\#Jλ# 替代精确伪逆,则 I−Jλ#JI - J_\lambda^\# JI−Jλ#J 不再是严格的正交投影矩阵,次级任务会对主任务产生轻微干扰。高精度多任务控制通常需要采用分层任务优先级、加权伪逆、约束二次规划(Hierarchical QP)等更严格的方案。
3.4 加权伪逆与任务优先级
普通伪逆最小化关节速度的二范数 ∣q˙∣2|\dot{\mathbf q}|^2∣q˙∣2,但实际工程中不同关节的运动代价、限速、负载存在差异,因此引入正定权重矩阵 W≻0W \succ 0W≻0,求解带权约束的最小化问题:
minq˙q˙TWq˙s.t.Jq˙=Vd \min_{\dot{\mathbf q}} \dot{\mathbf q}^T W \dot{\mathbf q} \quad \text{s.t.} \quad J\dot{\mathbf q} = \mathbf V_d q˙minq˙TWq˙s.t.Jq˙=Vd
对应的加权伪逆为:
JW#=W−1JT(JW−1JT)−1 \boxed{ J_W^\# = W^{-1} J^T \left( J W^{-1} J^T \right)^{-1} } JW#=W−1JT(JW−1JT)−1
权值越大的关节,运动代价越高,求解结果中该关节的运动幅度会被尽可能压低。通过动态调整权重矩阵,可实现接近关节限位、接近奇异时的自适应降速。
3.5 数值迭代逆运动学
基于雅可比的迭代法是数值逆运动学的主流方案,目标是求解关节位形 q∗\mathbf q^*q∗,使得正运动学结果满足 f(q∗)=xd\mathbf f(\mathbf q^*) = \mathbf x_df(q∗)=xd。
算法流程如下:
- 给定初始关节值 qk\mathbf q_kqk,计算当前位姿误差 ek=xd−f(qk)\mathbf e_k = \mathbf x_d - \mathbf f(\mathbf q_k)ek=xd−f(qk);
- 利用雅可比进行局部线性化,近似得到 J(qk)Δq≈ekJ(\mathbf q_k)\Delta \mathbf q \approx \mathbf e_kJ(qk)Δq≈ek;
- 使用伪逆求解关节增量 Δq=J+ek\Delta \mathbf q = J^+ \mathbf e_kΔq=J+ek;
- 更新关节值 qk+1=qk+αΔq\mathbf q_{k+1} = \mathbf q_k + \alpha \Delta \mathbf qqk+1=qk+αΔq,其中 α\alphaα 为步长系数;
- 重复迭代直至误差收敛至阈值以内。
完整迭代公式为:
qk+1=qk+αJ+(qk)ek \boxed{ \mathbf q_{k+1} = \mathbf q_k + \alpha J^+(\mathbf q_k) \mathbf e_k } qk+1=qk+αJ+(qk)ek
Pinocchio官方文档提供了基于该原理的闭环逆运动学(CLIK)示例,支持末端位置与姿态的同步求解。
姿态误差的正确计算
位置误差可直接使用笛卡尔差 ep=pd−p\mathbf e_p = \mathbf p_d - \mathbf pep=pd−p,但旋转误差不能直接用旋转矩阵相减或四元数分量相减。
更严谨的做法是构造相对位姿 Te=T−1TdT_e = T^{-1} T_dTe=T−1Td,再通过SE(3)对数映射得到六维误差向量:
e=Log(Te)∨\mathbf e = \operatorname{Log}(T_e)^\veee=Log(Te)∨
同时需确保误差向量的参考坐标系与所使用的雅可比一致。
3.6 分辨率速度控制
分辨率速度控制(Resolved-Rate Control)是基于雅可比的经典速度级控制框架,Whitney的经典工作奠定了该方法的理论基础。
其核心思想是:给定期望末端速度,通过雅可比逆映射直接得到关节速度指令。为实现闭环位姿修正,通常引入误差反馈项:
Vc=Vff+Ke\mathbf V_c = \mathbf V_{\mathrm{ff}} + K \mathbf eVc=Vff+Ke
其中 Vff\mathbf V_{\mathrm{ff}}Vff 为前馈期望速度,KeK\mathbf eKe 为位姿误差修正项。
最终控制律为:
q˙=J#(Vff+Ke)+Nz \boxed{ \dot{\mathbf q} = J^\# \left( \mathbf V_{\mathrm{ff}} + K \mathbf e \right) + N \mathbf z } q˙=J#(Vff+Ke)+Nz
其中 J#J^\#J# 为伪逆或阻尼伪逆,NzN\mathbf zNz 为零空间次级任务。
3.7 阻抗控制与力反馈
雅可比转置是力控制系统的核心纽带。对于末端位姿误差 e=xd−x\mathbf e = \mathbf x_d - \mathbf xe=xd−x,可设计期望笛卡尔力:
F∗=Ke−Dx˙\mathbf F^* = K \mathbf e - D \dot{\mathbf x}F∗=Ke−Dx˙
其中 KKK 为刚度矩阵,DDD 为阻尼矩阵,模拟虚拟弹簧阻尼特性。
通过雅可比转置将笛卡尔力映射为关节力矩指令:
τ=JTF∗ \boxed{ \boldsymbol \tau = J^T \mathbf F^* } τ=JTF∗
若考虑机器人动力学补偿,完整控制律为:
τ=JTF∗+C(q,q˙)+g(q)\boldsymbol \tau = J^T \mathbf F^* + \mathbf C(\mathbf q,\dot{\mathbf q}) + \mathbf g(\mathbf q)τ=JTF∗+C(q,q˙)+g(q)
其中 C\mathbf CC 为科里奥利与离心力项,g\mathbf gg 为重力项。
在力反馈设备与协作机器人系统中,典型的控制链路为:
q→x→Fvirtual→JT→τ\mathbf q \rightarrow \mathbf x \rightarrow \mathbf F_{\mathrm{virtual}} \rightarrow J^T \rightarrow \boldsymbol \tauq→x→Fvirtual→JT→τ
例如虚拟弹簧力 Fvirtual=−K(x−x0)−Bx˙\mathbf F_{\mathrm{virtual}} = -K(\mathbf x-\mathbf x_0) - B\dot{\mathbf x}Fvirtual=−K(x−x0)−Bx˙,对应的电机力矩即为 τ=JT[−K(x−x0)−Bx˙]\boldsymbol \tau = J^T \left[ -K(\mathbf x-\mathbf x_0) - B\dot{\mathbf x} \right]τ=JT[−K(x−x0)−Bx˙]。
由此可见,雅可比矩阵是连接关节空间与笛卡尔空间、速度与力的核心桥梁。
四、跨领域延伸:控制、估计与优化
4.1 非线性控制系统线性化
对于非线性控制系统:
x˙=f(x,u)\dot{\mathbf x} = \mathbf f(\mathbf x, \mathbf u)x˙=f(x,u)
在工作点 (x0,u0)(\mathbf x_0, \mathbf u_0)(x0,u0) 附近定义扰动变量 δx=x−x0\delta \mathbf x = \mathbf x - \mathbf x_0δx=x−x0、δu=u−u0\delta \mathbf u = \mathbf u - \mathbf u_0δu=u−u0,进行一阶泰勒展开可得线性化模型:
δx˙=Aδx+Bδu\delta \dot{\mathbf x} = A \delta \mathbf x + B \delta \mathbf uδx˙=Aδx+Bδu
其中状态矩阵 AAA 与输入矩阵 BBB 本质上就是两个雅可比矩阵:
A=∂f∂x∣x0,u0,B=∂f∂u∣x0,u0 \boxed{ A = \left. \frac{\partial \mathbf f}{\partial \mathbf x} \right|_{\mathbf x_0, \mathbf u_0}, \quad B = \left. \frac{\partial \mathbf f}{\partial \mathbf u} \right|_{\mathbf x_0, \mathbf u_0} } A=∂x∂f
x0,u0,B=∂u∂f
x0,u0
对于输出方程 y=h(x,u)\mathbf y = \mathbf h(\mathbf x, \mathbf u)y=h(x,u),同理可得:
C=∂h∂x,D=∂h∂uC = \frac{\partial \mathbf h}{\partial \mathbf x}, \quad D = \frac{\partial \mathbf h}{\partial \mathbf u}C=∂x∂h,D=∂u∂h
简言之:非线性系统通过雅可比实现局部线性化,进而可使用特征值分析、LQR控制、稳定性判据等线性系统理论工具。
4.2 扩展卡尔曼滤波中的雅可比
扩展卡尔曼滤波(EKF)是处理非线性状态估计的标准方法,其核心是在当前估计点附近对非线性模型进行线性化。
设非线性状态转移方程与观测方程:
xk=f(xk−1,uk)+wkzk=h(xk)+vk \begin{align*} \mathbf x_k &= \mathbf f(\mathbf x_{k-1}, \mathbf u_k) + \mathbf w_k \\ \mathbf z_k &= \mathbf h(\mathbf x_k) + \mathbf v_k \end{align*} xkzk=f(xk−1,uk)+wk=h(xk)+vk
其中 wk\mathbf w_kwk 为过程噪声,vk\mathbf v_kvk 为观测噪声。
EKF需要计算两个雅可比矩阵:
- 状态转移雅可比 Fk=∂f∂x∣x^k−1F_k = \left. \frac{\partial \mathbf f}{\partial \mathbf x} \right|_{\hat{\mathbf x}_{k-1}}Fk=∂x∂f x^k−1,用于协方差预测步;
- 观测雅可比 Hk=∂h∂x∣x^kH_k = \left. \frac{\partial \mathbf h}{\partial \mathbf x} \right|_{\hat{\mathbf x}_k}Hk=∂x∂h x^k,用于卡尔曼增益计算步。
ROS生态中的robot_localization包正是基于EKF/UKF实现多传感器融合,广泛应用于移动机器人里程计、IMU、GPS数据融合。
4.3 非线性最优化与最小二乘
考虑非线性最小二乘问题:
minx12∣r(x)∣2 \min_{\mathbf x} \frac{1}{2} |\mathbf r(\mathbf x)|^2 xmin21∣r(x)∣2
其中残差函数 r:Rn→Rm\mathbf r: \mathbb{R}^n \rightarrow \mathbb{R}^mr:Rn→Rm,其雅可比为 Jr=∂r∂xJ_r = \frac{\partial \mathbf r}{\partial \mathbf x}Jr=∂x∂r。
目标函数的梯度可表示为:
∇F(x)=JrTr\nabla F(\mathbf x) = J_r^T \mathbf r∇F(x)=JrTr
高斯-牛顿法
高斯-牛顿法用雅可比乘积近似Hessian矩阵:
H≈JrTJrH \approx J_r^T J_rH≈JrTJr
迭代更新量满足线性方程:
JrTJrΔx=−JrTrJ_r^T J_r \Delta \mathbf x = -J_r^T \mathbf rJrTJrΔx=−JrTr
Levenberg–Marquardt算法
LM算法在高斯-牛顿基础上增加阻尼项,是最常用的非线性最小二乘算法:
(JrTJr+λI)Δx=−JrTr\left( J_r^T J_r + \lambda I \right) \Delta \mathbf x = -J_r^T \mathbf r(JrTJr+λI)Δx=−JrTr
其数学形式与机器人阻尼最小二乘逆运动学高度同源,本质都是带正则项的线性最小二乘。
SciPy官方的least_squares函数正是针对向量残差的非线性最小二乘求解,支持用户提供或自动估计残差雅可比。
4.4 误差与协方差传播
对于函数映射 y=f(x)\mathbf y = \mathbf f(\mathbf x)y=f(x),若输入存在微小误差 δx\delta \mathbf xδx,则输出误差近似为:
δy≈Jδx\delta \mathbf y \approx J \delta \mathbf xδy≈Jδx
若输入的协方差矩阵为 Σx=E[δxδxT]\Sigma_x = E[\delta \mathbf x \delta \mathbf x^T]Σx=E[δxδxT],则输出协方差的一阶近似为:
Σy≈JΣxJT \boxed{ \Sigma_y \approx J \Sigma_x J^T } Σy≈JΣxJT
这一误差传播公式在机器人领域应用极为广泛:
- 相机标定误差向三维点云传播;
- 手眼标定不确定度分析;
- 机器人TCP位姿精度评估;
- 多传感器融合中的协方差传递;
- 连杆加工误差向末端精度传播。
若函数非线性较强或输入误差较大,一阶雅可比传播精度不足,可采用二阶近似、无迹变换(Unscented Transform)、蒙特卡洛采样或粒子滤波等方法。
五、工程实践:计算、验证与避坑
5.1 雅可比的四种计算方法
方法一:手工解析求导
直接对正运动学表达式逐元素求偏导,得到解析形式的雅可比矩阵。
- 优点:数值精确、运行速度快,适合低自由度系统;
- 缺点:高自由度系统表达式繁琐易出错,机器人结构修改后需重新推导。
方法二:几何构造法
利用关节轴几何关系,逐列构造雅可比矩阵:
-
旋转关节:Ji=[zi×(pe−pi)zi]J_i = \begin{bmatrix} \mathbf z_i \times (\mathbf p_e - \mathbf p_i) \\ \mathbf z_i \end{bmatrix}Ji=[zi×(pe−pi)zi]
-
移动关节:Ji=[zi0]J_i = \begin{bmatrix} \mathbf z_i \\ \mathbf 0 \end{bmatrix}Ji=[zi0]
-
优点:物理直观,适合串联机器人,无需展开复杂三角函数;
-
补充:《Modern Robotics》中基于螺旋轴与伴随变换构造空间雅可比的方法,本质上也是几何构造法的延伸,无需显式求导。
方法三:自动微分
给定可微的正运动学程序,由自动微分(AD)系统计算精确到机器精度的一阶导数。JAX等框架提供了jacfwd和jacrev两种接口:
- 输入少、输出多:前向模式(jacfwd)更高效;
- 输入多、输出少:反向模式(jacrev)更高效;
- 接近方阵:需根据计算图结构实测对比。
自动微分是现代机器人仿真与优化框架的主流方案,兼顾精度与开发效率。
方法四:有限差分法
通过数值扰动近似偏导数,第 jjj 列的前向差分近似为:
J:,j≈f(x+hej)−f(x)h J_{:,j} \approx \frac{\mathbf f(\mathbf x + h \mathbf e_j) - \mathbf f(\mathbf x)}{h} J:,j≈hf(x+hej)−f(x)
中心差分精度更高:
J:,j≈f(x+hej)−f(x−hej)2h J_{:,j} \approx \frac{\mathbf f(\mathbf x + h \mathbf e_j) - \mathbf f(\mathbf x - h \mathbf e_j)}{2h} J:,j≈2hf(x+hej)−f(x−hej)
SciPy的approx_fprime函数即采用前向有限差分实现导数估计。
有限差分的核心难点是步长 hhh 的选择:
- 步长过大:截断误差显著,近似精度低;
- 步长过小:浮点减法抵消误差占主导,精度恶化;
- 工程经验:通常取 10−6∼10−810^{-6} \sim 10^{-8}10−6∼10−8,变量尺度差异大时需采用相对步长。
5.2 雅可比正确性验证方法
工程实践中强烈推荐使用方向导数测试验证雅可比正确性,比逐列检查更高效,且能同时验证列顺序、符号与整体映射关系。
方法如下:
- 任选一个随机小向量 Δq\Delta \mathbf qΔq;
- 计算解析雅可比乘积 J(q)ΔqJ(\mathbf q)\Delta \mathbf qJ(q)Δq;
- 计算数值近似 f(q+ϵΔq)−f(q)ϵ\frac{\mathbf f(\mathbf q + \epsilon \Delta \mathbf q) - \mathbf f(\mathbf q)}{\epsilon}ϵf(q+ϵΔq)−f(q),其中 ϵ\epsilonϵ 取足够小的正数(如 10−610^{-6}10−6);
- 定义相对误差:
e=∣JΔq−f(q+ϵΔq)−f(q)ϵ∣max(1,∣JΔq∣) e = \frac{\left| J\Delta \mathbf q - \frac{\mathbf f(\mathbf q + \epsilon \Delta \mathbf q) - \mathbf f(\mathbf q)}{\epsilon} \right|}{\max(1, |J\Delta \mathbf q|)} e=max(1,∣JΔq∣) JΔq−ϵf(q+ϵΔq)−f(q)
正常情况下相对误差应在 10−610^{-6}10−6 量级。对于旋转分量,不要直接比较欧拉角差值,应通过旋转矩阵对数映射或四元数相对旋转计算等效角速度,再进行对比。
5.3 主流机器人库中的雅可比实现
MoveIt
MoveIt2的RobotState类可根据当前机器人状态计算指定关节组、指定末端连杆、指定参考点的雅可比矩阵。官方教程明确说明,RobotState维护关节位置、速度等状态量,并提供雅可比计算接口。
Pinocchio
Pinocchio是高性能刚体动力学库,支持多种参考坐标系下的frame Jacobian计算,包括LOCAL、WORLD、LOCAL_WORLD_ALIGNED。核心接口包括:
computeFrameJacobian:计算指定连杆的雅可比;getFrameJacobianTimeVariation:计算雅可比的时间导数;- 同时支持速度、加速度与导数的完整求解。
官方文档特别强调,使用前必须确认输出速度的参考坐标系约定。
Orocos KDL
KDL中的雅可比存储为动态列数的 6×n6\times n6×n 矩阵,提供完整的求解器套件:
- 关节到雅可比求解器;
- 伪逆速度逆运动学;
- 加权阻尼最小二乘求解器;
- 雅可比时间导数 J˙\dot JJ˙ 求解器。
5.4 工程常见错误与避坑指南
1. 参考坐标系不匹配
期望速度定义在世界坐标系,雅可比却输出末端局部坐标系速度,直接相乘会导致方向完全错误。必须保证任务空间量与雅可比的参考坐标系一致。
2. 运动旋量顺序混淆
不同库可能采用 [v;ω][\mathbf v; \boldsymbol \omega][v;ω] 或 [ω;v][\boldsymbol \omega; \mathbf v][ω;v] 的排列顺序,混用会导致线速度与角速度、力与力矩颠倒,引发严重控制事故。
3. 欧拉角速度与角速度混淆
错误认为 ω=[r˙p˙y˙]\boldsymbol \omega = \begin{bmatrix} \dot r \\ \dot p \\ \dot y \end{bmatrix}ω= r˙p˙y˙ ,实际上二者需通过姿态相关的转换矩阵 E(ϕ)E(\boldsymbol \phi)E(ϕ) 关联。该错误是解析雅可比应用中最常见的问题。
4. 奇异点附近直接求逆
禁止直接使用J.inverse()进行逆运动学求解,更合理的方案包括:SVD伪逆、阻尼最小二乘、QR分解求解线性方程组、速度/加速度限幅、奇异值在线监测。
5. 单位尺度不统一
例如机器人模型采用米为单位,目标速度却传入毫米每秒数值,会导致逆运动学输出异常大的关节速度。工程中必须统一单位制。
6. 忽略TCP偏置
雅可比计算基于法兰原点,但实际控制目标是焊枪、夹爪等工具的TCP点。TCP偏置会导致线速度映射错误,尤其在高速旋转时,即使法兰原点不动,TCP也会产生显著的线速度。
7. 忽略关节约束
数学上得到的最优关节速度,不一定在机器人执行能力范围内。必须考虑:
- 关节速度、加速度、力矩限制;
- 关节位置限位;
- 碰撞与自碰撞约束;
- 控制周期与通信延迟。
严格处理这些约束通常需要采用二次规划(QP)求解器,构建带约束的速度优化问题。
六、公式汇总
| 功能 | 公式 |
|---|---|
| 一阶局部线性化 | Δy≈JΔx\Delta\mathbf y \approx J\Delta\mathbf xΔy≈JΔx |
| 关节速度到末端速度 | V=Jq˙\mathbf V = J\dot{\mathbf q}V=Jq˙ |
| 末端加速度映射 | V˙=Jq¨+J˙q˙\dot{\mathbf V} = J\ddot{\mathbf q} + \dot{J}\dot{\mathbf q}V˙=Jq¨+J˙q˙ |
| 末端力到关节力矩 | τ=JTW\boldsymbol\tau = J^T \mathbf Wτ=JTW |
| 方阵逆速度解 | q˙=J−1Vd\dot{\mathbf q} = J^{-1}\mathbf V_dq˙=J−1Vd |
| Moore–Penrose伪逆解 | q˙=J+Vd\dot{\mathbf q} = J^+\mathbf V_dq˙=J+Vd |
| 阻尼最小二乘解 | q˙=JT(JJT+λ2I)−1Vd\dot{\mathbf q} = J^T(JJ^T+\lambda^2I)^{-1}\mathbf V_dq˙=JT(JJT+λ2I)−1Vd |
| 冗余零空间通解 | q˙=J+Vd+(I−J+J)z\dot{\mathbf q} = J^+\mathbf V_d + (I-J^+J)\mathbf zq˙=J+Vd+(I−J+J)z |
| 条件数 | κ=σmax/σmin\kappa = \sigma_{\max}/\sigma_{\min}κ=σmax/σmin |
| Yoshikawa可操作度 | w=det(JJT)w = \sqrt{\det(JJ^T)}w=det(JJT) |
| 误差协方差传播 | Σy≈JΣxJT\Sigma_y \approx J\Sigma_x J^TΣy≈JΣxJT |
| 非线性系统线性化 | A=∂f/∂x, B=∂f/∂uA=\partial f/\partial x,\ B=\partial f/\partial uA=∂f/∂x, B=∂f/∂u |
| 高斯-牛顿Hessian近似 | H≈JTJH \approx J^T JH≈JTJ |
七、五层理解框架:从数学到工程
雅可比矩阵的认知可分为由浅入深的五个层次:
第一层:多变量导数的矩阵形式
Jij=∂yi∂xjJ_{ij} = \frac{\partial y_i}{\partial x_j}Jij=∂xj∂yi
最基础的认知:雅可比是偏导数的有序排列,第j个输入对第i个输出的局部影响系数。
第二层:非线性系统的局部线性模型
Δy≈JΔx\Delta \mathbf y \approx J \Delta \mathbf xΔy≈JΔx
核心本质:将复杂的非线性映射,在当前工作点附近近似为简单的线性变换,是所有工程应用的理论根基。
第三层:机器人空间映射的桥梁
V=Jq˙\mathbf V = J\dot{\mathbf q}V=Jq˙
机器人领域的核心价值:连接关节空间与笛卡尔任务空间,实现速度的正向传递。
第四层:运动与力的对偶关系
τ=JTW\boldsymbol \tau = J^T \mathbf Wτ=JTW
对偶特性:雅可比映射速度,雅可比转置映射力,构成微分运动学与静力学的完整对偶体系。
第五层:机器人能力的几何描述
雅可比矩阵蕴含了机器人当前位姿的全部运动学能力信息:
- 秩:独立运动方向的数量;
- 奇异值:不同方向的运动增益;
- 条件数:数值稳定性与各向同性;
- 零空间:不影响主任务的内部自由度;
- 可操作度椭球:全方向运动灵活性的几何表征。
最终可以给出两个高度凝练的结论:
从数学本质看:雅可比矩阵是非线性映射在当前状态附近的一阶线性化算子。
从机器人视角看:雅可比矩阵是关节空间与笛卡尔任务空间之间,传递速度、力与灵敏度的核心桥梁。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)