IMU的数据频率一般远高于视觉,在视觉两帧k,k+1之间通常会有>10组IMU数据。IMU的数据通过积分,可以获取当前位姿(p位置,q四元数表达的姿态)、瞬时速度等参数。
在VIO中,如果参考世界坐标系对IMU进行积分,积分项中包含相对于世界坐标系的瞬时旋转矩阵,这样有几个问题:
1. 相对世界坐标系的旋转矩阵有drift,如果一直以其为基准进行积分,必然造成积分误差累积;
2. 在进行优化位姿调整时(通常是调整视觉KeyFrame的pose),相对于世界坐标系的pose会变化,因而优化后的瞬时旋转矩阵和积分时不同,那么积分自然也就存在问题;
3. 一般这个旋转矩阵不知道。。。
因此,一般的预积分的参考坐标系为k帧的IMU参考系,这样可以解决以上问题:
1. 相对k帧的IMU进行积分,不会有累积误差;
2. 即使后面调整了位姿,相对位置不变,因此预积分不存在问题;
3. 这个旋转矩阵为单位矩阵E,后面每出现一个IMU数据,都可以用任何一种数值积分的方法计算;同时可以将重力加速度提取到积分号外面不参加积分,相当于在重力参考系中积分,计算量也会减少。