0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于旋转平移解耦框架的视觉惯性初始化方法

3D视觉工坊 来源:3D视觉工坊 2024-11-01 10:16 次阅读

来源:3D视觉工坊

1. 导读

精确和鲁棒的初始化对于视觉惯性里程计(VIO)至关重要,因为不良的初始化会严重降低姿态精度。在初始化期间,估计诸如加速度计偏差、陀螺仪偏差、初始速度和重力等参数是至关重要的。IMU传感器需要精确估计陀螺仪偏差,因为陀螺仪偏差会影响旋转、速度和位置。现有的VIO初始化方法大多采用运动结构法来解决陀螺漂移问题。然而,SfM在快速运动或退化场景中不够稳定和有效。为了克服这些限制,我们通过添加新的不确定性参数和优化模块来扩展旋转-平移-解耦框架。首先,我们采用一种陀螺仪偏置优化器,它结合了概率法向极线约束。其次,我们融合IMU和视觉测量来有效地求解速度、重力和比例。最后,我们设计了一个额外的细化模块,有效地减少重力和比例误差。在EuRoC数据集上的大量初始化测试表明,我们的方法将陀螺仪偏差和旋转估计误差分别平均降低了16%和4%。它还显著降低了重力误差,平均降低了29%。

2. 引言

视觉惯性里程计(VIO)旨在在各种未知环境中估算相机的位置。它通过融合来自相机的图像信息和来自惯性测量单元(IMU)传感器的IMU测量数据来实现这一目标。相机可以估计视觉地图并减少姿态漂移。IMU传感器为相机运动提供度量尺度,并具备短期鲁棒性。VIO具有诸多优势,如体积小、成本低、功耗低。这些特性使得VIO在虚拟现实、增强现实和自动化机器人等领域的应用日益广泛。

为了有效运行VIO系统,必须在初始化阶段准确估计一组参数。这些参数包括尺度、重力方向、初始速度和加速度计及陀螺仪的偏差。初始化不正确将导致收敛性差和系统其他参数估计不准确。另一方面,快速初始化也很重要,因为VIO系统必须在IMU正确初始化后才能工作。

基本上,以往的VIO初始化工作可分为紧耦合和松耦合方法。紧耦合方法假设相机的姿态可以通过IMU测量进行近似。它们将视觉观测与IMU积分相融合,并通过封闭形式的解来估计初始化参数,这可能会增加计算成本。此外,这些方法通常忽略陀螺仪偏差,这可能会影响准确性。松耦合方法假设通过视觉结构从运动恢复(SfM)获得的相机轨迹非常准确。首先,它们解决视觉SfM问题,并根据得出的相机姿态初始化惯性参数。因此,这些方法的准确性在很大程度上依赖于视觉SfM的性能。然而,在相机快速运动或共同特征点太少的情况下,视觉SfM可能会变得不稳定。

总体而言,紧耦合和松耦合方法都未能充分利用相机和IMU之间的互补信息。具体而言,紧耦合方法未利用视觉观测来估计陀螺仪偏差,这可能会导致数值稳定性问题和准确性降低。松耦合方法未使用IMU测量来增强视觉SfM的稳定性,从而在具有挑战性的运动场景中导致准确性低或初始化失败。受图像观测可直接用于优化图像帧之间旋转的启发[12],提出了一种旋转-平移解耦的VIO初始化方法。该方法增强了视觉观测与IMU测量之间的联系。然而,这种方法忽略了图像特征匹配的质量。在最终结果中,每个匹配都被赋予相同的权重。尽管已从特征匹配中去除异常值,但2D特征对应点的误差分布随图像内容和具体匹配技术而变化。因此,考虑2D特征匹配的不确定性至关重要。

3. 效果展示

MH02数据集和MH03数据集的角速度和标度误差可视化。第一行图像是MH02,第二行图像是MH03。列(a)显示了基于角速度着色的相应数据集的轨迹。列(b)和(c)分别显示了我们的方法和DRT-t方法基于相应数据集上着色的尺度误差的轨迹。刻度误差在0和1之间。颜色越浅,误差越小。

5818d68c-966d-11ef-a511-92fbcf53809c.png

4. 主要贡献

为了克服SfM的局限性并提高初始化准确性和鲁棒性,我们在考虑概率法正态极线约束(PNEC)的情况下估计陀螺仪偏差。该方法通过考虑特征点的异性和非均匀不确定性来提高陀螺仪偏差估计的准确性。基于旋转-平移解耦框架,我们首先解决旋转问题。然后,我们使用线性全局平移约束(LiGT)解决平移问题。最后,我们通过求解最小二乘问题来估计速度、尺度和重力。为了进一步提高尺度和重力的准确性,我们还引入了一个改进的尺度和重力细化模块。推荐课程:彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战。

5. 方法

陀螺仪偏差的准确估计在提高VIO系统轨迹准确性方面起着核心作用。偏差会影响旋转,进而影响平移和速度的积分。在本节中,我们提出了一种能够准确求解初始化参数的方法,这些参数包括陀螺仪偏差、速度、重力和尺度。初始化过程分为以下四个步骤:(1)陀螺仪偏差估计,(2)旋转和平移估计,(3)尺度、速度和重力估计,以及(4)尺度和重力细化。

正态极线约束(NEC)的几何特性以及陀螺仪偏差与NEC之间的关系。法向量n1和n2垂直于包含f1i(f2i)和f1j(f2j)(红色和绿色)的极平面,且所有法向量位于同一平面(黄色)内,形成一个可用于求解旋转Rcicj(橙色)的约束。通过将外部参数Rbc(蓝色)引入,求解Rcicj的问题转化为求解陀螺仪偏差(粉色)的问题。

583bd01a-966d-11ef-a511-92fbcf53809c.png

6. 实验结果

5851e26a-966d-11ef-a511-92fbcf53809c.png

587483ce-966d-11ef-a511-92fbcf53809c.png

588df318-966d-11ef-a511-92fbcf53809c.png

7. 总结 & 未来工作

我们提出了一种基于旋转-平移解耦框架的鲁棒且精确的视觉-惯性初始化方法。

通过建立概率正态极线约束,我们推导出了一个新的陀螺仪偏置估计公式,该公式直接利用视觉观测结果并计算特征点位置的不确定性。然后,基于惯性测量单元(IMU)和视觉测量值建立最小二乘问题,以估计速度、尺度和重力。最后,我们引入了一个改进的尺度-重力优化模块。

大量的初始化实验表明,我们的方法在保持高计算效率的同时,提高了准确性和鲁棒性。该方法的一个局限性在于没有考虑加速度计偏置对速度和尺度的影响。未来,我们将研究一个涵盖加速度计偏置的尺度-重力优化模块。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 陀螺仪
    +关注

    关注

    44

    文章

    783

    浏览量

    98660
  • IMU
    IMU
    +关注

    关注

    6

    文章

    306

    浏览量

    45725
  • 惯性测量单元

    关注

    2

    文章

    44

    浏览量

    10439

原文标题:误差降低29%!超越VINS!鲁棒高效的视觉惯性初始化!解锁VIO新模式!

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    视觉定位,旋转平移的问题:

    视觉定位,旋转平移的问题,旋转中心不在法兰盘中心的问题,图解。方法,公式如下
    发表于 09-01 20:36

    手机模块初始化向导

    手机模块初始化向导:为了刚好的对手机模块进行初始化,所以把最基本的向导写下来.本向导适用于本公司的西门子TC35I和华为GT9000模块。一、在初始化手机模块前,请先确定DT
    发表于 09-18 09:41 17次下载

    基于SQL的数据库初始化通用方法

    如何对开发的网络测量系统的数据库部分进行初始化,一直是影响测量系统使用的一个难题。文章总结了几种对应用程序的数据库部分进行初始化安装的方法,比较了它们的不足,提出
    发表于 09-26 17:07 0次下载

    RDA1846S初始化设置

    RDA1846S初始化设置RDA1846S初始化设置RDA1846S初始化设置
    发表于 01-15 17:08 0次下载

    LCD1602初始化流程图及程序的两种方法

    本文介绍LCD1602初始化程序及其LCD1602初始化流程、具体步骤实现的两种方法,供电子爱好者及实验使用。
    发表于 10-08 10:01 4.8w次阅读
    LCD1602<b class='flag-5'>初始化</b>流程图及程序的两种<b class='flag-5'>方法</b>

    UCOS_III_配置与初始化

    UCOS_III_配置与初始化
    发表于 12-20 22:53 5次下载

    objc源码中NSObject如何进行初始化

    + alloc 和 - init 这一对我们在 iOS 开发中每天都要用到的初始化方法一直困扰着我, 于是笔者仔细研究了一下 objc 源码中 NSObject 如何进行初始化。 在具体分析对象
    发表于 09-26 09:58 0次下载

    基于WRED协议的TCP连接初始化的优化方法

    的优化方法。该方法解决了连接优化的三个关键问题:如何识别和标记SYN包,如何在交换机上为SYN包预留空间以及需要预留多少空间。与原TCP相比,优化后TCP连接建立的时间极大地减少。实验表明TCP连接初始化优化
    发表于 11-29 14:18 0次下载
    基于WRED协议的TCP连接<b class='flag-5'>初始化</b>的优化<b class='flag-5'>方法</b>

    8259a初始化的步骤及代码介绍

    本文首先介绍了8259a工作初始化的步骤及程序,其次介绍了通过OCW对8259A进行操作方法,最后介绍了8259A初始化编程。
    的头像 发表于 05-23 14:24 3w次阅读
    8259a<b class='flag-5'>初始化</b>的步骤及代码介绍

    8253初始化程序分享_8253应用案例

    本文首先介绍了8253概念及8253各通道的工作方式,其次详细介绍了8253初始化要求及编程,最后用一个例子介绍了8253的初始化程序。
    发表于 05-23 15:52 2.2w次阅读
    8253<b class='flag-5'>初始化</b>程序分享_8253应用案例

    在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决

    本文档的主要内容详细介绍的是在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决。
    发表于 08-20 17:31 0次下载
    在51平台下<b class='flag-5'>初始化</b>文件的引入导致全局变量无法<b class='flag-5'>初始化</b>的问题如何解决

    如何有效地对神经网络参数进行初始化

    确保均值为零,并保持每层输入方差值不变,可以保证信号不会爆炸或消失。该方法既适用于前向传播(用于激活),也适用于向后传播(用于关于激活的成本梯度)。这里建议使用Xavier初始化(或其派生初始化
    的头像 发表于 05-15 08:59 4112次阅读
    如何有效地对神经网络参数进行<b class='flag-5'>初始化</b>

    华为技术有限公司公开“智能驾驶系统初始化方法和装置”专利

    2月1日消息,企查查APP显示,1月29日,华为技术有限公司公开“智能驾驶系统初始化方法和装置”专利,公开号为CN110723151B。 该专利摘要显示,本申请公开了一种智能驾驶系统初始化方法
    的头像 发表于 02-01 15:52 1789次阅读

    ADC初始化测定方法

    测试ADC初始化时间的方法
    发表于 12-05 14:45 1次下载

    实战经验 | Keil、IAR、CubeIDE 中变量不被初始化方法

    关键词:不被初始化,编译环境 目录预览 1、前言 2、IAR 实现变量不初始化方法 3、Keil 实现变量不被初始化方法 4、CubeIDE
    的头像 发表于 11-24 18:05 4206次阅读