概要
オイラー角(Euler angles)は、3次元空間における剛体の姿勢を表現する手法の1つである。オイラー角では3つの連続した回転を用いて、物体に固定された座標と空間に固定された座標の関係を行列で表現する。
Eulerは、ある剛体を回転させたときに、剛体上の点が空間の中でどのように表現できるかを示した[1]。その方法は、剛体の軸の向きを定める2つの回転と、その軸回りの回転という3つの連続した回転によるものである。実際この表現方法の研究の後に、オイラーは回転定理(剛体がある点を中心に回転するとき、その点を通りかつその方向が回転前後で同じであるような回転軸を常に見つけることができる)を発見した[2]。
Eulerは当初、\(z\) 軸回りに回転→ \(x\) 軸回りに回転→ \(z\) 軸周りに回転という順序を考案していた。これは回転の順番からz–x–zやZXZ、もしくは3-1-3などと表現される。これは例えば、地球の中心を原点として極方向に \(z\) 軸、本初子午線方向に \(x\) 軸、それらと右手系をなすように \(y\) 軸を定めたとき、空間に固定された慣性系に対して、地球を地軸回りに回転させ、本初子午線に沿って傾けた後、地軸の回りにさらに回転させる、という考え方に相当する。
回転行列による表現
オイラー角(z–x–z)を、\(z\) 軸回りに \(\psi\) 回転→ \(x\) 軸回りに \(\theta\) 回転→ \(z\) 軸周りに \(\phi\) 回転と定めれば、回転行列 \(R\) を用いて次のように表現できる。
\[\boldsymbol{v}_{g} = R \boldsymbol{v}_{b} \tag{1}\]
\[R = R_z(\psi)R_x(\theta)R_z(\phi) =
\left[\begin{array}{ccc}
\cos\phi\cos\psi-\sin\phi\cos\theta\sin\psi & -\cos\phi\sin\psi-\sin\phi\cos\theta\cos\psi & \sin\phi\sin\theta \\
\sin\phi\cos\psi+\cos\phi\cos\theta\sin\psi & -\sin\phi\sin\psi+\cos\phi\cos\theta\cos\psi & -\cos\phi\sin\theta \\
\sin\theta\sin\psi & \sin\theta\cos\psi & \cos\theta
\end{array}\right]
\]

ただし、\(\boldsymbol{v}_b\)は物体に固定された座標系(物体座標系)におけるベクトルの成分、\(\boldsymbol{v}_g\)は空間に固定された座標系(空間座標系)におけるベクトルの成分であり、回転行列は以下である(\(R_y\)はここでは使用していない)。
\[\begin{equation}
R_x(\theta)
=
\left[\begin{array}{ccc}
1 & 0 & 0 \\
0 & \cos{\theta} & -\sin{\theta} \\
0 & \sin{\theta} & \cos{\theta} \\
\end{array}\right]
\end{equation}\]
\[\begin{equation}
R_y(\theta)
=
\left[\begin{array}{ccc}
\cos{\theta} & 0 & \sin{\theta} \\
0 & 1 & 0 \\
-\sin{\theta} & 0 & \cos{\theta} \\
\end{array}\right]
\end{equation}\]
\[\begin{equation}
R_z(\theta)
=
\left[\begin{array}{ccc}
\cos{\theta} & -\sin{\theta} & 0 \\
\sin{\theta} & \cos{\theta} & 0\\
0 & 0 & 1 \\
\end{array}\right]
\end{equation}\]
直感に反して行列が左から並んでいるのは、以下の計算が前提にあるためである。
\[\boldsymbol{v}_{g} = (R_z(\psi)R_x(\theta)R_z(\phi)R_x(\theta)^{-1}R_z(\psi)^{-1})(R_z(\psi)R_x(\theta)R_z(\psi)^{-1})R_z(\psi) \boldsymbol{v}_{b}\]
ここで行っているのは、直前までの回転をキャンセルし、所望の軸で回した後でまた戻すという手順である。これを計算すると回転の順番で左から行列が並ぶことになる。この手順が必要な理由は、オイラー角が回転後の座標系(=物体座標系)の軸回りに回転を行う手順だからである。例えば \(R_z(\psi)\) で回した後のベクトルを \(R_x(\theta)\) で回すと、\(R_z(\psi)\) で回転させる前の座標系(=空間座標系)の \(x\) 軸回りで回転させてしまうためである。広義では両方ともオイラー角に含まれ、物体座標系で回転を行うものを物体角(intrinsic)、空間座標系(extrinsic)で回転を行うものを空間角と呼んで区別する。特に明示しない場合は物体角であることが一般的である。
なお、空間角の場合は素直に
\[\boldsymbol{v}_{g} = R_x(\phi)R_x(\theta)R_z(\psi)\boldsymbol{v}_{b} \tag{2}\]
となる。
座標変換行列による表現
物体座標系 \(\boldsymbol{v}_{b}\) から空間座標系 \(\boldsymbol{v}_{b}\) への変換は回転行列 \(R\) によって行われた。これは、最初は固定座標系と重なる位置にあった物体座標系を次々と回転させていく操作に相当する。言い換えれば物体上の点が空間座標系でどのように表されるかを求める行為であり、例えばコンピュータ・グラフィックス等で回転する物体を表示する際は \(R\) を物体に適用することで空間内でのピクセルの位置計算が可能になる。
反対に、空間座標系 \(\boldsymbol{v}_{b}\) から物体座標系 \(\boldsymbol{v}_{b}\) への変換を考える。これは、最初は物体座標系と重なる位置にあった空間座標系を次々と回転させていく操作に相当する。実際に回転するのは物体で空間は動かないが、物体座標系から見るために空間が逆方向に回転するように見える。つまり空間上の点が物体座標系でどのように表されるかを求める行為であり、例えば加速度センサを用いて物体に働く重力の方向を検出する際などに利用できる。
(1)式より、回転行列に対する座標変換行列 \(C\) を用いれば
\[\boldsymbol{v}_{b} = C \boldsymbol{v}_{g} \tag{3}\]
ただし、\(C = R^{-1}\)である。
同様にオイラー角(z–x–z)を、\(z\) 軸回りに \(\psi\) 回転→ \(x\) 軸回りに \(\theta\) 回転→ \(z\) 軸周りに \(\phi\) 回転と定めるとき、
\[C = C_z(\phi)C_x(\theta)C_z(\psi) =
\left[\begin{array}{ccc}
\cos\psi\cos\phi-\sin\psi\cos\theta\sin\phi & \cos\psi\sin\phi+\sin\psi\cos\theta\cos\phi & \sin\psi\sin\theta \\
-\sin\psi\cos\phi-\cos\psi\cos\theta\sin\phi & -\sin\psi\sin\phi+\cos\psi\cos\theta\cos\phi & \cos\psi\sin\theta \\
\sin\theta\sin\phi & -\sin\theta\cos\phi & \cos\theta
\end{array}\right]
\]
と表される。座標変換行列は以下である(\(C_y\)はここでは使用していない)。
\[\begin{equation}
C_x(\theta)
=
\left[\begin{array}{ccc}
1 & 0 & 0 \\
0 & \cos{\theta} & \sin{\theta} \\
0 & -\sin{\theta} & \cos{\theta} \\
\end{array}\right]
\end{equation}\]
\[\begin{equation}
C_y(\theta)
=
\left[\begin{array}{ccc}
\cos{\theta} & 0 & -\sin{\theta} \\
0 & 1 & 0 \\
\sin{\theta} & 0 & \cos{\theta} \\
\end{array}\right]
\end{equation}\]
\[\begin{equation}
C_z(\theta)
=
\left[\begin{array}{ccc}
\cos{\theta} & \sin{\theta} & 0 \\
-\sin{\theta} & \cos{\theta} & 0\\
0 & 0 & 1 \\
\end{array}\right]
\end{equation}\]
また、空間角の場合は(2)式より、
\[\boldsymbol{v}_{b} = C_z(\psi)C_x(\theta)C_z(\phi)\boldsymbol{v}_{g} \tag{4}\]
となる。
種類
オイラー角は回転を行う軸の順番によって次のような種類がある。同じ軸周りの回転を含む(i–j–i)型をオイラー角、すべて異なる軸の周りの回転となるもの(i–j–k)型をTait-Bryan角と呼ぶ。Tait-Bryan角は、すべて異なる軸に対しての回転が可能であることを示したTaitと、その概念を航空力学に持ち込み実用に与したBryanの名を冠してそう呼ばれる[3][4]。ただし、一般にオイラー角と呼ぶ場合は両方を含む。
Euler角(z–x–z、x–y–z、x–y–x、x–z–x、y–z–y、y–x–y)
Tait-Bryan角(z–y–x、x–z–y、y–x–z、x–y–z、y–z–x、z–x–y)
以上の12種類に物体角、空間角の違いを含めれば24種類のオイラー角が存在することになる。
Tait-Bryan角の中で重要なものはz–y–xで、\(z\) 軸回りに \(\psi\) 回転→ \(y\) 軸回りに \(\theta\) 回転→ \(x\) 軸周りに \(\phi\) と定めれば、次のように表される。
\[\begin{equation}
R = R_z(\psi)R_y(\theta)R_x(\phi)
=
\left[\begin{array}{ccc}
\cos{\psi}\cos{\theta} & \cos{\psi}\sin{\theta}\sin{\phi}-\sin{\psi}\cos{\phi} & \cos{\psi}\sin{\theta}\cos{\phi}+\sin{\psi}\sin{\phi} \\
\sin{\psi}\cos{\theta} & \sin{\psi}\sin{\theta}\sin{\phi}+\cos{\psi}\cos{\phi} & \sin{\psi}\sin{\theta}\cos{\phi}-\cos{\psi}\sin{\phi}\\
-\sin{\theta} & \cos{\theta}\sin{\phi} & \cos{\theta}\cos{\phi} \\
\end{array}\right]
\end{equation}\]
\[\begin{equation}
C = C_x(\phi)C_y(\theta)C_z(\psi)
=
\left[\begin{array}{ccc}
\cos{\theta}\cos{\psi} & \cos{\theta}\sin{\psi} & -\sin{\theta} \\
\sin{\phi}\sin{\theta}\cos{\psi}-\cos{\phi}\sin{\psi} & \sin{\phi}\sin{\theta}\sin{\psi}+\cos{\phi}\cos{\psi} & \sin{\phi}\cos{\theta}\\
\cos{\phi}\sin{\theta}\cos{\psi}+\sin{\phi}\sin{\psi} & \cos{\phi}\sin{\theta}\sin{\psi}-\sin{\phi}\cos{\psi} & \cos{\phi}\cos{\theta} \\
\end{array}\right]
\end{equation}\]

補足
回転の順序はz–x–zとz–y–xが一般的である。これは、オイラーが最初に定義した順番がz–x–z形式であったこと、またBryanが航空力学に使用したオイラー角の拡張がz–y–xの順番であったことに由来すると考えれられる[5]。
なお人工衛星においては、構造に固定されたセンサの値など特に物体座標系における値が問題となるため、z–y–xの座標変換行列で定義されることが多い。
回転行列や座標変換行列は便宜のために使い分けているが、本質的にはどちらも方向余弦行列(Direct Cosine Matrix, DCM)であることに違いはない。
参考
[1] L. Euler, “Du mouvement d’un corps solide quelconque lorsqu’il tourne autour d’un axe mobile,” Novi Commentarii academiae scientiarum Petropolitanae, vol. 20, pp. 179–183, 1776.
[2] L. Euler, Novi Commentarii academiae scientiarum Petropolitanae, vol. 20, pp. 189–207, 1776, p. 202.
[3] P. G. Tait, An Elementary Treatise on Quaternions. Oxford, U.K.: Clarendon Press, 1890, p. 232.
[4] S. P. Langley, The Longitudinal Stability of Aerial Gliders. Washington, DC, USA: Smithsonian Institution, 1891, p. 101.
[5] G. H. Bryan, Stability in Aviation. London, U.K.: Macmillan and Co., 1911, pp. 35–38.