← back

Arm IK

如果 IK 不需要好解,机械臂不会长成今天这样。

1. 一个奇怪的现象

随便挑六台主流的 6-DOF 工业机械臂——PUMA 560、ABB IRB、KUKA KR、Stäubli、Fanuc、Yaskawa——并排放着看,你很快会注意到一件事:它们的手腕长得几乎一模一样,最后三个关节的轴线都汇到同一个点。

这事儿没人立过规矩,也不是设计师审美撞车。背后的原因有点反常识——1968 年一篇博士论文证明了:只有长成这个样子,计算机才算得动反向运动学

这之后,工业机械臂的几何选择就被悄悄"剪枝"了。任何算不动 IK 的设计,都没能活到量产那一步。

这篇 blog 想讲的,是一件挺反直觉的事——

机械臂今天这副样子,不是因为这种结构机械上最巧妙、最经济、或者最仿生;而是因为只有这种结构,IK 的数学才解得动。

换个说法:是 IK 决定了机械臂能长什么样,反过来不成立。

顺着这条线索往下,会路过三块路标——Pieper (1968)、Shimizu (2008)、Elias & Wen (2024)。每一块都打开了某一类几何的"可解大门",也都留下了今天还在车间里跑的那一类机械臂。

2. 先说说什么是 IK

把术语对齐一下。机械臂从底座到末端一串关节,每个关节一个角度 $q_i$。问题有两个方向:

用最简单的例子感受一下 IK 的难处:平面二连杆。给你 $(q_1, q_2)$,手在哪一眼能看见;反过来,给你目标点 $(x, y)$,事情立刻变了味:

这才 2-DOF。到 6-DOF,难度直接上几个台阶。

3. 通用 6-DOF IK 到底难在哪

末端位姿位于 $\mathrm{SE}(3)$:position 3 维加 orientation 3 维,共 6 维。想"任意位姿都到得了",关节 DOF 至少得 6 个。

真正难的地方是:一台没有任何几何巧合的 6R 机械臂,它的 IK 等价于解一个 16 次多项式。这件事直到 1990 年才被 Raghavan & Roth 完整证明,不过 1968 年的人已经隐约感觉到事情不妙。

16 次多项式有一个让人头疼的事实:

从 5 次起,多项式一般来说就不存在用根式表达的求根公式了(Abel-Ruffini 定理)。能选的只剩数值方法。

数值求根放在 2026 年是毫秒级的事。但放回 1968 年的 PDP-10,跑一次 Newton 迭代要几十毫秒到几百毫秒,而工业控制环路至少要 1 kHz。差着至少两三个数量级,根本顶不住实时控制。

所以那个年代的工程师真正头疼的不是"机械上要怎么设计才漂亮",而是"什么样的几何能让我手里这台破计算机跑得动 IK"。

4. Pieper 1968:数学给硬件下的指令

Pieper 在 Stanford 的博士论文(导师是 Bernard Roth)给了一个让人安心的答案。他证明了一条简单到出奇的几何判据:

一台 6R 机械臂,只要存在三个相邻关节轴交于一点,或者三个相邻关节轴两两平行,那么它的 IK 就能化简到一个次数不超过 4 的多项式——可以直接套四次方根公式闭式解出。
(a) 三轴交于一点 P → spherical wrist (PUMA, KUKA, ABB...) (b) 三轴相互平行 → UR 系列协作臂
图 2. Pieper 判据的两种情形,任意一种都足以把 16 次问题压回到 4 次。

四次方根公式 16 世纪就有了。闭式 = 微秒级求解。

这篇 thesis 真正的分量不在于"证了一个定理",而在于:它告诉所有以后想把机械臂做成产品的人——你的腕部得长成这样,没得商量。从此以后,凡是不满足这个条件的设计,几乎都在产品化的某一步被淘汰了。

5. 工程上的回应:spherical wrist

设计者最自然的反应:把最后三个关节的轴线全部做成过同一个点。这种结构有个专门的名字,叫 spherical wrist(球腕)。

它的好处不光是降阶,还附带一个特别漂亮的副作用——position 和 orientation 解耦。

原本"6 个未知数 × 6 个方程"那个一团乱麻的耦合系统,一下子拆成两个独立的"3 个未知数 × 3 个方程":

$$ \underbrace{p_W = p_d - R_d \cdot d_{\text{ee}}}_{\text{先从目标算 W}} \;\Rightarrow\; \underbrace{(q_1, q_2, q_3)\ \text{由 W 求}}_{\text{先解位置}} \;\Rightarrow\; \underbrace{(q_4, q_5, q_6)\ \text{由 orientation 求}}_{\text{再解姿态}} $$
q₁ q₂ q₃ W q₄, q₅, q₆ 轴都过 W 前 3 关节 → 决定 W 的位置 后 3 关节 → 决定 orientation
图 3. Spherical wrist 把 6-DOF 耦合方程组拆成两个独立的 3-DOF 子问题。

6. 一条 1968 年的判据,管了 50 年

翻一翻任何一台工业机械臂的规格书,Pieper 的影子都在:

机器人结构满足 Pieper 的方式
PUMA 560, ABB IRB, KUKA KR, Stäubli, Fanuc6-DOF spherical wrist(a) 三轴共点
UR5 / UR10 / UR166-DOF offset wrist(b) 三轴平行
SCARA, Delta4-DOF(只管位置)结构本身就更简单

主流的 6-DOF 工业臂里,几乎找不到一台不满足 Pieper 判据。说"找不到"不是夸张——这是一个被 IK 可解性"自然选择"过的物种:不满足判据的设计,在产品化途中就被市场淘汰掉了,因为客户那台控制器跑不动它的 IK。

7. 不过 6-DOF 也不是万灵丹

故事讲到这里,看着挺圆满:Pieper 给条件,工程师做球腕,IK 微秒级搞定,皆大欢喜。

然后问题来了。

6-DOF 臂确实能"到达任意位姿",但对每个具体目标位姿,它只有有限多个关节解,典型最多 8 个(肘上/下 × 肩左/右 × 腕翻/不翻)。这 8 个解里,可能:

真实结果常常是:数学上可达,实际上没法用。或者你被迫在一段连续轨迹里"换姿势"——这种事在控制层很狼狈。

怎么办?加一个关节

8. 7-DOF 多出来的那一份自由度长什么样

关节数从 6 变成 7,方程从"6 元 6 方程"变成"7 元 6 方程"——欠定。每个可达位姿不再对应有限个解,而是一整条曲线上的连续解。

这条曲线长什么样,有个特别直观的演示——把你的右手伸出去,手掌摆个固定姿势(也就是末端位姿固定),肩膀也别动。你会发现,你的肘可以左右摇动,绕着"肩→腕"那条想象中的连线转。

这个肘的轨迹就是个圆,学名叫 self-motion manifold——它就是 7-DOF 凭空多出来的那一份自由度的几何样子。

这一份自由度能干嘛?能干很多事:

整个过程,手在哪儿、朝哪儿,都不会变。

9. 怎么把 Pieper 的好处也带进 7-DOF?

关节多一个,IK 显然会更难。但如果你不想丢掉闭式解呢?

答案是:让 Pieper 判据用两次——肩部一次,腕部一次。

这就是 S-R-S (Spherical-Revolute-Spherical) 构型——把 Pieper 判据用了双倍。

谁这么干?Franka Panda、KUKA iiwa、Mitsubishi PA-10、ABB YuMi 单臂——你能数得出来的"主流 7-DOF 协作臂"基本都长这样。一旦你同时想要"7-DOF"和"闭式 IK",S-R-S 几乎就是唯一选项。1968 年那条判据,这次塑造的是"冗余协作臂的标准形态"。

10. Shimizu 2008:给冗余装一个"把手"

S-R-S 把数学解耦掉了,但还剩一个问题:7-DOF 每个位姿对应一整族解,你怎么从这族里挑出"具体的那一个"?

Shimizu 2008 给的方案优雅得让人感动:用一个标量 $\psi$(arm angle)把这一族解整个参数化。

几何直觉是这样的:

SW 轴 S W E(ψ=0) E(ψ) L_se L_ew ψ
图 5. Arm angle ψ 就是"肘在 SW 圆上的位置"——给 7-DOF redundancy 装的那个把手。

真正的魔术在下一步:$\psi$ 一旦给定,每一个关节角都能写成 $\psi$ 的闭式表达,统一形式是

$$ q_i(\psi) = \mathrm{atan2}\bigl(a_i \sin\psi + b_i \cos\psi + c_i,\; d_i \sin\psi + e_i \cos\psi + f_i\bigr) $$

(pitch 类的 $q_2$、$q_6$ 是 $\pm\arccos$ 形式)。系数 $a..f$ 完全由目标位姿和臂长决定,可以一次性算出来。

说白了,Shimizu 把 7-DOF IK 从"求一组非线性方程的根"压缩成"代一个 $\psi$ 进闭式公式"。要某个具体的 $\psi$ 对应的解?代进去。要扫描所有 $\psi$?在一维上跑一遍就行。

11. 关节限位,也能完全解析地处理

讲到这里你可能觉得 Shimizu 已经干完了。但他最让我喜欢的部分还在后面。

真实机械臂每个关节都有 limit。你随手挑个 $\psi$,某个 $q_i$ 可能就超了。前人通常的做法是数值搜索一个合法的 $\psi$。Shimizu 把这一步也做成了纯解析。

思路是:每个 $q_i(\psi) \in [q_i^{\min}, q_i^{\max}]$ 都可以重写成

$$ R_i \sin(\psi + \varphi_i) \leq K_i $$

这种不等式的解,落在 $\psi \in [-\pi, \pi]$ 上的一段(或几段)弧。把 7 个关节各自的合法弧取交集,就得到"所有合法 $\psi$"的集合。

q₂ 超限 q₆ 超限 q₄ 超限 合法 ψ 区间 ψ=0 ψ=π/2 ψ=±π ψ=−π/2
图 6. 每个 joint limit 在 ψ 圆上切掉一段红色弧;剩下的绿弧就是所有合法 IK 解对应的 arm angle。

得到的不只是"一个解",而是所有符合 limit 的 IK 解的连续集合,显式写出来——你可以在里面挑你最满意的那一个:最远离 singularity 的、最远离障碍的、最贴近用户偏好的——这件事就叫 redundancy resolution。

这是数学优雅的一个高光时刻:一个非线性约束满足问题,压到一维圆上的几段弧求交,搞定。

12. Elias & Wen 2024:Pieper 的现代版续作

Shimizu 默认机械臂严格满足 S-R-S。但今天很多 7-DOF 臂偷偷不满足——Kinova Gen3、Sawyer 都有 offset wrist,腕部三轴差了几毫米的偏置。就这点偏置,Shimizu 的推导就崩了。

2024 年 Elias & Wen 给出了下一代答案:

拼起来,几乎所有现代 7-DOF 臂都能闭式 IK,某些情况下额外加一个一维数值搜索。

更深一层的意思:不再靠"轴必须共点"这种几何巧合,而是把 IK 搭在一组可复用的几何积木上。这给下一代机械臂的设计松了绑——你不必再为了 IK 把所有腕轴硬掰到同一个点,可以为了别的考虑(强度、紧凑、关节模组的实际尺寸)做妥协,然后在 IK 端用 subproblem 拼回来。

13. 把整条线索串起来

回到开头那个奇怪现象——为什么所有 6-DOF 工业机械臂的手腕都长得一样?现在你不止有了答案,还有一整条故事线:

臂结构闭式 IK?实践方法
6-DOF spherical wrist (PUMA, ABB, KUKA)有 — Pieper 解耦闭式,微秒级
6-DOF offset wrist (UR5)有 — 特化推导闭式,库里都现成
7-DOF S-R-S (Panda, iiwa)有 — Shimizu 2008闭式 + ψ 搜索
7-DOF offset wrist (Kinova, Sawyer)有 — Elias-Wen 2024闭式 + 一维搜索
任意 6R / 自定义构型无(16 次多项式)数值(DLS / QP / autodiff)
反过来看历史:眼前几乎每一台"看着像机械臂的机械臂"——shoulder、elbow、spherical wrist——它的几何不是从某种"自然演化"里筛出来的,而是一篇 1968 年的论文直接写进硬件的样子。

是 IK 决定了机械臂长什么样,反过来不成立。下次你看到一台 6-DOF 工业臂,你看到的其实是一篇 Stanford 博士论文的实体形态。

References

  1. D. L. Pieper. The Kinematics of Manipulators Under Computer Control. Ph.D. thesis, Stanford University, 1968. (Stanford AI Memo AIM-72) — PDF
  2. M. Raghavan, B. Roth. Inverse Kinematics of the General 6R Manipulator and Related Linkages. ASME J. Mech. Design, 115(3):502–508, 1993. — DOI
  3. V. Kreutz-Delgado, M. Long, H. Seraji. Kinematic Analysis of 7-DOF Manipulators. Int. J. Robotics Res., 11(5):469–481, 1992. — DOI
  4. M. Shimizu, H. Kakuya, W. K. Yoon, K. Kitagaki, K. Kosuge. Analytical Inverse Kinematic Computation for 7-DOF Redundant Manipulators With Joint Limits and Its Application to Redundancy Resolution. IEEE Transactions on Robotics, 24(5):1131–1142, 2008. — DOI
  5. A. Elias, J. T. Wen. Redundancy Parameterization and Inverse Kinematics of 7-DOF Revolute Manipulators. arXiv:2307.13122, 2024. — arXiv