VIO 初始化小结 - 10.17

最近几个月忙于博士毕业,找工作一直没有继续更新博客,希望以这一篇开始,每个月能够继续有几篇总结博客。

首先review一下比较著名的vio系统

  1. Tightly coupled
    • EKF: mainly ETH ASL R.Siegwart work
  2. Tightly-coupled
    • EKF:
      • MSCKF->MSCKF2.0->SR-ISWR  observability and consistency analysis
      • ROVIO
      • SR-ISWF
    • Optimization:
      • OKVIS
      • VINS-Mono (more robust initialization compared with OKVIS and less sensitive towards noise and bias prior)
      • Inertial ORB (no original open source, no metric scale estimation at the beginning, sudden change of Map when the scale is solved)

VIO系统的优点显而易见,难点在于如何将visual和inertial两个传感器的优缺点有效结合,达到快速初始化(最重要的是尺度和重力方向),稳定鲁邦估计,以及对噪声和传感器参数(相机IMU外参,IMU零偏)的高度容忍或者在线估计。

这篇博客主要比较集中优化方法的初始化过程,为了达到非线性优化问题的最优解,一个靠谱的初值可以让系统很快收敛,不仅可以提高优化速度,也可以达到optimal的状态估计。相反,初值估计错误不仅导致非线性优化问题陷入局部最小,而且使得参数估计完全错误,从而使得系统崩溃(俗称系统飞掉,特别是imu的bias参数估计错误)。

  首先介绍OKVIS的初始化方法,OKVIS对IMU的参数非常敏感(相对于VINS-Mono使用商用级别commercial-grade的IMU即可,它需要使用工业级别industrial-grade的IMU来完成初始化操作),因为整个系统的状态propagation就是基于IMU,更严苛的是系统的初始化状态也完全依赖于初始(几十个或者几百个)IMU数据的propagation给出的姿态,如果是pure rotation运动,则使用2D-2D匹配进行跟踪,轨迹仅由IMU给出,当可以三角化出landmark时(有足够的2D-2D匹配内点,且内点可以恢复出3D点(使用Kneip的Opengv中算法)),初始化完成。后续同时使用3D-2D匹配和2D-2D匹配。因此,IMU给出的初始轨迹估计需要比较准确,才可以给出初始轨迹,并且确定何时可以初始化完成。

 

 

TX1: https://www.phoronix.com/scan.php?page=article&item=nvidia-jtx1-perf&num=1%3C/span%3E%3C/blockquote%3E

posted @ 2017-10-17 22:22  徐尚  阅读(3253)  评论(0编辑  收藏  举报