原书第 3 章共 22 道习题(Problems 3.1–3.22,p.159–161)。本编按 A(概念判断 4)、B(分析证明 6)、C(计算编程 6)、D(开放研讨 4)分层收录 20 框,全部附解答(默认折叠);标「原书 3.x」者与原书逐条对照,作业题(3.3、3.7)另见作业三的完整版。代码题给验收标准;数值题均可用 tools/verify_ch03_jac.py(make verify)的方法复核。
A / B 组的自评标准(C / D 组另给验收标准)
- A 组(概念判断):达标要求是「判对 + 说得出依据」。本编 A 组的核心是「矩阵形状 → 工具选型」这条判断链,答对选型还要答对适用条件。
- B 组(分析证明):按「思路 → 关键步 → 结论」三步自评。本章证明题的判分点集中在:是否用对了 J 的分块结构、是否交代了满秩 / 可逆前提、行列式展开时有没有漏掉符号。
- 通用扣分点:把 JT 写成 J−1;用解耦矩阵做逆解;ωe 与 φ˙e 混用;忘了「zi−1 表示在基坐标系下」。
A1 · 雅可比的行与列各代表什么
(a) 几何雅可比 J∈R6×n 的行对应什么物理量?列呢?(b) 第 i 列 Ji 的物理含义是什么(用「锁死其他关节」的语言说一遍)?(c) 为什么说「雅可比是位形的函数」?
解答
(a) 行 ↔ 操作空间速度的六个分量(vx,vy,vz,ωx,ωy,ωz,前 3 行 JP 线速度、后 3 行 JO 角速度);列 ↔ 关节(第 i 列 = 关节 i 的单位速度作用)(录播 0:21:46)。(b) 其余关节全部锁死、只以单位速度驱动关节 i 时,末端产生的六维速度——ve=Jq˙ 展开后 Jiq˙i 即该项贡献(1:00:52)。(c) J 的每一列由 zi−1,pi−1,pe 组成,这些量全从 Ti0(q) 读取——q 变则 J 变(定义 3.1.1)。
A2 · 三种「不方阵」与三味药
把 J 的方阵满秩 / 行满秩长方 / 不满秩三种情形与 J−1、J†、J∗ 对号,并各说一句「什么时候用、解的性质」。
解答
| J 的情形 |
工具 |
使用条件与解的性质 |
| 方阵、满秩(n=r,无奇异) |
J−1 |
q˙=J−1ve 唯一解;配数值积分(定义 3.5.1 前的 3.5.0) |
| 长方、行满秩(r<n,冗余) |
J†=JT(JJT)−1 |
解最小范数(W=I);加零空间项 (I−J†J)q˙0 做内部运动(定义 3.5.1) |
| 退化 / 邻域(奇异) |
J∗=W−1JT(JW−1JT+K−1)−1 |
容许末端速度误差 δ;K 大治奇点、K→0 退回伪逆(定义 3.5.2) |
一句话:方阵求逆、矮胖求伪逆、退化加阻尼。
A3 · 几何 / 分析雅可比之差
(a) J 与 JA 的前三行(线速度部分)是否相同?(b) 后三行为何不同?(c) TA 的两块分别是什么,JA 何时退化?
解答
(a) 相同——p˙e 对 q 直接求偏导与几何法逐列给出的 JP 一致(定义 3.6.1)。(b) 后三行描述的是同一个角速度在不同基下的读数:J 用基系正交轴(ω 分量有物理意义),JA 用欧拉角三根非正交瞬时轴(φ˙)——二者差一个换基 T(定理 3.6.A)。(c) TA=diag{I3,T(φ)},左上 I3、右下 T(φ)(ZYZ 显式见 3.6.2);sϑ=0(ϑ=0,π)时 T 奇异 ⇒ JA 退化,与 ZYZ 表示歧义同源。
A4 · 静力对偶三问
(a) 写出 τ=JTFe 并说明 Fe 的六个分量。(b) 为什么力映射用 JT 而不是 J−1?(c) 长方阵(冗余)时该式还成立吗?
解答
(a) Fe=[fe;μe]:3 个平动力 + 3 个转动力矩;τ 为 n 个关节力矩(移动关节为力)(定义 3.8.1)。(b) 功率守恒:q˙Tτ=veTFe=(Jq˙)TFe 对任意 q˙ 成立 ⇒ τ=JTFe——速度变换的转置就是力变换(对偶),无需方阵、无需满秩(定义 3.8.1 证明框)。(c) 成立——与 J 的形状无关。
B1 · 证明 RS(ω)RT=S(Rω)(原书 3.1,即式 3.11)
按其物理含义(「先叉乘再旋转 = 先旋转再叉乘」)给出证明,并说明它在角速度递推中的用处。
解答
对任意向量 p,用旋转不改变模长与夹角(或直接展开 S 与 R 的元素)验证 R(ω×(RTp))=Rω×p… 更简的路线:∀p,
RS(ω)RTp=R(ω×RTp)=Rω×p=S(Rω)p,
最后一步用了「旋转与叉乘可交换」:R(a×b)=Ra×Rb(在 R 的行列式为 +1 时成立)。对任意 p 成立即得 (3.11)。用处:R˙i=S(ωi)Ri 的递推里把 Ri−1S(ωi−1,ii−1)Rii−1 化为 S(Ri−1ωi−1,ii−1)Ri,三个算子便能对同一矩阵比较(3.1.2(d))。
B2 · 拟人臂雅可比与两类臂奇点(原书 3.5 相关)
由 JP(3.2.2)证明 detJP=−a2a3s3(a2c2+a3c23),并解释两个因子的几何意义。
解答
记 P=a2c2+a3c23、Q=a2s2+a3s23、R=a3s23、S=a3c23,则
JP=−s1Pc1P0−c1Q−s1QP−c1R−s1RS.
按第三行展开(第一项系数为零):
detJP=−P−s1Pc1P−c1R−s1R+S−s1Pc1P−c1Q−s1Q=−P(PR)+S(PQ)=P(SQ−PR)
(两个二阶行列式分别用了 s12+c12=1)。再算
SQ−PR=(a2s2+a3s23)(a3c23)−(a2c2+a3c23)(a3s23)=a2a3(s2c23−c2s23)=−a2a3s3.
故
detJP=−a2a3s3(a2c2+a3c23).
两个因子:s3=0(ϑ3=0,π)为肘奇点——臂伸直 / 折回,与两连杆平面臂 例 3.2 概念等价;a2c2+a3c23=0 为肩奇点——腕点坐标 px=py=0(落在 z0 轴上),JP 第一列恒为零(定理 3.3.A 后)。与第一个关节变量无关(ϑ1 被消去,教材原文即指出)。
B3 · 奇点解耦的合法性(原书 3.5 / 3.44)
(a) 说明为什么「奇点是结构固有属性」允许把参考点挪到腕中心。(b) 写出解耦后的行列式关系。(c) 这个下三角 J 能不能拿去做速度控制?为什么?
解答
(a) J 不满秩 ⇔ 各列(关节轴方向与其矩的叉乘)线性相关;参考点选取只改变每列的表示(pe−pi−1 换成 pw−pi−1),不改变「轴的共线 / 平行关系」这一结构事实(1:32:40)。(b) detJ=detJ11detJ22,其中 J12=0(因 pw−pi∥zi,i=3,4,5,叉乘为零)。(c) 不能——参考点已不是末端,该矩阵不再表示「关节速度 → 末端速度」的映射;它只用于奇点分析(教材 §3.3.1 原文同样强调)。
B4 · 零空间解族(原书 3.46)
证明:若 q˙∗ 满足 Jq˙=ve,P=NNT(N 为零空间基),则 q˙∗+Pq˙0 仍是解;并说明 I−J†J 与 NNT 的关系。
解答
J(q˙∗+Pq˙0)=ve+JNNTq˙0=ve+0=ve——用了 JN=0(定理 3.4.B)。两者都是到 N(J) 的投影:I−J†J 是伪逆诱导的正交投影(W=I 时按欧氏内积正交),NNT 是给定基 N 的(非正交)投影;当 N 的列标准正交时两者一致。作用相同:不惊动末端的内部运动。
B5 · DLS 的极限行为(原书 3.59 / 3.10)
对 J∗=JT(JJT+k2I)−1(r≤n 行满秩):(a) k→0 且 J 行满秩时趋于什么?(b) 在奇异位形(JJT 奇异)时 k>0 的作用是什么?
解答
(a) k→0 得 JT(JJT)−1=J†(右伪逆)——3.5.2 的「远离奇点取小、甚至趋 0」。(b) 对 JJT 做特征分解,特征值 σi2,则 J∗ 的第 i 个奇异方向增益为 σi/(σi2+k2)≤1/(2k)——有界:σi→0 时增益不再发散(σi/k2 与 k 同阶),这就是「容许误差换关节速度有界」;代价是末端速度有小偏差 δ(教材 §3.5.2)。
B6 · 速度 / 力变换的转置对偶(原书 3.16 / 3.112–3.116)
设坐标系 1 与基系 0 之间旋转 R10、位置 p~,写出速度与力的变换矩阵,并说明二者互为转置的理由。
解答
[p˙10ω10]=[R0−RS(p~)R][v1ω1],[f10μ10]=[RRS(p~)0R][f1μ1]
理由:虚功率不变(q˙Tτ 的对偶推广)——两坐标系里算出的功率必须相等:(v0)Tf0=vTf 对任意 v 成立 ⇒ f0=(Jv)Tf,即力变换矩阵 = 速度变换矩阵的转置(教材式 3.113–3.115 的 v22=J21v11⇒γ11=(J21)Tγ22)。
C1 · 数值雅可比校验器(自编)
写一个函数 jac_check(fk, q, eps=1e-6):给定正运动学 fk(q)(返回 4×4 齐次矩阵)与位形 q,用中心差分算 (3×n) 的线速度雅可比 JP,与解析 JP 比对。用它验证 3.2.1 三连杆平面臂的 Jˉ(前两行)。
解答(验收标准)
数值列 i:JP[:,i]≈2ϵpe(q+ϵei)−pe(q−ϵei),误差 O(ϵ2);与解析式比对,最大绝对误差 <10−7(ϵ=10−6 时)。三连杆平面臂取 q=(0.3,−0.7,1.1)、a=(1,0.8,0.6),本编脚本实测线速度部分偏差 1.6×10−10(ϵ=10−6 的中心差分理论误差量级)。注意角速度行不能用位置差分得到——需用 S=R˙RT 的差分 R˙≈(R(q+ϵei)−R(q−ϵei))/2ϵ 提取(tools/verify_ch03_jac.py 即此法)。
C2 · 三连杆平面臂:有效行与秩
对 3.2.1 的三连杆平面臂:(a) 写出 3×3 任务雅可比 Jˉ;(b) 求 detJˉ;(c) 判奇点;与两连杆(例 3.2)对比哪些位形更危险。
解答
(a) 见 3.2.1。(b) 记第 j 列为 Cj,按第三行(全 1)展开:detJˉ=M31+M32+M33(M3j 为对应代数余子式),代入并整理(s1c1、s123c123 型项逐一抵消)得
detJˉ=a1a2s2.
与两连杆平面臂(例 3.2)同构:末行 [1,1,1] 把三根杆的「臂展常数」压成同一个 s2 因子。(c) 奇点 s2=0(ϑ2=0,π)——与 ϑ1,ϑ3 无关,仍是边界型(臂伸直 / 折回);差异在于三连杆多一个「臂展分层」自由度,ϑ3 可把末端放回同一半径,因此部分可达边界不再同时是奇异边界(工作空间是二维区域而非环带),但 ϑ2=0,π 本身仍是不可逆位形。
C3 · 斯坦福机械手的第 3 列
对 3.2.3 的斯坦福机械手:(a) 写出 J 的第 3 列;(b) 说明它为什么与转动列形状不同;(c) 若要用它做「沿 z2 方向进给」,q˙ 应怎么给?
解答
(a) J3=[z20](z2=R20 第三列 =[c1s2,s1s2,c2]T)。(b) 关节 3 是移动关节——只产生沿轴的平移、不产生角速度(JO3=0)(定理 3.1.C)。(c) 取 q˙=[0,0,d˙3,0,0,0]T,末端线速度 =z2d˙3(纯沿伸缩轴);若方向不符,用 J−1/伪逆解 q˙——斯坦福满秩时直接逆。
C4 · SCARA 的雅可比与秩(原书 3.3 预热,完整版见作业三)
用第 2 章 C3 的 DH 表(2.9),按五步流水线写出 SCARA 的几何雅可比 J∈R6×4,并指出哪些行恒为零、J 的秩最大为多少。
解答
四轴全平行(αi=0)⇒ z0=z1=z2=z3=[0,0,1]T;p0=p1=[0,0,0]T、p2=[a1c1, a1s1, 0]T、p3=p2+[a2c12,a2s12,0]T、p4 同 p3(d3 沿 z3 平移同一 z 坐标)。逐列:
J=−[a1s1+a2s12]a1c1+a2c120001−a2s12a2c120001001000000001
第 4、5 行恒为零(末端绕 x,y 转动自由度根本不存在);秩 ≤min(6,4),实际最大 4(前三行 2×2 块 det=a1a2s2 + 第三、六行)。完整推导与奇点分析见作业三。
C5 · 可操作度在奇点的行为(原书 3.8 相关)
对两连杆平面臂(a1=a2=0.5)算 w(q)=det(JJT),取 ϑ2∈{90°,30°,5°,0.1°}、ϑ1=0,列表并解释趋势。
解答(验收标准)
JP(前两行):detJP=a1a2s2=0.25s2,w=∣detJP∣=0.25∣sinϑ2∣:90° 时 0.2500、30° 时 0.1250、5° 时 0.0218、0.1° 时 4.36×10−4——趋于 0 的速度与 ϑ2 同阶,正是 3.5.1 用 maxw 远离奇异的依据;也说明奇点邻域「detJ 小、J−1 大」的放大机制(2:11:18)。
C6 · DLS 增益曲线(原书 3.10 相关)
对 J=[σ](单自由度):画 ∣q˙/ve∣=σ/(σ2+k2) 随 σ 的曲线(σ∈[0,2],k=0.1,0.5),标出峰值点并与伪逆(σ→0 时发散)对照。
解答(验收标准)
增益 g(σ)=σ/(σ2+k2),g′=0⇒σ=k,峰值 gmax=1/(2k)。k=0.1 时峰值 5(在 σ=0.1);k=0.5 时峰值 1(在 σ=0.5)。伪逆增益 1/σ 在 0+ 无界。曲线族说明:k 是「增益上限」的旋钮——1/(2k) 即 J∗ 各方向增益的界;k→0 全曲线回到 1/σ。
D1 · 「奇点不可避免吗」
任选一种工业构型(如 6 轴球腕串联臂),检索其手册中的奇异位形说明,讨论:哪些奇点是结构性的(不可避免,只能规划绕开),哪些可以通过冗余 / 变构型(7 轴)消除?结合 3.3 的边界 / 内部分类与 Doosan 两种规避策略(3.3.3 工程注记)写成 300 字小报告。
解答要点
- 结构性:球腕 s5=0(内部)、肘 s3=0、肩「腕点落轴」——串联 6 轴无法消除,只能避开(规划 / 变速度 / 自动规避);
- 可消除:7 轴冗余臂用零空间项 q˙0(定理 3.4.B)在临奇位形前自运动到更灵巧的姿态,或直接解可操作度优化问题(3.5.1);
- 关键判据:看 w(q)=det(JJT) 是否趋 0;预期结论:「边界奇点廉价可避、内部奇点必须主动管理」。
D2 · 从雅可比到力控制(衔接下一章)
由 τ=JTFe 出发,说明:若想让末端沿某方向输出恒定力而对位置不敏感(如打磨、插装),为什么控制律要写成 τ=JT(Fd+KΔx) 的形式?结合 3.8 与 3.7 的两种算法讨论参数与奇点的关系。
解答要点
- JT 把末端期望广义力映射为关节力矩(3.8)——力的「逆运动学」;
- Δx 项提供柔顺(类似 3.7.1 的误差反馈,但作用于力环);
- 奇点处 JT 降秩:某些方向的力无法输出(JT 的值域 = 关节能产生的力矩空间),与 3.4 零空间的「力版本」对偶;
- 结论:力控制设计必须与前几节的雅可比分析联动。
D3 · 复核本编的一个数值
本编在 E3.1 用「课件绿框 + 教材 (3.37)–(3.38) + 数值差分」三源核对拟人臂雅可比。请你自己独立实现第三源(中心差分),验证 Jˉ 的三行全部元素(不只第三行),并报告最大误差。
解答要点
用 p3(q)=[c1(a2c2+a3c23), s1(a2c2+a3c23), a2s2+a3s23](教材 p.115 给出)做中心差分,与 Jˉ 全元素比对;本编实测最大偏差 2.0×10−10(中心差分误差量级;若换用符号工具可到 10−16)。方法学要点:任何「三行两块」型公式都应做全元素(非抽样)验证。
D4 · 冗余机械手的运动规划(原书 3.21 精神)
取本编 verify_ch03_jac.py 里的三连杆平面臂,设计一个「笔尖沿直线走、肘部避开圆形障碍」的仿真:状态 q˙=J−1ve+(I−J†J)q˙0,q˙0 取障碍距离的梯度(3.5.1 之三),报告:末端轨迹误差、障碍最小距离——并解释「为什么末端完全不受 q˙0 影响」。
解答要点
- 验收:末端轨迹与期望直线偏差 <10−3(Δt=1 ms、欧拉积分);障碍距离随 q˙0 激活而上升;
- 原因:P=I−J†J 的列在 N(J) 内,JPq˙0=0——3.5.1 与 定理 3.4.B 已证;
- 陷阱:q˙0 太大会把关节速度推高(总速度 = 特解 + 内运动),实际要限幅 / 加权(W=I)。