Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2.5 角和轴

欧拉角的代价是奇点与多支解。本节换一种 4 参数表示——角和轴:绕任意单位轴 r\boldsymbol r 转 ϑ\vartheta。它没有解析奇点(除 sin⁡ϑ=0\sin\vartheta=0),而且对姿态轨迹规划很友好:轴固定、角单调,插值直观(例 2.5.C)。录播 0:21:53–0:30:07。

2.5.1 定义与五步合成

定义 2.5.1 · 角和轴表示

任一旋转都可由旋转轴的单位向量 r=[rx ry rz]T\boldsymbol r=[r_x\ r_y\ r_z]^T(相对参考系 O-xyzO\text{-}xyz)与旋转角 ϑ\vartheta(绕 r\boldsymbol r 逆时针为正)共同表示,记作 R(ϑ,r)R(\vartheta,\boldsymbol r)。两者合起来共 4 个参数(1+31+3),超出了最简表示的 3 个,故为非最简表示;但 r\boldsymbol r 受单位模长约束 rx2+ry2+rz2=1r_x^2+r_y^2+r_z^2=1(原书式 2.29),扣掉这一约束后独立参数恰好仍是 3 个。

困难在于:我们只会写绕坐标轴的基本旋转。思路(原书图 2.10)是先把 r\boldsymbol r 转到与 zz 轴重合,再绕 zz 转 ϑ\vartheta,最后转回原位。由于全部步骤都绕固定坐标系的轴进行,按 原理 2.3.B 应一律左乘(录播 0:25:05–0:25:51 老师特别强调「这一次都是绕固定坐标转,是一次左乘」,与 ZYZ 的右乘形成对照):

  1. 绕 zz 转 −α-\alpha,再绕 yy 转 −β-\beta:把 r\boldsymbol r 转到与 zz 一致;
  2. 绕 zz 转 ϑ\vartheta(此时就绕着原轴 r\boldsymbol r 转);
  3. 绕 yy 转 β\beta,再绕 zz 转 α\alpha:把轴转回 r\boldsymbol r 的初始指向。

R(ϑ,r)=Rz(α) Ry(β) Rz(ϑ) Ry(−β) Rz(−α)(原书式 2.24)R(\vartheta,\boldsymbol r)=R_z(\alpha),R_y(\beta),R_z(\vartheta),R_y(-\beta),R_z(-\alpha)\qquad(\text{原书式 }2.24)

其中 α,β\alpha,\beta 由 r\boldsymbol r 的分量决定(几何关系见图 2.10):

sin⁡α=ryrx2+ry2,cos⁡α=rxrx2+ry2,sin⁡β=rx2+ry2,cos⁡β=rz.\sin\alpha=\frac{r_y}{\sqrt{r_x^2+r_y^2}},\quad \cos\alpha=\frac{r_x}{\sqrt{r_x^2+r_y^2}},\qquad \sin\beta=\sqrt{r_x^2+r_y^2},\quad \cos\beta=r_z .

下图左给出 α,β\alpha,\beta 的几何定义——α\alpha 是 r\boldsymbol r 在 xyxy 面投影的方位角,β\beta 是仰角;下图右把五步序列画成一张流程图,说的就是「把轴借到 zz 上、转完再还回去」。

角和轴表示的几何与五步合成 左图:单位轴 r 相对参考系的方位角 α(在 xy 面内从 x 轴量到 r 的投影)与仰角 β(r 离开 xy 面的角度),绕 r 的转角 ϑ 用环形箭头表示。右图:五步左乘序列 Rz(−α)、Ry(−β)、Rz(ϑ)、Ry(β)、Rz(α),前三步把 r 转到 z 上并转 ϑ,后两步转回。 (ϑ, r) 的几何:一根轴 + 一个角 五步合成(原书式 2.24) x y z r(单位轴) α β ϑ α:从 x 轴到 r 投影的方位角;β:r 的仰角;ϑ:绕 r 的转角 ① Rz(−α) ② Ry(−β) ③ Rz(ϑ) ④ Ry(β) ⑤ Rz(α) 把 r 转到与 z 重合 此刻绕 z = 绕原轴 r 转 ϑ 把轴转回 r 的初始指向 五步全绕固定轴 → 依次左乘(对照 ZYZ 的右乘)
角和轴表示(本教程绘):左图定义 (ϑ,r)(\vartheta,\boldsymbol r) 的几何——α,β\alpha,\beta 定轴、ϑ\vartheta 定角;右图给出「借轴—转角—还轴」的五步序列。因为每一步都绕固定轴,整条链按 原理 2.3.B 依次左乘。

把它们代入式 2.24,α,β\alpha,\beta 全部消去,便得到只依赖 (ϑ,r)(\vartheta,\boldsymbol r) 的显式矩阵(原书式 2.25,即 Rodrigues 公式)。原书把这一步推导留作习题 2.4,本编在下方直接给出完整推导;2.5.3 还会交代它的泰勒级数来历。

R(ϑ,r)=[rx2(1−cϑ)+cϑrxry(1−cϑ)−rzsϑrxrz(1−cϑ)+rysϑrxry(1−cϑ)+rzsϑry2(1−cϑ)+cϑryrz(1−cϑ)−rxsϑrxrz(1−cϑ)−rysϑryrz(1−cϑ)+rxsϑrz2(1−cϑ)+cϑ]R(\vartheta,\boldsymbol r)=\begin{bmatrix} r_x^2(1-c_\vartheta)+c_\vartheta & r_xr_y(1-c_\vartheta)-r_zs_\vartheta & r_xr_z(1-c_\vartheta)+r_ys_\vartheta\ r_xr_y(1-c_\vartheta)+r_zs_\vartheta & r_y^2(1-c_\vartheta)+c_\vartheta & r_yr_z(1-c_\vartheta)-r_xs_\vartheta\ r_xr_z(1-c_\vartheta)-r_ys_\vartheta & r_yr_z(1-c_\vartheta)+r_xs_\vartheta & r_z^2(1-c_\vartheta)+c_\vartheta \end{bmatrix}

结构记忆法

对角线 = ri2(1−cϑ)+cϑr_i^2(1-c_\vartheta)+c_\vartheta;非对角 = rirj(1−cϑ) ± r_ir_j(1-c_\vartheta)\ \pm\ 「剩余那根轴的分量 × sϑs_\vartheta」,反对称部分的符号由叉积 r×\boldsymbol r\times 决定。校验两个特例:r=z\boldsymbol r=\boldsymbol z 时退化为 Rz(ϑ)R_z(\vartheta);ϑ=0\vartheta=0 时退化为 I3I_3。

推导这九个元素不必硬乘五个矩阵。先立一件工具,再走五步。

定义 2.5.2 · 叉乘算子 S(ω)S(\omega)(反对称矩阵)

对任意三维向量 ω\omega,定义 3×33\times3 矩阵

S(ω)=[0−ωzωyωz0−ωx−ωyωx0],满足 S(ω) p≡ω×p  (∀p∈R3).S(\omega)=\begin{bmatrix}0&-\omega_z&\omega_y\\ \omega_z&0&-\omega_x\\ -\omega_y&\omega_x&0\end{bmatrix},\qquad\text{满足 } S(\omega)\,p\equiv\omega\times p\ \ (\forall p\in\mathbb R^3).

(逐列验证:第 1 列 S(ω)x=ω×x=[0,ωz,−ωy]TS(\omega)\boldsymbol x=\omega\times\boldsymbol x=[0,\omega_z,-\omega_y]^{\mathrm T},恰为矩阵的第 1 列;其余两列同法。)S(ω)S(\omega) 满足 ST(ω)=−S(ω)S^{\mathrm T}(\omega)=-S(\omega),即反对称矩阵:对角线恒为零、非对角元素镜像反号;此外还有 S(ω)=−S(−ω)S(\omega)=-S(-\omega)。第 3 章将证明 S(ω)S(\omega) 正是角速度的矩阵化身(定义 3.1.2);本节先把它当作「把叉积装进矩阵代数」的纯工具。

证明 · 从五步合成到 Rodrigues 矩阵(本编补充,对应原书习题 2.4)

第 0 步(工具:旋转保持叉积)。 对任意 R∈SO(3)R\in SO(3) 与向量 a,b,ca,b,c,混合积只差一个 det⁡R=1\det R=1 的因子:

(Ra×Rb)⋅(Rc)=det⁡[RaRbRc]=det⁡(R)det⁡[abc]=(a×b)⋅c.(Ra\times Rb)\cdot(Rc)=\det\begin{bmatrix}Ra&Rb&Rc\end{bmatrix}=\det(R)\det\begin{bmatrix}a&b&c\end{bmatrix}=(a\times b)\cdot c .

令 cc 取遍全部向量(RcRc 随之取遍全部向量),两个关于 cc 的线性函数处处相等,只能有 Ra×Rb=R(a×b)Ra\times Rb=R(a\times b)。翻译成叉乘算子,即共轭恒等式:对任意 ω\omega,

R S(ω) RT=S(Rω).R\,S(\omega)\,R^{\mathrm T}=S(R\omega).

(两边作用于同一任意向量 pp 核验:左 =R(ω×RTp)=(Rω)×(RRTp)=(Rω)×p==R\big(\omega\times R^{\mathrm T}p\big)=(R\omega)\times(RR^{\mathrm T}p)=(R\omega)\times p= 右。)

第 1 步(后两步 = 转置)。 记 M≜Rz(α)Ry(β)M\triangleq R_z(\alpha)R_y(\beta)(前两步之逆)。由 Rk(−ϑ)=RkT(ϑ)R_k(-\vartheta)=R_k^{\mathrm T}(\vartheta)(式 2.9),五步乘积的后两个因子 Ry(−β)Rz(−α)=RyT(β)RzT(α)=(Rz(α)Ry(β))T=MTR_y(-\beta)R_z(-\alpha)=R_y^{\mathrm T}(\beta)R_z^{\mathrm T}(\alpha)=(R_z(\alpha)R_y(\beta))^{\mathrm T}=M^{\mathrm T},故

R(ϑ,r)=Rz(α)Ry(β) Rz(ϑ) Ry(−β)Rz(−α)=M Rz(ϑ) MT.R(\vartheta,\boldsymbol r)=R_z(\alpha)R_y(\beta)\,R_z(\vartheta)\,R_y(-\beta)R_z(-\alpha)=M\,R_z(\vartheta)\,M^{\mathrm T}.

第 2 步(MM 的第三列就是 r\boldsymbol r)。 Ry(β)z=[sβ,0,cβ]T=[ρ,0,rz]TR_y(\beta)\boldsymbol z=[s_\beta,0,c_\beta]^{\mathrm T}=[\rho,0,r_z]^{\mathrm T}(ρ≜rx2+ry2\rho\triangleq\sqrt{r_x^2+r_y^2}),再左乘 Rz(α)R_z(\alpha) 并用上面 α,β\alpha,\beta 的三角关系:

Mz=Rz(α)[ρ0rz]=[ρcαρsαrz]=[rxryrz]=r.M\boldsymbol z=R_z(\alpha)\begin{bmatrix}\rho\\0\\r_z\end{bmatrix}=\begin{bmatrix}\rho c_\alpha\\ \rho s_\alpha\\ r_z\end{bmatrix}=\begin{bmatrix}r_x\\ r_y\\ r_z\end{bmatrix}=\boldsymbol r .

「把 r\boldsymbol r 借到 zz 上、转完再还回去」的矩阵语言就是:MM 把 zz 轴送到 r\boldsymbol r 上(因此也把绕 zz 的旋转共轭成绕 r\boldsymbol r 的旋转)。

第 3 步(把 Rz(ϑ)R_z(\vartheta) 拆成三件套)。 由式 2.6 直接展开:

Rz(ϑ)=cϑI+sϑS(z)+(1−cϑ) zzTR_z(\vartheta)=c_\vartheta I+s_\vartheta S(\boldsymbol z)+(1-c_\vartheta)\,\boldsymbol z\boldsymbol z^{\mathrm T}

(cϑIc_\vartheta I 给对角、sϑS(z)s_\vartheta S(\boldsymbol z) 给左下 2×2 的反对称块、(1−cϑ)zzT(1-c_\vartheta)\boldsymbol z\boldsymbol z^{\mathrm T} 把右下角补成 11,逐块相加即还原式 2.6)。

第 4 步(相似变换逐件搬运)。 把第 3 步代入第 1 步:第一件 MMT=IMM^{\mathrm T}=I 原样;第三件用第 2 步 M(zzT)MT=(Mz)(Mz)T=rrTM(\boldsymbol z\boldsymbol z^{\mathrm T})M^{\mathrm T}=(M\boldsymbol z)(M\boldsymbol z)^{\mathrm T}=\boldsymbol r\boldsymbol r^{\mathrm T};中间一件用共轭恒等式(取 ω=z\omega=\boldsymbol z)MS(z)MT=S(Mz)=S(r)MS(\boldsymbol z)M^{\mathrm T}=S(M\boldsymbol z)=S(\boldsymbol r)。合并得紧凑形式

R(ϑ,r)=cϑI+(1−cϑ) rrT+sϑ S(r).R(\vartheta,\boldsymbol r)=c_\vartheta I+(1-c_\vartheta)\,\boldsymbol r\boldsymbol r^{\mathrm T}+s_\vartheta\,S(\boldsymbol r).

第 5 步(逐元素写出)。 (rrT)ij=rirj(\boldsymbol r\boldsymbol r^{\mathrm T})_{ij}=r_ir_j 给全部「rirj(1−cϑ)r_ir_j(1-c_\vartheta)」项;S(r)S(\boldsymbol r) 的非对角元素给 ±sϑ\pm s_\vartheta 项(符号按 S(r)p=r×pS(\boldsymbol r)p=\boldsymbol r\times p 的约定)。逐元素展开即式 2.25。两个免费校验:r=z\boldsymbol r=\boldsymbol z 时三件套与第 3 步逐件相同,退化为 Rz(ϑ)R_z(\vartheta);ϑ=0\vartheta=0 时 cϑ=1c_\vartheta=1、sϑ=0s_\vartheta=0,退化为 I3I_3。□

□

紧凑形式 cϑI+(1−cϑ)rrT+sϑS(r)c_\vartheta I+(1-c_\vartheta)\boldsymbol r\boldsymbol r^{\mathrm T}+s_\vartheta S(\boldsymbol r) 把式 2.25 的九个元素打包成三件「行李」——下节求逆解、下小节的指数映射都要用它。

2.5.2 表示不唯一与逆解

定理 2.5.A · 表示不唯一(原书式 2.26)

R(−ϑ,−r)=R(ϑ,r).R(-\vartheta,-\boldsymbol r)=R(\vartheta,\boldsymbol r). 即「绕 −r-\boldsymbol r 转 −ϑ-\vartheta」与「绕 r\boldsymbol r 转 ϑ\vartheta」是同一旋转——四参数组 (ϑ,r)(\vartheta,\boldsymbol r) 与 (−ϑ,−r)(-\vartheta,-\boldsymbol r) 对应同一矩阵,表示不唯一。这也是后续单位四元数(把「半角 + 轴」打包)试图修复的缺陷之一(2.4.5 预告框)。

逆问题:已知 R=[rij]R=[r_{ij}],反求 (ϑ,r)(\vartheta,\boldsymbol r)。只需对紧凑形式算两个量即可(推导直接可查,公式不必硬背)。

取迹——S(r)S(\boldsymbol r) 对角线为零、tr⁡(rrT)=rx2+ry2+rz2=1\operatorname{tr}(\boldsymbol r\boldsymbol r^{\mathrm T})=r_x^2+r_y^2+r_z^2=1,轴被消去:

tr⁡R=3cϑ+(1−cϑ)⋅1=1+2cϑ⟹cos⁡ϑ=r11+r22+r33−12(原书式 2.27)\operatorname{tr}R=3c_\vartheta+(1-c_\vartheta)\cdot 1=1+2c_\vartheta \quad\Longrightarrow\quad \cos\vartheta=\frac{r_{11}+r_{22}+r_{33}-1}{2}\qquad(\text{原书式 }2.27)

取反对称部分——cϑIc_\vartheta I 与 (1−cϑ)rrT(1-c_\vartheta)\boldsymbol r\boldsymbol r^{\mathrm T} 都是对称矩阵,作差 R−RTR-R^{\mathrm T} 后只剩反对称件:

R−RT=2sϑ S(r)⟹r=12sin⁡ϑ[r32−r23r13−r31r21−r12](sin⁡ϑ≠0, 原书式 2.28)R-R^{\mathrm T}=2s_\vartheta,S(\boldsymbol r) \quad\Longrightarrow\quad \boldsymbol r=\frac{1}{2\sin\vartheta}\begin{bmatrix}r_{32}-r_{23}\ r_{13}-r_{31}\ r_{21}-r_{12}\end{bmatrix}\qquad(\sin\vartheta\neq 0,\ \text{原书式 }2.28)

(右端就是把 S(r)=R−RT2sϑS(\boldsymbol r)=\dfrac{R-R^{\mathrm T}}{2s_\vartheta} 的三个独立元素抄成向量。)

定理 2.5.B · 逆解的失效情形

当 sin⁡ϑ=0\sin\vartheta=0(即 ϑ=0\vartheta=0 或 π\pi)时式 2.28 失去意义,须直接从 RR 出发单独处理:

  • ϑ=0\vartheta=0(不旋转):R=I3R=I_3,任何单位向量都可充当 r\boldsymbol r——轴完全任意,表示奇异;
  • ϑ=π\vartheta=\pi:cos⁡ϑ=−1\cos\vartheta=-1、sϑ=0s_\vartheta=0,反对称部分消失(R=RTR=R^{\mathrm T} 对称),须改从对称部分求解:紧凑形式此时为 R=2rrT−I3R=2\boldsymbol r\boldsymbol r^{\mathrm T}-I_3,故 ri2=(rii+1)/2r_i^2=(r_{ii}+1)/2,轴由对角线恢复、只差整体符号(两组解 ±r\pm\boldsymbol r 都合法,公式见原书习题 2.5,本编习题 B4 给出推导)。
例 2.5.C · 规划视角的优劣账(新增;录播 0:22:56–0:23:06)

老师:「这种方式在规划或者其他方面是有优(势)的」——姿态插值时 ϑ\vartheta 线性增长、r\boldsymbol r 保持固定,末端就像「绕定轴匀速转身」,也不会有欧拉角奇点;代价则是 4 参数非最简、(0,±π)(0,\pm\pi) 处逆解失效、表示不唯一。工程上的折中做法是:规划用角和轴「想」,存储与控制用旋转矩阵或四元数「算」。

2.5.3 李代数 so(3):指数映射与对数映射(本编补充)

2.5.1 用五步合成推出了 Rodrigues 公式,2.5.2 反解出了 (ϑ,r)(\vartheta,\boldsymbol r)。本小节换一副眼镜重看同一件事:把「绕 r\boldsymbol r 转 ϑ\vartheta」想象成「以恒定角速度转过 ϑ\vartheta 这么多」,Rodrigues 公式就变成矩阵指数(指数映射),逆解公式则变成它的逆(对数映射)。这副眼镜的回报立刻就能看到——第 3 章的角速度 ω\boldsymbol\omega、四元数的「半角打包」(2.6)乃至 SE(3)SE(3) 的螺旋运动(2.7 末注),用的全都是同一套语言。

定义 2.5.3 · 李代数 so(3)

全体 3×33\times3 反对称矩阵构成的集合

so(3)≜{S∈R3×3: ST=−S}so(3)\triangleq\big\{S\in\mathbb R^{3\times3}:\ S^{\mathrm T}=-S\big\}

称为 SO(3)SO(3) 的李代数(Lie algebra)。由 定义 2.5.2,每个 S∈so(3)S\in so(3) 形如 S(ω)S(\omega) 且与 ω∈R3\omega\in\mathbb R^3 一一对应——这一对操作常记作装帽 / 摘帽(hat / vee):

ω^=S(ω)∈so(3),(S(ω))∨=ω∈R3,\hat\omega=S(\omega)\in so(3),\qquad \big(S(\omega)\big)^\vee=\omega\in\mathbb R^3,

(不少教材把 S(ω)S(\omega) 写成 [ω]×[\omega]_\times 或 ω^\hat\omega。)因此 so(3)so(3) 是一个 3 维向量空间——对加法与数乘封闭——一组自然基(生成元)是

Sx=S(x)=[00000−1010],Sy=S(y)=[001000−100],Sz=S(z)=[0−10100000],S_x=S(\boldsymbol x)=\begin{bmatrix}0&0&0\\0&0&-1\\0&1&0\end{bmatrix},\quad S_y=S(\boldsymbol y)=\begin{bmatrix}0&0&1\\0&0&0\\-1&0&0\end{bmatrix},\quad S_z=S(\boldsymbol z)=\begin{bmatrix}0&-1&0\\1&0&0\\0&0&0\end{bmatrix},

任何 S(ω)=ωxSx+ωySy+ωzSzS(\omega)=\omega_xS_x+\omega_yS_y+\omega_zS_z——「绕三根坐标轴的无穷小旋转」按分量组合出任意方向的无穷小旋转。

为什么说 so(3)so(3) 是 SO(3)SO(3) 的「微分版本」(切空间)? 把紧凑形式按小角度 δ\delta 展开(cδ≈1c_\delta\approx1、sδ≈δs_\delta\approx\delta):

R(δ,r)=I+δS(r)+O(δ2),R(\delta,\boldsymbol r)=I+\delta S(\boldsymbol r)+O(\delta^2),

同理由式 2.6–2.8 逐个验证 Rk(δ)=I+δSk+O(δ2)R_k(\delta)=I+\delta S_k+O(\delta^2)。无穷小旋转 = 单位阵 + 李代数元素;反过来,任何可微姿态轨迹 R(t)R(t) 的一阶差商 (R(δ)−I)/δ\big(R(\delta)-I\big)/\delta 的极限必落在 so(3)so(3) 里(第 3 章 定理 3.1.A 把这件事做成 R˙=S(ω)R\dot R=S(\omega)R)。用 2.2 的图像说:SO(3)SO(3) 是一张 3 维曲面,so(3)so(3) 就是它在单位元 II 处的切平面——所有「一阶姿态变化」的居所。

定理 2.5.D · 指数映射——Rodrigues 公式的第二来历

对单位轴 r\boldsymbol r(∣r∣=1|\boldsymbol r|=1)、任意角 ϑ\vartheta,矩阵指数

exp⁡(ϑS(r))≜I+ϑS+ϑ2S22!+ϑ3S33!+⋯ ,S=S(r)\exp\big(\vartheta S(\boldsymbol r)\big)\triangleq I+\vartheta S+\frac{\vartheta^2S^2}{2!}+\frac{\vartheta^3S^3}{3!}+\cdots,\qquad S=S(\boldsymbol r)

收敛且有闭式

exp⁡(ϑS(r))=I+sin⁡ϑ S+(1−cos⁡ϑ) S2.\exp\big(\vartheta S(\boldsymbol r)\big)=I+\sin\vartheta\,S+(1-\cos\vartheta)\,S^2 .

代入 S2=rrT−IS^2=\boldsymbol r\boldsymbol r^{\mathrm T}-I,即紧凑形式 cϑI+(1−cϑ)rrT+sϑS(r)c_\vartheta I+(1-c_\vartheta)\boldsymbol r\boldsymbol r^{\mathrm T}+s_\vartheta S(\boldsymbol r)——与 证明 五步合成的结果逐元素相同。于是

R(ϑ,r)=exp⁡(ϑS(r)),R(\vartheta,\boldsymbol r)=\exp\big(\vartheta S(\boldsymbol r)\big),

映射 exp⁡:so(3)→SO(3)\exp:so(3)\to SO(3) 称为 (so(3)so(3) 的)指数映射;ϑS(r)\vartheta S(\boldsymbol r) 称为 R(ϑ,r)R(\vartheta,\boldsymbol r) 的指数坐标。

证明 · 幂次三循环 + 正弦余弦级数

幂次关系。 对 S=S(r)S=S(\boldsymbol r)、∣r∣=1|\boldsymbol r|=1,作用到任意向量 pp 上用二重叉积公式 r×(r×p)=(r⋅p)r−p\boldsymbol r\times(\boldsymbol r\times p)=(\boldsymbol r\cdot p)\boldsymbol r-p(拉格朗日公式):

S2p=r×(r×p)=(rrT−I) p⟹S2=rrT−I,S^2p=\boldsymbol r\times(\boldsymbol r\times p)=(\boldsymbol r\boldsymbol r^{\mathrm T}-I)\,p \quad\Longrightarrow\quad S^2=\boldsymbol r\boldsymbol r^{\mathrm T}-I,

再乘一次 SS:S3p=r×((r⋅p)r−p)=−r×pS^3p=\boldsymbol r\times\big((\boldsymbol r\cdot p)\boldsymbol r-p\big)=-\boldsymbol r\times p(r\boldsymbol r 叉自己为零),故

S3=−S.S^3=-S .

幂次就此「三循环」:S, S2, −S, −S2, S, …S,\ S^2,\ -S,\ -S^2,\ S,\ \dots

级数按奇偶分家。 把 exp⁡(ϑS)\exp(\vartheta S) 的各项按含 SS 还是 S2S^2 归堆(S4=−S2S^4=-S^2、S5=SS^5=S,依此循环):

exp⁡(ϑS)=I+(ϑ−ϑ33!+ϑ55!−⋯)S+(ϑ22!−ϑ44!+⋯)S2=I+sin⁡ϑ S+(1−cos⁡ϑ) S2,\exp(\vartheta S)=I+\Big(\vartheta-\frac{\vartheta^3}{3!}+\frac{\vartheta^5}{5!}-\cdots\Big)S+\Big(\frac{\vartheta^2}{2!}-\frac{\vartheta^4}{4!}+\cdots\Big)S^2=I+\sin\vartheta\,S+(1-\cos\vartheta)\,S^2 ,

两个括号正是 sin⁡ϑ\sin\vartheta 与 1−cos⁡ϑ1-\cos\vartheta 的泰勒级数。□

□
定理 2.5.E · 对数映射——逆解公式的来历

设 R∈SO(3)R\in SO(3) 且 sin⁡ϑ≠0\sin\vartheta\neq0(ϑ≠0,π\vartheta\neq0,\pi)。则

log⁡R=ϑ S(r)=ϑ2sin⁡ϑ (R−RT),ϑ=arccos⁡tr⁡R−12,\log R=\vartheta\,S(\boldsymbol r)=\frac{\vartheta}{2\sin\vartheta}\,\big(R-R^{\mathrm T}\big),\qquad \vartheta=\arccos\frac{\operatorname{tr}R-1}{2},

称对数映射 log⁡:SO(3)→so(3)\log:SO(3)\to so(3)——就是 2.5.2 两条逆解公式(式 2.27–2.28)的打包写法:「帽子」ϑS(r)\vartheta S(\boldsymbol r) 的摘帽结果即 (ϑ,r)(\vartheta,\boldsymbol r)。

失效点与 exp⁡\exp 的多值性一致:ϑ=0\vartheta=0 时 exp⁡(0)=I\exp(\boldsymbol 0)=I 对任意 r\boldsymbol r 成立(零元对应所有轴——对数不唯一,即 定理 2.5.B 的表示奇异);ϑ=π\vartheta=\pi 时 R=2rrT−IR=2\boldsymbol r\boldsymbol r^{\mathrm T}-I 对称,r\boldsymbol r 与 −r-\boldsymbol r 同样合法(对数二值),须从对角线 ri2=(rii+1)/2r_i^2=(r_{ii}+1)/2 恢复(习题 B4)。

指数映射与对数映射:so(3) 与 SO(3) 的关系 左图:SO(3) 示意为一块曲面,单位元 I 处的切平面是 so(3);切平面中的向量 ϑS(r) 经指数映射(沿曲面转 ϑ)到达旋转矩阵 R,虚线箭头返回为对数映射。右图:管道图——角和轴 (ϑ, r) 装帽得 ϑS(r),经指数映射得 R,反向为对数映射;角速度 ω 也住在 so(3),第 3 章的 R′ = S(ω)R 即其动态版本。 SO(3) 与它的切空间 so(3)(示意) 一张图记全:hat / vee、exp / log SO(3):全体姿态(3 维曲面) so(3):I 处切平面(无穷小旋转) I R ϑS(r) exp:绕 r 转 ϑ(式 2.25 / 定理 D) log:取迹求角 + 反对称求轴(定理 E) (ϑ, r) 角和轴(4−1 参数) ϑ·S(r) so(3)(3 参数) 装帽 摘帽 R(ϑ, r) SO(3)(9−6 约束) exp log ω(角速度)也住在这里 第 3 章 R′ = S(ω)R (运动中的李代数元素) 幂次三循环 S³ = −S 把 exp 的级数折成 sin / cos(定理 D) 插值与求导在 so(3) 里做(线性、无奇点),算完再 exp 回 SO(3)
指数 / 对数映射(本教程绘):左——SO(3)SO(3) 示意为曲面,so(3)so(3) 是它在单位元 II 处的切平面;ϑS(r)\vartheta S(\boldsymbol r) 是切平面内的向量,exp⁡\exp「沿曲面转 ϑ\vartheta」把它送到 R(ϑ,r)R(\vartheta,\boldsymbol r),log⁡\log 沿原路返回。右——(ϑ,r)(\vartheta,\boldsymbol r) 装帽进 so(3)so(3)、经 exp⁡\exp 到 SO(3)SO(3);角速度 ω\boldsymbol\omega 也住在 so(3)so(3)(第 3 章 R˙=S(ω)R\dot R=S(\boldsymbol\omega)R)。
这套语言买了什么(与全书的接口)
  1. 两条推导路合流:五步合成(几何,证明)与泰勒级数(分析,定理 2.5.D)殊途同归到 R(ϑ,r)=exp⁡(ϑS(r))R(\vartheta,\boldsymbol r)=\exp(\vartheta S(\boldsymbol r))。以后见「Rodrigues 公式」,两副眼镜随取随用。

  2. 角速度住在 so(3)so(3) 里:第 3 章将证明 R˙=S(ω)R\dot R=S(\boldsymbol\omega)R(定理 3.1.A)——姿态轨迹的一阶增量除以 dt\mathrm dt 得到的正是李代数元素。「ω\boldsymbol\omega 不是任何『角度向量』的导数」(3.6.3 的注意点)在这副眼镜里的解释:旋转不可交换(2.3),不同时刻的无穷小旋转不能简单累加出一条「角度坐标」。

  3. 不可交换的残留物 = 李括号:so(3)so(3) 不止是向量空间,还自带一种乘法——李括号 [A,B]=AB−BA[A,B]=AB-BA。在 so(3)so(3) 上:作用到任意 pp,S(a)S(b)p=a×(b×p)=b (a⋅p)−(a⋅b) pS(a)S(b)p=a\times(b\times p)=b\,(a\cdot p)-(a\cdot b)\,p,即 S(a)S(b)=baT−(a⋅b)IS(a)S(b)=ba^{\mathrm T}-(a\cdot b)I;与交换 a,ba,b 的结果相减,常数项抵消:

    [S(a),S(b)]=S(a)S(b)−S(b)S(a)=baT−abT=S(a×b).[S(a),S(b)]=S(a)S(b)-S(b)S(a)=ba^{\mathrm T}-ab^{\mathrm T}=S(a\times b).

    so(3)so(3) 的李括号就是叉积——「代数」二字的含义所在,也是 2.3 的旋转不可交换在无穷小层面留下的痕迹(括号不为零)。

  4. SE(3)SE(3) 有同款:2.7 的齐次变换群 SE(3)SE(3) 有自己的李代数 se(3)se(3)(见该节末注),指数映射给出螺旋运动——后续章节的「空间速度 / 旋量」即源于此。

默写点 · 合上书再写(主动回忆)

不看正文与速查卡,先写出下面几条,再展开核对。写不出来就说明这一节还没「拿走」。

  1. 写出把任意轴 r\boldsymbol r 转到 zz 轴的五步左乘序列。
  2. 由 RR 求 ϑ\vartheta 与 r\boldsymbol r 的公式各是什么(各自用 RR 的哪部分)?
  3. ϑ=0\vartheta=0 与 ϑ=π\vartheta=\pi 各出什么问题?
  4. 写出 Rodrigues 紧凑形式与 exp⁡(ϑS(r))\exp\big(\vartheta S(\boldsymbol r)\big) 的闭式;S(r)S(\boldsymbol r) 的幂次有何规律?
核对

Rz(α)Ry(β)Rz(ϑ)Ry(−β)Rz(−α)R_z(\alpha)R_y(\beta)R_z(\vartheta)R_y(-\beta)R_z(-\alpha)——全绕固定轴,左乘。

取迹求角:cos⁡ϑ=(r11+r22+r33−1)/2\cos\vartheta=(r_{11}+r_{22}+r_{33}-1)/2;取反对称部分求轴:r=12sϑ[r32−r23, r13−r31, r21−r12]T\boldsymbol r=\frac{1}{2s_\vartheta}[r_{32}-r_{23},\ r_{13}-r_{31},\ r_{21}-r_{12}]^{\mathrm T}。

ϑ=0\vartheta=0:R=IR=I,轴完全任意(表示奇异);ϑ=π\vartheta=\pi:R=RTR=R^{\mathrm T}、反对称部分为零,轴无法由该式恢复,须用对称部分(ri2=(rii+1)/2r_i^2=(r_{ii}+1)/2)另解。

紧凑形式 cϑI+(1−cϑ)rrT+sϑS(r)c_\vartheta I+(1-c_\vartheta)\boldsymbol r\boldsymbol r^{\mathrm T}+s_\vartheta S(\boldsymbol r);exp⁡(ϑS)=I+sin⁡ϑ S+(1−cos⁡ϑ) S2\exp(\vartheta S)=I+\sin\vartheta\,S+(1-\cos\vartheta)\,S^2;幂次三循环 S2=rrT−IS^2=\boldsymbol r\boldsymbol r^{\mathrm T}-I、S3=−SS^3=-S——级数因此折成 sin⁡\sin / cos⁡\cos。

2.5 小结与常见错误

  • 一条主线:任意旋转 = 一根轴 + 一个角 → 借 zz 轴五步左乘合成 → 消去 α,β\alpha,\beta 得 Rodrigues 矩阵(紧凑形式 cI+(1−c)rrT+sS(r)cI+(1-c)\boldsymbol r\boldsymbol r^{\mathrm T}+sS(\boldsymbol r))→ 迹求角、反对称部分求轴。
  • 李代数一句话:R(ϑ,r)=exp⁡(ϑS(r))R(\vartheta,\boldsymbol r)=\exp(\vartheta S(\boldsymbol r)),逆解 = log⁡\log;角速度 ω\boldsymbol\omega 也住在 so(3)so(3)(第 3 章 R˙=S(ω)R\dot R=S(\boldsymbol\omega)R)。
  • 失效点:ϑ=0\vartheta=0 轴任意(exp⁡\exp 零元多值);ϑ=π\vartheta=\pi 反对称部分为零(log⁡\log 二值,从对角线恢复);(ϑ,r)≡(−ϑ,−r)(\vartheta,\boldsymbol r)\equiv(-\vartheta,-\boldsymbol r) 不唯一。
常见错误清单 · 自查三条
  1. 把五步序列写成右乘——每一步都绕固定轴,必须左乘(对照 ZYZ 的右乘,录播 0:25:40 专门对比过);
  2. 由式 2.28 求 r\boldsymbol r 后忘记归一化校验 ∣r∣=1|\boldsymbol r|=1——它是检验 RR 是否为合法旋转矩阵的免费手段;
  3. 认为 4 个参数「比欧拉角多所以更差」——多 1 个参数换来的是无奇点(ϑ≠0,π\vartheta\neq0,\pi 时)与规划友好性,参数个数与表示质量不是一回事。