3D回転を表現する方法
幾何学 では 、 3 次元の 回転を 数学的 変換 として表現するさまざまな 形式論が存在します。物理学では、この概念は 古典力学 に適用され 、回転(または角) 運動学 は純粋な回転 運動を 定量的 に記述する科学です 。特定の瞬間の物体の 向きは 、空間内の前の配置からの実際に観測された回転ではなく、空間内の基準配置からの想像上の回転として定義されるため、同じツールで記述されます。
オイラーの回転定理 によれば、 剛体 (または固定 原点 を持つ3 次元 座標系 )の回転は 、ある軸の周りの単一の回転によって記述されます。このような回転は、少なくとも 3 つの 実 パラメータによって一意に記述できます。ただし、さまざまな理由により、回転を表現する方法は複数あります。これらの表現の多くは、必要最小限の 3 つのパラメータよりも多くのパラメータを使用しますが、それぞれの 自由度は 3 つだけです。
回転表現が使用される例としては 、 自動化された 観測者がターゲットを追跡する必要がある コンピューター ビジョンが挙げられます。3 つの 直交単位ベクトル (オブジェクトのローカル 座標系 の 3 つの軸を表す) が本体に固定された剛体を考えます。基本的な問題は、空間内の基準配置と見なされる観測者の座標系に対する、これら 3 つの 単位ベクトル 、つまり剛体の方向を指定することです。
回転と動き
回転形式は、回転 が 参照する 1 つの固定点 を持つ ユークリッド空間 の適切な ( 方向保存 ) 運動に焦点を当てています。固定点を持つ物理的な運動は重要なケースですが ( 質量中心フレーム で記述される運動や 関節 の運動など)、このアプローチによりすべての運動に関する知識が得られます。ユークリッド空間の適切な運動は、原点の周りの回転と 平行移動に分解されます。それらの 合成 順序がどうで あれ、「純粋な」回転成分は変化せず、完全な運動によって一意に決定されます。
「純粋な」回転は、対応する アフィン空間の 点 の写像としてではなく、ユークリッド構造を備えたベクトル 空間 の 線形写像 として理解することもできます 。言い換えると、回転形式は、3 つの自由度を含む運動の回転部分のみを捉え、別の 3 つの自由度を含む並進部分は無視します。
コンピュータで回転を数値として表現する場合、 オイラー回転で発生する可能性のある ジンバルロックを回避するため、四元数表現または軸+角度表現を好む人もいます。 [1]
回転行列
前述の 単位ベクトルの 3 つ組は 基底 とも呼ばれます 。この基底のベクトルの 座標 ( 成分 ) を現在の (回転した) 位置で、基準 (回転していない) 座標軸に関して指定すると、回転が完全に記述されます。回転した基底を形成する 3 つの単位ベクトル û 、 v̂ 、 ŵ はそれぞれ 3 つの座標で構成され、合計 9 つのパラメーターが生成されます。
これらのパラメータは、回転行列 と呼ばれる 3×3 行列 A の要素として表すことができます 。通常、これらのベクトルの座標は行列の列に沿って配置されます(ただし、回転行列の別の定義が存在し、広く使用されていることに注意してください。この定義では、上で定義されたベクトルの座標が行ごとに配置されます [2] )。
あ
=
[
あなた
^
x
ヴ
^
x
わ
^
x
あなた
^
ええ
ヴ
^
ええ
わ
^
ええ
あなた
^
ず
ヴ
^
ず
わ
^
ず
]
{\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 の 固有値 は、 iが i 2 = −1の 性質を持つ 標準 虚数単位 で ある。
{
1
、
e
±
私
θ
}
=
{
1
、
コス
θ
+
私
罪
θ
、
コス
θ
−
私
罪
θ
}
{\displaystyle \left\{1,e^{\pm i\theta }\right\}=\{1,\ \cos \theta +i\sin \theta ,\ \cos \theta -i\sin \theta \}}
A の 行列 式 は+1 であり、その固有値の積に相当します。
A の トレース は 1 + 2 cos θ であり 、その固有値の合計に相当します。
固有値式に現れる角度 θ は 、オイラー軸の角度と角度表現に対応します。固有値 1 に対応する 固有ベクトルは 、付随するオイラー軸です。これは、軸が回転行列で左乗算 (回転) しても変化しない唯一の (非ゼロの) ベクトルであるためです。
上記の特性は と同等であり
、これは ( û 、 v̂ 、 ŵ ) が3D 正規直交基底 を形成すること
を別の方法で表したものです 。これらのステートメントは合計 6 つの条件 (外積には 3 つが含まれます) で構成され、回転行列には必要に応じて 3 つの自由度だけが残ります。
|
あなた
^
|
=
|
ヴ
^
|
=
|
わ
^
|
=
1
あなた
^
⋅
ヴ
^
=
0
あなた
^
×
ヴ
^
=
わ
^
、
{\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}}}
行列 A 1 と A 2 で表される 2 つの連続する回転は、グループの要素として簡単に組み合わせることができます
(回転するベクトルは右から乗算されるため、順序に注意してください)。
あ
合計
=
あ
2
あ
1
{\displaystyle \mathbf {A} _{\text{total}}=\mathbf {A} _{2}\mathbf {A} _{1}}
回転行列を使用するとベクトルを簡単に回転でき、連続した回転を簡単に組み合わせることができるため、回転行列は他の表現よりも簡潔ではありませんが、回転を表現する便利で一般的な方法となっています。
オイラー軸と角度(回転ベクトル)
オイラー軸と角度によって表される回転の視覚化。
オイラーの回転定理 から、 あらゆる回転は、ある軸を中心とした単一の回転として表現できることがわかります。軸は、回転によって変化しない単位ベクトル (符号以外は一意) です。角度の大きさも一意で、その符号は回転軸の符号によって決まります。
軸は3次元の 単位ベクトル
として表すことができ
、角度はスカラー θ で表すことができます。
e
^
=
[
e
x
e
ええ
e
ず
]
{\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 つのオイラー角のシーケンスに基づく表現にも当てはまります (以下を参照)。
回転角度 θ が 0 の場合、軸は一意に定義されません。それぞれがオイラー軸と角度で表された 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
じ
じ
+
q
け
け
+
q
r
=
[
q
私
q
じ
q
け
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
ええ
e
ず
]
{\displaystyle {\hat {\mathbf {e} }}={\begin{bmatrix}e_{x}\\e_{y}\\e_{z}\end{bmatrix}}}
角度θ によって、 このバーサーの成分は次のように表されます。
q
私
=
e
x
罪
θ
2
q
じ
=
e
ええ
罪
θ
2
q
け
=
e
ず
罪
θ
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
じ
2
+
q
け
2
+
q
r
2
=
1
{\displaystyle q_{i}^{2}+q_{j}^{2}+q_{k}^{2}+q_{r}^{2}=1}
最後の項(定義では)はしばしばスカラー項と呼ばれ、複素数の数学的拡張として理解される四元数に由来し、次のように書かれる。
ここで、 { i , j , k } は次を満たす
超複素数 である。
1つの
+
b
私
+
c
じ
+
d
け
と
1つの
、
b
、
c
、
d
∈
R
{\displaystyle a+bi+cj+dk\qquad {\text{a,b,c,d\in \mathbb {R} } で
私
2
=
じ
2
=
け
2
=
−
1
私
じ
=
−
じ
私
=
け
じ
け
=
−
け
じ
=
私
け
私
=
−
私
け
=
じ
{\displaystyle {\begin{array}{ccccccc}i^{2}&=&j^{2}&=&k^{2}&=&-1\\ij&=&-ji&=&k&&\\jk&=& -kj&=&i&&\\ki&=&-ik&=&j&&\end{配列}}}
合成 回転を指定するために使用される四元数の乗算は、 複素数 の乗算と同じ方法で実行されます が、乗算は可換ではないため、要素の順序を考慮する必要があります。行列表記では、四元数の乗算は次のように記述できます。
q
〜
⊗
q
=
[
q
r
q
け
−
q
じ
q
私
−
q
け
q
r
q
私
q
じ
q
じ
−
q
私
q
r
q
け
−
q
私
−
q
じ
−
q
け
q
r
]
[
q
〜
私
q
〜
じ
q
〜
け
q
〜
r
]
=
[
q
〜
r
−
q
〜
け
q
〜
じ
q
〜
私
q
〜
け
q
〜
r
−
q
〜
私
q
〜
じ
−
q
〜
じ
q
〜
私
q
〜
r
q
〜
け
−
q
〜
私
−
q
〜
じ
−
q
〜
け
q
〜
r
]
[
q
私
q
じ
q
け
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次元パラメータ化に固有のもの)を避けながら、 ℝ 4 ( S 3 で示される) の単位球上で連続的に変化する。
回転行列を四元数パラメータで表現する場合、 三角関数は使用されない。
四元数として表される2つの個別の回転を四元数積を使って組み合わせるのは簡単です。
回転行列と同様に、四元数も丸め誤差のために、有効な回転に対応するように再正規化する必要がある場合があります。ただし、四元数の再正規化の計算コストは、 3 × 3 行列の正規化よりもはるかに低くなります。
四元数は、3 次元での回転のスピノリアル特性も表します。たるんだ弦またはバンドによって (固定された) 周囲に接続された 3 次元オブジェクトの場合、弦またはバンドは、初期のもつれのない状態から、ある固定軸の周りを 2 回転すると解けます。代数的には、このような回転を記述する四元数は、スカラー +1 (初期) から (スカラー + 擬似ベクトル) 値を経てスカラー -1 (1 回転) に変化し、(スカラー + 擬似ベクトル) 値を経て再びスカラー +1 (2 回転) に戻ります。このサイクルは 2 回転ごとに繰り返されます。2 n 回転 (整数 n > 0) すると 、 中間 の もつれ を 解く試行をすることなく、弦/バンドは、 2 回転から 0 回転へのもつれを解くときに使用したのと同じ手順をそれぞれ適用することで、 2( n − 1) 回転の状態に部分的にもつれを解くことができます。同じ手順を n 回適用すると、 2 n 絡み合ったオブジェクトは、絡み合っていない状態、つまり 0 回転の状態に戻ります。絡み合いを解くプロセスでは、弦/バンド自体の回転によって生じたねじれも除去されます。これらの事実は、シンプルな 3D 機械モデルを使用して実証できます。
ロドリゲスベクター
ロドリゲス ベクトル ( ギブスベクトルとも呼ばれ、座標は ロドリゲスパラメータ と呼ばれる ) [3] [4]は、 回転軸と角度で次のように表すことができます。
g
=
e
^
tan
θ
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 に関連付けられた四元数を次のように構築する。
すると、回転 R B と R A
の合成は 回転 R C = R B R A となり、回転軸と角度は四元数の積で定義され
、
S
=
cos
ϕ
2
+
sin
ϕ
2
S
.
{\displaystyle S=\cos {\frac {\phi }{2}}+\sin {\frac {\phi }{2}}\mathbf {S} .}
A
=
cos
α
2
+
sin
α
2
A
and
B
=
cos
β
2
+
sin
β
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
=
cos
γ
2
+
sin
γ
2
C
=
(
cos
β
2
+
sin
β
2
B
)
(
cos
α
2
+
sin
α
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).}
この四元数積を展開すると
cos
γ
2
+
sin
γ
2
C
=
(
cos
β
2
cos
α
2
−
sin
β
2
sin
α
2
B
⋅
A
)
+
(
sin
β
2
cos
α
2
B
+
sin
α
2
cos
β
2
A
+
sin
β
2
sin
α
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).}
この式の両辺を前の式の恒等式で割り
、評価します。
cos
γ
2
=
cos
β
2
cos
α
2
−
sin
β
2
sin
α
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} ,}
tan
γ
2
C
=
tan
β
2
B
+
tan
α
2
A
+
tan
β
2
tan
α
2
B
×
A
1
−
tan
β
2
tan
α
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)
修正ロドリゲスパラメータ(MRP)は、オイラー軸と角度で次のように表すことができます。
その成分は、同じ回転を表す単位四元数の成分で表すことができます。
p
=
e
^
tan
θ
4
.
{\displaystyle \mathbf {p} ={\hat {\mathbf {e} }}\tan {\frac {\theta }{4}}\,.}
p
x
,
y
,
z
=
q
i
,
j
,
k
1
+
q
r
.
{\displaystyle p_{x,y,z}={\frac {q_{i,j,k}}{1+q_{r}}}\,.}
修正ロドリゲス ベクトルは、 単位四元数を 3 次元球面から 3 次元純ベクトル超平面に投影する立体 投影です。反対の四元数 − qの投影は、元の四元数 q の投影とは 異なる修正ロドリゲス ベクトル p s になります。成分を比較すると
、これらのベクトルの 1 つが単位 3 次元球面の内側にある場合、もう一方は外側にあることがわかります。
p
x
,
y
,
z
s
=
−
q
i
,
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}}}\,.}
ケーリー・クラインパラメータ
Wolfram Mathworld の定義を参照してください。
高次元類似体
ユークリッド空間における3D ベクトル p の軸 n の周りの角度 η にわたるアクティブ回転は、次のようにドット積とクロス積で簡単に表すことができます。
p
′
=
p
∥
n
+
cos
η
p
⊥
+
sin
η
p
∧
n
{\displaystyle \mathbf {p} '=p_{\parallel }\mathbf {n} +\cos {\eta }\,\mathbf {p} _{\perp }+\sin {\eta }\,\mathbf {p} \wedge \mathbf {n} }
ここで、
は n に沿った p
の縦方向成分で 、内積で与えられ 、 は
n に関する p
の横方向成分であり 、
p
∥
=
p
⋅
n
{\displaystyle p_{\parallel }=\mathbf {p} \cdot \mathbf {n} }
p
⊥
=
p
−
(
p
⋅
n
)
n
{\displaystyle \mathbf {p} _{\perp }=\mathbf {p} -(\mathbf {p} \cdot \mathbf {n} )\mathbf {n} }
p
∧
n
{\displaystyle \mathbf {p} \wedge \mathbf {n} }
はp と n の 外積 です 。
上記の式は、 p の縦方向成分は 変化しないが、 pの横方向成分は n に垂直な平面内で回転することを示しています。この平面は、 pの横方向成分自体と、 p と n の 両方に垂直な方向 によって張られます。回転は、角度 η にわたる 2D 回転として式内で直接識別できます 。
受動回転は同じ式で記述できますが、 η または n の符号が逆になります 。
回転行列 ↔ オイラー角
回転行列A を解析形式で調べることで、オイラー角 ( φ 、 θ 、 ψ ) を抽出できます 。
回転行列 → オイラー角( z - x - z 外因性
x 規則を使用すると 、3-1-3 外在 オイラー角 φ 、 θ 、 ψ ( z 軸、 x 軸、そして再び 軸の周り) は次のように取得できます。
Z
{\displaystyle Z}
ϕ
=
atan2
(
A
31
,
A
32
)
θ
=
arccos
(
A
33
)
ψ
=
−
atan2
(
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 と同等である ことに注意してください 1つの / b ここでは、点 ( b 、 a )が含まれる 象限 も考慮されます 。atan2 を 参照してください。
変換を実行する際には、いくつかの状況を考慮する必要があります。 [5]
一般に区間 [−π , π ] には2つの解が存在する 3。 上記の式は θ が区間 [0, π ] 内にある場合にのみ有効である。
特別な場合 A 33 = 0 の場合、 φ と ψは A 11 と A 12 から導出されます 。
区間 [−π , π ] 3 の 外には無限個、しかし可算個数の解が存在する。
すべての数学的ソリューションが特定のアプリケーションに適用されるかどうかは、状況によって異なります。
オイラー角( z - y ′ - x ″ 固有)→回転行列
回転行列 A は、軸の周りの回転によって生成された 3 つの行列を乗算することによって、
3-2-1 の 固有オイラー角から生成されます。
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}}
回転の軸は、使用されている特定の規則によって異なります。 x 規則の場合、回転は x 軸、 y 軸、 z 軸を中心に、角度 ϕ 、 θ 、 ψ で行われ、個々の行列は次のようになります。
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}}}
これにより、次の式が得られます
。注: これは 、ほぼすべての工学および物理学の分野で使用されている規則である
右手 系
に有効です。
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}}}
これらの右手回転行列の解釈は、点変換( アクティブ )ではなく座標変換( パッシブ )を表現するというものです。A は ローカルフレーム 1 からグローバルフレーム 0 への回転を表現するため(つまり、 A はフレーム 0 に対するフレーム 1 の軸をエンコードします)、基本回転行列は上記のように構成されます。逆回転は単に回転を転置したものなので、フレーム 0 からフレーム 1 へのグローバルからローカルへの回転が必要な場合は、次のように 記述します
。
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}}\,.}
回転行列 ↔ オイラー軸/角度
オイラー角 θ が π の倍数でない場合 、オイラー軸 ê と角度 θ は回転行列 A の要素から次のように
計算できます。
θ
=
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}}}
あるいは、次の方法を使用することもできます。
回転行列の固有分解により、固有値 1 と cos θ ± i sin θ が得られます。オイラー軸は 1 の固有値に対応する固有ベクトルであり、残りの固有値から θ を 計算できます。
オイラー軸は行列 I − A の零空間に張られる正規化されたベクトルであるため、特異値分解を使用して見つけることもできます。
逆に変換するには、オイラー軸 ê と角度 θに対応する回転行列を 、ロドリゲスの回転公式 (適切な修正を加えたもの)に従って次のように
計算します。
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 }
I 3 は 3×3の 単位行列 で あり 、
[
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}}}
はクロス積行列 です 。
これは次のように展開されます:
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}}}
回転行列 ↔ 四元数
回転行列から四元数を計算する場合、 q と − q は 同じ回転を表すため、符号の曖昧さが生じます。
回転行列 A から四元数を計算する 1 つの方法は
次のとおりです。
q
=
[
q
i
q
j
q
k
q
r
]
=
q
i
i
+
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
r
=
1
2
1
+
A
11
+
A
22
+
A
33
q
i
=
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
i
=
1
2
1
+
A
11
−
A
22
−
A
33
q
j
=
1
4
q
i
(
A
12
+
A
21
)
q
k
=
1
4
q
i
(
A
13
+
A
31
)
q
r
=
1
4
q
i
(
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
ˇ
)
I
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
i
q
j
q
k
]
,
Q
=
[
0
−
q
k
q
j
q
k
0
−
q
i
−
q
j
q
i
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
i
q
j
−
q
k
q
r
)
2
(
q
i
q
k
+
q
j
q
r
)
2
(
q
i
q
j
+
q
k
q
r
)
1
−
2
q
i
2
−
2
q
k
2
2
(
q
j
q
k
−
q
i
q
r
)
2
(
q
i
q
k
−
q
j
q
r
)
2
(
q
j
q
k
+
q
i
q
r
)
1
−
2
q
i
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
i
2
+
2
q
r
2
2
(
q
i
q
j
−
q
k
q
r
)
2
(
q
i
q
k
+
q
j
q
r
)
2
(
q
i
q
j
+
q
k
q
r
)
−
1
+
2
q
j
2
+
2
q
r
2
2
(
q
j
q
k
−
q
i
q
r
)
2
(
q
i
q
k
−
q
j
q
r
)
2
(
q
j
q
k
+
q
i
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
i
q
j
q
k
q
r
]
=
q
i
i
+
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
i
=
cos
ϕ
−
ψ
2
sin
θ
2
q
j
=
sin
ϕ
−
ψ
2
sin
θ
2
q
k
=
sin
ϕ
+
ψ
2
cos
θ
2
q
r
=
cos
ϕ
+
ψ
2
cos
θ
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
i
=
sin
ϕ
2
cos
θ
2
cos
ψ
2
−
cos
ϕ
2
sin
θ
2
sin
ψ
2
q
j
=
cos
ϕ
2
sin
θ
2
cos
ψ
2
+
sin
ϕ
2
cos
θ
2
sin
ψ
2
q
k
=
cos
ϕ
2
cos
θ
2
sin
ψ
2
−
sin
ϕ
2
sin
θ
2
cos
ψ
2
q
r
=
cos
ϕ
2
cos
θ
2
cos
ψ
2
+
sin
ϕ
2
sin
θ
2
sin
ψ
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 外因性
回転四元数
x 規則 3-1-3 外在オイラー角 ( φ 、 θ 、 ψ ) は次のように計算できる。
q
=
[
q
i
q
j
q
k
q
r
]
=
q
i
i
+
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}\,,}
ϕ
=
atan2
(
(
q
i
q
k
+
q
j
q
r
)
,
−
(
q
j
q
k
−
q
i
q
r
)
)
θ
=
arccos
(
−
q
i
2
−
q
j
2
+
q
k
2
+
q
r
2
)
ψ
=
atan2
(
(
q
i
q
k
−
q
j
q
r
)
,
(
q
j
q
k
+
q
i
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 ″ 本質的な
回転四元数
ヨー 、 ピッチ 、ロール角、または z - y ′- x ″ 規則に従う 固有の Tait-Bryan角は 次のように計算できる。
q
=
[
q
i
q
j
q
k
q
r
]
=
q
i
i
+
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}\,,}
roll
=
atan2
(
2
(
q
r
q
i
+
q
j
q
k
)
,
1
−
2
(
q
i
2
+
q
j
2
)
)
pitch
=
arcsin
(
2
(
q
r
q
j
−
q
k
q
i
)
)
yaw
=
atan2
(
2
(
q
r
q
k
+
q
i
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
i
q
j
q
k
q
r
]
=
q
i
i
+
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
i
=
e
^
1
sin
θ
2
q
j
=
e
^
2
sin
θ
2
q
k
=
e
^
3
sin
θ
2
q
r
=
cos
θ
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
i
q
j
q
k
]
.
{\displaystyle {\check {\mathbf {q} }}={\begin{bmatrix}q_{i}\\q_{j}\\q_{k}\end{bmatrix}}\,.}
e
^
=
q
ˇ
‖
q
ˇ
‖
θ
=
2
arccos
q
r
{\displaystyle {\begin{aligned}{\hat {\mathbf {e} }}&={\frac {\check {\mathbf {q} }}{\left\|{\check {\mathbf {q} }}\right\|}}\\\theta &=2\arccos q_{r}\end{aligned}}}
回転行列↔ロドリゲスベクトル
ロドリゲスベクトル → 回転行列
ロドリゲスベクトルの定義は回転四元数と関連しているので、 次の性質を利用すると、 qを 因数分解することで式を得ることができます。
{
g
i
=
q
i
q
r
=
e
x
tan
(
θ
2
)
g
j
=
q
j
q
r
=
e
y
tan
(
θ
2
)
g
k
=
q
k
q
r
=
e
z
tan
(
θ
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
i
2
+
q
j
2
+
q
k
2
=
q
r
2
(
1
+
q
i
2
q
r
2
+
q
j
2
q
r
2
+
q
k
2
q
r
2
)
=
q
r
2
(
1
+
g
i
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)}
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
i
q
r
q
j
q
r
−
q
k
q
r
)
2
(
q
i
q
r
q
k
q
r
+
q
j
q
r
)
2
(
q
i
q
r
q
j
q
r
+
q
k
q
r
)
1
q
r
2
−
2
q
i
2
q
r
2
−
2
q
k
2
q
r
2
2
(
q
j
q
r
q
k
q
r
−
q
i
q
r
)
2
(
q
i
q
r
q
k
q
r
−
q
j
q
r
)
2
(
q
j
q
r
q
k
q
r
+
q
i
q
r
)
1
q
r
2
−
2
q
i
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
i
2
+
g
j
2
+
g
k
2
[
1
+
g
i
2
−
g
j
2
−
g
k
2
2
(
g
i
g
j
−
g
k
)
2
(
g
i
g
k
+
g
j
)
2
(
g
i
g
j
+
g
k
)
1
−
g
i
2
+
g
j
2
−
g
k
2
2
(
g
j
g
k
−
g
i
)
2
(
g
i
g
k
−
g
j
)
2
(
g
j
g
k
+
g
i
)
1
−
g
i
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}}}
回転行列↔角速度
角速度ベクトルは
回転行列の 時間微分
から抽出できる
ω
=
[
ω
x
ω
y
ω
z
]
{\displaystyle {\boldsymbol {\omega }}={\begin{bmatrix}\omega _{x}\\\omega _{y}\\\omega _{z}\end{bmatrix}}}
dA / d t 次の関係により:
[
ω
]
×
=
[
0
−
ω
z
ω
y
ω
z
0
−
ω
x
−
ω
y
ω
x
0
]
=
d
A
d
t
A
T
{\displaystyle [{\boldsymbol {\omega }}]_{\times }={\begin{bmatrix}0&-\omega _{z}&\omega _{y}\\\omega _{z}&0&-\omega _{x}\\-\omega _{y}&\omega _{x}&0\end{bmatrix}}={\frac {\mathrm {d} \mathbf {A} }{\mathrm {d} t}}\mathbf {A} ^{\mathsf {T}}}
導出はIoffe [8] から引用し、以下のようにした。
任意のベクトル r 0 について、 r ( t ) = A ( t ) r 0 を考えて微分します。
d
r
d
t
=
d
A
d
t
r
0
=
d
A
d
t
A
T
(
t
)
r
(
t
)
{\displaystyle {\frac {\mathrm {d} \mathbf {r} }{\mathrm {d} t}}={\frac {\mathrm {d} \mathbf {A} }{\mathrm {d} t}}\mathbf {r} _{0}={\frac {\mathrm {d} \mathbf {A} }{\mathrm {d} t}}\mathbf {A} ^{\mathsf {T}}(t)\mathrm {r} (t)}
ベクトルの導関数は、 その先端の 線速度 です。A は回転行列なので、定義により r ( t ) の長さは 常に r 0 の 長 さ に等しく 、したがって時間とともに変化しません。したがって、 r ( t ) が回転すると 、 その 先端 は円に沿って動き、その先端 の 線速度は円の接線方向、つまり常に r ( t ) に垂直になります。この特定のケースでは、線速度ベクトルと角速度ベクトルの関係は次のようになります
( 円運動 と 外積を 参照)。
d
r
d
t
=
ω
(
t
)
×
r
(
t
)
=
[
ω
]
×
r
(
t
)
{\displaystyle {\frac {\mathrm {d} \mathbf {r} }{\mathrm {d} t}}={\boldsymbol {\omega }}(t)\times \mathbf {r} (t)=[{\boldsymbol {\omega }}]_{\times }\mathbf {r} (t)}
上記の式の
推移性 により、
d
A
d
t
A
T
(
t
)
r
(
t
)
=
[
ω
]
×
r
(
t
)
{\displaystyle {\frac {\mathrm {d} \mathbf {A} }{\mathrm {d} t}}\mathbf {A} ^{\mathsf {T}}(t)\mathbf {r} (t)=[{\boldsymbol {\omega }}]_{\times }\mathbf {r} (t)}
これは
d
A
d
t
A
T
(
t
)
=
[
ω
]
×
{\displaystyle {\frac {\mathrm {d} \mathbf {A} }{\mathrm {d} t}}\mathbf {A} ^{\mathsf {T}}(t)=[{\boldsymbol {\omega }}]_{\times }}
四元数 ↔ 角速度
角速度ベクトルは
四元数の微分から得られる
ω
=
[
ω
x
ω
y
ω
z
]
{\displaystyle {\boldsymbol {\omega }}={\begin{bmatrix}\omega _{x}\\\omega _{y}\\\omega _{z}\end{bmatrix}}}
dq / d t 以下のように表される: [9]
ここで q̃は q の共役(逆)である 。
[
0
ω
x
ω
y
ω
z
]
=
2
d
q
d
t
q
~
{\displaystyle {\begin{bmatrix}0\\\omega _{x}\\\omega _{y}\\\omega _{z}\end{bmatrix}}=2{\frac {\mathrm {d} \mathbf {q} }{\mathrm {d} t}}{\tilde {\mathbf {q} }}}
逆に、四元数の微分は
d
q
d
t
=
1
2
[
0
ω
x
ω
y
ω
z
]
q
.
{\displaystyle {\frac {\mathrm {d} \mathbf {q} }{\mathrm {d} t}}={\frac {1}{2}}{\begin{bmatrix}0\\\omega _{x}\\\omega _{y}\\\omega _{z}\end{bmatrix}}\mathbf {q} \,.}
幾何代数における回転子
幾何代数 (GA)の形式主義は、 四元数法の拡張と解釈を提供する。GAの中心となるのはベクトルの幾何積であり、これは伝統的な 内積 と 外積 の拡張であり、次のように表される。
a
b
=
a
⋅
b
+
a
∧
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に簡約されます。
この結果は一般にすべての二重ベクトルに当てはまり、その結果、二重ベクトルは 虚数単位 と同様の役割を果たします。幾何代数では、四元数に類似した 回転子 で二重ベクトルが使用されます。これは で表されます。ここで、
B̂
は回転面 を記述する単位二重ベクトルです。B̂ は -1 の 2 乗になるので、R のべき級数展開により三角関数 が生成されます。ベクトル a を回転ベクトル b にマップする回転式は、 の逆
に なり ます ( の ベクトル の 順序 を 逆 に する こと は 、 その 符号
を 変更
する ことと同じです)。
R
=
exp
(
−
B
^
θ
2
)
=
cos
θ
2
−
B
^
sin
θ
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
=
R
a
R
†
{\displaystyle \mathbf {b} =\mathbf {RaR} ^{\dagger }}
R
†
=
exp
(
1
2
B
^
θ
)
=
cos
θ
2
+
B
^
sin
θ
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̂を その双対二ベクトルに
変換することで実現できます。
ここで、 i = x̂ŷẑ は単位体積要素であり、3次元空間で唯一の三ベクトル(擬似スカラー)です。結果は次のようになります。
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)}
B
^
=
x
^
y
^
z
^
v
^
=
i
v
^
,
{\displaystyle {\hat {\mathbf {B} }}={\hat {\mathbf {x} }}{\hat {\mathbf {y} }}{\hat {\mathbf {z} }}{\hat {\mathbf {v} }}=\mathbf {i} {\hat {\mathbf {v} }}\,,}
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が 3次元のすべてのオブジェクトと可換であり、また-1に2乗するという事実を利用して、 B̂ = iv̂ の式を残す方が簡単な場合が多い
。この平面で x̂ ベクトルを角度 θ だけ回転すると、
x
^
′
=
R
x
^
R
†
=
e
−
i
v
^
θ
2
x
^
e
i
v
^
θ
2
=
x
^
cos
2
θ
2
+
i
(
x
^
v
^
−
v
^
x
^
)
cos
θ
2
sin
θ
2
+
v
^
x
^
v
^
sin
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}}}
および − v̂x̂v̂が v̂ に垂直な平面に関する x̂ の反射であること を認識すると、
回転操作に幾何学的な解釈が与えられます。回転は v̂ に平行な成分を保存し、垂直な成分のみを変更します。次に、項を計算します。
i
(
x
^
v
^
−
v
^
x
^
)
=
2
i
(
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
^
=
1
3
(
−
x
^
+
2
y
^
+
2
z
^
)
2
i
x
^
∧
v
^
=
2
i
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
^
(
cos
2
θ
2
−
1
3
sin
2
θ
2
)
+
2
3
y
^
sin
θ
2
(
sin
θ
2
+
3
cos
θ
2
)
+
2
3
z
^
sin
θ
2
(
sin
θ
2
−
3
cos
θ
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
=
R
γ
′
R
β
′
R
α
=
exp
(
−
i
z
^
′
γ
2
)
exp
(
−
i
x
^
′
β
2
)
exp
(
−
i
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
α
†
and
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
β
′
=
cos
β
2
−
i
R
α
x
^
R
α
†
sin
β
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
α
†
.
{\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
γ
{\displaystyle \mathbf {R} =\mathbf {R} _{\alpha }\mathbf {R} _{\beta }\mathbf {R} _{\gamma }}
したがって、オイラー角の複合回転は、元の固定フレーム内の同等の回転のシリーズになります。
幾何代数における回転子は 3 次元の四元数とほぼ同じように機能しますが、この形式の威力はその汎用性にあります。この方法は、任意の次元数の空間に適切かつ有効です。3D では、回転には 3 つの自由度があり、回転を行うことができる線形独立平面 (バイベクトル) ごとに 1 つの自由度があります。四元数のペアを使用して 4D で回転を生成し、6 つの自由度を生成できることが知られており、幾何代数アプローチによってこの結果が検証されます。4D では、回転の生成元として使用できる 6 つの線形独立バイベクトルがあります。
参照
参考文献
^
「拡張現実のための基準マーカー追跡」。
^ Weisstein, Eric W. 「回転行列」 。MathWorld 。
^ ab ロドリゲス、オリンデ (1840)。 「空間とシステムの安定性を維持する地理的配置、および生産性と生産性を考慮した独立した座標系のバリエーション。」 J.Math. Pures Appl . 5 :380~440。 オンライン
^ cf. J Willard Gibbs (1884). Elements of Vector Analysis 、ニューヘイブン、p. 67
^ 直接運動学と逆運動学の講義ノート、5ページ
^ Mebius, Johan (2007). 「4次元回転の一般式からの3次元回転のオイラー・ロドリゲス公式の導出」 arXiv : math/0701759 。
^ Shuster, Malcolm D. (1993). 「姿勢表現の調査」 (PDF) . Journal of the Astronautical Sciences . 41 (4): 439–517. Bibcode :1993JAnSc..41..439S.
^ [1] 物理学 - マーク・イオッフェ - 行列による W ( t )
^ 四元数と回転の講義ノート、p. 14-15
さらに読む
Shuster, MD (1993). 「姿勢表現の調査」 (PDF) . 宇宙科学ジャーナル . 41 (4): 439–517. 書誌コード :1993JAnSc..41..439S.
Taubin, G. (2011). 「3D 回転」. IEEE コンピュータグラフィックスとアプリケーション . 31 (6): 84–89. doi :10.1109/MCG.2011.92. PMID 24808261.
Coutsias, E.; Romero, L. (2004). 「剛体ダイナミクスへの応用を伴う四元数」。 サンディア技術レポート 。サンディア国立研究所。SAND2004-0153。
Markley, F. Landis (2003). 「カルマンフィルタリングのための姿勢誤差表現」. Journal of Guidance, Control and Dynamics . 26 (2): 311–7. Bibcode :2003JGCD...26..311M. doi :10.2514/2.5048. hdl : 2060/20020060647 .
ゴールドスタイン、H. (1980)。 古典力学 (第2版)。アディソン・ウェズレー 。ISBN 0-201-02918-9 。
ワーツ、ジェームズ R. (1980)。宇宙船 の 姿勢決定と制御 。D . ライデル 。ISBN 90-277-1204-2 。
Schmidt, J.; Niemann, H. (2001)。「制約のない非線形最適化における 3D 回転のパラメータ化にクォータニオンを使用する」。 ビジョン モデリングおよび視覚化カンファレンス 2001 の議事録 。IOS プレス。399 ~ 406 ページ 。ISBN 3898380289 。
ランダウ、L.リフシッツ、EM (1976)。 力学 (第 3 版)。 ペルガモンプレス 。 ISBN 0-08-021022-8 。
Klumpp, AR (1976年12 月 )。「方向余弦行列からの四元数の特異点フリー抽出」。宇宙船と ロケット のジャーナル 。13 (12): 754–5。Bibcode :1976JSpRo..13..754K。doi :10.2514/3.27947。
Doran, C.; Lasenby, A. (2003). 物理学者のための幾何代数 . ケンブリッジ大学出版局. ISBN 978-0-521-71595-9 。
Terzakis, G.; Lourakis, M.; Ait - Boudaoud, D. (2018). 「修正ロドリゲスパラメータ: 3Dビジョンとグラフィックスにおける方向の効率的な表現」。Journal of Mathematical Imaging and Vision。60 ( 3): 422–442。Bibcode : 2018JMIV ...60..422T。doi : 10.1007/s10851-017-0765-x 。
Rowenhorst, D.; Rollett, AD; Rohrer, GS; Groeber, M.; Jackson, M.; Konijnenberg, PJ; De Graef, M. (2015). 「3D 回転の一貫した表現と変換」。 材料 科学 と工学におけるモデリングとシミュレーション 。23 (8): 083501。Bibcode : 2015MSMSE..23h3501R。doi : 10.1088/0965-0393/23/8/083501。S2CID 16130878。
外部リンク
ウィキメディア・コモンズには、3次元での回転 に関連するメディアがあります 。
EuclideanSpaceには回転表現に関する豊富な情報がある
Q36. オイラー角から回転行列を生成するにはどうすればいいですか? Q37. 回転行列をオイラー角に変換するにはどうすればいいですか? — 行列と四元数に関する FAQ
虚数は実数ではない - 時空の幾何代数 - 「回転と幾何代数」のセクションでは、回転子の回転の記述を導出し、適用します。
Starlino の DCM チュートリアル – 方向余弦行列理論のチュートリアルとアプリケーション。加速度計、ジャイロスコープ、磁力計 IMU デバイスを使用した空間方向推定アルゴリズム。DCM 行列で補完フィルター (カルマン フィルターの一般的な代替手段) を使用します。