vins中imu融合_基于非线性优化算法—当视觉SLAM遇到VINS会碰撞出怎样的火花?

2023-05-16

​今天来给大家分享一个视觉SLAM中比较综合且复杂的系统—VINS。VINS旨在通过融合两个传感器测量数据获得移动机器人的位姿和特征点在空间中的位置,在现代控制理论学科中属于最优估计问题。在移动智能机器定位导航技术中,VINS 的研究思路很多来自视觉SLAM,也有很多工程实现是直接基于视觉SLAM框架进行的二次优化。所以在了解VINS的研究现状之前,有必要先了解视觉SLAM的研究现状。

视觉SLAM是以视觉传感器为中心的定位与建图技术,近两年在理论和实践上都经历了明显的转变和突破,正逐步从实验室研究迈向市场应用。由于SLAM起源于机器人领域的状态估计问题,早先研究的SLAM系统多是使用激光雷达传感器且基于滤波算法的,当使用视觉传感器求解SLAM问题时,基于非线性优化算法被提出并使用,而其理论思想与计算机视觉领域的SFM(StructurefromMotion)问题非常相近,且随着计算机硬件和计算机视觉技术的快速发展,基于非线性优化算法的视觉SLAM成为了机器人/无人机定位导航领域内的主要研究方向。

下面我们一起先来了解一下基于非线性优化视觉研究的主要思想:

基于非线性优化的视觉SLAM的思想来自计算机视觉三维重建领域,其中起到核心作用的是Bundle Adjustment, 简称BA,在SLAM问题中,BA具有稀疏性,能够实时求解相机位姿和三维地图点位置。PTAM是首个基于关键帧BA的单目视觉SLAM,拥有跟踪和地图构建两个独立的线程,地图构建线程仅维护原视频流中稀疏抽取的关键帧及关键帧中空间的三维点,这样可以高效的求解目标函数,有了BA恢复的精确三维结构,相机跟踪线程作为前台线程,仅需优化当前帧运动参数,就足以达到实时的计算效率。PTAM的开源对于V-SLAM的发展来说意义深远,目前市面上很多V-SLAM系统都是基于PTAM的算法框架改进而来。有科研团队2015年提出并开源的ORB-SLAM是目前性能最好的单目视觉SLAM系统之一,ORB-SLAM 延续了PTAM的框架,前端选用ORB特征点,增加重定位和闭环模块,并改进了初始化和关键帧选择机制等,整体性能有了很大的改善。浙江大学CAD&CG国家重点实验室计算机视觉组于2013年研发RDSLAM, 该系统同样是基于PTAM框架采用SIFT特征点和在线的关键帧表达与更新方法,可以自适应地对动态场景进行建模来应对苛刻的环境。

那么到底基于非线性优化算法的视觉SLAM,遇到VINS会碰撞出怎样的火花,我们一起来看一下:

VINS的前身是视觉辅助的惯性导航系统,早期在航空领域内研究颇多,彼时的导航系统主要基于滤波器进行设计的,且视觉测量值和系统的融合多为松耦合的方式,近期视觉SLAM技术的突破发展,为VINS的研究提供了新的思路。移动智能机体领域对VINS 的主要研究包括系统能观性和一致性分析、多传感器融合方法、传感器参数标定、IMU预积分处理、系统初始化、重定位和全局一致性(闭环检测与校正)等。当VINS可以可靠地应对相对简单的静态结构化小场景后,如何提高VINS在动态场景、大尺度场景、非结构化场景下系统的鲁棒性和精确度成为了后续要继续研究的重点。

下面我们一起来了解一下目前VINS中各个重点技术的研究现状:

(1) VINS能观性和一致性分析

通过对系统能观性和一致性的分析,可以从系统本质层面考虑各个模块存在的问题并找到相应解决方法。科研人员通过对系统能观测矩阵的奇异值分解,提出一种定量分析系统状态参量能观性的方法。为了标定IMU和相机之间的外参,给出了一种利用李代数导数去分析IMU和相机之间的变换何时是可观测的。在不同的传感器配置下通过测试不易分辨的轨迹来研究VINS的能观性。有限利用连续对称性矩阵证明了VINS中的IMU的偏差、三维速度矢量以及绝对的横滚角和俯仰角是可观测的。后来科研团队又通过对无传感器偏差的VINS模型进行的线性化后能观性的分析研究了系统的一致性问题。通过提出First- Estimates Jacobian (FEJ) 来减少系统不一致性所带来的影响。后来有科研人员又利用随机不可观测变换矩阵证明滤波器无法模拟原系统的不变性因此会导致系统的不一致性。

(2) VINS多传感器融合方法

相机和IMU如何融合数据是VINS最核心的问题,根据是否将环境特征作为要估计的状态变量,融合方式分为松耦合和紧耦合两种方式。目前紧耦合的方式具有较高的精确度和更强的鲁棒性,其既可以是基于滤波算法的,也可以是基于非线性优化算法的。在我国,有科研团队采用UKF滤波框架,通过视觉检测跑道特征点,结合IMU测量的姿态角信息估计无人机相对位置、速度和姿态。后来有科研团队又通过IMU计算出状态变量的预测值,利用ORB-SLAM 系统的输出来更新系统的误差信息,系统是基于EKF算法实现的。国际上MSCKFl是一种比较流行的基于EKF的VINS,其保留了一些之前的相机位姿在状态变量中,并利用在多个相机视角中相同特征的视觉测量值去构建多约束更新方程。SR-ISWP扩展了MSCKF,其利用均方根的表达形式去获得单精确度表示并避免差的数值属性,这种方法采用了逆滤波框架从而能够迭代地重线性化,这实际上等同于基于优化的算法。非线性优化算法是将所有对所有测量值进行优化从而得到最优的状态估计值。随着测量值的规模不断增长,基于非线性优化框架的OKVIS和香港科技大学沈邵劼团队的VINS-Mono为了得到常量的处理时间,通常只优化一个滑动窗口内最近的一些状态变量,该窗口会将过去的状态变量和测量值边缘化出窗口从而控制系统的整体规模。同视觉SLAM一样,基于非线性优化VINS比基于滤波的VINS效果更加突出。

(3) IMU预积分计算

在现实中,IMU的测量数据的频率往往远远高于相机,因此很多不同的处理高频率IMU测量数据的方法被提出。最直接的方法是将IMU数据作为基于EKF框架方法的状态传播部分。而在基于非线性优化算法的系统中,一个有效的处理IMU的方法是“预积分”,预积分旨在避免在优化更新状态变量后导致的IMU积分的再次计算。预积分通过欧拉角的形式来参数化状态变量的旋转误差。后来有科研团队发明了一种流形上的IMU预积分的旋转表达,利用连续时间IMU误差状态动态模型推导了协方差传播方程,然而IMU的偏差并没有考虑进去,之后添加了IMU的偏差校正从而改善了其预积分理论。

(4) VINS 初始化

精确的系统初始值对任何一个单目的VINS来说都是非常重要的,有科研团队设计了一种线性估计初始化方法,该方法通过IMU预积分模型收敛得到相对的旋转。然而这种方法并没有建立陀螺仪偏差的模型,而且在原始的投影方程中无法成功建立传感器噪声模型,在现实世界中,当视觉特征里传感器组件太远时,系统将无法可靠地初始化。后来科研团队发现基SVO的重初始化和失败复位的算法比较实用,这种方法是一种松耦合方法,但在应用于无人机的实际场景中,系统需要依赖一个向下俯视的距离传感器来获得尺度因子。

(5)闭合回环和重定位

VINS若只具备位姿跟踪和地图点的构建,其本质上属于视觉和惯导融合的里程计,即Visual-Inertial Odometry (VIO)。

VIO本身存在全局不一致性问题,即随着移动机器人运动的时间和空间不断增长,系统的误差会不断积累,最终误差会严重影响系统的精确度。因此,借助SLAM的思想向VIO中添加闭合回环模块,利用模式识别技术可以进行闭环检测和闭环校正,解决全局不一致的问题,目前闭环检测比较流行的做法是利用词袋模型( Bag-of-World, BoW)。科研人员发现当利用上IMU的测量数据后,系统的漂移误差只会发生在三维的平移和绕重力向量旋转的航向角四个自由度上,后来科研人员利用构建位姿图进行四自由度的优化。

综合国内外目前为止对于单目相机和惯性导航传感器融合的定位导航系统的研究,整个领域对该项技术的研究依旧不是非常成熟,能够成功应用在实际移动平台的VINS 相对较少,基于非线性优化算法且具有全局一致性的VINS具有很高的研究价值。

下面来分享一个VINS系统总体框架的搭建思路:

通过上面的介绍,我们可以看出单目VINS 系统的本质与视觉SLAM相同,均是一个状态估计问题。本思路ORB-SLAM为工程基础,基于非线性优化算法以紧耦合的方式融合IMU数据。ORB-SLAM系统由位姿跟踪,构建地图和闭合回环三个线程组成,能够实时地跟踪相机位姿,构建环境的稀疏地图点,利用视觉词典检测闭环并校正闭环。在ORB-SLAM系统中,观测模型只来自视觉部分,由单目相机采集图像并计算相应的特征点,利用重投影误差构建系统损失函数,求解相应位姿。

本思路在融合IMU数据时,根据IMU观测模型,利用IMU部分的预积分误差和视觉部分的重投影误差共同构建新的损失函数进行状态估计,因此VINS系统的主要框架与ORB-SLAM系统的相同。在ORBSLAM的基础上分别对三个线程进行改进,主要体现在运动跟踪线程中的运动估计部分,构建地图线程中的局部优化部分以及闭合回环线程中的闭环校正全局优化部分,同时由于系统是非线性系统,需要精确的初始值,所以系统的初始化部分需要对IMU的相关变量进行求解。为了让图像帧之间的IMU数据作为整体的测量值,上文引出了预积分的概念,因此在传感器数据处理部分需要对IMU求解各变量的预积分,系统在加入IMU数据后,为了避免连续的关键帧之间时间跨度太大导致IMU数据不确定性的扩散,还需对剔除冗余关键帧的策略进行相应的改进。VINS 系统的整体框架如图1-1所示。

e7bcf0b7572c8509b4793e221f90802b.png

1-1VINS系统整体框架

本思路对所有的非线性优化过程抽象为“图优化”的方式进行求解,将优化问题表现成图的一种方式。

496a627034a1257dab703d4085b23556.png

1-2图优化的例子

一个图由若干个顶点以及连接顶点的边组成,用顶点表示状态变量,边表示测量误差项,于是可以采用现有的图优化工具g2o (General GraphicOptimization) 将复杂的非线性优化问题以向图中添加顶点和边的方式进行求解。图优化的例子图所1-2示,图的顶点是相机的位姿Pn,和地图点ym的位置,边是地图点到相机的重投影误差和相机之间预积分误差。

分享到这里,你是不是又get到了一个新技能。其实想要快速在SLAM研究上有所突破,不如在已经开发好的SLAM平台上找找灵感。


现在一些企业所开发好的SLAM研究平台,可是紧跟当下智能研究热点,可提供视觉导航、SLAM、视觉避障、人工智能等领域最新的技术。


开发体系是由视觉开发平台、信息交互与任务控制平台、无人机系统等组成。

视觉SLAM的位姿估计模块可实时获取到双目相机的图像信息和IMU的位姿信息,然后通过视觉惯性融合算法计算出相机的深度信息、位置信息和运动姿态信息,并转换为实时位姿信息,最后通过无人机位姿解算算法将相机的位姿信息转换为无人机的位姿发送给无人机,实现无人机的自主定位。同时,视觉slam算法支持GPU加速技术,大幅提升运算速度与精度。基于词袋技术,构建视觉slam回环检测模块,使视觉SLAM所计算出来的位姿信息更加准确。由相机发布的三维点云信息获取无人机与障碍物之间的距离,并应用自主导航避障算法生成可执行路径,实现无人机自主导航避障功能。

最重要的是。它可提供完整的无人平台控制、通讯链路、视觉图像采集、图像识别、三维重建、定位解算等软件算法解决方案。和VIO、LocalPlanner等多种实例程序,用户只需要简单配置即可实现完整的自主定位、自主建图、自主导航、自主避障等功能。

还有全套的机器视觉与视觉导航的开发环境、仿真环境、硬件平台,绝对为你的开发工作提速助力。而且所提供的硬件均提供完善的二次开发接口和实例代码,省去用户从头搭建开发平台的繁杂工作。

该系统更适用于教研,可提供全套的学科教学课程以及示例算法等,有效实现SLAM理论教学和硬件实操。配有全套基于该平台的SLAM原理讲解教材和实操试验指导书,并包括课程PPT及例程操作指导视频。

可开设课程如下:

⦁ SLAM教学

⦁ 飞思视觉slam硬件平台介绍

⦁ 飞思视觉slam软件平台介绍

⦁ 相机原理、点云原理、GPU加速原理简介。

⦁ 飞思视觉slam平台支持的视觉slam架构,包括VINS,ORB_SLAM和Rovio,降低学校教师或学生学习SLAM的门槛。

⦁ 视觉slam主流技术介绍,包括多传感器融合算法,KLT光流算法双目VIO

⦁ 视觉词袋技术介绍

⦁ 回环检测技术介绍,包括重定位技术、全局位姿估计技术

⦁ 无人机通信技术,包括Mavlimk介绍和Mavros介绍

⦁ 自主导航避障算法介绍

⦁ 飞思视觉slam平台应用实例介绍。

⦁ 航线飞行实例,自主导航避障实例。

好了,今天就分享到这里,关于视觉SLAM你还有什么想了解的,欢迎后台留言!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vins中imu融合_基于非线性优化算法—当视觉SLAM遇到VINS会碰撞出怎样的火花? 的相关文章

随机推荐