关于姿态运动的一些总结2_欧拉角与四元数

我们在上一篇姿态运动博客中介绍了旋转矩阵的一些基本性质,参考文献[1]中的做法,主要是引入了 R ( n ^ , θ ) \boldsymbol{R}(\hat{\mathbf{n}},\theta) R(n^,θ),关于 R ( n ^ , θ ) \boldsymbol{R}(\hat{\mathbf{n}},\theta) R(n^,θ)可以这么理解,将 n ^ \hat{\mathbf{n}} n^类比为 z ^ \hat{\mathbf{z}} z^轴,任意矢量 v \mathbf{v} v沿着 n ^ \hat{\mathbf{n}} n^方向的投影为 v ∥ = ( n ^ ⋅ v ) n ^ \mathbf{v}_\parallel= (\hat{\mathbf{n}}\cdot \mathbf{v})\hat{\mathbf{n}} v=(n^v)n^,在与 n ^ \hat{\mathbf{n}} n^垂直平面上的投影为 v ⊥ = − n ^ × ( n ^ × v ) \mathbf{v}_\perp= -\hat{\mathbf{n}}\times(\hat{\mathbf{n}}\times \mathbf{v}) v=n^×(n^×v),如图1所示。

图1 旋转轴和坐标轴的类比

由图1可见 v ∥ \mathbf{v}_\parallel v沿着 z ^ \hat{\mathbf{z}} z^轴方向,而 v ⊥ \mathbf{v}_\perp v沿着 x ^ \hat{\mathbf{x}} x^轴方向,因此类比于上一篇姿态运动博客中的式(22),有
R ( n ^ , θ ) v = R ( n ^ , θ ) v ∥ + R ( n ^ , θ ) v ⊥ = v ∥ + cos ⁡ ( θ ) v ⊥ − sin ⁡ ( θ ) n ^ × v ⊥ = v ∥ + cos ⁡ ( θ ) v ⊥ + sin ⁡ ( θ ) [ [ n ^ ] ] v ⊥ (1) \begin{aligned} \boldsymbol{R}(\hat{\mathbf{n}},\theta)\mathbf{v}&=\boldsymbol{R}(\hat{\mathbf{n}},\theta)\mathbf{v}_\parallel+\boldsymbol{R}(\hat{\mathbf{n}},\theta)\mathbf{v}_\perp\\ &=\mathbf{v}_\parallel+\cos(\theta)\mathbf{v}_\perp-\sin(\theta)\hat{\mathbf{n}}\times\mathbf{v}_\perp\\ &=\mathbf{v}_\parallel+\cos(\theta)\mathbf{v}_\perp+\sin(\theta)[[\hat{\mathbf{n}}]]\mathbf{v}_\perp \end{aligned}\tag{1} R(n^,θ)v=R(n^,θ)v+R(n^,θ)v=v+cos(θ)vsin(θ)n^×v=v+cos(θ)v+sin(θ)[[n^]]v(1)

式(1)与上一篇姿态运动博客是一致的。设从 s \mathrm{s} s系出发,绕 s \mathrm{s} s系中的 n ^ \hat{\mathbf{n}} n^轴旋转 θ \theta θ角得到 b \mathrm{b} b系,则从 s \mathrm{s} s系到 b \mathrm{b} b系的旋转矩阵 C s b = R ( n ^ , θ ) \boldsymbol{C}_\mathrm{s}^\mathrm{b}=\boldsymbol{R}(\hat{\mathbf{n}},\theta) Csb=R(n^,θ),从 b \mathrm{b} b系到 s \mathrm{s} s系的旋转矩阵则满足

C b s = R T ( n ^ , θ ) = I − sin ⁡ ( θ ) [ [ n ^ ] ] + ( 1 − cos ⁡ ( θ ) ) [ [ n ^ ] ] 2 (2) \boldsymbol{C}_\mathrm{b}^\mathrm{s}=\boldsymbol{R}^\mathrm{T}(\hat{\mathbf{n}},\theta)=I-\sin(\theta)[[\hat{\mathbf{n}}]]+(1-\cos(\theta))[[\hat{\mathbf{n}}]]^2\tag{2} Cbs=RT(n^,θ)=Isin(θ)[[n^]]+(1cos(θ))[[n^]]2(2)

这同文献[2]中的推导是一致的(注意这里反对称阵的定义)。到目前为止,我们对旋转矩阵是通过同一矢量在不同坐标系的下表示进行描述的。另一方面,我们在线性代数课程中了解到,矩阵可以看作线性空间上的算子,将一个矢量映射到另一个矢量,那么旋转矩阵也是矩阵,自然也存在类似的映射关系,具体来说,旋转矩阵 C b s \boldsymbol{C}_\mathrm{b}^\mathrm{s} Cbs将与 b \mathrm{b} b系固联的矢量 r \boldsymbol{r} r映射到 r ′ \boldsymbol{r}' r r \boldsymbol{r} r r ′ \boldsymbol{r}' r均在与 s \mathrm{s} s系下进行表示),即有
r ′ s = C b s r s (3) \boldsymbol{r}'^\mathrm{s}=\boldsymbol{C}_\mathrm{b}^\mathrm{s}\boldsymbol{r}^\mathrm{s}\tag{3} rs=Cbsrs(3)

式(3)可以这么理解,设旋转前 b \mathrm{b} b系与 s \mathrm{s} s系重合(此时 b \mathrm{b} b系的三个坐标轴分别为 x ^ b 0 , y ^ b 0 , z ^ b 0 \hat{\mathbf{x}}_{\mathrm{b}0},\hat{\mathbf{y}}_{\mathrm{b}0},\hat{\mathbf{z}}_{\mathrm{b}0} x^b0,y^b0,z^b0),已知 r \boldsymbol{r} r r ′ \boldsymbol{r}' r b \mathrm{b} b系下为同一矢量,即有
r = r 1 b x ^ b 0 + r 2 b y ^ b 0 + r 3 b z ^ b 0 = r 1 b x ^ s + r 2 b y ^ s + r 3 b z ^ s (4) \boldsymbol{r}=r_{1\mathrm{b}}\hat{\mathbf{x}}_{\mathrm{b}0}+r_{2\mathrm{b}}\hat{\mathbf{y}}_{\mathrm{b}0}+r_{3\mathrm{b}}\hat{\mathbf{z}}_{\mathrm{b}0}=r_{1\mathrm{b}}\hat{\mathbf{x}}_\mathrm{s}+r_{2\mathrm{b}}\hat{\mathbf{y}}_\mathrm{s}+r_{3\mathrm{b}}\hat{\mathbf{z}}_\mathrm{s}\tag{4} r=r1bx^b0+r2by^b0+r3bz^b0=r1bx^s+r2by^s+r3bz^s(4)

r ′ = r 1 b x ^ b + r 2 b y ^ b + r 3 b z ^ b (5) \boldsymbol{r}'=r_{1\mathrm{b}}\hat{\mathbf{x}}_\mathrm{b}+r_{2\mathrm{b}}\hat{\mathbf{y}}_\mathrm{b}+r_{3\mathrm{b}}\hat{\mathbf{z}}_\mathrm{b}\tag{5} r=r1bx^b+r2by^b+r3bz^b(5)

因此 r s = [ r 1 b   r 2 b   r 3 b ] T \boldsymbol{r}^\mathrm{s}=[r_{1\mathrm{b}}~r_{2\mathrm{b}}~r_{3\mathrm{b}}]^\mathrm{T} rs=[r1b r2b r3b]T。考虑到 x ^ b , y ^ b , z ^ b \hat{\mathbf{x}}_\mathrm{b},\hat{\mathbf{y}}_\mathrm{b},\hat{\mathbf{z}}_\mathrm{b} x^b,y^b,z^b可利用 x ^ s , y ^ s , z ^ s \hat{\mathbf{x}}_\mathrm{s},\hat{\mathbf{y}}_\mathrm{s},\hat{\mathbf{z}}_\mathrm{s} x^s,y^s,z^s进行表示,即
{ x ^ b = l 1 x ^ s + m 1 y ^ s + n 1 z ^ s y ^ b = l 2 x ^ s + m 2 y ^ s + n 2 z ^ s z ^ b = l 3 x ^ s + m 3 y ^ s + n 3 z ^ s (6) \left\{ \begin{array}{ll} \hat{\mathbf{x}}_\mathrm{b}=l_1\hat{\mathbf{x}}_\mathrm{s}+m_1\hat{\mathbf{y}}_\mathrm{s}+n_1\hat{\mathbf{z}}_\mathrm{s}\\ \hat{\mathbf{y}}_\mathrm{b}=l_2\hat{\mathbf{x}}_\mathrm{s}+m_2\hat{\mathbf{y}}_\mathrm{s}+n_2\hat{\mathbf{z}}_\mathrm{s}\\ \hat{\mathbf{z}}_\mathrm{b}=l_3\hat{\mathbf{x}}_\mathrm{s}+m_3\hat{\mathbf{y}}_\mathrm{s}+n_3\hat{\mathbf{z}}_\mathrm{s} \end{array} \right.\tag{6} x^b=l1x^s+m1y^s+n1z^sy^b=l2x^s+m2y^s+n2z^sz^b=l3x^s+m3y^s+n3z^s(6)

因此有
r ′ = r 1 b x ^ b + r 2 b y ^ b + r 3 b z ^ b = r 1 b ( l 1 x ^ s + m 1 y ^ s + n 1 z ^ s ) + r 2 b ( l 2 x ^ s + m 2 y ^ s + n 2 z ^ s ) + r 3 b ( l 3 x ^ s + m 3 y ^ s + n 3 z ^ s ) = ( r 1 b l 1 + r 2 b l 2 + r 3 b l 3 ) x ^ s + ( r 1 b m 1 + r 2 b m 2 + r 3 b m 3 ) y ^ s + ( r 1 b n 1 + r 2 b n 2 + r 3 b n 3 ) z ^ s (7) \begin{aligned} \boldsymbol{r}'=&r_{1\mathrm{b}}\hat{\mathbf{x}}_\mathrm{b}+r_{2\mathrm{b}}\hat{\mathbf{y}}_\mathrm{b}+r_{3\mathrm{b}}\hat{\mathbf{z}}_\mathrm{b}\\ =&r_{1\mathrm{b}}(l_1\hat{\mathbf{x}}_\mathrm{s}+m_1\hat{\mathbf{y}}_\mathrm{s}+n_1\hat{\mathbf{z}}_\mathrm{s})+r_{2\mathrm{b}}(l_2\hat{\mathbf{x}}_\mathrm{s}+m_2\hat{\mathbf{y}}_\mathrm{s}+n_2\hat{\mathbf{z}}_\mathrm{s})\\ &+r_{3\mathrm{b}}(l_3\hat{\mathbf{x}}_\mathrm{s}+m_3\hat{\mathbf{y}}_\mathrm{s}+n_3\hat{\mathbf{z}}_\mathrm{s})\\ =&(r_{1\mathrm{b}}l_1+r_{2\mathrm{b}}l_2+r_{3\mathrm{b}}l_3)\hat{\mathbf{x}}_\mathrm{s}+ (r_{1\mathrm{b}}m_1+r_{2\mathrm{b}}m_2+r_{3\mathrm{b}}m_3)\hat{\mathbf{y}}_\mathrm{s}\\ &+(r_{1\mathrm{b}}n_1+r_{2\mathrm{b}}n_2+r_{3\mathrm{b}}n_3)\hat{\mathbf{z}}_\mathrm{s} \end{aligned}\tag{7} r===r1bx^b+r2by^b+r3bz^br1b(l1x^s+m1y^s+n1z^s)+r2b(l2x^s+m2y^s+n2z^s)+r3b(l3x^s+m3y^s+n3z^s)(r1bl1+r2bl2+r3bl3)x^s+(r1bm1+r2bm2+r3bm3)y^s+(r1bn1+r2bn2+r3bn3)z^s(7)


r ′ s = [ r 1 b l 1 + r 2 b l 2 + r 3 b l 3 r 1 b m 1 + r 2 b m 2 + r 3 b m 3 r 1 b n 1 + r 2 b n 2 + r 3 b n 3 ] = [ l 1 l 2 l 3 m 1 m 2 m 3 n 1 n 2 n 3 ] [ r 1 b r 2 b r 3 b ] = C b s r s (8) \boldsymbol{r}'^\mathrm{s}=\begin{bmatrix} r_{1\mathrm{b}}l_1+r_{2\mathrm{b}}l_2+r_{3\mathrm{b}}l_3\\ r_{1\mathrm{b}}m_1+r_{2\mathrm{b}}m_2+r_{3\mathrm{b}}m_3\\ r_{1\mathrm{b}}n_1+r_{2\mathrm{b}}n_2+r_{3\mathrm{b}}n_3 \end{bmatrix}=\begin{bmatrix} l_1 & l_2 & l_3\\ m_1 & m_2 & m_3\\ n_1 & n_2 & n_3 \end{bmatrix}\begin{bmatrix} r_{1\mathrm{b}}\\ r_{2\mathrm{b}}\\ r_{3\mathrm{b}} \end{bmatrix}=\boldsymbol{C}_\mathrm{b}^\mathrm{s}\boldsymbol{r}^\mathrm{s}\tag{8} rs=r1bl1+r2bl2+r3bl3r1bm1+r2bm2+r3bm3r1bn1+r2bn2+r3bn3=l1m1n1l2m2n2l3m3n3r1br2br3b=Cbsrs(8)

这样就得到了式(3)。旋转矩阵可以用来描述同一个矢量在不同坐标系下的投影,也可以用来描述不同矢量在同一坐标系下的投影,考虑到 n ^ \hat{\mathbf{n}} n^为单位矢量,因此 R ( n ^ , θ ) \boldsymbol{R}(\hat{\mathbf{n}},\theta) R(n^,θ)有3个自由度,即 n ^ \hat{\mathbf{n}} n^的2个加上 θ \theta θ的1个。也就是说,用3个独立的量就足够刻画旋转矩阵或者姿态了,除 n ^ , θ \hat{\mathbf{n}},\theta n^,θ外,常用的还有欧拉角、四元数(四元数是4个量,但用来表示姿态时必须满足范数为1的约束)、罗德里格参数等,下面进一步介绍欧拉角和四元数的一些性质。

一、欧拉角

我们知道欧拉角是从基准坐标系到体坐标系三次旋转中间过程的描述,设三次旋转的轴依次为 n ^ 1 , n ^ 2 , n ^ 3 \hat{\mathbf{n}}_1,\hat{\mathbf{n}}_2,\hat{\mathbf{n}}_3 n^1,n^2,n^3,旋转的角度依次为 θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3 θ1,θ2,θ3,则从基准坐标系到体坐标系的旋转矩阵满足
R ( n ^ , θ ) = R ( n ^ 3 , θ 3 ) R ( n ^ 2 , θ 2 ) R ( n ^ 1 , θ 1 ) (9) \boldsymbol{R}(\hat{\mathbf{n}},\theta)=\boldsymbol{R}(\hat{\mathbf{n}}_3,\theta_3)\boldsymbol{R}(\hat{\mathbf{n}}_2,\theta_2)\boldsymbol{R}(\hat{\mathbf{n}}_1,\theta_1)\tag{9} R(n^,θ)=R(n^3,θ3)R(n^2,θ2)R(n^1,θ1)(9)

n ^ 1 , n ^ 2 , n ^ 3 \hat{\mathbf{n}}_1,\hat{\mathbf{n}}_2,\hat{\mathbf{n}}_3 n^1,n^2,n^3取为 x ^ , y ^ , z ^ \hat{\mathbf{x}},\hat{\mathbf{y}},\hat{\mathbf{z}} x^,y^,z^(这里的 x ^ , y ^ , z ^ \hat{\mathbf{x}},\hat{\mathbf{y}},\hat{\mathbf{z}} x^,y^,z^表示旋转之前的坐标系对应的轴向)中的某一个时,相应的三次旋转角 θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3 θ1,θ2,θ3即称为欧拉角,并通常用 φ , ϑ , ψ \varphi,\vartheta,\psi φ,ϑ,ψ表示,为保证欧拉角三个自由度,需要满足 n ^ 1 ≠ n ^ 2 \hat{\mathbf{n}}_1\neq\hat{\mathbf{n}}_2 n^1=n^2 n ^ 2 ≠ n ^ 3 \hat{\mathbf{n}}_2\neq\hat{\mathbf{n}}_3 n^2=n^3,因此欧拉角有 3 × 3 × 3 − 3 × 3 − 3 × 2 = 12 3\times 3\times3-3\times3-3\times2=12 3×3×33×33×2=12种可能的组合(常用的滚转角、俯仰角、偏航角只是诸多欧拉角组合中的一种),具体为6个对称的和6个非对称的,即有

n ^ 1 − n ^ 2 − n ^ 3 \hat{\mathbf{n}}_1-\hat{\mathbf{n}}_2-\hat{\mathbf{n}}_3 n^1n^2n^3
对称非对称
1 − 2 − 1 ( x ^ − y ^ − x ^ ) 1-2-1(\hat{\mathbf{x}}-\hat{\mathbf{y}}-\hat{\mathbf{x}}) 121(x^y^x^) 1 − 2 − 3 ( x ^ − y ^ − z ^ ) 1-2-3(\hat{\mathbf{x}}-\hat{\mathbf{y}}-\hat{\mathbf{z}}) 123(x^y^z^)
1 − 3 − 1 ( x ^ − z ^ − x ^ ) 1-3-1(\hat{\mathbf{x}}-\hat{\mathbf{z}}-\hat{\mathbf{x}}) 131(x^z^x^) 1 − 3 − 2 ( x ^ − z ^ − y ^ ) 1-3-2(\hat{\mathbf{x}}-\hat{\mathbf{z}}-\hat{\mathbf{y}}) 132(x^z^y^)
2 − 3 − 2 ( y ^ − z ^ − y ^ ) 2-3-2(\hat{\mathbf{y}}-\hat{\mathbf{z}}-\hat{\mathbf{y}}) 232(y^z^y^) 2 − 3 − 1 ( y ^ − z ^ − x ^ ) 2-3-1(\hat{\mathbf{y}}-\hat{\mathbf{z}}-\hat{\mathbf{x}}) 231(y^z^x^)
2 − 1 − 2 ( y ^ − x ^ − y ^ ) 2-1-2(\hat{\mathbf{y}}-\hat{\mathbf{x}}-\hat{\mathbf{y}}) 212(y^x^y^) 2 − 1 − 3 ( y ^ − x ^ − z ^ ) 2-1-3(\hat{\mathbf{y}}-\hat{\mathbf{x}}-\hat{\mathbf{z}}) 213(y^x^z^)
3 − 1 − 3 ( z ^ − x ^ − z ^ ) 3-1-3(\hat{\mathbf{z}}-\hat{\mathbf{x}}-\hat{\mathbf{z}}) 313(z^x^z^) 3 − 1 − 2 ( z ^ − x ^ − y ^ ) 3-1-2(\hat{\mathbf{z}}-\hat{\mathbf{x}}-\hat{\mathbf{y}}) 312(z^x^y^)
3 − 2 − 3 ( z ^ − y ^ − z ^ ) 3-2-3(\hat{\mathbf{z}}-\hat{\mathbf{y}}-\hat{\mathbf{z}}) 323(z^y^z^) 3 − 2 − 1 ( z ^ − y ^ − x ^ ) 3-2-1(\hat{\mathbf{z}}-\hat{\mathbf{y}}-\hat{\mathbf{x}}) 321(z^y^x^)

例如,对于 3 − 1 − 3 3-1-3 313,相应的旋转矩阵为

R 313 ( φ , ϑ , ψ ) = [ cos ⁡ ψ sin ⁡ ψ 0 − sin ⁡ ψ cos ⁡ ψ 0 0 0 1 ] [ 1 0 0 0 cos ⁡ ϑ sin ⁡ ϑ 0 − sin ⁡ ϑ cos ⁡ ϑ ] [ cos ⁡ φ sin ⁡ φ 0 − sin ⁡ φ cos ⁡ φ 0 0 0 1 ] = [ c ψ c φ − s ψ c ϑ s φ c ψ s φ + s ψ c ϑ c φ s ψ s ϑ − s ψ c φ − c ψ c ϑ s φ − s ψ s φ + c ψ c ϑ c φ c ψ s ϑ s ϑ s φ − s ϑ c φ c ϑ ] (10) \begin{aligned} \boldsymbol{R}_{313}(\varphi,\vartheta,\psi)&=\begin{bmatrix} \cos\psi & \sin\psi & 0\\ -\sin\psi & \cos\psi & 0\\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} 1 & 0 & 0\\ 0 & \cos\vartheta & \sin\vartheta\\ 0 & -\sin\vartheta & \cos\vartheta \end{bmatrix}\begin{bmatrix} \cos\varphi & \sin\varphi & 0\\ -\sin\varphi & \cos\varphi & 0\\ 0 & 0 & 1 \end{bmatrix}\\ &=\begin{bmatrix} c\psi c\varphi-s\psi c\vartheta s\varphi & c\psi s\varphi+s\psi c\vartheta c\varphi & s\psi s\vartheta\\ -s\psi c\varphi-c\psi c\vartheta s\varphi & -s\psi s\varphi+c\psi c\vartheta c\varphi & c\psi s\vartheta\\ s\vartheta s\varphi & -s\vartheta c\varphi & c\vartheta \end{bmatrix} \end{aligned}\tag{10} R313(φ,ϑ,ψ)=cosψsinψ0sinψcosψ00011000cosϑsinϑ0sinϑcosϑcosφsinφ0sinφcosφ0001=cψcφsψcϑsφsψcφcψcϑsφsϑsφcψsφ+sψcϑcφsψsφ+cψcϑcφsϑcφsψsϑcψsϑcϑ(10)

其中 s ψ s\psi sψ表示 sin ⁡ ψ \sin\psi sinψ c ψ c\psi cψ表示 cos ⁡ ψ \cos\psi cosψ,对于其他组合也可用类似方式计算旋转矩阵。由于根据旋转矩阵计算欧拉角会涉及到反三角函数运算,对于欧拉角的象限范围需要仔细考虑。欧拉角最大的好处在于相对直观,能够让人大致想象出来运动体的姿态是什么样子,但是对于姿态计算和控制则不一定很方便,毕竟计算机只知道根据公式进行计算,它才不管什么欧拉角,一般来说,在姿态运动范围不大是可以利用旋转矩阵和欧拉角进行相互计算,但当姿态运动范围较大时欧拉角可能会出现奇异,此时需要利用四元数等其他的姿态表示方式。

二、四元数

对于旋转矩阵 R ( n ^ , θ ) \boldsymbol{R}(\hat{\mathbf{n}},\theta) R(n^,θ),我们在上一篇姿态运动博客中已经知道其表达式可写为
R ( n ^ , θ ) = cos ⁡ θ I + ( 1 − cos ⁡ θ ) n ^ n ^ T + sin ⁡ θ [ [ n ^ ] ] (11) \boldsymbol{R}(\hat{\mathbf{n}},\theta)=\cos\theta I+(1-\cos\theta)\hat{\mathbf{n}}\hat{\mathbf{n}}^\mathrm{T}+\sin\theta[[\hat{\mathbf{n}}]]\tag{11} R(n^,θ)=cosθI+(1cosθ)n^n^T+sinθ[[n^]](11)

其中 n 1 , n 2 , n 3 n_1,n_2,n_3 n1,n2,n3 n ^ \hat{\mathbf{n}} n^在基准坐标系下的3个分量。我们定义如下4个量:

η = [ η 1 , η 2 , η 3 , η 4 ] T , η 1 = n 1 sin ⁡ θ 2 , η 2 = n 2 sin ⁡ θ 2 , η 3 = n 3 sin ⁡ θ 2 , η 4 = cos ⁡ θ 2 (12) \boldsymbol{\eta}=[\eta_1,\eta_2,\eta_3,\eta_4]^\mathrm{T},\eta_1=n_1\sin\frac{\theta}{2},\eta_2=n_2\sin\frac{\theta}{2},\eta_3=n_3\sin\frac{\theta}{2},\eta_4=\cos\frac{\theta}{2}\tag{12} η=[η1,η2,η3,η4]T,η1=n1sin2θ,η2=n2sin2θ,η3=n3sin2θ,η4=cos2θ(12)

则有 η T η = η 1 2 + η 2 2 + η 3 2 + η 4 2 = 1 \boldsymbol{\eta}^\mathrm{T}\boldsymbol{\eta}=\eta_1^2+\eta_2^2+\eta_3^2+\eta_4^2=1 ηTη=η12+η22+η32+η42=1,即 η \boldsymbol{\eta} η的范数始终为1,我们在后面会看到这样定义4个量的意义,由于存在范数约束,因此 η \boldsymbol{\eta} η本质上还是3个独立分量。令 η v = [ η 1 , η 2 , η 3 ] T = n ^ sin ⁡ ( θ / 2 ) \boldsymbol{\eta}_\mathrm{v}=[\eta_1,\eta_2,\eta_3]^\mathrm{T}=\hat{\mathbf{n}}\sin(\theta/2) ηv=[η1,η2,η3]T=n^sin(θ/2)表示 η \boldsymbol{\eta} η的矢量部分(相应地, η 4 \eta_4 η4称为 η \boldsymbol{\eta} η的标量部分),比较式(11)和(12)可知
R ( n ^ , θ ) = ( 2 η 4 2 − 1 ) I + 2 sin ⁡ 2 ( θ / 2 ) n ^ n ^ T + 2 sin ⁡ ( θ / 2 ) cos ⁡ ( θ / 2 ) [ [ n ^ ] ] = ( η 4 2 − η v T η v ) I + 2 η v η v T + 2 η 4 [ [ η v ] ] (13) \begin{aligned} \boldsymbol{R}(\hat{\mathbf{n}},\theta)&=(2\eta_4^2-1)I+2\sin^2(\theta/2)\hat{\mathbf{n}}\hat{\mathbf{n}}^\mathrm{T}+2\sin(\theta/2)\cos(\theta/2)[[\hat{\mathbf{n}}]]\\ &=(\eta_4^2-\boldsymbol{\eta}_\mathrm{v}^\mathrm{T}\boldsymbol{\eta}_\mathrm{v})I+2\boldsymbol{\eta}_\mathrm{v}\boldsymbol{\eta}_\mathrm{v}^\mathrm{T}+2\eta_4[[\boldsymbol{\eta}_\mathrm{v}]] \end{aligned}\tag{13} R(n^,θ)=(2η421)I+2sin2(θ/2)n^n^T+2sin(θ/2)cos(θ/2)[[n^]]=(η42ηvTηv)I+2ηvηvT+2η4[[ηv]](13)

具体来说,有
R ( n ^ , θ ) = [ cos ⁡ ( θ ) + n 1 2 ( 1 − cos ⁡ ( θ ) ) n 1 n 2 ( 1 − cos ⁡ ( θ ) ) + n 3 sin ⁡ ( θ ) n 1 n 3 ( 1 − cos ⁡ ( θ ) ) − n 2 sin ⁡ ( θ ) n 2 n 1 ( 1 − cos ⁡ ( θ ) ) − n 3 sin ⁡ ( θ ) cos ⁡ ( θ ) + n 2 2 ( 1 − cos ⁡ ( θ ) ) n 2 n 3 ( 1 − cos ⁡ ( θ ) ) + n 1 sin ⁡ ( θ ) n 3 n 1 ( 1 − cos ⁡ ( θ ) ) + n 2 sin ⁡ ( θ ) n 3 n 2 ( 1 − cos ⁡ ( θ ) ) − n 1 sin ⁡ ( θ ) cos ⁡ ( θ ) + n 3 2 ( 1 − cos ⁡ ( θ ) ) ] = [ η 1 2 − η 2 2 − η 3 2 + η 4 2 2 ( η 1 η 2 + η 4 η 3 ) 2 ( η 1 η 3 − η 4 η 2 ) 2 ( η 2 η 1 − η 4 η 3 ) − η 1 2 + η 2 2 − η 3 2 + η 4 2 2 ( η 2 η 3 + η 4 η 1 ) 2 ( η 3 η 1 + η 4 η 2 ) 2 ( η 3 η 2 − η 4 η 1 ) − η 1 2 − η 2 2 + η 3 2 + η 4 2 ] = R ( η )    ( 14 ) \begin{aligned} &\boldsymbol{R}(\hat{\mathbf{n}},\theta)\\ =&\begin{bmatrix} \cos(\theta)+n_1^2(1-\cos(\theta)) & n_1n_2(1-\cos(\theta))+n_3\sin(\theta) & n_1n_3(1-\cos(\theta))-n_2\sin(\theta)\\ n_2n_1(1-\cos(\theta))-n_3\sin(\theta) & \cos(\theta)+n_2^2(1-\cos(\theta)) & n_2n_3(1-\cos(\theta))+n_1\sin(\theta)\\ n_3n_1(1-\cos(\theta))+n_2\sin(\theta) & n_3n_2(1-\cos(\theta))-n_1\sin(\theta) & \cos(\theta)+n_3^2(1-\cos(\theta)) \end{bmatrix}\\ =&\begin{bmatrix} \eta_1^2-\eta_2^2-\eta_3^2+\eta_4^2 & 2(\eta_1\eta_2+\eta_4\eta_3) & 2(\eta_1\eta_3-\eta_4\eta_2)\\ 2(\eta_2\eta_1-\eta_4\eta_3) & -\eta_1^2+\eta_2^2-\eta_3^2+\eta_4^2 & 2(\eta_2\eta_3+\eta_4\eta_1)\\ 2(\eta_3\eta_1+\eta_4\eta_2) & 2(\eta_3\eta_2-\eta_4\eta_1) & -\eta_1^2-\eta_2^2+\eta_3^2+\eta_4^2 \end{bmatrix}=\boldsymbol{R}(\boldsymbol{\eta})~~(14) \end{aligned} ==R(n^,θ)cos(θ)+n12(1cos(θ))n2n1(1cos(θ))n3sin(θ)n3n1(1cos(θ))+n2sin(θ)n1n2(1cos(θ))+n3sin(θ)cos(θ)+n22(1cos(θ))n3n2(1cos(θ))n1sin(θ)n1n3(1cos(θ))n2sin(θ)n2n3(1cos(θ))+n1sin(θ)cos(θ)+n32(1cos(θ))η12η22η32+η422(η2η1η4η3)2(η3η1+η4η2)2(η1η2+η4η3)η12+η22η32+η422(η3η2η4η1)2(η1η3η4η2)2(η2η3+η4η1)η12η22+η32+η42=R(η)  (14)

我们可以看到,对于 η \boldsymbol{\eta} η − η -\boldsymbol{\eta} η,相应的旋转矩阵是一样的(绕 n ^ \hat{\mathbf{n}} n^轴旋转 θ \theta θ角等效于绕 − n ^ -\hat{\mathbf{n}} n^轴旋转 − θ -\theta θ角),因此由旋转矩阵不能唯一地确定 η \boldsymbol{\eta} η,考虑这一特性,也有文献研究设计姿态控制时如何避免姿态的中间过程本来应该是绕 n ^ \hat{\mathbf{n}} n^轴旋转 θ \theta θ角,结果却是绕 − n ^ -\hat{\mathbf{n}} n^轴旋转 − θ -\theta θ角的情形。一般来说,姿态机动前先确定好 θ \theta θ角的范围,比如不超过 π \pi π,那么可以令初始姿态中 η 4 \eta_4 η4符号为正,此后 η 4 \eta_4 η4一直为正即可避免此类问题,对于大角度机动,则可分解为几个阶段进行分析。

我们接下来看一下四元数的定义,四元数一般用四个元构成,即 q = q 1 i + q 2 j + q 3 k + q 4 \boldsymbol{q}=q_1\boldsymbol{i}+q_2\boldsymbol{j}+q_3\boldsymbol{k}+q_4 q=q1i+q2j+q3k+q4,也可记为 q = [ q 1 , q 2 , q 3 , q 4 ] T \boldsymbol{q}=[q_1,q_2,q_3,q_4]^\mathrm{T} q=[q1,q2,q3,q4]T,其中 i , j , k \boldsymbol{i},\boldsymbol{j},\boldsymbol{k} i,j,k既是互相正交的单位向量(类似于左手坐标系,也有文献定义为右手坐标系,具体采用哪种定义看个人习惯,在阅读四元数相关文献时务必注意其对乘法的定义),又是虚单位 − 1 \sqrt{-1} 1 ,用 ⊗ \otimes 表示四元数乘法,则有
i ⊗ i = − 1 ,   j ⊗ j = − 1 ,   k ⊗ k = − 1 i ⊗ j = − k ,   j ⊗ k = − i ,   k ⊗ i = − j j ⊗ i = k ,   k ⊗ j = i ,   i ⊗ k = j (15) \begin{aligned} &\boldsymbol{i}\otimes\boldsymbol{i}=-1,~\boldsymbol{j}\otimes\boldsymbol{j}=-1,~\boldsymbol{k}\otimes\boldsymbol{k}=-1\\ &\boldsymbol{i}\otimes\boldsymbol{j}=-\boldsymbol{k},~\boldsymbol{j}\otimes\boldsymbol{k}=-\boldsymbol{i},~\boldsymbol{k}\otimes\boldsymbol{i}=-\boldsymbol{j}\\ &\boldsymbol{j}\otimes\boldsymbol{i}=\boldsymbol{k},~\boldsymbol{k}\otimes\boldsymbol{j}=\boldsymbol{i},~\boldsymbol{i}\otimes\boldsymbol{k}=\boldsymbol{j} \end{aligned}\tag{15} ii=1, jj=1, kk=1ij=k, jk=i, ki=jji=k, kj=i, ik=j(15)

那么两个四元数 q 1 \boldsymbol{q}_1 q1 q 2 \boldsymbol{q}_2 q2相乘的表达式可写为
q 1 ⊗ q 2 = ( q 11 i + q 12 j + q 13 k + q 14 ) ⊗ ( q 21 i + q 22 j + q 23 k + q 24 ) = q 11 i ⊗ ( q 21 i + q 22 j + q 23 k + q 24 ) + q 12 j ⊗ ( q 21 i + q 22 j + q 23 k + q 24 ) + q 13 k ⊗ ( q 21 i + q 22 j + q 23 k + q 24 ) + q 14 ⊗ ( q 21 i + q 22 j + q 23 k + q 24 ) = − q 11 q 21 − q 11 q 22 k + q 11 q 23 j + q 11 q 24 i + q 12 q 21 k − q 12 q 22 − q 12 q 23 i + q 12 q 24 j − q 13 q 21 j + q 13 q 22 i − q 13 q 23 + q 13 q 24 k + q 14 ( q 21 i + q 22 j + q 23 k ) + q 14 q 24 (16) \begin{aligned} \boldsymbol{q}_1\otimes\boldsymbol{q}_2=&(q_{11}\boldsymbol{i}+q_{12}\boldsymbol{j}+q_{13}\boldsymbol{k}+q_{14})\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})\\ =&q_{11}\boldsymbol{i}\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})+q_{12}\boldsymbol{j}\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})\\ &+q_{13}\boldsymbol{k}\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})+q_{14}\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})\\ =&-q_{11}q_{21}-q_{11}q_{22}\boldsymbol{k}+q_{11}q_{23}\boldsymbol{j}+q_{11}q_{24}\boldsymbol{i}+q_{12}q_{21}\boldsymbol{k}-q_{12}q_{22}-q_{12}q_{23}\boldsymbol{i}+q_{12}q_{24}\boldsymbol{j}\\ &-q_{13}q_{21}\boldsymbol{j}+q_{13}q_{22}\boldsymbol{i}-q_{13}q_{23}+q_{13}q_{24}\boldsymbol{k}+q_{14}(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k})+q_{14}q_{24} \end{aligned}\tag{16} q1q2===(q11i+q12j+q13k+q14)(q21i+q22j+q23k+q24)q11i(q21i+q22j+q23k+q24)+q12j(q21i+q22j+q23k+q24)+q13k(q21i+q22j+q23k+q24)+q14(q21i+q22j+q23k+q24)q11q21q11q22k+q11q23j+q11q24i+q12q21kq12q22q12q23i+q12q24jq13q21j+q13q22iq13q23+q13q24k+q14(q21i+q22j+q23k)+q14q24(16)

q 3 = q 1 ⊗ q 2 = q 31 i + q 32 j + q 33 k + q 34 \boldsymbol{q}_3=\boldsymbol{q}_1\otimes\boldsymbol{q}_2=q_{31}\boldsymbol{i}+q_{32}\boldsymbol{j}+q_{33}\boldsymbol{k}+q_{34} q3=q1q2=q31i+q32j+q33k+q34,进一步对式(16)进行整理可得
q 31 = q 11 q 24 − q 12 q 23 + q 13 q 22 + q 14 q 21 = q 14 q 21 + q 24 q 11 − ( q 12 q 23 − q 13 q 22 ) q 32 = q 11 q 23 + q 12 q 24 − q 13 q 21 + q 14 q 22 = q 14 q 22 + q 24 q 12 − ( q 13 q 21 − q 11 q 23 ) q 33 = − q 11 q 22 + q 12 q 21 + q 13 q 24 + q 14 q 23 = q 14 q 23 + q 24 q 13 − ( q 11 q 22 − q 12 q 21 ) q 34 = − q 11 q 21 − q 12 q 22 − q 13 q 23 + q 14 q 24 (17) \begin{aligned} q_{31}&=q_{11}q_{24}-q_{12}q_{23}+q_{13}q_{22}+q_{14}q_{21}=q_{14}q_{21}+q_{24}q_{11}-(q_{12}q_{23}-q_{13}q_{22})\\ q_{32}&=q_{11}q_{23}+q_{12}q_{24}-q_{13}q_{21}+q_{14}q_{22}=q_{14}q_{22}+q_{24}q_{12}-(q_{13}q_{21}-q_{11}q_{23})\\ q_{33}&=-q_{11}q_{22}+q_{12}q_{21}+q_{13}q_{24}+q_{14}q_{23}=q_{14}q_{23}+q_{24}q_{13}-(q_{11}q_{22}-q_{12}q_{21})\\ q_{34}&=-q_{11}q_{21}-q_{12}q_{22}-q_{13}q_{23}+q_{14}q_{24} \end{aligned}\tag{17} q31q32q33q34=q11q24q12q23+q13q22+q14q21=q14q21+q24q11(q12q23q13q22)=q11q23+q12q24q13q21+q14q22=q14q22+q24q12(q13q21q11q23)=q11q22+q12q21+q13q24+q14q23=q14q23+q24q13(q11q22q12q21)=q11q21q12q22q13q23+q14q24(17)

q v = [ q 1 , q 2 , q 3 ] T \boldsymbol{q}_\mathrm{v}=[q_1,q_2,q_3]^\mathrm{T} qv=[q1,q2,q3]T表示四元数 q \boldsymbol{q} q的矢量部分(相应地, q 4 q_4 q4称为 q \boldsymbol{q} q的标量部分),考虑到
q 1 v × q 2 v = ∣ i j k q 11 q 12 q 13 q 21 q 22 q 23 ∣ = ( q 12 q 23 − q 13 q 22 ) i + ( q 13 q 21 − q 11 q 23 ) j + ( q 11 q 22 − q 12 q 21 ) k (18) \begin{aligned} \boldsymbol{q}_\mathrm{1v}\times\boldsymbol{q}_\mathrm{2v}&=\left\vert\begin{matrix} \boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\ q_{11} & q_{12} & q_{13}\\ q_{21} & q_{22} & q_{23} \end{matrix} \right\vert\\ &=(q_{12}q_{23}-q_{13}q_{22})\boldsymbol{i}+(q_{13}q_{21}-q_{11}q_{23})\boldsymbol{j}+(q_{11}q_{22}-q_{12}q_{21})\boldsymbol{k} \end{aligned}\tag{18} q1v×q2v=iq11q21jq12q22kq13q23=(q12q23q13q22)i+(q13q21q11q23)j+(q11q22q12q21)k(18)

结合式(17)和(18)可知
q 3 = q 1 ⊗ q 2 = [ q 14 q 2 v + q 24 q 1 v − q 1 v × q 2 v q 14 q 24 − q 1 v ⋅ q 2 v ] = { q 1 } L q 2 = { q 2 } R q 1 (19) \boldsymbol{q}_3=\boldsymbol{q}_1\otimes\boldsymbol{q}_2=\begin{bmatrix} q_{14}\boldsymbol{q}_{2\mathrm{v}}+q_{24}\boldsymbol{q}_{1\mathrm{v}}-\boldsymbol{q}_{1\mathrm{v}}\times\boldsymbol{q}_{2\mathrm{v}}\\ q_{14}q_{24}-\boldsymbol{q}_{1\mathrm{v}}\cdot\boldsymbol{q}_{2\mathrm{v}} \end{bmatrix}=\{\boldsymbol{q}_1\}_L\boldsymbol{q}_2=\{\boldsymbol{q}_2\}_R\boldsymbol{q}_1\tag{19} q3=q1q2=[q14q2v+q24q1vq1v×q2vq14q24q1vq2v]={q1}Lq2={q2}Rq1(19)

其中
{ q } L = q 4 I 4 × 4 + [ [ [ q v ] ] q v − q v T 0 ] ,   { q } R = q 4 I 4 × 4 + [ − [ [ q v ] ] q v − q v T 0 ] (20) \{\boldsymbol{q}\}_L=q_4I_{4\times4}+\begin{bmatrix} [[\boldsymbol{q}_\mathrm{v}]] & \boldsymbol{q}_\mathrm{v}\\ -\boldsymbol{q}_\mathrm{v}^\mathrm{T} & 0 \end{bmatrix},~\{\boldsymbol{q}\}_R=q_4I_{4\times4}+\begin{bmatrix} -[[\boldsymbol{q}_\mathrm{v}]] & \boldsymbol{q}_\mathrm{v}\\ -\boldsymbol{q}_\mathrm{v}^\mathrm{T} & 0 \end{bmatrix}\tag{20} {q}L=q4I4×4+[[[qv]]qvTqv0], {q}R=q4I4×4+[[[qv]]qvTqv0](20)

如果 q 1 ⊗ q 2 = 1 \boldsymbol{q}_1\otimes\boldsymbol{q}_2=1 q1q2=1(严格来说是 0 i + 0 j + 0 k + 1 0\boldsymbol{i}+0\boldsymbol{j}+0\boldsymbol{k}+1 0i+0j+0k+1),则称 q 2 \boldsymbol{q}_2 q2 q 1 \boldsymbol{q}_1 q1的逆,记为 q 2 = q 1 − 1 \boldsymbol{q}_2=\boldsymbol{q}_1^{-1} q2=q11,另一方面,我们称 q ∗ = − q 1 i − q 2 j − q 3 k + q 4 \boldsymbol{q}^*=-q_1\boldsymbol{i}-q_2\boldsymbol{j}-q_3\boldsymbol{k}+q_4 q=q1iq2jq3k+q4 q \boldsymbol{q} q的共轭,且有
q ⊗ q ∗ = [ − q 4 q v + q 4 q v − q v × q v q 4 2 + q v ⋅ q v ] = [ 0 ∥ q ∥ 2 2 ] (21) \boldsymbol{q}\otimes\boldsymbol{q}^*=\begin{bmatrix} -q_4\boldsymbol{q}_\mathrm{v}+q_4\boldsymbol{q}_\mathrm{v}-\boldsymbol{q}_\mathrm{v}\times\boldsymbol{q}_\mathrm{v}\\ q_4^2+\boldsymbol{q}_\mathrm{v}\cdot\boldsymbol{q}_\mathrm{v} \end{bmatrix}= \begin{bmatrix} 0\\ \Vert\boldsymbol{q}\Vert_2^2 \end{bmatrix}\tag{21} qq=[q4qv+q4qvqv×qvq42+qvqv]=[0q22](21)

因此四元数 q \boldsymbol{q} q的逆为 q ∗ ∥ q ∥ 2 2 \frac{\boldsymbol{q}^*}{\Vert\boldsymbol{q}\Vert_2^2} q22q

根据上述四元数的基本性质,如果我们将式(12)定义的 η \boldsymbol{\eta} η也视为四元数,那么会发生什么呢?首先,由于 η \boldsymbol{\eta} η的范数为1,因此其逆为 η ∗ \boldsymbol{\eta}^* η,注意四元数的乘法满足分配律和结合律,对于任意矢量 v \mathbf{v} v,考虑如下运算(将 v \mathbf{v} v视为四元数 [ v   0 ] T [\mathbf{v}~0]^\mathrm{T} [v 0]T)
η ⊗ v ⊗ η ∗ = ( η v + η 4 ) ⊗ v ⊗ ( − η v + η 4 ) = ( n ^ sin ⁡ θ 2 + cos ⁡ θ 2 ) ⊗ v ⊗ ( − n ^ sin ⁡ θ 2 + cos ⁡ θ 2 ) = ( v cos ⁡ θ 2 − n ^ × v sin ⁡ θ 2 − n ^ ⋅ v sin ⁡ θ 2 ) ⊗ ( − n ^ sin ⁡ θ 2 + cos ⁡ θ 2 ) = ( − n ^ ⋅ v sin ⁡ θ 2 ) ( − n ^ sin ⁡ θ 2 ) + ( v cos ⁡ θ 2 − n ^ × v sin ⁡ θ 2 ) cos ⁡ θ 2 − ( v cos ⁡ θ 2 − n ^ × v sin ⁡ θ 2 ) × ( − n ^ sin ⁡ θ 2 ) + ( − n ^ ⋅ v sin ⁡ θ 2 ) cos ⁡ θ 2 − ( v cos ⁡ θ 2 − n ^ × v sin ⁡ θ 2 ) ⋅ ( − n ^ sin ⁡ θ 2 ) (22) \begin{aligned} &\boldsymbol{\eta}\otimes\mathbf{v}\otimes\boldsymbol{\eta}^*\\ =&(\boldsymbol{\eta}_\mathrm{v}+\eta_4)\otimes\mathbf{v}\otimes(-\boldsymbol{\eta}_\mathrm{v}+\eta_4)\\ =&(\hat{\mathbf{n}}\sin\frac{\theta}{2}+\cos\frac{\theta}{2})\otimes\mathbf{v}\otimes(-\hat{\mathbf{n}}\sin\frac{\theta}{2}+\cos\frac{\theta}{2})\\ =&(\mathbf{v}\cos\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\frac{\theta}{2}-\hat{\mathbf{n}}\cdot\mathbf{v}\sin\frac{\theta}{2})\otimes(-\hat{\mathbf{n}}\sin\frac{\theta}{2}+\cos\frac{\theta}{2})\\ =&(-\hat{\mathbf{n}}\cdot\mathbf{v}\sin\frac{\theta}{2})(-\hat{\mathbf{n}}\sin\frac{\theta}{2})+(\mathbf{v}\cos\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\frac{\theta}{2})\cos\frac{\theta}{2}\\ &-(\mathbf{v}\cos\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\frac{\theta}{2})\times(-\hat{\mathbf{n}}\sin\frac{\theta}{2})+(-\hat{\mathbf{n}}\cdot\mathbf{v}\sin\frac{\theta}{2})\cos\frac{\theta}{2}\\ &-(\mathbf{v}\cos\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\frac{\theta}{2})\cdot(-\hat{\mathbf{n}}\sin\frac{\theta}{2}) \end{aligned}\tag{22} ====ηvη(ηv+η4)v(ηv+η4)(n^sin2θ+cos2θ)v(n^sin2θ+cos2θ)(vcos2θn^×vsin2θn^vsin2θ)(n^sin2θ+cos2θ)(n^vsin2θ)(n^sin2θ)+(vcos2θn^×vsin2θ)cos2θ(vcos2θn^×vsin2θ)×(n^sin2θ)+(n^vsin2θ)cos2θ(vcos2θn^×vsin2θ)(n^sin2θ)(22)

进一步对式(22)进行整理可得
η ⊗ v ⊗ η ∗ = ( n ^ ⋅ v ) n ^ sin ⁡ 2 θ 2 + v cos ⁡ 2 θ 2 − n ^ × v sin ⁡ θ − ( n ^ × v ) × n ^ sin ⁡ 2 θ 2 = v ∥ sin ⁡ 2 θ 2 + v ∥ cos ⁡ 2 θ 2 + v ⊥ cos ⁡ 2 θ 2 − n ^ × v ⊥ sin ⁡ θ − v ⊥ sin ⁡ 2 θ 2 = v ∥ + cos ⁡ ( θ ) v ⊥ − sin ⁡ ( θ ) n ^ × v ⊥ (23) \begin{aligned} &\boldsymbol{\eta}\otimes\mathbf{v}\otimes\boldsymbol{\eta}^*\\ =&(\hat{\mathbf{n}}\cdot\mathbf{v})\hat{\mathbf{n}}\sin^2\frac{\theta}{2}+\mathbf{v}\cos^2\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\theta- (\hat{\mathbf{n}}\times\mathbf{v})\times\hat{\mathbf{n}}\sin^2\frac{\theta}{2}\\ =&\mathbf{v}_\parallel\sin^2\frac{\theta}{2}+\mathbf{v}_\parallel\cos^2\frac{\theta}{2}+\mathbf{v}_\perp\cos^2\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}_\perp\sin\theta-\mathbf{v}_\perp\sin^2\frac{\theta}{2}\\ =&\mathbf{v}_\parallel+\cos(\theta)\mathbf{v}_\perp-\sin(\theta)\hat{\mathbf{n}}\times\mathbf{v}_\perp \end{aligned}\tag{23} ===ηvη(n^v)n^sin22θ+vcos22θn^×vsinθ(n^×v)×n^sin22θvsin22θ+vcos22θ+vcos22θn^×vsinθvsin22θv+cos(θ)vsin(θ)n^×v(23)

对比式(1)和(23)可知 η ⊗ v ⊗ η ∗ \boldsymbol{\eta}\otimes\mathbf{v}\otimes\boldsymbol{\eta}^* ηvη R ( n ^ , θ ) v \boldsymbol{R}(\hat{\mathbf{n}},\theta)\mathbf{v} R(n^,θ)v的作用相同,都是进行坐标变换。

若设 R ( η 1 ) \boldsymbol{R}(\boldsymbol{\eta}_1) R(η1) R ( η 2 ) \boldsymbol{R}(\boldsymbol{\eta}_2) R(η2)分别为从 s \mathrm{s} s系到 b 1 \mathrm{b}_1 b1系和从 b 1 \mathrm{b}_1 b1系到 b 2 b_2 b2系的旋转矩阵, R ( η 3 ) \boldsymbol{R}(\boldsymbol{\eta}_3) R(η3)表示从 s \mathrm{s} s系到 b 2 \mathrm{b}_2 b2系的旋转矩阵,则有
R ( η 3 ) = R ( η 2 ) R ( η 1 ) ⇒ R ( η 3 ) v = R ( η 2 ) R ( η 1 ) v = R ( η 2 ) ( R ( η 1 ) v ) (24) \boldsymbol{R}(\boldsymbol{\eta}_3)=\boldsymbol{R}(\boldsymbol{\eta}_2)\boldsymbol{R}(\boldsymbol{\eta}_1)\Rightarrow\boldsymbol{R}(\boldsymbol{\eta}_3)\mathbf{v}=\boldsymbol{R}(\boldsymbol{\eta}_2)\boldsymbol{R}(\boldsymbol{\eta}_1)\mathbf{v}=\boldsymbol{R}(\boldsymbol{\eta}_2)(\boldsymbol{R}(\boldsymbol{\eta}_1)\mathbf{v})\tag{24} R(η3)=R(η2)R(η1)R(η3)v=R(η2)R(η1)v=R(η2)(R(η1)v)(24)

则有
η 3 ⊗ v ⊗ η 3 ∗ = η 2 ⊗ ( η 1 ⊗ v ⊗ η 1 ∗ ) ⊗ η 2 ∗ = ( η 2 ⊗ η 1 ) ⊗ v ( η 2 ⊗ η 1 ) ∗ ⇒ η 3 = η 2 ⊗ η 1 (25) \begin{aligned} \boldsymbol{\eta}_3\otimes\mathbf{v}\otimes\boldsymbol{\eta}_3^*&=\boldsymbol{\eta}_2\otimes(\boldsymbol{\eta}_1\otimes\mathbf{v}\otimes\boldsymbol{\eta}_1^*)\otimes\boldsymbol{\eta}_2^*\\ &=(\boldsymbol{\eta}_2\otimes\boldsymbol{\eta}_1)\otimes\mathbf{v}(\boldsymbol{\eta}_2\otimes\boldsymbol{\eta}_1)^*\Rightarrow\boldsymbol{\eta}_3=\boldsymbol{\eta}_2\otimes\boldsymbol{\eta}_1 \end{aligned}\tag{25} η3vη3=η2(η1vη1)η2=(η2η1)v(η2η1)η3=η2η1(25)

由式(24)和(25)可知,式(15)定义的四元数乘法可以保证在姿态运动中,两个四元数相乘的顺序和姿态矩阵相乘的顺序是一致的。原则上来说,直接根据两个姿态矩阵相乘和等效姿态矩阵的关系,Baker–Campbell–Hausdorff 公式,以及四元数和姿态矩阵的关系,也可推导出四元数的乘法定义,只是没有一开始设定四元数乘法规则,然后验证和姿态矩阵相乘的关系那样直接一些。最后再强调一下,四元数本身没有范数限制,但是用来表示姿态时需要加上范数为1的约束。

三、欧拉角和四元数的转换

欧拉角和四元数可以互相转换,从欧拉角可以直接获得四元数,而从四元数获得欧拉角则可通过旋转矩阵进行,且整个过程中的运算与欧拉角定义的三次转动顺序有关,这里介绍从欧拉角到四元数的运算。有了四元数的乘法定义后,我们可以将每一次旋转都和一个四元数进行对应,然后通过四元数乘法获得最终的四元数,具体来说,有
η ( 1 ^ , θ ) = [ sin ⁡ ( θ / 2 )   0   0   cos ⁡ ( θ / 2 ) ] η ( 2 ^ , θ ) = [ 0   sin ⁡ ( θ / 2 )   0   cos ⁡ ( θ / 2 ) ] η ( 3 ^ , θ ) = [ 0   0   sin ⁡ ( θ / 2 )   cos ⁡ ( θ / 2 ) ] (26) \begin{aligned} &\boldsymbol{\eta}(\hat{\boldsymbol{1}},\theta)=[\sin(\theta/2)~0~0~\cos(\theta/2)]\\ &\boldsymbol{\eta}(\hat{\boldsymbol{2}},\theta)=[0~\sin(\theta/2)~0~\cos(\theta/2)]\\ &\boldsymbol{\eta}(\hat{\boldsymbol{3}},\theta)=[0~0~\sin(\theta/2)~\cos(\theta/2)] \end{aligned}\tag{26} η(1^,θ)=[sin(θ/2) 0 0 cos(θ/2)]η(2^,θ)=[0 sin(θ/2) 0 cos(θ/2)]η(3^,θ)=[0 0 sin(θ/2) cos(θ/2)](26)

对于 3 − 1 − 3 3-1-3 313的旋转顺序,有
η 313 ( φ , ϑ , ψ ) = η ( 3 ^ , ψ ) ⊗ η ( 1 ^ , ϑ ) η ( 3 ^ , φ ) = [ sin ⁡ ( ϑ / 2 ) cos ⁡ ( φ / 2 − ψ / 2 ) sin ⁡ ( ϑ / 2 ) sin ⁡ ( φ / 2 − ψ / 2 ) cos ⁡ ( ϑ / 2 ) sin ⁡ ( φ / 2 + ψ / 2 ) cos ⁡ ( ϑ / 2 ) cos ⁡ ( φ / 2 + ψ / 2 ) ] (27) \boldsymbol{\eta}_{313}(\varphi,\vartheta,\psi)=\boldsymbol{\eta}(\hat{\boldsymbol{3}},\psi)\otimes\boldsymbol{\eta}(\hat{\boldsymbol{1}},\vartheta)\boldsymbol{\eta}(\hat{\boldsymbol{3}},\varphi)=\begin{bmatrix} \sin(\vartheta/2)\cos(\varphi/2-\psi/2)\\ \sin(\vartheta/2)\sin(\varphi/2-\psi/2)\\ \cos(\vartheta/2)\sin(\varphi/2+\psi/2)\\ \cos(\vartheta/2)\cos(\varphi/2+\psi/2) \end{bmatrix}\tag{27} η313(φ,ϑ,ψ)=η(3^,ψ)η(1^,ϑ)η(3^,φ)=sin(ϑ/2)cos(φ/2ψ/2)sin(ϑ/2)sin(φ/2ψ/2)cos(ϑ/2)sin(φ/2+ψ/2)cos(ϑ/2)cos(φ/2+ψ/2)(27)

对于其他旋转顺序的计算过程则类似。

参考文献

[1]Shuster MD. A survey of attitude representations. Navigation. 1993;8(9):439-517.
[2]秦永元. 惯性导航(第二版). 科学出版社, 2014.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值