Cardanian rotation matrix推导(卡尔丹旋转规则):
按照Yaw(偏转角)->Pitch(翻滚角)->Roll(滚动角)的顺序进行旋转
Y
a
w
:
κ
⇢
旋转矩阵
R
Z
(
κ
)
Yaw:\kappa \dashrightarrow 旋转矩阵R_Z(\kappa)
Yaw:κ⇢旋转矩阵RZ(κ)
P
i
t
c
h
:
ϕ
⇢
旋转矩阵
R
Y
(
ϕ
)
Pitch:\phi \dashrightarrow 旋转矩阵R_Y(\phi)
Pitch:ϕ⇢旋转矩阵RY(ϕ)
Y
a
w
:
ω
⇢
旋转矩阵
R
X
(
ω
)
Yaw:\omega \dashrightarrow 旋转矩阵R_X(\omega)
Yaw:ω⇢旋转矩阵RX(ω)
旋转图示如下:
根据推导,存在:
R
Z
(
κ
)
=
[
c
o
s
κ
s
i
n
κ
0
−
s
i
n
κ
c
o
s
κ
0
0
0
1
]
R_Z(\kappa)= \begin{bmatrix} cos{\kappa} & sin{\kappa} & 0 \\ -sin{\kappa} & cos{\kappa} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}
RZ(κ)=⎣
⎡cosκ−sinκ0sinκcosκ0001⎦
⎤
R
Y
(
ϕ
)
=
[
c
o
s
ϕ
0
−
s
i
n
ϕ
0
1
0
s
i
n
ϕ
0
c
o
s
ϕ
]
R_Y(\phi)= \begin{bmatrix} cos{\phi} & 0 & -sin{\phi} \\ 0 & 1 & 0 \\ sin{\phi} & 0 & cos{\phi} \\ \end{bmatrix}
RY(ϕ)=⎣
⎡cosϕ0sinϕ010−sinϕ0cosϕ⎦
⎤
R
X
(
ω
)
=
[
1
0
0
0
c
o
s
ω
s
i
n
ω
0
−
s
i
n
ω
c
o
s
ω
]
R_X(\omega)= \begin{bmatrix} 1 & 0 & 0 \\ 0 & cos{\omega} & sin{\omega} \\ 0 & -sin{\omega} & cos{\omega} \\ \end{bmatrix}
RX(ω)=⎣
⎡1000cosω−sinω0sinωcosω⎦
⎤
按照卡尔丹旋转规则,存在旋转矩阵:
R
=
R
Z
(
κ
)
R
Y
(
ϕ
)
R
X
(
ω
)
R = R_Z(\kappa) R_Y(\phi) R_X(\omega)
R=RZ(κ)RY(ϕ)RX(ω)
R
=
[
cos
(
κ
)
sin
(
κ
)
0
−
sin
(
κ
)
cos
(
κ
)
0
0
0
1
]
[
cos
(
ϕ
)
0
−
sin
(
ϕ
)
0
1
0
sin
(
ϕ
)
0
cos
(
ϕ
)
]
[
1
0
0
0
cos
(
ω
)
sin
(
ω
)
0
−
sin
(
ω
)
cos
(
ω
)
]
R = \begin{bmatrix} \cos(\kappa) & \sin(\kappa) & 0 \\ -\sin(\kappa) & \cos(\kappa) & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} \cos(\phi) & 0 & -\sin(\phi) \\ 0 & 1 & 0 \\ \sin(\phi) & 0 & \cos(\phi) \\ \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\omega) & \sin(\omega) \\ 0 & -\sin(\omega) & \cos(\omega) \\ \end{bmatrix}
R=⎣
⎡cos(κ)−sin(κ)0sin(κ)cos(κ)0001⎦
⎤⎣
⎡cos(ϕ)0sin(ϕ)010−sin(ϕ)0cos(ϕ)⎦
⎤⎣
⎡1000cos(ω)−sin(ω)0sin(ω)cos(ω)⎦
⎤
R
=
[
cos
(
κ
)
cos
(
ϕ
)
sin
(
κ
)
−
cos
(
κ
)
sin
(
ϕ
)
−
sin
(
κ
)
cos
(
ϕ
)
cos
(
κ
)
sin
(
κ
)
sin
(
ϕ
)
sin
(
ϕ
)
0
cos
(
ϕ
)
]
[
1
0
0
0
cos
(
ω
)
sin
(
ω
)
0
−
sin
(
ω
)
cos
(
ω
)
]
R = \begin{bmatrix} \cos(\kappa)\cos(\phi) & \sin(\kappa) & -\cos(\kappa)\sin(\phi) \\ -\sin(\kappa)\cos(\phi) & \cos(\kappa) & \sin(\kappa)\sin(\phi) \\ \sin(\phi) & 0 & \cos(\phi) \\ \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\omega) & \sin(\omega) \\ 0 & -\sin(\omega) & \cos(\omega) \\ \end{bmatrix}
R=⎣
⎡cos(κ)cos(ϕ)−sin(κ)cos(ϕ)sin(ϕ)sin(κ)cos(κ)0−cos(κ)sin(ϕ)sin(κ)sin(ϕ)cos(ϕ)⎦
⎤⎣
⎡1000cos(ω)−sin(ω)0sin(ω)cos(ω)⎦
⎤
R
=
[
cos
(
κ
)
cos
(
ϕ
)
sin
(
κ
)
cos
(
ω
)
+
cos
(
κ
)
sin
(
ϕ
)
sin
(
ω
)
sin
(
κ
)
sin
(
ω
)
−
cos
(
κ
)
sin
(
ϕ
)
cos
(
ω
)
−
sin
(
κ
)
cos
(
ϕ
)
cos
(
κ
)
cos
(
ω
)
−
sin
(
κ
)
sin
(
ϕ
)
sin
(
ω
)
cos
(
κ
)
sin
(
ω
)
+
sin
(
κ
)
sin
(
ϕ
)
cos
(
ω
)
sin
(
ϕ
)
−
cos
(
ϕ
)
sin
(
ω
)
cos
(
ϕ
)
cos
(
ω
)
]
R = \begin{bmatrix} \cos(\kappa)\cos(\phi) & \sin(\kappa)\cos(\omega)+\cos(\kappa)\sin(\phi)\sin(\omega) & \sin(\kappa)\sin(\omega)-\cos(\kappa)\sin(\phi)\cos(\omega)\\ -\sin(\kappa)\cos(\phi) & \cos(\kappa)\cos(\omega)-\sin(\kappa)\sin(\phi)\sin(\omega) & \cos(\kappa)\sin(\omega)+\sin(\kappa)\sin(\phi)\cos(\omega) \\ \sin(\phi) & -\cos(\phi)\sin(\omega) & \cos(\phi)\cos(\omega) \\ \end{bmatrix}
R=⎣
⎡cos(κ)cos(ϕ)−sin(κ)cos(ϕ)sin(ϕ)sin(κ)cos(ω)+cos(κ)sin(ϕ)sin(ω)cos(κ)cos(ω)−sin(κ)sin(ϕ)sin(ω)−cos(ϕ)sin(ω)sin(κ)sin(ω)−cos(κ)sin(ϕ)cos(ω)cos(κ)sin(ω)+sin(κ)sin(ϕ)cos(ω)cos(ϕ)cos(ω)⎦
⎤
当
κ
,
ϕ
,
ω
很小时,存在
:
当\kappa,\phi,\omega很小时,存在:
当κ,ϕ,ω很小时,存在:
cos
(
κ
)
≈
1.0
,
cos
(
ϕ
)
≈
1.0
,
cos
(
ω
)
≈
1.0
sin
(
κ
)
≈
κ
,
sin
(
ϕ
)
≈
ϕ
,
sin
(
ω
)
≈
ω
ϕ
ω
≈
0.0
,
κ
ω
≈
0.0
,
κ
ϕ
ω
≈
0.0
,
κ
ϕ
≈
0.0
\cos(\kappa)\approx1.0, \cos(\phi)\approx1.0, \cos(\omega)\approx1.0 \\ \sin(\kappa)\approx\kappa, \sin(\phi)\approx\phi, \sin(\omega)\approx\omega \\ \phi\omega\approx0.0,\kappa\omega\approx0.0,\kappa\phi\omega\approx0.0,\kappa\phi\approx0.0
cos(κ)≈1.0,cos(ϕ)≈1.0,cos(ω)≈1.0sin(κ)≈κ,sin(ϕ)≈ϕ,sin(ω)≈ωϕω≈0.0,κω≈0.0,κϕω≈0.0,κϕ≈0.0
则旋转矩阵为
:
则旋转矩阵为:
则旋转矩阵为:
R
=
[
1
κ
−
ϕ
−
κ
1
ω
ϕ
−
ω
1
]
R= \begin{bmatrix} 1 & \kappa & -\phi \\ -\kappa & 1 & \omega \\ \phi & -\omega & 1 \end{bmatrix}
R=⎣
⎡1−κϕκ1−ω−ϕω1⎦
⎤
参考:
[1] Harvey B R . Transformation of 3D Co-ordinates[J]. Australian Surveyor, 1986, 33(2):105-125.