奇异是「列不够」,冗余是「列太多」:关节数一旦超过任务所需维数,同一个末端速度就有无穷多种关节速度实现。这些「多余」的自由度不是浪费——它们是避障、回避奇异、优化姿态的资本。本节先给出任务相关的冗余判据,再说明怎样把这份「多余」用起来。录播 1:47:01–1:56:39。
定义 3.4.1 · 冗余(任务相关)
当机械手自由度个数 n 大于描述给定任务所必需的变量个数 r 时,就称该机械手对给定任务冗余。操作空间维度 m<n 时一定冗余(如 7 关节在三维空间操作,7>6);而任务维度恒有 r≤m≤6——一个任务可能只用得上其中两个、三个分量。
冗余是任务相关的概念:同一台机械手,对某个任务可能冗余、对另一个任务却可能非冗余;甚至 m=n 时,只要特定任务只涉及 r<m 个操作空间分量,机械手也是(功能上)冗余的——2.10 讲过的本质 / 功能冗余,在这里正式落地。一个最小的例子见 例 3.4.A。
分析工具:判断冗余不必展开正运动学方程,而是直接分析雅可比(1:50:17)——它把任务速度与关节速度线性地联系起来:
ve=J(q)q˙,ve∈Rr (任务速度),J∈Rr×n,q˙∈Rn
这里的 ve 是与任务相关的速度向量:J 并非完整的几何雅可比,而是从中提取任务用到的行得到的。于是当 r<n 时,机械手对该任务冗余,多出 n−r 个冗余自由度——它们很快就会以零空间的形式登场。
例 3.4.A(新增)· 三连杆平面臂的功能冗余
三连杆平面臂 n=3,平面操作空间 m=3(x,y 两个平动 + 绕 z 转动),本质不冗余。但若任务只做平面内 xy 定位、不关心末端姿态(如平面画线 / 搬运),则 r=2<3——这就是功能冗余:肘部姿态可以自由摆动,笔尖却保持不动(1:51:25)。反过来,若任务要求位置 + 姿态(r=3),同一台臂便立刻非冗余。
谈冗余离不开两个子空间(1:52:35–1:53:50):
- 值域空间 R(J):回答「哪些末端速度能做到」——不在 R(J) 里的末端速度不可能用关节速度线性表出(方程无解);
- 零空间 N(J):回答「哪些关节速度不惊动末端」——它与冗余直接相关:末端速度为零时,关节空间中仍有速度(「内部运动」:臂在动、末端不动)。若机械手冗余,N(J) 就必定非空:存在 n×(n−r) 矩阵 N,其列张成零空间(JN=0,N 列满秩)。
定理 3.4.B · 解族与零空间投影
沿用上面的零空间矩阵 N,取
P=NNT(秩 n−r)
若 q˙∗ 是微分运动方程 ve=Jq˙ 的一个解(特解),而 q˙0 是任意向量,则
q˙∗+Pq˙0仍是方程的解.
证明(课堂口述,1:54:07–1:56:07)
证明只需一步:验证 JPq˙0=0;只要这一项为零,解族就自动成立。由 JN=0 得 JNNTq˙0=(JN)NTq˙0=0。□
直观地说:Pq˙0 落在 P 的值域里,而 P=NNT 的值域正是 N 的列空间 =N(J)——零空间里的运动不惊动末端。
□
「臂在动、末端不动」长什么样,可以直接画出来(见下图):三连杆平面臂的笔尖 P 钉在纸上不动,臂的其余部分却还在动——腕心沿一段圆弧滑动,肘部随之摆动。这就是零空间里的内部运动:q˙∗+Pq˙0 的第二项,正是沿着这条弧滑动的那一份。
零空间内部运动(本教程绘):笔尖 P 不动,肘与腕沿零空间流动。主臂是 ve=Jq˙ 的一个特解 q˙∗;叠加 Pq˙0 后臂形改变而末端速度不变(定理 3.4.B),于是可以「顺便」完成避障、回避奇异与姿态优化。
冗余的用途(1:55:41–1:56:32):Pq˙0 描述的是结构内部运动,即不改变末端位置与方向的「自运动」;它的价值在于让机械手在执行任务的同时重新配置自身。典型用途有三:
- 提升灵巧性:手术机器人用可操作度(3.5.1)让手腕更灵活;
- 避障:「一个姿态到不了,转一下(自运动)就到了」;
- 回避奇异、远离关节极限。
这些用途最终都归结为同一个问题:q˙0 该怎么设计(3.5.1 的三种取法)。
默写点 · 合上书再写(主动回忆)
合上正文与速查卡,先把下面几条默写出来,再展开核对。写不出来,就说明这一节还没真正「拿走」。
- 冗余的判据是什么(用 n,m,r 说)?
- 写出零空间投影 P 与解族。
- 证明 Pq˙0 不惊动末端。
核对
n>r(任务相关冗余)——注意是 r(任务实际用到的维数),而不是操作空间维数 m。
P=NNT(秩 n−r,N 为零空间矩阵);解族为 q˙=q˙∗+Pq˙0。
由 JN=0 得 JPq˙0=JNNTq˙0=(JN)NTq˙0=0——该项落在 N(J) 里,故对末端速度的贡献恒为零。
- 一条主线:n>r(任务相关)⇒ N(J) 非空 ⇒ 解 = 特解 + 零空间通解(Pq˙0)⇒ 用零空间做「不惊动末端」的内部运动,从而完成机械手再配置。
- 一句话:「末端执行器没有速度时,机械臂仍可以有位形的改变」(1:48:44)——这就是零空间运动。
常见错误清单 · 自查三条
- 用 m 而不是 r 判冗余——冗余总是相对任务而言:n=m=3 的平面臂对定位任务(r=2)已经是冗余的;
- 忘了 J 要先「按任务取行」,再谈零空间——零空间维度是 n−r,而不是 n−m;
- 把 Pq˙0 当作「误差修正项」——它对末端速度的贡献恒为零,改变的只是内部姿态。