SLAM基础——四元数(含四元数对时间的导数)

1.四元数

  SLAM中的旋转矩阵 R \mathrm{R} R 可以用四元数 q q q 来表示
  单位四元数可表达任意三维旋转,且无奇异性。
  一个四元数 q q q 具有一个实部三个虚部。将实部写在前,虚部写在后,则有:
q = [ q 0 , q 1 , q 2 , q 3 ] T   或   q = [ w , x , y , z ] T q=[q_0,q_1, q_2, q_3]^T \ 或 \ q=[w,x,y,z]^T q=[q0,q1,q2,q3]T  q=[w,x,y,z]T  其中 q 0 q_0 q0 是实部,为标量 [ q 1 , q 2 , q 3 ] T [q_1, q_2, q_3]^T [q1,q2,q3]T 是虚部,为矢量
  则四元数也可以记作:
q = [ s , v ] T q=[s, \bold{v}]^T q=[s,v]T  其中 s s s为标量, v \bold{v} v 为虚部的矢量。

2.四元数的性质

四元数的乘法:
  两个四元数相乘,结果还是四元数,结果如下:
q a ⊗ q b = [ w a , x a , y a , z a ] T ⊗ [ w b , x b , y b , z b ] T = [ s a s b − v a T v b , s a v b + s b v a + v a × v b ] T = [ w a w b − x a x b − y a y b − z a z b w a x b + x a w b + y a z b − z a y b w a y b − x a z b + y a w b + z a x b w a z b + x a y b − y a x b + z a w b ] \begin{aligned} q_a \otimes q_b &= [w_a,x_a,y_a,z_a]^T \otimes [w_b,x_b,y_b,z_b]^T \\ &= [s_a s_b - \mathrm{v_a}^T \mathrm{v_b}, s_a \mathrm{v_b} + s_b \mathrm{v_a} + \mathrm{v_a} \times \mathrm{v_b}]^T \\ & = \begin{bmatrix} w_a w_b - x_a x_b - y_a y_b - z_a z_b \\ w_a x_b + x_a w_b + y_a z_b - z_a y_b \\ w_a y_b - x_a z_b + y_a w_b + z_a x_b \\ w_a z_b + x_a y_b - y_a x_b + z_a w_b \end{bmatrix} \end{aligned} qaqb=[wa,xa,ya,za]T[wb,xb,yb,zb]T=[sasbvaTvb,savb+sbva+va×vb]T=wawbxaxbyaybzazbwaxb+xawb+yazbzaybwaybxazb+yawb+zaxbwazb+xaybyaxb+zawb

3.四元数与轴角的关系

  假设某个旋转运动的旋转轴为单位向量 u \mathrm{u} u,绕该轴旋转的角度为 θ \theta θ,那么它对应的单位四元数为:
q = [ c o s θ 2 u s i n θ 2 ] q=\begin{bmatrix} cos{\frac{\theta}{2} } \\ \mathrm{u} sin{\frac{\theta}{2} }\end{bmatrix} q=[cos2θusin2θ]  当旋转一段微小的时间,即旋转角度趋于零时,容易有:
SLAM基础——四元数(含四元数对时间的导数)_第1张图片
其中 δ θ \delta \theta δθ 的方向表示旋转轴,模长表示旋转角度。

4.四元数的导数

  角速度有:
在这里插入图片描述
  四元数的时间导数为:
SLAM基础——四元数(含四元数对时间的导数)_第2张图片

5.利用李代数进行旋转求导

  使用旋转矩阵 R 时,角速度为 ω,那么 R 相对于时间的导数可写作:
在这里插入图片描述
该式被称为泊松公式(Possion’s equation),其中 ∧ 为反对称矩阵算子:
SLAM基础——四元数(含四元数对时间的导数)_第3张图片

你可能感兴趣的:(SLAM基础)