四元数(クォータニオン)
以下の乗法の規則に従う虚数単位$ i,j,k:
$ \begin{aligned} & i^2 = j^2 = k^2 = -1 , \\ & ij = k, jk = i, ki = j , \\ & ji = -k, kj = -1, ik = -j \end{aligned}
四元数(Quaternion)は$ i,j,kと実数$ q_0, q_1, q_2, q_3を用いて
$ {\boldsymbol q} = q_0 + q_1 i + q_2 j + q_3 k
と表される.成分表示として$ \left( q_0, q_1, q_2 , q_3 \right)^\topとも書く.
($ {\boldsymbol q} = q_x i + q_y j + q_z k + q_wとして成分表示$ \left(q_x, q_y, q_z , q_w\right)^\topもよく使われる,成分の順番が異なるので注意)
実数部分$ q_0をスカラー部分,虚数部分$ q_1 i + q_2 j + q_3 kをベクトル部分と呼ぶ.
四元数はスカラー$ sと三次元ベクトル$ {\boldsymbol v}の和として,$ {\boldsymbol q} = s + \begin{pmatrix} v_1 \\ v_2 \\ v_3 \end{pmatrix}とも表現される.
$ {\boldsymbol q}_0 = s_0 + {\boldsymbol v}_0,$ {\boldsymbol q}_1 = s_1 + {\boldsymbol v}_1として,
四元数の和と積は,
$ {\boldsymbol q}_0 + {\boldsymbol q}_1 = s_0 + s_1 + {\boldsymbol v}_0 + {\boldsymbol v}_1
$ {\boldsymbol q}_0 {\boldsymbol q}_1 = s_0 s_1 - {\boldsymbol v}_0 \cdot {\boldsymbol v}_1 + s_0 {\boldsymbol v}_1 + s_1 {\boldsymbol v}_0 + {\boldsymbol v}_0 \times {\boldsymbol v}_1
となる(導出は省略).
四元数$ {\boldsymbol q} = s + {\boldsymbol v}の共役四元数(conjugate quaternion)はベクトル部分を$ - 1倍させた$ \bar{\boldsymbol q} = s - {\boldsymbol v}として定義される.
四元数の積の共役について
$ \begin{aligned} \overline{\left( {\boldsymbol q}_0 {\boldsymbol q}_1 \right)} & = s_0 s_1 - {\boldsymbol v}_0 \cdot {\boldsymbol v}_1 - s_0 {\boldsymbol v}_1 - s_1 {\boldsymbol v}_0 - {\boldsymbol v}_0 \times {\boldsymbol v}_1 \\ & = s_1 s_0 - ( - {\boldsymbol v}_1) \cdot (-{\boldsymbol v}_0) + s_1(- {\boldsymbol v}_0) + s_0 (-{\boldsymbol v}_1) + (-{\boldsymbol v}_1)\times(-{\boldsymbol v}_0) \\ & = \bar{\boldsymbol q}_1 \bar{\boldsymbol q}_0 , \end{aligned}
が成り立つ.
また,
$ \begin{aligned} {\boldsymbol q}_0 \bar{\boldsymbol q}_1 & = s_0 s_1 + {\boldsymbol v}_0 \cdot {\boldsymbol v}_1 - s_0 {\boldsymbol v}_1 + s_1 {\boldsymbol v}_0 - {\boldsymbol v}_0 \times {\boldsymbol v}_1 , \\ \bar{\boldsymbol q}_1 {\boldsymbol q}_0 & = s_1 s_0 + {\boldsymbol v}_1 \cdot {\boldsymbol v}_0 - s_1 {\boldsymbol v}_0 + s_0 {\boldsymbol v}_1 - {\boldsymbol v}_1 \times {\boldsymbol v}_0 , \end{aligned}
より,
$ \frac{{\boldsymbol q}_0 \bar{\boldsymbol q}_1 + \bar{\boldsymbol q}_1 {\boldsymbol q}_0 }{2} = s_0 s_1 + {\boldsymbol v}_0 \cdot {\boldsymbol v}_1 .
これを四元数の内積$ {\boldsymbol q}_0 \cdot {\boldsymbol q}_1として定義する.
あるいは$ {\boldsymbol q}_0 \overline{\boldsymbol q}_1か$ \overline{\boldsymbol q}_0 {\boldsymbol q}_1のスカラー部分を取り出す演算としてもよい.
四元数とそれ自身の共役の積は$ {\boldsymbol q} \overline{\boldsymbol q} = \overline{\boldsymbol q} {\boldsymbol q} = s^2 + \left\| {\boldsymbol v} \right\|^2となる.
つまり,四元数の内積から誘導される四元数のノルムは
$ \left\| {\boldsymbol q} \right\| = {\boldsymbol q} \cdot {\boldsymbol q} = \sqrt{{\boldsymbol q} \bar{\boldsymbol q}} = \sqrt{\bar{\boldsymbol q} {\boldsymbol q}} = \sqrt{ s^2 + \left\| {\boldsymbol v} \right\|^2} = \sqrt{ q^2_0 + q^2_1 + q^2_2 + q^2_3} ,
となる.
四元数の逆数は
$ {\boldsymbol q}^{-1} = \frac{\bar{\boldsymbol q}}{ \left\| {\boldsymbol q} \right\|^2} ,
と定義され,$ {\boldsymbol q} {\boldsymbol q}^{-1} = {\boldsymbol q}^{-1} {\boldsymbol q} = 1 + \begin{pmatrix} 0 \\ 0 \\ 0 \end{pmatrix}となる.
クォータニオンと回転
回転行列の指数対数(exp, log)写像
クォータニオンの指数対数(exp, log)写像
クォータニオンを用いた回転の補間(LERP, SLERP, SQUAD)
#3DRotation
参考文献
F. Sebastin Grassia. 1998. Practical parameterization of rotations using the exponential map. J. Graph. Tools 3, 3 (1 March 1998), 29–48.
Sola, Joan. “Quaternion kinematics for the error-state Kalman filter.” arXiv preprint arXiv:1711.02508 (2017).
Dam, E. B., Koch, M., and Lillholm, M. (1998). Quaternions, interpolation and animation. Technical report, Department of Computer Science, University of Copenhagen, Denmark.
金谷 健一:三次元回転 パラメータ計算とリー代数による最適化,共立出版,2019.
田代 嘉宏:テンソル解析 基礎数学選書 23,裳華房,1981.