机械臂雅可比奇异点模拟器 返回
机器人学·控制

机械臂雅可比奇异点模拟器

针对2连杆平面机械臂,改变关节角度和连杆长度,雅可比矩阵 det(J)、可操作性 w (Yoshikawa)、奇异值 σ_max/σ_min、条件数 κ 将实时计算。观察接近奇异点时可操作性椭圆体如何压扁,用于DLS逆运动学和路径规划的预评估。

参数设置
臂类型
不同类型的奇异点模式不同(计算使用2-DOF平面)
连杆长度 L₁
m
连杆长度 L₂
m
关节角 θ₁
°
关节角 θ₂
°
在 0° 或 ±180° 时出现边界奇异点
关节速度上限
rad/s
奇异点附近所需 q̇ 的上限。用于路径规划约束
计算结果
末端位置 X (m)
末端位置 Y (m)
雅可比矩阵 det(J)
可操作性 w
条件数 κ
奇异点状态
-
模型
-
最小轴速度
机械臂姿态 — 可操作性椭圆体

2连杆平面臂当前姿态和末端的可操作性椭圆体(长轴=σ_max,短轴=σ_min)。当椭圆体压成线段时就是奇异点。

雅可比矩阵 det(J) vs 关节角 θ
可操作性分布图 (θ₁ – θ₂ 平面)
理论·主要公式

$$\dot x = J(\theta)\,\dot\theta,\qquad w(\theta) = \sqrt{\det\!\left(J J^{T}\right)},\qquad \kappa = \frac{\sigma_{\max}}{\sigma_{\min}}$$

J:雅可比矩阵,w:Yoshikawa可操作性,κ:条件数。w=0时det(J)=0为奇异点。κ→∞也表示各向异性奇异点附近。

$$\det J = L_{1} L_{2}\,\sin\theta_{2},\qquad x_{ee} = L_{1}\cos\theta_{1} + L_{2}\cos(\theta_{1}+\theta_{2})$$

2连杆平面臂的det(J)仅依赖θ₂,在θ₂=0和θ₂=±π处为0(边界奇异点)。末端位置用正运动学求解。

$$J^{+}_{\rm DLS} = J^{T}\left(J J^{T} + \lambda^{2} I\right)^{-1}$$

DLS (Damped Least Squares) 伪逆矩阵。在奇异点附近通过 λ 抑制关节速度,使 ẋ ≈ J J⁺_DLS ẋ_target。

机械臂雅可比奇异点 — 可操作性与回避

🙋
「机械臂的奇异点」这个说法我从机器人工程师那里听过,但说实话不太明白。臂的某个姿态「特殊」是什么意思呢?
🎓
简单说就是「想动的方向动不了」的姿态。比如这个工具里的2连杆臂,把θ₂设成0°,让它完全伸展。你会发现手先在X方向(伸展方向)只能非常缓慢地运动,而要让它沿那个方向快速动,关节转速需要非常大。这就是奇异点。数学上讲,ẋ = J q̇ 这个关系中,J 在「某个方向压扁了」。
🙋
明白了,完全伸展时先端难以活动是直观能理解的。那「可操作性 w」是衡量运动容易程度的数值吧?
🎓
完全正确。Yoshikawa在1985年提出的 w = sqrt(det(JJᵀ)) 就是这个概念,代表「在单位关节速度下末端能描出的速度椭圆体的体积」。w越大的姿态,手先可以向任何方向流畅运动。反之w=0就是奇异点,椭圆体压成一条线。条件数 κ 表示椭圆体的「歪斜程度」,κ大意味着某方向很快、别的方向很慢的「各向异性」强。实际中用w判断离奇异点有多远,用κ判断运动的均匀性。
🙋
工业机器人中奇异点什么时候是个问题呢?好像正常工作时也没出过事啊。
🎓
最常见的是「腕部奇异点」。在FANUC、ABB、Yaskawa、KUKA这些6轴臂上,腕部的第5轴(θ₅)如果转到0°,剩下两个轴(θ₄和θ₆)就会同轴重合,失去一个自由度。从CAD生成的直线插补轨迹经过这个姿态时,「警告:奇异姿态」就报出来了。现场做法通常是把教示点的θ₅保持在最少10°以上,躲开那个位置。如果不注意这个细节,量产线立线时会频繁出现报警。
🙋
那回避方法有哪些呢?总不能每次都手工改吧。
🎓
分三层。第一层是「DLS法」。逆运动学不用 J⁻¹ ẋ,而改用 J⁺_DLS = Jᵀ(JJᵀ+λ²I)⁻¹ 这个带阻尼的伪逆。在奇异点附近λ会起作用,抑制关节速度失控。Nakamura他们的「奇异点鲁棒逆运动学」就是这个核心,代码也就10行。第二层是「路径规划」上做迂回。用RRT*规划时,把κ或w值加入评价函数,优先选择可操作性高的姿态通过,天然绕开问题区。第三层是「冗余度」利用。7自由度臂可以在零空间里做运动,改变关节配置但保持末端位置不变,这样能一直维持w最大的姿态。达芬奇手术机器人的远心运动就是这个思路。
🙋
最后一个问题。这个工具里「条件数超过100要警告」的标准是怎么来的?
🎓
这是经验数字。κ超过100意味着σ_max/σ_min达到百倍,也就是说快方向比慢方向快100倍,慢方向基本动不了。结合实机的关节速度限制(比如这里的3 rad/s),慢方向的手先速度就成了毫厘级别。教科书(Siciliano的「Robotics: Modelling, Planning and Control」)一般说:κ<10是好姿态,κ>50要注意,κ>100基本当特异点。

常见问题

雅可比矩阵J表示关节角速度q̇到工作空间速度ẋ的线性映射ẋ = J q̇。逆运动学需要逆映射q̇ = J⁻¹ ẋ,但det(J)=0时J不可逆,会同时造成三个问题:(1)某些方向的运动需要无穷大的关节速度,(2)某些方向完全无法运动,(3)动力学分析(惯性映射M(q)=JᵀΛJ等)失效。对于2连杆平面臂,det(J)=L₁L₂ sinθ₂,所以θ₂=0或π时出现奇异点。
可操作性w = sqrt(det(JJᵀ))是Yoshikawa(1985)提出的「该姿态能有多好地运动」的体积指标,与可操作性椭圆体体积成正比。w越大的姿态全方向越易运动,w=0是奇异点。条件数κ = σ_max/σ_min表示椭圆体的「扭曲程度」,κ越大表示某方向快、其他方向慢的「各向异性」越强。实际工作中用w进行奇异点回避,用κ进行精度保证判断,通常两者并用。
边界奇异点(boundary singularity)发生在工作空间的边界,当臂完全伸展(θ₂=0)或完全折叠(θ₂=π)时出现。这类奇异点回避相对简单,只需把目标位置设在可达域内侧即可。内部奇异点(interior singularity)发生在工作空间内部,典型例子是6自由度人型臂的腕部奇异点(wrist singularity, θ₅=0)。此时手先位置能正常运动,但某些姿态方向无法运动,更麻烦,工业机器人(FANUC、ABB、Yaskawa、KUKA)会报警并重新规划路径。
有三种主流办法。(1)DLS(Damped Least Squares)法:把伪逆矩阵改成J⁺ = Jᵀ(JJᵀ + λ²I)⁻¹,在奇异点附近用λ限制速度。这是Nakamura等人「奇异点鲁棒逆运动学」的核心。(2)路径规划层面迂回:规划时把条件数κ加入评价,选择κ小的姿态作为过渡,绕开问题区域。(3)冗余度利用:7自由度等冗余臂通过零空间运动改变关节配置,在保持末端位置的同时维持w最大的姿态。达芬奇手术机器人的远心运动也是这个办法。

实际应用

工业6轴机器人(FANUC、ABB、Yaskawa、KUKA):在焊接、喷涂、组装等工序中,从CAD生成的直线插补轨迹输入实机时,腕部奇异点经常成为问题。线体立线初期频繁出现「奇异姿态警告」而停机,通常的对策是在教示点确保θ₅最少保持5°以上,或在控制器中启用DLS法光滑通过。

协作机器人(UR、FANUC CR系列):因为要在人类身边工作,奇异点附近的关节速度剧增会触发安全停止。现代控制器内部实时监控可操作性w,当低于阈值时自动切换到速度限制模式。理解本工具中w的行为,会大大简化教示时的姿态选择。

手术机器人(Intuitive Surgical da Vinci、CMR Versius):通过体表小切口操控臂,切口点必须是不动点,这要求实现远心运动(RCM)。RCM通过冗余自由度实现零空间运动,维持可操作性w同时控制器械姿态。奇异点附近会降低组织操作精度,术前规划需要进行姿态评估。

移动式机械臂和航天机器人:JAXA SLIM的机械臂和NASA的Canadarm2这样的长臂系统,连杆长L很大,边界奇异点的影响显著。任务规划阶段需要评估w分布图,在可操作性高的工作空间内确定作业顺序。本模拟器的可操作性分布图可视化有助于培养这方面的直觉。

常见误区和注意点

首先是「奇异点很少见,平时不用管」这种误解。实际上从CAD生成直线插补轨迹送到实机时,经过奇异姿态的概率比预想高得多,量产线立线初期会频繁报警。原因是CAD操作员仅按末端位置下教示点,没有考虑姿态约束(如θ₅≠0)。最简单的办法是建立「检查各教示点的关节角,θ₅低于5°的点要改姿态」这样的规则,可以让立线期间的报警大幅下降。

其次是「可操作性w和条件数κ不区分」的错误。两者是不同的指标,w是「绝对的运动能力(体积)」,κ是「方向间运动能力的平衡(各向异性)」。比如w大、κ也大的姿态,某方向快、其他方向慢,「各向异性强」。反过来w小、κ小(均质)的姿态,全方向都慢得均匀。根据任务不同,「高速特定方向」需要高κ、高w,「全方向均一精度」需要低κ配合足够大的w,取舍方式不同。

最后是「用了DLS法就能通过奇异点」的过度信任。DLS只是数值上抑制发散,改变不了「某方向物理上动不了」的事实。在奇异点附近即使强行给目标速度,末端也达不到目标,误差会累积。对精度要求高的应用(半导体装配、激光焊接)应该在路径规划阶段就迂回,不是用DLS硬闯。养成用本工具预先评估目标轨迹上有无问题姿态的习惯,把奇异点地图化,这才是正解。

使用指南

  1. 通过滑块设置连杆1、连杆2的长度(米)。例如:L1=0.5m,L2=0.4m
  2. 指定关节角θ1、θ2的范围,计算整个工作空间内的雅可比奇异点分布
  3. 实时显示可操作性椭圆体(Yoshikawa)和奇异值σ₁、σ₂、条件数κ=σ₁/σ₂
  4. 黄色高亮显示det(J)=0的奇异点轨迹,识别边界奇异点和内部奇异点
  5. 用于DLS(阻尼最小二乘法)逆运动学的阻尼系数选择或路径规划的危险区回避

具体计算例子

2连杆平面机器人:L1=0.6m、L2=0.5m、θ1=45°、θ2=30°的情况,末端位置为X=0.783m、Y=0.708m。此时雅可比矩阵式det(J)=0.112,可操作性w=0.089。这表示机器人的力传递效率约8.9%,操纵能力在下降区域。同一工作空间内θ1=0°、θ2=90°的位置处det(J)=0.298、w=0.241有显著改善。如果把κ<5的区域设为路径规划的优先走行区,可以防止数值计算的不稳定。

实务上的注意事项

  1. 在奇异点(det(J)接近0的区域),关节速度到末端速度的转换出现特异逆矩阵问题;采用DLS法导入阻尼系数λ=0.01~0.1进行稳定化
  2. 臂长越大特异点空间越广;L1>1.0m时要预先模拟多条路径
  3. Yoshikawa可操作性w<0.05的区域力控制易不稳定,高精度装配作业应设置为回避
  4. 工作空间末端(肘锁状态)处κ值急剧上升;到达边界时要组入目标轨迹修正算法