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

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

3天内不再提示

SLAM领域中的VIO(视觉惯性里程计)

新机器视觉 来源:ZjuerBooster 2023-09-07 16:57 次阅读

笔者在闲暇之余学习了SLAM相关的内容,深感机器人状态估计领域的博大精深。今天,笔者就抛砖引玉,谈谈SLAM领域中的VIO(视觉惯性里程计)。

初始SLAM

SLAM(Simultaneous Localization and Mapping),是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。SLAM可以解决自主运动的两大基本问题:

我在什么地方?——定位

周围环境是什么样子?——建图

定位与建图=内外兼修,定位侧重对自身的了解,建图侧重对外在的了解。

为什么用VIO?

单目视觉SLAM无法解决尺度问题,而将IMU估计的位姿序列与相机估计的位姿序列进行对齐可以恢复出相机轨迹的真实尺度;

视觉SLAM一般取第一帧作为世界坐标系,而IMU中的加速度计测量值包括重力向量,可以根据其将估计的位姿转换到垂直于地面的世界坐标系中;

IMU帧间积分得到的位姿可以预测出图像帧在下一时刻的位姿以及特征点在下一帧图像上的位置,并将其作为初值带入非线性优化中,减少优化迭代次数;

IMU测量可以提高视觉SLAM在某些复杂场景的鲁棒性,在于相机快速运动、动态障碍物、光线明暗变化明显、环境中纹理缺失等导致图像信息质量较差的情况下,利用IMU信息仍能得到有效的定位结果。

耦合的VIO

686ed1dc-4d5b-11ee-a25d-92fbcf53809c.png

根据状态向量中是否加入图像特征信息来判断是否为松紧耦合,如图所示,在VIO中将图像特征以及IMU的位置、方向、速度作为状态,构建非线性优化问题进行求解,采用梯度下降的方法同时对图像特征以及位置、方向、速度进行优化,从而得到对机器人状态的最优估计。

VIO的框架

68a2c00a-4d5b-11ee-a25d-92fbcf53809c.png

VIO过程可以用上图进行表示,其中,为路标点,,,为三个时刻相机的位置点,,,为三个时刻IMU的位置点。由于IMU存在着高斯白噪声以及导数服从高斯分布的偏置,相机也存在着光学畸变误差、机械误差等,因此无论是相机观测到的数据还是IMU测量的数据都不可靠。因为相机观测的数据以及IMU测量的数据具有一定的关联性,基于此构建优化问题,便可以得到对真实路标点的最优估计,同时也可以得到对IMU或者相机(机器人本体)的最优估计。

基于以上原理,VIO的优化问题可以表示为:

68c45a30-4d5b-11ee-a25d-92fbcf53809c.png

以上三项分别为边缘化的先验信息、IMU的测量残差、视觉的重投影误差。其中,视觉的重投影误差是指像素坐标(观测到的投影位置)与3D点按照当前估计的位姿进行第二次投影得到的位置相比较得到的误差。边缘化的先验信息是指边缘化后的剩余变量更新后的残差,具体的会在边缘化一节进行分析。

边缘化

要讲边缘化,首先大家要知道实际使用中SLAM的优化方法,它并不是对所有的观测进行优化,而是会构建一个窗口,只对窗口内观测到的状态值进行优化,这样可以大大的减少计算量以及优化的时间。但是由于在移动过程中,会不断的观测到新的状态,因此需要让构建的窗口滑动起来,从而能够包换最新观测到的状态,并且扔掉最早观测到的状态,这种优化方法叫做基于滑动窗口的优化方法。

但是,由于在连续的一些时刻中,相机可能会观测到用一个路标点,所以不能简单的扔掉之前观测到的状态值,需要其信息全部传递到之后的状态中。简单的说,这是一个求边际概率的问题,形如:

68e1c516-4d5b-11ee-a25d-92fbcf53809c.png

b可以指代为需要扔掉的最早观测到的状态。通过求解边际概率,最早观测到状态量信息便传递到了该滑动窗口剩余的状态量中。此后,我们通过讲最新观测到的状态量加入到滑动窗口中,便可以进行新一轮的非线性优化。

讲到了这里,我想大家已经能够理解边缘化的先验误差是什么了吧,没错,他就是通过上述求解边际概率方式更新后的误差,该误差加上最新观测到的状态量的误差,也就是IMU的测量误差以及相机的观测误差即可构建出上一节等式的优化问题。

写到最后

VIO不仅包含上述的非线性优化问题,还有其他的一些问题:

首先是VIO的初始化,初始化的目的是为了恢复单目相机的尺度信息,求解IMU的偏置,IMU与相机之间的转换关系,并将优化的坐标系转换到世界坐标系下(可根据重力加速度为g得到z轴)。

除了初始化,还有回环检测问题,基于优化的方法依旧会有误差,尤其是长时间运转后,因此可以通过检测观测到路标点是否之前已经观测到,构建回环,从而增强优化问题的约束,避免陷入局部极小值点,保证结果的最优性。

最后,就是建图模块了,根据优化后的状态量(机器人本体的位姿以及路标点的位置)可以构建出地图,从而用于机器人的导航。

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

    关注

    23

    文章

    419

    浏览量

    31782
  • VIO
    VIO
    +关注

    关注

    0

    文章

    11

    浏览量

    10124
  • IMU
    IMU
    +关注

    关注

    6

    文章

    298

    浏览量

    45667

原文标题:VIO从入门到精通(放弃)

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何去提高汽车里程计电路的抗干扰能力?

    里程计工作原理是什么?汽车里程计的受扰现象有哪些?
    发表于 05-19 07:26

    如何理解SLAM用到的传感器轮式里程计IMU、雷达、相机的工作原理与使用场景?精选资料分享

    视觉惯性里程计 综述 VIO Visual Inertial Odometry msckf ROVIO ssf msf okvis ORB-VINS VINS-Mono gtsam目录
    发表于 07-27 07:21

    请问如何理解SLAM用到的传感器轮式里程计IMU、雷达、相机的工作原理?

    请问如何理解SLAM用到的传感器轮式里程计IMU、雷达、相机的工作原理?
    发表于 10-09 08:52

    视觉里程计的详细介绍和算法过程

    在导航系统中,里程计(odometry)是一种利用致动器的移动数据来估算机器人位置随时间改变量的方法。例如,测量轮子转动的旋转编码器设备。里程计总是会遇到精度问题,例如轮子的打滑就会导致产生机器人移动的距离与轮子的旋转圈数不一致的问题。
    的头像 发表于 08-08 14:21 2.7w次阅读
    <b class='flag-5'>视觉</b><b class='flag-5'>里程计</b>的详细介绍和算法过程

    视觉语义里程计的详细资料说明

    鲁棒数据关联是视觉里程计的核心问题,图像间的对应关系为摄像机姿态和地图估计提供了约束条件。目前最先进的直接和间接方法使用短期跟踪来获得连续的帧到帧约束,而长期约束则使用循环闭包来建立。在这篇论文
    发表于 10-28 08:00 0次下载
    <b class='flag-5'>视觉</b>语义<b class='flag-5'>里程计</b>的详细资料说明

    VIL-SLAM系统可实现获得更好的回环约束

    本文提出的立体视觉+惯导+激光雷达的SLAM系统,在比如隧道一些复杂场景下能够实现良好性能。VIL-SLAM通过将紧密耦合的立体视觉惯性
    发表于 02-18 17:59 2262次阅读
    VIL-<b class='flag-5'>SLAM</b>系统可实现获得更好的回环约束

    计算机视觉方向简介之视觉惯性里程计

    VIO-SLAM Visual-Inertial Odometry(VIO)即视觉惯性里程计,有时也叫
    的头像 发表于 04-07 16:57 2533次阅读
    计算机<b class='flag-5'>视觉</b>方向简介之<b class='flag-5'>视觉</b><b class='flag-5'>惯性</b><b class='flag-5'>里程计</b>

    一种R3LIVE++的LiDAR惯性视觉融合框架

    R3LIVE++ 由实时运行的 LiDAR 惯性里程计 (LIO) 和视觉惯性里程计 (VIO)
    的头像 发表于 10-17 09:34 2260次阅读

    基于单个全景相机的视觉里程计

    本文提出了一种新的直接视觉里程计算法,利用360度相机实现鲁棒的定位和建图。本系统使用球面相机模型来处理无需校正的等距柱状图像,扩展稀疏直接法视觉里程计(DSO,direct spar
    的头像 发表于 12-14 14:53 808次阅读

    OV2SLAM(高速视觉slam)简析

    视觉里程计最近几年越来越受到学术界以及工业界的认可,以ORB和VINS为代表的视觉SLAM已经可以满足绝大多数场景,而OV2SLAM在其他V
    的头像 发表于 03-21 17:16 1535次阅读

    轮式移动机器人里程计分析

    但凡涉及到可移动的机器人的导航系统,大概率会涉及到里程计的计算,比如轮式移动机器人、无人机、无人艇,以及多足机器人等,而计算里程计的方案也有很多种,比如基于编码器合成里程计的方案、基于视觉
    的头像 发表于 04-19 10:17 1839次阅读

    介绍一种基于编码器合成里程计的方案

    摘要:本文主要分析轮式移动机器人的通用里程计模型,并以两轮差速驱动机器人的里程计计算为案例,给出简化后的两轮差速驱动机器人里程计模型。
    的头像 发表于 04-19 10:16 2137次阅读

    介绍一种新的全景视觉里程计框架PVO

    论文提出了PVO,这是一种新的全景视觉里程计框架,用于实现场景运动、几何和全景分割信息的更全面建模。
    的头像 发表于 05-09 16:51 1780次阅读
    介绍一种新的全景<b class='flag-5'>视觉</b><b class='flag-5'>里程计</b>框架PVO

    在城市地区使用低等级IMU的单目视觉惯性车轮里程计

    受简化惯性传感器系统(RISS)[23]的启发,我们开发了视觉惯性车轮里程计(VIWO)。具体而言,我们将MSCKF中的系统模型重新设计为3DRISS,而不是INS,使用
    的头像 发表于 06-06 14:30 1531次阅读
    在城市地区使用低等级IMU的单目<b class='flag-5'>视觉</b><b class='flag-5'>惯性</b>车轮<b class='flag-5'>里程计</b>

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

    精确和鲁棒的初始化对于视觉惯性里程计(VIO)至关重要,因为不良的初始化会严重降低姿态精度。
    的头像 发表于 11-01 10:16 190次阅读
    基于旋转平移解耦框架的<b class='flag-5'>视觉</b><b class='flag-5'>惯性</b>初始化方法