RUSSO 文章理解
RUSSO: Robust Underwater SLAM With SonarOptimization Against Visual Degradation文章理解
这是我第一次进行声呐和视觉和IMU融合的文章记录,以后要经常记录,要不然我看的论文都忘记了 呜呜呜
首先介绍一下这篇论文的主要目的,从题目中就可以看出来,文章是在视觉加IMU出现视觉退化的情况下(视觉特征点提取少于8个)转换到声呐加IMU的位姿计算中。
下面我们介绍一下这篇文章的4个创新点:
- 据作者所知这是当时的首个声呐加IMU加视觉融合的工作。
- 本文提出一种新型IMU传播优化方法,通过在视觉退化期间利用声纳姿态估计提供良好先验信息,从而提升IMU传播精度并降低定位漂移
- 为解决复杂环境下视觉初始化失败的问题,本文提出了一种鲁棒的SLAM初始化方法,该方法直接利用成像声纳两帧之间的位姿估计进行初始化。
- 我们开展了从水下模拟器到真实实验室泳池及开阔海域的广泛实验,这些实验验证了所提出的 RUSSO 系统在视觉退化环境中的鲁棒性与准确性。
下面我们根据他的创新点进行详细的讲解(啊吧啊吧)。
第一个我们就不说了,第二个和第三个我们合在一起讲解。首先展示一下整体系统的架构图:
这个图还是很好理解的,只有一定的slam基础都可以明白各个模块的作用是什么,这是一个紧耦合系统,统一优化状态。其中机器人状态定义为:
xR=[qwbTpwbTvwbTbgba]T∈SO(3)×R3×R9 \mathbf{x}_R = \begin{bmatrix} \mathbf{q}_{wb}^T & \mathbf{p}_{wb}^T & \mathbf{v}_{wb}^T & \mathbf{b}_g & \mathbf{b}_a \end{bmatrix}^T \in SO(3) \times \mathbb{R}^3 \times \mathbb{R}^9xR=[qwbTpwbTvwbTbgba]T∈SO(3)×R3×R9
其中bg,ba\mathbf{b}_g, \mathbf{b}_abg,ba分别表示陀螺仪和加速度计的偏置。
在局部优化那里,视觉残差就是我们传统的视觉重投影误差,文章中并没有写视觉方面更细节的方法。在声呐方面它使用的声呐重投影误差。首先声呐由于自带的高程不确定性,所以他的高度是无法确定的。为了能够融入整体框架中,把声呐点的z值设置为1,首先需要通过媒体滤波器进行预处理以滤除噪声。随后采用AKAZE 进行特征检测与匹配。研究表明,A- KAZE 在非线性尺度空间中的特征检测与匹配具有稳定性,而中值滤波器则能保留该空间中的纹理特征 。我们首先从声纳图像中提取A- KAZE 特征点,但在实际应用中,初始特征匹配后仍存在错误匹配。为此,我们采用基于基本矩阵估计的二维-二维随机样本共识(RANSAC)算法,对声纳点的二维空间进行对应关系优化。
然后在对应的特征点中,使用IMU做初始位姿先验 ,然后使用ICP算出两帧之间的相对位姿,然后将前一帧的声呐特征点转到后一帧的声呐坐标系中,算对应位置的距离差值作为残差。
IMU误差和我们普遍使用的IMU误差也没什么不同,但是这个有一个声呐和视觉之间的切换问题。当视觉出现退化的情况下,他认为视觉和IMU的位姿是有偏移的问题,是有误差的。所以使用声呐算出的位姿作为IMU的先验位姿进行计算,如图所示。
这也是他的初始化方法,当视觉无法进行初始化的时候,就用声呐和IMU进行初始化。
下面是实验的相关数据。
