当前位置: 首页 > news >正文

SLAM 算法横向对比与选型指南

1. 对比总览

系统传感器方法回环速度精度代码量入门难度
A-LOAMLiDAR特征法+Ceres快(5ms)★★★~2000行★☆☆☆☆
LeGO-LOAMLiDAR特征法+地面ICP快(8ms)★★★~3000行★★☆☆☆
Fast-LIOLiDAR+IMUIESKF+ikd-Tree极快(3ms)★★★★~5000行★★★★☆
Fast-LIO2LiDAR+IMUIESKF简化极快(2ms)★★★★~4500行★★★☆☆
LIO-SAMLiDAR+IMU+GPS因子图+iSAM2Scan Context中(50ms)★★★★★~8000行★★★☆☆
FAST-LIVO2LiDAR+Cam+IMUIESKF统一快(8ms)★★★★★~7000行★★★★★
ORB-SLAM3Cam+IMU特征法+AtlasDBoW2中(30ms)★★★★★~30000行★★★★☆
VINS-MonoCam+IMU滑动窗口+CeresDBoW2快(15ms)★★★★~15000行★★★☆☆
DSOCam稀疏直接法中(50ms)★★★★~12000行★★★★☆
CartographerLiDAR(2D/3D)Submap+BBSBBS中(20ms)★★★★~15000行★★★☆☆
ORB-SLAM2Cam(S/RGB-D)特征法三线程DBoW2快(20ms)★★★★~18000行★★★☆☆
SVOCam半直接法极快(4ms)★★★~8000行★★★☆☆
LSD-SLAMCam半稠密直接法Sim(3)慢(200ms)★★★~10000行★★★★☆
RTAB-Map任意BoW内存管理BoW中(30ms)★★★~20000行★★☆☆☆

精度评级为相对参考:★★★★★ = 在各自领域的SOTA精度;速度评级为单帧处理时间;入门难度反映理解该系统的数学和代码所需时间。

2. 按应用场景选型

无人机高速自主飞行

推荐:Fast-LIO2 或 FAST-LIVO2

关键需求:延迟 ≤ 5ms(高速飞行中不能丢帧)、对振动鲁棒(IMU 是关键)、短期无累积漂移(飞行通常 < 10 分钟)。Fast-LIO2 的 1-3ms 延迟和 IESKF 的 IMU 前向传播是最佳匹配。如果需要视觉辅助(对纹理退化场景),FAST-LIVO2 是升级版。

不推荐:LIO-SAM(延迟高,回环优化可能卡顿几十毫秒)、ORB-SLAM3(特征法在高速运动中模糊严重)。

自动驾驶建图

推荐:LIO-SAM + GPS因子

关键需求:全局一致性(需要回环消除 >100m 的漂移)、多传感器融合(LiDAR+IMU+GPS+轮式里程计)、大场景(公里级)。LIO-SAM 的因子图框架天然支持多传感器融合——每个传感器是一个因子类型。GPS 因子消除长期漂移,Scan Context 回环修正局部扭曲。

不推荐:Fast-LIO2(无回环,公里级漂移可达几十米)、Cartographer 3D模式(精度不够,分支定界在 3D 中慢)。

室内机器人(扫地机/仓储AGV)

推荐:Cartographer(2D模式)

关键需求:成本低(2D LiDAR ~$100)、可靠性(不能丢地图)、易于部署。Cartographer 的 2D 概率栅格 + BBS 回环是经过大量工业验证的方案,ROS 一键安装。

替代方案:如果预算极低(只有相机,~$10),可选 ORB-SLAM3 RGB-D 模式 + RealSense D435;如果已有 3D LiDAR(如 Mid-70),LIO-SAM 比 Cartographer 精度更高但成本也高。

AR/VR 头显

推荐:VINS-Mono 或 ORB-SLAM3(VI模式)

关键需求:低延迟(头部运动 < 20ms 延迟会致晕)、低成本(相机 + IMU ~$20)、支持快速运动。VINS-Mono 的滑动窗口优化(15ms/帧)和在线外参标定非常适合消费级硬件。ORB-SLAM3 的 Atlas 多地图在长期 AR 体验中更鲁棒(跟踪丢失后可以恢复)。

不推荐:LiDAR SLAM(头显上装 LiDAR 太重、太贵、太耗电)。

手持3D扫描仪

推荐:LIO-SAM 或 ORB-SLAM3 RGB-D

关键需求:高密度点云(供后期处理)、全局一致性(回环修正)、慢速精细操作。LIO-SAM 的 LiDAR 直接产出稠密点云,ORB-SLAM3 RGB-D 配合 RealSense L515 可产出 RGB-D 彩色点云。

微型无人机(<50g 有效载荷)

推荐:SVO 2.0

关键需求:极低计算(MCU 级别)、极低延迟。SVO 的 3-5ms 半直接法和无描述子设计是唯一能在 STM32 级别 MCU 上运行的视觉 SLAM。精度不高但在微型无人机的短距离飞行中可以接受。

3. 按学习目标选型

想理解 LiDAR SLAM 基础 → A-LOAM

  • 2000 行代码覆盖了 LiDAR SLAM 全部核心概念
  • 读完后,LeGO-LOAM(工程改进)、Fast-LIO(另一种数学框架)、LIO-SAM(完整系统)都能看懂

想理解视觉 SLAM 架构 → ORB-SLAM2

  • 三线程架构是标准教材
  • 读完后,ORB-SLAM3 的 Atlas 和 VI-SLAM 只是"加模块"

想理解滤波框架 → Fast-LIO

  • IESKF 的完整推导是最好的教材
  • 读完后,FAST-LIVO2(加视觉观测)、Fast-LIO2(简化版本)一目了然

想理解因子图优化 → LIO-SAM

  • GTSAM iSAM2 的实际应用
  • 读完后,可以理解任何基于因子图的 SLAM 系统

想理解视觉-惯性紧耦合 → VINS-Mono

  • 滑动窗口 + IMU 预积分 + 边缘化的最佳学习材料
  • 代码比 ORB-SLAM3 短一半,更容易读

想理解直接法 → DSO

  • 从零实现的 Gauss-Newton 优化器是宝藏
  • 读完后,"为什么 DSO 比 LSD-SLAM 好"一目了然

4. SLAM 系统的演进脉络

LiDAR SLAM谱系: LOAM (2014, 原创) ├── A-LOAM (2019, Ceres简化版) │ └── LeGO-LOAM (2018, 地面+回环) │ └── LIO-SAM (2020, 因子图+IMU+GPS) │ └── Fast-LIO (2021, IESKF新框架) ├── Fast-LIO2 (2022, 简化运动学) └── FAST-LIVO (2022) → FAST-LIVO2 (2024, +视觉) 视觉SLAM谱系: PTAM (2007, 双线程) └── ORB-SLAM (2015, 三线程) ├── ORB-SLAM2 (2017, 双目/RGB-D) └── ORB-SLAM3 (2020, VI + Atlas) 直接法谱系: DTAM (2011, 稠密直接法/GPGPU) └── LSD-SLAM (2014, 半稠密/CPU实时) └── DSO (2016, 稀疏+光度标定+滑动窗口) ├── LDSO (2018, +DBoW2回环) ├── D3VO (2020, +深度学习) └── DM-VIO (2022, +IMU) 半直接法: SVO (2014) → SVO 2.0 (2017) Google工业派: Cartographer (2016, 2D/3D)

5. 常见问题

Q:为什么 Feature-based 和 Direct 方法各有各的好,不能合并吗?

半直接法(SVO、FAST-LIVO2)正在做这件事。但核心矛盾是:特征法假设"描述子匹配是完美的"→ 几何约束强但丢信息(90%的像素没用上);直接法假设"光度恒定"→ 信息利用率高但容易因光照失效。两者在数学假设层面的矛盾需要工程技巧来调和(如 FAST-LIVO2 在 LiDAR 提供深度的基础上,视觉退化为直接法对齐——既不做描述子也不做光度优化,只做梯度方向的对齐)。

Q:什么时候该用滤波(IESKF),什么时候该用优化(因子图)?

经验法则:实时性要求 > 精度要求 → 滤波;全局一致性 > 实时性 → 因子图优化。滤波的 IESKF 在当前帧上做最优估计(快但"近视"),因子图优化在全部历史上做最优估计(慢但"远见")。当里程计本身就足够好(如 Fast-LIO2 在 100m 内漂移 < 0.5m),加回环比加优化更重要——这就是为什么 Fast-LIO2 + 外部回环比单用 LIO-SAM 更受欢迎。

Q:是否有一个 SLAM 系统适合所有场景?

没有。每个 SLAM 系统都是在特定传感器组合、计算预算、场景假设下的最优解。FAST-LIVO2 是当前覆盖面最广的单系统(LiDAR+Cam+IMU,室内外通用),但它的计算量和传感器成本远超单一传感器的 SLAM 系统。选择 SLAM 系统的第一步不是比较算法,而是明确:你有什么传感器?你的计算平台是什么?你的场景是结构化的(室内走廊)还是非结构化的(树林)?这三个问题的答案会自然导向最适合的系统。

6. 推荐学习路径

第1天: A-LOAM → 了解LiDAR SLAM的基本链路 第2天: LeGO-LOAM → 了解"工程化改进"是如何叠加的 第3天: ORB-SLAM2 → 了解视觉SLAM的三线程架构 第4天: Fast-LIO → 了解滤波框架的数学(IESKF) 第5天: LIO-SAM → 了解因子图优化 + 多传感器融合 第6天: VINS-Mono → 了解视觉-惯性紧耦合 第7天: DSO → 了解直接法的全貌

每天消化一个系统,一周可以建立完整的 SLAM 知识框架。这个顺序是按照从具体到抽象、从简单到复杂、从 LiDAR 到视觉排列的——每个后续系统都能在之前系统的概念基础上"装上去"。

http://www.zskr.cn/news/1429148.html

相关文章:

  • Revelation光影包:终极Minecraft写实渲染技术完全指南
  • 国产开源软件盘点:替代商业软件的 10 个优秀方案与落地边界
  • VCS仿真不出波形?从Makefile到TB代码,手把手教你生成和打开FSDB文件
  • 2026年SEO现状:精分时代的AI博弈
  • 单Agent搞不定长链路?OpenClaw动态编排架构,让多智能体协作不再“各说各话”
  • 电路设计实战指南:从原理图到PCB的完整流程与调试技巧
  • 3步极速上手:Zotero茉莉花插件中文文献管理终极指南
  • Keil MDK同名源文件处理机制解析与实践
  • Mask2Former的Mask Attention到底强在哪?一个模块拆解看懂Transformer如何提升分割精度
  • 如何快速掌握HiveWE魔兽地图编辑器:面向新手的完整教程
  • Unity UI避坑指南:TMPro文本框动态伸缩时,背景图为什么总对不齐?
  • 保姆级教程:用R语言Signac包从零处理10x Genomics单细胞ATAC数据(附避坑指南)
  • 不只是Enter Play Mode Setting:深度优化Unity工作流,手动控制Domain Reload的完整实践
  • LwIP下ICMP协议浅析
  • Pearcleaner:macOS彻底清理工具的终极指南
  • 第24篇|相机权限和设备枚举:先判断能力再打开预览
  • 打破Java字节码黑箱:JD-GUI的实战逆向工程指南
  • HS2-HF补丁:让Honey Select 2游戏体验焕然一新的终极解决方案
  • PyTorch实现的MANO手部模型:3D手势生成与计算机视觉应用终极指南
  • IGMP协议浅析
  • 2026 杭州直播代运营行业大洗牌,乱象频发,高 ROI 靠谱全链路服务商精选推荐 - 品牌榜中榜
  • 别再死磕梯度下降了!用Python手搓一个遗传算法,轻松搞定那些‘不听话’的优化问题
  • 别再让回车变空格了!手把手教你用JavaScript处理textarea换行符(含 转br实战)
  • 用Scratch打造钩针图案生成器:连接编程与手工的创意实践
  • 2026年 西安消防器材/消防设备/消防设施/灭火器材/应急消防器材最新推荐:精选品牌与实战性能深度解析! - 品牌企业推荐师(官方)
  • 从假设检验到机器学习:正态分布与卡方分布在数据分析中的实战联动指南
  • WarcraftHelper终极指南:让经典魔兽争霸3焕发新生,解决所有版本兼容问题
  • 乔布斯教会耄耋的事:在《一念成仙》,耄耋如何定义“最好的产品”
  • 告别深夜夺命Call:如何利用 AI Agent Skills 自动自愈生产环境故障
  • 免费数据恢复神器:TestDisk与PhotoRec的终极使用指南