目录
  • 一、VIO(Visual-Inertial Odometry)概述
    • 1.1 IMU概述
    • 1.2 IMU 与视觉定位方案优势与劣势对比:
    • 1.3 IMU 数据可与多种定位方案融合
      • 1.3.1 松耦合
      • 1.3.2 紧耦合
  • 二、预备知识
    • 2.1 数学符号约定
    • 2.2 三维刚体运动
    • 2.3 四元数
      • 2.3.1 四元数和角轴的转换关系
      • 2.3.2 四元数求导
      • 2.3.3 四元数更新
    • 2.4 李代数
      • 2.4.1 李群李代数的关系
      • 2.4.2 李代数更新
      • 2.4.3 李代数求导与扰动模型
      • 2.4.4 有关 SE(3)
 

一、VIO(Visual-Inertial Odometry)概述

  VIO即以视觉(相机)与 IMU 融合实现里程计的方法  
  1. IMU(Inertial Measurement Unit),惯性测量单元.
 
  • 典型 6 轴 IMU 以较高频率(≥ 100Hz)返回被测量物体的角速度 与加速度
  • 受自身温度、零偏、振动等因素干扰,积分得到的平移和旋转容 易漂移
 
  1. Visual Odometry 视觉里程计
 
  • 以图像形式记录数据,频率较低(15 − 60Hz 居多)
  • 通过图像特征点或像素推断相机运动`
 

1.1 IMU概述

  六自由度 IMU 本身由一个陀螺仪和一个加速度计组成,分别测量自身 的角速度和加速度。   在这里插入图片描述   手机等电子产品多使用价格低廉的 MEMS IMU(如 MPU 6050),自动驾驶类则多使用几万元的 IMU(如 Apollo 中使用的 Novatel SPAN-IGM-A1)   在这里插入图片描述  

1.2 IMU 与视觉定位方案优势与劣势对比:

  在这里插入图片描述   整体上,视觉和 IMU 定位方案存在一定互补性质: • IMU 适合计算短时间、快速的运动; • 视觉适合计算长时间、慢速的运动。   同时,可利用视觉定位信息来估计 IMU 的零偏,减少 IMU 由零偏导致的发散和累积误差;反之, IMU 可以为视觉提供快速运动时的定位。  

1.3 IMU 数据可与多种定位方案融合

  • 自动驾驶中通常用 IMU+GPS/差分 GPS/RTK 的融合定位方案,形成 GNSS-INS 组合导航系统,达到厘米组定位精度; • 头戴式 AR/VR 头盔则多使用视觉 +IMU 的 VIO 定位系统,形成高帧率定位方案  

1.3.1 松耦合

  将 IMU 定位与视觉/GNSS 的位姿直接进行融合,融合过程对二者本身不产生影响,作为后处理方式输出。典型方案为卡尔曼滤波器。   在这里插入图片描述  

1.3.2 紧耦合

  融合过程本身会影响视觉和 IMU 中的参数(如 IMU 的零偏和视觉的尺度)。典型方案为 MSCKF 和非线性优化。   在这里插入图片描述  
					 `为什么要使用紧耦合`
  • 单纯凭(单目)视觉或 IMU 都不具备估计 Pose 的能力:视觉存 在尺度不确定性、 IMU 存在零偏导致漂移; • 松耦合中,视觉内部 BA 没有 IMU 的信息,在整体层面来看不是 最优的。 • 紧耦合可以一次性建模所有的运动和测量信息,更容易达到最优。  

二、预备知识

 

2.1 数学符号约定

 
  • 普通变量: a,b,ca,b,c
  • 矩阵和向量:A,B, v
  • 集合:R,ZR,Z
  • 特殊集合: F,GF,G
  • 希腊字母和向量: αα
  • 李代数: so(3),se(3)so(3),se(3)
  在这里插入图片描述  

2.2 三维刚体运动

  在这里插入图片描述  

2.3 四元数

  在这里插入图片描述   在这里插入图片描述   四元数相关知识可以参考资料:https://download.csdn.net/download/qq_34213260/12504624  

2.3.1 四元数和角轴的转换关系

  在这里插入图片描述  

2.3.2 四元数求导

  在这里插入图片描述  

2.3.3 四元数更新

  当我们用计算出来的 角速度ω 对某旋转更新时   在这里插入图片描述  

2.4 李代数

 

2.4.1 李群李代数的关系

  在这里插入图片描述   在这里插入图片描述   在这里插入图片描述   由于ϕϕ是三维向量, 我们可以定义它的模长和它的方向,分别记作 θθa,a, 于是有 ϕ=θa0ϕ=θa0 这里 aa 是一个长度为 1 的方向向量,即 || a=1a‖=1∘ 。因此可以推导出   在这里插入图片描述   ϕ=ln(R)=arccostr(R)12ϕ=ln⁡(R)∨=arccos⁡tr⁡(R)−12 ϕϕ的物理含义就是[x,y,z]三轴的角度   上式还有一种更易理解与常用的形式如下:   在这里插入图片描述   在这里插入图片描述   在这里插入图片描述  

2.4.2 李代数更新

  在这里插入图片描述   在这里插入图片描述   在这里插入图片描述   在这里插入图片描述 在这里插入图片描述   10 式 和4.8 式联立可得 ω=RTϕRω∧=RTϕR  

2.4.3 李代数求导与扰动模型

  在这里插入图片描述   在这里插入图片描述   在这里插入图片描述   在这里插入图片描述   在这里插入图片描述  

2.4.4 有关 SE(3)

  由于 SE(3) 李代数性质复杂,在 VIO 中,我们通常使用SO(3) + t 的形式表达旋转和平移。对平移部分使用矢量更新而非SE(3) 上的更新