1 minute read

尤拉參數(Euler Parameters)與姿態四元數

首先,簡單回顧之前推導的羅德里格旋轉公式(Rodrigues’ rotation formula),其功能在於:給定一個自由向量 $\boldsymbol{\rho}_1$,以及轉動軸 $\mathbf{u}$ 與角度 $\phi$,即可求得旋轉後的新向量 $\boldsymbol{\rho}_2$:

\[\boldsymbol{\rho}_2 = (\boldsymbol{\rho}_1 \cdot \mathbf{u}) \mathbf{u} (1 - \cos \phi) + \cos \phi \, \boldsymbol{\rho}_1 + \sin \phi \, \mathbf{u} \times \boldsymbol{\rho}_1\]

將羅德里格旋轉公式改寫為矩陣形式:

\[\begin{aligned} \boldsymbol{\rho}_2 &= (\boldsymbol{\rho}_1 \cdot \mathbf{u}) \mathbf{u} (1-\cos\phi) + \cos\phi \, \boldsymbol{\rho}_1 + \sin\phi \, \mathbf{u} \times \boldsymbol{\rho}_1 \\ &= \underbrace{\mathbf{u}\mathbf{u}^T}_{3\times3}(1-\cos\phi)\boldsymbol{\rho}_1 + \underbrace{\mathbf{I}}_{3\times3}\cos\phi\,\boldsymbol{\rho}_1 + \underbrace{[\mathbf{u}\times]}_{3\times3}\sin\phi\,\boldsymbol{\rho}_1 \\ &= \left\{ \mathbf{u}\mathbf{u}^T(1-\cos\phi) + \mathbf{I}\cos\phi + [\mathbf{u}\times]\sin\phi \right\}\boldsymbol{\rho}_1 \\ &= \mathbf{R}(\mathbf{u},\phi)\boldsymbol{\rho}_1 \end{aligned}\]

因此可得旋轉矩陣:

\[\mathbf{R}(\mathbf{u},\phi) = \mathbf{u}\mathbf{u}^T(1-\cos\phi) + \mathbf{I}\cos\phi + [\mathbf{u}\times]\sin\phi\]

尤拉參數定義


\(\theta = \frac{1}{2}\phi\)

並使用倍角公式:

\[\cos\phi = 1 - 2\sin^2\theta = 2\cos^2\theta - 1, \quad \sin\phi = 2\sin\theta\cos\theta\]

則旋轉矩陣可改寫為:

\[\begin{aligned} \mathbf{R}(\mathbf{u},\phi) &= 2\Big\{ (\mathbf{u}\sin\theta)(\mathbf{u}\sin\theta)^T + \mathbf{I}(\cos^2\theta - \tfrac12) + [\mathbf{u}\sin\theta \times]\cos\theta \Big\} \end{aligned}\]

定義尤拉參數(Euler parameters):

\[\begin{aligned} c_0 &= \cos\theta \\ c_1 &= u_x\sin\theta \\ c_2 &= u_y\sin\theta \\ c_3 &= u_z\sin\theta \end{aligned}\]

並令:

\[\mathbf{c} = \begin{bmatrix} c_0 & c_1 & c_2 & c_3 \end{bmatrix}^T\]

則旋轉矩陣可寫為:

\[\mathbf{R}(\mathbf{c}) = 2 \begin{bmatrix} c_1^2 + c_0^2 - \tfrac12 & c_1c_2 - c_3c_0 & c_1c_3 + c_2c_0 \\ c_2c_1 + c_3c_0 & c_2^2 + c_0^2 - \tfrac12 & c_2c_3 - c_1c_0 \\ c_3c_1 - c_2c_0 & c_3c_2 + c_1c_0 & c_3^2 + c_0^2 - \tfrac12 \end{bmatrix} \qquad (1)\]

四元數表示

由於:

\[\mathbf{c} = c_0 + c_1\mathbf{i}_0 + c_2\mathbf{j}_0 + c_3\mathbf{k}_0\]

其形式完全符合四元數定義:

\[\mathbf{q} = q_0 + q_1\mathbf{i} + q_2\mathbf{j} + q_3\mathbf{k}\]

因此尤拉參數可視為姿態四元數

\[\mathbf{q} = \mathbf{c}\]

且其為單位四元數:

\[\begin{aligned} \|\mathbf{q}\| &= q_0^2 + q_1^2 + q_2^2 + q_3^2 \\ &= \cos^2\theta + (u_x^2+u_y^2+u_z^2)\sin^2\theta \\ &= 1 \end{aligned} \qquad (2)\]

四元數旋轉矩陣

旋轉矩陣亦可直接由四元數表示:

\[\mathbf{R}(\mathbf{q}) = \begin{bmatrix} 2(q_1^2+q_0^2)-1 & 2(q_1q_2-q_3q_0) & 2(q_1q_3+q_0q_2) \\ 2(q_2q_1+q_3q_0) & 2(q_2^2+q_0^2)-1 & 2(q_2q_3-q_0q_1) \\ 2(q_3q_1-q_2q_0) & 2(q_3q_2+q_1q_0) & 2(q_3^2+q_0^2)-1 \end{bmatrix}\]

利用單位四元數性質,可化簡為:

\[\mathbf{R}(\mathbf{q}) = \begin{bmatrix} 1-2(q_2^2+q_3^2) & 2(q_1q_2-q_3q_0) & 2(q_1q_3+q_0q_2) \\ 2(q_2q_1+q_3q_0) & 1-2(q_1^2+q_3^2) & 2(q_2q_3-q_0q_1) \\ 2(q_3q_1-q_2q_0) & 2(q_3q_2+q_1q_0) & 1-2(q_1^2+q_2^2) \end{bmatrix} \qquad (3)\]

四元數旋轉公式

若將三維向量視為純虛四元數,則旋轉可表示為:

\[\boldsymbol{\rho}_2 = \mathbf{q} \times \boldsymbol{\rho}_1 \times \mathbf{q}^* \qquad (4)\]

其結果等價於:

\[\boldsymbol{\rho}_2 = \mathbf{R}(\mathbf{q})\boldsymbol{\rho}_1\]

坐標轉換應用

若已知座標系 $R_b$ 相對 $R_0$ 的姿態四元數 $\mathbf{q}$,則任一向量可轉換為:

\[\mathbf{g}_b = \mathbf{R}^T(\mathbf{q})\mathbf{g}_0\]

參考資料

林昱廷,
飛彈姿態運動之適應控制研究
碩士論文,機械工程學系,國立臺灣科技大學,2021。

Leave a comment