Parameterization of a rotation into a unit vector and angle
角度 θ と軸単位ベクトル e は回転を定義し、回転ベクトル θ e によって簡潔に表されます。 数学 において 、 軸-角度表現は、 3次元 ユークリッド空間 における 回転を 2つの量で パラメータ化します。 回転軸 の 方向 を示す 単位ベクトル e と、 軸の周りの回転 の大きさと向き(例えば、 時計回り )を表す 回転角 θ です 。原点を根点とする単位ベクトル eの方向を定義するには、3つではなく2つの数値のみが必要です。これは、 e の大きさ が制約されているためです。例えば、 e の仰角と方位 角は、 特定の直交座標系における e の位置を示すのに十分です。
ロドリゲスの回転公式 によれば、角度と軸は3次元ベクトルを回転させる変換を決定します。回転は 右手の法則 によって規定される方向に生じます 。
回転軸は オイラー軸 と呼ばれることもあります。軸と角度の表現は オイラーの回転定理 に基づいています。この定理によれば、3次元空間における剛体の任意の回転、または回転の連続は、単一の固定軸を中心とした純粋な回転と等価になります。
これは 3 次元における多くの回転形式の うちの 1 つです。
回転ベクトル 軸-角度表現は、より簡潔な 回転ベクトル( オイラーベクトル とも呼ばれます)と等価です( オイラー角 のベクトル と混同しないでください )。この場合、回転軸と角度の両方が、回転軸と同方向のベクトルで表され、その長さは回転角 θ です。
これは、この表現を含む 指数写像 と 対数 写像
に使用されます 。 θ = θ e . {\displaystyle {\boldsymbol {\theta }}=\theta \mathbf {e} \,.}
多くの回転ベクトルが同じ回転に対応します。特に、 任意の整数 Mについて、長さ θ + 2 πM の回転ベクトルは、長さθ の回転ベクトルとまったく同じ回転をエンコードします 。したがって、任意の回転に対応する回転ベクトルの数は少なくとも可算無限大です。さらに、 2 πM によるすべての回転は、まったく回転がない場合と同じであるため、特定の整数 M について、すべての方向の長さ 2 πM のすべての回転ベクトルは、ゼロベクトルと同じ回転をエンコードする 2 つのパラメータを持つ可算無限大の回転ベクトルを構成します。これらの事実は、指数写像を反転する場合、つまり、特定の回転行列に対応する回転ベクトルを見つける場合に考慮する必要があります。指数写像は 全射 ですが、 1 対 1 で はありません。
例 地面に立っていて、重力の方向を負の Z 方向とするとします。そして左に回転すると、 -π / 2 -z 軸を中心としたラジアン(または -90° ) 。軸と角度の表現を 順序付きペア として見ると、これは次のようになる。 ( a x i s , a n g l e ) = ( [ e x e y e z ] , θ ) = ( [ 0 0 − 1 ] , − π 2 ) . {\displaystyle (\mathrm {axis} ,\mathrm {angle} )=\left({\begin{bmatrix}e_{x}\\e_{y}\\e_{z}\end{bmatrix}},\theta \right)=\left({\begin{bmatrix}0\\0\\-1\end{bmatrix}},{\frac {-\pi }{2}}\right).}
上記の例は、大きさがの回転ベクトルとして表すことができます 。 π / 2 Z 方向を指し 、 [ 0 0 π 2 ] . {\displaystyle {\begin{bmatrix}0\\0\\{\frac {\pi }{2}}\end{bmatrix}}.}
用途 軸-角度表現は、 剛体力学を扱う際に便利です。 回転を 特徴付けるだけでなく、同次変換 [ 説明が必要 ]やねじれといった剛体 運動 の異なる表現間の変換にも 役立ちます 。
剛体が 固定軸を中心に 回転する 場合 、その軸角度データは 一定の回転軸と、 時間 に 連続的に依存する 回転角度になります 。
3 つの固有値 1 と e ± iθ およびそれらに関連する 3 つの直交軸をデカルト座標で マーサーの定理 に代入すると、3 次元の回転行列のデカルト座標表現を簡単に構築できます。
ベクトルの回転 オリンデ・ロドリゲス にちなんで名付けられた ロドリゲス回転公式は 、回転軸と回転角が与えられた場合にユークリッドベクトルを回転させる効率的なアルゴリズムです。言い換えれば、ロドリゲスの公式は、完全な行列指数を計算することなく、SO(3)から SO(3) への指数写像を計算するアルゴリズムを提供します 。 s o ( 3 ) {\displaystyle {\mathfrak {so}}(3)}
vが R 3 のベクトルであり 、 e が 原点を根とする単位ベクトル で、 その回転軸を中心に v が 角度 θ 回転する場合、回転ベクトルを求めるロドリゲスの回転公式は次のようになる。 v r o t = v + ( sin θ ) ( e × v ) + ( 1 − cos θ ) ( e × ( e × v ) ) . {\displaystyle \mathbf {v} _{\mathrm {rot} }=\mathbf {v} +(\sin \theta )(\mathbf {e} \times \mathbf {v} )+(1-\cos \theta )(\mathbf {e} \times (\mathbf {e} \times \mathbf {v} ))\,.}
単一のベクトルを回転させる場合、 e と θ を回転行列に変換してベクトルを回転させる方が効率的である可能性があります。
他の表現との関係 回転を表現する方法はいくつかあります。異なる表現が互いにどのように関連し、どのように変換するかを理解しておくと便利です。ここでは、単位ベクトルは e ではなく ω で表されます。
𝔰𝔬(3)からSO(3)への指数写像 指数 写像 は回転の軸角度表現から 回転行列 への変換を行う。 exp : s o ( 3 ) → S O ( 3 ) . {\displaystyle \exp \colon {\mathfrak {so}}(3)\to \mathrm {SO} (3)\,.}
本質的には、テイラー展開 を用いることで、 これら 2つの表現の間に閉じた関係が導かれる。 単位回転軸を表す単位ベクトルと角度 θ∈R が 与えられたとき、等価な回転行列 R は以下のように与えられる。ここで K は ω の 外積行列 で あり、 すなわちすべてのベクトル v∈R3 に対して Kv = ω × v となる 。 ω ∈ s o ( 3 ) = R 3 {\textstyle {\boldsymbol {\omega }}\in {\mathfrak {so}}(3)=\mathbb {R} ^{3}} R = exp ( θ K ) = ∑ k = 0 ∞ ( θ K ) k k ! = I + θ K + 1 2 ! ( θ K ) 2 + 1 3 ! ( θ K ) 3 + ⋯ {\displaystyle R=\exp(\theta \mathbf {K} )=\sum _{k=0}^{\infty }{\frac {(\theta \mathbf {K} )^{k}}{k!}}=I+\theta \mathbf {K} +{\frac {1}{2!}}(\theta \mathbf {K} )^{2}+{\frac {1}{3!}}(\theta \mathbf {K} )^{3}+\cdots }
K は歪対称であり 、対角成分の平方和は1なので、 K の 特性多項式 P ( t )は P ( t )=det( K − tI ) =−( t3 + t ) となる。 ケーリー・ハミルトン定理 より P ( K ) =0となるので、これは次のこと を 意味 する 。 結果 として 、 K4 = -K2 、 K5 = K 、 K6 = K2 、 K7 = -K と なる 。 K 3 = − K . {\displaystyle \mathbf {K} ^{3}=-\mathbf {K} \,.}
この循環パターンは無限に続くため、 Kの高次の冪はすべて K と K 2 で表すことができます 。したがって、上記の式から、 次の式が成り立ちます。 R = I + ( θ − θ 3 3 ! + θ 5 5 ! − ⋯ ) K + ( θ 2 2 ! − θ 4 4 ! + θ 6 6 ! − ⋯ ) K 2 , {\displaystyle R=I+\left(\theta -{\frac {\theta ^{3}}{3!}}+{\frac {\theta ^{5}}{5!}}-\cdots \right)\mathbf {K} +\left({\frac {\theta ^{2}}{2!}}-{\frac {\theta ^{4}}{4!}}+{\frac {\theta ^{6}}{6!}}-\cdots \right)\mathbf {K} ^{2}\,,} R = I + ( sin θ ) K + ( 1 − cos θ ) K 2 , {\displaystyle R=I+(\sin \theta )\mathbf {K} +(1-\cos \theta )\mathbf {K} ^{2}\,,}
三角関数のテイラー級数の公式 によって 。
これはリー代数的な導出であり、 ロドリゲスの回転公式 [1] の幾何学的な導出とは対照的である。
上述の指数写像の存在により、回転軸を表す単位ベクトル ω と角度 θ は、回転行列 Rの 指数座標 と呼ばれることもあります 。
SO(3)から𝔰𝔬(3)への対数写像 K は、回転軸 ω との外積を実行する3×3行列を表すことにします。 以下 の すべてのベクトル vについて、 K ( v ) = ω × vとなります。
回転行列 の軸と角度の表現を取得するには、 回転行列のトレース から回転角度を計算し 、 それを使って正規化された軸を見つけます。 θ = arccos ( Tr ( R ) − 1 2 ) {\displaystyle \theta =\arccos \left({\frac {\operatorname {Tr} (R)-1}{2}}\right)} ω = 1 2 sin θ [ R 32 − R 23 R 13 − R 31 R 21 − R 12 ] , {\displaystyle {\boldsymbol {\omega }}={\frac {1}{2\sin \theta }}{\begin{bmatrix}R_{32}-R_{23}\\R_{13}-R_{31}\\R_{21}-R_{12}\end{bmatrix}}~,}
ここで 、は回転行列の - 行 -列目 の成分です 。 R i j {\displaystyle R_{ij}} R {\displaystyle R} i {\displaystyle i} j {\displaystyle j}
この式は、 R が対称の場合、 には 適用できません 。これは、何らかの整数 に対して のみ適用可能なため 、 sin( ) = 0 となり、式では 0 による除算が発生します。ただし、 に対する式の 極限 、つまり は の正しい値を与えます 。一般的なケースでは、 は RI の零空間を用いて求めることもできます 。 回転行列#軸 の決定を 参照してください。 ω {\displaystyle \omega } θ = k π {\displaystyle \theta =k\pi } k {\displaystyle k} θ {\displaystyle \theta } ω {\displaystyle \omega } θ → k π {\displaystyle \theta \to k\pi } ω {\displaystyle \omega } ω {\displaystyle \omega }
軸角度の表現は一意ではありません。回転は回転と同じであるためです 。 もちろん
、 2πの任意の整数倍を に加えても同じ回転が得られます。より良い方法は、 区間 [0, 2π) または (-π, π] に 制限することです。 − θ {\displaystyle -\theta } − ω {\displaystyle -{\boldsymbol {\omega }}} θ {\displaystyle \theta } ω {\displaystyle {\boldsymbol {\omega }}} θ {\displaystyle \theta } θ {\displaystyle \theta }
を既知のペアとして求める 場合 、それは軸 の向きと 一致していなければなりません (言い換えれば、 とによって定義される単位円の適切な象限に位置していなければなりません )。 の外積行列 も与えられた に対して利用可能であることを考慮すると 、この一貫性は上記のトレース公式を以下のように一般化することで保証できます。 [2] ここで、 atan2 は2つの引数を持つ逆正接関数であり、区間における の正しい符号を提供します 。この方法は、 の軸外項に存在する符号の曖昧さを解決します 。 θ {\displaystyle \theta } ( R , ω ) {\displaystyle (R,\omega )} ω {\displaystyle \omega } sin θ {\displaystyle \sin \theta } cos θ {\displaystyle \cos \theta } K {\displaystyle \mathbf {K} } ω {\displaystyle \omega } θ = a t a n 2 ( − T r ( K R ) , T r ( R ) − 1 ) , {\displaystyle \theta ={\rm {atan2}}(-{\rm {Tr}}(\mathbf {K} R),{\rm {Tr}}(R)-1),} θ {\displaystyle \theta } ( − π , π ] {\displaystyle (-\pi ,\pi ]} R {\displaystyle R}
回転行列 R の行列 対数 は log R = { 0 if θ = 0 θ 2 sin θ ( R − R T ) if θ ≠ 0 and θ ∈ ( − π , π ) {\displaystyle \log R={\begin{cases}0&{\text{if }}\theta =0\\{\dfrac {\theta }{2\sin \theta }}\left(R-R^{\mathsf {T}}\right)&{\text{if }}\theta \neq 0{\text{ and }}\theta \in (-\pi ,\pi )\end{cases}}}
例外として、 R の 固有値 が −1 に等しい場合が発生します。この場合、対数は一意ではありません。ただし、 θ = π の場合でも、 対数のフロベニウスノルムは回転行列 A と B が与えられた場合 、 回転 行列 の 3 次元 多様 体上の測地線距離は となります。 ‖ log ( R ) ‖ F = 2 | θ | . {\displaystyle \|\log(R)\|_{\mathrm {F} }={\sqrt {2}}|\theta |\,.} d g ( A , B ) := ‖ log ( A T B ) ‖ F {\displaystyle d_{g}(A,B):=\left\|\log \left(A^{\mathsf {T}}B\right)\right\|_{\mathrm {F} }}
回転が小さい場合、上記の θの計算は数値的に不正確になる可能性があります。これは、 θ → 0 のときに arccos の微分が無限大に近づくためです。その場合、 小さな角度では R ≈ I + θ K となるため、軸外項の方が θに関するより正確な情報を提供します。(これは、これらが exp( θ K ) のテイラー級数の最初の2つの項であるためです。 )
この定式化は θ = π においても数値的な問題を抱えており、軸外項は回転軸に関する情報を与えない(回転軸は符号の曖昧さを除けば依然として定義されている)。その場合、上記の式を再考する必要がある。
R = I + K sin θ + K 2 ( 1 − cos θ ) {\displaystyle R=I+\mathbf {K} \sin \theta +\mathbf {K} ^{2}(1-\cos \theta )} θ = π では 、次の関係が成り立ち 、 B の対角項が ω の要素の平方となり、符号は (符号の曖昧さを除いて) B の軸外項の符号から決定できるようになります 。 R = I + 2 K 2 = I + 2 ( ω ⊗ ω − I ) = 2 ω ⊗ ω − I {\displaystyle R=I+2\mathbf {K} ^{2}=I+2({\boldsymbol {\omega }}\otimes {\boldsymbol {\omega }}-I)=2{\boldsymbol {\omega }}\otimes {\boldsymbol {\omega }}-I} B := ω ⊗ ω = 1 2 ( R + I ) , {\displaystyle B:={\boldsymbol {\omega }}\otimes {\boldsymbol {\omega }}={\frac {1}{2}}(R+I)\,,}
単位四元数 次の式は軸角度座標を バーソル (単位 四元数 )に変換します。 q = ( cos θ 2 , ω sin θ 2 ) {\displaystyle \mathbf {q} =\left(\cos {\tfrac {\theta }{2}},{\boldsymbol {\omega }}\sin {\tfrac {\theta }{2}}\right)}
スカラー r とベクトル v で表される ベルソル q = r + v を考えると、軸角度座標は次のように抽出できます。 θ = 2 arccos r ω = { v sin θ 2 , if θ ≠ 0 0 , otherwise . {\displaystyle {\begin{aligned}\theta &=2\arccos r\\[8px]{\boldsymbol {\omega }}&={\begin{cases}{\dfrac {\mathbf {v} }{\sin {\tfrac {\theta }{2}}}},&{\text{if }}\theta \neq 0\\0,&{\text{otherwise}}.\end{cases}}\end{aligned}}}
回転角度のより数値的に安定した表現には、 atan2 関数を使用します。 ここで、 | v | は3 ベクトル v のユークリッド ノルム です 。 θ = 2 atan2 ( | v | , r ) , {\displaystyle \theta =2\operatorname {atan2} (|\mathbf {v} |,r)\,,}
参照
参考文献 ^ これは回転群の三重項表現、すなわちスピン1に当てはまります。より高次元の表現/スピンについては、 Curtright, TL ; Fairlie, DB ; Zachos, CK (2014). "A compact formula for rotations as spin matrix polynomials". SIGMA . 10 : 084. arXiv : 1402.3541 . Bibcode :2014SIGMA..10..084C. doi :10.3842/SIGMA.2014.084. S2CID 18776942.を参照してください。 ^ Dai, Jian S. (2012). 「埋め込みシャスル運動を備えた有限変位スクリューオペレータ」. Journal of Mechanisms and Robotics . 4 (4): 041002. doi :10.1115/1.4006951. 論文の式(28)に示されている元の式では、関数 の両引数にという因子が含まれていることに注意してください。しかし、 任意の およびに対して となる ため、この因子は省略しても問題ありません 。 0.5 {\displaystyle 0.5} a t a n 2 ( . , . ) {\displaystyle {\rm {atan2}}(.,.)} atan2 ( α y , α x ) = atan2 ( y , x ) {\displaystyle \operatorname {atan2} (\alpha y,\alpha x)=\operatorname {atan2} (y,x)} α > 0 {\displaystyle \alpha >0} x , y ∈ R {\displaystyle x,y\in \mathbb {R} }