関連用語:オイラー角
クォータニオン(quaternion)
クォータニオンとは、3次元空間における剛体の姿勢を表現する方法の一つあり、「方向ベクトル$(\lambda_x, \lambda_y, \lambda_z)$」方向に「角度$\theta$」だけ回転させたものです。
クォータニオンは、「$q_x, q_y, q_z, q_w$」の4つの変数で表現されます。
クォータニオンは、「$q_x, q_y, q_z, q_w$」の4つの変数で表現されます。
$$
\begin{align}
q &= (\lambda_x \sin{\frac{\theta}{2}}, \lambda_y \sin{\frac{\theta}{2}}, \lambda_z \sin{\frac{\theta}{2}}, \cos{\frac{\theta}{2}}) \\
&= (q_x, q_y, q_z, q_w)
\end{align}
$$
ロボットへの応用
ロボットの姿勢を表現する際にクォータニオンを使用することがあります。
クォータニオンのメリット/デメリット
クォータニオンのメリット/デメリットには以下のようなものがあります。
メリット
- ジンバルロック(Gimal Lock)と呼ばれる自由度が1つなくなる現象が起こらないため、全方位における回転を問題なく表現できる
- 例えばオイラー角の場合、ピッチ角度が±90度の時に、ロール・ピッチのどちらの値を変更しても、Y軸周りに回転してしまう(自由度が3→2に減少している)
デメリット
- クォータニオンを表す4つの変数を見ただけでは、どのような姿勢を示すのかが直感的にわかりにくい
このように、クォータニオンは計算上の利便性があるため、ROSなどでは一般にクォータニオンが採用されています。
といった使い分けがされる事も多いです。