回転ベクトルを回転行列に変換するロドリゲスの回転公式の導出
回転ベクトルで表現する回転 で紹介した回転ベクトル,これを回転行列に変換するロドリゲスの回転公式:
三次元回転は回転軸$ {\boldsymbol n}と回転角 $ \theta を用いて
$ \begin{aligned} {\boldsymbol R} & = \cos \theta {\boldsymbol I} + \left( 1 - \cos \theta \right) {\boldsymbol n} {\boldsymbol n}^\top + \sin \theta ~ {\rm skew} \left( {\boldsymbol n} \right) \\ & = \cos \theta \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} + \left(1 - \cos \theta \right) \begin{pmatrix} n_1 n_1 & n_1 n_2 & n_1 n_3 \\ n_2 n_2 & n_2 n_2 & n_2 n_3 \\ n_3 n_3 & n_3 n_2 & n_3 n_3 \end{pmatrix} + \sin \theta \begin{pmatrix} 0 & -n_3 & n_2 \\ n_3 & 0 & -n_1 \\ -n_2 & n_1 & 0 \end{pmatrix} \end{aligned}
と表せる(see: Skew 外積行列).
導出:
オイラーの回転定理の導出の内容を前提とする.
任意のベクトル$ {\boldsymbol a}は$ {\boldsymbol a} = {\boldsymbol a}_0 + {\boldsymbol a}_1 ~ \left( {\boldsymbol a}_0 \parallel {\boldsymbol n} , ~ {\boldsymbol a}_1 \bot {\boldsymbol n} \right)として一意に分解でき,回転させたときに変化するのは$ {\boldsymbol a}_1のみ
https://scrapbox.io/files/65eee227311ab600260d48e1.png
変換後のベクトルを$ {\boldsymbol R} {\boldsymbol a} = {\boldsymbol a}' = {\boldsymbol a}_0 + {\boldsymbol a}'_1とする.
$ {\boldsymbol a}_1から$ {\boldsymbol a}'_1への変換は軸に垂直な平面上の二次元回転で回転角度を$ \thetaとする:
https://scrapbox.io/files/65eee2ae20b374002485dad3.png
$ {\boldsymbol n} \times {\boldsymbol a} = {\boldsymbol n} \times {\boldsymbol a}_1は,$ {\boldsymbol a}_1を$ {\boldsymbol n}まわりに$ \pi / 2回転させたベクトルなので,$ {\boldsymbol a}'_1 = \sin \theta ~ {\boldsymbol n} \times {\boldsymbol a} + \cos \theta ~ {\boldsymbol a}_1と表せる.
以上より
$ \begin{aligned} {\boldsymbol R} {\boldsymbol a} & = \left( {\boldsymbol a} \cdot {\boldsymbol n} \right) {\boldsymbol n} + \cos \theta ~ \left( {\boldsymbol a} - \left( {\boldsymbol a} \cdot {\boldsymbol n} \right) {\boldsymbol n} \right) + \sin \theta ~ {\boldsymbol n} \times {\boldsymbol a} \\ & = \cos \theta {\boldsymbol a} + \left( 1 - \cos \theta \right) \left( {\boldsymbol a} \cdot {\boldsymbol n} \right) {\boldsymbol n} + \sin \theta ~ {\boldsymbol n} \times {\boldsymbol a} \\ & = \left( \cos \theta {\boldsymbol I} + \left( 1 - \cos \theta \right) {\boldsymbol n}{\boldsymbol n}^\top + {\rm skew} \left( {\boldsymbol n} \right) \sin \theta \right) {\boldsymbol a} \end{aligned}
#3DRotation