欧拉角

  欧拉角是一组用于描述刚体姿态的角度,欧拉提出,刚体在三维欧氏空间中的任意朝向可以由绕三个轴的转动复合生成。通常情况下,三个轴是相互正交的。对于描述旋转角的顺序,并没有特殊的规定,在航空航天领域,通常使用Tait–Bryan顺序,而对应的三个角度又分别成为roll(横滚角),pitch(俯仰角)和yaw(偏航角)。

  以下四张图有助于直观理解roll,pitch和yaw。

roll

roll

pitch

pitch

yaw

yaw

yaw-pitch-roll

roll-pitch-yaw

  一般约定,绕x、y、z轴旋转的角分别是roll、pitch、yaw,分别记作$\varphi$、$\theta$、$\psi$。从参考坐标系上区分,欧拉角又分为静态和动态,其中静态欧拉角以绝对坐标系(地球)为参考,一般用小写的x-y-z来表示静态坐标系;动态欧拉角以刚体自身的坐标系为参考,一般用大写的X-Y-Z表示。

  在本文中,我们讨论动态欧拉角,顺规为Z-Y-X。如下图所示:

欧拉角定义

roll-pitch-yaw

四元数

  四元数是复数在四维空间的扩展,由哈密顿首次提出。从形式上看,四元数是由$1$和$\mathbf{i}$、$\mathbf{j}$、$\mathbf{k}$线性组合而成,其中$\mathbf{i}$、$\mathbf{j}$、$\mathbf{k}$和复数中的$\mathbf{i}$类似,定义如下:

  $\mathbf{i}$、$\mathbf{j}$、$\mathbf{k}$之间的运算关系还有:$\mathbf{ij}=\mathbf{k}$、$\mathbf{jk}=\mathbf{i}$、$\mathbf{ki}=\mathbf{j}$、$\mathbf{ji}=-\mathbf{k}$、$\mathbf{kj}=-\mathbf{i}$、$\mathbf{ik}=-\mathbf{j}$。注意到,这里交换律是不成立的。四元数的运算定义和运算法则,这里就不再介绍了,有需要可以参考维基百科

  四元数$\mathbf{q}=a+b\mathbf{i}+c\mathbf{j}+d\mathbf{k}$的共轭和模分别定义为:

  我们把模为1的四元数称为“单位四元数”,只有单位四元数才能用于描述空间旋转/姿态。要理解单位四元数与姿态/空间旋转的联系,首先得从欧拉旋转定理说起。欧拉旋转定理表明,任意的旋转序列等价于绕某个轴的单次旋转。如果我们能描述这个轴和旋转的角度,就能描述整个旋转序列等价的单次旋转。

  若存在单位轴向量

且旋转角为$\theta$,旋转方向为顺着轴向量看去的顺时针,那么描述该旋转的四元数为:

  由于$\vec u$是单位向量,容易证明四元数$\mathbf{q}$为单位四元数。对于点$P(p_x,p_y,p_z)$,有向量$\vec{OP}=(p_x,p_y,p_z)$,我们将其写成四元数的形式:

  将$P$点绕轴向量$\vec u$旋转$\theta$角后得到的点记为$P^{\prime}$,将向量$\vec{OP^{\prime}}$的四元数形式记为$\mathbf{p^{\prime}}$,则有:

  其中$\mathbf{q^{-1}}$称为四元数$\mathbf{q}$的逆,定义为四元数的共轭除以模的平方:

  对于单位四元数而言,其共轭与逆是相等的。到此,我们知道了用单位四元数计算旋转的方法。注意,四元数描述的实际上是矢量的旋转,而当旋转矢量的起点为原点时,计算结果可以看作是单个点绕某个轴的旋转。

四元数与欧拉角的换算

  对于右手坐标系,把四元数和欧拉角都表示为向量形式,那么四元数和欧拉角的换算公式如下:

References

维基百科:欧拉角
四元数和旋转以及yaw-pitch-roll的含义
数的创生(四)哈密尔顿的四元数
维基百科:欧拉旋转定理
维基百科:四元数与空间旋转
维基百科:四元数

Post Info


Published

26 February 2014

Category

math

Tags