【LVIO-SLAM】Mars实验室 : 多传感器融合分享笔记
1. 小结
以下是FAST-LIO、FAST-LIO2、MLCC、HBA、Livox Camera Calibration(livox_camera_calib)、VoxelMap、LI-init 这些算法的特点及其发展历程的梳理与总结。
1. FAST-LIO
FAST-LIO(Fast LiDAR Inertial Odometry) 是一种高效的基于LiDAR和IMU的紧耦合里程计算法。该算法的核心特点在于其高精度和高实时性,主要通过将LiDAR的点云数据与IMU的惯性数据紧耦合,利用卡尔曼滤波器实时更新位姿估计。
-
特点:
- 紧耦合滤波器:利用扩展卡尔曼滤波器(EKF)将LiDAR点云和IMU数据紧耦合,精确估计位姿。
- 高效点云处理:使用稀疏化和自适应方法减少点云处理的计算复杂度,确保算法在实时性要求较高的应用场景中表现出色。
- 鲁棒性:FAST-LIO能够有效处理动态环境下的位姿估计问题,适应不同场景的变化。
-
发展历程:
FAST-LIO的出现是为了解决传统LiDAR里程计在复杂环境中的实时性和精度问题。它在早期LiDAR SLAM算法的基础上,通过创新的滤波器设计与高效点云处理方法,大幅提升了运算效率,适合无人驾驶和机器人导航等需要实时定位的应用。
2. FAST-LIO2
摘要 - 本文介绍了FAST-LIO2:一个快速、健壮且多功能的激光雷达标称融合里程计框架。基于一个高效的紧耦合迭代卡尔曼滤波器,FAST-LIO2有两个关键创新点,使得快速、稳健且准确的激光雷达导航(和制图)成为可能。第一,它直接将原始点云注册到地图上(随后更新地图,即制图),而不提取特征。这使得系统能够利用环境中的微妙特征,从而提高精度。消除手工制造的特征提取模块也使其自然适应不同扫描模式的新型激光雷达;第二项主要创新是通过增量k-d树数据结构ikd-Tree来维护地图,该结构支持增量更新(即点插入、删除)和动态再平衡。与现有的动态数据结构(八叉树、R*树、nanoflann k-d树)相比,ikd-Tree在整体性能上实现了更优的表现,同时自然支持树的下采样。我们在各种开放激光雷达数据集的19个序列上进行了全面的基准比较。FAST-LIO2在比其他最先进的激光雷达标称导航系统更低的计算负荷下,实现了一致的更高精度。还在具有小视场的固态激光雷达上进行了各种真实世界的实验。总体而言,FAST-LIO2在计算效率上(例如,在大型室外环境中实现高达100 Hz的里程计和制图)、鲁棒性(例如,在旋转速度高达1000度/秒的复杂室内环境中可靠的位姿估计)、多功能性(即,适用于多线旋转和固态激光雷达、无人机和手持平台,以及基于Intel和ARM的处理器)方面表现出色,同时仍然实现了比现有方法更高的精度。我们在Github上开源了系统FAST-LIO2和数据结构ikd-Tree的实现。
FAST-LIO2 是FAST-LIO的升级版本,相较于前者,它进一步提高了系统的鲁棒性和可扩展性,尤其在多种复杂环境中表现更为稳定。
-
特点:
- 直接法点云处理:不再依赖特征提取,直接在点云上进行运动估计,大幅提高了对弱纹理或稀疏环境的适应性。
- 更广泛的传感器支持:除了常规的LiDAR和IMU,还能够适应不同种类的LiDAR设备,如固态LiDAR等,尤其是支持低成本LiDAR传感器,如Livox。
- 计算效率优化:通过进一步减少点云数据的冗余和冗余计算,提高了整体的计算效率,确保了在高频率传感器下依旧保持实时性。
-
发展历程:
FAST-LIO2 进一步优化了数据处理流程,简化了特征提取的步骤,使其能够更加稳定地运行在不同种类的LiDAR设备上,尤其适用于低成本的激光雷达设备,在保证实时性的同时提高了精度。
3. MLCC(Multi-LiDAR Calibrated Consistency)
MLCC 是一种多激光雷达间的校准一致性算法,旨在通过优化使得多传感器(主要是多LiDAR系统)之间的校准结果在时间和空间上保持一致性。
-
特点:
- 多LiDAR校准:MLCC能够同时处理多个LiDAR传感器的数据,确保它们在相同参考系下精确对齐,提高系统的全局一致性。
- 时间同步与空间对齐:该算法对多个LiDAR数据进行时间同步和空间校准,并确保整个过程中数据的一致性,不会出现位姿估计上的偏移。
-
发展历程:
MLCC 是为了应对使用多个激光雷达时出现的数据不一致问题而设计的,尤其是在无人驾驶领域,多LiDAR系统的应用越来越广泛,MLCC确保了系统在复杂环境下的稳定性和准确性。
4. HBA(Hierarchical Bundle Adjustment)
HBA 是一种层次化的束调整算法,主要用于SLAM系统中的位姿优化与场景建模。
-
特点:
- 层次化的优化结构:HBA通过分层的优化方法,在局部与全局层面上进行位姿与地图的联合优化。局部优化提高了精度,全局优化减少了累积误差。
- 高效的计算性能:该算法通过稀疏优化技术和层次化的数据结构,减少了优化问题的规模,从而提高了计算效率。
- 适应大规模场景:HBA能够处理大规模环境下的位姿调整问题,适合复杂场景中的建图和优化。
-
发展历程:
HBA的提出是为了解决传统束调整算法在大规模场景下的计算复杂性问题。它通过层次化的设计,将优化问题分解为多个子问题进行处理,大幅提升了SLAM系统在大规模场景中的适应性。
5. Livox Camera Calibration(Livox_camera_calib)
这是一个用于校准Livox固态LiDAR和摄像头之间外参的工具,主要用于多传感器融合中激光雷达与视觉传感器的配准。
-
特点:
- LiDAR-相机外参校准:该算法能够精确校准LiDAR与摄像头之间的相对位姿,即外参,从而确保两者数据的空间对齐。
- 高鲁棒性与精度:在复杂环境下依然能够提供高精度的位姿校准,适用于无人驾驶、增强现实等需要多传感器融合的应用。
- 易用性:该工具集成了自动化校准流程,减少了人工干预的需要,提高了使用的便捷性。
-
发展历程:
Livox_camera_calib 的出现是为了满足低成本LiDAR与视觉系统的需求,尤其是基于Livox LiDAR的系统。该工具使得这些设备能够在多传感器融合的场景中快速部署,并确保数据的一致性。
6. VoxelMap
VoxelMap 是一种基于体素(Voxel)的地图表示方法,主要用于SLAM系统中的环境建模和导航。
-
特点:
- 体素表示:利用体素结构将环境表示为稀疏的三维点云数据,可以有效处理大规模环境下的数据。
- 内存效率高:VoxelMap使用稀疏体素网格,减少了内存消耗,并提高了查询效率,适合实时建图应用。
- 适应动态场景:该算法可以动态更新地图,适应环境的变化,是移动机器人实时导航中的重要技术。
-
发展历程:
VoxelMap 提供了一种高效的三维环境表示方法,尤其适用于在稀疏点云和大规模环境下的建图任务。其稀疏表示和高效更新机制使得它在实时导航应用中表现出色。
7. LI-init(LiDAR-Inertial Initialization)
LI-init 是一种用于LiDAR与IMU联合系统的初始化方法,能够在LiDAR-IMU SLAM系统启动时快速估计出初始状态。
-
特点:
- 快速初始化:LI-init能够在短时间内估计出系统的初始位姿和速度信息,为后续的LiDAR-IMU融合提供良好初始条件。
- 稳健性:即使在初始运动条件复杂的情况下,LI-init也能提供较为精确的初始状态估计。
- 适用于多种传感器组合:该方法可以应用于不同类型的LiDAR和IMU设备,增强了SLAM系统的适用性。
-
发展历程:
LI-init的提出是为了应对LiDAR-IMU系统启动时的初始化问题,特别是在复杂环境下。通过快速估计初始状态,它能够提高整个系统的启动速度和鲁棒性。
这些算法(FAST-LIO, FAST-LIO2, MLCC, HBA, Livox_camera_calib, VoxelMap, LI-init)各自在SLAM和多传感器融合领域中具有重要作用,从实时性、精度、鲁棒性到系统的可扩展性和轻量化,它们共同推动了SLAM技术的持续进步。
2. Mars成果笔记
1. fast_lio2
2. mlcc hba livox_camera_calib VoxelMap LI-init
3. LVIO 融合算法R2LIVE
4. LVIO 融合算法R3LIVE
5. ImMesh