DYING4EVER

NOTES

slam

SLAM 算法常见分类

SLAM(Simultaneous Localization and Mapping,同步定位与建图)是指机器人在未知环境中,一边估计自身位置,一边构建环境地图。常见 SLAM 算法主要可以按传感器组合分为以下几类。

1. 激光 SLAM

激光 SLAM 主要使用 2D 或 3D 激光雷达进行定位与建图,常用于移动机器人、无人车和室内导航。

算法 特点
GMapping 经典 2D 激光 SLAM,基于粒子滤波
Hector SLAM 不依赖里程计,适合高频激光雷达
Cartographer Google 开源,支持 2D/3D,工程应用较多
Karto SLAM 基于图优化的 2D 激光 SLAM
LOAM 经典 3D 激光 SLAM
LeGO-LOAM 面向地面机器人的轻量化 3D 激光 SLAM
特点:精度较高、尺度准确、对光照不敏感;但激光雷达成本较高,语义信息较少。

2. 视觉 SLAM

视觉 SLAM 主要使用相机进行定位与建图,包括单目、双目和 RGB-D 相机,常用于机器人、AR/VR 和无人机。

算法 类型 特点
ORB-SLAM 单目 经典特征点法视觉 SLAM
ORB-SLAM2 单目/双目/RGB-D 支持多种相机输入
ORB-SLAM3 视觉/视觉惯性 支持 IMU,多地图能力更强
LSD-SLAM 单目 直接法,适合大尺度环境
DSO 单目 直接法,不依赖特征点
RTAB-Map RGB-D/双目/激光 回环检测能力强,适合 RGB-D 建图
特点:相机成本低、信息丰富,可获取纹理和颜色;但对光照、运动模糊和弱纹理环境较敏感,单目还存在尺度不确定问题。

3. 视觉惯性 SLAM / VIO

视觉惯性 SLAM 使用相机和 IMU 融合。相机提供图像信息,IMU 提供加速度和角速度信息,可以提高快速运动场景下的稳定性。

算法 特点
MSCKF 经典滤波式 VIO
OKVIS 优化式视觉惯性算法
VINS-Mono 经典单目 + IMU 算法
VINS-Fusion 支持单目、双目、IMU、GPS 融合
OpenVINS 开源 VIO 框架
特点:比纯视觉 SLAM 更稳定,适合无人机、AR/VR 和移动机器人;但需要相机与 IMU 标定,对时间同步要求较高。

4. 激光惯性 SLAM / LIO

激光惯性 SLAM 使用激光雷达和 IMU 融合。激光雷达提供空间结构,IMU 提供高频运动信息,常用于高精度三维建图。

算法 特点
LOAM 经典激光里程计与建图算法
LeGO-LOAM 针对地面机器人优化
LIO-SAM 激光 + IMU + GPS,基于因子图优化
FAST-LIO 实时性强,适合机载或车载平台
FAST-LIO2 速度快、精度高,工程应用较多
特点:精度高、实时性强、适合室外和三维建图;但传感器成本较高,标定和参数调试较复杂。

5. 多传感器融合 SLAM

多传感器融合 SLAM 会同时使用激光雷达、相机、IMU、轮速计、GPS 等传感器,以提高系统鲁棒性。

算法 传感器组合 特点
LIO-SAM LiDAR + IMU + GPS 适合室外三维建图
VINS-Fusion Camera + IMU + GPS 适合视觉惯性定位
LVI-SAM LiDAR + Visual + IMU 融合激光、视觉和惯性信息
R3LIVE LiDAR + Camera + IMU 可生成彩色三维地图
Kimera Camera + IMU 支持语义建图和三维重建
特点:鲁棒性强,能适应复杂环境,是机器人和自动驾驶的重要方向;但系统结构复杂,对标定、同步和计算资源要求较高。

6. 工程场景选择

场景 常用方案
室内差速轮机器人 2D 激光 SLAM
ROS 2 小车建图导航 SLAM Toolbox、Cartographer
RGB-D 室内建图 RTAB-Map、ORB-SLAM2 RGB-D
无人机定位 VINS-Mono、VINS-Fusion
室外三维建图 LOAM、LeGO-LOAM、LIO-SAM、FAST-LIO2
自动驾驶/高精度机器人 LIO、多传感器融合 SLAM

7. 总结

常见 SLAM 主要包括:激光 SLAM、视觉 SLAM、视觉惯性 SLAM、激光惯性 SLAM 和多传感器融合SLAM。对于 ROS 移动机器人,最常用的是激光 SLAM;对于无人机和 AR/VR,常用视觉惯性 SLAM;对于自动驾驶和高精度三维建图,常用激光惯性 SLAM 或多传感器融合 SLAM。