三维空间刚体运动的描述方式:旋转矩阵、变换矩阵、四元数和欧拉角
旋转矩阵
在SLAM 中相机可以看成三维空间的刚体,相机的位置是指相机在空间中的哪一个地方,二姿态则是指相机的朝向。结合起来可以说“相机正处于(0,0,0)点出,朝向正前方”。
—“^”该符号表示a为反对称矩阵;
外积只对三维向量存在定义,能够使用外积表示向量的旋转
欧式变换:刚体运动保证了同一个向量在各个坐标系下的长度和夹角都不会发生变化。
设某个单位正交基(e1,e2,e3)经过一次旋转,变成了(e1’,e2’,e3’),对于同一个向量a,它在两个坐标系下的坐标为[a1,a2,a3]^T,和[a1’,a2’,a3’]T,根据欧式变换的定义可知:
经过数学变换可知:
将中间的矩阵定义为R,称为旋转矩阵。旋转矩阵可以描述两个坐标系之间的旋转(即可以描述相机的旋转)。
变换矩阵与齐次坐标
为什么要引入齐次坐标?坐标系经过多次旋转平移变换后,旋转矩阵和平移向量使得数学表达式过于复杂。
将旋转矩阵和平移向量写在一个矩阵中,该矩阵T称为变换矩阵。
旋转向量和欧拉角
旋转向量
坐标系的旋转:任意的旋转都可以用一个旋转轴和一个旋转角来刻画。
旋转向量(李代数):一个向量其方向与旋转轴一致,长度等于旋转角,这个向量称为旋转向量(或轴角AxisAngle).
一个三维向量即可描述旋转,一个旋转向量和一个平移向量即可描述一次变换。
旋转向量和旋转矩阵之间如何转换?
假设一个旋转轴为n,角度为
θ
\theta
θ的旋转,显然,它对应的旋转向量为
θ
\theta
θn。
旋转向量 到旋转矩阵的过程有罗德里格斯公式表明:
旋转矩阵到旋转向量的过程
关于转轴n,由于旋转轴上的向量在旋转后不发生改变,说明
转轴n是矩阵R特征值1对应的特征向量。
四元数
四元数能够表达三维空间的旋转
旋转向量
假设某个旋转是绕某单位向量n=[nx,ny,nz]^T,进行了角度为
θ
\theta
θ的旋转,那么使用四元数可表示为:
相反的,可以从单位四元数中计算出对应的旋转轴与夹角:
在四元数中,任意的旋转都可以为两个互为相反数的四元数表示。
用四元数表示旋转
假设一个空间三维点p=[x,y,z],以及一个轴角n,$\theta$指定的旋转。
- 把三维空间点用一个虚四元数来描述
使用四元数表示旋转
2.旋转后的点即可表示为这样的乘积