来源: 睿慕课《三维点云处理技术和深度学习在三维点云处理中的应用》
刚体运动变换
表示旋转变换的参数形式:旋转矩阵,轴角,欧拉角和四元数。
旋转矩阵推导与性质
两个坐标系a和b,坐标系b各个坐标轴
b
1
、
b
2
、
b
3
b_1、b_2、b_3
b1、b2、b3在坐标系a中的表示为:
b
1
=
R
11
a
1
+
R
21
a
2
+
R
31
a
3
b_1=R_{11}a_1+R_{21}a_2+R_{31}a_3
b1=R11a1+R21a2+R31a3
b
2
=
R
12
a
1
+
R
22
a
2
+
R
32
a
3
b_2=R_{12}a_1+R_{22}a_2+R_{32}a_3
b2=R12a1+R22a2+R32a3
b
3
=
R
13
a
1
+
R
23
a
2
+
R
33
a
3
b_3=R_{13}a_1+R_{23}a_2+R_{33}a_3
b3=R13a1+R23a2+R33a3
旋转矩阵
R
B
A
R_B^A
RBA
R
B
A
=
[
b
1
,
b
2
,
b
3
]
=
[
R
11
R
12
R
13
R
21
R
22
R
23
R
31
R
32
R
33
]
R_B^A=[b_1,b_2,b_3]=\begin{bmatrix} R_{11} & R_{12} & R_{13} \\ R_{21} & R_{22} & R_{23} \\ R_{31} & R_{32} & R_{33} \end{bmatrix}
RBA=[b1,b2,b3]=⎣⎡R11R21R31R12R22R32R13R23R33⎦⎤
同一点P,在b坐标系下的表示为
P
B
(
P
b
1
,
P
b
2
,
P
b
3
)
T
P_B(P_{b1},P_{b2},P_{b3})^T
PB(Pb1,Pb2,Pb3)T,在a系下的表示为
P
A
(
P
a
1
,
P
a
2
,
P
a
3
)
T
P_A(P_{a1},P_{a2},P_{a3})^T
PA(Pa1,Pa2,Pa3)T,根据坐标的定义有:
P
A
=
P
b
1
b
1
+
P
b
2
b
2
+
P
b
3
b
3
=
R
B
A
P
B
P_{A} = P_{b1}b_1 + P_{b2}b_2 +P_{b3}b_3=R_B^AP_B
PA=Pb1b1+Pb2b2+Pb3b3=RBAPB
总结:
旋
转
矩
阵
R
B
A
每
一
列
代
表
B
坐
标
系
的
坐
标
轴
在
A
系
中
的
表
示
,
也
表
示
B
坐
标
系
在
A
系
中
的
旋
转
,
同
时
该
旋
转
矩
阵
能
将
B
系
的
坐
标
点
转
换
到
A
系
旋转矩阵R_B^A每一列代表B坐标系的坐标轴在A系中的表示,也表示B坐标系在A系中的旋转,同时该旋转矩阵能将B系的坐标点转换到A系
旋转矩阵RBA每一列代表B坐标系的坐标轴在A系中的表示,也表示B坐标系在A系中的旋转,同时该旋转矩阵能将B系的坐标点转换到A系
旋转矩阵的性质:
1,正交性
2,乘法封闭
3,旋转矩阵的逆也是旋转矩阵
4,
R
R
T
=
I
RR^T=I
RRT=I
坐标系旋转
1,绕z轴旋转
ψ
\psi
ψ角:
R
z
,
ψ
=
[
cos
(
ψ
)
−
sin
(
ψ
)
0
sin
(
ψ
)
cos
(
ψ
)
0
0
0
1
]
R_{z,\psi}=\begin{bmatrix} \cos (\psi) & -\sin (\psi) & 0 \\ \sin (\psi) & \cos(\psi) & 0 \\ 0& 0& 1\end{bmatrix}
Rz,ψ=⎣⎡cos(ψ)sin(ψ)0−sin(ψ)cos(ψ)0001⎦⎤
R
z
,
ψ
R_{z,\psi}
Rz,ψ 可以将变换后坐标系(图中蓝色)中的点转换到原来坐标系(图中红色)中。
2,绕y轴旋转
θ
\theta
θ角:
R
y
,
θ
=
[
cos
(
θ
)
0
sin
(
θ
)
0
1
0
−
sin
(
θ
)
0
cos
(
θ
)
]
R_{y,\theta}=\begin{bmatrix} \cos (\theta) & 0 & \sin (\theta) \\ 0 & 1 & 0 \\ -\sin (\theta)& 0& \cos (\theta) \end{bmatrix}
Ry,θ=⎣⎡cos(θ)0−sin(θ)010sin(θ)0cos(θ)⎦⎤
3,绕x旋转
ϕ
\phi
ϕ角度
R
x
,
ϕ
=
[
1
0
0
0
cos
(
ϕ
)
−
sin
(
ϕ
)
0
sin
(
ϕ
)
cos
(
θ
)
]
R_{x,\phi}=\begin{bmatrix} 1 & 0 & 0\\ 0 & \cos (\phi) & -\sin (\phi) \\ 0& \sin (\phi)& \cos (\theta) \end{bmatrix}
Rx,ϕ=⎣⎡1000cos(ϕ)sin(ϕ)0−sin(ϕ)cos(θ)⎦⎤
4,符合旋转:右乘联体左乘基(联体是指旋转后的坐标系,基是指开始时候的固定坐标系)
5,向量旋转:
总结:旋转矩阵可以表示将A系中的向量、点旋转到新的位置,也可以表示从A系到B系的旋转,还可以将B系的坐标点转换到A系下。
6,齐次变换:
P
A
=
R
B
A
P
B
+
O
B
A
P_A=R_B^AP_B+O_B^A
PA=RBAPB+OBA
齐次形式
[
P
A
1
]
=
T
B
A
P
B
=
[
R
B
A
O
B
A
0
1
]
\begin{bmatrix} P_A\\1\end{bmatrix}=T_B^AP_B=\begin{bmatrix} R_B^A&O_B^A\\0&1\end{bmatrix}
[PA1]=TBAPB=[RBA0OBA1]
欧拉角
欧拉角:任何旋转都可以用3个线性无关轴的连续旋转来描述。
欧拉角存在的奇异值-万向节死锁
旋转矩阵的轴角
可以将任何一个旋转视为绕某一旋转轴旋转一定的角度
四元数
为了避免万向节死锁问题,工程师发明了四元数来表示旋转
四元数定义:
q
=
[
a
,
b
,
c
,
d
]
=
[
cos
θ
2
,
r
sin
θ
2
]
q=[a,b,c,d]=[\cos \frac{\theta}{2},r\sin \frac {\theta}{2}]
q=[a,b,c,d]=[cos2θ,rsin2θ],a为实部,b,c,d为虚部。
r
、
θ
r、\theta
r、θ分别表示旋转轴和旋转角度
共轭:
q
ˉ
=
[
cos
θ
2
,
−
r
sin
θ
2
]
\bar{q}=[\cos \frac{\theta}{2},-r\sin \frac {\theta}{2}]
qˉ=[cos2θ,−rsin2θ]
模:
∣
∣
q
∣
∣
=
a
2
+
b
2
+
c
2
+
d
2
=
1
||q||=\sqrt{a^2+b^2+c^2+d^2}=1
∣∣q∣∣=a2+b2+c2+d2=1
逆:
q
−
1
=
q
ˉ
∣
∣
q
∣
∣
q^{-1}=\frac {\bar q}{||q||}
q−1=∣∣q∣∣qˉ
乘法:
用四元数对向量进行旋转:
p
=
[
x
,
y
,
z
]
T
,
p
a
=
[
0
,
x
,
y
,
z
]
T
p=[x,y,z]^T,p_a=[0,x,y,z]^T
p=[x,y,z]T,pa=[0,x,y,z]T
p
′
=
R
p
=
q
∗
p
a
∗
q
−
1
p^{'}=Rp=q*p_a*q^{-1}
p′=Rp=q∗pa∗q−1
四元数与旋转矩阵:
刚体运动变换总结:
空间几何变换
消失点
二维空间几何变换:
三维空间几何变换: