文章目录
刚体运动
一个物体,运动过后除位置与姿态外的自身条件不会变,变换后与变换前相差一个旋转和平移。
旋转矩阵
向量的内积:
a
⋅
b
=
a
T
b
=
∑
1
3
a
i
b
i
=
∣
a
∣
∣
b
∣
c
o
s
⟨
a
,
b
⟩
{a} \cdot b=a^Tb=\sum_{1}^{3} a_ib_i=|a||b|cos\langle a,b \rangle
a⋅b=aTb=∑13aibi=∣a∣∣b∣cos⟨a,b⟩
内积可以描述向量间的投影。
向量的外积: a × b = ∥ e 1 e 2 e 3 a 1 a 2 a 3 b 1 b 2 b 3 ∥ = [ a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ] = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] b = d e f a ∧ b a\times b=\begin{Vmatrix} e_1&e_2 &e_3 \\a_1&a_2 & a_3\\b_1&b_2 &b_3\end{Vmatrix}=\begin{bmatrix}a_2b_3-a_3b_2\\a_3b_1-a_1b_3\\a_1b_2-a_2b_1\end{bmatrix}=\begin{bmatrix}0& -a_3 &a_2 \\a_3&0 &-a_1 \\-a_2&a_1 &0\end{bmatrix}b \overset{def}{=}a^\wedge b a×b=∥∥∥∥∥∥e1a1b1e2a2b2e3a3b3∥∥∥∥∥∥=⎣⎡a2b3−a3b2a3b1−a1b3a1b2−a2b1⎦⎤=⎣⎡0a3−a2−a30a1a2−a10⎦⎤b=defa∧b
外积描述实际上就是
∣
a
∣
∣
b
∣
s
i
n
⟨
a
,
b
⟩
|a||b|sin\lang a,b \rang
∣a∣∣b∣sin⟨a,b⟩,是两个向量张开的四边形的面积。
a
∧
a^\wedge
a∧表示
a
a
a的反对称矩阵
a
∧
=
[
0
−
a
3
a
2
a
3
0
−
a
1
−
a
2
a
1
0
]
a^\wedge=\begin{bmatrix}0& -a_3 &a_2 \\a_3&0 &-a_1 \\-a_2&a_1 &0\end{bmatrix}
a∧=⎣⎡0a3−a2−a30a1a2−a10⎦⎤
任意向量 a a a都有唯一一个反对称矩阵,且 a ∧ + a ∧ T = 0 a^\wedge+a^{\wedge T}=0 a∧+a∧T=0。
设有一单位正交基
(
e
1
,
e
2
,
e
3
)
(e_1,e_2,e_3)
(e1,e2,e3)内有一向量坐标为
[
a
1
,
a
2
,
a
3
]
T
[a_1,a_2,a_3]^T
[a1,a2,a3]T
另一单位正交基下
(
e
1
′
,
e
2
′
,
e
3
′
)
(e_1{'},e_2{'},e_3')
(e1′,e2′,e3′)下,该向量坐标为
[
a
1
′
,
a
2
′
,
a
3
′
]
T
[a_1',a_2',a_3']^T
[a1′,a2′,a3′]T
由于向量还是那一个,只是在不同坐标系下的表示不一样,所以有
[
e
1
e
2
e
3
]
[
a
1
a
2
a
3
]
=
[
e
1
′
e
2
′
e
3
′
]
[
a
1
′
a
2
′
a
3
′
]
\begin{bmatrix} e_1&e_2 &e_3\end{bmatrix}\begin{bmatrix}a_1 \\a_2\\a_3\end{bmatrix}=\begin{bmatrix} e_1'&e_2' &e_3'\end{bmatrix}\begin{bmatrix}a_1 '\\a_2'\\a_3'\end{bmatrix}
[e1e2e3]⎣⎡a1a2a3⎦⎤=[e1′e2′e3′]⎣⎡a1′a2′a3′⎦⎤
两边同时左乘
[
e
1
T
e
2
T
e
3
T
]
\begin{bmatrix}e_1 ^T\\e_2^T\\e_3^T\end{bmatrix}
⎣⎡e1Te2Te3T⎦⎤,左侧变为单位矩阵
[
a
1
a
2
a
3
]
=
[
e
1
T
e
1
′
e
1
T
e
2
′
e
1
T
e
3
′
e
2
T
e
1
′
e
2
T
e
2
′
e
2
T
e
3
′
e
3
T
e
1
′
e
3
T
e
2
′
e
3
T
e
3
′
]
[
a
1
′
a
2
′
a
3
′
]
=
d
e
f
R
a
′
\begin{bmatrix}a_1 \\a_2\\a_3\end{bmatrix}=\begin{bmatrix}e_1 ^Te_1'&e_1^Te_2'&e_1^Te_3'\\e_2^Te_1'&e_2^Te_2'&e_2^Te_3'\\e_3^Te_1'&e_3^Te_2'&e_3^Te_3'\end{bmatrix}\begin{bmatrix}a_1 '\\a_2'\\a_3'\end{bmatrix}\overset{def}{=}Ra'
⎣⎡a1a2a3⎦⎤=⎣⎡e1Te1′e2Te1′e3Te1′e1Te2′e2Te2′e3Te2′e1Te3′e2Te3′e3Te3′⎦⎤⎣⎡a1′a2′a3′⎦⎤=defRa′
其中 R R R称为旋转矩阵,可以看出 R R R是两组基之间的内积
旋转矩阵性质
- 正交阵 R R T = I RR^T=I RRT=I 、 R T = R − 1 R^T=R^{-1} RT=R−1
- 行列式为1,反之行列式为1的正交阵叫旋转矩阵
- 若 R R R 为从 A A A 坐标系到 B B B坐标系的旋转矩阵,则 R − 1 R^{-1} R−1 表示从 B B B 坐标系到 A A A 坐标系的旋转矩阵。
变换矩阵
欧式变换中,除了旋转还有平移,表示为:
a
1
=
R
12
a
2
+
t
12
a_1=R_{12}a_2+t_{12}
a1=R12a2+t12
其中
R
12
R_{12}
R12 表示从2到1坐标系的旋转矩阵,
t
12
t_{12}
t12 所对应的是坐标系1原点指向坐标系2原点的向量并且是在坐标系1下取的坐标。
反过来 R 21 R_{21} R21 表示从1到2坐标系的旋转矩阵, t 21 t_{21} t21 对应的是坐标系2原点指向坐标系1原点的向量并且是在坐标系2下取的坐标。
b
=
R
1
a
+
t
1
c
=
R
2
b
+
t
2
b=R_1a+t_1\\ c=R_2b+t_2
b=R1a+t1c=R2b+t2
所以a到c可以写成
c
=
R
2
(
R
1
a
+
t
1
)
+
t
2
c=R_2(R_1a+t_1)+t_2
c=R2(R1a+t1)+t2
该写法若是跨越多个坐标系进行变换写法会很麻烦,所以对
a
′
=
R
a
+
t
a'=Ra+t
a′=Ra+t 改写为
[
a
′
1
]
=
[
R
t
0
T
1
]
[
a
1
]
=
d
e
f
T
[
a
1
]
\begin{bmatrix}a' \\1\end{bmatrix}=\begin{bmatrix}R&t\\0^T&1\end{bmatrix}\begin{bmatrix}a\\1\end{bmatrix}\overset{def}{=}T\begin{bmatrix}a \\1\end{bmatrix}
[a′1]=[R0Tt1][a1]=defT[a1]
令
a
~
\tilde{a}
a~表示
a
a
a的齐次坐标,则
b
~
=
T
1
a
~
,
c
~
=
T
2
b
~
c
~
=
T
2
T
1
a
~
\tilde{b}=T_1\tilde{a},\tilde{c}=T_2\tilde{b}\\\tilde{c}=T_2T_1\tilde{a}
b~=T1a~,c~=T2b~c~=T2T1a~
一个变换矩阵左上为旋转矩阵,右上为平移向量,左下为0向量,右下为1;它的逆表示一个相反的变换。
T
=
[
R
t
0
T
1
]
T
−
1
=
[
R
T
−
R
T
t
0
T
1
]
T=\begin{bmatrix}R&t \\0^T&1\end{bmatrix}\\T^{-1}=\begin{bmatrix}R^T&-R^Tt \\0^T&1\end{bmatrix}
T=[R0Tt1]T−1=[RT0T−RTt1]
未完。。。