1.2 - 坐标变换基础

机器人机构学

刚体运动学是机器人结构学与运动学的基础,核心在于描述刚体的位姿及杆件之间的相对运动。


本文承接机构学的数学基础 ,先介绍机器人的位形空间与刚体位姿的基本概念,再聚焦刚体姿态的四种数学描述(旋转矩阵、欧拉角、等效轴-角、单位四元数)及其相互映射关系。本篇不讨论速度层面的正/逆运动学,相关内容后续展开。

1. 位形空间

机器人的位形(configuration)是机器人上每个点位的全体集合。包含所有可能位形的 nn 维空间称为位形空间(C-space, configuration space)。机器人的位形用 C-space 中的一个特征点表示。

1.1 拓扑空间结构

C-space 的拓扑结构是空间本身的基本几何属性,与参考坐标系的选择无关。四种典型的拓扑空间结构:

符号含义示例
Rn\mathbb{R}^nnn 维欧几里得空间平面上动点的 C-space:R2\mathbb{R}^2
SnS^nn+1n+1 维空间内的 nn 维球面球面上一点的 C-space:S2S^2
Tn=S1×S1×⋯T^n = S^1 \times S^1 \times \cdotsnn 维环面2R 机器人的 C-space:T2=S1×S1T^2 = S^1 \times S^1
正交积形式低维空间组合平面刚体的 C-space:R2×S1\mathbb{R}^2 \times S^1

判断机器人 C-space 的方法:列出所有独立的位置参数及其取值范围,识别每个参数对应的拓扑结构,最后取正交积。

1.2 显式与隐式参数化

C-space 的解析表示有两种形式:

形式做法优点缺点
显式参数化(局部坐标)用 nn 个独立参数直接表示 nn 维空间参数少,无冗余难以对闭链机构建模;易产生奇异
隐式参数化(全局坐标)将 nn 维空间嵌入 mm 维欧氏空间(m>nm > n),附加 m−nm-n 个约束方程容易建模(只需写出约束方程);无奇异参数冗余

以单位球面为例:显式参数化用经纬度 (φ,θ)(\varphi, \theta) 两个独立参数;隐式参数化用三维坐标 (x,y,z)(x,y,z) 外加约束方程 x2+y2+z2=1x^2 + y^2 + z^2 = 1。

1.3 闭环方程与 Pfaffian 约束

对于 nn 自由度的单环或多环机器人,C-space 可隐式表示为列向量 q=(q1,q2,…,qn)T\boldsymbol{q} = (q_1, q_2, \ldots, q_n)^{\mathrm{T}} ,其 kk 个独立位移约束方程的展开形式为:

f(q)=[f1(q1,q2,…,qn)f2(q1,q2,…,qn)⋮fk(q1,q2,…,qn)]=0,k≤n\boldsymbol{f}(\boldsymbol{q}) =\begin{bmatrix}f_1(q_1, q_2, \ldots, q_n) \\f_2(q_1, q_2, \ldots, q_n) \\\vdots \\f_k(q_1, q_2, \ldots, q_n)\end{bmatrix}= \boldsymbol{0}, \quad k \leq n

此即闭环方程(loop-closure equations)。每个方程 fi(q)=0f_i(\boldsymbol{q}) = 0 约束一个由关节运动链闭合形成的位移关系。这类可直接写成 f(q)=0\boldsymbol{f}(\boldsymbol{q}) = \boldsymbol{0} 形式的约束称为 完整约束(holonomic constraints)——它直接限制 C-space 中的位形,将独立自由度数从 nn 降为 n−kn-k。

对闭环方程两边关于关节参数 q\boldsymbol{q} 求微分,由链式法则展开得:

∂f∂qq˙=[∂f1∂q1∂f1∂q2⋯∂f1∂qn∂f2∂q1∂f2∂q2⋯∂f2∂qn⋮⋮⋱⋮∂fk∂q1∂fk∂q2⋯∂fk∂qn][q˙1q˙2⋮q˙n]=0\frac{\partial \boldsymbol{f}}{\partial \boldsymbol{q}} \dot{\boldsymbol{q}} =\begin{bmatrix}\frac{\partial f_1}{\partial q_1} & \frac{\partial f_1}{\partial q_2} & \cdots & \frac{\partial f_1}{\partial q_n} \\\frac{\partial f_2}{\partial q_1} & \frac{\partial f_2}{\partial q_2} & \cdots & \frac{\partial f_2}{\partial q_n} \\\vdots & \vdots & \ddots & \vdots \\\frac{\partial f_k}{\partial q_1} & \frac{\partial f_k}{\partial q_2} & \cdots & \frac{\partial f_k}{\partial q_n}\end{bmatrix}\begin{bmatrix} \dot{q}_1 \\ \dot{q}_2 \\ \vdots \\ \dot{q}_n \end{bmatrix}= \boldsymbol{0}

记 A(q)=∂f∂q∈Rk×n\boldsymbol{A}(\boldsymbol{q}) = \frac{\partial \boldsymbol{f}}{\partial \boldsymbol{q}} \in \mathbb{R}^{k \times n} ,得速度层面的约束方程:

A(q)q˙=0\boldsymbol{A}(\boldsymbol{q})\dot{\boldsymbol{q}} = \boldsymbol{0}

形如 A(q)q˙=0\boldsymbol{A}(\boldsymbol{q})\dot{\boldsymbol{q}} = \boldsymbol{0} 的速度约束方程统称为 Pfaffian 约束 。Pfaffian 约束按是否可积分为两类:

类型判别条件特征
可积 Pfaffian 约束(完整约束的速度形式)A(q)\boldsymbol{A}(\boldsymbol{q}) 是某个 f(q)\boldsymbol{f}(\boldsymbol{q}) 的雅可比矩阵(即 A=∂f/∂q\boldsymbol{A} = \partial\boldsymbol{f}/\partial\boldsymbol{q})速度约束可积回位移约束 f(q)=0\boldsymbol{f}(\boldsymbol{q}) = \boldsymbol{0};既减少速度维数,也减少 C-space 维数
不可积 Pfaffian 约束(非完整约束)不存在 f(q)\boldsymbol{f}(\boldsymbol{q}) 使 A=∂f/∂q\boldsymbol{A} = \partial\boldsymbol{f}/\partial\boldsymbol{q} 恒成立速度约束不可积分为纯位移约束;只减少速度维数,不减少 C-space 维数

硬币在平面上无滑动的纯滚动是典型的非完整约束:位形参数 q=(x,y,ϕ,θ)T\boldsymbol{q} = (x, y, \phi, \theta)^{\mathrm{T}}(C-space 为 R2×T2\mathbb{R}^2 \times T^2,四维)。无滑动条件要求接触点速度为零:

x˙=rθ˙cos⁡ϕ,y˙=rθ˙sin⁡ϕ\dot{x} = r\dot{\theta}\cos\phi,\quad \dot{y} = r\dot{\theta}\sin\phi

写成 Pfaffian 形式:

[100−rcos⁡ϕ010−rsin⁡ϕ][x˙y˙ϕ˙θ˙]=0\begin{bmatrix}1 & 0 & 0 & -r\cos\phi \\0 & 1 & 0 & -r\sin\phi\end{bmatrix}\begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{\phi} \\ \dot{\theta} \end{bmatrix}= \boldsymbol{0}

该约束矩阵 A(q)\boldsymbol{A}(\boldsymbol{q}) 不满足可积条件(不存在 f(x,y,ϕ,θ)\boldsymbol{f}(x,y,\phi,\theta) 使 ∂f/∂q=A\partial\boldsymbol{f}/\partial\boldsymbol{q} = \boldsymbol{A})。因此硬币虽然瞬时只能沿 (cos⁡ϕ,sin⁡ϕ)(\cos\phi, \sin\phi) 方向移动,但通过 ϕ\phi 的转动仍可到达平面上任意 (x,y)(x, y) ——速度维数从 4 降为 2,C-space 维数仍为 4。轮式移动机器人的运动学正是非完整约束的典型应用。

2. 描述对象

2.1 自由矢量与线矢量

刚体运动描述中,两类矢量的变换规则有本质区别:

类型特征变换规则示例
自由矢量(free vector)只有大小和方向,无固定作用线只旋转,不平移:v′=R v\boldsymbol{v}' = R\,\boldsymbol{v}角速度 ω\boldsymbol{\omega}、力偶矩 m\boldsymbol{m}
线矢量(line vector)有大小、方向与固定作用线(需指定线上一点 r\boldsymbol{r})旋转且随线上点平移:v′=R v+t×(R v)\boldsymbol{v}' = R\,\boldsymbol{v} + \boldsymbol{t} \times (R\,\boldsymbol{v})力 f\boldsymbol{f}、线速度

线矢量含有位置属性,变换时位置向量的偏移通过叉积贡献附加项。这一区别直接引出了后续旋量理论中原部与对偶部的坐标变换规则。

2.2 刚体位姿

刚体的位姿(pose)由位置与姿态两部分组成。

位置描述:空间一点 PP 在世界坐标系 {A}\{A\} 中的位置用三维向量表示:

AP=[PxPyPz]{}^A\boldsymbol{P} = \begin{bmatrix} P_x \\ P_y \\ P_z \end{bmatrix}

其三个分量分别为该点在 {A}\{A\} 三个单位坐标轴上的投影:Px=AP⋅xAP_x = {}^A\boldsymbol{P} \cdot \boldsymbol{x}_A 等。

姿态描述:在物体 {B}\{B\} 上固连一物体坐标系,通过 {B}\{B\} 相对 {A}\{A\} 的姿态来描述刚体姿态。{B}\{B\} 的三个单位坐标轴 xB,yB,zB\boldsymbol{x}_B, \boldsymbol{y}_B, \boldsymbol{z}_B 在 {A}\{A\} 中的坐标构成姿态矩阵,即旋转矩阵。

位姿描述:将位置与姿态组合,用集合 {BAR, APBORG}\{ {}^A_B R,\ {}^A\boldsymbol{P}_{B\text{ORG}} \} 或齐次变换矩阵 BAT{}^A_B T(见第 5 节)表示。

3. 旋转矩阵

3.1 定义与性质

{B}\{B\} 的三个单位坐标轴在 {A}\{A\} 中的投影组成旋转矩阵:

BAR=[AxBAyBAzB]=[r11r12r13r21r22r23r31r32r33]{}^A_B R = \begin{bmatrix}{}^A\boldsymbol{x}_B & {}^A\boldsymbol{y}_B & {}^A\boldsymbol{z}_B\end{bmatrix} =\begin{bmatrix}r_{11} & r_{12} & r_{13} \\r_{21} & r_{22} & r_{23} \\r_{31} & r_{32} & r_{33}\end{bmatrix}

各元素均为两坐标系各坐标轴夹角的余弦,故又称方向余弦矩阵(direction cosine matrix)。

旋转矩阵 R∈R3×3R \in \mathbb{R}^{3 \times 3} 的基本性质:

性质表达式含义
正交性RRT=RTR=IR R^{\mathrm{T}} = R^{\mathrm{T}} R = I列(行)向量均为单位正交向量
行列式det⁡(R)=1\det(R) = 1右手系→右手系,排除了反射变换

由正交性可推出:

  • 逆等于转置:R−1=RTR^{-1} = R^{\mathrm{T}}
  • 保长性:∥Rx∥=∥x∥\|R\boldsymbol{x}\| = \|\boldsymbol{x}\|(正交变换保持向量长度)
  • 封闭性:R1R2R_1 R_2 也是旋转矩阵
  • 不满足交换律:R1R2≠R2R1R_1 R_2 \neq R_2 R_1(一般情况)

9 个元素中仅 3 个独立——正交性提供 6 个约束方程(ri12+ri22+ri32=1r_{i1}^2 + r_{i2}^2 + r_{i3}^2 = 1 三条,ri⋅rj=0  (i≠j)\boldsymbol{r}_i \cdot \boldsymbol{r}_j = 0\;(i \neq j) 三条)。

所有旋转矩阵的集合构成三维旋转群 SO(3)SO(3)(3D rotation group):

SO(3)={R∈R3×3:RRT=I, det⁡(R)=1}SO(3) = \{ R \in \mathbb{R}^{3 \times 3} : RR^{\mathrm{T}} = I,\ \det(R) = 1 \}

3.2 应用

旋转矩阵有两类根本不同的应用——区分"谁在变"是关键。

a. 坐标系变换:同一点在不同坐标系下的坐标转换(点不动,坐标系换)。设 {B}\{B\} 相对 {A}\{A\} 的姿态为 BAR{}^A_B R,点 PP 在 {B}\{B\} 中的坐标 Bp{}^B\boldsymbol{p} 变换到 {A}\{A\} 中:

Ap=BAR  Bp{}^A\boldsymbol{p} = {}^A_B R \; {}^B\boldsymbol{p}

左乘旋转矩阵,将 {B}\{B\} 下的坐标"映射"到 {A}\{A\} 下。

b. 运动描述:同一坐标系内向量的旋转(坐标系不变,点运动)。刚体 {B}\{B\} 相对 {A}\{A\} 的旋转矩阵为 RR,对 {B}\{B\} 上的一点 Ap{}^A\boldsymbol{p} 施加与 {B}\{B\} 相同的旋转:

Ap′=R  Ap{}^A\boldsymbol{p}' = R \; {}^A\boldsymbol{p}

两类应用的区别:坐标系变换中,RR 左乘的是点在 {B}\{B\} 下的坐标;运动描述中,RR 左乘的是点在 {A}\{A\} 下的坐标。

多次变换的左乘/右乘规则:

参照系规则示例
相对固定坐标系 {A}\{A\} 的变换左乘R=R3R2R1R = R_3 R_2 R_1(后发生的左乘)
相对动坐标系 {B}\{B\} 的变换右乘R=R1R2R3R = R_1 R_2 R_3(后发生的右乘)

原因:左乘对应固定系算子(作用于当前坐标系),右乘对应动系算子(作用于物体自身)。两者依据的是同一物理事实——每次旋转都是相对当前坐标系的某一轴。

3.3 旋转算子

绕固定坐标轴 xx、yy、zz 旋转 θ\theta 角的旋转算子:

Rx(θ)=[1000cos⁡θ−sin⁡θ0sin⁡θcos⁡θ],\quadRy(θ)=[cos⁡θ0sin⁡θ010−sin⁡θ0cos⁡θ],\quadRz(θ)=[cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001]R_x(\theta) = \begin{bmatrix}1 & 0 & 0 \\0 & \cos\theta & -\sin\theta \\0 & \sin\theta & \cos\theta\end{bmatrix},\quadR_y(\theta) = \begin{bmatrix}\cos\theta & 0 & \sin\theta \\0 & 1 & 0 \\-\sin\theta & 0 & \cos\theta\end{bmatrix},\quadR_z(\theta) = \begin{bmatrix}\cos\theta & -\sin\theta & 0 \\\sin\theta & \cos\theta & 0 \\0 & 0 & 1\end{bmatrix}

记忆方法:旋转轴上对应位置为 11,该行/列其余为 00;右下角 2×22 \times 2 子矩阵中,cos⁡θ\cos\theta 在对角,−sin⁡θ-\sin\theta 在 cos⁡θ\cos\theta 右侧,sin⁡θ\sin\theta 在 cos⁡θ\cos\theta 下方(第三列右侧循环回第一列,第三行下方循环回第一行)。

验证:RzR_z 的旋转轴是 zz,因此 (3,3)(3,3) 处为 11;右下角 2×22 \times 2 子矩阵 (1:2,1:2)(1:2, 1:2) 中,cos⁡\cos 在 (1,1)(1,1) 和 (2,2)(2,2),−sin⁡-\sin 在 (1,2)(1,2)(cos⁡\cos 右侧),sin⁡\sin 在 (2,1)(2,1)(cos⁡\cos 下方)。

3.4 旋转算子的指数坐标

设刚体以角速度 ω\boldsymbol{\omega}(方向为转轴,大小为角速率)绕固定轴匀速转动,其上一点 p\boldsymbol{p} 的速度:

p˙(t)=ω×p(t)=[ω] p(t)\dot{\boldsymbol{p}}(t) = \boldsymbol{\omega} \times \boldsymbol{p}(t) = [\boldsymbol{\omega}]\,\boldsymbol{p}(t)

该一阶线性微分方程的解为 p(t)=e[ω]t p(0)\boldsymbol{p}(t) = e^{[\boldsymbol{\omega}] t}\,\boldsymbol{p}(0) 。指数中的 [ω]t[\boldsymbol{\omega}]t 是 3×33 \times 3 反对称矩阵与时间标量的乘积。

将 ω\boldsymbol{\omega} 单位化——记单位转轴 ω^=ω/∥ω∥\hat{\boldsymbol{\omega}} = \boldsymbol{\omega} / \|\boldsymbol{\omega}\| ,转过的总角度 θ=∥ω∥t\theta = \|\boldsymbol{\omega}\| t。则 ωt=ω^θ\boldsymbol{\omega} t = \hat{\boldsymbol{\omega}} \theta,代入得:

p(θ)=e[ω^]θ p(0)\boldsymbol{p}(\theta) = e^{[\hat{\boldsymbol{\omega}}] \theta}\,\boldsymbol{p}(0)

矩阵指数 e[ω^]θe^{[\hat{\boldsymbol{\omega}}] \theta} 就是旋转矩阵 Rω^(θ)R_{\hat{\boldsymbol{\omega}}}(\theta),即旋转算子的指数坐标形式。

4. 齐次矩阵

4.1 定义

为将旋转与平移纳入统一的矩阵运算框架,引入齐次坐标:点的齐次坐标在三维坐标后附加 11,向量的齐次坐标附加 00(向量只旋转不平移)。

齐次变换矩阵 T∈SE(3)T \in SE(3) 同时包含旋转与平移:

T=[Rp01]∈R4×4T = \begin{bmatrix}R & \boldsymbol{p} \\\boldsymbol{0} & 1\end{bmatrix} \in \mathbb{R}^{4 \times 4}

其中 R∈SO(3)R \in SO(3) 为姿态,p\boldsymbol{p} 为 {B}\{B\} 原点在 {A}\{A\} 中的位置向量。TT 将 {B}\{B\} 下的齐次坐标映射到 {A}\{A\} 下:

[Ap1]=[BARApBORG01][Bp1]\begin{bmatrix} {}^A\boldsymbol{p} \\ 1 \end{bmatrix} =\begin{bmatrix} {}^A_B R & {}^A\boldsymbol{p}_{B\text{ORG}} \\ \boldsymbol{0} & 1 \end{bmatrix}\begin{bmatrix} {}^B\boldsymbol{p} \\ 1 \end{bmatrix}

齐次变换矩阵的平移算子与旋转算子(均在固定坐标系下以左乘作用):

算子形式
平移算子 Trans⁡(dx,dy,dz)\operatorname{Trans}(d_x, d_y, d_z)T=[I3×3[dx,dy,dz]T01]T = \begin{bmatrix} I_{3\times3} & [d_x, d_y, d_z]^{\mathrm{T}} \\ \boldsymbol{0} & 1 \end{bmatrix}
旋转算子 Rot⁡(ω^,θ)\operatorname{Rot}(\hat{\boldsymbol{\omega}}, \theta)T=[Rω^(θ)001]T = \begin{bmatrix} R_{\hat{\boldsymbol{\omega}}}(\theta) & \boldsymbol{0} \\ \boldsymbol{0} & 1 \end{bmatrix}

一次完整的齐次变换等价于以定系为参照,先旋转再平移(左乘顺序):

T=Trans⁡(dx,dy,dz) Rot⁡(ω^,θ)T = \operatorname{Trans}(d_x, d_y, d_z)\,\operatorname{Rot}(\hat{\boldsymbol{\omega}}, \theta)

4.2 复合规则

与旋转矩阵一致:相对固定坐标系的变换左乘,相对动坐标系的变换右乘。

参照系规则公式
相对固定坐标系 {A}\{A\}左乘T=Tn⋯T2T1T = T_n \cdots T_2 T_1
相对动坐标系 {B}\{B\}右乘T=T1T2⋯TnT = T_1 T_2 \cdots T_n

齐次变换矩阵的逆:

T−1=[RT−RTp01]T^{-1} = \begin{bmatrix}R^{\mathrm{T}} & -R^{\mathrm{T}}\boldsymbol{p} \\\boldsymbol{0} & 1\end{bmatrix}

多个坐标系的变换具有递推特性:CAT=BAT  CBT{}^A_C T = {}^A_B T \; {}^B_C T,由此可建立含多个坐标系的连续变换链。

5. 欧拉角

欧拉角(Euler angle)通过三次绕坐标轴的连续旋转描述姿态。连续两次旋转的转轴不平行,共有 3×2×2=123 \times 2 \times 2 = 12 种组合。按旋转参照系分为两类:

  1. 动轴欧拉角(相对动坐标系,右乘)
  2. 定轴欧拉角(相对固定坐标系,左乘)

5.1 动轴欧拉角

动轴欧拉角每次绕动坐标系的当前轴旋转,遵循右乘原则。

Z-Y-X 欧拉角:初始时 {B}\{B\} 与 {A}\{A\} 重合,依次绕 zBz_B 转 ϕ\phi、新的 yBy_B 转 θ\theta、新的 xBx_B 转 ψ\psi:

BARZYX=Rz(ϕ)Ry(θ)Rx(ψ){}^A_B R_{\text{ZYX}} = R_z(\phi) R_y(\theta) R_x(\psi)

Z-Y-Z 欧拉角(ϕ\phi 进动角、θ\theta 章动角、ψ\psi 自旋角):

BARZYZ=Rz(ϕ)Ry(θ)Rz(ψ){}^A_B R_{\text{ZYZ}} = R_z(\phi) R_y(\theta) R_z(\psi)

Z-Y-Z 和 Z-X-Z 组合在工业机器人末端姿态中最常用——与腕部三个垂直正交旋转关节的转角直接对应。

5.2 定轴欧拉角(R-P-Y 角)

R-P-Y(Roll-Pitch-Yaw,横滚-俯仰-偏航)角实质上是一种定轴欧拉角——绕固定坐标系各轴依次旋转,遵循左乘 原则。该命名源于船舶姿态:以船行进方向为 zz 轴(翻滚),垂直甲板的法线为 xx 轴(偏航),yy 轴由右手定则确定。

初始时 {B}\{B\} 与 {A}\{A\} 重合,依次绕 xAx_A 转 ψ\psi、yAy_A 转 θ\theta、zAz_A 转 ϕ\phi(X-Y-Z 固定角):

BARXYZ(ψ,θ,ϕ)=Rz(ϕ)Ry(θ)Rx(ψ){}^A_B R_{\text{XYZ}}(\psi, \theta, \phi) = R_z(\phi) R_y(\theta) R_x(\psi)

该展开式与 Z-Y-X 欧拉角完全相同——三次绕定轴左乘的结果等于以相反顺序三次绕动轴右乘的结果。

当三个姿态角变化很小时(cos⁡δ≈1\cos\delta \approx 1,sin⁡δ≈δ\sin\delta \approx \delta),结果与转动顺序无关:

R≈[1−ϕθϕ1−ψ−θψ1]R \approx \begin{bmatrix}1 & -\phi & \theta \\\phi & 1 & -\psi \\-\theta & \psi & 1\end{bmatrix}

5.3 奇异性

无论是动轴欧拉角还是定轴欧拉角,奇异的本质相同:当第一次与第三次旋转轴共线时,自由度数退化。

类型奇异条件后果
Z-Y-X / R-P-Y第二次转角 θ=±π/2\theta = \pm \pi/2仅能求 ϕ\phi 与 ψ\psi 的和或差
Z-Y-Z第二次转角 θ=kπ  (k=0,1)\theta = k\pi\;(k=0,1)仅能求 ϕ\phi 与 ψ\psi 的和或差

处于奇异位形时,第一与第三旋转轴重合,失去一个转动自由度。工程上在奇异时一般取 ϕ=0∘\phi = 0^\circ。万向节死锁(Gimbal Lock)就是 R-P-Y 角在俯仰角 θ=90∘\theta = 90^\circ 时的典型奇异。

6. 等效轴-角

欧拉定理:任一旋转矩阵 RR 总可等效为绕某一固定单位轴 ω^=(ωx,ωy,ωz)T\hat{\boldsymbol{\omega}} = (\omega_x, \omega_y, \omega_z)^{\mathrm{T}} 旋转角度 θ\theta 。等效轴-角(angle-axis)用三个参数描述姿态,特别适用于指向机构的姿态描述和轨迹规划。

6.1 Rodrigues 公式

刚体以单位角速度绕 ω^\hat{\boldsymbol{\omega}} 旋转。由反对称矩阵 [ω^][\hat{\boldsymbol{\omega}}] 的性质([ω^]2=ω^ω^T−I[\hat{\boldsymbol{\omega}}]^2 = \hat{\boldsymbol{\omega}}\hat{\boldsymbol{\omega}}^{\mathrm{T}} - I,[ω^]3=−[ω^][\hat{\boldsymbol{\omega}}]^3 = -[\hat{\boldsymbol{\omega}}] ),矩阵指数的 Taylor 级数可闭合为 Rodrigues 公式:

Rω^(θ)=e[ω^]θ=I+[ω^]sin⁡θ+[ω^]2(1−cos⁡θ)R_{\hat{\boldsymbol{\omega}}}(\theta) = e^{[\hat{\boldsymbol{\omega}}]\theta} = I + [\hat{\boldsymbol{\omega}}]\sin\theta + [\hat{\boldsymbol{\omega}}]^2(1 - \cos\theta)

展开为矩阵形式:

Rω^(θ)=[ωx2(1−cos⁡θ)+cos⁡θωxωy(1−cos⁡θ)−ωzsin⁡θωxωz(1−cos⁡θ)+ωysin⁡θωxωy(1−cos⁡θ)+ωzsin⁡θωy2(1−cos⁡θ)+cos⁡θωyωz(1−cos⁡θ)−ωxsin⁡θωxωz(1−cos⁡θ)−ωysin⁡θωyωz(1−cos⁡θ)+ωxsin⁡θωz2(1−cos⁡θ)+cos⁡θ]R_{\hat{\boldsymbol{\omega}}}(\theta) =\begin{bmatrix}\omega_x^2(1 - \cos\theta) + \cos\theta & \omega_x\omega_y(1 - \cos\theta) - \omega_z\sin\theta & \omega_x\omega_z(1 - \cos\theta) + \omega_y\sin\theta \\\omega_x\omega_y(1 - \cos\theta) + \omega_z\sin\theta & \omega_y^2(1 - \cos\theta) + \cos\theta & \omega_y\omega_z(1 - \cos\theta) - \omega_x\sin\theta \\\omega_x\omega_z(1 - \cos\theta) - \omega_y\sin\theta & \omega_y\omega_z(1 - \cos\theta) + \omega_x\sin\theta & \omega_z^2(1 - \cos\theta) + \cos\theta\end{bmatrix}

当 ω^\hat{\boldsymbol{\omega}} 取坐标轴方向时,上式分别退化为 Rx(θ)R_x(\theta)、Ry(θ)R_y(\theta)、Rz(θ)R_z(\theta)。

6.2 由姿态矩阵反求等效轴与转角

已知 R=[rij]R = [r_{ij}],由 Rodrigues 公式取迹得 tr⁡(R)=r11+r22+r33=1+2cos⁡θ\operatorname{tr}(R) = r_{11} + r_{22} + r_{33} = 1 + 2\cos\theta:

情况转角转轴
θ≠0,π\theta \neq 0, \piθ=arccos⁡(tr⁡(R)−12)\theta = \arccos\left(\frac{\operatorname{tr}(R) - 1}{2}\right)ω^=12sin⁡θ[r32−r23r13−r31r21−r12]\hat{\boldsymbol{\omega}} = \frac{1}{2\sin\theta}\begin{bmatrix} r_{32} - r_{23} \\ r_{13} - r_{31} \\ r_{21} - r_{12} \end{bmatrix}
θ=0\theta = 0θ=0\theta = 0ω^\hat{\boldsymbol{\omega}} 任意(无旋转)
θ=π\theta = \piθ=π\theta = \piω^\hat{\boldsymbol{\omega}} 由 R+IR + I 的任意非零列归一化得到

当 θ=π\theta = \pi 时,Rodrigues 公式退化为 R=I+2[ω^]2R = I + 2[\hat{\boldsymbol{\omega}}]^2 。由 [ω^]2=ω^ω^T−I[\hat{\boldsymbol{\omega}}]^2 = \hat{\boldsymbol{\omega}}\hat{\boldsymbol{\omega}}^{\mathrm{T}} - I 得 R+I=2ω^ω^TR + I = 2\hat{\boldsymbol{\omega}}\hat{\boldsymbol{\omega}}^{\mathrm{T}}。右侧为向量 ω^\hat{\boldsymbol{\omega}} 的外积(秩为 1 的对称矩阵),因此 R+IR + I 的任意非零列向量均与 ω^\hat{\boldsymbol{\omega}} 共线,归一化即得转轴方向。

等效轴-角也存在奇异:当 sin⁡θ=0\sin\theta = 0(θ=0\theta = 0 或 π\pi)时,无法用标准公式唯一确定 ω^\hat{\boldsymbol{\omega}}。

7. 单位四元数

欧拉角和等效轴-角均存在奇异问题;旋转矩阵无奇异但参数冗余。单位四元数(unit quaternion)既无奇异性,参数也紧凑(4 个参数 + 1 个约束)。

7.1 定义与运算法则

四元数由哈密尔顿(Hamilton)于 1843 年提出,形式为一个实数与一个三维向量的组合:

q=q0+q=q0+q1i+q2j+q3kq = q_0 + \boldsymbol{q} = q_0 + q_1 i + q_2 j + q_3 k

算子 i,j,ki, j, k 满足 i2=j2=k2=ijk=−1i^2 = j^2 = k^2 = ijk = -1,ij=k=−jiij = k = -ji,jk=i=−kjjk = i = -kj,ki=j=−ikki = j = -ik。

令 p=(p0,p)p = (p_0, \boldsymbol{p}),q=(q0,q)q = (q_0, \boldsymbol{q}),基本运算法则:

运算定义公式
加法分量相加p+q=(p0+q0, p+q)p + q = (p_0 + q_0,\ \boldsymbol{p} + \boldsymbol{q})
乘法H\mathbb{H} 乘法pq=(p0q0−p⋅q, p0q+q0p+p×q)pq = (p_0 q_0 - \boldsymbol{p} \cdot \boldsymbol{q},\ p_0\boldsymbol{q} + q_0\boldsymbol{p} + \boldsymbol{p} \times \boldsymbol{q})
共轭向量部取反q∗=(q0,−q)q^* = (q_0, -\boldsymbol{q})
模欧氏范数∥q∥=q02+q12+q22+q32\|q\| = \sqrt{q_0^2 + q_1^2 + q_2^2 + q_3^2}
逆共轭除以模方q−1=q∗/∥q∥2q^{-1} = q^* / \|q\|^2

模为 11 的四元数称为单位四元数,此时 q−1=q∗q^{-1} = q^*。

7.2 四元数与姿态表示

设刚体绕单位轴 ω^=(ωx,ωy,ωz)T\hat{\boldsymbol{\omega}} = (\omega_x, \omega_y, \omega_z)^{\mathrm{T}} 旋转 θ\theta 角,对应的单位四元数为:

ε=ε0+ε1i+ε2j+ε3k=cos⁡θ2+ω^sin⁡θ2\varepsilon = \varepsilon_0 + \varepsilon_1 i + \varepsilon_2 j + \varepsilon_3 k = \cos\frac{\theta}{2} + \hat{\boldsymbol{\omega}} \sin\frac{\theta}{2}

推导:将等效轴-角参数代入单位四元数定义式 (3.4-53)(3.4\text{-}53) 即得上式。这四个参数 ε0,ε1,ε2,ε3\varepsilon_0, \varepsilon_1, \varepsilon_2, \varepsilon_3 称为欧拉参数(Euler parameters ),满足 ε02+ε12+ε22+ε32=1\varepsilon_0^2 + \varepsilon_1^2 + \varepsilon_2^2 + \varepsilon_3^2 = 1。

旋转矩阵 → 四元数:

ε0=121+r11+r22+r33,ε1=r32−r234ε0,ε2=r13−r314ε0,ε3=r21−r124ε0\varepsilon_0 = \frac{1}{2}\sqrt{1 + r_{11} + r_{22} + r_{33}},\quad\varepsilon_1 = \frac{r_{32} - r_{23}}{4\varepsilon_0},\quad\varepsilon_2 = \frac{r_{13} - r_{31}}{4\varepsilon_0},\quad\varepsilon_3 = \frac{r_{21} - r_{12}}{4\varepsilon_0}

分母 ε0\varepsilon_0 永不为零(r11+r22+r33≥−1r_{11}+r_{22}+r_{33} \geq -1,平方根内 ≥0\geq 0),该转换不存在奇异。

四元数 → 等效轴-角:

θ=2arccos⁡ε0,ω^=(ε1,ε2,ε3)Tsin⁡(θ/2)\theta = 2\arccos\varepsilon_0,\quad\hat{\boldsymbol{\omega}} = \frac{(\varepsilon_1, \varepsilon_2, \varepsilon_3)^{\mathrm{T}}}{\sin(\theta/2)}

向量旋转:四元数相乘,p′=εpε∗\boldsymbol{p}' = \varepsilon \boldsymbol{p} \varepsilon^*(p\boldsymbol{p} 视为纯四元数 (0,p)(0, \boldsymbol{p}))。

连续旋转用四元数乘法复合:(ε2ε1)p(ε2ε1)∗(\varepsilon_2 \varepsilon_1) \boldsymbol{p} (\varepsilon_2 \varepsilon_1)^*。两个四元数乘法涉及 16 次乘法 + 12 次加法,相较两个旋转矩阵乘法的 27 次乘法 + 18 次加法,计算效率更高。

8. 相互关系

四种姿态描述方法的对比:

项目旋转矩阵三姿态角(欧拉/R-P-Y)等效轴-角单位四元数
参数数9(仅 3 独立)33(等效轴方向 + 转角)4(1 约束)
奇异性无有有(θ=0,π\theta = 0, \pi)无
姿态复合✔(矩阵乘法)✗(需转为矩阵)✗(需转为矩阵或四元数)✔(四元数乘法,更快)
连续插值✔(可能插值到奇异姿态)✔(可能插值到奇异姿态)✔✔(可直接球面线性插值)
几何意义两坐标系各轴间的投影关系绕坐标轴依次旋转三次的角度绕空间任意轴旋转的角度四维超球面 S3S^3 上的点

连续插值:在两姿态之间平滑过渡。旋转矩阵和欧拉角均可逐元素/逐角插值,但中间值可能恰好落入奇异位形(如欧拉角的万向节死锁)。单位四元数通过球面线性插值( Slerp,Spherical Linear Interpolation)在四维超球面 S3S^3 上沿大圆弧插值,天然避开奇异,是动画和轨迹规划中的首选方案。

各描述方法之间的转换关系(行→列的转换方法):

来源\目标旋转矩阵三姿态角等效轴-角单位四元数
旋转矩阵—逆解公式(复杂,不实用)θ=arccos⁡tr⁡(R)−12\theta = \arccos\frac{\operatorname{tr}(R)-1}{2},ω^=12sin⁡θ[r32−r23r13−r31r21−r12]\hat{\boldsymbol{\omega}} = \frac{1}{2\sin\theta}\begin{bmatrix}r_{32}-r_{23}\\r_{13}-r_{31}\\r_{21}-r_{12}\end{bmatrix}ε0=121+tr⁡(R)\varepsilon_0 = \frac{1}{2}\sqrt{1+\operatorname{tr}(R)},εi=⋯4ε0\varepsilon_i = \frac{\cdots}{4\varepsilon_0}
三姿态角三次旋转算子依次相乘(动轴右乘/定轴左乘)—先转为旋转矩阵,再反求等效轴-角先转为旋转矩阵,再求四元数;或先转为等效轴-角再转四元数
等效轴-角Rodrigues 公式 R=I+[ω^]sin⁡θ+[ω^]2(1−cos⁡θ)R = I + [\hat{\boldsymbol{\omega}}]\sin\theta + [\hat{\boldsymbol{\omega}}]^2(1-\cos\theta)先转为旋转矩阵,再反解欧拉角—ε=cos⁡θ2+ω^sin⁡θ2\varepsilon = \cos\frac{\theta}{2} + \hat{\boldsymbol{\omega}}\sin\frac{\theta}{2}
单位四元数RεR_{\varepsilon} 展开式先转为旋转矩阵,再反解欧拉角θ=2arccos⁡ε0\theta = 2\arccos\varepsilon_0,ω^=(ε1,ε2,ε3)Tsin⁡(θ/2)\hat{\boldsymbol{\omega}} = \frac{(\varepsilon_1,\varepsilon_2,\varepsilon_3)^{\mathrm{T}}}{\sin(\theta/2)}—

注:三姿态角指动轴欧拉角与定轴欧拉角(含 R-P-Y 角);"不实用"指需要分情况讨论奇异且表达式冗长。

小结

本文从位形空间出发,建立了刚体姿态的四种数学描述及其相互转换关系:

主题核心内容与应用
基本概念位形空间的拓扑结构决定了参数化方式(显式/隐式);自由矢量只旋转、线矢量旋转且受平移影响——是旋量坐标变换规则的前置基础
旋转矩阵方向余弦矩阵(9 元素/3 独立),正交性 det⁡(R)=1\det(R)=1;核心应用分两类——坐标系变换(同一点跨系映射,左乘)与运动描述(同系内旋转)
齐次矩阵将旋转与平移统一为 4×44 \times 4 矩阵,一次齐次变换 = 先旋转再平移(定系左乘);多次变换可递推建立连续变换链
欧拉角动轴(右乘)与定轴/R-P-Y(左乘);12 种组合,Z-Y-X 与 Z-Y-Z 最常用;适用于需要直观角度输入的场景(如机器人关节角指定);奇异条件为第一次与第三次轴共线
等效轴-角Rodrigues 公式给出了绕过原点的任意轴旋转的矩阵表达;适用于指向机构、单轴旋转的轨迹规划
单位四元数4 参数 + 1 约束,无奇异;乘法效率高于旋转矩阵;可通过 Slerp 在 S3S^3 上沿大圆弧无奇异地连续插值,是动画与轨迹插值的首选

姿态描述方法的选取取决于场景:需要矩阵运算选旋转矩阵,需要直观角度选欧拉角,需要单轴旋转选等效轴-角,需要无奇异高效插值选单位四元数。