作业信息(据录播)
题号 :教材第 4 章习题 4.1、4.5、4.6 (课件末页「作业:习题 4.1/4.5/4.6」,02:26:08);
原文 (教材 p.189 / 原书 Problems 4.1, 4.5, 4.6):
4.1 Compute the joint trajectory from q ( 0 ) = 1 q(0)=1 q ( 0 ) = 1 to q ( 2 ) = 4 q(2)=4 q ( 2 ) = 4 with null initial and final velocities and accelerations.
4.5 Given the values for the joint variable: q ( 0 ) = 0 q(0)=0 q ( 0 ) = 0 , q ( 2 ) = 2 q(2)=2 q ( 2 ) = 2 , and q ( 4 ) = 3 q(4)=3 q ( 4 ) = 3 , compute the cubic interpolating spline with null initial and final velocities and accelerations.
4.6 Given the values for the joint variable: q ( 0 ) = 0 q(0)=0 q ( 0 ) = 0 , q ( 2 ) = 2 q(2)=2 q ( 2 ) = 2 , and q ( 4 ) = 3 q(4)=3 q ( 4 ) = 3 , find the interpolating polynomial with linear segments and parabolic blends with null initial and final velocities.
提交 :一周内。
三道题是同一条主线上的三级台阶:4.1 是点对点(4.2.1 ),用五次多项式满足 6 个边界条件;4.5 与 4.6 用同一组路径点,分别演示「系列点」的两条路线——三次样条 (4.2.2.3 ,加速度连续)与线性 + 抛物线混合 (4.2.2.4 ,经由点)。三题的全部数值已由 tools/verify_ch04_traj.py(make verify)与官方《课后习题参考答案》逐项核对。
题目 :q ( 0 ) = 1 → q ( 2 ) = 4 q(0)=1\to q(2)=4 q ( 0 ) = 1 → q ( 2 ) = 4 ,初始与最终的速度、加速度均为零。
为什么是五次 (4.2.1.2 ):位置、速度、加速度的初终值共 6 个条件 ,而三次只有 4 个系数——必须升到五次:
q ( t ) = a 5 t 5 + a 4 t 4 + a 3 t 3 + a 2 t 2 + a 1 t + a 0 . q(t)=a_5t^5+a_4t^4+a_3t^3+a_2t^2+a_1t+a_0 . q ( t ) = a 5 t 5 + a 4 t 4 + a 3 t 3 + a 2 t 2 + a 1 t + a 0 .
列方程 (q i = 1 , q f = 4 , t f = 2 q_i=1,\ q_f=4,\ t_f=2 q i = 1 , q f = 4 , t f = 2 ,初终速度、加速度全零):
{ a 0 = q i = 1 a 1 = q ˙ i = 0 2 a 2 = q ¨ i = 0 a 5 t f 5 + a 4 t f 4 + a 3 t f 3 + a 2 t f 2 + a 1 t f + a 0 = q f 5 a 5 t f 4 + 4 a 4 t f 3 + 3 a 3 t f 2 + 2 a 2 t f + a 1 = q ˙ f = 0 20 a 5 t f 3 + 12 a 4 t f 2 + 6 a 3 t f + 2 a 2 = q ¨ f = 0 \begin{cases} a_0=q_i=1\ a_1=\dot q_i=0\ 2a_2=\ddot q_i=0\ a_5t_f^5+a_4t_f^4+a_3t_f^3+a_2t_f^2+a_1t_f+a_0=q_f\ 5a_5t_f^4+4a_4t_f^3+3a_3t_f^2+2a_2t_f+a_1=\dot q_f=0\ 20a_5t_f^3+12a_4t_f^2+6a_3t_f+2a_2=\ddot q_f=0 \end{cases} ⎩ ⎨ ⎧ a 0 = q i = 1 a 1 = q ˙ i = 0 2 a 2 = q ¨ i = 0 a 5 t f 5 + a 4 t f 4 + a 3 t f 3 + a 2 t f 2 + a 1 t f + a 0 = q f 5 a 5 t f 4 + 4 a 4 t f 3 + 3 a 3 t f 2 + 2 a 2 t f + a 1 = q ˙ f = 0 20 a 5 t f 3 + 12 a 4 t f 2 + 6 a 3 t f + 2 a 2 = q ¨ f = 0
一般解 (消元后与 t f t_f t f 、∣ q f − q i ∣ |q_f-q_i| ∣ q f − q i ∣ 无关的规范化形式,教材 §4.2.1 脚注):
q ( t ) = q i + ( q f − q i ) [ 10 ( t t f ) 3 − 15 ( t t f ) 4 + 6 ( t t f ) 5 ] q(t)=q_i+(q_f-q_i)\left[10\Big(\frac{t}{t_f}\Big)^3-15\Big(\frac{t}{t_f}\Big)^4+6\Big(\frac{t}{t_f}\Big)^5\right] q ( t ) = q i + ( q f − q i ) [ 10 ( t f t ) 3 − 15 ( t f t ) 4 + 6 ( t f t ) 5 ]
(检验 t = t f t=t_f t = t f :10 − 15 + 6 = 1 10-15+6=1 10 − 15 + 6 = 1 是,恰到达 q f q_f q f ;一、二阶导数在 t f t_f t f 处均为零。)
本题系数 (与官方解答完全一致):
a 0 = 1 , a 1 = 0 , a 2 = 0 , a 3 = 15 4 , a 4 = − 45 16 , a 5 = 9 16 a_0=1,\quad a_1=0,\quad a_2=0,\quad a_3=\frac{15}{4},\quad a_4=-\frac{45}{16},\quad a_5=\frac{9}{16} a 0 = 1 , a 1 = 0 , a 2 = 0 , a 3 = 4 15 , a 4 = − 16 45 , a 5 = 16 9
即
q ( t ) = 1 + 15 4 t 3 − 45 16 t 4 + 9 16 t 5 \boxed{,q(t)=1+\frac{15}{4}t^3-\frac{45}{16}t^4+\frac{9}{16}t^5,} q ( t ) = 1 + 4 15 t 3 − 16 45 t 4 + 16 9 t 5
验算 :q ( 2 ) = 1 + 30 − 45 + 18 = 4 q(2)=1+30-45+18=4 q ( 2 ) = 1 + 30 − 45 + 18 = 4 是;q ( t f ) q(t_f) q ( t f ) 处 q ′ = q ′ ′ = 0 q'=q''=0 q ′ = q ′′ = 0 是(verify_ch04_traj.py 第 4 组)。注意 :选择五次就放弃了 定理 4.2.A 的最小能量指标——能量最优解只能是三次(4.2.1.2 )。
题目 :q ( 0 ) = 0 , q ( 2 ) = 2 , q ( 4 ) = 3 q(0)=0,\ q(2)=2,\ q(4)=3 q ( 0 ) = 0 , q ( 2 ) = 2 , q ( 4 ) = 3 ,初始与最终的速度、加速度均为零。
为什么需要虚拟点 (定理 4.2.G ):N = 3 N=3 N = 3 个路径点、初终加速度也指定时,方程数比未知数多 2 ,系统不能直接求解。教材的做法是引入两个虚拟点 t 2 = 1 t_2=1 t 2 = 1 、t 4 = 3 t_4=3 t 4 = 3 (官方解答即取此值),得 N + 1 = 4 N+1=4 N + 1 = 4 个三次多项式、4 ( N + 1 ) = 16 4(N+1)=16 4 ( N + 1 ) = 16 个方程对 16 个未知数。
步骤一:确定时间间隔。 五个时刻 t 1 = 0 , t 2 = 1 , t 3 = 2 , t 4 = 3 , t 5 = 4 t_1=0,\ t_2=1,\ t_3=2,\ t_4=3,\ t_5=4 t 1 = 0 , t 2 = 1 , t 3 = 2 , t 4 = 3 , t 5 = 4 (t 2 , t 4 t_2,t_4 t 2 , t 4 为虚拟点),故
Δ t 1 = Δ t 2 = Δ t 3 = Δ t 4 = 1. \Delta t_1=\Delta t_2=\Delta t_3=\Delta t_4=1 . Δ t 1 = Δ t 2 = Δ t 3 = Δ t 4 = 1.
步骤二:写出三对角系统 (4.28)。 未知量取 [ Π ¨ 2 ( t 2 ) , Π ¨ 3 ( t 3 ) , Π ¨ 4 ( t 4 ) ] T \big[\ddot\Pi_2(t_2),\ \ddot\Pi_3(t_3),\ \ddot\Pi_4(t_4)\big]^{\mathrm T} [ Π ¨ 2 ( t 2 ) , Π ¨ 3 ( t 3 ) , Π ¨ 4 ( t 4 ) ] T ,代入 定理 4.2.H 给出的 A A A 、b b b :
A = [ 1 1 / 6 0 0 2 / 3 1 / 6 0 1 / 6 1 ] , b = [ 2 − 1 − 1 ] A=\begin{bmatrix}1&1/6&0\ 0&2/3&1/6\ 0&1/6&1\end{bmatrix},\qquad b=\begin{bmatrix}2\-1\-1\end{bmatrix} A = 1 0 0 1/6 2/3 1/6 0 1/6 1 , b = 2 − 1 − 1
(与官方解答一致;A A A 的元素只依赖 Δ t k \Delta t_k Δ t k ,故对所有关节相同 。)
步骤三:解出加速度。 前向 / 后向代入得
Π ¨ 2 ( t 2 ) = 51 23 ≈ 2.2174 , Π ¨ 3 ( t 3 ) = − 30 23 ≈ − 1.3043 , Π ¨ 4 ( t 4 ) = − 18 23 ≈ − 0.7826. \ddot\Pi_2(t_2)=\frac{51}{23}\approx2.2174,\qquad \ddot\Pi_3(t_3)=-\frac{30}{23}\approx-1.3043,\qquad \ddot\Pi_4(t_4)=-\frac{18}{23}\approx-0.7826 . Π ¨ 2 ( t 2 ) = 23 51 ≈ 2.2174 , Π ¨ 3 ( t 3 ) = − 23 30 ≈ − 1.3043 , Π ¨ 4 ( t 4 ) = − 23 18 ≈ − 0.7826.
步骤四:写出四段多项式 (每段以该段起点为基点,τ = t − t k \tau=t-t_k τ = t − t k ):
段 区间 Π k ( τ ) \Pi_k(\tau) Π k ( τ )
Π 1 \Pi_1 Π 1 [ 0 , 1 ] [0,1] [ 0 , 1 ] 3 8 τ 3 \dfrac{3}{8}\tau^3 8 3 τ 3
Π 2 \Pi_2 Π 2 [ 1 , 2 ] [1,2] [ 1 , 2 ] 3 8 + 9 8 τ + 9 8 τ 2 − 5 8 τ 3 \dfrac{3}{8}+\dfrac{9}{8}\tau+\dfrac{9}{8}\tau^2-\dfrac{5}{8}\tau^3 8 3 + 8 9 τ + 8 9 τ 2 − 8 5 τ 3
Π 3 \Pi_3 Π 3 [ 2 , 3 ] [2,3] [ 2 , 3 ] 2 + 3 2 τ − 3 4 τ 2 + 1 8 τ 3 2+\dfrac{3}{2}\tau-\dfrac{3}{4}\tau^2+\dfrac{1}{8}\tau^3 2 + 2 3 τ − 4 3 τ 2 + 8 1 τ 3
Π 4 \Pi_4 Π 4 [ 3 , 4 ] [3,4] [ 3 , 4 ] 23 8 + 3 8 τ − 3 8 τ 2 + 1 8 τ 3 \dfrac{23}{8}+\dfrac{3}{8}\tau-\dfrac{3}{8}\tau^2+\dfrac{1}{8}\tau^3 8 23 + 8 3 τ − 8 3 τ 2 + 8 1 τ 3
验算 (全部通过,见 verify_ch04_traj.py 第 5 组):
插值 :q ( 0 ) = 0 q(0)=0 q ( 0 ) = 0 、q ( 2 ) = 2 q(2)=2 q ( 2 ) = 2 、q ( 4 ) = 3 q(4)=3 q ( 4 ) = 3 是;
端点 :q ˙ ( 0 ) = q ˙ ( 4 ) = 0 \dot q(0)=\dot q(4)=0 q ˙ ( 0 ) = q ˙ ( 4 ) = 0 、q ¨ ( 0 ) = q ¨ ( 4 ) = 0 \ddot q(0)=\ddot q(4)=0 q ¨ ( 0 ) = q ¨ ( 4 ) = 0 是;
内部连续性 :在 t = 1 , 2 , 3 t=1,2,3 t = 1 , 2 , 3 处位置、速度、加速度 三重连续 是(这正是样条区别于 4.2.2.1 /4.2.2.2 两路线的定义性特征);
虚拟点值 (未被指定,由连续性解出):q ( t 2 ) = 3 / 8 q(t_2)=3/8 q ( t 2 ) = 3/8 、q ( t 4 ) = 23 / 8 q(t_4)=23/8 q ( t 4 ) = 23/8 ——它们不是路径点 ,只是连续性约束的产物。
题目 :q ( 0 ) = 0 , q ( 2 ) = 2 , q ( 4 ) = 3 q(0)=0,\ q(2)=2,\ q(4)=3 q ( 0 ) = 0 , q ( 2 ) = 2 , q ( 4 ) = 3 ,初始与最终速度为零。
结构与记号 (定义 4.2.7 ):三段之间用线性段连接,在三个路径点处各用一段持续 2 × ( Δ t k ′ / 2 ) 2\times(\Delta t'_k/2) 2 × ( Δ t k ′ /2 ) 的抛物线过渡。取官方解答的 Δ t k ′ = 0.2 \Delta t'_k=0.2 Δ t k ′ = 0.2 (k = 1 , 2 , 3 k=1,2,3 k = 1 , 2 , 3 ),Δ t 1 = Δ t 2 = 2 \Delta t_1=\Delta t_2=2 Δ t 1 = Δ t 2 = 2 。
步骤一:线性段速度 (相邻路径点的斜率;端点速度由题设为零):
q ˙ i = 0 , q ˙ 1 , 2 = 2 − 0 2 = 1 , q ˙ 2 , 3 = 3 − 2 2 = 1 2 , q ˙ f = 0. \dot q_i=0,\qquad \dot q_{1,2}=\frac{2-0}{2}=1,\qquad \dot q_{2,3}=\frac{3-2}{2}=\frac{1}{2},\qquad \dot q_f=0 . q ˙ i = 0 , q ˙ 1 , 2 = 2 2 − 0 = 1 , q ˙ 2 , 3 = 2 3 − 2 = 2 1 , q ˙ f = 0.
步骤二:线性段系数 (a k 0 = q k a_{k0}=q_k a k 0 = q k ,a k 1 = q ˙ k , k + 1 a_{k1}=\dot q_{k,k+1} a k 1 = q ˙ k , k + 1 ):
a 10 = 0 , a 11 = 1 ; a 20 = 2 , a 21 = 1 2 . a_{10}=0,\ a_{11}=1;\qquad a_{20}=2,\ a_{21}=\frac{1}{2}. a 10 = 0 , a 11 = 1 ; a 20 = 2 , a 21 = 2 1 .
步骤三:抛物线系数 (由 定义 4.2.7 的 (4.29)(4.30) 与速度连续性导出):
b k 1 = q ˙ k , k + 1 + q ˙ k − 1 , k 2 , b k 2 = q ˙ k , k + 1 − q ˙ k − 1 , k 2 Δ t k ′ , b k 0 = q k + ( q ˙ k , k + 1 − q ˙ k − 1 , k ) Δ t k ′ 8 b_{k1}=\frac{\dot q_{k,k+1}+\dot q_{k-1,k}}{2},\qquad b_{k2}=\frac{\dot q_{k,k+1}-\dot q_{k-1,k}}{2\Delta t'_k},\qquad b_{k0}=q_k+\frac{(\dot q_{k,k+1}-\dot q_{k-1,k}),\Delta t'_k}{8} b k 1 = 2 q ˙ k , k + 1 + q ˙ k − 1 , k , b k 2 = 2Δ t k ′ q ˙ k , k + 1 − q ˙ k − 1 , k , b k 0 = q k + 8 ( q ˙ k , k + 1 − q ˙ k − 1 , k ) Δ t k ′
代入得(与官方解答逐项一致):
k k k b k 0 b_{k0} b k 0 b k 1 b_{k1} b k 1 b k 2 b_{k2} b k 2
1 0.025 0.025 0.025 0.5 0.5 0.5 2.5 2.5 2.5
2 1.9875 1.9875 1.9875 0.75 0.75 0.75 − 1.25 -1.25 − 1.25
3 2.9875 2.9875 2.9875 0.25 0.25 0.25 − 1.25 -1.25 − 1.25
验算 (verify_ch04_traj.py 第 6 组):
抛物线在 τ = ± Δ t k ′ / 2 \tau=\pm\Delta t'_k/2 τ = ± Δ t k ′ /2 处与相邻线性段的位置、速度都连续 是;
经由点不是路径点 :抛物线顶点值为 b k 0 b_{k0} b k 0 ,与 q k q_k q k 的偏差恰为 ( q ˙ k , k + 1 − q ˙ k − 1 , k ) Δ t k ′ 8 \dfrac{(\dot q_{k,k+1}-\dot q_{k-1,k})\Delta t'_k}{8} 8 ( q ˙ k , k + 1 − q ˙ k − 1 , k ) Δ t k ′ ——第 2 点处 2 − 1.9875 = 0.0125 2-1.9875=0.0125 2 − 1.9875 = 0.0125 ,第 3 点处 3 − 2.9875 = 0.0125 3-2.9875=0.0125 3 − 2.9875 = 0.0125 。轨迹从路径点附近经过而非到达 (定义 4.2.7 ),这正是「经由点」一词的由来;
若把 Δ t k ′ \Delta t'_k Δ t k ′ 调大(如 0.6 0.6 0.6 ),削角更多、加速度更小;调小则更贴近路径点、加速度更大(教材图 4.9 的实线 / 虚线对比)。
4.1 4.5 4.6
类型 点对点 系列点 · 样条 系列点 · 抛物线混合
多项式阶次 五次 三次(×4 段) 一次 + 二次
约束 位置/速度/加速度 × 两端 位置 ×3 + 端点速度/加速度 + 内部 C 1 / C 2 C^1/C^2 C 1 / C 2 位置 ×3 + 端点速度 + 交点 C 0 / C 1 C^0/C^1 C 0 / C 1
加速度连续 —(单段) 是 否(跳跃)
是否过路径点 是(两端) 是(全部) 否 (经由点)
算力 解 6 元系统 解 N N N 元三对角 系统 逐点解析、无需解方程
出处 4.2.1.2 4.2.2.3 4.2.2.4
一句话 :4.1 考「数约束、解系数」;4.5 考「方程比未知数多 2 时用虚拟点、并降到三对角」;4.6 考「梯形速度曲线推广到多点时会削角」。三题合起来正好覆盖本章「关节空间」的全部要点。