罗德里格斯公式的证明
from wikipedia
声明:
设 v 是一个
R
3
R^{3}
R3的向量, k是一个表示轴的单位向量,v绕k轴旋转的角度为
θ
\theta
θ,路德里格斯公式的转动向量为
v
r
o
t
v_{rot}
vrot,
v
r
o
t
=
v
c
o
s
(
θ
)
+
k
(
k
×
v
)
s
i
n
θ
+
k
(
k
⋅
v
)
(
1
−
c
o
s
θ
)
v_{rot}=vcos(\theta) + k(k \times v)sin\theta +k(k \cdot v )(1-cos\theta)
vrot=vcos(θ)+k(k×v)sinθ+k(k⋅v)(1−cosθ)
设两个非零向量a和b,
α
\alpha
α是它们的夹角,并且符合右手系规则,k可以用a和b来表示:
k
=
a
×
b
∣
a
×
b
∣
=
a
×
b
∣
a
∣
∣
b
∣
s
i
n
α
k=\frac{a \times b}{|a \times b|}=\frac{a \times b}{|a||b|sin\alpha}
k=∣a×b∣a×b=∣a∣∣b∣sinαa×b
求导:
v
=
v
∥
+
v
⊥
v=v_{\Vert}+v_{\bot}
v=v∥+v⊥
v
∥
=
(
v
⋅
k
)
k
v_{\Vert}=(v\cdot k)k
v∥=(v⋅k)k
v
⊥
=
v
−
v
∥
=
v
−
(
k
⋅
v
)
k
=
−
k
×
(
k
×
v
)
v_{\bot}=v-v_{\Vert}=v-(k\cdot v)k=-k\times (k\times v)
v⊥=v−v∥=v−(k⋅v)k=−k×(k×v)
平行向量不因旋转而改变:
v
∥
r
o
t
=
v
∥
v_{\Vert rot}=v_{\Vert}
v∥rot=v∥
只有垂直分量才会改变方向:
∣
v
⊥
r
o
t
∣
=
∣
v
⊥
∣
|v_{\bot rot}|=|v_{\bot}|
∣v⊥rot∣=∣v⊥∣
v
⊥
r
o
t
=
c
o
s
θ
v
⊥
+
s
i
n
θ
k
×
v
⊥
v_{\bot rot}=cos\theta v_{\bot}+sin\theta k\times v_{\bot}
v⊥rot=cosθv⊥+sinθk×v⊥
k和
v
∥
v_{\Vert}
v∥平行,
k
×
v
∥
=
0
k\times v_{\Vert}=0
k×v∥=0
k
×
v
⊥
=
k
×
(
v
−
v
∥
)
=
k
×
v
−
k
×
v
∥
=
k
×
v
k\times v_{\bot}=k\times (v-v_{\Vert})=k\times v-k\times v_{\Vert}=k\times v
k×v⊥=k×(v−v∥)=k×v−k×v∥=k×v
v
⊥
r
o
t
=
c
o
s
θ
v
⊥
+
s
i
n
θ
k
×
v
v_{\bot rot}=cos\theta v_{\bot}+sin\theta k\times v
v⊥rot=cosθv⊥+sinθk×v
2D极坐标:
(
r
,
θ
)
(r,\theta)
(r,θ)
r
=
r
c
o
s
θ
e
x
+
r
s
i
n
θ
e
y
r=rcos\theta e_{x}+rsin\theta e_y
r=rcosθex+rsinθey,
e
x
,
e
y
e_x,e_y
ex,ey是单位向量
v
r
o
t
=
v
∥
r
o
t
+
v
⊥
r
o
t
v_{rot}=v_{\Vert rot}+v_{\bot rot}
vrot=v∥rot+v⊥rot
用等式结果中的
v
∥
r
o
t
v_{\Vert rot}
v∥rot和
v
⊥
r
o
t
v_{\bot rot}
v⊥rot的定义代替:
v r o t = v ∥ + c o s θ v ⊥ + s i n θ k × v = v ∥ + c o s θ ( v − v ∥ ) + s i n θ k × v = c o s θ v + ( 1 − c o s θ ) v ∥ + s i n θ k × v = c o s θ v + ( 1 − c o s θ ) ( k ⋅ v ) k + s i n θ k × v \begin{aligned}v_{rot}&= v_{\Vert}+cos\theta v_{\bot} + sin\theta k\times v\\ &=v_{\Vert}+cos\theta(v-v_{\Vert})+sin\theta k\times v\\ &=cos\theta v+(1-cos\theta )v_{\Vert}+sin\theta k \times v\\ &=cos\theta v+(1-cos\theta)(k\cdot v)k + sin\theta k \times v \end{aligned} vrot=v∥+cosθv⊥+sinθk×v=v∥+cosθ(v−v∥)+sinθk×v=cosθv+(1−cosθ)v∥+sinθk×v=cosθv+(1−cosθ)(k⋅v)k+sinθk×v
设旋转矩阵对应的旋转向量为R,
v
r
o
t
=
R
⋅
v
v_{rot}=R\cdot v
vrot=R⋅v
R
⋅
v
=
c
o
s
θ
v
+
(
1
−
c
o
s
θ
)
n
n
T
v
+
s
i
n
θ
n
∧
v
R
=
c
o
s
θ
I
+
(
1
−
c
o
s
θ
)
n
n
T
+
s
i
n
θ
n
∧
R\cdot v=cos\theta v+(1-cos\theta)nn^{T}v+sin\theta n^{\land}v\\ R=cos\theta I + (1-cos\theta) nn^{T}+sin\theta n^{\land}
R⋅v=cosθv+(1−cosθ)nnTv+sinθn∧vR=cosθI+(1−cosθ)nnT+sinθn∧
矩阵表示:
[
(
k
×
v
)
x
(
k
×
v
)
y
(
k
×
v
)
z
]
=
[
k
y
v
z
−
k
z
v
y
k
z
v
x
−
k
x
v
z
k
x
v
y
−
k
y
v
x
]
=
[
0
−
k
z
k
y
k
z
0
−
k
x
−
k
y
k
x
0
]
[
v
x
v
y
v
z
]
\begin{bmatrix} (k \times v)_x \\(k \times v)_y \\(k \times v)_z \end{bmatrix}=\begin{bmatrix} k_yv_z-k_zv_y\\k_zv_x-k_xv_z\\k_xv_y-k_yv_x \end{bmatrix} =\begin{bmatrix}0 & -k_z &k_y\\k_z &0&-k_x\\-k_y&k_x&0 \end{bmatrix} \begin{bmatrix}v_x\\v_y\\v_z\end{bmatrix}
⎣⎡(k×v)x(k×v)y(k×v)z⎦⎤=⎣⎡kyvz−kzvykzvx−kxvzkxvy−kyvx⎦⎤=⎣⎡0kz−ky−kz0kxky−kx0⎦⎤⎣⎡vxvyvz⎦⎤
令 K=
[
0
−
k
z
k
y
k
z
0
−
k
x
−
k
y
k
x
0
]
\begin{bmatrix}0 & -k_z &k_y\\k_z &0&-k_x\\-k_y&k_x&0 \end{bmatrix}
⎣⎡0kz−ky−kz0kxky−kx0⎦⎤
K
v
=
k
×
v
K
(
K
v
)
=
K
2
v
=
k
×
(
k
×
v
)
Kv=k\times v\\ K(Kv)=K^2v=k\times (k\times v)
Kv=k×vK(Kv)=K2v=k×(k×v)
v
r
o
t
=
−
k
×
(
k
×
v
)
+
k
×
v
s
i
n
θ
+
v
+
k
×
(
k
×
v
)
=
(
1
−
c
o
s
θ
)
k
×
(
k
×
v
)
+
k
×
v
s
i
n
θ
+
v
=
(
i
−
c
o
s
θ
)
K
2
v
+
K
v
s
i
n
θ
+
v
=
[
I
+
s
i
n
θ
K
+
(
1
−
c
o
s
θ
)
K
2
]
v
=
R
v
\begin{aligned}v_{rot}&=-k\times (k\times v)+k\times v sin\theta + v+k\times(k\times v)\\ &=(1-cos\theta) k\times (k\times v)+k\times v sin\theta +v \\ &= (i-cos\theta)K^2v+Kvsin\theta + v\\ &=[I+sin\theta K + (1-cos\theta)K^2]v\\ &=Rv \end{aligned}
vrot=−k×(k×v)+k×vsinθ+v+k×(k×v)=(1−cosθ)k×(k×v)+k×vsinθ+v=(i−cosθ)K2v+Kvsinθ+v=[I+sinθK+(1−cosθ)K2]v=Rv
R
=
I
+
s
i
n
θ
K
+
(
1
−
c
o
s
θ
)
K
2
R=I+sin\theta K+(1-cos\theta)K^2
R=I+sinθK+(1−cosθ)K2
n的反对称矩阵为
n
∧
n^{\land}
n∧:
n
×
v
=
n
∧
v
n \times v=n^{\land}v
n×v=n∧v
n
×
(
n
×
v
)
=
n
∧
n
∧
v
v
r
o
t
=
c
o
s
θ
v
+
(
1
−
c
o
s
θ
)
(
n
n
T
v
)
n \times (n \times v)=n^{\land}n^{\land}v \\ v_{rot}=cos\theta v + (1-cos\theta)(nn^{T}v)
n×(n×v)=n∧n∧vvrot=cosθv+(1−cosθ)(nnTv)