前三篇文章分别从螺旋轴、能量和代数出发,讨论了机器人的正运动学、动力学与刚体位姿表示。
但它们之间还缺少一座桥。
PoE 能告诉我们关节角给定以后,末端位姿在哪里;拉格朗日法会使用每根连杆质心的速度来计算动能;对偶四元数则能够复合和插值完整的刚体位姿。真正进入控制周期时,我们经常面对的却是更局部的问题:
- 关节此刻转得多快,末端会朝哪里运动?
- 想让末端沿某个方向移动,各关节应该怎样配合?
- 末端受到一个力,电机上会出现多大的力矩?
- 为什么某些姿态下,机器人明明还有电机,却突然失去了一个运动方向?
这些问题都指向同一个对象:雅可比矩阵(Jacobian matrix)。
最常见的速度关系是:
x˙=J(q)q˙
它看起来只是一条矩阵乘法,但背后同时连接着三件事:
关节速度J末端速度,末端力JT关节力矩
当 J 失去秩时,速度映射丢失方向,力映射也随之发生剧烈变化,这就是奇异性最直接的来源。

雅可比并不是机器人专属的矩阵。它来自多变量微积分,本质是一个非线性映射在当前点附近的最佳一阶近似。机器人学真正特别的地方,是让这张局部导数表同时获得了清晰的几何与物理意义。
先暂时忘掉机械臂。设一个标量函数:
y=f(x)
在 x 附近发生一个很小的变化 δx,函数值的变化近似为:
δy≈dxdfδx
导数 df/dx 告诉我们:输入在这一点附近变化一点,输出会怎样变化。
把输入和输出都换成向量:
x=f(q),q∈Rn,x∈Rm
每个输出分量都可能依赖每个输入分量,于是导数自然变成一张矩阵:
J(q)=∂q∂f=∂q1∂f1⋮∂q1∂fm⋯⋱⋯∂qn∂f1⋮∂qn∂fm
在当前构型附近:
δx≈J(q)δq
若 q 随时间变化,两边除以时间并取极限,就得到:
x˙=J(q)q˙
这就是机器人雅可比最朴素的来历。
雅可比不是一台机器人的固定参数,而是构型 q 的函数。同一组关节速度,在不同姿态下可能让末端朝完全不同的方向运动。
这也解释了为什么正运动学与雅可比承担不同任务:
- 正运动学 x=f(q) 回答“现在在哪里”;
- 雅可比 x˙=J(q)q˙ 回答“从这里出发,微小运动怎样传播”。
它只是一阶局部关系。若关节一步走得很大,直接用 J(q)Δq 预测末端位移会逐渐偏离真实非线性运动;这时需要缩小步长,或者重新计算沿途的雅可比。
把矩阵按列写开:
x˙=J1(q)q˙1+cdots+Jn(q)q˙n
令所有关节速度为零,只让第 i 个关节以单位速度运动:
q˙i=1,q˙j=i=0
此时末端速度就是 Ji(q)。因此,雅可比的第 i 列,就是第 i 个关节单独以单位速度运动时,对任务速度产生的贡献。
这个观察非常重要。它让雅可比不再只是“对正运动学求偏导”,而成为一组可以直接从关节轴和机构几何中读出的速度基向量。
考虑一台平面两转动关节机械臂。两根连杆长度分别为 L1,L2,关节角为 q1,q2,末端点为 p=(x,y)T。
正运动学为:
x=L1cosq1+L2cos(q1+q2)
y=L1sinq1+L2sin(q1+q2)
对 q1,q2 求偏导:
Jp(q)=[−L1sinq1−L2sin(q1+q2)L1cosq1+L2cos(q1+q2)−L2sin(q1+q2)L2cos(q1+q2)]
于是:
p˙=Jp(q)[q˙1q˙2]
公式并不复杂,但几何解释比逐项求导更值得记住。
定义平面内逆时针旋转 90∘ 的矩阵:
E=[01−10]
设两个关节中心分别为 o1,o2,那么雅可比的两列可以直接写成:
Jp,1=E(p−o1),Jp,2=E(p−o2)
因为转动关节产生的瞬时速度,总是垂直于“关节中心指向该点”的半径:
- 关节 1 转动时,末端绕基座画圆,速度沿大圆的切线;
- 关节 2 转动时,末端绕肘部画圆,速度沿小圆的切线;
- 两个关节同时运动时,真实末端速度就是这两个切向速度的线性组合。

这就是“看图写雅可比”的本质:找到每个关节单独运动时,任务点会获得怎样的瞬时速度。
上一节只关心二维末端位置,因此 Jp 是一张 2×2 矩阵。空间机器人通常还要描述末端角速度,这时任务速度不再只是 p˙,而是六维 twist:
V=[ωv]
若采用空间坐标系表达:
Vs=Js(q)q˙
Js 称为空间雅可比。对于 PoE 正运动学:
T(q)=e[S1]q1e[S2]q2⋯e[Sn]qnM
它的空间雅可比可以按列写成:
Js(q)=[S1Ade[S1]q1S2⋯Ade[S1]q1⋯e[Sn−1]qn−1Sn]
第一列就是第一根空间螺旋轴;后面的每根轴,则被前面已经发生的关节运动带到当前构型。PoE 不需要先把正运动学完全展开成一大串三角函数,再逐项求偏导,而是直接沿着关节链递推每一列的几何作用。
若 twist 在末端固连坐标系表达:
Vb=Jb(q)q˙
空间雅可比与本体雅可比满足:
Jb(q)=AdT−1(q)Js(q)
它们描述同一个物理运动,只是使用了不同坐标系。
这里有一个很容易被忽略的细节。采用 (ω,v) 排列的空间 twist 时,v 是速度场在空间坐标原点处的线速度参数。空间中一点 p 的速度为:
p˙=ω×p+v
因此,从六维 twist 雅可比取出点速度雅可比时,必须把任务点的位置考虑进去。只有在明确了 twist 的定义、参考点和表达坐标系以后,“雅可比的线速度部分”才不会产生歧义。
几何雅可比映射到角速度与线速度:
[ωp˙]=Jg(q)q˙
解析雅可比则可能把姿态写成欧拉角 η:
[p˙η˙]=Ja(q)q˙
欧拉角导数 η˙ 一般不等于角速度 ω,二者之间还需要一个随姿态变化的转换矩阵。该转换本身也可能在某些欧拉角姿态下奇异。
所以,讨论“雅可比奇异”之前,必须先说明任务变量是什么。机构的几何奇异与某套姿态参数自身的坐标奇异,不能混为一谈。
速度映射使用 J:
V=J(q)q˙
力映射为什么会自然出现 JT?答案不是记忆公式,而是瞬时功率守恒。
设 W 是机器人希望在任务空间中输出的 wrench,其正方向与 V 采用同一功率约定:
W=[mf]
末端功率为:
P=WTV
关节侧功率为:
P=τTq˙
理想刚性传动中,两边描述的是同一份瞬时功率。代入 V=Jq˙:
WTJq˙=τTq˙
对任意允许的 q˙ 都成立,因此:
τ=JTW
对于只受二维末端力 f 的平面 2R 机械臂:
τ=JpTf
把 Jp 的列记作 Jp,1,Jp,2,则:
τi=Jp,iTf
这正是熟悉的“力乘力臂”。第 i 列给出了关节 i 单位转速产生的末端速度方向;与末端力做功率内积,就得到该力对关节 i 产生的力矩。
常见误解是:速度使用 J,力就应该使用 J−1。实际上,力和速度属于互为对偶的空间,保持功率配对所需要的是转置。
只有在方阵、满秩并且确实要从关节力矩反求末端等效力时,才可能写出:
W=(JT)−1τ
冗余、欠驱动或奇异情况下,这个逆并不存在;此时必须结合约束、伪逆或具体的力分配目标。
同样重要的是,J 与 W 必须使用相同的 twist 排列、参考点和表达坐标系。空间雅可比不能直接乘一个在末端坐标系表达的 wrench。若 Wext 表示环境施加在机器人上的外力,而 τ 表示电机为维持静力平衡提供的力矩,则平衡式应写成 τ+JTWext=0;符号差异来自作用力方向,而不是雅可比转置关系改变了。
雅可比把关节速度空间映射到任务速度空间。若某些任务方向无法再由关节速度组合出来,映射的像空间就会缩小,也就是:
rankJ(q)<min(m,n)
这才是奇异性的本质:雅可比失去秩,机器人丢失了一个或多个独立的瞬时运动方向。
对于平面 2R 的位置雅可比:
detJp=L1L2sinq2
所以:
q2=0或q2=π
时,两个雅可比列向量共线。几何上,两根连杆完全伸直或折叠,两个关节单独产生的末端切向速度落在同一条直线上;无论怎样组合 q˙1,q˙2,都无法获得另一个独立方向。
假设我们希望末端产生速度 x˙d,并写成:
q˙=J−1x˙d
接近奇异位形时,J 在某个方向上的缩放因子变得很小。为了得到有限的末端速度,逆映射只能把对应关节速度放得很大。
这并不是数值算法“算坏了”,而是机构几何在告诉我们:机器人几乎无法沿那个方向运动。
同一台机器人,针对不同任务可能有不同雅可比:
- 只控制末端位置;
- 同时控制位置与姿态;
- 只控制工具轴方向;
- 控制接触点沿表面的两个切向速度。
一个构型对六维位姿任务可能奇异,对三维位置任务却未必奇异。因此,“机器人处于奇异位形”这句话如果没有任务空间和坐标约定,信息并不完整。
关节限位也不是严格意义上的雅可比奇异。它会让某些速度在物理上不可执行,产生类似丢失方向的效果,但根源是可行域边界,而不是 J 自身失秩。
仅仅知道“是否奇异”还不够。很多时候,我们更关心机器人离奇异还有多远,以及它更擅长沿哪些方向运动。
对雅可比作奇异值分解:
J=UΣVT
其中:
Σ=diag(σ1,…,σr),σ1≥⋯≥σr≥0
把单位关节速度球:
∥q˙∥≤1
通过 J 映射到任务空间,就得到速度可操作度椭球。椭球主轴方向是 U 的列,半轴长度是奇异值 σi。
- 大奇异值方向:很小的关节速度就能产生较大的末端速度;
- 小奇异值方向:机器人不擅长运动;
- 某个奇异值变为零:椭球塌缩,进入奇异位形。

对于任务维度不高于关节自由度、且采用一致尺度的速度雅可比,常见的 Yoshikawa 可操作度指标为:
w(q)=det(JJT)=i∏σi
它与速度椭球的体积成比例:任一必要奇异值趋近于零,w 也会趋近于零。
不过,这个标量不能代替完整的椭球。两个姿态可能拥有相同体积,却一个细长、一个均匀;前者在某个方向上仍然很脆弱。工程上通常还会同时观察:
σmin,κ(J)=σminσmax
分别描述最弱方向与条件数。
若约束关节力矩满足 ∥τ∥≤1,又有 τ=JTf,则末端力满足:
fTJJTf≤1
沿速度椭球奇异值为 σi 的方向,力椭球半轴长度为 1/σi。
这是一种很漂亮的互补关系:
- 容易产生高速运动的方向,抵抗或输出静态力的机械优势较小;
- 难以运动的方向,理论上的静态力放大能力较强;
- 到达理想刚性模型的奇异点时,某些静力映射会趋向无穷,这同时意味着模型对柔性、间隙和结构变形极其敏感,不能把“无穷大力”当作真实机器的能力。
六维几何雅可比同时含有角速度与线速度,二者单位不同。直接计算 JJT、条件数或椭球,会隐含一个旋转和平移的相对尺度。
因此,比较空间机械臂的综合可操作度时,应明确特征长度、任务权重或单位归一化。没有尺度说明的“全局可操作度排名”,往往比公式看起来更主观。
串联机器人通常直接写成:
x˙=J(q)q˙
并联机构还要同时满足多条支链的闭环约束。对于平面五杆机构,更自然的速度形式是:
A(q)p˙=B(q)q˙a
q˙a 只包含两个主动关节速度,p˙ 是末端二维速度。矩阵 A 与 B 分别揭示两类不同的退化。
设左右基座关节为 OL,OR,两个肘部为 CL,CR,末端为 P。左右近端连杆方向单位向量为 aL,aR,远端连杆方向单位向量为 uL,uR。
左支链速度可以写成:
p˙=L1EaLq˙L+L2EuLϕ˙L
ϕL 是左侧远端连杆的绝对方向,属于被动变量。用 uLT 左乘:
uLTp˙=L1uLTEaLq˙L
因为:
uLTEuL=0
被动速度项精确消失。右侧同理,最终得到:
A[uLTuRT]p˙=B[L1uLTEaL00L3uRTEaR][q˙Lq˙R]

若 B 的某个对角元素为零:
uLTEaL=0或uRTEaR=0
说明该侧近端与远端连杆共线。主动关节速度无法有效产生某个末端速度方向。这类退化常称为支链奇异或串联奇异。
若 A 失去秩,左右两个远端连杆方向平行或共线:
detA=0
此时两条支链施加在末端上的独立约束方向合并成一个。即使主动关节锁住,理想机构仍可能存在非零的末端瞬时运动。这类并联奇异往往比串联机器人奇异更危险,因为它意味着末端失去约束刚度。
所以,并联机器人不能只计算一个 J=A−1B 后就忘掉它的来源。A 不可逆与 B 降秩对应不同物理现象,应该分别保留和监测。
给定期望末端速度 x˙d,如果 J 是方阵且满秩,可以直接写:
q˙=J−1x˙d
一般机器人更常遇到非方阵或冗余情形,此时使用 Moore-Penrose 伪逆:
q˙=J+x˙d
它给出满足任务速度的最小二范数关节速度解。若任务维度不高于关节数且 J 满行秩:
J+=JT(JJT)−1
但接近奇异位形时,小奇异值的倒数仍会把速度和噪声强烈放大。
阻尼最小二乘(Damped Least Squares,DLS)不再要求精确满足任务速度,而是求解:
q˙min(∥Jq˙−x˙d∥2+λ2∥q˙∥2)
解为:
q˙=JT(JJT+λ2I)−1x˙d
在奇异值方向上:
σi1⟶σi2+λ2σi
伪逆增益会在 σi→0 时发散;DLS 增益则回到零,用有限的任务误差换取有界关节速度。

λ 不是越大越安全:阻尼过大时,远离奇异点也会产生明显跟踪误差。常见做法是根据 σmin、可操作度或任务误差自适应调节阻尼,并同时限制关节速度。
当关节数多于任务维度时,满足末端速度的解通常不唯一:
q˙=J+x˙d+(I−J+J)z
第二项位于 J 的零空间中,因为:
J(I−J+J)z=0
它可以在不改变一阶末端任务的前提下,用来远离关节限位、提高可操作度、避障或保持某种姿态。
这里要保留“一阶”两个字。有限时间积分、模型误差和任务优先级切换都可能造成漂移,实际控制器还需要重新投影和反馈修正。
在拉格朗日法中,第 i 根连杆质心的线速度和角速度写成:
vci=Jvi(q)q˙,ωi=Jωi(q)q˙
代入动能:
Ti=21mivciTvci+21ωiTIiωi
其中 Ii 必须与 ωi 在同一坐标系表达。代入以后,可以直接看到每根连杆对质量矩阵的贡献:
M(q)=i∑(miJviTJvi+JωiTIiJωi)
这条公式把前两篇文章真正接了起来:雅可比负责把广义速度传到每根连杆,拉格朗日法再用这些速度计算系统能量。
若存在闭环或接触约束:
ϕ(q)=0
对时间求导得到:
Jc(q)q˙=0,Jc=∂q∂ϕ
对应的理想约束力以:
JcTλ
进入广义动力学。速度约束使用 Jc,约束力使用 JcT,依然是同一组功率对偶关系。
在满足满秩等条件时,任务空间等效惯量还可以写成:
Λ(q)=(JM−1JT)−1
它描述机器人沿不同末端方向表现出的惯性。仅看运动学速度椭球,并不能完整代表高动态运动能力;质量分布、执行器能力和姿态都会通过动力学继续改变结果。
同一个机器人可能同时存在:
- 空间雅可比与本体雅可比;
- 几何雅可比与解析雅可比;
- 工具坐标原点、法兰中心或接触点的雅可比;
- (ω,v) 与 (v,ω) 两种六维排列。
如果接口只返回一个名为 J 的矩阵,却没有这些约定,后续的速度、力和控制计算很容易在维度正确的情况下悄悄出错。
对第 i 个关节加入小扰动 h。若要验证本体雅可比,可以计算:
ΔTb=T−1(q)T(q+hei)
然后:
Jb,i≈h1Log(ΔTb)∨
若验证空间雅可比,则使用:
ΔTs=T(q+hei)T−1(q)
Js,i≈h1Log(ΔTs)∨
只对位置坐标做差分无法验证角速度部分;直接对旋转矩阵元素相减,也不是合法的姿态误差向量。
h 太大时,截断误差明显;h 太小时,浮点相消会放大舍入误差。可以在多个数量级上扫描步长,观察误差是否先下降后上升,并与自动微分或独立实现交叉检查。
非方阵雅可比没有行列式;即使是方阵,行列式也会随单位和尺度剧烈变化。工程上更适合监测:
σmin,σmaxσmin,κ(J)
阈值应结合单位归一化、噪声水平、速度上限和具体任务确定,而不是复制一个脱离系统尺度的常数。
q˙=J+x˙d 只解决瞬时速度分配。真实机器人还需要:
- 位置或位姿误差反馈;
- 关节位置、速度和加速度限制;
- 奇异与关节限位回避;
- 碰撞、接触和闭环约束;
- 离散积分与通信延迟处理。
一条漂亮的伪逆公式,不会自动把这些工程边界消失掉。
把雅可比用于控制或优化以前,可以依次完成下面这些检查:
- 明确输入关节的顺序、单位和正方向;
- 明确输出任务的维度、参考点、坐标系和六维排列;
- 在简单零位下,逐列检查单关节单位速度的几何方向;
- 用李群有限差分或自动微分核对随机姿态;
- 验证功率一致性 WTJq˙=(JTW)Tq˙;
- 扫描工作空间中的 σmin 与条件数;
- 对已知伸直、折叠或闭环共线构型检查奇异方向;
- 在奇异附近验证速度限幅、阻尼和故障处理;
- 对并联机构分别保留 A 与 B,不要只检查组合后的逆映射;
- 与 CAD、仿真或另一套独立运动学实现交叉验证。
其中,功率一致性尤其有用。它不只检查矩阵尺寸,还会同时暴露坐标系、twist 排列、参考点和转置方向错误。
雅可比最初只是一个局部导数:
δx≈J(q)δq
进入机器人学以后,它逐渐展现出多层含义:
x˙=J(q)q˙
描述关节运动怎样汇聚成末端速度;
τ=JTW
描述末端力怎样回到关节;
rankJ<min(m,n)
揭示机构何时丢失独立方向;
J=UΣVT
则把这种方向能力展开成可以观察的速度椭球、力椭球与条件数。
所以,雅可比不是正运动学之后附带的一张偏导数表。它是机器人局部运动的核心接口:一边连接几何,一边连接力与能量;向前通往逆运动学、轨迹规划和冗余控制,向后又能回到奇异性、约束与机构设计。
前三篇文章讨论的三种语言,也在这里第一次同时出现:
- 旋量与 PoE 提供雅可比每一列的几何来源;
- 拉格朗日法通过质心雅可比把速度写进动能;
- 对偶四元数与 SE(3) 的误差可以通过对数映射转成局部 twist,再交给雅可比处理。
它们描述的从来不是三套彼此分离的数学,而是同一台机器人在不同尺度上的运动结构。
- Kevin M. Lynch, Frank C. Park, Modern Robotics: Mechanics, Planning, and Control — Chapter 5, Velocity Kinematics and Statics
- Richard M. Murray, Zexiang Li, S. Shankar Sastry, A Mathematical Introduction to Robotic Manipulation
- Tsuneo Yoshikawa, Manipulability of Robotic Mechanisms, 1985
- Samuel R. Buss, Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares Methods
- Oussama Khatib, A Unified Approach for Motion and Force Control of Robot Manipulators: The Operational Space Formulation, 1987