前言
A-LOAM 是 LOAM (2014) 的简化实现,虽然代码优美、适合学习,但在实际应用中存在明显短板:无回环检测、无IMU融合、动态环境脆弱、地面点冗余。本文梳理了 2014-2025 年 LOAM 系列的所有重要改进方向,展示激光SLAM从"能用"到"好用"的完整演进路径。
1. LOAM 家族演进全景图
LOAM (Ji Zhang, 2014) │ 核心思想:特征提取 + 里程计/建图解耦 │ 问题:代码不可读,手动Jacobian │ ├── A-LOAM (Qin Tong, 2019) │ 改进:Eigen + Ceres 自动求导,代码可读 │ 问题:无回环、无IMU、无地面优化 │ ├── LeGO-LOAM (Shan, 2018) │ 改进:地面分割 + 轻量级 + 回环检测 │ 适用:UGV 地面机器人 │ ├── LIO-SAM (Shan, 2020) │ 改进:IMU紧耦合 + GPS因子 + 因子图优化 │ 适用:多传感器融合场景 │ ├── LIO-SAM-ROS2 (2023) │ 改进:ROS2 Humble 移植 │ ├── Fast-LIO (Xu, 2020) │ 改进:迭代卡尔曼滤波(IESKF)替代优化 │ 适用:无人机高速机动 │ ├── Fast-LIO2 (Xu, 2021) │ 改进:ikd-Tree 增量KD树 + 直接法 │ ├── Faster-LIO (Xu, 2022) │ 改进:点云不降采样 + iVox体素 │ ├── Point-LIO (Xu, 2023) │ 改进:逐点处理,极致实时性 │ ├── DLIO (Chen, 2023) │ 改进:可变形 LiDAR-惯性里程计 │ └── FAST-LIVO / FAST-LIVO2 (Xu, 2023-2024) 改进:激光-视觉-惯性紧耦合2. 方向一:回环检测(LOAM 最明显的缺失)
2.1 问题
A-LOAM 纯靠里程计递推,无回环检测。长时间运行后漂移会无限累积。KITTI 序列00 跑完约 4km 后,A-LOAM 的漂移可达几十米。
2.2 代表方案
LeGO-LOAM 的回环检测:
当前位姿 │ ▼ 历史位姿中搜索最近邻 (欧氏距离 < 7m) │ ▼ 时间差验证 (> 30秒前到访过) │ ▼ ICP 匹配验证 (fitness score < 阈值) │ ▼ 添加回环因子到因子图 → 全局优化SC-LeGO-LOAM(Scan Context):
Scan Context 是一种旋转不变的全局描述子,用于地点识别:
1. 将3D点云按方位角和半径分为扇形栅格 2. 每个栅格取最大高度 → 形成 2D 矩阵 (Scan Context) 3. 列偏移搜索 → 实现旋转不变性匹配 4. 与 ICP 配合 → 先粗匹配后精配准| 方法 | 回环召回率 | 误检率 | 实时性 |
|---|---|---|---|
| LeGO-LOAM | 中 | 中 | 高 |
| Scan Context | 高 | 低 | 中 |
| Stable Triangle Descriptor | 高 | 极低 | 中 |
| Intensity Scan Context | 极高 | 低 | 中(需要反射率) |
3. 方向二:IMU 融合(从 LOAM 到 LIO)
3.1 纯激光的局限
- 快速旋转/激烈运动时,Scan-to-Scan 匹配失败
- 几何结构退化场景(长走廊、开阔地)精度骤降
- 无法提供高频状态估计(低于 LiDAR 10Hz)
3.2 融合方案对比
| 方案 | 融合方式 | 代表系统 | 适用场景 |
|---|---|---|---|
| 松耦合 | IMU 独立解算姿态,与 LiDAR 结果加权融合 | 早期方案 | 低动态 |
| 紧耦合-优化 | IMU 预积分因子加入因子图 | LIO-SAM | 中等动态 |
| 紧耦合-滤波 | IMU 状态预测 + LiDAR 更新 | Fast-LIO / Fast-LIO2 | 高动态 |
3.3 LIO-SAM —— 因子图紧耦合
因子图结构: ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │IMU因子│──│LiDAR │──│GPS因子│──│回环 │ │ │ │ 因子 │ │ │ │ 因子 │ └──┬───┘ └──┬───┘ └──┬───┘ └──┬───┘ │ │ │ │ └─────────┼─────────┼─────────┘ ▼ ▼ ┌──────────────────┐ │ 位姿状态节点 │ │ (位置+姿态+速度+偏置)│ └──────────────────┘ │ ▼ ┌──────────────────┐ │ GTSAM 全局优化 │ │ (iSAM2 增量) │ └──────────────────┘LIO-SAM 的创新点:
- IMU 预积分提供帧间约束和高频状态预测
- 为 LiDAR 匹配提供先验位姿,大幅提升匹配成功率
- GPS 因子消除长期漂移
- GTSAM iSAM2 增量优化,比批量优化快 100 倍
3.4 Fast-LIO2 —— IESKF + ikd-Tree
Fast-LIO2 是当前无人机激光SLAM的最高水平:
传统方法(A-LOAM): 特征提取 → 找对应 → Ceres优化 → 耗时 20-80ms Fast-LIO2: IMU 前向传播(预测) → ikd-Tree 极速找对应 → IESKF 更新 → 1-3ms 核心创新: ikd-Tree:增量 KD-Tree,支持 O(log n) 的增删改查 直接法:直接在原始点云上配准,不需要特征提取 IESKF:迭代误差状态卡尔曼滤波,等价于 Gauss-Newton 优化| 系统 | 耗时(ms) | ATE(cm) | 适用性 |
|---|---|---|---|
| A-LOAM | ~80ms | 0.8 (低速) | 差(无IMU) |
| LIO-SAM | ~30ms | 0.5 | 中 |
| Fast-LIO2 | ~3ms | 0.3 | 极好(2000°/s角速度) |
| Point-LIO | ~0.1ms | 0.4 | 极致实时(逐点处理) |
4. 方向三:地面分割与优化
4.1 问题
A-LOAM 将地面点作为普通面点处理,但地面点数量巨大(占 VLP-16 的30-40%),导致:
- 面特征中地面点占比过高,缺乏垂直方向的约束
- 优化计算量大
4.2 LeGO-LOAM 的地面分割
1. 将点云按水平角度分为 1800 份 2. 每份取最低点 → 估计地面 3. 计算相邻两列的地面点角度差 angle = atan2(dz, sqrt(dx²+dy²)) if angle < 10° → 地面点 4. 地面点单独用于面特征提取 5. 非地面点用于角特征提取 结果: - 地面点 → 稳定的面特征(提供roll/pitch/z约束) - 非地面边缘点 → 角特征(提供x/y/yaw约束)4.3 Travel 地面约束
在一些改进方案中,还会添加地面约束因子:
误差 = |当前帧地面点到历史地图地面的距离| 约束 yaw(偏航) 方向漂移(长走廊中最显著的漂移方向)5. 方向四:动态环境鲁棒性
5.1 问题
A-LOAM 假设场景是静态的,动态物体(行人、车辆)上的激光点会产生错误的对应关系。
5.2 解决方案
| 方案 | 方法 | 代表工作 |
|---|---|---|
| 点云减法 | 先建立背景地图,运行时减去背景,剩动态点 → 剔除 | Dynamic-LOAM |
| 跟踪预测 | 使用 Kalman 滤波器跟踪动态物体,预测其位置并剔除对应点 | DynaSLAM II |
| 深度学习 | RangeNet++ / SqueezeSeq 逐点语义分割,直接剔除"人""车"标签的点 | SuMa++ |
| 一致性检查 | 匹配后检查残差分布,大残差点来自动态物体 → 剔除 | ERASOR |
ERASOR(2021)的核心思想:
1. 用当前扫描与历史地图做差 → 得到候选动态区域 2. 在候选区域中做区域生长 → 找出完整动态物体 3. 移除动态物体对应的历史地图点 → 得到"干净"地图6. 方向五:多传感器融合
6.1 融合层次
传感器数据 │ ├── 数据层融合 (前融合) │ └── 原始数据联合标定后统一处理 │ └── 代表:FAST-LIVO2 (LiDAR+相机+IMU联合) │ ├── 特征层融合 (中融合) │ └── 各自提取特征后联合优化 │ └── 代表:LVI-SAM (LV-SAM视觉+LI-SAM雷达分支) │ └── 决策层融合 (后融合) └── 各传感器独立输出后加权融合 └── 代表:简单互补滤波6.2 主流多传感器SLAM系统
| 系统 | 传感器 | 融合方式 | 特点 |
|---|---|---|---|
| LIO-SAM | LiDAR+IMU+GPS | 因子图 | 多传感器紧耦合 |
| LVI-SAM | LiDAR+视觉+IMU | 两个子系统互补 | 纹理+结构双重鲁棒 |
| R3LIVE | LiDAR+视觉+IMU | IESKF | 实时彩色点云重建 |
| FAST-LIVO2 | LiDAR+视觉+IMU | IESKF+直接法 | 最高效 |
| DLIO | LiDAR+IMU | 可变形配准 | 修正运动畸变 |
7. 方向六:轻量化与嵌入式部署
7.1 计算瓶颈分析
A-LOAM 在 Desktop CPU 上的单帧耗时:
| 模块 | 耗时 | 占比 |
|---|---|---|
| 特征提取 | 5-10ms | 15% |
| KD-Tree 构建+搜索 | 20-40ms | 40% |
| Ceres 优化求解 | 15-30ms | 30% |
| 其他(IO等) | 5-10ms | 15% |
KD-Tree 搜索是最大瓶颈。
7.2 加速方案
| 方案 | 技术 | 加速效果 |
|---|---|---|
| ikd-Tree | 增量KD树,就地更新 | 3-5x (Fast-LIO2) |
| iVox | 空间哈希体素替代KD-Tree | 5x (Faster-LIO) |
| 点云降采样 | 体素滤波减少点云密度 | 2-3x |
| GPU并行 | CUDA 加速 nearest neighbor 搜索 | 10x |
| ARM NEON | SIMD 加速点云运算 | 2-3x |
| FPGA | 硬件加速点云配准流水线 | 10x+ |
7.3 嵌入式平台适配
| 平台 | 算力 | 可行方案 |
|---|---|---|
| Jetson Orin | 275 TOPS | LIO-SAM / Fast-LIO2 |
| Jetson Xavier NX | 21 TOPS | LeGO-LOAM 可运行 |
| Raspberry Pi 5 | 约0.1 TOPS | 需大幅简化(仅2D激光) |
| STM32 + FPGA | 异构 | 专用硬件加速 |
8. 方向七:深度学习融合
8.1 基于学习的特征提取
传统:曲率 → 角点/面点 (手工设计,对噪声敏感) 学习:MobileNet/PointNet → 点级特征描述子 ↓ 更鲁棒、噪声更少代表工作:DeepLO(用 PointNet++ 提取点云特征替代手工曲率)
8.2 基于学习的点云配准
传统:KD-Tree 最近邻 → 点到线/面距离 学习:DCP / RPM-Net / GeoTransformer → 直接预测对应关系 ↓ 对初始位姿更鲁棒,退化场景更稳定8.3 基于学习的地点识别
传统:Scan Context / 手工全局描述子 学习:OverlapNet / LCDNet → CNN/Transformer 全局描述子 ↓ 对视角变化、季节变化更鲁棒9. 各系统特点速查表
| 系统 | 发表年份 | 传感器 | 回环 | IMU | 优化方式 | 代码难度 | 推荐场景 |
|---|---|---|---|---|---|---|---|
| A-LOAM | 2019 | LiDAR | ✗ | ✗ | Ceres | ★★ | 学习入门 |
| LeGO-LOAM | 2018 | LiDAR | ✓ | ✗ | GTSAM | ★★ | 地面机器人 |
| LIO-SAM | 2020 | LiDAR+IMU+GPS | ✓ | ✓ | GTSAM/iSAM2 | ★★★ | 多传感器融合 |
| Fast-LIO2 | 2021 | LiDAR+IMU | ✗ | ✓ | IESKF | ★★★★ | 无人机 |
| Faster-LIO | 2022 | LiDAR+IMU | ✗ | ✓ | IESKF | ★★★★ | 高速场景 |
| Point-LIO | 2023 | LiDAR+IMU | ✗ | ✓ | IESKF | ★★★★★ | 极致实时 |
| FAST-LIVO2 | 2024 | LiDAR+视觉+IMU | ✗ | ✓ | IESKF | ★★★★★ | 多模态融合 |
10. 总结
激光SLAM的优化方向可以概括为"三板斧":
- 加回环:从无回环的 LOAM 到有回环的 LeGO-LOAM/LIO-SAM,消除长期漂移
- 加IMU:从纯激光 LOAM 到激光-惯性 LIO-SAM/Fast-LIO2,提升高动态鲁棒性
- 加效率:从 Ceres 优化到 IESKF 滤波,从 KD-Tree 到 ikd-Tree,实现毫秒级实时
2024-2025年的最新趋势是多模态紧耦合(FAST-LIVO2)和逐点实时处理(Point-LIO),激光SLAM正在向"零延迟、全场景、多传感器"的方向演进。