クォータニオン

クォータニオン

image

関連用語:オイラー角

クォータニオンとは

クォータニオンとは、3次元空間における剛体の姿勢を表現する方法の一つであり、「方向ベクトル(λx,λy,λz)(\lambda_x, \lambda_y, \lambda_z)」方向に「角度θ\theta」だけ回転させたものとして表現されます。

より具体的に言うと、以下の4つの変数で表現されます。

q=(λxsinθ2,λysinθ2,λzsinθ2,cosθ2)=(qx,qy,qz,qw)\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つなくなる現象が起こらないため、全方位における回転を問題なく表現できる
  • クォータニオンを用いた「球面線形補間(SLERP)」と呼ばれる補間は、2つの回転間のスムーズな遷移を簡単に実現できる
    • 例えば、ロボットの関節を滑らかに動かしたい場合はクォータニオンで表現したほうが簡単に滑らかな補間が実現可能

デメリット

  • クォータニオンを示す4つの数値を見ただけではどのような姿勢を示しているかが直感的に分かりにくい

このように、クォータニオンはメリット・デメリットが存在するため、状況に応じてオイラー角と呼ばれる姿勢表現方法を利用することもあります。 なお、オクォータニオンとオイラー角は相互に変換が可能です。

参考サイトなど

  • https://itandcfd.com/quaternion/1883/#google_vignette
  • https://qiita.com/drken/items/0639cf34cce14e8d58a5