回転を単位ベクトルと角度にパラメータ化する
角度 θ と軸の単位ベクトル 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° )です 。軸角度表現を 順序付きペア として見ると、これは
(
1つの
x
私
s
、
1つの
ん
グ
l
e
)
=
(
[
e
x
e
ええ
e
ず
]
、
θ
)
=
(
[
0
0
−
1
]
、
−
π
2
)
。
{\displaystyle (\mathrm {軸} 、\mathrm {角度} )=\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 次元の回転行列の直交座標表現を簡単に構築できます。
ベクトルの回転
ロドリゲスの回転公式は、 オリンデ・ロドリゲス にちなんで名付けられ 、回転軸と回転角度が与えられた場合にユークリッドベクトルを回転させる効率的なアルゴリズムです。言い換えれば、ロドリゲスの公式は、完全な行列指数を計算することなく、から SO(3) への指数写像を計算するアルゴリズムを提供します 。
s
o
(
3
)
{\displaystyle {\mathfrak {so}}(3)}
vが R 3 のベクトルで 、 e が 原点を根とする単位ベクトル で、 その回転軸を中心に v が 角度 θ 回転する場合、回転ベクトルを求めるロドリゲスの回転公式は次のようになる。
ヴ
r
o
t
=
ヴ
+
(
罪
θ
)
(
e
×
ヴ
)
+
(
1
−
コス
θ
)
(
e
×
(
e
×
ヴ
)
)
。
{\displaystyle \mathbf {v} _{\mathrm {rot} }=\mathbf {v} +(\sin \theta )(\mathbf {e} \times \mathbf {v} )+(1-\cos \シータ )(\mathbf {e} \times (\mathbf {e} \times \mathbf {v} ))\,.}
単一のベクトルを回転させる場合、 e と θ を 回転行列に変換してベクトルを回転させる方が効率的である可能性があります。
他の表現との関係
回転を表現する方法はいくつかあります。異なる表現が互いにどのように関連しているか、またそれらをどのように変換するかを理解しておくと役に立ちます。ここでは、単位ベクトルは e ではなく ω で表されます。
𝔰𝔬(3) から SO(3) への指数写像
指数写像は 回転 の軸角度表現から 回転行列 への変換を行う。
経験
:
s
o
(
3
)
→
ス
お
(
3
)
。
{\displaystyle \exp \colon {\mathfrak {so}}(3)\to \mathrm {SO} (3)\,.}
本質的には、テイラー展開 を使用することで、 これら2つの表現の間に閉じた形式の関係を導出する。単位 回転軸を表す単位ベクトルと角度 θ ∈ R が与えられると、同等の回転行列 R は 次のように与えられる。ここで、 K は ω の 外積行列 で あり、 すべてのベクトル v ∈ R 3に対して Kv = ω × v で ある。
ω
∈
s
o
(
3
)
=
R
3
{\textstyle {\boldsymbol {\omega }}\in {\mathfrak {so}}(3)=\mathbb {R} ^{3}}
R
=
経験
(
θ
け
)
=
∑
け
=
0
∞
(
θ
け
)
け
け
!
=
私
+
θ
け
+
1
2
!
(
θ
け
)
2
+
1
3
!
(
θ
け
)
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 − t I ) = −( t 3 + t ) です。 ケーリー ・ハミルトンの定理 により 、 P ( K ) = 0 なので、次の式が成り立ちます。 その
結果、 K 4 = – K 2 、 K 5 = K 、 K 6 = K 2 、 K 7 = – 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}
軸角度の表現は一意ではありません。 約の回転は の 回転 と同じだからです 。
−
θ
{\displaystyle -\theta }
−
ω
{\displaystyle -{\boldsymbol {\omega }}}
θ
{\displaystyle \theta }
ω
{\displaystyle {\boldsymbol {\omega }}}
上記の軸ベクトルの計算は、 R が対称の場合は 機能しません 。一般的なケースでは、 は RI のヌル空間を使用して見つけることができます 。 回転行列#軸の決定を 参照してください。
ω
{\displaystyle \omega }
ω
{\displaystyle \omega }
回転行列 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 を考えると、
回転行列の 3D 多様体上の測地線距離になります。
‖
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
の対角項は ω の要素の2乗となり、符号は(符号の曖昧さを除いて) 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)\,,}
参照
参考文献