原书第 4 章共 8 道习题(Problems 4.1–4.8,p.189)。本编按 A(概念判断 4)、B(分析证明 6)、C(计算编程 6)、D(开放研讨 4)分层收录 20 框,全部附解答(默认折叠);标「原书 4.x」者与原书逐条对照,作业题(4.1、4.5、4.6)另见作业四的完整版。数值题均可用 tools/verify_ch04_traj.py(make verify)的方法复核——该脚本已对三次 / 梯形 / 样条 / 混合四类闭式与官方解答做过逐项数值回归。
A / B 组的自评标准(C / D 组另给验收标准)
- A 组(概念判断):达标要求是「判对 + 说得出依据」。本章 A 组的核心是两条判断链:「约束数 → 该用几阶多项式」与「要求哪一阶连续 → 该用哪条路线」。
- B 组(分析证明):按「思路 → 关键步 → 结论」三步自评。本章证明题的判分点集中在:是否说清了「约束 = 方程、系数 = 未知数」的计数关系;样条的 4N−2 与 4(N−1) 差在哪里;三对角结构为什么与关节无关。
- 通用扣分点:把路径当轨迹(漏时间律);用五次多项式还声称能量最优;样条写成「光滑插值」而漏掉加速度连续这一特征;把经由点当路径点。
A1 · 路径、轨迹、运动规划
(a) 三个概念各比前一个多了什么?(b) 「轨迹规划的输出是位置、速度和加速度」——为什么必须给三个量而不是只给位置?(c) 为什么避障必须在操作空间做、而控制必须在关节空间做?
解答
(a) 路径 = 纯几何(经过哪些点、连成什么形状);轨迹 = 路径 + 时间律(每点的速度与加速度);运动规划 = 轨迹 + 避障与优化(动态过程,含动力学)(定义 4.1.1–定义 4.1.3)。
(b) 因为底层伺服需要的是参考输入序列:只有位置,伺服无法前馈速度/加速度,跟踪会滞后并产生大的误差;而且 定理 4.1.A 的两条硬约束(力矩饱和、结构谐振)都是对速度和加速度提的,只给位置就无从检验。
(c) 障碍物的位置在操作空间描述最自然,其关节空间像是非线性的、难以计算(0:35:36);而驱动器只能按关节变量驱动,所以规划结果必须经逆运动学(或示教再现)落到关节空间(0:37:39)。
A2 · 数约束、选阶次
对下列任务各应选几阶多项式、几条约束?
(a) 只给起点、终点位置和总时间;
(b) 再指定初终速度为零;
(c) 再指定初终加速度为零;
(d) 要经过 5 个路径点。
解答
| 任务 |
约束数 |
最小阶次 |
| (a) 位置 ×2 + 时间 |
2 |
一次(但需补优化指标才有唯一解) |
| (b) 再加初终速度 ×2 |
4 |
三次(4 个系数) |
| (c) 再加初终加速度 ×2 |
6 |
五次(6 个系数) |
| (d) 5 个路径点 |
5 |
单个四次多项式不可用(见 为什么不用单个高阶多项式 的五个缺点),改用 4 段三次 + 虚拟点 / 抛物线混合 |
一句话:方程(约束)的个数必须等于未知系数(阶次+1)的个数;少了多解、多了超定(0:16:25)。
A3 · 四条路线各保证到几阶连续
把 4.2.2 的四条修正路线与「位置 / 速度 / 加速度」三级连续性对号,并说明各自的代价。
解答
| 路线 |
位置 |
速度 |
加速度 |
代价 |
| ① 指定路径点速度 |
是 平滑 |
是 连续 |
否 跳跃 |
用户指定的速度可能引起超调(例 4.2.E) |
| ② 按规则计算速度 |
是 平滑 |
是 连续 |
否 跳跃 |
极值点被强制零速(例 4.2.F) |
| ③ 三次样条 |
是 平滑 |
是 平滑 |
是 连续 |
需虚拟点 + 解三对角系统 |
| ④ 抛物线混合 |
是 平滑 |
是 连续 |
否 跳跃 |
轨迹不经过路径点(经由点) |
只有 ③ 保证加速度连续——这是样条的定义性特征(定义 4.2.6)。
A4 · 操作空间规划的两次「降维」
(a) 位置规划最后落在哪个标量函数上?(b) 姿态规划(角和轴法)最后落在哪个标量函数上?(c) 两者为什么都能复用关节空间的方法?
解答
(a) 弧长的时间律 s(t)——位置 pe=f(s) 由路径定几何,s(t) 定时间(定义 4.3.4)。
(b) 转角的时间律 θ(t)——等效轴 r′ 固定不变,姿态轨迹完全由 θ 决定(定理 4.3.F)。
(c) 因为 s 与 θ 都是一维标量,其时间律问题与「单关节 q(t)」同构,于是三次 / 五次 / 梯形 / 样条全部可以直接套用(0:20:12、2:27:32)。
B1 · 最小能量 ⇒ 三阶多项式
从「刚体定轴转动、电机力矩 τ、最小化 ∫0tfτ2dt」出发,说明为什么解的速度是二阶多项式、位置是三阶多项式。
解答
思路:把问题写成变分形式——设 q˙=ω,约束 Iω˙=τ 与 ∫0tfωdt=qf−qi,目标 min∫0tfτ2dt=minI2∫0tfω˙2dt。
关键步:这是关于 ω 的泛函极值问题(Euler–Lagrange 方程),其解满足 d4ω/dt4=0——即 ω 是三次函数的积分形式……更直接地,教材给出的结论是
ω(t)=at2+bt+c.
结论:ω 二阶 ⇒ 积分得 q(t) 为三阶(三次)多项式,求导得 q¨(t)=6a3t+2a2 为线性加速度曲线(定理 4.2.A)。即使关节动力学不能这样简化(转动惯量是位形的函数),选三阶多项式仍是有效解。
B2 · 三次多项式系数的规范化
证明:当初终速度均为零时,三次多项式的系数可写成与 tf、∣qf−qi∣ 都无关的规范化形式。
解答
思路:把 (4.1) 中的 t 换成无量纲 η=t/tf,q 换成 q~=(q−qi)/(qf−qi)。
关键步:条件变成 q~(0)=0, q~(1)=1, q~′(0)=q~′(1)=0(这里 ′ 对 η)。设 q~=b3η3+b2η2+b1η+b0:b0=0,b1=0,b3+b2=1,3b3+2b2=0 ⇒ b3=−2, b2=3。
结论:q~(η)=3η2−2η3,与数据无关;回到原变量
q(t)=qi+(qf−qi)[3(tft)2−2(tft)3].
这正是教材 §4.2.1 脚注②说的「可以把系数的计算规范化,使其独立于结束时间 tf 及路径长度 ∣qf−qi∣」。对照 例 4.2.B(qi=0,qf=π,tf=1)得 a2=3π, a3=−2π 是。
B3 · 梯形速度曲线的 tc 方程与加速度下界
由「抛物线分段终点速度 = 线性分段常值速度」出发,推出 (4.5) 与 (4.7)。
解答
思路:衔接条件 (4.3) 是 q¨ctc=tm−tcqm−qc,其中 tm=tf/2、qm=(qf+qi)/2;抛物线段的位移由 (4.4) 给出 qc=qi+21q¨ctc2。
关键步:把 (4.4) 代入 (4.3):
q¨ctc(2tf−tc)=2qf−qi−21q¨ctc2⟹q¨ctc2−q¨ctftc+(qf−qi)=0.
这是关于 tc 的二次方程;取 tc≤tf/2 的根即 (4.6)。根号内非负给出
tf2q¨c−4(qf−qi)≥0 ⟹ ∣q¨c∣≥tf24∣qf−qi∣.
结论:等号时 tc=tf/2,巡航段长度为零,速度曲线退化为三角形(定理 4.2.C)。
B4 · 样条的方程计数
对 N 个路径点,用 N−1 段三次多项式做「加速度连续」的插值,证明方程数比未知数多 2,并说明这 2 个方程是什么。
解答
思路:数未知数与方程数。
关键步:未知数 = 4(N−1)(N−1 段 × 4 个系数)。方程:中间 N−2 个点各 4 个(位置、位置连续、速度连续、加速度连续)⇒ 4(N−2);首末两点各 3 个(位置、速度、加速度)⇒ 6。合计 4N−2。
结论:4N−2−4(N−1)=2——多出的正是初始与最终加速度这两个任意指定的条件。三种出路:① 首末段改用四阶多项式;② 只在部分时间保持轨迹一致;③ 引入两个虚拟点(只施加连续性约束、不指定位置),把未知数与方程数同时提到 4(N+1) 而配平(定理 4.2.G)。
B5 · 三对角结构与「与关节无关」(原书 4.4)
说明 (4.28) 中的 A 为什么是三对角带结构、且对所有关节相同。
解答
思路:看 (4.28) 的每个方程牵涉哪些未知量。
关键步:由 (4.26) 二阶导数的线性插值与两次积分,Πk 只依赖 Π¨k(tk),Π¨k(tk+1) 与两端位置;再用位置连续性与加速度连续性消元后,第 k 个速度连续性方程只涉及 Π¨k(tk),Π¨k+1(tk+1),Π¨k+2(tk+2) 三个相邻未知量——于是每行只有三个非零元,构成三对角带。
结论:A 的元素(官方解答给出显式表达式)只依赖时间间隔 Δtk;所有关节共享同一时间轴、同一 Δtk,故 A 与关节无关,只有右端项 b 随关节角度变化(1:46:35)。这带来巨大的算力红利:A 只需分解一次,换关节只换 b,且三对角系统可用 O(N) 的前向/后向代入求解。
B6 · 旋转矩阵不能逐元素插值
设 Ri,Rf 为正交矩阵,证明一般的 R(λ)=(1−λ)Ri+λRf 在 λ∈(0,1) 内不满足 RTR=I。
解答
思路:直接计算 RTR,看交叉项。
关键步:记 R=Ri+λD,D=Rf−Ri。则
RTR=RiTRi+λ(RiTD+DTRi)+λ2DTD=I+λ(RiTRf+RfTRi−2I)+λ2DTD.
结论:一般地,RiTRf+RfTRi=2I 且 DTD=0,故 λ∈(0,1) 时 RTR=I——插值出的中间矩阵不是旋转矩阵(列不再正交、模不再为 1)。这正是 定理 4.3.E 的内容,也是姿态规划必须换表示(欧拉角 / 角和轴)的原因。
C1 · 三次多项式(教材图 4.1)
qi=0、qf=π、tf=1,初终速度为零。求三次多项式系数,并指出加速度在何处不连续。
解答
解 4 个约束(定义 4.2.1):a0=0、a1=0、a3+a2=π、3a3+2a2=0 ⇒ a2=3π, a3=−2π。
q(t)=−2πt3+3πt2,q˙(t)=−6πt2+6πt,q¨(t)=−12πt+6π.
速度是抛物线、加速度是直线;加速度在 t=0(从 0 跳到 6π)与 t=1(从 −6π 跳回 0)两处跳跃。峰值加速度 6π,峰值速度 1.5π(t=0.5)。
C2 · 梯形速度曲线(教材图 4.3)
同数据 qi=0,qf=π,tf=1,取 ∣q¨c∣=6π。求 tc、巡航段时长与巡航速度,并给出 (4.8) 的三段表达式。
解答
由 (4.6):tc=21−216π6π−4π=21−231≈0.2113 s。
巡航段时长 tf−2tc≈0.5774 s;巡航速度 q˙c=q¨ctc=6π×0.2113≈3.983 rad/s(> 平均速度 π≈3.142,符合 (4.9))。
q(t)=⎩⎨⎧21(6π)t2,6π(0.2113)(t−0.1057),π−21(6π)(1−t)2,0≤t≤0.21130.2113<t≤0.78870.7887<t≤1
验收标准:q(1)=π;q˙ 在三段交界处连续;q¨ 分段常值 ±6π;把 ∣q¨c∣ 降到 4π 时 tc=tf/2、巡航段消失(三角形)。
C3 · 按规则计算路径点速度(原书 4.2 相关;教材图 4.6)
路径点 q=[0,2π,π/2,π]、t=[0,2,3,5],按 (4.12) 求各路径点速度,并说明结果。
解答
分段斜率:v2=π、v3=(π/2−2π)/1=−3π/2、v4=(π−π/2)/2=π/4。
- 点 2:sgn(π)=sgn(−3π/2) ⇒ q˙2=0;
- 点 3:sgn(−3π/2)=sgn(π/4) ⇒ q˙3=0;
- 端点:q˙1=q˙4=0。
结论:所有中间点速度为零——轨迹在每个路径点都「顿一下」再出发,与 例 4.2.F 的图 4.6 一致。若某点前后斜率同号,则该点速度取两斜率平均(verify_ch04_traj.py 第 3 组)。
C4 · 五次多项式(原书 4.1 = 作业四第 1 题)
q(0)=1→q(2)=4,初终速度、加速度为零。求轨迹。
解答
一般规范化形式(例 4.2.B 的推广):
q(t)=qi+(qf−qi)[10η3−15η4+6η5],η=tft.
代入 qi=1,qf=4,tf=2:
q(t)=1+415t3−1645t4+169t5.
验收标准:q(0)=1、q(2)=4、q˙(0)=q˙(2)=0、q¨(0)=q¨(2)=0(6 条全过);与官方解答系数一致。完整版见作业四。
C5 · 三次样条(原书 4.5 = 作业四第 2 题)
q(0)=0,q(2)=2,q(4)=3,初终速度、加速度为零。写出虚拟点取 t=1,3 时的 A、b 并求解。
解答
Δtk≡1,N=3,未知量 [Π¨2(t2),Π¨3(t3),Π¨4(t4)]T:
A=1001/62/31/601/61,b=2−1−1⟹Π¨2=2351, Π¨3=−2330, Π¨4=−2318.
四段多项式见 例 4.2.I 与作业四。验收标准:q(0)=0,q(2)=2,q(4)=3;端点速度、加速度为零;t=1,2,3 处 C0/C1/C2 连续;虚拟点值 q(1)=3/8、q(3)=23/8(未被指定)。
C6 · 线性分段 + 抛物线混合(原书 4.6 = 作业四第 3 题)
同数据,Δtk′=0.2。求各段系数并说明「经由点」偏差。
解答
线性段:a10=0,a11=1;a20=2,a21=0.5。
抛物线:b10=0.025,b11=0.5,b12=2.5;b20=1.9875,b21=0.75,b22=−1.25;b30=2.9875,b31=0.25,b32=−1.25。
经由点偏差(与 例 4.2.J 同源):第 2、3 点处 ∣bk0−qk∣=0.0125——轨迹从路径点附近经过(教材图 4.8)。验收标准:抛物线在 ±Δtk′/2 处与线性段的位置、速度均连续;把 Δtk′ 增大到 0.6 时偏差增大、加速度减小。
D1 · 工业为什么选梯形速度曲线
既然三次多项式能量最优、五次多项式最光滑,为什么工业界普遍用梯形速度曲线?请从「可验证性、算力、可控性」三个角度回答。
解答
- 可验证性:梯形速度曲线的加速度是分段常值,峰值就是 q¨c,可以直接与电机力矩上限、结构许用加速度比对——「允许直接验证机械手是否在物理上支持所得的速度和加速度」(0:55:28)。三次/五次的峰值要另算。
- 算力:梯形只需解一个二次方程 (4.5) 或两次除法 (4.10)(4.11),且首末段对称;五次要解 6 元系统、样条要解三对角系统。工业上这种计算要做千万次,累积差异很大(0:59:48)。
- 可控性:用户界面只需暴露「最大速度的百分比」和「最大加速度的百分比」,天然不会超出物理极限(0:57:49);指定总时间反而容易让用户给出不可实现的要求。
代价是性能指标 ∫τ2dt 比最优(三次)情形增加 12.5%(教材 §4.2.1)——工程上认为可接受。
D2 · 采样率与线性内插
操作空间规划的采样率为什么受限?「线性微小内插」如何在不提高规划采样率的前提下改善底层控制?
解答
受限原因:操作空间的轨迹生成要实时配合逆运动学求解(每一点都要解逆解),计算复杂,采样率过高算不过来(2:00:02)。
做法:规划时用较低采样率得到一组稀疏的设定点;送给底层伺服前,在相邻两点之间做线性微小内插,把输入频率提上去。
收益:参考输入的更新频率提高 ⇒ 伺服跟踪的滞后与误差减小,增强系统的动态性能(教材 §4.3)。注意这只是「加密」,不改变规划轨迹本身;精度由规划点的密度决定。
D3 · 多段路径的时间超前
多段直线路径为什么会在路径点「停下来」?时间超前 Δtj=Δtj−1+δtj 如何消除这次停顿,代价是什么?
解答
停顿原因:两条不共线分段在路径点处一阶导数不连续——若要求轨迹经过该点,速度必须归零再重新加速(定义 4.3.5)。这正是关节空间中 例 4.2.K 的现象在操作空间的翻版。
时间超前:在前一分段的梯形速度曲线尚未完成时,就启动下一分段——用 (4.50) 把第 j 段的 sj(t) 提前 Δtj 开始,Δtj 由递归 Δtj=Δtj−1+δtj 估计(定理 4.3.D)。
代价:① 不再保证在指定时刻经过路径点(路径点降格为经由点);② 该规划没有考虑速度连续性,实际中还要加抛物线过渡或提前预判(2:20:27)。收益是全局持续时间更短、效率更高。
D4 · 姿态规划的两条路线取舍
欧拉角法与角和轴法各适合什么场合?各自有什么坑?
解答
|
欧拉角法 |
角和轴法 |
| 表示 |
三个角 (φ,ϑ,ψ) 分别插值 (4.51) |
等效轴 r′ 固定,只规划转角 θ (4.52)–(4.55) |
| 优点 |
与 2.4 的表示直接衔接;实现简单 |
几何直观(绕一根固定轴转);降为一维,无中间表示冗余 |
| 坑 |
① 插值完必须经 T(φe) 换算回基系(定理 3.6.A);② T 在 sinϑ=0 处奇异(ZYZ 歧义,3.6);③ 三个角同时插值可能绕过中间姿态 |
① sinθf=0 时轴不唯一,需特殊处理;② r′ 是在 Rif=RiTRf 下算的,ω′ 还要左乘 Ri |
结论:两者都把姿态规划化为一维标量时间律;老师明确本节「不详细讲」但原理要清楚(2:26:03)。工程上另有单位四元数插值(2.6)可避免奇异,教材未展开。