JPLとHamiltonの使い分け
回転を扱うときの表記でHamiltonとJPL(Jet Propulsion Laboratory)という2つの表記があることを知った。まず初めに両者の使い分けについて示す。
参考
https://hal.archives-ouvertes.fr/hal-01122406v3/document
定義
Hamilton | JPL | |
---|---|---|
の表現順序 | (, , , ) | (, , , ) |
系 | 右手系 | 左手系 |
Active/Passive | Passive | Passive |
座標系が左→右にいくにつれて | GlobalからLocalの座標系へ | LocalからGlobalの座標系へ |
回転を表現する時に、座標系は固定で位置ベクトルを回転させるのがActive、位置ベクトルは固定で座標系を反対方向に回転させるのがPassive。
クォータニオンの表現
クォータニアンどうしに対して和差積の演算が定義できる。
Hamilton記法
は単位クォータニオン(全く回転させない)を表す。
JPL記法
は単位クォータニオン(全く回転させない)を表す。
定理
Hamilton記法
の逆元は、として
と表現し直した時、このクォータニオンはまわりの右手系での回転を表す。
JPL記法
の逆元は、として
と表現し直した時、このクォータニオンはまわりの左手系での回転、すなわち右手系での回転を表す。
Hamilton表記とJPL表記の関係性
Hamiltonは右手系、JPLは左手系を使っていて、左手系での回転は右手系での回転に相当するため、A系からB系への同じ変換であっても両者は一致せず逆元の関係になる。
回転の実施
位置ベクトルを回転するか座標系を回転するかでクォータニオンの演算が異なることに注意。
座標系を固定した上での位置ベクトルの回転
位置を表すクォータニオンをと表記した時に、をまわりに回転した後のクォータニオンは、を使って以下のように表せる。
として実際に計算すると
第0成分が0のままになっていることが確認できる。を使って表すと
となり、この第1~3成分はをまわりに回転させた後のベクトルを表すので、クォータニオンの演算により回転が実施されたことがわかった。注意すべきなのは、ここでの回転は「姿勢角の回転」ではなく「原点周りの位置ベクトルの回転」を表すということである。
位置ベクトルを固定した上での座標系の回転
「座標系を固定した上での位置ベクトルの回転」と逆の操作となり
表現の自由度
回転角をとしても同じ操作であるが、
の変形からわかるようにクォータニオンとしては異なる。つまりとで同じ回転を表すことになり回転表現の自由度があるので、クォータニオンどうしを比較したい場合は定義に気を付ける必要がある(最初の0でない成分を正にするなど)
回転行列との対応
Hamilton記法
クォータニオンに相当する回転演算を回転行列の形で書くことを考える。
クォータニアンを左あるいは右から演算することはそれぞれ上記行列をかけることに対応する。それゆえ
まとめると、に対応する3×3の回転行列は
と表される。が単位行列になることも確認できる。
JPL記法
特に、のとき
ここで はskew symmetric matrixと呼ばれる。
クォータニオンの合成
位置ベクトルを回転させるか座標系を回転させるかで合成の順序が異なるので注意。
座標系を固定した上での位置ベクトルの回転の場合
点に対しての回転あとにの回転を実施した場合
となるのでの回転を1度実施したことと等価。
位置ベクトルを固定した上での座標系の回転
の回転あとにの回転を実施した場合
となるのでの回転を1度実施したことと等価。
座標変換の合成
SE(3)である剛体座標変換として座標系から座標系への変換を表す便利な表記として2種類がある。
1: 行列
という4×4の行列で表す。ここでは3次元空間における回転を表しSO(3)群である。は並進を表す3次元ベクトルであり、座標系の原点が座標系でどこの座標となるかを表す。座標変換を合成すると
となる。
2: 並進ベクトルとクォータニオンのペア
並進ベクトルとクォータニオンのペア で表す方法がある。、の場合、座標変換を合成すると
となる。
クォータニオン の微分
Local pertubationの展開
A系からB系への変換に対して、Local座標での摂動がある場合の展開を考える。Hamilton記法では
一方JPL記法で書くと
JPL記法の展開に対して転置をとると
となり
すなわちHamilton記法と一致することが示せた。
球面線形補間
を始点、の終点とした回転処理を行う場合で、その間を連続的に補間したクォータニオンを求めたい場合
ここで、余弦定理を使うととのなす角度、すなわちとのなす角度は
と表される(余弦定理によりもとまる角度がクォータニオン4次元空間におけるなす角であるという考え方に基づく)。したがって、
と表せる。球面線形補間は適当な係数、を使った線形結合として
と表現される。こちらを参照すると
と表されることがわかるので、最終的には
はまったこと
回転を考える時に矢印で考えてはいけない。図のように人間で考えないといけない。後ろ向きに向かせる回転であっても違った表現ができることに注意