结合目前的资料,整理了激光SLAM从经典到最新的一些框架,包括它们的特点、适用场景以及源码等信息。
下面是一个汇总表格,涵盖了经典和较新的激光SLAM框架,方便快速了解:
框架名称 | 关键传感器组合 | 核心特点简述 | 主要优势场景 | 建图效果与特点(基于资料) | 源码地址 |
---|---|---|---|---|---|
LOAM | LiDAR | 特征点(角点、面点)提取、扫描匹配、频率分离的里程计与建图 | 早期三维激光SLAM基准,KITTI数据集上表现良好 | 实时性较好,但依赖特征提取,在非结构化环境或剧烈运动下可能退化 | 原生复现 中文注解 |
LeGO-LOAM | LiDAR | 轻量级、地面优化、点云聚类分割、两步位姿优化、集成回环检测 | 轻量化嵌入式平台、室外地面机器人、有明显地面的环境 | 通过地面优化和点云过滤,更适合地面车辆,计算效率较高 | 源码 中文注解 |
LIO-SAM | LiDAR + IMU (±GPS) | 基于因子图的紧耦合激光惯性里程计、IMU预积分、滑动窗口优化、支持GPS和回环 | 大规模室外环境、自动驾驶、对全局一致性要求高的场景 | 通过因子图融合多传感器信息,支持回环检测与全局优化,全局一致性较好 | 源码 |
FAST-LIO2 | LiDAR + IMU | 紧耦合迭代误差状态卡尔曼滤波(IESKF)、直接使用原始点云、ikd-Tree增量地图 | 计算资源有限平台、高速运动、要求高实时性和鲁棒性的场景(如无人机) | 速度极快,计算效率高,资源消耗低,支持多种LiDAR,局部精度高,但缺乏内置回环检测,长时间运行可能累积误差 | 源码 |
HDL Graph SLAM | LiDAR (±IMU, GPS, 地面) | 基于图优化、主要使用NDT扫描匹配、支持多种约束(IMU、GPS、地面、回环) | 室内外环境、多种机器人平台、支持多传感器融合的SLAM | 支持多种图约束,在室内外环境中经过测试,但相似场景(长廊、隧道)下传统扫描匹配可能失效 | 源码 |
plain_slam_ros2 | LiDAR + IMU | 轻量级(核心C++代码<1800行)、模块化设计、支持松耦合和紧耦合LIO、依赖少 | 研究与教学、算法学习与二次开发、资源受限设备 | 代码简洁易懂,易于扩展和修改,适合理解SLAM原理和进行快速原型开发 | 未提供直接链接 * |
LPVIMO-SAM (较新) | LiDAR + 偏振视觉 + IMU + 磁力计 + 光流 | 多传感器紧耦合、偏振视觉增强低纹理环境特征提取、光流/磁力计辅助抑制漂移、故障容错 | 极端环境(低纹理、强光、动态场景、LiDAR退化),对系统鲁棒性要求极高 | 在退化环境(如低纹理、特征稀缺或LiDAR性能下降场景)中表现优异,能显著提升定位与建图性能,支持多会话地图优化 | 未提供直接链接 * |
注:
- 表格中 “plain_slam_ros2” 和 “LPVIMO-SAM” 的源码链接未在提供的搜索结果中直接给出,可能需要通过论文或进一步搜索获取。
- 建图效果的好坏不仅取决于算法本身,还与传感器质量(如LiDAR分辨率、IMU精度)、环境特点(几何结构、动态物体)、参数配置以及计算资源密切相关。通常,紧耦合多传感器融合(如LIO-SAM, FAST-LIO2, LPVIMO-SAM)在复杂环境或高速运动下更稳健;而包含全局优化或回环检测的框架(如LIO-SAM, LeGO-LOAM)能更好地减少累积误差,提高全局一致性。
- “最新” 是一个相对的概念,这里指的是近年来出现且较为活跃的项目。
🧭 如何选择框架?
没有“唯一”或“最好”的框架,最适合你具体需求的框架才是最好的。你可以从以下几个方面来权衡:
-
应用场景与需求:
- 室内结构化环境(如仓库、办公室):LeGO-LOAM(轻量、地面优化)、HDL Graph SLAM(支持多约束)可能是不错的选择。
- 大规模室外环境(如园区、自动驾驶):LIO-SAM(多传感器融合、全局优化)、FAST-LIO2(高速、高效)更为合适。
- 极端或退化环境(如低纹理、强光、高速机动):FAST-LIO2(鲁棒性)、LPVIMO-SAM(多传感器冗余、偏振视觉增强)针对性强。
- 无人机或计算资源受限平台:FAST-LIO2(计算效率极高)、LeGO-LOAM(轻量)是优先考虑的对象。
- 研究与学习:plain_slam_ros2(代码简洁)、LOAM或A-LOAM(理解基础)更适合。
-
传感器配置:
确认你拥有的传感器(LiDAR类型、IMU、相机等)与框架的兼容性。例如,FAST-LIO2对多种LiDAR兼容性好;LPVIMO-SAM则需要偏振相机等特殊传感器。 -
对地图的要求:
- 强调全局一致性和长期稳定性(多次运行仍能对齐),优先选择带全局优化和回环检测的框架,如LIO-SAM。
- 更看重局部精度和实时性,FAST-LIO2等可能更优。
- 需要构建语义地图或特殊类型地图,需关注框架的扩展性或其他专门算法。
-
硬件资源:
嵌入式设备选择轻量级框架(LeGO-LOAM, plain_slam_ros2);计算资源充足(如高性能工控机)则可以运行更复杂的系统(LIO-SAM, HDL Graph SLAM, LPVIMO-SAM)。 -
开发与调试:
- 社区活跃度:GitHub的star、issue、PR数量以及近期更新频率可以反映项目的活跃度和获取帮助的难易程度。
- 文档与易用性:良好的文档和示例能节省大量部署时间。
- 可扩展性:如果你计划进行二次开发,代码的结构和清晰度就非常重要(plain_slam_ros2强调这一点)。
🔖 论文与源码获取
- 论文下载:
- 对于表格中提到的框架,你可以通过框架名称 + “arXiv” 或框架名称 + “PDF” 在搜索引擎或谷歌学术、arXiv等学术网站搜索。例如,搜索 “LIO-SAM arXiv” 或 “FAST-LIO2 PDF”。
- 许多论文的作者会在GitHub项目的README中直接提供论文链接。
- 源码链接:
- 表格中已提供了部分框架的源码地址。
- 对于未直接提供链接的框架(如 plain_slam_ros2, LPVIMO-SAM),你可以尝试用框架名称在GitHub或GitCode等代码托管平台搜索。
💡 最后建议
“纸上得来终觉浅,绝知此事要躬行”。由于传感器配置、环境、参数设置对SLAM效果影响巨大,强烈建议你用自己的硬件和典型场景数据测试几个候选框架,这是最可靠的判断方法。