译文:Trifo-VIO: Robust and Efficient Stereo Visual Inertial Odometry using Points and Lines
Trifo-VIO: Robust and Efficient Stereo Visual Inertial Odometry using Points and Lines
摘要 - 在本文中,我们介绍了Trifo Visual Inertial Odometry(Trifo-VIO),一种使用点和线的紧耦合滤波双目VIO系统。当无法可靠地检测或跟踪点特征时,线特征有助于在挑战性场景中提高系统稳健性,例如,低纹理环境或照明变化。此外,我们提出了一种新颖的基于轻量级滤波的闭环技术,可以在不进行全局束调整或姿势图优化的情况下减少累积漂移。我们在EKF更新时制定循环闭包,以便将过滤器维护的当前滑动窗口最佳地重新定位到过去的关键帧。我们还提供了Trifo Ironsides数据集,这是一个新的视觉惯性数据集,具有来自Ironsides传感器[3]的高质量同步双目相机和IMU数据,具有各种运动类型和纹理以及毫米级精度的groundtruth。为了验证所提出系统的性能,我们使用公共EuRoC数据集和Trifo Ironsides数据集对最先进的方法(OKVIS,VINS-MONO和S-MSCKF)进行了广泛的比较。
I. INTRODUCTION
运动跟踪是各种应用的基石,例如机器人,自动驾驶,AR / VR等。由于相机和惯性测量单元(IMU)的互补特性以及这些传感器在智能手机中的可用性以及 现成的即插即用设备[3],[4],视觉惯性里程计(VIO)近年来变得流行。 使用VIO的众所周知的例子是Apple ARKit [1]和Google ARCore [2]。
有两种常用的方法可以对VIO方法进行分类。 基于视觉和惯性测量融合的时间,VIO方法可分为松耦合和紧耦合方法。 松耦合方法[22],[28],[37]独立地估算图像和惯性测量的运动,然后将两个估计融合以获得最终估计。 紧耦合方法[11],[18],[19]直接在测量级融合视觉和惯性数据,以联合估计所有IMU和摄像机状态。 虽然松散耦合是灵活的并且往往更有效,但紧耦合方法通常会产生更准确和稳健的运动估计。我们提出的Trifo-VIO是一种紧耦合方法。
基于视觉和惯性测量的融合方式,VIO方法可分为基于过滤和基于优化的方法。 基于滤波的方法[19],[33]通常采用扩展卡尔曼滤波器(EKF),其中通过积分IMU测量来进行状态传播/预测,并且通过视觉测量来驱动更新/校正。 相反,基于优化的方法[18],[27]使用批次非线性优化来直接最小化IMU测量的积分运动与经典重投影误差最小化估计的相机运动之间的误差。通常,基于优化的方法由于重复线性化而更准确但计算上更昂贵。有些方法结合了两种方法的优点。 例如,PIRVS [41]迭代地执行EKF更新以进行有效的运动估计,同时在后端使用优化(束调整)以减少长期漂移。 我们提出的Trifo-VIO是一种高效的基于滤波的VIO,其广泛评估所证明的准确性与最先进的基于优化的方法处于同一水平甚至更好。
上面提到的大多数VIO方法仅依赖于点特征,例如 FAST [29],Shi-Tomasi [31],作为中间图像测量。 这些方法的性能在低纹理环境中或在无法可靠地检测或跟踪点特征的情况下遭受相当大的损失,例如, 照明变化。 然而,许多这种低纹理环境包含富含线性形状的平面元素[14],并且边缘的检测对自然界中的光照变化不太敏感。 因此,在提出的Trifo-VIO中,除了点特征之外,我们还提取线段特征作为有用的图像测量,以增加可用于挑战场景的运动约束,从而产生更好的系统鲁棒性。 通过使用多状态约束卡尔曼滤波器(MSCKF)[23],在滑动窗口上处理立体点和线特征,其成本仅为线性特征。
此外,与SLAM(同时定位和映射)系统相比,视觉或视觉惯性测距系统通常以更快的速度操作但更容易漂移,因为测距系统不保持持久的环境地图。 因此,在提出的Trifo-VIO中,我们引入了一种轻量级闭环方法,以减少长期漂移,而无需任何计算上昂贵的地图优化,例如: 捆绑调整(BA)。
我们总结了我们的贡献如下:
据我们所知,所提出的Trifo-VIO方法是第一个使用点和线特征的基于紧耦合滤波的立体声VIO。
我们引入了一种新颖的基于轻量级过滤的循环闭包方法,该方法被公式化为EFK更新,它最佳地将过滤器维护的当前滑动窗口重新定位到检测到的循环。
我们对Trifo-VIO进行了广泛的评估,并与最先进的开源VIO方法(包括OKVIS [18],VINS-MONO [27]和最近使用EuRoC的S-MSCKF [33]进行了比较 数据集和我们新的Trifo Ironsides数据集。
我们发布了使用Ironsides [3]捕获的Trifo Ironsides数据集,这是一种具有同步立体相机和IMU数据的高质量设备,具有来自机器人手臂的毫米级精确地面数据。数据集可在https://github.com/TrifoRobotics/IRONSIDES/wiki/Dataset.上获得。
II. RELATED WORK
在本节中,我们将根据线或边缘特征和循环闭合来回顾里程计或SLAM方法的现状。
PL-SLAM [26]建立在ORB-SLAM [25]的基础之上,并扩展其公式以处理单眼设置中的点和线相关性。 类似地,另一个基于点和线的联合作品[14],也被称为PL-SLAM,旨在双目摄像机设置,并且另外引入了使用点和线描述符的词袋(BoW)位置识别方法。 用于回环检测。在[34]中,Tarrio和Pedre提出了一种基于边缘的单目相机视觉测距法,简单地扩展到使用陀螺仪之前的旋转作为边缘对齐误差最小化中的正则化项。 最近,Ling等人通过距离变换域中的边缘对齐提出了一种紧密耦合的基于优化的VIO [20]。
在丰富的基于过滤的VIO文献中,使用边缘或线条特征的作品并不多。 沿着这条线的最早的工作之一是[17],它仅使用线观测来更新滤波器并进行可观测性分析。 在[38]中,作者使用新的线参数化扩展[17],显示出更好的线性特性并支持滚动快门相机。 [39]中引入的边缘参数化允许非直线轮廓。 与[17]和[38]类似,我们使用直线段。
直接方法,如LSD-SLAM [10],DSO [9],依赖于高梯度区域的图像强度,包括但不限于特征和边缘的图像区域.Usenko等。 [35]通过最小化组合的光度和惯性能量功能,扩展LSD-SLAM的仅视觉配方以与IMU紧密耦合。ROVIO [5],[6]是一种基于直接滤波的VIO方法,使用图像块的光度误差作为EKF更新中的创新术语。 在某种程度上,我们对线要素的使用在于直接和基于特征的方法之间。 尽管无功能操作的优势,直接方法依赖于亮度恒定性假设,通常遭受环境照明变化和相机增益和曝光设置。 相比之下,尤其是ROVIO,我们使用点重投影误差和点到线距离作为滤波器更新创新而不是光度误差。
漂移是SLAM和测距方法中的一个内在问题。已经证明,闭环已经证明对于校正漂移是有效的,而现有技术方法通常采用全局姿态图优化[25],[27],[14]。 特别是,VINS-MONO [27]引入了一个两步循环闭包方法:(1)局部紧耦合重新定位,使滑动窗口与过去的姿势对齐,以及(2)全局姿态图优化。 我们的轻量级闭环类似于VINS-MONO采用的第一步,除了我们在过滤框架中实现它并且我们排除了效率的全局优化。 据我们所知,它是第一个基于紧耦合滤波的循环闭包方法。 此外,我们提出的Trifo-VIO在一致的过滤框架中处理立体点和线路功能以及闭环。
III. ESTIMATOR DESCRIPTION
我们的估算器的主干是MSCKF,其主要思想是使用特征轨迹观察来维护和更新相机姿势的滑动窗口,而不包括滤波器状态中的特征[23]。 相反,3D特征位置通过最小二乘多视图三角测量估计并随后被边缘化,这在某种程度上类似于无结构BA。 这样做的好处是大大降低了计算成本,使得MSCKF的复杂度在特征数量上呈线性,而不是像EKF-SLAM那样的立方体[8]。
我们介绍了两种类型的EKF更新:(1)基于联合点和线特征的更新以应对具有挑战性的场景并增强鲁棒性,以及(2)循环关闭更新以减少累积漂移。 在OC-EKF [15]之后,通过使用可观察性Gramian的右零空间来修复过滤器的一致性,以在每个传播和更新步骤中修改状态转移矩阵和观察矩阵。
A. State Parameterization
我们遵循[23]并定义不断发展的IMU状态如下:


在时间k,我们的估计器的完整状态包括当前的IMU状态估计和N个摄像机姿势

我们使用误差状态表示来最小化参数化3自由度(DOF)中的方向并避免奇点[32]。具体而言,对于位置,速度和偏差,采用标准加性误差,而对于方向,采用组成更新

B. EKF Propagation
每当接收到新的IMU测量时,它用于传播EKF状态和协方差估计。我们使用标准的连续时间IMU运动学模型如下

w是角速度,a是线加速度,分别是从陀螺仪和加速度计去除偏差后得到的,R表示四元数q的旋转矩阵,是由角速率形成的斜对称矩阵。

我们的离散时间实现采用四阶Runge-Kutta数值方法。我们忽略了模型中的地球自转速率,因为大多数MEMS IMU由于陀螺仪偏置不稳定性和噪声而无法检测到它们。为简单起见,我们还省略了状态转移矩阵和协方差传播的描述。 有兴趣的读者请参考[23]。
C. Measurement Model for Point Features
之后,我们通过零空间投影边缘化特征位置,使其与状态解相关。
到目前为止,我们已经描述了单目相机的测量模型。一个棘手的部分是3D特征位置的估计,其通常通过最小二乘方式的多视图三角测量来计算。在观察相同特征的摄像机中必须有足够的基线才能进行三角测量。因此,单目MSCKF不能估计特征的3D位置,也不能在静态或经历旋转主导运动时进行EKF更新。这促使我们采用更实用的立体摄像机设置来克服这一限制,从中我们也可以轻松获得真正的尺度。对于立体声特征测量,我们采用简单而有效的表示,类似于[33],


D. Measurement Model for Line Features
我们现在提出用于更新状态估计的线要素的测量模型。
E. EKF Update: Point and Line Features
我们采用与[23]类似的更新策略:每当不再跟踪点和/或线特征,或者滑动窗口大小超过预定义的最大大小时,触发EKF更新。点和线特征随后被边缘化,因为它们的位置与状态估计X直接相关。这使得算法复杂度在特征数量上是线性的。通过使用特征雅可比行列的左零空间来执行边缘化,其消除线性化残差中的特征项。然后,我们堆叠变换的残差和点和线的状态雅可比行列,以形成最终的残差和观察矩阵。
F. EKF Update: Loop Closure
为了减少累积漂移,同时对于无法承受全球BA的资源受限平台有效,我们提出了一种新颖的轻量级闭环方法,该方法被公式化为本机EKF更新。如将在部分V中描述的,当将新的相机状态添加到滑动窗口时,如果选择,我们在并行线程中执行关键帧选择和触发循环检测。如果在关键帧仍在滑动窗口中时检测到循环,则将触发循环关闭更新。否则,关键帧将与其特征描述符和3D位置一起添加到数据库中。
由于循环检测建立了当前关键帧与过去之间的特征匹配,因此我们使用过去关键帧中的特征位置进行EKF更新,而不是使用经历漂移的当前姿势对它们进行重新排列。更新过程与具有点要素的更新几乎相同,除了我们将这种循环闭包特征的3D位置视为先验知识,因此不执行特征边缘化。这是有道理的,因为这样的“地图”点在过去与被插入到循环检测数据库中的关键帧一起被边缘化。
如图3所示,通过闭环更新有效地校正累积的漂移。在EKF更新时进行循环闭合的好处是,只要跟踪循环闭合特征,就可以在多个连续的相机帧中逐步校正漂移,而不是立即在随后的姿势估计中引入突然的大跳跃,并且不希望 闭环控制,例如 无人机。虽然引入的循环结束更新类似于[24]和[41],其中采用基于地图的更新,但是它们的地图要么是预先建立的,要么是通过昂贵的BA在单独的线程中在线估计的。

浙公网安备 33010602011771号