VINS-Mono+Fusion源码解析系列(三):IMU预积分前置知识

1. 旋转的几种数学表示方法

  • 旋转矩阵:优点是运算方便,使用9个量描述3自由度旋转。缺点是引入额外约束(如要求满足正交性、行列式为1等),求导困难

  • 旋转向量:以单位向量 n → \overrightarrow{n} n 为旋转轴,绕其旋转角度 θ \theta θ。可紧凑的表示旋转,缺点是具有周期性(若限定在某一周期范围内,如[-pi, pi],则不具有周期性)

  • 欧拉角:比较直观,对用户友好;需要指定旋转顺序,存在万向节死锁现象,无法进行球面平滑差值

  • 四元数:紧凑的不带奇异的表示方法,对用户来讲不太直观,要求是单位四元数(因为只有单位四元数才能表示旋转),表示旋转时也会过参数化(实部 + 虚部需要4个量),所以说4个量 + 1个约束才能表示3自由度的旋转

  • 四元数与旋转向量之间的转换关系如下:
    [ q w q x q y q z ] = [ c o s θ 2 n → ⋅ s i n θ 2 ] \left[\begin{array}{cc} q_w \\ q_x \\ q_y \\ q_z \end{array} \right] = \left[\begin{array}{cc} cos \frac{\theta}{2} \\ \overrightarrow{n} \cdot sin \frac{\theta}{2} \end{array} \right] qwqxqyqz =[cos2θn sin2θ]
    由于IMU的频率较高,因此相邻IMU数据间的时间间隔非常小,故而对应的 θ \theta θ也非常小,则有:
    [ q w q x q y q z ] = [ c o s θ 2 n → ⋅ s i n θ 2 ] = [ 1 n → ⋅ θ 2 ] \left[\begin{array}{cc} q_w \\ q_x \\ q_y \\ q_z \end{array} \right] = \left[\begin{array}{cc} cos \frac{\theta}{2} \\ \overrightarrow{n} \cdot sin \frac{\theta}{2} \end{array} \right] = \left[\begin{array}{cc} 1 \\ \overrightarrow{n} \cdot \frac{\theta}{2} \end{array} \right] qwqxqyqz =[cos2θn sin2θ]=[1n 2θ]
    又因为旋转量 n → ⋅ θ = w ⋅ Δ t \overrightarrow{n} \cdot \theta = w \cdot \Delta t n θ=wΔt,其中 w w w表示IMU中陀螺仪的读数。因此上述转换关系可化简如下:
    [ q w q x q y q z ] = [ c o s θ 2 n → ⋅ s i n θ 2 ] = [ 1 n → ⋅ θ 2 ] = 1 2 w Δ t \left[\begin{array}{cc} q_w \\ q_x \\ q_y \\ q_z \end{array} \right] = \left[\begin{array}{cc} cos \frac{\theta}{2} \\ \overrightarrow{n} \cdot sin \frac{\theta}{2} \end{array} \right] = \left[\begin{array}{cc} 1 \\ \overrightarrow{n} \cdot \frac{\theta}{2} \end{array} \right] = \frac{1}{2}w \Delta t qwqxqyqz =[cos2θn sin2θ]=[1n 2θ]=21wΔt

2. 四元数的相关操作

2.1 四元数乘法

对于两四元数 p = [ p w , p x , p y , p z ] T p=[p_w,p_x,p_y,p_z]^T p=[pw,px,py,pz]T q = [ q w , q x , q y , q z ] T q=[q_w,q_x,q_y,q_z]^T q=[qw,qx,qy,qz]T,二者相乘如下:
p ⊗ q = [ p w q w − p x q x − p y q y − p z q z p w q x + p x q w + p y q z − p z q y p w q y − p x q z + p y q w + p z q x p w q z + p x q y − p y q x + p z q w ] p \otimes q = \left[\begin{array}{cc} p_wq_w-p_xq_x-p_yq_y-p_zq_z \\ p_wq_x+p_xq_w+p_yq_z-p_zq_y \\ p_wq_y-p_xq_z+p_yq_w+p_zq_x \\ p_wq_z+p_xq_y-p_yq_x+p_zq_w \end{array} \right] pq= pwqwpxqx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值