0. 简介

在此之前博主对Fast-LIO2R3LIVE进行了系统性的学习。最近文章《Fast and Tightly-coupled Sparse-Direct LiDAR-Inertial-Visual Odometry》提出了FAST-LIVO,这是一种快速LiDAR惯性-视觉里程计系统,它建立在两个紧耦合的直接里程计子系统之上:VIO子系统和LIO子系统。LIO子系统将新扫描的原始点(而不是边缘或平面上的特征点)添加到增量构建的点云地图中。这些地图点还额外关联了图像块,VIO子系统使用点云地图附加的图像块,在不提取任何视觉特征(例如ORB或FAST角点特征)的情况下最小化直接光度误差,以此来对齐新图像。 为了进一步提高vio系统的鲁棒性和准确性,作者提出了一种新的方法来剔除边缘或者在视觉中遮挡的地图点。 这里的代码也已经完成了开源,在Github上可以找到。

1. 文章贡献

在机器人技术中使用的传感器中,相机、激光雷达和惯性测量单元(imu)可能是SLAM任务中使用最广泛的传感器。几个最近的激光雷达惯性视觉里程测量系统(LIVO)。它们联合融合状态向量,但分别处理每个数据,而不考虑它们的测量级耦合。这样的系统通常会占用大量的计算资源。为了解决这一问题,我们提出了一种快速、紧密耦合的稀疏直接激光雷达惯性视觉测程系统(fast - livo),结合稀疏直接图像对齐和直接原始点配准的优点,在降低计算成本的情况下实现准确可靠的姿态估计。本文的贡献如下::

  1. 一个紧凑的lidar惯性视觉里程计框架,它建立在两个直接且紧密耦合的里程计系统上:LIO子系统和VIO子系统。这两个子系统通过将各自的激光雷达或可视化数据与imu融合,共同估计系统状态。
  2. 一个直接高效的VIO子系统,最大限度地重用LIO子系统中构建的点云图。具体来说,地图中的点会与之前观测到的图像块关联,通过最小化直接光度误差,将点投影到新图像上来对齐其姿态(因此是完整的系统状态)。VIO子系统中的LiDAR点云重用避免了视觉特征的提取,三角化以及优化,并在测量层面上将两个传感器耦合起来。
  3. 本系统实现了开源,可以在Intel或ARM处理器上实时运行,并支持多线旋转激光雷达和具有完全不同扫描模式的新兴固态激光雷达。
  4. 在开放数据序列(NTU-VIRAL)和我们定制的设备数据上验证开发的系统。结果表明,该系统能够以较低的计算成本处理具有挑战性的传感器退化环境。

2. 详细内容

首先我们来看一下整个框架,本文采用表1中的定义方法。 在这里插入图片描述 我们的系统概述如图1所示,其中包括LIO子系统(蓝色部分)和VIO子系统(红色部分)两个子系统。LIO子系统首先通过后向传播[24]对激光雷达扫描中的运动失真进行补偿,然后计算帧-映射点-平面残差。类似地,VIO子系统从视觉全局地图中提取当前FoV中的视觉子地图,并丢弃子地图中的离群点(被遮挡或深度不连续的点)。然后,进行稀疏直接视觉对齐以计算帧到地图的图像光度误差。在误差状态迭代卡尔曼滤波器中,激光雷达点面残差和图像光度误差与IMU传播紧密融合。融合后的姿态用于在全局地图上添加新的点。

在这里插入图片描述

2.1 boxplus“ ”和boxminus“ ”操作符

在本节中,我们使用“ ”和“ ”运算来表示流形 上的状态误差,对于本文考虑的 ,我们有: 在这里插入图片描述

其中 , 表示由Rodrigues公式3导出的旋转矩阵与旋转向量之间的双向映射。

2.2 状态转移模型

在我们的系统中,我们假设三个传感器(LiDAR, IMU和摄像头)之间的时间偏移是已知的,可以提前校准或同步。我们将IMU框架(设为 )作为主体框架,将第一主体框架作为全局框架(设为 )。此外,我们假设三个传感器刚性连接在一起,并对表I中定义的外部元件进行了预校准。那么,第i次IMU测量时的离散状态转移模型: 在这里插入图片描述 其中 为IMU采样周期,状态 、输入 、过程噪声 、函数 定义如下: 在这里插入图片描述

其中 表示IMU在全局坐标系中的姿态和位置, 为全局坐标系中的重力矢量, 为IMU的原始测量值, 中的测量噪声, 为IMU偏差,分别建模为高斯噪声 驱动下的随机游走

2.3 Frame-to-map 测量模型

文中的前向传播和误差传播Fast-Lio2类似,这里就不讲了,我们直接看一下。

  1. LiDAR测量模型:如果在tk时刻接收到激光雷达扫描,我们首先进行[24]中提出的反向传播来补偿运动失真。 是去除运动畸变后的点云。我们假设每个点都位于地图中的一个临近平面上,使用预测状态将点云变换到世界系后,利用ikdtree找到临近的五个点计算法向量 和中心点 。如果使用真值状态(比如姿态) 将LiDAR局部坐标系中表示的测量 转换到全局坐标系中,则残差应为零: 在这里插入图片描述

在实际操作中,为了找到相邻平面,我们将 转换为全局框架,使用预测状态 通过 ,并在LiDAR全局地图中以增量kd-tree结构(ikd-tree[16])组织的5个点来拟合一个平面。(4)式定义了状态 的隐式测量模型。为了考虑 中的测量噪声,方程被一个因子 加权。

  1. 稀疏直接视觉对齐测量模型:与[15]中的帧对帧图像对齐不同,我们采用从粗到细的方式最小化光度误差,进行稀疏直接帧对地图图像对齐,如图2所示。具体来说,如果在时间 接收到图像,我们从全局可视映射中提取映射点 ,这些映射点是从全局视觉地图中提取到的属于当前图像fov的地图点(参见V-B.2节)。对于每个地图点 ,它已经附加了之前不同图像中观测到的patch(参见章节V-B),我们选择图像中包含的与当前图像观测角度最近的点的patch作为参考patch(记为 )。然后,将地图点 变换为当前图像 与基真状态(即位姿) ,则当前图像中 与各自路径之间的光度误差应为零: 在这里插入图片描述

其中 为针孔投影模型。(5)中的方程定义了状态 的另一种隐式测量模型,并在三个层次上进行了优化(见节IV-E),其中在每个层次上,当前图像和参考路径是从前一个图像和参考路径中采样的一半。优化从最粗的一层开始,收敛一层后,再进行下一层的优化。为了考虑图像Ik中的测量噪声,方程被一个因子 加权。

  1. 地图管理,我们的地图由LIO子系统的点云地图(LiDAR全局地图)和附有patch的点地图(VIO子系统的视觉全局地图)组成。其中LiDAR全局地图由所有过去的3D点组织成增量k-d树结构ikd-Tree。视觉全局地图是先前观察到的LiDAR点的集合,每个点都关联了多个来自观察它的图像块。

在这里插入图片描述

3. 参考链接

https://blog.csdn.net/Yong_Qi2015/article/details/124009925

https://zhuanlan.zhihu.com/p/581697066