粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

3D座標変換の勘所メモ② - 異なる座標内での回転の変換 -

メモ第二弾です。

ossyaritoori.hatenablog.com

問題設定

  • ローカル座標系Aとローカル座標系Bがあり,それぞれグローバル座標系に対して R_A, R_Bの回転を持つとする。
  • グローバル座標にある点P をローカル座標系A内で回転 R_{PA}を適用する。
  • この時の点Pの回転をローカル座標系Bから見た回転[tex:R{PB}]とみなした時の[tex: R{PA},R_{PB}]の関係性は?

この問題はつまり,Aの座標系で動いた物体がBの座標系でどのように見えるかを表している。よくある問題です。

導出

まず点Pのグローバル座標ベクトルをp_Gとした時,系AとBから見た点Pのベクトルはそれぞれ

\begin{align} p_A &= R_A^\top p_G\\ p_B &= R_B^\top p_G \end{align}

です。ここで系Aのローカル座標内での回転 R_{PA}を適用した時のベクトルは


R_{PA} p_A

となる。さらにこれを一旦グローバル座標にうつしその後座標Bに移した場合のベクトルは以下のようになる。


R_B R_A^\top R_{PA} p_A

さて,これは座標系Bで見た移動後の点P'であるが最初の式を代入することでp_Gで表せる。


R_B^\top R_A R_{PA} R_A^\top p_G

これが点Pp_Bを座標系BにてR_{PB}回転させた


R_{PB} p_B = R_{PB} R_B^\top p_G

に等しくなることから,答えが導ける。

結論

R_{PA}R_{PB}の関係は,


R_{PB} = R_B^\top R_A R_{PA} R_A^\top R_B

逆の関係も


R_{PA} = R_A^\top R_B R_{PB} R_B^\top R_A

となります。Aが元からGlobal座標系だった場合は,


R_{PB} = R_B^\top R_{G}  R_B

という式になります。

2次元回転との違い

回転まわりは2次元の図を書くとわかりやすいことが多々ありますが,今回のケースは2次元で考えると逆に混乱します。

2次元では回転の計算は可換(順番を変えても結果が同じ)であるため上記の式は2次元の場合


R_{PB} =  R_{PA}

と同義であるからです。3次元以上での回転は非可換であるため上のようなややこしい式が登場するわけです。

参考URL

参考にした質疑

追記:以下の記事がわかりやすいですね。

www.mech.tohoku-gakuin.ac.jp