Arm ⟷ IK
如果 IK 不需要好解,机械臂不会长成今天这样。
1. 一个奇怪的现象
随便挑六台主流的 6-DOF 工业机械臂——PUMA 560、ABB IRB、KUKA KR、Stäubli、Fanuc、Yaskawa——并排放着看,你很快会注意到一件事:它们的手腕长得几乎一模一样,最后三个关节的轴线都汇到同一个点。
这事儿没人立过规矩,也不是设计师审美撞车。背后的原因有点反常识——1968 年一篇博士论文证明了:只有长成这个样子,计算机才算得动反向运动学。
这之后,工业机械臂的几何选择就被悄悄"剪枝"了。任何算不动 IK 的设计,都没能活到量产那一步。
机械臂今天这副样子,不是因为这种结构机械上最巧妙、最经济、或者最仿生;而是因为只有这种结构,IK 的数学才解得动。
换个说法:是 IK 决定了机械臂能长什么样,反过来不成立。
顺着这条线索往下,会路过三块路标——Pieper (1968)、Shimizu (2008)、Elias & Wen (2024)。每一块都打开了某一类几何的"可解大门",也都留下了今天还在车间里跑的那一类机械臂。
2. 先说说什么是 IK
把术语对齐一下。机械臂从底座到末端一串关节,每个关节一个角度 $q_i$。问题有两个方向:
- Forward Kinematics (FK):已知所有 $q_i$,求末端在哪、朝哪。一串矩阵乘起来就完了,容易。
- Inverse Kinematics (IK):给定末端目标位姿,反推每个 $q_i$ 该是多少。一组非线性方程,难。
用最简单的例子感受一下 IK 的难处:平面二连杆。给你 $(q_1, q_2)$,手在哪一眼能看见;反过来,给你目标点 $(x, y)$,事情立刻变了味:
- 有些点根本到不了——超出了 $\ell_1 + \ell_2$ 的可达圆;
- 大部分能到的点,都有两个解——肘朝上、肘朝下;
- 求解过程要靠 arccos / atan2,已经离不开三角函数了。
这才 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 的多项式——可以直接套四次方根公式闭式解出。
四次方根公式 16 世纪就有了。闭式 = 微秒级求解。
这篇 thesis 真正的分量不在于"证了一个定理",而在于:它告诉所有以后想把机械臂做成产品的人——你的腕部得长成这样,没得商量。从此以后,凡是不满足这个条件的设计,几乎都在产品化的某一步被淘汰了。
5. 工程上的回应:spherical wrist
设计者最自然的反应:把最后三个关节的轴线全部做成过同一个点。这种结构有个专门的名字,叫 spherical wrist(球腕)。
它的好处不光是降阶,还附带一个特别漂亮的副作用——position 和 orientation 解耦。
- 三轴的公共交点叫 wrist center $W$。它的位置只跟前 3 个关节有关——后 3 个关节怎么转,$W$ 都纹丝不动(因为它们的轴都从 $W$ 穿过)。
- $W$ 一旦定下来,末端的朝向就只剩后 3 个关节说了算了。
原本"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{再解姿态}} $$6. 一条 1968 年的判据,管了 50 年
翻一翻任何一台工业机械臂的规格书,Pieper 的影子都在:
| 机器人 | 结构 | 满足 Pieper 的方式 |
|---|---|---|
| PUMA 560, ABB IRB, KUKA KR, Stäubli, Fanuc | 6-DOF spherical wrist | (a) 三轴共点 |
| UR5 / UR10 / UR16 | 6-DOF offset wrist | (b) 三轴平行 |
| SCARA, Delta | 4-DOF(只管位置) | 结构本身就更简单 |
主流的 6-DOF 工业臂里,几乎找不到一台不满足 Pieper 判据。说"找不到"不是夸张——这是一个被 IK 可解性"自然选择"过的物种:不满足判据的设计,在产品化途中就被市场淘汰掉了,因为客户那台控制器跑不动它的 IK。
7. 不过 6-DOF 也不是万灵丹
故事讲到这里,看着挺圆满:Pieper 给条件,工程师做球腕,IK 微秒级搞定,皆大欢喜。
然后问题来了。
6-DOF 臂确实能"到达任意位姿",但对每个具体目标位姿,它只有有限多个关节解,典型最多 8 个(肘上/下 × 肩左/右 × 腕翻/不翻)。这 8 个解里,可能:
- 有一个肘部会撞到桌子;
- 有一个某个关节超出 limit;
- 有一个正好穿过 singularity(雅可比降秩,瞬时丧失某个方向的运动能力);
- 剩下的可能 self-collision、姿势别扭、客户不爽……
真实结果常常是:数学上可达,实际上没法用。或者你被迫在一段连续轨迹里"换姿势"——这种事在控制层很狼狈。
怎么办?加一个关节。
8. 7-DOF 多出来的那一份自由度长什么样
关节数从 6 变成 7,方程从"6 元 6 方程"变成"7 元 6 方程"——欠定。每个可达位姿不再对应有限个解,而是一整条曲线上的连续解。
这条曲线长什么样,有个特别直观的演示——把你的右手伸出去,手掌摆个固定姿势(也就是末端位姿固定),肩膀也别动。你会发现,你的肘可以左右摇动,绕着"肩→腕"那条想象中的连线转。
这个肘的轨迹就是个圆,学名叫 self-motion manifold——它就是 7-DOF 凭空多出来的那一份自由度的几何样子。
这一份自由度能干嘛?能干很多事:
- 选肘的位置去绕开桌子;
- 选肘的位置让所有关节都离 limit 远一点;
- 选肘的位置避开 singularity;
- 在一段连续轨迹里让肘沿曲线慢慢滑,而不是中途"跳"到另一组解。
整个过程,手在哪儿、朝哪儿,都不会变。
9. 怎么把 Pieper 的好处也带进 7-DOF?
关节多一个,IK 显然会更难。但如果你不想丢掉闭式解呢?
答案是:让 Pieper 判据用两次——肩部一次,腕部一次。
- Spherical shoulder $(q_1, q_2, q_3)$:前 3 轴交于肩点 $S$,$q_1 q_2 q_3$ 这一段可以单独解耦。
- Revolute elbow $q_4$:中间一个简单的转动关节。
- Spherical wrist $(q_5, q_6, q_7)$:后 3 轴交于腕中心 $W$,$q_5 q_6 q_7$ 这一段同样可以单独解耦。
这就是 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)把这一族解整个参数化。
几何直觉是这样的:
- $S$(肩)在世界里固定。
- $W$(腕中心)由目标位姿决定。
- $E$(肘)的位置受两个臂长 $|SE|$、$|EW|$ 的双重约束,剩下唯一一个自由度——绕 $SW$ 这根轴旋转,所以它落在一个圆上。
- $\psi$ 就是"$E$ 在这个圆上的位置",从某个参考方向起算的圆周角。
真正的魔术在下一步:$\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$"的集合。
得到的不只是"一个解",而是所有符合 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 给出了下一代答案:
- 把 arm angle 推广成广义 SEW (Shoulder-Elbow-Wrist) angle——不强求三轴共点,只要随便选一个合理的 reference vector;
- 把 IK 分解成一套可组合的几何 subproblem(Paden-Kahan 风格的 1-DOF / 2-DOF 子问题),每个子问题闭式可解。
拼起来,几乎所有现代 7-DOF 臂都能闭式 IK,某些情况下额外加一个一维数值搜索。
更深一层的意思:不再靠"轴必须共点"这种几何巧合,而是把 IK 搭在一组可复用的几何积木上。这给下一代机械臂的设计松了绑——你不必再为了 IK 把所有腕轴硬掰到同一个点,可以为了别的考虑(强度、紧凑、关节模组的实际尺寸)做妥协,然后在 IK 端用 subproblem 拼回来。
13. 把整条线索串起来
回到开头那个奇怪现象——为什么所有 6-DOF 工业机械臂的手腕都长得一样?现在你不止有了答案,还有一整条故事线:
- 1968(Pieper):证出了 6-DOF 闭式 IK 的几何充分条件。结果是 spherical wrist 成为所有 6-DOF 工业臂的标配。
- 2008(Shimizu):把闭式 IK 推到 7-DOF S-R-S,并把关节限位也变成解析的。结果是 S-R-S 成为冗余协作臂的主流构型(Panda、iiwa、PA-10、YuMi)。
- 2024(Elias-Wen):把闭式 IK 推到非 S-R-S 构型。结果是给下一代机械臂松了绑——以后的设计不必再被"轴必须共点"绑死。
| 臂结构 | 闭式 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) |
是 IK 决定了机械臂长什么样,反过来不成立。下次你看到一台 6-DOF 工业臂,你看到的其实是一篇 Stanford 博士论文的实体形态。
References
- D. L. Pieper. The Kinematics of Manipulators Under Computer Control. Ph.D. thesis, Stanford University, 1968. (Stanford AI Memo AIM-72) — PDF
- M. Raghavan, B. Roth. Inverse Kinematics of the General 6R Manipulator and Related Linkages. ASME J. Mech. Design, 115(3):502–508, 1993. — DOI
- V. Kreutz-Delgado, M. Long, H. Seraji. Kinematic Analysis of 7-DOF Manipulators. Int. J. Robotics Res., 11(5):469–481, 1992. — DOI
- 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
- A. Elias, J. T. Wen. Redundancy Parameterization and Inverse Kinematics of 7-DOF Revolute Manipulators. arXiv:2307.13122, 2024. — arXiv