VINS-MONO翻译以及理论推导系列(四):VIII全局位姿图优化、IX实验结果

2023-05-16

                                           VIII. 全局位姿图优化

       重新定位后,局部滑动窗口移动并与过去的姿态对齐。利用重定位结果,提出此位姿图优化步骤以确保将过去姿势的集合登记为全局一致配置。

       由于我们的视觉惯性设置使滚动和俯仰角完全可观测,累积漂移只发生在四个自由度(x,y,z和偏航角)。为此,我们忽略了对无漂移的滚转和俯仰状态估计,只进行了四自由度位姿图的优化。

A. 位姿图中添加关键帧

当关键帧从滑动窗口中边缘化时,它将被添加到位姿图中。这个关键帧在位姿图中充当顶点,它通过两种类型的边与其他顶点连接:

1)序列边:关键帧将建立与其先前关键帧的若干顺序边。序列边缘表示局部滑动窗口中两个关键帧之间的相对变换,其值直接从VIO中获取。考虑到新边缘化的关键帧i及其先前的一个关键帧j,序列边缘只包含相对位置\hat p_{ij}^i和偏航角\hat\psi_{ij}

2)闭环边:如果新边缘化的关键帧有一个循环连接,在姿态图中它将通过一个闭环边与闭环帧连接。同样,闭环边只包含与(27)相同定义的四自由度相对位姿变换。利用重定位的结果,得到了闭环边的值。

B.4自由度位姿图优化

我们将帧i和j之间的边的残差定义为:

其中,\hat\phi_i,\hat\theta_i是直接从单目VIO中得到的滚转角和俯仰角的估计。通过最小化以下代价函数,对顺序边和回环边的整个图进行了优化:

其中S是所有序列边的集合,L是闭环边的集合。尽管紧耦合的重定位已经有助于消除错误的闭环,但我们添加了另一个Huber范数\rho(·),以进一步减少任何可能的错误循环的影响。相反,我们不对序列边使用任何鲁棒范数,因为这些边缘是从VIO中提取出来的,VIO已经包含了足够多的外点排除机制。

       位姿图优化和重定位异步运行在两个独立的线程中。以便在可用重定位时,能立即使用最优化的位姿图。同样,即使当前的姿态图优化尚未完成,仍然可以使用现有的姿态图配置进行重新定位。这一过程如图9(b)所示。

C. 位姿图管理

随着行程距离的增加,姿态图的大小可能会无限增长,从而限制了系统的实时性。为此,我们实现了一个下采样过程,以将位姿图数据库保持在有限的大小。所有具有闭环约束的关键帧都将被保留,而其他与其邻居方向过近或方向非常相似的关键帧可能会被删除。关键帧被移除的概率和其与邻居空间密度成正比。

                                        IX. 实验结果

我们进行了三个实验和两个应用,以评估所提出的VINS-Mono系统.在第一个实验中,我们将所提出的算法与另一种最新的基于公共数据集算法进行了比较.通过数值分析,验证了系统的精度。然后在室内环境中测试我们的系统,以评估在重复场景中的性能。通过大量的实验验证了系统的长期实用性.此外,我们还将所提出的系统应用于两个应用程序。对于空中机器人的应用,我们使用vins-Mono作为位置反馈来控制无人机跟踪预定的轨迹。然后我们将我们的方法移植到iOS移动设备上,并与GoogleTango进行比较。

A. 数据集比较

我们使用EuRoc的MAV视觉-惯性数据集评估我们提出的VINS-Mono。这些数据集是在一架微型飞行器上收集的,它包含立体图像(Aptina MT9V034全球快门、WVGA单色、20 FPS)、同步IMU测量(ADIS 16448、200 Hz)和地面真实状态(Vicon和Leica MS 50)。我们只使用左边相机的图像。在这些数据集中观察到了较大的IMU偏置和光照变化。

在这些实验中,我们将vins-mono和OKVIS进行了比较,这是一种最先进的VIO,可以用单目和立体相机工作。OKVIS是另一种基于优化的滑动窗口算法.我们的算法与OKVIS在许多细节上是不同的,如技术部分所示。我们的系统具有鲁棒的初始化和闭环功能。我们使用MH-03和MH-05两种序列来证明该方法的性能。为了简化表示法,我们使用vins来表示我们只使用单目VIO的方法,而vins_loop表示含重定位和位姿图优化的完全版本。我们分别用OKVIS_Mono和OKVIS_stereo分别表示OKVIS使用单目和立体相机的结果。为了进行公平的比较,我们丢弃前100个输出,并使用接下来的150个输出对齐地面真值,并比较其余的估计器输出。

MH-03序列轨迹如图11所示。我们只比较平移误差,因为旋转运动在这个序列中是可以忽略的。图12显示了x,y,z误差与时间的关系,以及平移误差与距离的关系。在误差图中,具有回环的vins-mono具有最小的平移误差.我们在MH 05上观察到类似的结果。该方法具有最小的平移误差。平移和旋转误差如图14所示。由于该序列运动平稳,偏角变化不大,只发生位置漂移。显然,闭环可有效地约束累积漂移。OKVIS在滚动和俯仰角度估计方面表现更好。一个可能的原因是VINSMono采用了预积分技术,即IMU传播的一阶近似,以节省计算资源。

 

 

       vins-Mono在所有Euroc数据集中表现良好,即使在最具挑战性的序列中,V1-03包括剧烈性的运动、纹理减少的区域和显著的光照变化。由于采用了专用的初始化过程,该方法在V1-03中可以快速初始化。

       对于纯VIO,vin-Mono和OKVIS具有相似的精度,很难区分哪个比较好。然而,vins-Mono在系统级别上优于OKVIS。它是一个完整的系统,具有鲁棒的初始化和闭环功能来辅助单目视觉。

B. 室内试验

在室内实验中,我们选择实验室环境作为实验区域。我们使用的传感器套件如图15所示。它在DJIA3控制器中包含一个单目照相机(20Hz)和一个IMU(100 Hz)。我们手握传感器套件,在实验室以正常的速度行走。如图16所示,我们遇到行人,光线较弱,纹理较少,玻璃和反射。视频可以在多媒体附件中找到。

我们将我们的结果与OKVIS进行了比较,如图17所示。图17(a)是OKVIS的VIO输出。图17(b)是所提出的无回环方法的VIO结果。图17(c)是所提出的具有重定位和闭环方法的结果。当我们在室内循环时,会出现明显的漂移。OKVIS和只有VIO版本的vins-Mono在x,y,z和偏航角上积累了大量漂移.我们的重新定位和循环关闭模块有效地消除了所有这些漂移。

C. 大尺度场景

       1)走出实验室:我们在室内和室外混合的环境中测试vins-mono。传感器套件与图15所示的相同。我们从实验室的一个座位上开始,在室内空间里走来走去。然后我们下了楼梯,在大楼外的操场上走来走去。接下来,我们回到楼里上楼。最后,我们回到了实验室的同一个座位。整个轨道超过700米,持续约10分钟。在多媒体附件中可以找到实验的视频。

       轨迹如图19所示。图19(a)是OKVIS的轨迹。当我们上楼时,OKVIS显示出不稳定的特征跟踪,导致估计错误。我们看不到红色街区楼梯的形状。VINS-Mono的唯一结果如图19(b)所示.有闭环的轨迹如图19(c)所示。该方法的楼梯形状清晰。闭环轨迹与谷歌地图对齐,以验证其准确性,如图18所示。

       OKVIS x,y和z轴的最终漂移为[13.80,-5.26,7.23]米。VINS-Mono无闭环的最终方向为[-5.47,2.76,-0.29]m,占总轨迹长度的0.88%,小于OKVIS的2.36%。经回环修正,最终漂移有界于[-0.032,0.09,-0.07]m,与总轨迹长度相比,这是微不足道的。虽然我们没有地面真值,但我们仍然可以直观地检查优化后的轨道是否平滑,并能精确地与卫星地图对齐。

2)环游校园:这张环绕整个科大校园的非常大规模的数据集是用一个手持的VI-Sensor 4记录下来的。该数据集覆盖的地面长度约为710米,宽度为240米,高度变化为60米。总路径长度为5.62km。数据包含25赫兹图像和200赫兹IMU,持续1小时34分钟。对VINS-Mono的稳定性和耐久性进行测试是一个非常有意义的实验。

在这个大规模的测试中,我们将关键帧数据库的大小设置为2000,以提供足够的循环信息并实现实时性能。我们在3.60GHz的英特尔i7-4790 CPU上运行此数据集。表1显示时间统计数据。估计的轨迹与图20中的谷歌地图一致。与谷歌地图相比,我们的结果在这个非常长时间的测试中几乎没有漂移。

D. 应用1: 空中机器人反馈控制

如图21(a)所示,我们将vins-Mono应用于航空机器人的自主反馈控制。我们使用了一个具有752×480分辨率的前视全球快门相机(MatrixVisionMvBlueFOXMLC200w),并配备了190度鱼眼镜头。DJIA3飞行控制器用于IMU测量和姿态稳定控制。机载计算资源是3.00GHz 的Intel i7-5500 U CPU。传统的针孔摄像机模型不适用于大视场摄像机。我们使用MEI模型对此相机进行校准,由[43]中引入的工具包进行校准。

在本实验中,我们使用VINS_Mono的状态估计来测试自主轨迹跟踪的性能。在这个实验中,回环检测被禁止。使四旋翼跟踪一个数字8模式,每个圆圈半径为1.0米,如图21(b)所示。在轨迹周围设置了四个障碍物,以验证VINS-Mono无闭环的准确性。在实验过程中,四旋翼连续四次跟踪这一轨迹。100 Hz在板状态估计支持对四旋翼的实时反馈控制.

地面轨迹是用OptiTrack 5获得的。总弹道长度为61.97 m。最终漂移为[0.08,0.09,0.13]m,结果为0.29%的位置漂移。平移和旋转的细节以及它们相应的误差如图23所示。

E. 应用二:移动设备

我们将vins-Mono移植到移动设备上,并提供一个简单的AR应用程序来展示其准确性和鲁棒性。我们将我们的移动实现命名为vins-Mobile6,并将其与GoogleTangoDevice 7进行了比较,后者是移动平台上商业上最好的增强现实解决方案之一。

VINS-Mono运行在iPhone7Plus上。我们使用iphone采集的30 Hz图像,分辨率640×480,以及内置的InvenSenseMP67B 6轴陀螺仪和加速度计获得的100 Hz IMU数据。如图24所示,我们将iphone与一个启用Tango功能的联想phab 2 Pro一起安装。Tango装置使用全局快门、鱼眼相机和同步IMU进行状态估计。首先,我们在平面上插入一个虚拟立方体,该虚拟立方体是从估计的视觉特征中提取出来的,如图25(a)所示。然后,我们拿着这两个装置,以正常的速度在房间内外行走。当检测到回路时,我们使用四自由度姿态图优化.消除x,y,z和偏航漂移。

有趣的是,当我们打开一扇门时,Tango的偏航估计会跳到一个很大的角度,如图25(b)所示。其原因可能是由于不稳定的特征跟踪或主动故障检测和恢复而导致的估计器崩溃。然而,vins-Mono在这个具有挑战性的案例中仍然工作得很好。行走了了大约264米后,我们回到起点。最后的结果可以在图25(c)中看到,Tango的轨迹在最后一圈会漂移,而我们的vins会回到起点。通过对四自由度位姿图的优化,消除了总轨迹的漂移.这也证明了,与开始相比,立方体被标记到图像上的同一位置。

诚然,Tango比我们的实施更准确,尤其是对于局部状态的估计。实验结果表明,该方法可以在通用移动设备上运行,并且具有比较特殊工程设备的潜力。实验还证明了该方法的鲁棒性。视频可以在多媒体附件中找到。

 

X. 结论和未来工作

本文提出了一种鲁棒、通用的单目视觉惯性估计器.我们的方法既具有IMU预积分、估计器初始化和故障恢复,在线外部校准,紧耦合视觉惯性校正,重新定位,和有效的全局优化,是先进的和新颖的解决方案。我们通过与最先进的开源实现和高度优化的行业解决方案进行比较,显示出更好的性能。我们开放个人电脑和iOS的实现,以造福社会。

    虽然基于特征的VINS估计器已经达到了现实部署的成熟程度,但我们仍然看到了未来研究的许多方向。单目VINS可能会根据运动和环境而达到弱可观测甚至退化的状态。我们最感兴趣的是在线方法来评估单目vins的可观测性,以及在线生成运动规划来恢复可观测性。另一个研究方向是将单目VINS大规模部署在大量消费设备上,例如移动电话。这一应用要求在线校准几乎所有传感器的内部和外部参数,以及在线识别校准质量。最后,我们感兴趣的是制作由单目vins给出的稠密地图。我们在[44]中首次给出了用于无人机导航的单目视觉-惯性稠密地图。然而,为了进一步提高系统的精度和鲁棒性,还需要进行广泛的研究。

参考:

https://blog.csdn.net/pancheng1/article/details/81008081

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

VINS-MONO翻译以及理论推导系列(四):VIII全局位姿图优化、IX实验结果 的相关文章

  • 思岚A1M8激光雷达-ubuntu18.04-slam建图参考

    Rplidar A1 A2使用及Hector SLAM建图 NouriXiiX的博客 CSDN博客 激光雷达初体验 Ubuntu 18 04 43 思岚科技 RPLIDAR A1M8 43 ROS 上手使用 银时大魔王的博客 CSDN博客
  • intel Realsense D/T系列 kalibr标定

    kalibr官方源码GitHub ethz asl kalibr The Kalibr visual inertial calibration toolbox 鼠标下拉找到install follow the install wiki pa
  • gazebo仿真遇到的FCU问题

    当使用roslaunch xxx launch命令进行gazebo仿真时出现 FCU Preflight Fail Accel 0 uncalibrated或者FCU Preflight Fail Baro Sensor 0 missing
  • 大广角USB摄像头选用指南

    起因是我要做一个二维码引导无人机降落的实验 四旋翼无人机搭载单目下视摄像头 xff0c 用于识别地面的二维码 我选择摄像头的标准基本上只有一个 xff1a 视场角越大越好 为此查阅了一些资料 xff0c 买了很多镜头和底板 xff0c 有了
  • 一:XTDrone平台上将视觉SLAM2与gazebo仿真集合

    1 XTDrone仿真平台配置 参考官方教程 xff0c 基本没大问题 仿真平台基础配置 语雀 依赖安装sudo apt install y n https www yuque com xtdrone manual cn basic con
  • 线程和进程的区别

    不少刚看到这两个词 xff08 特别是不是计算机专业的 xff09 小伙伴可能会比较疑惑 xff0c 线程和进程有什么区别 xff0c 网上有许多专业性的解答 xff0c 但是既然不少小伙伴不是计算机专业的 xff0c 那就结合例子做个大概
  • Pixhawk烧写自己开发过的1.11.0固件连接不上QGC

    最近在更改代码烧写固件后 xff0c 飞控就连接不上地面站 xff0c 以为是飞控坏了 xff0c 烧写了最新版的固件发现有可以连接到地面站了 xff0c 又烧写了同一版本的其他代码发现也可以连接qgc xff0c 应该是自己写的代码某个部
  • C标准库string.h源码(简单版)

    C标准库string h源码 xff08 简单版 xff09 strcpy strncpystrcat strncatstrcmp strncmpstrchr strrchr strchrnul strstrmemcpy memmove s
  • 二进制浮点数以及二进制浮点数算术运算

    二进制浮点数以及二进制浮点数算术运算 二进制浮点数表示半精度浮点数单精度浮点数双精度浮点数特殊情况 浮点数的运算步骤一 对阶二 尾数运算三 结果规格化左规操作右规操作 四 舍入处理五 溢出判断六 例子二进制浮点数加法二进制浮点数减法二进制浮
  • SMPL源代码实现和模型解读

    对于SLAM的工作已经告一段落了 xff0c 传统的人体动态三维重建也要告一段落了 xff0c 由于课题研究的方向是基于图像 视频的人体三维重建 xff0c 三维shape pose的恢复 xff1a 所以今天和大家交流的是SMPL模型 x
  • 自主悬停&高度融合 作者:nieyong

    自主悬停 amp 高度融合 作者 xff1a nieyong 自主悬停是Crazepony玩家问得最多的问题 xff0c 也是技术难度最高的问题 首先我们明确什么是自主悬停 xff1f 下面是一位资深航模玩家对于自主悬停的解释 飞行器能够悬
  • 如何高效地阅读技术类书籍与博客

    原文地址 xff1a http www nowamagic net librarys veda detail 2050 如何高效地阅读技术类书籍与博客 影像阅读法 阅读是自我提升的一个有效方法 xff0c 阅读书籍 阅读博客都是我们技术提升
  • MP地面站二次开发教程(一)开发环境搭建和编译

    目录 基于Mavlink的上位机地面站开发教程 第一节 开发环境搭建 1 预编译 xff08 源码尽量放到非中文目录下面 xff09 2 初次编译 3 删除这个speech引用 xff0c 重新引用这个speech包 每个人的环境不一样 x
  • MP地面站二次开发教程(三)Mavlink通讯协议(1)

    目录 1 协议介绍 消息结构 消息解析 消息数据流 2 消息解析 3 指令发送 Mavlink主要是飞控和地面站之间的消息指令发送 xff0c 包含地面站解析飞控发来的mavlink数据流 xff0c 和地面站向飞控发送mavlink指令
  • pdf嵌入字体(不用adobe pdf打印机)

    外文会议 期刊投稿一般要求pdf中的字体应当是嵌入状态 xff0c 避免其他电脑缺失字体导致pdf文字无法正常显示 1 检查字体是否嵌入 可以用Adobe Reader或者Acrobat等pdf阅读器打开后 xff0c 查看 属性 gt 字
  • MP地面站二次开发教程(三)Mavlink通讯协议(2)协议使用

    目录 1 协议移植 2 协议代码框架 1 协议移植 移植MAVLINK库 xff0c 在写新的代码的时候添加到项目工程即可 2 协议代码框架 理解三个线程1 主界面UI线程 2 数据读取线程 3 MAVLINK数据填充线程 主要的类的理解
  • MP地面站二次开发教程(三)Mavlink通讯协议(4)地面站数据显示调试及其指令填充

    目录 1 利用SimpleExample和Mavlink inspector的调试使用 2 Mavlink设置模式指令的填充 3 Mavlink控制指令的填充 4 MAV CMD 在地面站做一些显示和指令写入的时候 xff0c 因为PX4和
  • MP地面站二次开发教程(三)Mavlink通讯协议(5)航点的上传

    目录 1 航点传输协议 航点的规划是地面站的核心功能 xff0c 航点的规划分为自动规划和手动规划 自动规划是根据设定规则自动规划好航点上传 手动规划是用鼠标在地图上点击规划航点 航点的规划具有逻辑验证 xff0c 不符合逻辑的航点 xff
  • QGC地面站二次开发(二)QGC 界面自定义和修改

    目录 1 QGC 地面站的显示机制 1 1 C 43 43 类注册为 qml 可访问类型 1 2 注册属性或者方法 1 1 1 属性声明 1 1 2 方法声明 2 QGC 地面站界面初步修改 3 QGC 地面站菜单和 LOGO 修改 3 1
  • QGC地面站二次开发(一)地面站介绍以及软件框架(1)地面站使用介绍和接口介绍

    目录 QGC界面显示框架 页面介绍 飞行页面 Application Setting页面 General Offline map 连接 Mock Link Vehicle Setup页面 Plan页面 航点和航测 电子围栏 Rally An

随机推荐