代替案
回転行列 上述の3つの単位ベクトルは 基底 とも呼ばれます。この基底のベクトルの座標 (成分 )を、基準(回転していない)座標軸を用いて、現在の(回転した)位置で指定することで、回転を完全に記述できます。回転基底を構成する3つの単位ベクトルû 、v̂ 、ŵ はそれぞれ3つの座標から構成され、合計9つの パラメータが得られます。
これらのパラメータは、回転行列 と呼ばれる3 × 3 行列A の要素として記述できます。通常、これらのベクトルの座標は行列の列に沿って配置されます (ただし、回転行列の別の定義が存在し、広く使用されていることに注意してください。その定義では、上記で定義されたベクトルの座標は行に沿って配置されます[ 2 ] )。 A = [ u ^ x v ^ x w ^ x u ^ y v ^ y w ^ y u ^ z v ^ z w ^ z ] {\displaystyle \mathbf {A} ={\begin{bmatrix}{\hat {\mathbf {u} }}_{x}&{\hat {\mathbf {v} }}_{x}&{\hat {\mathbf {w} }}_{x}\\{\hat {\mathbf {u} }}_{y}&{\hat {\mathbf {v} }}_{y}&{\hat {\mathbf {w} }}_{y}\\{\hat {\mathbf {u} }}_{z}&{\hat {\mathbf {v} }}_{z}&{\hat {\mathbf {w} }}_{z}\\\end{bmatrix}}}
回転行列の要素はすべて独立しているわけではない。オイラーの回転定理によれば、回転行列は3つの自由度しか持たない。
回転行列は以下の特性を持つ。
A は実数直交行列 であるため、その各行または各列は単位ベクトル を表します。行列 A の固有値は{ 1 、 e ± 私 θ } = { 1 、 コス θ + 私 罪 θ 、 コス θ − 私 罪 θ } {\displaystyle \left\{1,e^{\pm i\theta }\right\}=\{1,\ \cos \theta +i\sin \theta ,\ \cos \theta -i\sin \theta \}} ここで、iは i 2 = −1 という性質を持つ標準的な虚数単位 です。行列A の行列式 は+1であり、これは固有値の積に等しい。行列A のトレースは 1 + 2 cos θ であり、これは固有値の合計に等しい。 固有値式に現れる角度θ は、オイラー軸の角度と角度表現に対応します。固有値1に対応する固有ベクトルは 、それに付随するオイラー軸です。なぜなら、回転行列を左から乗算(回転)しても変化しない唯一の(ゼロでない)ベクトルは、この軸だからです。
上記の特性は以下と同等です。 | u ^ | = | v ^ | = | w ^ | = 1 u ^ ⋅ v ^ = 0 u ^ × v ^ = w ^ 、 {\displaystyle {\begin{aligned}|{\hat {\mathbf {u} }}|=|{\hat {\mathbf {v} }}|=|{\hat {\mathbf {w} }}|&=1\\{\hat {\mathbf {u} }}\cdot {\hat {\mathbf {v} }}&=0\\{\hat {\mathbf {u} }}\times {\hat {\mathbf {v} }}&={\hat {\mathbf {w} }}\,,\end{aligned}}} これは、( û 、v̂ 、ŵ ) が 3D正規直交基底 を形成すること を別の言い方で表したものです。これらの記述は合計 6 つの条件 (外積には 3 つが含まれます) から成り、回転行列は必要な 3 つの自由度のみを持ちます。
行列A 1 とA 2 で表される 2 つの連続した回転は、グループの要素として簡単に組み合わせることができます。 A 合計 = A 2 A 1 {\displaystyle \mathbf {A} _{\text{total}}=\mathbf {A} _{2}\mathbf {A} _{1}} (回転するベクトルは右から乗算されるため、順序に注意してください。)
回転行列を用いることでベクトルを容易に回転させることができ、また連続する回転を容易に組み合わせることができるため、回転行列は他の表現方法に比べて簡潔さに欠けるものの、回転を表すための有用で一般的な方法となっている。
オイラー軸と角度(回転ベクトル)オイラー軸と角度で表される回転の視覚化。 オイラーの回転定理 によれば、任意の回転は、ある軸を中心とした単一の回転として表すことができます。この軸は、回転によって変化しない単位ベクトル(符号以外は一意)です。角度の大きさも一意であり、その符号は回転軸の符号によって決まります。
軸は3次元単位ベクトルとして表すことができる。 e ^ = [ e x e y e z ] {\displaystyle {\hat {\mathbf {e} }}={\begin{bmatrix}e_{x}\\e_{y}\\e_{z}\end{bmatrix}}} そして角度はスカラーθ で表されます。
軸が正規化されているため、自由度は 2つしかありません。角度を加えることで、この回転表現に3つ目の自由度が加わります。
回転を回転ベクトル またはオイラーベクトル として表現したい場合がある。これは、方向が軸を指定し、長さがθ である非正規化 3 次元ベクトルである。 r = θ e ^ 。 {\displaystyle \mathbf {r} =\theta {\hat {\mathbf {e} }}\,.}
回転ベクトルは、3つの自由度を表す3つのスカラー 値(成分)だけで3次元回転を表現できるため、特定の状況において有用です。これは、3つのオイラー角のシーケンスに基づく表現にも当てはまります(下記参照)。
回転角θ がゼロの場合、軸は一意に定義されません。オイラー軸と角度で表される2つの連続した回転を組み合わせることは容易ではなく、実際にはベクトル加算の法則を満たしません。これは、有限回転が実際にはベクトルではないことを示しています。回転行列またはクォータニオン表記を使用し、積を計算してから、オイラー軸と角度に変換するのが最善です。
オイラー回転 地球のオイラー回転。固有回転 (緑)、歳差運動 (青)、章動 (赤) オイラー回転の基本的な考え方は、座標系の完全な回転を、歳差運動 、章動 、固有回転 と呼ばれる 3 つのより単純な構成回転に分割することです。これらの回転はそれぞれ、オイラー角の 1 つに対する増分です。外側の行列は基準座標系の軸の 1 つを中心とした回転を表し、内側の行列は移動座標系の軸の 1 つを中心とした回転を表すことに注意してください。中央の行列は 、節線 と呼ばれる中間軸を中心とした回転を表します。
しかし、オイラー角の定義は一意ではなく、文献ではさまざまな慣例が用いられています。これらの慣例は、回転が行われる軸とその順序(球面上での回転は非可換で あるため)に依存します。
使用されている規則は通常、連続する回転(合成前)が行われる軸を指定することによって示され、インデックス(1、2、3) または文字(X、Y、Z) で参照されます。エンジニアリングおよびロボット工学コミュニティでは、通常、3-1-3 オイラー角が使用されます。独立した回転を合成した後、それらはもはやその軸を中心に回転しないことに注意してください。最も外側の行列が他の 2 つを回転させ、2 番目の回転行列をノードの線上に残し、3 番目の行列をボディとともに移動するフレームに残します。3つの基本回転の組み合わせは3 × 3 × 3 = 27 通りありますが、任意の 3D 回転をオイラー角として表現するために使用できるのは、そのうち3 × 2 × 2 = 12 通りだけです。これらの 12 通りの組み合わせは、表現できる自由度を減らすことになる同じ軸(XXY など)を中心とした連続回転を回避します。
したがって、オイラー角は外部座標系や回転した物体座標系で表現されることはなく、両者を組み合わせた形で表現されます。この問題を回避するために、回転行列 や四元数 などの他の表記法が用いられます。
航空 分野では、航空機の姿勢は通常、z - y ′- x ″ の 慣例に従った固有の テイト・ブライアン角 で表され、これらは方位 、仰角 、バンク角 (または同義語としてヨー 、ピッチ 、ロール )と呼ばれます。
四元数 4次元ベクトル空間を形成する 四元数は 、この記事で述べた他の表現方法に比べていくつかの利点があるため、回転を表現する上で非常に有用であることが証明されています。
回転の四元数表現は、バーソル (正規化された四元数)として記述されます。 q ^ = q 私 私 + q j j + q k k + q r = [ q 私 q j q k q r ] {\displaystyle {\hat {\mathbf {q} }}=q_{i}\mathbf {i} +q_{j}\mathbf {j} +q_{k}\mathbf {k} +q_{r}={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\\q_{r}\end{bmatrix}}}
上記の定義では、(Wertz 1980) および (Markley 2003) で使用されている慣例に従って、四元数を配列として格納します。別の定義では、例えば (Coutsias 1999) および (Schmidt 2001) で使用されているように、「スカラー」項を最初の四元数要素として定義し、他の要素を 1 つ下にシフトします。
オイラー軸に関して言えば e ^ = [ e x e y e z ] {\displaystyle {\hat {\mathbf {e} }}={\begin{bmatrix}e_{x}\\e_{y}\\e_{z}\end{bmatrix}}}
角度θ におけるこの変数の成分は、次のように表されます。 q 私 = e x 罪 θ 2 q j = e y 罪 θ 2 q k = e z 罪 θ 2 q r = コス θ 2 {\displaystyle {\begin{aligned}q_{i}&=e_{x}\sin {\frac {\theta }{2}}\\q_{j}&=e_{y}\sin {\frac {\theta }{2}}\\q_{k}&=e_{z}\sin {\frac {\theta }{2}}\\q_{r}&=\cos {\frac {\theta }{2}}\end{aligned}}}
検査の結果、四元数パラメータ化は以下の制約を満たしていることがわかった。 q 私 2 + q j 2 + q k 2 + q r 2 = 1 {\displaystyle q_{i}^{2}+q_{j}^{2}+q_{k}^{2}+q_{r}^{2}=1}
(我々の定義では)最後の項はしばしばスカラー項と呼ばれ、複素数の数学的拡張として理解される四元数に由来し、次のように表される。 1 + b 私 + c j + d k と 1 、 b 、 c 、 d ∈ R {\displaystyle a+bi+cj+dk\qquad {\text{with }}a,b,c,d\in \mathbb {R} } ここで、{ i , j , k } は、以下の条件を満たす 超複素数 である。私 2 = j 2 = k 2 = − 1 私 j = − j 私 = k j k = − k j = 私 k 私 = − 私 k = j {\displaystyle {\begin{array}{ccccccc}i^{2}&=&j^{2}&=&k^{2}&=&-1\\ij&=&-ji&=&k&&\\jk&=&-kj&=&i&&\\ki&=&-ik&=&j&&\end{array}}}
合成 回転を指定するために使用される四元数の乗算は、複素数 の乗算と同じ方法で実行されますが、乗算は可換ではないため、要素の順序を考慮する必要があります。行列表記では、四元数の乗算は次のように記述できます。 q ~ ⊗ q = [ q r q k − q j q 私 − q k q r q 私 q j q j − q 私 q r q k − q 私 − q j − q k q r ] [ q ~ 私 q ~ j q ~ k q ~ r ] = [ q ~ r − q ~ k q ~ j q ~ 私 q ~ k q ~ r − q ~ 私 q ~ j − q ~ j q ~ 私 q ~ r q ~ k − q ~ 私 − q ~ j − q ~ k q ~ r ] [ q 私 q j q k q r ] {\displaystyle {\tilde {\mathbf {q} }}\otimes \mathbf {q} ={\begin{bmatrix}\;\;\,q_{r}&\;\;\,q_{k}&-q_{j}&\;\;\,q_{i}\\-q_{k}&\;\;\,q_{r}&\;\;\,q_{i}&\;\;\,q_{j}\\\;\;\,q_{j}&-q_{i}&\;\;\,q_{r}&\;\;\,q_{k}\\-q_{i}&-q_{j}&-q_{k}&\;\;\,q_{r}\end{bmatrix}}{\begin{bmatrix}{\tilde {q}}_{i}\\{\tilde {q}}_{j}\\{\tilde {q}}_{k}\\{\tilde {q}}_{r}\end{bmatrix}}={\begin{bmatrix}\;\;\,{\tilde {q}}_{r}&-{\tilde {q}}_{k}&\;\;\,{\tilde {q}}_{j}&\;\;\,{\tilde {q}}_{i}\\\;\;\,{\tilde {q}}_{k}&\;\;\,{\tilde {q}}_{r}&-{\tilde {q}}_{i}&\;\;\,{\tilde {q}}_{j}\\-{\tilde {q}}_{j}&\;\;\,{\tilde {q}}_{i}&\;\;\,{\tilde {q}}_{r}&\;\;\,{\tilde {q}}_{k}\\-{\tilde {q}}_{i}&-{\tilde {q}}_{j}&-{\tilde {q}}_{k}&\;\;\,{\tilde {q}}_{r}\end{bmatrix}}{\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\\q_{r}\end{bmatrix}}}
したがって、2 つの連続するクォータニオン回転を組み合わせることは、回転行列を使用するのと同じくらい簡単です。2 つの連続する回転行列A 1 とA 2 を組み合わせるのと同様に、 A 3 = A 2 A 1 、 {\displaystyle \mathbf {A} _{3}=\mathbf {A} _{2}\mathbf {A} _{1},} これを同様に簡潔な方法で四元数パラメータを用いて表現することもできます。 q 3 = q 2 ⊗ q 1 {\displaystyle \mathbf {q} _{3}=\mathbf {q} _{2}\otimes \mathbf {q} _{1}}
四元数は、以下の特性により非常に人気のあるパラメータ化手法です。
回転行列と同様に、四元数も丸め誤差のために正規化する必要がある場合があり、それによって有効な回転に対応していることを確認できます。ただし、四元数の正規化にかかる計算コストは、3×3 行列の正規化にかかるコストよりもはるかに少なくて済みます。
四元数は、3 次元における回転のスピノール的性質も捉えます。緩んだ弦や帯で(固定された)周囲に接続された 3 次元物体の場合、弦や帯は、初期の絡まりのない状態から、ある固定軸を中心に2 回転すると絡まりがほどけます。代数的に、このような回転を表す四元数は、スカラー +1(初期)から、(スカラー + 擬似ベクトル)の値を経て、スカラー -1(1 回転後)になり、(スカラー + 擬似ベクトル)の値を経て、再びスカラー +1(2 回転後)になります。このサイクルは 2 回転ごとに繰り返されます。2 n 回転(整数n > 0 )後、中間的な絡まり解消の試みなしに、弦/帯は、2 回転から 0回転への絡まり解消に使用したのと同じ手順を毎回適用することで、 2( n − 1) 回転の状態に部分的に絡まりをほどくことができます。同じ手順をn 回繰り返すと、 2n 回 絡まった物体は絡まりが解けた状態、つまり0回転の状態に戻ります。絡まりを解く過程では、紐や帯自体に回転によって生じたねじれもすべて取り除かれます。これらの事実は、単純な3D機械モデルを用いて実証できます。
ロドリゲスベクトル ロドリゲスベクトル (ギブスベクトル とも呼ばれ、座標はロドリゲスパラメータ と呼ばれる)[ 3 ] [ 4 ]は 、回転の軸と角度で次のように表すことができます。 g = e ^ タン θ 2 {\displaystyle \mathbf {g} ={\hat {\mathbf {e} }}\tan {\frac {\theta }{2}}}
この表現は、3次元球面上の単位四元数を3次元純ベクトル超平面にマッピングする、 グノモン投影 の高次元版である。
180°( π ラジアン)で不連続性があります。任意の回転ベクトルrが π ラジアンの角度に近づくと、その接線は無限大に近づきます。
ロドリゲス表現における回転gに続く回転fは、単純な回転合成形式 を持つ。
( g 、 f ) = g + f − f × g 1 − g ⋅ f 。 {\displaystyle (\mathbf {g} ,\mathbf {f} )={\frac {\mathbf {g} +\mathbf {f} -\mathbf {f} \times \mathbf {g} }{1-\mathbf {g} \cdot \mathbf {f} }}\,.}
今日では、この公式を証明する最も簡単な方法は、(忠実な)二重表現 で、g = n̂ tan a などです。
先ほど述べたパウリ行列の導出の組み合わせ論的特徴は、以下の等価な 四元数の 導出とも同一である。空間回転R に関連付けられた四元数を次のように構成する。 S = コス ϕ 2 + 罪 ϕ 2 S 。 {\displaystyle S=\cos {\frac {\phi }{2}}+\sin {\frac {\phi }{2}}\mathbf {S} .} すると、回転R B とR A の合成は回転R C = R B R A となり、回転軸と角度は四元数の積によって定義されます。 A = コス α 2 + 罪 α 2 A そして B = コス β 2 + 罪 β 2 B 、 {\displaystyle A=\cos {\frac {\alpha }{2}}+\sin {\frac {\alpha }{2}}\mathbf {A} \quad {\text{and}}\quad B=\cos {\frac {\beta }{2}}+\sin {\frac {\beta }{2}}\mathbf {B} ,} それは C = コス γ 2 + 罪 γ 2 C = ( コス β 2 + 罪 β 2 B ) ( コス α 2 + 罪 α 2 A ) 。 {\displaystyle C=\cos {\frac {\gamma }{2}}+\sin {\frac {\gamma }{2}}\mathbf {C} =\left(\cos {\frac {\beta }{2}}+\sin {\frac {\beta }{2}}\mathbf {B} \right)\left(\cos {\frac {\alpha }{2}}+\sin {\frac {\alpha }{2}}\mathbf {A} \right).}
この四元数積を展開すると コス γ 2 + 罪 γ 2 C = ( コス β 2 コス α 2 − 罪 β 2 罪 α 2 B ⋅ A ) + ( 罪 β 2 コス α 2 B + 罪 α 2 コス β 2 A + 罪 β 2 罪 α 2 B × A ) 。 {\displaystyle \cos {\frac {\gamma }{2}}+\sin {\frac {\gamma }{2}}\mathbf {C} =\left(\cos {\frac {\beta }{2}}\cos {\frac {\alpha }{2}}-\sin {\frac {\beta }{2}}\sin {\frac {\alpha }{2}}\mathbf {B} \cdot \mathbf {A} \right)+\left(\sin {\frac {\beta }{2}}\cos {\frac {\alpha }{2}}\mathbf {B} +\sin {\frac {\alpha }{2}}\cos {\frac {\beta }{2}}\mathbf {A} +\sin {\frac {\beta }{2}}\sin {\frac {\alpha }{2}}\mathbf {B} \times \mathbf {A} \right).}
この等式の両辺を、前の等式から得られた恒等式で割ります。 コス γ 2 = コス β 2 コス α 2 − 罪 β 2 罪 α 2 B ⋅ A 、 {\displaystyle \cos {\frac {\gamma }{2}}=\cos {\frac {\beta }{2}}\cos {\frac {\alpha }{2}}-\sin {\frac {\beta }{2}}\sin {\frac {\alpha }{2}}\mathbf {B} \cdot \mathbf {A} ,} そして評価する
タン γ 2 C = タン β 2 B + タン α 2 A + タン β 2 タン α 2 B × A 1 − タン β 2 タン α 2 B ⋅ A 。 {\displaystyle \tan {\frac {\gamma }{2}}\mathbf {C} ={\frac {\tan {\frac {\beta }{2}}\mathbf {B} +\tan {\frac {\alpha }{2}}\mathbf {A} +\tan {\frac {\beta }{2}}\tan {\frac {\alpha }{2}}\mathbf {B} \times \mathbf {A} }{1-\tan {\frac {\beta }{2}}\tan {\frac {\alpha }{2}}\mathbf {B} \cdot \mathbf {A} }}.}
これは、2 つの構成回転の軸によって定義される複合回転の軸に関するロドリゲスの公式です。彼は 1840 年にこの公式を導き出しました (408 ページを参照)。[ 3 ] 3 つの回転軸A 、B 、C は球面三角形を形成し、この三角形の辺によって形成される平面間の二面角は回転角によって定義されます。
単位四元数を純虚数超平面に立体投影したものを等角回転ベクトルと呼び、その 座標 は修正ロドリゲスパラメータ (MRP)と呼ばれることもある。
等角回転ベクトルは、オイラー軸と角度を用いて次のように表すことができる。 p = e ^ タン θ 4 。 {\displaystyle \mathbf {p} ={\hat {\mathbf {e} }}\tan {\frac {\theta }{4}}\,.} MRPは、同じ回転を表す単位四元数の成分で表現できます。 p x 、 y 、 z = q 私 、 j 、 k 1 + q r 。 {\displaystyle p_{x,y,z}={\frac {q_{i,j,k}}{1+q_{r}}}\,.}
反対の四元数−q の立体投影は、元の四元数q の投影とは異なる共形回転ベクトルp s をもたらします。成分を比較すると、次のようになります 。 p x 、 y 、 z s = − q 私 、 j 、 k 1 − q r = − p x 、 y 、 z p 2 。 {\displaystyle p_{x,y,z}^{s}={\frac {-q_{i,j,k}}{1-q_{r}}}={\frac {-p_{x,y,z}}{\mathbf {p} ^{2}}}\,.} 特に、これらのベクトルのうち一方が単位3球の内部にある場合、もう一方は外部にある。
上記と同じ表記法を用いると、単位四元数は次のように得られる。
s = 2 1 + ‖ p ‖ 2 、 { q r = s − 1 、 q 私 = s p x 、 q j = s p y 、 q k = s p z 。 {\displaystyle s={\frac {2}{1+\lVert \mathbf {p} \rVert ^{2}}},\qquad {\begin{cases}q_{r}&=s-1,\\q_{i}&=s\,p_{x},\\q_{j}&=s\,p_{y},\\q_{k}&=s\,p_{z}.\end{cases}}}
ケイリー・クライン・パラメータWolfram Mathworldの定義を参照してください。
ユークリッド空間における3次元ベクトルp の軸n を中心とした角度η の能動回転は、内積と外積を用いて以下のように簡単に表すことができます。
p ′ = p ∥ n + コス η p ⊥ + 罪 η p ∧ n {\displaystyle \mathbf {p} '=p_{\parallel }\mathbf {n} +\cos {\eta }\,\mathbf {p} _{\perp }+\sin {\eta }\,\mathbf {p} \wedge \mathbf {n} } その中に p ∥ = p ⋅ n {\displaystyle p_{\parallel }=\mathbf {p} \cdot \mathbf {n} } は、 n に沿ったp の縦方向成分であり、ドット積 によって与えられます。 p ⊥ = p − ( p ⋅ n ) n {\displaystyle \mathbf {p} _{\perp }=\mathbf {p} -(\mathbf {p} \cdot \mathbf {n} )\mathbf {n} } はn に関するp の横方向成分であり、 p ∧ n {\displaystyle \mathbf {p} \wedge \mathbf {n} }
はp とn の外積 です。
上記の式は、 p の縦方向成分は変化しない一方、pの横方向成分は n に垂直な平面内で回転することを示しています。この平面は、 pの横方向成分自体と、 p とn の両方に垂直な方向によって張られます。この回転は、式の中で角度η による2次元回転として直接的に識別できます。
受動回転は同じ式で表すことができますが、η またはn の符号が逆になります。
変換
回転行列 ↔ オイラー角オイラー角(φ 、θ 、ψ )は、回転行列 A を解析的に調べることで抽出できます。
回転行列 → オイラー角(z - x - z 外部)x 規約を使用すると、3-1-3外因 オイラー角φ 、θ 、ψ ( z 軸、x 軸、および再びZ {\displaystyle Z} -軸)は次のようにして得られます。 ϕ = アタン2 ( A 31 、 A 32 ) θ = アルコス ( A 33 ) ψ = − アタン2 ( A 13 、 A 23 ) {\displaystyle {\begin{aligned}\phi &=\operatorname {atan2} \left(A_{31},A_{32}\right)\\\theta &=\arccos \left(A_{33}\right)\\\psi &=-\operatorname {atan2} \left(A_{13},A_{23}\right)\end{aligned}}}
atan2( a , b )は arctan a / b と同等であることに注意してください。ただし、点( b , a ) がある象限 も考慮に入れています。atan2を 参照してください。
変換を実行する際には、いくつかの状況を考慮する必要があります。[ 5 ]
区間[− π , π ] 3 には一般的に 2 つの解があります。上記の式はθ が 区間[0, π ] 内にある場合にのみ有効です。 特殊なケースA 33 = 0 の場合、φ とψ は A 11 とA 12 から導出されます。 区間[− π , π ] 3 の外には無限に多くの可算個の解が存在する。 特定の用途において、すべての数学的解法が適用可能かどうかは、状況によって異なります。
オイラー角(z - y ′ - x ″ 固有値)→回転行列The rotation matrix A is generated from the 3-2-1 intrinsic Euler angles by multiplying the three matrices generated by rotations about the axes. A = A 3 A 2 A 1 = A Z A Y A X {\displaystyle \mathbf {A} =\mathbf {A} _{3}\mathbf {A} _{2}\mathbf {A} _{1}=\mathbf {A} _{Z}\mathbf {A} _{Y}\mathbf {A} _{X}}
The axes of the rotation depend on the specific convention being used. For the x -convention the rotations are about the x -, y - and z -axes with angles ϕ , θ and ψ , the individual matrices are as follows: A X = [ 1 0 0 0 cos ϕ − sin ϕ 0 sin ϕ cos ϕ ] A Y = [ cos θ 0 sin θ 0 1 0 − sin θ 0 cos θ ] A Z = [ cos ψ − sin ψ 0 sin ψ cos ψ 0 0 0 1 ] {\displaystyle {\begin{aligned}\mathbf {A} _{X}&={\begin{bmatrix}1&0&0\\0&\cos \phi &-\sin \phi \\0&\sin \phi &\cos \phi \end{bmatrix}}\\[5px]\mathbf {A} _{Y}&={\begin{bmatrix}\cos \theta &0&\sin \theta \\0&1&0\\-\sin \theta &0&\cos \theta \end{bmatrix}}\\[5px]\mathbf {A} _{Z}&={\begin{bmatrix}\cos \psi &-\sin \psi &0\\\sin \psi &\cos \psi &0\\0&0&1\end{bmatrix}}\end{aligned}}}
This yields A = [ cos θ cos ψ − cos ϕ sin ψ + sin ϕ sin θ cos ψ sin ϕ sin ψ + cos ϕ sin θ cos ψ cos θ sin ψ cos ϕ cos ψ + sin ϕ sin θ sin ψ − sin ϕ cos ψ + cos ϕ sin θ sin ψ − sin θ sin ϕ cos θ cos ϕ cos θ ] {\displaystyle \mathbf {A} ={\begin{bmatrix}\cos \theta \cos \psi &-\cos \phi \sin \psi +\sin \phi \sin \theta \cos \psi &\sin \phi \sin \psi +\cos \phi \sin \theta \cos \psi \\\cos \theta \sin \psi &\cos \phi \cos \psi +\sin \phi \sin \theta \sin \psi &-\sin \phi \cos \psi +\cos \phi \sin \theta \sin \psi \\-\sin \theta &\sin \phi \cos \theta &\cos \phi \cos \theta \\\end{bmatrix}}} Note: This is valid for a right-hand system, which is the convention used in almost all engineering and physics disciplines.
The interpretation of these right-handed rotation matrices is that they express coordinate transformations (passive ) as opposed to point transformations (active ). Because A expresses a rotation from the local frame 1 to the global frame 0 (i.e., A encodes the axes of frame 1 with respect to frame 0 ), the elementary rotation matrices are composed as above. Because the inverse rotation is just the rotation transposed, if we wanted the global-to-local rotation from frame 0 to frame 1 , we would write A T = ( A Z A Y A X ) T = A X T A Y T A Z T . {\displaystyle \mathbf {A} ^{\mathsf {T}}=(\mathbf {A} _{Z}\mathbf {A} _{Y}\mathbf {A} _{X})^{\mathsf {T}}=\mathbf {A} _{X}^{\mathsf {T}}\mathbf {A} _{Y}^{\mathsf {T}}\mathbf {A} _{Z}^{\mathsf {T}}\,.}
Rotation matrix ↔ Euler axis/angleIf the Euler angle θ is not a multiple of π , the Euler axis ê and angle θ can be computed from the elements of the rotation matrix A as follows: θ = arccos A 11 + A 22 + A 33 − 1 2 e 1 = A 32 − A 23 2 sin θ e 2 = A 13 − A 31 2 sin θ e 3 = A 21 − A 12 2 sin θ {\displaystyle {\begin{aligned}\theta &=\arccos {\frac {A_{11}+A_{22}+A_{33}-1}{2}}\\e_{1}&={\frac {A_{32}-A_{23}}{2\sin \theta }}\\e_{2}&={\frac {A_{13}-A_{31}}{2\sin \theta }}\\e_{3}&={\frac {A_{21}-A_{12}}{2\sin \theta }}\end{aligned}}}
Alternatively, the following method can be used:
Eigendecomposition of the rotation matrix yields the eigenvalues 1 and cos θ ± i sin θ . The Euler axis is the eigenvector corresponding to the eigenvalue of 1, and θ can be computed from the remaining eigenvalues.
The Euler axis can be also found using singular value decomposition since it is the normalized vector spanning the null-space of the matrix I − A .
To convert the other way the rotation matrix corresponding to an Euler axis ê and angle θ can be computed according to Rodrigues' rotation formula (with appropriate modification) as follows: A = I 3 cos θ + ( 1 − cos θ ) e ^ e ^ T + [ e ^ ] × sin θ {\displaystyle \mathbf {A} =\mathbf {I} _{3}\cos \theta +(1-\cos \theta ){\hat {\mathbf {e} }}{\hat {\mathbf {e} }}^{\mathsf {T}}+\left[{\hat {\mathbf {e} }}\right]_{\times }\sin \theta }
with I 3 the 3 × 3 identity matrix , and [ e ^ ] × = [ 0 − e 3 e 2 e 3 0 − e 1 − e 2 e 1 0 ] {\displaystyle \left[{\hat {\mathbf {e} }}\right]_{\times }={\begin{bmatrix}0&-e_{3}&e_{2}\\e_{3}&0&-e_{1}\\-e_{2}&e_{1}&0\end{bmatrix}}}
is the cross-product matrix .
This expands to: A 11 = ( 1 − cos θ ) e 1 2 + cos θ A 12 = ( 1 − cos θ ) e 1 e 2 − e 3 sin θ A 13 = ( 1 − cos θ ) e 1 e 3 + e 2 sin θ A 21 = ( 1 − cos θ ) e 2 e 1 + e 3 sin θ A 22 = ( 1 − cos θ ) e 2 2 + cos θ A 23 = ( 1 − cos θ ) e 2 e 3 − e 1 sin θ A 31 = ( 1 − cos θ ) e 3 e 1 − e 2 sin θ A 32 = ( 1 − cos θ ) e 3 e 2 + e 1 sin θ A 33 = ( 1 − cos θ ) e 3 2 + cos θ {\displaystyle {\begin{aligned}A_{11}&=(1-\cos \theta )e_{1}^{2}+\cos \theta \\A_{12}&=(1-\cos \theta )e_{1}e_{2}-e_{3}\sin \theta \\A_{13}&=(1-\cos \theta )e_{1}e_{3}+e_{2}\sin \theta \\A_{21}&=(1-\cos \theta )e_{2}e_{1}+e_{3}\sin \theta \\A_{22}&=(1-\cos \theta )e_{2}^{2}+\cos \theta \\A_{23}&=(1-\cos \theta )e_{2}e_{3}-e_{1}\sin \theta \\A_{31}&=(1-\cos \theta )e_{3}e_{1}-e_{2}\sin \theta \\A_{32}&=(1-\cos \theta )e_{3}e_{2}+e_{1}\sin \theta \\A_{33}&=(1-\cos \theta )e_{3}^{2}+\cos \theta \end{aligned}}}
Rotation matrix ↔ quaternion回転行列から四元数を計算する場合、q と−qが 同じ回転を表すため、符号の曖昧さが生じます。
四元数を計算する一つの方法 q = [ q 私 q j q k q r ] = q 私 私 + q j j + q k k + q r {\displaystyle \mathbf {q} ={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\\q_{r}\end{bmatrix}}=q_{i}\mathbf {i} +q_{j}\mathbf {j} +q_{k}\mathbf {k} +q_{r}} 回転行列A から得られる結果は以下のとおりです。 q r = 1 2 1 + A 11 + A 22 + A 33 q 私 = 1 4 q r ( A 32 − A 23 ) q j = 1 4 q r ( A 13 − A 31 ) q k = 1 4 q r ( A 21 − A 12 ) {\displaystyle {\begin{aligned}q_{r}&={\frac {1}{2}}{\sqrt {1+A_{11}+A_{22}+A_{33}}}\\q_{i}&={\frac {1}{4q_{r}}}\left(A_{32}-A_{23}\right)\\q_{j}&={\frac {1}{4q_{r}}}\left(A_{13}-A_{31}\right)\\q_{k}&={\frac {1}{4q_{r}}}\left(A_{21}-A_{12}\right)\end{aligned}}}
q を計算する数学的に同等な方法は他に 3 つあります。分母がゼロに近い状況を避けることで、数値の不正確さを減らすことができます。他の 3 つの方法の 1 つは次のようになります。[ 6 ] [ 7 ] q 私 = 1 2 1 + A 11 − A 22 − A 33 q j = 1 4 q 私 ( A 12 + A 21 ) q k = 1 4 q 私 ( A 13 + A 31 ) q r = 1 4 q 私 ( A 32 − A 23 ) {\displaystyle {\begin{aligned}q_{i}&={\frac {1}{2}}{\sqrt {1+A_{11}-A_{22}-A_{33}}}\\q_{j}&={\frac {1}{4q_{i}}}\left(A_{12}+A_{21}\right)\\q_{k}&={\frac {1}{4q_{i}}}\left(A_{13}+A_{31}\right)\\q_{r}&={\frac {1}{4q_{i}}}\left(A_{32}-A_{23}\right)\end{aligned}}}
四元数q に対応する回転行列は、次のように計算できます。 A = ( q r 2 − q ˇ T q ˇ ) 私 3 + 2 q ˇ q ˇ T + 2 q r Q {\displaystyle \mathbf {A} =\left(q_{r}^{2}-{\check {\mathbf {q} }}^{\mathsf {T}}{\check {\mathbf {q} }}\right)\mathbf {I} _{3}+2{\check {\mathbf {q} }}{\check {\mathbf {q} }}^{\mathsf {T}}+2q_{r}\mathbf {\mathcal {Q}} } どこ q ˇ = [ q 私 q j q k ] 、 Q = [ 0 − q k q j q k 0 − q 私 − q j q 私 0 ] {\displaystyle {\check {\mathbf {q} }}={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\end{bmatrix}}\,,\quad \mathbf {\mathcal {Q}} ={\begin{bmatrix}0&-q_{k}&q_{j}\\q_{k}&0&-q_{i}\\-q_{j}&q_{i}&0\end{bmatrix}}} これにより A = [ 1 − 2 q j 2 − 2 q k 2 2 ( q 私 q j − q k q r ) 2 ( q 私 q k + q j q r ) 2 ( q 私 q j + q k q r ) 1 − 2 q 私 2 − 2 q k 2 2 ( q j q k − q 私 q r ) 2 ( q 私 q k − q j q r ) 2 ( q j q k + q 私 q r ) 1 − 2 q 私 2 − 2 q j 2 ] {\displaystyle \mathbf {A} ={\begin{bmatrix}1-2q_{j}^{2}-2q_{k}^{2}&2\left(q_{i}q_{j}-q_{k}q_{r}\right)&2\left(q_{i}q_{k}+q_{j}q_{r}\right)\\2\left(q_{i}q_{j}+q_{k}q_{r}\right)&1-2q_{i}^{2}-2q_{k}^{2}&2\left(q_{j}q_{k}-q_{i}q_{r}\right)\\2\left(q_{i}q_{k}-q_{j}q_{r}\right)&2\left(q_{j}q_{k}+q_{i}q_{r}\right)&1-2q_{i}^{2}-2q_{j}^{2}\end{bmatrix}}}
または同等に A = [ − 1 + 2 q 私 2 + 2 q r 2 2 ( q 私 q j − q k q r ) 2 ( q 私 q k + q j q r ) 2 ( q 私 q j + q k q r ) − 1 + 2 q j 2 + 2 q r 2 2 ( q j q k − q 私 q r ) 2 ( q 私 q k − q j q r ) 2 ( q j q k + q 私 q r ) − 1 + 2 q k 2 + 2 q r 2 ] {\displaystyle \mathbf {A} ={\begin{bmatrix}-1+2q_{i}^{2}+2q_{r}^{2}&2\left(q_{i}q_{j}-q_{k}q_{r}\right)&2\left(q_{i}q_{k}+q_{j}q_{r}\right)\\2\left(q_{i}q_{j}+q_{k}q_{r}\right)&-1+2q_{j}^{2}+2q_{r}^{2}&2\left(q_{j}q_{k}-q_{i}q_{r}\right)\\2\left(q_{i}q_{k}-q_{j}q_{r}\right)&2\left(q_{j}q_{k}+q_{i}q_{r}\right)&-1+2q_{k}^{2}+2q_{r}^{2}\end{bmatrix}}}
これは変換行列 のオイラー・ロドリゲス公式 と呼ばれる。A {\displaystyle \mathbf {A} }
オイラー角 ↔ 四元数
オイラー角(z - x - z 外因性)→ クォータニオン以下のアルゴリズムでは、 x 規約に基づく3-1-3外因性オイラー角 を考慮します。アルゴリズムの項は、使用する規約によって異なります。
四元数を計算できます q = [ q 私 q j q k q r ] = q 私 私 + q j j + q k k + q r {\displaystyle \mathbf {q} ={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\\q_{r}\end{bmatrix}}=q_{i}\mathbf {i} +q_{j}\mathbf {j} +q_{k}\mathbf {k} +q_{r}} オイラー角( ϕ 、θ 、ψ ) から次のように計算されます。
q 私 = コス ϕ − ψ 2 罪 θ 2 q j = 罪 ϕ − ψ 2 罪 θ 2 q k = 罪 ϕ + ψ 2 コス θ 2 q r = コス ϕ + ψ 2 コス θ 2 {\displaystyle {\begin{aligned}q_{i}&=\cos {\frac {\phi -\psi }{2}}\sin {\frac {\theta }{2}}\\q_{j}&=\sin {\frac {\phi -\psi }{2}}\sin {\frac {\theta }{2}}\\q_{k}&=\sin {\frac {\phi +\psi }{2}}\cos {\frac {\theta }{2}}\\q_{r}&=\cos {\frac {\phi +\psi }{2}}\cos {\frac {\theta }{2}}\end{aligned}}}
オイラー角(z - y ′ - x ″ 固有値)→ クォータニオンヨー角 ( ψ )、ピッチ角 ( θ )、ロール角 ( ϕ )に相当する四元数、またはz - y ′- x ″ 規約に従う固有の Tait–Bryan 角は 、次のように計算できます。
q 私 = 罪 ϕ 2 コス θ 2 コス ψ 2 − コス ϕ 2 罪 θ 2 罪 ψ 2 q j = コス ϕ 2 罪 θ 2 コス ψ 2 + 罪 ϕ 2 コス θ 2 罪 ψ 2 q k = コス ϕ 2 コス θ 2 罪 ψ 2 − 罪 ϕ 2 罪 θ 2 コス ψ 2 q r = コス ϕ 2 コス θ 2 コス ψ 2 + 罪 ϕ 2 罪 θ 2 罪 ψ 2 {\displaystyle {\begin{aligned}q_{i}&=\sin {\frac {\phi }{2}}\cos {\frac {\theta }{2}}\cos {\frac {\psi }{2}}-\cos {\frac {\phi }{2}}\sin {\frac {\theta }{2}}\sin {\frac {\psi }{2}}\\q_{j}&=\cos {\frac {\phi }{2}}\sin {\frac {\theta }{2}}\cos {\frac {\psi }{2}}+\sin {\frac {\phi }{2}}\cos {\frac {\theta }{2}}\sin {\frac {\psi }{2}}\\q_{k}&=\cos {\frac {\phi }{2}}\cos {\frac {\theta }{2}}\sin {\frac {\psi }{2}}-\sin {\frac {\phi }{2}}\sin {\frac {\theta }{2}}\cos {\frac {\psi }{2}}\\q_{r}&=\cos {\frac {\phi }{2}}\cos {\frac {\theta }{2}}\cos {\frac {\psi }{2}}+\sin {\frac {\phi }{2}}\sin {\frac {\theta }{2}}\sin {\frac {\psi }{2}}\end{aligned}}}
四元数 → オイラー角(z - x - z 外因数)回転四元数が与えられた場合 q = [ q 私 q j q k q r ] = q 私 私 + q j j + q k k + q r 、 {\displaystyle \mathbf {q} ={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\\q_{r}\end{bmatrix}}=q_{i}\mathbf {i} +q_{j}\mathbf {j} +q_{k}\mathbf {k} +q_{r}\,,} x規則 3-1-3 の外部オイラー角 ( φ 、 θ 、 ψ ) は次のように計算できます。
ϕ = アタン2 ( ( q 私 q k + q j q r ) 、 − ( q j q k − q 私 q r ) ) θ = アルコス ( − q 私 2 − q j 2 + q k 2 + q r 2 ) ψ = アタン2 ( ( q 私 q k − q j q r ) 、 ( q j q k + q 私 q r ) ) {\displaystyle {\begin{aligned}\phi &=\operatorname {atan2} \left(\left(q_{i}q_{k}+q_{j}q_{r}\right),-\left(q_{j}q_{k}-q_{i}q_{r}\right)\right)\\\theta &=\arccos \left(-q_{i}^{2}-q_{j}^{2}+q_{k}^{2}+q_{r}^{2}\right)\\\psi &=\operatorname {atan2} \left(\left(q_{i}q_{k}-q_{j}q_{r}\right),\left(q_{j}q_{k}+q_{i}q_{r}\right)\right)\end{aligned}}}
四元数 → オイラー角(z - y ′ - x ″ 固有値)回転四元数が与えられた場合 q = [ q 私 q j q k q r ] = q 私 私 + q j j + q k k + q r 、 {\displaystyle \mathbf {q} ={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\\q_{r}\end{bmatrix}}=q_{i}\mathbf {i} +q_{j}\mathbf {j} +q_{k}\mathbf {k} +q_{r}\,,} ヨー角 、ピッチ角 、ロール角、またはz - y ′- x ″ 規約に従う固有の テイト・ブライアン角は 、次のように計算できます。
ロール = アタン2 ( 2 ( q r q 私 + q j q k ) 、 1 − 2 ( q 私 2 + q j 2 ) ) ピッチ = arcsin ( 2 ( q r q j − q k q 私 ) ) ヨー = アタン2 ( 2 ( q r q k + q 私 q j ) 、 1 − 2 ( q j 2 + q k 2 ) ) {\displaystyle {\begin{aligned}{\text{roll}}&=\operatorname {atan2} \left(2\left(q_{r}q_{i}+q_{j}q_{k}\right),1-2\left(q_{i}^{2}+q_{j}^{2}\right)\right)\\{\text{pitch}}&=\arcsin \left(2\left(q_{r}q_{j}-q_{k}q_{i}\right)\right)\\{\text{yaw}}&=\operatorname {atan2} \left(2\left(q_{r}q_{k}+q_{i}q_{j}\right),1-2\left(q_{j}^{2}+q_{k}^{2}\right)\right)\end{aligned}}}
オイラー軸と角度 ↔ クォータニオンオイラー軸ê と角度θ が与えられた場合、四元数は q = [ q 私 q j q k q r ] = q 私 私 + q j j + q k k + q r 、 {\displaystyle \mathbf {q} ={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\\q_{r}\end{bmatrix}}=q_{i}\mathbf {i} +q_{j}\mathbf {j} +q_{k}\mathbf {k} +q_{r}\,,}
計算方法 q 私 = e ^ 1 罪 θ 2 q j = e ^ 2 罪 θ 2 q k = e ^ 3 罪 θ 2 q r = コス θ 2 {\displaystyle {\begin{aligned}q_{i}&={\hat {e}}_{1}\sin {\frac {\theta }{2}}\\q_{j}&={\hat {e}}_{2}\sin {\frac {\theta }{2}}\\q_{k}&={\hat {e}}_{3}\sin {\frac {\theta }{2}}\\q_{r}&=\cos {\frac {\theta }{2}}\end{aligned}}}
回転四元数q が与えられたとき、 q ˇ = [ q 私 q j q k ] 。 {\displaystyle {\check {\mathbf {q} }}={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\end{bmatrix}}\,.} すると、オイラー軸ê と角度θ は次のように計算できる。 e ^ = q ˇ ‖ q ˇ ‖ θ = 2 アルコス q r {\displaystyle {\begin{aligned}{\hat {\mathbf {e} }}&={\frac {\check {\mathbf {q} }}{\left\|{\check {\mathbf {q} }}\right\|}}\\\theta &=2\arccos q_{r}\end{aligned}}}
回転行列 ↔ ロドリゲスベクトル
ロドリゲスベクトル → 回転行列ロドリゲスベクトルの定義は回転四元数と関連付けることができるため、次のようになります。{ g 私 = q 私 q r = e x タン ( θ 2 ) g j = q j q r = e y タン ( θ 2 ) g k = q k q r = e z タン ( θ 2 ) {\displaystyle {\begin{cases}g_{i}={\dfrac {q_{i}}{q_{r}}}=e_{x}\tan \left({\dfrac {\theta }{2}}\right)\\g_{j}={\dfrac {q_{j}}{q_{r}}}=e_{y}\tan \left({\dfrac {\theta }{2}}\right)\\g_{k}={\dfrac {q_{k}}{q_{r}}}=e_{z}\tan \left({\dfrac {\theta }{2}}\right)\end{cases}}} 以下の特性を利用することで1 = q r 2 + q 私 2 + q j 2 + q k 2 = q r 2 ( 1 + q 私 2 q r 2 + q j 2 q r 2 + q k 2 q r 2 ) = q r 2 ( 1 + g 私 2 + g j 2 + g k 2 ) {\displaystyle 1=q_{r}^{2}+q_{i}^{2}+q_{j}^{2}+q_{k}^{2}=q_{r}^{2}\left(1+{\frac {q_{i}^{2}}{q_{r}^{2}}}+{\frac {q_{j}^{2}}{q_{r}^{2}}}+{\frac {q_{k}^{2}}{q_{r}^{2}}}\right)=q_{r}^{2}\left(1+g_{i}^{2}+g_{j}^{2}+g_{k}^{2}\right)} この式は、四元数に対して得られた最終式からq 2 r を 因数分解することによって得られます。
A = q r 2 [ 1 q r 2 − 2 q j 2 q r 2 − 2 q k 2 q r 2 2 ( q 私 q r q j q r − q k q r ) 2 ( q 私 q r q k q r + q j q r ) 2 ( q 私 q r q j q r + q k q r ) 1 q r 2 − 2 q 私 2 q r 2 − 2 q k 2 q r 2 2 ( q j q r q k q r − q 私 q r ) 2 ( q 私 q r q k q r − q j q r ) 2 ( q j q r q k q r + q 私 q r ) 1 q r 2 − 2 q 私 2 q r 2 − 2 q j 2 q r 2 ] {\displaystyle \mathbf {A} =q_{r}^{2}{\begin{bmatrix}{\frac {1}{q_{r}^{2}}}-2{\frac {q_{j}^{2}}{q_{r}^{2}}}-2{\frac {q_{k}^{2}}{q_{r}^{2}}}&2\left({\frac {q_{i}}{q_{r}}}{\frac {q_{j}}{q_{r}}}-{\frac {q_{k}}{q_{r}}}\right)&2\left({\frac {q_{i}}{q_{r}}}{\frac {q_{k}}{q_{r}}}+{\frac {q_{j}}{q_{r}}}\right)\\2\left({\frac {q_{i}}{q_{r}}}{\frac {q_{j}}{q_{r}}}+{\frac {q_{k}}{q_{r}}}\right)&{\frac {1}{q_{r}^{2}}}-2{\frac {q_{i}^{2}}{q_{r}^{2}}}-2{\frac {q_{k}^{2}}{q_{r}^{2}}}&2\left({\frac {q_{j}}{q_{r}}}{\frac {q_{k}}{q_{r}}}-{\frac {q_{i}}{q_{r}}}\right)\\2\left({\frac {q_{i}}{q_{r}}}{\frac {q_{k}}{q_{r}}}-{\frac {q_{j}}{q_{r}}}\right)&2\left({\frac {q_{j}}{q_{r}}}{\frac {q_{k}}{q_{r}}}+{\frac {q_{i}}{q_{r}}}\right)&{\frac {1}{q_{r}^{2}}}-2{\frac {q_{i}^{2}}{q_{r}^{2}}}-2{\frac {q_{j}^{2}}{q_{r}^{2}}}\end{bmatrix}}}
最終的な公式に至る過程:
A = 1 1 + g 私 2 + g j 2 + g k 2 [ 1 + g 私 2 − g j 2 − g k 2 2 ( g 私 g j − g k ) 2 ( g 私 g k + g j ) 2 ( g 私 g j + g k ) 1 − g 私 2 + g j 2 − g k 2 2 ( g j g k − g 私 ) 2 ( g 私 g k − g j ) 2 ( g j g k + g 私 ) 1 − g 私 2 − g j 2 + g k 2 ] {\displaystyle \mathbf {A} ={\frac {1}{1+g_{i}^{2}+g_{j}^{2}+g_{k}^{2}}}{\begin{bmatrix}1+g_{i}^{2}-g_{j}^{2}-g_{k}^{2}&2\left(g_{i}g_{j}-g_{k}\right)&2\left(g_{i}g_{k}+g_{j}\right)\\2\left(g_{i}g_{j}+g_{k}\right)&1-g_{i}^{2}+g_{j}^{2}-g_{k}^{2}&2\left(g_{j}g_{k}-g_{i}\right)\\2\left(g_{i}g_{k}-g_{j}\right)&2\left(g_{j}g_{k}+g_{i}\right)&1-g_{i}^{2}-g_{j}^{2}+g_{k}^{2}\end{bmatrix}}}
幾何代数におけるローター 幾何代数 (GA)の定式化は、四元数法の拡張と解釈を提供する。GAの中心となるのはベクトルの幾何積であり、これは従来の内積 と外積 の拡張であり、次のように表される。 1 b = 1 ⋅ b + 1 ∧ b {\displaystyle \mathbf {ab} =\mathbf {a} \cdot \mathbf {b} +\mathbf {a} \wedge \mathbf {b} }
ここで、記号∧は 外積またはウェッジ積 を表します。ベクトルa とb のこの積は、内積からのスカラー部分とウェッジ積からの双ベクトル 部分の 2 つの項を生成します。この双ベクトルは、ベクトルの外積が返す平面に垂直な平面を表します。
GA のバイベクトルは、ベクトルと比較していくつかの特異な性質を持っています。幾何積の下では、バイベクトルは負の二乗を持ちます。バイベクトルx̂ŷ はxy 平面を表します。その二乗は( x̂ŷ ) 2 = x̂ŷx̂ŷ です。単位基底ベクトルは互いに直交しているため、幾何積は反対称外積に簡約され、x̂ とŷ は −1の係数を犠牲にして自由に交換できます。基底ベクトル自体が二乗すると +1 になるため、 二乗は− x̂x̂ŷŷ = −1に簡約されます。
この結果は一般的にすべての双ベクトルに当てはまり、結果として双ベクトルは虚数単位 と同様の役割を果たします。幾何代数では、双ベクトルは四元数 に相当するローターとして使用され、それは次のように表されます 。R = exp ( − B ^ θ 2 ) = コス θ 2 − B ^ 罪 θ 2 、 {\displaystyle \mathbf {R} =\exp \left({\frac {-{\hat {\mathbf {B} }}\theta }{2}}\right)=\cos {\frac {\theta }{2}}-{\hat {\mathbf {B} }}\sin {\frac {\theta }{2}}\,,} ここで、B̂ は回転面を 表す単位双ベクトルである。B̂の二乗は-1となるため、 Rのべ き級数 展開により三角関数 が生成される。ベクトルa を回転ベクトルb に写像する回転式は次のようになる。 b = R 1 R † {\displaystyle \mathbf {b} =\mathbf {RaR} ^{\dagger }} どこ R † = exp ( 1 2 B ^ θ ) = コス θ 2 + B ^ 罪 θ 2 {\displaystyle \mathbf {R} ^{\dagger }=\exp \left({\frac {1}{2}}{\hat {\mathbf {B} }}\theta \right)=\cos {\frac {\theta }{2}}+{\hat {\mathbf {B} }}\sin {\frac {\theta }{2}}} の逆 ですR {\displaystyle \scriptstyle R} (ベクトルの順序を逆にしてB {\displaystyle B} (符号を変えることと同等である)。
例: 軸を中心とした回転 v ^ = 1 3 ( x ^ + y ^ + z ^ ) {\displaystyle {\hat {\mathbf {v} }}={\frac {1}{\sqrt {3}}}\left({\hat {\mathbf {x} }}+{\hat {\mathbf {y} }}+{\hat {\mathbf {z} }}\right)} v̂を その双対ベクトルに 変換することで実現できます。B ^ = x ^ y ^ z ^ v ^ = 私 v ^ 、 {\displaystyle {\hat {\mathbf {B} }}={\hat {\mathbf {x} }}{\hat {\mathbf {y} }}{\hat {\mathbf {z} }}{\hat {\mathbf {v} }}=\mathbf {i} {\hat {\mathbf {v} }}\,,} ここで、i = x̂ŷẑ は単位体積要素であり、3次元空間における唯一の三次元ベクトル(擬似スカラー)である。結果は次のようになる。 B ^ = 1 3 ( y ^ z ^ + z ^ x ^ + x ^ y ^ ) 。 {\displaystyle {\hat {\mathbf {B} }}={\frac {1}{\sqrt {3}}}\left({\hat {\mathbf {y} }}{\hat {\mathbf {z} }}+{\hat {\mathbf {z} }}{\hat {\mathbf {x} }}+{\hat {\mathbf {x} }}{\hat {\mathbf {y} }}\right)\,.}
しかし、3次元空間では、iが 3D空間のすべてのオブジェクトと可換であり、かつ2乗すると-1になるという事実を利用して、B̂ = iv̂の式をそのままにしておく方が簡単な場合が多い。この平面内での x̂ ベクトルの角度θ による回転は次のようになる。
x ^ ′ = R x ^ R † = e − 私 v ^ θ 2 x ^ e 私 v ^ θ 2 = x ^ コス 2 θ 2 + 私 ( x ^ v ^ − v ^ x ^ ) コス θ 2 罪 θ 2 + v ^ x ^ v ^ 罪 2 θ 2 {\displaystyle {\hat {\mathbf {x} }}'=\mathbf {R} {\hat {\mathbf {x} }}\mathbf {R} ^{\dagger }=e^{-i{\hat {\mathbf {v} }}{\frac {\theta }{2}}}{\hat {\mathbf {x} }}e^{i{\hat {\mathbf {v} }}{\frac {\theta }{2}}}={\hat {\mathbf {x} }}\cos ^{2}{\frac {\theta }{2}}+\mathbf {i} \left({\hat {\mathbf {x} }}{\hat {\mathbf {v} }}-{\hat {\mathbf {v} }}{\hat {\mathbf {x} }}\right)\cos {\frac {\theta }{2}}\sin {\frac {\theta }{2}}+{\hat {\mathbf {v} }}{\hat {\mathbf {x} }}{\hat {\mathbf {v} }}\sin ^{2}{\frac {\theta }{2}}}
認識して 私 ( x ^ v ^ − v ^ x ^ ) = 2 私 ( x ^ ∧ v ^ ) {\displaystyle \mathbf {i} ({\hat {\mathbf {x} }}{\hat {\mathbf {v} }}-{\hat {\mathbf {v} }}{\hat {\mathbf {x} }})=2\mathbf {i} ({\hat {\mathbf {x} }}\wedge {\hat {\mathbf {v} }})} そして、−v̂x̂v̂がv̂に垂直な平面に関するx̂の鏡映であることから、回転 操作 に 幾何 学的な解釈が与えられます。つまり、回転は v̂ に平行な成分を保存し、垂直な成分のみを変更します。次に、以下の項を計算します。 v ^ x ^ v ^ = 1 3 ( − x ^ + 2 y ^ + 2 z ^ ) 2 私 x ^ ∧ v ^ = 2 私 1 3 ( x ^ y ^ + x ^ z ^ ) = 2 3 ( y ^ − z ^ ) {\displaystyle {\begin{aligned}{\hat {\mathbf {v} }}{\hat {\mathbf {x} }}{\hat {\mathbf {v} }}&={\frac {1}{3}}\left(-{\hat {\mathbf {x} }}+2{\hat {\mathbf {y} }}+2{\hat {\mathbf {z} }}\right)\\2\mathbf {i} {\hat {\mathbf {x} }}\wedge {\hat {\mathbf {v} }}&=2\mathbf {i} {\frac {1}{\sqrt {3}}}\left({\hat {\mathbf {x} }}{\hat {\mathbf {y} }}+{\hat {\mathbf {x} }}{\hat {\mathbf {z} }}\right)={\frac {2}{\sqrt {3}}}\left({\hat {\mathbf {y} }}-{\hat {\mathbf {z} }}\right)\end{aligned}}}
回転の結果は次のようになります。 x ^ ′ = x ^ ( コス 2 θ 2 − 1 3 罪 2 θ 2 ) + 2 3 y ^ 罪 θ 2 ( 罪 θ 2 + 3 コス θ 2 ) + 2 3 z ^ 罪 θ 2 ( 罪 θ 2 − 3 コス θ 2 ) {\displaystyle {\hat {\mathbf {x} }}'={\hat {\mathbf {x} }}\left(\cos ^{2}{\frac {\theta }{2}}-{\frac {1}{3}}\sin ^{2}{\frac {\theta }{2}}\right)+{\frac {2}{3}}{\hat {\mathbf {y} }}\sin {\frac {\theta }{2}}\left(\sin {\frac {\theta }{2}}+{\sqrt {3}}\cos {\frac {\theta }{2}}\right)+{\frac {2}{3}}{\hat {\mathbf {z} }}\sin {\frac {\theta }{2}}\left(\sin {\frac {\theta }{2}}-{\sqrt {3}}\cos {\frac {\theta }{2}}\right)}
この結果を簡単に確認するには、角度θ = 2 / 3π を 使います。このような回転はx̂ を ŷ に 写像するはずです。実際、回転は次のように簡略化されます 。 x ^ ′ = x ^ ( 1 4 − 1 3 3 4 ) + 2 3 y ^ 3 2 ( 3 2 + 3 1 2 ) + 2 3 z ^ 3 2 ( 3 2 − 3 1 2 ) = 0 x ^ + y ^ + 0 z ^ = y ^ {\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}'&={\hat {\mathbf {x} }}\left({\frac {1}{4}}-{\frac {1}{3}}{\frac {3}{4}}\right)+{\frac {2}{3}}{\hat {\mathbf {y} }}{\frac {\sqrt {3}}{2}}\left({\frac {\sqrt {3}}{2}}+{\sqrt {3}}{\frac {1}{2}}\right)+{\frac {2}{3}}{\hat {\mathbf {z} }}{\frac {\sqrt {3}}{2}}\left({\frac {\sqrt {3}}{2}}-{\sqrt {3}}{\frac {1}{2}}\right)\\&=0{\hat {\mathbf {x} }}+{\hat {\mathbf {y} }}+0{\hat {\mathbf {z} }}={\hat {\mathbf {y} }}\end{aligned}}}
予想通りです。この回転式はベクトルだけでなく、任意の多重ベクトル にも有効です。さらに、オイラー角を使用すると、演算の複雑さが大幅に軽減されます。複合回転はローターの乗算から得られるため、オイラー角による合計ローターは次のようになります。 R = R γ ′ R β ′ R α = exp ( − 私 z ^ ′ γ 2 ) exp ( − 私 x ^ ′ β 2 ) exp ( − 私 z ^ α 2 ) {\displaystyle \mathbf {R} =\mathbf {R} _{\gamma '}\mathbf {R} _{\beta '}\mathbf {R} _{\alpha }=\exp \left({\frac {-\mathbf {i} {\hat {\mathbf {z} }}'\gamma }{2}}\right)\exp \left({\frac {-\mathbf {i} {\hat {\mathbf {x} }}'\beta }{2}}\right)\exp \left({\frac {-\mathbf {i} {\hat {\mathbf {z} }}\alpha }{2}}\right)} しかし x ^ ′ = R α x ^ R α † そして z ^ ′ = R β ′ z ^ R β ′ † 。 {\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}'&=\mathbf {R} _{\alpha }{\hat {\mathbf {x} }}\mathbf {R} _{\alpha }^{\dagger }\quad {\text{and}}\\{\hat {\mathbf {z} }}'&=\mathbf {R} _{\beta '}{\hat {\mathbf {z} }}\mathbf {R} _{\beta '}^{\dagger }\,.\end{aligned}}} これらのローターは、次のように指数関数から抜け出します。 R β ′ = コス β 2 − 私 R α x ^ R α † 罪 β 2 = R α R β R α † {\displaystyle \mathbf {R} _{\beta '}=\cos {\frac {\beta }{2}}-\mathbf {i} \mathbf {R} _{\alpha }{\hat {\mathbf {x} }}\mathbf {R} _{\alpha }^{\dagger }\sin {\frac {\beta }{2}}=\mathbf {R} _{\alpha }\mathbf {R} _{\beta }\mathbf {R} _{\alpha }^{\dagger }} ここで、Rβ は 元 の座標系における回転を表します。γ回転についても同様です。 R γ ′ = R β ′ R γ R β ′ † = R α R β R α † R γ R α R β † R α † 。 {\displaystyle \mathbf {R} _{\gamma '}=\mathbf {R} _{\beta '}\mathbf {R} _{\gamma }\mathbf {R} _{\beta '}^{\dagger }=\mathbf {R} _{\alpha }\mathbf {R} _{\beta }\mathbf {R} _{\alpha }^{\dagger }\mathbf {R} _{\gamma }\mathbf {R} _{\alpha }\mathbf {R} _{\beta }^{\dagger }\mathbf {R} _{\alpha }^{\dagger }\,.} Rγ とRα が 可換であること(同一平面内の回転は可換でなければならない) に注目すると、全回転子は次のようになる。 R = R α R β R γ {\displaystyle \mathbf {R} =\mathbf {R} _{\alpha }\mathbf {R} _{\beta }\mathbf {R} _{\gamma }}
したがって、オイラー角の複合回転は、元の固定座標系における一連の等価回転となる。
幾何代数の回転子は、3 次元では四元数とほぼ同じように機能しますが、この定式化の強みはその一般性にあります。この方法は、任意の次元の空間で適切かつ有効です。3D では、回転には 3 つの自由度があり、回転が可能な線形独立な平面 (双ベクトル) ごとに 1 つの自由度があります。四元数のペアを使用して 4D で回転を生成し、6 つの自由度が得られることは知られており、幾何代数のアプローチはこの結果を検証します。4D では、回転の生成子として使用できる 6 つの線形独立な双ベクトルがあります。