侧边栏壁纸
  • 累计撰写 125 篇文章
  • 累计创建 16 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录
SLAM   

基于 LiDAR 的 SLAM 方法总结

LiDAR SLAM 是一种使用激光雷达(LiDAR)传感器进行定位和地图构建的技术。它允许机器人或车辆在未知环境中自主导航并同时创建环境的地图,同时估计其在地图上的位置。

LiDAR SLAM 的优点在于,LiDAR 传感器提供高精度的距离测量,使得定位和地图构建非常准确。适用于各种环境,包括室内和室外,适应性强,不受光照、天气和时间的限制。

同时,LiDAR SLAM 的缺点在于,传感器通常价格较高,这可能会增加整体系统的成本。阳光、雨雪或其他物体的反射可能对 LiDAR 数据产生干扰。

为了便于理解与总结,文章将从方法、所使用的传感器、历史继承的角度来讲述 LiDAR SLAM 的发展历程

LOAM 系列算法

LOAM(Lidar Odometry and Mapping)系列算法在LiDAR SLAM中发挥着重要的作用。这一系列的算法旨在处理 LiDAR 传感器的点云数据,实现定位和地图构建。其中只用到了 LiDAR 传感器,并未融合其他数据。

时间 缩写 论文 代码 Sensor
2014.047.12 LOAM LOAM: Lidar Odometry and Mapping in Real-time https://github.com/laboshinl/loam_velodyne Lidar
2018.11.01 LeGO-LOAM LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain https://github.com/RobustFieldAutonomyLab/LeGO-LOAM Lidar
2019.03.28 A-LOAM / https://github.com/HKUST-Aerial-Robotics/A-LOAM Lidar
2021.06.03 T-LOAM T-LOAM: Truncated Least Squares LiDAR-Only Odometry and Mapping in Real Time https://github.com/zpw6106/tloam Lidar
2021.07.02 F-LOAM F-LOAM: Fast LiDAR Odometry And Mapping https://github.com/wh200720041/floam Lidar

LOAM - 2014

原始 LOAM 算法是一种的激光特征匹配 SLAM 方法,其中没有回环检测,是该领域的开山之作。

论文验证的硬件系统采用的是通过对单线程雷达进行旋转,从而实现 3D LiDAR 的效果。

系统工作流为:从单线程雷达中接受原始二维点云,对二维点云首先进行简单注册拼接为三维点云。该三维点云存在一定的运动与旋转畸变。利用该点云进行帧间运动估计(10Hz),该估计值用于对三维点云进行畸变校正(1Hz),基于校正后的三维点云来输出全局地图点云,并输出优化后的运动估计(1Hz)。最后将两个运动估计整合后发布。

LOAM 通过将系统的运动估计创新性的分为两个频率部分进行,高频(10Hz)部分以低精度的形式快速估计当前的位姿,而低频(1Hz)部分则是通过校正优化来返回高精度运动估计。

其中的运动估计采用了特征法,针对点云中的角点与平面点进行提取,根据帧间的特征点距离进行优化,来得到运动估计值。因为通过从环境中提取代表性特征需要更少的计算资源。

LeGO-LOAM - 2018

LeGO-LOAM 是基于 LOAM轻量化和地面优化工作,在嵌入式设备上能够实现实时姿态估计和映射。并且在具有可变地形的复杂环境中可以有效实现定位与重建。

系统工作流为:接收来自3D雷达的原始输入,首先对原始点云进行地面分割,获得地面点云与分割点云。然后将分割好的点云发送到特征提取模块,以获得平面点与边界点。之后与 LOAM 类似的计算方法。

LeGO-LOAM 通过分离了地面,能够很好的实现在户外草地与森林中运行。并且由于关注分割点云中更加结构化的特征,是得匹配的稳定性得以提高。

A-LOAM - 2019

A-LOAM 是 LOAM 的高级实现,它使用 EigenCeres简化代码结构。非常适合学习LOAM思想,也适合新手入门3D激光SLAM。

此外,还融合了激光雷达返回的强度信息。这使得特征匹配更加准确,尤其是在复杂和动态的环境中。

T-LOAM - 2021

  • LOAM 首先对原始点云进行多区域地面提取素聚类执行地面点提取和类别分割。
  • 于 PCA 特征提取,细化四个特征,包括:平面特征、地面特征、边缘特征、球形特征。
  • 使用截断最小二乘法的残差函数处理上述特征,即点对点、点对线和点对平面,从而减轻异常值对于估计的影响。

** 截断最小二乘(Truncated Least Squares, TLS)是一种统计回归技术,用于建立数据模型,特别是当数据包含异常值或噪声时。与传统的最小二乘方法(Least Squares, LS)相比,TLS 的目的是更加鲁棒,即它能够更好地处理存在于数据中的异常值。TLS 优化目标不再是最小化所有的残差,而是只考虑那些相对较小的残差,并忽略那些超过某个阈值的残差。

F-LOAM - 2021

F-LOAM 是 A-LOAM 和 LOAM 的优化版本,计算成本降低了3倍。

F-LOAM 在特征提取阶段,只提取平面点与角点,并对与提取过程进行简化为平滑度阈值。并将特征存储在 3D KD 树中,加快访问速度。

在运动估计阶段,首先假设在短时间内角速度和线速度恒定,以预测运动和纠正失真。在姿态估计过程中,失真将被重新计算,重新计算的未失真特征将被更新到最终地图。

LIO 系列算法

LIO (Lidar-Inertial Odometry) 是一种结合激光雷达 (LiDAR) 和惯性测量单元 (IMU) 数据的融合方法,用于实现高精度的里程计和定位。其中又以紧耦合技术为最新的发展方向。这种融合技术旨在利用每种传感器的优势,以弥补它们的局限性。优势在于:

  • 增强鲁棒性:IMU 可以在高动态或快速转动的情况下为系统提供连续的运动信息,而这在单纯使用激光雷达时可能是一个挑战。
  • 增加频率:IMUs 通常以很高的频率(如100Hz或200Hz)提供数据,而激光雷达的频率可能较低(如10Hz或20Hz)。融合这两者可以实现更高频率的状态估计
  • 数据互补:在某些情况下,如激光雷达因环境因素(如烟、雨、雾)受到干扰时,IMU 可以提供关键的运动信息。
  • 提高准确性:结合两种传感器的数据可以减少各自的误差和不确定性,从而提高整体的估计准确性。
时间 缩写 论文 代码 Sensor
2019.05.15 LIO-mapping Tightly Coupled 3D Lidar Inertial Odometry and Mapping https://github.com/hyye/lio-mapping Lidar IMU
2020.07.14 LIO-SAM LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping https://github.com/TixiaoShan/LIO-SAM Lidar IMU(GPS)
2021.05.14 FAST-LIO FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter https://github.com/hku-mars/FAST_LIO Lidar IMU
2021.07.14 FAST-LIO2 FAST-LIO2: Fast Direct LiDAR-inertial Odometry https://github.com/hku-mars/FAST_LIO Lidar IMU
2021.11.27 Faster-LIO Faster-LIO: Lightweight Tightly Coupled Lidar-Inertial Odometry Using Parallel Sparse Incremental Voxels https://github.com/gaoxiang12/faster-lio Lidar IMU
2022.11.19 SR-LIO SR-LIO: LiDAR-Inertial Odometry with Sweep Reconstruction https://github.com/ZikangYuan/sr_lio Lidar IMU

LIO-mapping -ICRA 2019

LIO-mapping 实现了 LiDAR-IMU 紧耦合算法,应用激光雷达和 IMU 的测量结果用于联合优化位姿。且算法中为了保持实时性,使用了滑动窗口法让局部地图来计算与优化运动估计。

  • 系统首先处理由高频 IMU 发送的数据,并通过预积分与联合优化计算状态值,该值用于对原始点云进行畸变矫正。
  • 接着,对矫正后的点云提取特征点(平面点和边界点),以压缩数据量和筛选重要点。
  • 当前帧点云会与局部地图以及IMU状态用于运动估计。而局部地图则是由之前的数帧点云根据联合优化后的位姿所拼装的。
  • 由雷达里程计所计算的运动估计再与 IMU 的预积分值进行联合优化,获得最后的当前帧的运动估计值。

LIO-SAM - 2020

论文提出了一种通过平滑和映射(SAM:smoothing and mapping)紧耦合的激光雷达惯性里程计(LIO-SAM),可实现高精度、实时的移动机器人轨迹估计和地图构建,并且引入了基于欧氏距离简单但有效的闭环检测方法。

论文详细解读

FAST-LIO2 - 2021

FAST-LIO2 一种快速、鲁棒且多功能的 LiDAR-惯性里程计框架。基于高效的紧耦合迭代卡尔曼滤波器,FAST-LIO2 有两个关键的创新点:

  • 第一个是直接注册原始点云到地图,不需要提取特征。这样就能利用环境中的细微特征,从而提高精确度。由于省去了手工设计的特征提取模块,因此也能自然地适应不同扫描模式的新兴激光雷达。
  • 第二,通过增量 k-d 树数据结构 ikd-tree 来维护地图,即支持增量更新(即点插入、删除)和动态重新平衡。

FAST-LIO2的流程如上图所示,顺序采样的激光雷达原始点首先在10ms(用于100Hz更新)和100ms(用于10Hz更新)之间的时间段内累积。累积的点云称为扫描数据,为了执行状态估计,新扫描中的点云通过紧耦合迭代卡尔曼滤波框架配准到大型局部地图中维护的地图点(即里程计),大型局部地图中的全局地图点由增量k-d树结构ikd树组织。

Faster-LIO - 2021

Faster-LIO 是基于体素的增量激光惯性里程计(LIO)方法,用于快速跟踪旋转和固态激光雷达扫描。基本上是从Fast-LIO2 发展而来的,在 LIO 中使用稀疏体素代替k-d树(及其变体)的想法。

为了实现高跟踪速度,我们既不使用复杂的基于树的结构来划分空间点云,也没有使用严格的k最近邻(k-NN)查询来计算点匹配。相反,我们使用增量体素(iVox)作为我们的点云空间数据结构,该结构是从传统体素修改而来的,支持增量插入并行近似k-NN查询

SR-LIO - 2022

SR-LIO 是一种新的激光雷达惯性里程计(LIO), 基于改进的 BA 框架。核心是一种新颖的扫描重建方法,可分割和重建来自旋转激光雷达的输入扫描原始数据,以获得具有更高频率的点云数据。这种方法可以有效减少每个IMU的时间间隔预集成,减少IMU 预积分误差并启用使用基于 BA 的 LIO 优化。

为了使重建扫频期间的所有状态都能得到同等的优化,进一步提出了多段联合 LIO 优化方法,该方法允许从激光雷达和 IMU 对每个扫频段的状态进行约束。在三个公开数据集上的实验结果表明,我们的 SR-LIO 在精度上优于所有现有的先进方法,而且通过建议的扫描重建减少 IMU 预积分误差对于基于 BA 的 LIO 框架的成功非常重要。

LVIO 系列算法

为了使系统更具有强鲁棒性,LVIO 逐渐开始发展,提供了一个具有高鲁棒性和准确性的方案,尤其是在那些需要系统在各种各样的环境和情境中持续运行的应用中。

传感器的优势不同使得它们互补后的优势巨大:

  • 视觉(Camera): 相机提供的是稠密或半稠密的像素数据。这些数据可以用于检测场景中的特征点,从而在连续的帧之间进行匹配,得到相机的相对运动。但在某些情况下,如快速运动、模糊、低光或高光照环境下,相机可能会失效。
  • Lidar: Lidar提供的是三维点云数据,这些数据通常是高精度的,且与光照变化无关。但Lidar数据可能在遥远的或高反射性的表面上有缺陷
  • IMU (Inertial Measurement Unit): IMU提供高频的运动数据,如加速度和角速度。但是,它们容易积累误差,特别是在长时间运动中。

而通过耦合系统融合后的:

  • 完整性: 当一个传感器在某个环境或情境下失效时,其他传感器可以填补这一空缺。例如,在低光环境下,Lidar和IMU可以继续提供数据,而相机则可能不那么有效。
  • 准确性: 通过多个传感器的数据,系统可以更准确地估计其位置和方向,因为每个传感器的误差特性不同,它们的数据可以互相校正。
  • 鲁棒性: 结合多个传感器可以减少系统对某个特定传感器故障的敏感性。例如,如果相机由于遮挡或强光受到干扰,Lidar和IMU的数据可以帮助系统继续运行。
时间 缩写 论文 代码 Sensor
2021.01.24 R2LIVE R2LIVE: A Robust, Real-time, LiDAR-Inertial-Visual tightly-coupled state Estimator and mapping https://github.com/hku-mars/r2live Lidar IMU RGB
2021.05.22 LVI-SAM LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping https://github.com/TixiaoShan/LVI-SAM Lidar IMU RGB
2021.09.10 R3LIVE R3LIVE: A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package https://github.com/hku-mars/r3live Lidar IMU RGB
2021.09.27 Lvio-Fusion Lvio-Fusion: A Self-adaptive Multi-sensor Fusion SLAM Framework Using Actor-critic Method https://github.com/jypjypjypjyp/lvio_fusion stereo , Lidar, IMU, and GPS
2021.10.27 LVIO-SAM LVIO-SAM: A Multi-sensor Fusion Odometry via Smoothing and Mapping https://github.com/TurtleZhong/LVIO-SAM Lidar IMU stereo
2022.04.02 FAST-LIVO FAST-LIVO: Fast and Tightly-coupled Sparse-Direct LiDAR-Inertial-Visual Odometry https://github.com/hku-mars/FAST-LIVO Lidar IMU RGB
2023.01.03 maplab 2.0 maplab 2.0 – A Modular and Multi-Modal Mapping Framework https://github.com/ethz-asl/maplab Lidar IMU RGB

R2LIVE -2021

R2LIVE 提出了一种稳健、实时、紧耦合的多传感器融合框架,它融合了激光雷达、惯性传感器和视觉相机的测量结果,以实现稳健、准确的状态估计。为了保证实时性,我们在误差状态迭代卡尔曼滤波框架内估计状态,并通过因子图优化进一步提高整体精度。在室内、室外和不同规模的混合环境中进行的大量实验表明,利用所有单个传感器的测量优势,我们的算法对各种视觉故障、激光雷达衰减场景具有足够的鲁棒性。

LVI-SAM -2021

我们提出了一种通过平滑和映射实现激光雷达-视觉-惯性紧耦合里程测量的框架(LVI-SAM),它能以高精度和鲁棒性实现实时状态估计和地图构建。

  • LVI-SAM 建立在因子图之上,由两个子系统组成:视觉-惯性系统(VIS)和激光雷达-惯性系统(LIS)。这两个子系统以紧密耦合的方式设计,
  • 其中视觉惯性系统利用激光雷达惯性系统的估计来促进初始化。通过利用激光雷达测量提取视觉特征的深度信息,提高了 VIS 的精度。
  • 反过来,LIS 利用 VIS 估计进行初始猜测,以支持扫描匹配。
  • 环路闭合首先由 VIS 识别,然后由 LIS 进一步完善。当两个子系统中的一个出现故障时,LVI-SAM 也能正常工作,这增强了它在无纹理和无特征环境中的鲁棒性。

系统由两个关键子系统组成:视觉-惯性系统(VIS)和激光雷达-惯性系统(LIS)。视觉惯性系统处理图像IMU 测量值,激光雷达测量值为可选项。视觉里程测量是通过最小化视觉和 IMU 测量的联合残差获得的。激光雷达定位系统提取激光雷达特征,并通过将提取的特征与特征图匹配来进行激光雷达测距。特征图以滑动窗口方式进行维护,以实现实时性能。最后,状态估计问题可表述为最大后验(MAP)问题,使用 iSAM2,通过在因子图中联合优化 IMU 预积分约束视觉里程测量约束激光雷达里程测量约束闭环约束的贡献来解决。请注意,LIS 中采用的多传感器图优化旨在减少数据交换,提高系统效率。

R3LIVE -2021

R3LIVE 是一种雷达+惯导+视觉融合的SLAM框架 。它包含两个子系统,即激光雷达-惯性测距(LIO)和视觉-惯性测距(VIO)。LIO子系统(FAST-LIO)利用 LiDARIMU 的测量结果,建立全局地图的几何结构(即三维点的位置)。VIO 子系统利用视觉-IMU 的数据,渲染地图的纹理(即三维点的颜色)。更为具体地,VIO子系统为了避免特征提取与匹配过程,通过类似直接法最小化光度误差的方式实现 frame-to-map 的数据关联(此为本文的改进点)。R3LIVE 是在 R2LIVE 的基础上开发的,该系统有更高的鲁棒性和准确性。

相比于 R2LIVE 最大的区别在于 VIO 以及地图。R2LIVE的视觉地图(VIO 中采用FAST角点+KLT光流数据关联+重投影误差+ESIKF状态更新+因子图优化)与 LIDAR 地图(面面距残差+ESIKF状态更新)是两个地图,二者没有直接的数据关联;而R3LIVE激光雷达与视觉共同维护一个全局地图(global map),另外VIO分为帧间追踪(frame-to-frame)与帧与地图之间追踪(frame-to-map)。

LVIO-SAM -2021

LVIO-SAM 是一种多传感器融合法 LVIO-SAM 通过平滑和映射融合了激光雷达、立体相机和惯性测量单元(IMU)。

来自 IMU 的预积分运动估计消除了点云畸变,并为激光雷达里程计优化生成了初始值。得到的激光雷达里程计用于估计IMU的偏置,并作为视觉里程计的初始值。视觉里程计用作整个系统运动估计的中间因素。为了确保实时性能,我们分别边缘化了旧的激光雷达扫描和视觉3D点(即局部地图),以进行姿态优化。

FAST-LIVO -2022

FAST-LIVO 是一种快速激光雷达-惯性-视觉测距系统,它基于两个紧耦合的直接测距子系统:一个 VIO 子系统和一个 LIO 子系统。

  • LIO 子系统将新扫描的原始点(而不是边缘或平面上的特征点)注册到增量构建的点云图上。地图上的点还会附加图像补丁,然后在 VIO 子系统中使用这些补丁,在不提取任何视觉特征(如 ORB 或 FAST 角特征)的情况下,通过最小化直接光度误差来对齐新图像。
  • 为了进一步提高 VIO 的鲁棒性和准确性,我们提出了一种新颖的离群点剔除方法,以剔除图像视图中位于边缘或被遮挡的不稳定地图点。我们在开放数据序列和定制设备数据上进行了实验。
  • 结果表明,我们提出的系统优于其他同类系统,并能以较低的计算成本处理具有挑战性的环境。该系统支持扫描模式完全不同的多线旋转激光雷达和新兴固态激光雷达,并可在英特尔和 ARM 处理器上实时运行。

maplab 2.0 -2023

maplab2.0为多会话多机器人多功能多模态建图提供了一个开源平台。通过集成多种新模式(如LiDAR、IMU、GPS接收器、轮速编码器、语义对象等),将原始框架扩展到远远超出其初始范围。这些示例为进一步的传感模式提供了易于扩展的模板。maplab2.0还提供了方便集成外部组件的接口,例如添加任意数量的不同视觉特性回环闭合约束。这些特性非常适合作为深度学习关键点检测器环路闭合引擎的开发和研究工具。

0

评论区