在三维空间中,旋转矩阵有一个等于单位1的实特征值。旋转矩阵指定关于对应的特征向量的旋转(欧拉旋转定理)。如果旋转角是 θ,则旋转矩阵的另外两个(复数)特征值是 exp(iθ) 和 exp(-iθ)。从而得出 3 维旋转的迹数等于 1 + 2 cos(θ),这可用来快速的计算任何 3 维旋转的旋转角。
3 维旋转矩阵的生成元是三维斜对称矩阵。因为只需要三个实数来指定 3 维斜对称矩阵,得出只用三个实数就可以指定一个 3 维旋转矩阵。
旋转
编辑
主条目:Tait-Bryan角
生成旋转矩阵的一种简单方式是把它作为三个基本旋转的序列复合。关于右手笛卡尔坐标系的 x-, y- 和 z-轴的旋转分别叫做 roll, pitch 和 yaw 旋转。因为这些旋转被表达为关于一个轴的旋转,它们的生成元很容易表达。
绕 x-轴的主动旋转定义为:
R
x
(
θ
x
)
=
[
1
0
0
0
cos
θ
x
−
sin
θ
x
0
sin
θ
x
cos
θ
x
]
=
exp
(
θ
x
[
1
0
0
0
0
−
1
0
1
0
]
)
{\displaystyle {\mathcal {R}}_{x}(\theta _{x})={\begin{bmatrix}1&0&0\\0&\cos {\theta _{x}}&-\sin {\theta _{x}}\\0&\sin {\theta _{x}}&\cos {\theta _{x}}\end{bmatrix}}=\exp \left(\theta _{x}{\begin{bmatrix}1&0&0\\0&0&-1\\0&1&0\end{bmatrix}}\right)}
这里的
θ
x
{\displaystyle \theta _{x}}
是 roll 角,和右手螺旋的方向相反(在yz平面顺时针)。
绕 y-轴的主动旋转定义为:
R
y
(
θ
y
)
=
[
cos
θ
y
0
sin
θ
y
0
1
0
−
sin
θ
y
0
cos
θ
y
]
=
exp
(
θ
y
[
0
0
1
0
1
0
−
1
0
0
]
)
{\displaystyle {\mathcal {R}}_{y}(\theta _{y})={\begin{bmatrix}\cos {\theta _{y}}&0&\sin {\theta _{y}}\\0&1&0\\-\sin {\theta _{y}}&0&\cos {\theta _{y}}\end{bmatrix}}=\exp \left(\theta _{y}{\begin{bmatrix}0&0&1\\0&1&0\\-1&0&0\end{bmatrix}}\right)}
这里的
θ
y
{\displaystyle \theta _{y}}
是 pitch 角,和右手螺旋的方向相反(在zx平面顺时针)。
绕 z-轴的主动旋转定义为:
R
z
(
θ
z
)
=
[
cos
θ
z
−
sin
θ
z
0
sin
θ
z
cos
θ
z
0
0
0
1
]
=
exp
(
θ
z
[
0
−
1
0
1
0
0
0
0
1
]
)
{\displaystyle {\mathcal {R}}_{z}(\theta _{z})={\begin{bmatrix}\cos {\theta _{z}}&-\sin {\theta _{z}}&0\\\sin {\theta _{z}}&\cos {\theta _{z}}&0\\0&0&1\end{bmatrix}}=\exp \left(\theta _{z}{\begin{bmatrix}0&-1&0\\1&0&0\\0&0&1\end{bmatrix}}\right)}
这里的
θ
z
{\displaystyle \theta _{z}}
是 yaw 角,和右手螺旋的方向相反(在xy平面顺时针)。
在飞行动力学中,roll, pitch 和 yaw 角通常分别采用符号
γ
{\displaystyle \gamma }
,
α
{\displaystyle \alpha }
, 和
β
{\displaystyle \beta }
;但是为了避免混淆于欧拉角这里使用符号
θ
x
{\displaystyle \theta _{x}}
,
θ
y
{\displaystyle \theta _{y}}
和
θ
z
{\displaystyle \theta _{z}}
。
任何 3 维旋转矩阵
M
∈
R
3
×
3
{\displaystyle {\mathcal {M}}\in \mathbb {R} ^{3\times 3}}
都可以用这三个角
θ
x
{\displaystyle \theta _{x}}
,
θ
y
{\displaystyle \theta _{y}}
, 和
θ
z
{\displaystyle \theta _{z}}
来刻画,并且可以表示为 roll, pitch 和 yaw 矩阵的乘积。
M
{\displaystyle {\mathcal {M}}}
是在
R
3
×
3
{\displaystyle \mathbb {R} ^{3\times 3}\,}
中的旋转矩阵
⇔
∃
θ
x
,
θ
y
,
θ
z
∈
[
0
…
π
)
:
M
=
R
z
(
θ
z
)
R
y
(
θ
y
)
R
x
(
θ
x
)
{\displaystyle \Leftrightarrow \,\exists \,\theta _{x},\theta _{y},\theta _{z}\in [0\ldots \pi ):\,{\mathcal {M}}={\mathcal {R}}_{z}(\theta _{z})\,{\mathcal {R}}_{y}(\theta _{y})\,{\mathcal {R}}_{x}(\theta _{x})}
在
R
3
{\displaystyle \mathbb {R} ^{3}}
中所有旋转的集合,加上复合运算形成了旋转群 SO(3)。这里讨论的矩阵接着提供了这个群的群表示。更高维的情况可参见 Givens旋转。
角-轴表示和四元数表示
编辑
主条目:轴角和四元数和空间旋转
在三维中,旋转可以通过单一的旋转角
θ
{\displaystyle \theta }
和所围绕的单位向量方向
v
^
=
(
x
,
y
,
z
)
{\displaystyle {\hat {\mathbf {v} }}=(x,y,z)}
来定义。
M
(
v
^
,
θ
)
=
[
cos
θ
+
(
1
−
cos
θ
)
x
2
(
1
−
cos
θ
)
x
y
−
(
sin
θ
)
z
(
1
−
cos
θ
)
x
z
+
(
sin
θ
)
y
(
1
−
cos
θ
)
y
x
+
(
sin
θ
)
z
cos
θ
+
(
1
−
cos
θ
)
y
2
(
1
−
cos
θ
)
y
z
−
(
sin
θ
)
x
(
1
−
cos
θ
)
z
x
−
(
sin
θ
)
y
(
1
−
cos
θ
)
z
y
+
(
sin
θ
)
x
cos
θ
+
(
1
−
cos
θ
)
z
2
]
{\displaystyle {\mathcal {M}}({\hat {\mathbf {v} }},\theta )={\begin{bmatrix}\cos \theta +(1-\cos \theta )x^{2}&(1-\cos \theta )xy-(\sin \theta )z&(1-\cos \theta )xz+(\sin \theta )y\\(1-\cos \theta )yx+(\sin \theta )z&\cos \theta +(1-\cos \theta )y^{2}&(1-\cos \theta )yz-(\sin \theta )x\\(1-\cos \theta )zx-(\sin \theta )y&(1-\cos \theta )zy+(\sin \theta )x&\cos \theta +(1-\cos \theta )z^{2}\end{bmatrix}}}
这个旋转可以简单的以生成元来表达:
M
(
v
^
,
θ
)
=
exp
(
θ
[
0
−
z
y
z
0
−
x
−
y
x
0
]
)
{\displaystyle {\mathcal {M}}({\hat {\mathbf {v} }},\theta )=\exp \left(\theta {\begin{bmatrix}0&-z&y\\z&0&-x\\-y&x&0\\\end{bmatrix}}\right)}
在运算于向量 r 上的时候,这等价于Rodrigues旋转公式:
M
⋅
r
=
r
cos
(
θ
)
+
v
^
×
r
sin
(
θ
)
+
(
v
^
⋅
r
)
v
^
(
1
−
cos
(
θ
)
)
{\displaystyle {\mathcal {M}}\cdot \mathbf {r} =\mathbf {r} \,\cos(\theta )+{\hat {\mathbf {v} }}\times \mathbf {r} \,\sin(\theta )+({\hat {\mathbf {v} }}\cdot \mathbf {r} ){\hat {\mathbf {v} }}(1-\cos(\theta ))}
角-轴表示密切关联于四元数表示。依据轴和角,四元数可以给出为正规化四元数 Q:
Q
=
(
x
i
+
y
j
+
z
k
)
sin
(
θ
/
2
)
+
cos
(
θ
/
2
)
{\displaystyle Q=(xi+yj+zk)\sin(\theta /2)+\cos(\theta /2)\,}
这里的 i, j 和 k 是 Q 的三个虚部。
欧拉角表示
编辑
主条目:欧拉角
在三维空间中,旋转可以通过三个欧拉角
(
α
,
β
,
γ
)
{\displaystyle (\alpha ,\beta ,\gamma )}
来定义。有一些可能的欧拉角定义,每个都可以依据 roll, pitch 和 yaw 的复合来表达。依据 "x-y-z" 欧拉角,在右手笛卡尔坐标中的旋转矩阵可表达为:
M
(
α
,
β
,
γ
)
=
R
z
(
γ
)
R
y
(
β
)
R
x
(
α
)
{\displaystyle {\mathcal {M}}(\alpha ,\beta ,\gamma )={\mathcal {R}}_{z}(\gamma ){\mathcal {R}}_{y}(\beta ){\mathcal {R}}_{x}(\alpha )}
进行乘法运算生成:
M
(
α
,
β
,
γ
)
=
[
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
α
]
=
[
cos
γ
cos
β
−
sin
γ
cos
γ
sin
β
sin
γ
cos
β
cos
γ
sin
γ
sin
β
−
sin
β
0
cos
β
]
[
1
0
0
0
cos
α
−
sin
α
0
sin
α
cos
α
]
=
[
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
α
]
{\displaystyle {\begin{aligned}{\mathcal {M}}(\alpha ,\beta ,\gamma )&={\begin{bmatrix}\cos \gamma &-\sin \gamma &0\\\sin \gamma &\cos \gamma &0\\0&0&1\end{bmatrix}}{\begin{bmatrix}\cos \beta &0&\sin \beta \\0&1&0\\-\sin \beta &0&\cos \beta \end{bmatrix}}{\begin{bmatrix}1&0&0\\0&\cos \alpha &-\sin \alpha \\0&\sin \alpha &\cos \alpha \end{bmatrix}}\\&={\begin{bmatrix}\cos \gamma \cos \beta &-\sin \gamma &\cos \gamma \sin \beta \\\sin \gamma \cos \beta &\cos \gamma &\sin \gamma \sin \beta \\-\sin \beta &0&\cos \beta \end{bmatrix}}{\begin{bmatrix}1&0&0\\0&\cos \alpha &-\sin \alpha \\0&\sin \alpha &\cos \alpha \end{bmatrix}}\\&={\begin{bmatrix}\cos \gamma \cos \beta &-\sin \gamma \cos \alpha +\cos \gamma \sin \beta \sin \alpha &\sin \gamma \sin \alpha +\cos \gamma \sin \beta \cos \alpha \\\sin \gamma \cos \beta &\cos \gamma \cos \alpha +\sin \gamma \sin \beta \sin \alpha &-\cos \gamma \sin \alpha +\sin \gamma \sin \beta \cos \alpha \\-\sin \beta &\cos \beta \sin \alpha &\cos \beta \cos \alpha \end{bmatrix}}\end{aligned}}}
对称保持 SVD 表示
编辑
对旋转轴
q
{\displaystyle q}
和旋转角
θ
{\displaystyle \theta }
,旋转矩阵
M
=
q
q
T
+
Q
G
Q
T
{\displaystyle {\mathcal {M}}=qq^{T}+QGQ^{T}}
这里的
Q
=
[
q
1
,
q
2
]
{\displaystyle Q={\begin{bmatrix}q_{1},&q_{2}\end{bmatrix}}}
的纵列张开正交于
q
{\displaystyle q}
的空间而
G
{\displaystyle G}
是
θ
{\displaystyle \theta }
度 Givens 旋转,就是说
G
=
[
cos
θ
sin
θ
−
sin
θ
cos
θ
]
{\displaystyle G={\begin{bmatrix}\cos \theta &\sin \theta \\-\sin \theta &\cos \theta \end{bmatrix}}}