1.四元数
SLAM中的旋转矩阵 R 可以用四元数 q 来表示
单位四元数可表达任意三维旋转,且无奇异性。
一个四元数 q 具有一个实部和三个虚部。将实部写在前,虚部写在后,则有:
q=[q0,q1,q2,q3]T 或 q=[w,x,y,z]T 其中 q0 是实部,为标量;[q1,q2,q3]T 是虚部,为矢量。
则四元数也可以记作:
q=[s,v]T 其中 s为标量, v 为虚部的矢量。
2.四元数的性质
四元数的乘法:
两个四元数相乘,结果还是四元数,结果如下:
qa⊗qb=[wa,xa,ya,za]T⊗[wb,xb,yb,zb]T=[sasb−vaTvb,savb+sbva+va×vb]T=⎣⎢⎢⎡wawb−xaxb−yayb−zazbwaxb+xawb+yazb−zaybwayb−xazb+yawb+zaxbwazb+xayb−yaxb+zawb⎦⎥⎥⎤
3.四元数与轴角的关系
假设某个旋转运动的旋转轴为单位向量 u,绕该轴旋转的角度为 θ,那么它对应的单位四元数为:
q=[cos2θusin2θ] 当旋转一段微小的时间,即旋转角度趋于零时,容易有:
其中 δθ 的方向表示旋转轴,模长表示旋转角度。
4.四元数的导数
角速度有:
四元数的时间导数为:
5.利用李代数进行旋转求导
使用旋转矩阵 R 时,角速度为 ω,那么 R 相对于时间的导数可写作:
该式被称为泊松公式(Possion’s equation),其中 ∧ 为反对称矩阵算子: