旋转矩阵是满足 RTR=I、detR=1 的实矩阵;二维和三维分别描述保持定向的欧氏旋转。
二维空间
在二维空间中,旋转可以用一个单一的角 θ 定义。作为约定,正角表示逆时针旋转。把笛卡尔坐标的列向量关于原点逆时针旋转 θ 的矩阵是:
R(θ)=[cosθsinθ−sinθcosθ]=cosθ[1001]+sinθ[01−10]=exp(θ[01−10])
特征值
二维旋转矩阵的两个特征值为 e±iθ。仅当 θ∈/πZ 时它们非实;θ∈πZ 时为 1 或 −1。
λ1=eiθ,λ2=e−iθ
证明
det(R(θ)−λI)=0
det(cosθ−λsinθ−sinθcosθ−λ)=0
(cosθ−λ)2+sin2θ=0
cos2θ−2λcosθ+λ2+sin2θ=0
λ2−2λcosθ+1=0
使用求根公式,得到:
λ=cosθ±isinθ
因此,特征值为:
λ1=eiθ,λ2=e−iθ
两根互为共轭,实根是上述特殊角的情况。
三维空间
在三维空间中,旋转矩阵有一个等于单位1的实特征值。旋转矩阵指定关于对应的特征向量的旋转(欧拉旋转定理)。如果旋转角是 θ,则旋转矩阵的另外两个(复数)特征值是 exp(iθ) 和 exp(−iθ)。从而得出三维旋转的矩阵的迹数等于 1+2cos(θ),这可用来快速地计算任何三维旋转的旋转角。
三维旋转矩阵的生成元是三维斜对称矩阵。因为只需要三个实数来指定三维斜对称矩阵,得出只用三个实数就可以指定一个三维旋转矩阵。
旋转
生成旋转矩阵的一种简单方式是把它作为三个基本旋转的序列复合。关于右手笛卡尔坐标系的 x-, y- 和 z-轴的旋转分别叫做 roll, pitch 和 yaw 旋转。因为这些旋转被表达为关于一个轴的旋转,它们的生成元很容易表达。
绕 x-轴的主动旋转
Rx(θx)=1000cosθxsinθx0−sinθxcosθx=expθx0000010−10
这里 θx 的正方向遵循右手定则:从正 x 轴朝原点看为逆时针。采用相应坐标轴约定时称 roll 角;主动转向量与被动转坐标轴的符号相反。
绕 y-轴的主动旋转
Ry(θy)=cosθy0−sinθy010sinθy0cosθy=expθy00−1000100
这里 θy 的正方向遵循右手定则:从正 y 轴朝原点看为逆时针。采用相应坐标轴约定时称 pitch 角;主动转向量与被动转坐标轴的符号相反。
绕 z-轴的主动旋转
Rz(θz)=cosθzsinθz0−sinθzcosθz0001=expθz010−100000
这里 θz 的正方向遵循右手定则:从正 z 轴朝原点看为逆时针。采用相应坐标轴约定时称 yaw 角;主动转向量与被动转坐标轴的符号相反。
性质
旋转矩阵是正交矩阵, 因此具有正交矩阵的所有性质
- 逆矩阵:Q−1=QT
- 列向量正交:列向量彼此正交,且范数为1。
- 行向量正交:行向量彼此正交,且范数为1。
- 保距性:保留向量的长度和内积。
应用
旋转矩阵在计算机图形学、机器人动力学、物理学和信号处理等领域有广泛应用。