主流 3D SLAM 算法核心架构深度解析:VINS、ORB-SLAM3 与 FAST-LIO
在当前的机器人、无人机与空间计算(AR/VR)领域,3D SLAM(同步定位与建图)技术是不可或缺的底层基石。面对视觉和激光雷达(LiDAR)这两大核心传感器阵营,如何理解其背后的主流算法架构,是每个 SLAM 算法工程师的必修课。
本文将对近年来最具代表性的三大顶尖 SLAM 开源框架------VINS、ORB-SLAM3 与 FAST-LIO 进行深度拆解与横向对比,帮助大家理清它们的底层逻辑与适用场景。
一、 VINS:极致平滑的视觉惯性"领航员"
在视觉 SLAM 领域,引入 IMU 形成紧耦合系统(VIO)已经成为提升鲁棒性的标配。香港科技大学沈劭劼团队开源的 VINS(以 VINS-Mono 和 VINS-Fusion 为代表)是基于非线性优化的紧耦合 VIO 经典之作。它的核心优势在于极其轻量化的前端和出色的局部轨迹平滑性。
核心技术架构
- 极简的光流前端: VINS 放弃了耗时的特征描述子提取(如 ORB、SIFT),采用 KLT 稀疏光流法直接跟踪图像特征点。这极大地降低了前端的 CPU 计算开销,保证了系统的高频运行。
- IMU 预积分技术: 相机帧率通常在 30Hz,而 IMU 往往高达 200Hz。VINS 引入预积分机制,将两帧图像间的高频 IMU 数据集成为一个相对运动约束,彻底避免了后端优化迭代中重复的数值积分运算。
- 滑动窗口与边缘化: 系统后端维护一个包含最新若干关键帧的滑动窗口(Sliding Window)。为了控制计算规模,最老的状态会被边缘化(Marginalization),其携带的约束信息通过舒尔补转化为先验矩阵保留,既控制了计算量又防止了信息丢失。
适用场景: 非常适合需要高频、低延迟位姿输出进行闭环控制的移动平台,如微型无人机(UAV)的自主飞行和高速动态避障。
二、 ORB-SLAM3:多地图视觉 SLAM 的"测绘大师"
如果说 VINS 专注于局部的敏捷与平滑,那么萨拉戈萨大学开源的 ORB-SLAM3 则是基于特征点法的集大成者。它是第一个在单个系统中完美支持单目、双目、RGB-D 以及纯视觉/视觉-惯性模式的框架,致力于构建全局一致的高精度地图。
核心创新突破
- Atlas 多地图系统: 这是 ORB-SLAM3 最具革命性的功能。当相机被严重遮挡导致"跟踪丢失"时,系统不会崩溃,而是将当前地图挂起(休眠)并立刻开启一张新地图。当再次捕获到熟悉的历史场景时,底层会通过强大的闭环检测将新旧地图无缝缝合(Map Merging)。
- MAP IMU 初始化: 提出了一种基于最大后验估计(MAP)的快速 IMU 初始化方法。即使在慢速或复杂的运动轨迹下,也能在几秒内准确估计出真实的尺度(Scale)、重力方向和 IMU 零偏。
- 高精度的图优化后端: 极其依赖 ORB 特征点提取与描述子匹配,后端采用复杂的局部光束法平差(Local BA)和全局 BA,确保了地图点在 3D 空间中的绝对精度。
适用场景: AR/VR 设备的长时间空间定位、大场景下的高精度三维重建,以及需要频繁复用历史地图的长期运行任务。
三、 FAST-LIO:激光惯性状态估计的"效率革命"
当传感器从相机切换到 3D 激光雷达时,自带的精确深度信息让建图的几何精度实现了质的飞跃。香港大学 MaRS 实验室推出的 FAST-LIO(特别是 FAST-LIO2)打破了"现代 SLAM 必须依赖图优化"的固有认知,用一套极其优雅的滤波方案征服了 Lidar SLAM 领域。
核心数学与工程利器
- IESKF (迭代误差状态卡尔曼滤波): FAST-LIO 的核心数学引擎。通过将系统状态拆分为"名义状态"和极其微小的"误差状态",有效避免了奇异性问题。结合卡尔曼滤波的多次迭代修正,在保持极低计算延迟的同时,达到了媲美复杂图优化的精度。
- ikd-Tree 增量数据结构: FAST-LIO2 在工程上的巨大飞跃。它直接放弃了传统的特征提取(不再区分边缘点和平面点),将原始稠密点云直接送入状态更新模块。这得益于其首创的 ikd-Tree,支持点云地图在运行时的动态增删与快速自平衡,让最近邻搜索速度呈指数级提升。
- 无惧退化场景: 由于直接使用原始点云进行点到面的残差构建,算法在长走廊、隧道等缺乏明显几何特征的"退化场景"中依然表现出惊人的鲁棒性。
适用场景: 室外自动驾驶的高精里程计、算力受限平台的 3D 实时建图、以及存在剧烈运动和复杂几何结构的环境探索。
四、 横向对比与选型总结
为了方便大家在实际工程中快速选型,特将这三大算法的核心差异整理如下:
| 对比维度 | VINS (Mono/Fusion) | ORB-SLAM3 | FAST-LIO2 |
|---|---|---|---|
| 主导传感器 | 相机 (单/双目) + IMU | 相机 (多模态) + IMU | 3D 激光雷达 + IMU |
| 前端机制 | KLT 稀疏光流跟踪 | ORB 特征点提取 + 描述子 | 原始点云 + ikd-Tree 搜索 |
| 核心后端 | 滑动窗口非线性优化 | 局部/全局 光束法平差 (BA) | 迭代误差状态卡尔曼滤波 (IESKF) |
| 最终地图形态 | 稀疏的 3D 轨迹与点云 | 具备拓扑关系的稀疏特征点云 | 物理意义明确的稠密 3D 点云 |
| 核心优势 | 计算轻量、输出极平滑、低延迟 | 多地图管理 (Atlas)、重定位极强 | 算力消耗极低、无惧退化场景 |
总结:
如果你正在做无人机飞控或轻量级的视觉定位,VINS 是提供高频状态估计的利器;如果你的项目偏向 AR 或者需要在大场景中反复游走建图,ORB-SLAM3 的 Atlas 机制无可替代;而一旦你的硬件栈里拥有了 3D 激光雷达,且追求极致的实时性与算力性价比,FAST-LIO 绝对是当下的首选。