2D、3D旋转矩阵
旋转矩阵(Rotation matrix)是在乘以一个向量的时候有改变向量的方向但不改变大小的效果的矩阵。旋转矩阵不包括反演,它可以把右手坐标系改变成左手坐标系或反之。所有旋转加上反演形成了正交矩阵的集合。旋转可分为主动旋转与被动旋转。主动旋转是指将向量逆时针围绕旋转轴所做出的旋转。被动旋转是对坐标轴本身进行的逆时针旋转,它相当于主动旋转的逆操作。
[编辑]性质
设
- 两个向量的点积(内积)在它们都被一个旋转矩阵操作之后保持不变:
-
-
这里的 是单位矩阵。
-
- 任何旋转向量可以表示为斜对称矩阵
A的指数:
[编辑]二维空间
在二维空间中,旋转可以用一个单一的角
[编辑]三维空间
在三维空间中,旋转矩阵有一个等于单位1的实特征值。旋转矩阵指定关于对应的特征向量的旋转(欧拉旋转定理)。如果旋转角是 θ,则旋转矩阵的另外两个(复数)特征值是 exp(iθ) 和 exp(-iθ)。从而得出 3 维旋转的迹数等于 1 + 2 cos(θ),这可用来快速的计算任何 3 维旋转的旋转角。
3 维旋转矩阵的生成元是三维斜对称矩阵。因为只需要三个实数来指定 3 维斜对称矩阵,得出只用三个是实数就可以指定一个 3 维旋转矩阵。
[编辑]Roll, Pitch 和 Yaw
-
主条目: Tait-Bryan角
生成旋转矩阵的一种简单方式是把它作为三个基本旋转的序列复合。关于右手笛卡尔坐标系的
- 绕
x-轴的主动旋转定义为:
-
这里的 是 roll 角。
- 绕
y-轴的主动旋转定义为:
-
这里的 是 pitch 角。
- 绕
z-轴的主动旋转定义为:
-
这里的 是 yaw 角。
在飞行动力学中,roll, pitch 和 yaw 角通常分别采用符号 ,
, 和
;但是为了避免混淆于欧拉角这里使用符号
,
和
。
任何 3 维旋转矩阵
,
, 和
-
是在 中的旋转矩阵
在
[编辑]角-轴表示和四元数表示
在三维中,旋转可以通过单一的旋转角
这个旋转可以简单的以生成元来表达:
在运算于向量
角-轴表示密切关联于四元数表示。依据轴和角,四元数可以给出为正规化四元数
这里的
[编辑]欧拉角表示
-
主条目: 欧拉角
在三维空间中,旋转可以通过三个欧拉角
进行乘法运算生成:
因为这个旋转矩阵不可以表达为关于一个单一轴的旋转,它的生成元不能像上面例子那样简单表达出来。
[编辑]对称保持 SVD 表示
对旋转轴
,旋转矩阵
这里的