摘要。在奇异位形附近,末端工具一个很小的速度要求,可能需要极大的关节速度。雅可比矩阵的阻尼逆能够限制增益,却也会改变实际执行的运动。本文通过平面双关节机械臂量化这一权衡,包括运动学推导、正则化解、谱解释和可复现计算。核心区别是:限制数值放大,并不等于恢复丢失的运动能力、满足所有执行器约束,或证明机器人的安全性。
读者需要了解导数、向量和最小二乘。我们有意选择一个小例子,以便检查每一步,理解数值过程究竟牺牲了什么。本文不报告硬件测试,也不提出新算法;教学实验已使用 Python 和 NumPy 以双精度执行。
1. 只在笛卡尔空间中看起来温和的要求
设想工具需要以每秒一厘米的速度水平移动。这个要求看起来很小,但能否实现取决于机械臂位形。两个连杆接近共线时,沿连杆轴线移动末端需要两个关节进行很大的反向转动。在弯曲位形中,同样的速度可能无需这种放大就能实现。
控制器经常从规划、视觉、遥操作或学习策略等上层模块接收笛卡尔指令。指令在语义上正确,并不保证运动学求逆具有良好条件。这也是 AI 与机器人技术的交界:将意图转化为与当前几何结构相容的运动。本文的问题是:通过阻尼降低关节速度时,我们付出了多大的笛卡尔误差?
2. 建立问题:2R 机械臂
考虑长度为 l1 和 l2 的两根刚性连杆,以及两个转动关节。q1 是第一根连杆相对于基座 x 轴的角度,q2 是第二根连杆相对于第一根的角度。三角函数中的角度均使用弧度。我们只研究平面内末端的位置,不研究其朝向。正运动学为:
x = l1 cos(q1) + l2 cos(q1 + q2) y = l1 sin(q1) + l2 sin(q1 + q2) v = J(q) qdot
分别对两个角度求导,得到一个 2×2 矩阵。每一列表示相应关节以单位速度运动时产生的末端速度:
J = [ -l1 sin(q1)-l2 sin(q1+q2) -l2 sin(q1+q2) ]
[ l1 cos(q1)+l2 cos(q1+q2) l2 cos(q1+q2) ]
det(J) = l1 l2 sin(q2)
当 q2 为零或 π 的整数倍时,行列式为零。两根连杆沿 x 轴伸直时,J 的两列都是竖直方向:在一阶近似下,任何关节速度组合都无法产生水平速度。这不是计算机精度不足,而是几何上丢失了某些瞬时可用的运动方向。
这一关系是局部的。它并不是说末端经过有限运动后永远无法到达内部位置,而是说在该瞬间,微分模型无法产生 x 方向分量。如果某个算法在不改变假设的情况下精确返回该分量,它实际上解决的是另一个问题。
3. 为什么伪逆会放大指令
奇异值分解将 J 写成 UΣVᵀ。U 的列 ui 是相互正交的笛卡尔方向,V 的列 vi 是关节空间方向;σi 表示沿 vi 的单位关节速度能够产生多少笛卡尔运动。伪逆对可达分量施加 1/σi 的增益。当 σi 为零时,该增益取零,得到最小二乘问题中范数最小的解。这个经典框架及其阻尼替代方案见 Samuel R. Buss 的技术笔记第 4–6 节。
qdot_pinv = Σi:σi>0 vi (uiᵀ v) / σi
本例取 l1 = l2 = 1 m、q1 = 0,指令 v = (0.01, 0) m/s。当 q2 不为零或 π 时,无需数值库也能求解:第二行给出两关节速度之间的关系,代入第一行得到 qdot1 = 0.01 cot(q2)、qdot2 = −0.01 cot(q2/2),单位为 rad/s。因此,当 q2 很小时,速度范数约按 0.01√5/|q2| 增长。
在 0.1 度时,这个公式给出的范数约为 12.81 rad/s,尽管指令只有 0.01 m/s。而在恰好零度时,伪逆针对这一水平指令返回零关节速度。奇异点处的值并不是附近数值的极限。通过数值阈值截断奇异值可以避免部分除法,但也引入了两种行为之间如何切换的实际选择。
4. 推导阻尼逆
引入未知关节向量 z 和正的惩罚参数 λ。在这里,J 的量纲为 m/rad,λ 使用相同尺度。我们最小化一个严格凸函数:
L(z) = ||Jz − v||² + λ² ||z||² ∇L(z) = 2 Jᵀ(Jz − v) + 2λ²z (JᵀJ + λ²I) z = Jᵀv qdot_DLS = (JᵀJ + λ²I)⁻¹ Jᵀv
当 λ > 0 时,正规方程矩阵正定:任意非零向量上的二次型为 ||Jz||² + λ²||z||²,必定为正。因此,即使 J 丢失秩,也存在唯一的最小值。公式有助于分析;代码中应求解线性系统或使用 SVD,而不是显式构造逆矩阵。
代入 SVD 并利用正交性后,问题分解为独立坐标上的优化。每个关节坐标同时承担相应笛卡尔方向上的残差代价和自身幅值代价。标量解将增益从 1/σ 改为 σ/(σ²+λ²)。这里的“阻尼”指运动学正则化,不是安装机械阻尼器,也不是对机器人的物理耗散建模。
5. 逐个方向看阻尼的代价
gλ(σ) = σ / (σ² + λ²) J qdot_DLS = Σi ui [σi²/(σi²+λ²)] (uiᵀv) r = v − J qdot_DLS gλ'(σ) = (λ² − σ²) / (σ²+λ²)² maxσ≥0 gλ(σ) = 1/(2λ) ||qdot_DLS|| ≤ ||v||/(2λ)
在 σ 较小的方向上,实现的速度受到更强衰减。σ = λ 时恰好保留所需分量的一半;σ 远大于 λ 时衰减很小;σ 为零时,该分量仍然无法实现。对增益求导可知最大值位于 σ = λ。结合正交性与算子的谱范数,即可得到关节速度范数的上界。
当 ||v|| = 0.01 m/s、λ = 0.05 m/rad 时,模型中的关节速度范数不超过 0.1 rad/s。这是整个向量的充分上界,不是对加速度、力矩、碰撞或位置限制的检查。若各关节限制不同,单一 λ 不能直接表达这些优先级。具体约束必须明确写入问题,例如建立带约束的二次优化问题。
惩罚项也并非只消除“不良”运动。有限 λ 同样衰减条件良好的方向,只是程度较小。λ 很大时,所有方向上的速度都会变小:仅凭关节速度范数低,不能判断任务执行得好。
6. 可复现实验:固定位形,没有实体机器人
保持上述连杆长度和指令,分别计算 q2 为 30°、10°、1°、0.1° 和 0° 的解。程序使用 float64 SVD;伪逆将不大于 10⁻¹² 的奇异值视为零。考察的 λ 为 0.01 和 0.05 m/rad。没有随机采样、训练或时间积分:每一行都是独立位形。
| q2(度) | 方法 | ||qdot||(rad/s) | ||v−Jqdot||(m/s) |
|---|---|---|---|
| 30 | 伪逆 | 0.041144 | ≈0 |
| 30 | DLS λ=0.05 | 0.039307 | 0.000425 |
| 1 | 伪逆 | 1.281121 | ≈0 |
| 1 | DLS λ=0.01 | 0.485007 | 0.006214 |
| 1 | DLS λ=0.05 | 0.030477 | 0.009762 |
| 0.1 | 伪逆 | 12.811721 | ≈0 |
| 0.1 | DLS λ=0.05 | 0.003121 | 0.009998 |
| 0 | 所有方法 | 0 | 0.010000 |
伪逆接近零的残差属于舍入误差,并非物理世界中的实验测量。在一度处的比较尤其清楚:λ = 0.05 使关节速度范数相对于伪逆降低约四十二倍,但残差达到指令范数的约 97.6%。理想机器人几乎没有执行所需运动。因此,只报告速度降低会产生误导。

上图还展示了 DLS 的非单调行为:接近临界区域时增益上升,随后在丢失运动能力的方向上趋近零。下图揭示了这种降低的代价。同时展示两者,可以避免把运动停止误认为准确完成任务。
7. 核心代码与独立检查
import numpy as np
q2 = np.deg2rad(1.0)
J = np.array([[-np.sin(q2), -np.sin(q2)],
[1 + np.cos(q2), np.cos(q2)]])
v = np.array([0.01, 0.0])
lam = 0.05
U, sigma, Vt = np.linalg.svd(J, full_matrices=False)
qdot = Vt.T @ ((sigma / (sigma**2 + lam**2)) * (U.T @ v))
print(np.linalg.norm(qdot), np.linalg.norm(v - J @ qdot))
压缩包包含完整程序、结果和绘图脚本。雅可比检查在非奇异位形下,将解析公式与步长为 10⁻⁶ rad 的中心差分比较。第二项检查计算 DLS 解的正规方程残差;第三项检查范数上界,以及从米一致转换到毫米后的不变性。这些检查各有作用:任何一项都不能单独证明整个实现正确,但可以发现符号、尺度和求解错误。
下载代码、数据与复现说明。结果文件还包含速度分量和奇异值,验证不必局限于汇总范数。
8. 不带单位的数值可能改变控制器
若把相同长度改用毫米表示,J 和 v 都乘以一千。为保持解不变,λ 也必须乘以一千,此时整个目标函数乘以一百万。如果单位改变后仍保留 λ = 0.05,相对惩罚就会减小一百万倍。这不是显示细节,而是会改变计算出的运动。
空间机器人同时处理线速度与角速度时,问题更加明显。将 m/s 和 rad/s 分量相加形成范数,已经隐含一种权重选择。在比较条件数、阻尼参数或精度之前,必须定义一致的度量,例如按任务相关的位置与朝向尺度归一化。没有这一约定,就不存在可以普遍移用的 λ。
9. 从运动学到控制:还缺少什么
真实循环会积分指令、读取新测量并重新计算 J,同时引入采样周期、延迟、模型误差、饱和与执行器动力学。这里没有选择采样周期,因为没有模拟该循环。由一个矩阵的有限性推断闭环稳定性,是逻辑上的跳跃。即使速度范数很小,也可能隐藏相邻采样之间的快速变化。
面向运行的比较应记录笛卡尔误差、各关节速度和加速度、饱和、距离约束的裕量以及计算时间。各方法应在同一轨迹、同样单位约定和限制下测试。更早一步,所要求的轨迹本身也可能需要修改:并不是每个笛卡尔指令都应不计代价地跟踪。
近期研究也在探索均匀正则化之外的方法。预印本 J-PARSE,2025 年第 1 版区分奇异与非奇异方向,通过投影修改指令。第 III、IV 节介绍方法、仿真比较和实体演示;关节限制与碰撞明确不在其所处理的形式化问题内。我们没有复现该研究,本文数字也不构成与 J-PARSE 的比较。它是值得研究的方向,不是普遍优越性的证明。
10. 对企业机器人与 AI 应用的意义
提出位姿或速度的学习系统,需要与能够说明自身可执行能力的执行层共同工作。在本例中,DLS 可以在返回关节指令的同时返回可实现速度和残差,使规划器知道几乎全部所需运动都被损失了。这种反馈可能支持改换位形或放慢任务。这是由计算推导出的架构建议,并非已经在生产环境测试过的功能。
工业与协作机器人是 EL-AI 明确表示感兴趣的方向。本文解释与该方向有关的技术问题,但不把不存在的部署、控制器或实体试验归于公司。本实验用于教学,不能作为协作工作单元的安全验证。
结论。阻尼逆通过接受与方向有关的残差来控制求逆增益。评价重点不仅是关节速度下降多少,还包括指令实际实现了多少。接近完全伸直时,这种权衡可能极端:数值上平稳的解,可能对应几乎静止的工具。
来源与透明说明
Buss,Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares Methods,技术笔记,第 4–6 节;J-PARSE,arXiv:2505.00306v1,2025 年,第 III–IV 节。相关段落提供来源链接,查阅日期为 2026 年 9 月 22 日。本文的 2R 推导、计算和图表是可复现教学材料,不是新的同行评审论文。
文本和翻译借助 AI 完成,不宣称经过人工审校。封面由 AI 生成,仅作示意,不代表真实的 EL-AI 部署。

