简介
ORB-SLAM3 是由 UZ-SLAMLab 开发的开源实时 SLAM(Simultaneous Localization And Mapping,同时定位与建图)库,于 2021 年 12 月 22 日发布 V1.0 版本。作为 ORB-SLAM 系列的最新演进,它是首个能够使用单目、双目和 RGB-D 相机,结合针孔与鱼眼镜头模型,执行视觉、视觉惯性及多地图 SLAM 的实时库。在各类传感器配置下,ORB-SLAM3 均展现出与文献中最佳系统相当的鲁棒性,并在精度上显著超越。该项目不仅为学术界提供了强大的研究基准,也为工业界提供了可直接部署的高精度定位与建图解决方案。
核心价值:
- 多模态融合:首次统一支持纯视觉、视觉惯性及多地图 SLAM
- 传感器全面:兼容单目、双目、RGB-D 相机,支持针孔与鱼眼模型
- 精度领先:在多个标准数据集上实现当前最高的定位精度
- 实时性能:在普通计算机上即可实现实时处理
技术定位:ORB-SLAM3 代表了视觉 SLAM 技术的前沿水平,通过引入惯性测量单元(IMU)融合和多地图系统,解决了长期运行中的尺度漂移、累积误差和场景变化适应等关键挑战。其开源特性促进了整个 SLAM 领域的技术进步与应用普及。
主要功能
1. 视觉 - 惯性 SLAM 深度融合
ORB-SLAM3 实现了视觉与惯性测量的紧密耦合,通过创新的惯性初始化方法,快速准确地估计尺度、重力方向、速度及 IMU 偏差。系统采用最大后验概率估计,在初始化阶段仅使用惯性测量进行优化,确保视觉 - 惯性融合的稳定性和准确性。这种深度融合使系统在快速运动、纹理缺失或动态干扰等挑战性场景中仍能保持鲁棒跟踪。
2. 多地图系统(Atlas)
引入基于位置识别的多地图管理系统,能够创建并管理多个独立子地图。当系统检测到已访问区域时,自动进行地图合并;当跟踪丢失时,创建新的子地图。这种机制支持长期、大规模环境下的连续运行,有效解决了传统 SLAM 系统在长时间运行后因累积误差导致的地图不一致问题。系统能够智能地在不同子地图间切换,实现无缝导航体验。
3. 相机模型扩展支持
除了传统的针孔相机模型,ORB-SLAM3 新增对鱼眼镜头模型的支持,特别适用于广角视觉系统。鱼眼模型处理大幅度的图像畸变,扩展了系统的适用场景,如无人机、车载环视系统等需要大视野的应用。系统提供统一的接口处理不同相机模型,用户只需在配置文件中指定相应参数即可切换。
4. 改进的特征处理与匹配
基于 ORB(Oriented FAST and Rotated BRIEF)特征,系统在特征检测、描述和匹配环节进行了多项优化。采用多尺度金字塔策略处理不同距离的特征,增强尺度不变性。改进的特征匹配算法在保持实时性的同时提高匹配准确性,特别是在低纹理或重复纹理区域。系统支持在线图像校正,处理原始相机输入。
5. 增强的闭环检测与重定位
集成改进的 DBoW2 位置识别系统,支持视觉词袋的快速场景匹配。闭环检测模块能够准确识别已访问场景,触发全局优化以校正累积误差。重定位功能在跟踪失败后通过查询关键帧数据库快速恢复相机位姿,提高系统鲁棒性。支持多地图间的跨地图位置识别,实现子地图的智能合并。
6. 分层优化架构
采用三层优化策略:短期跟踪的运动估计、中期局部地图的束调整、长期闭环后的全局优化。局部束调整优化当前关键帧及其共视关键帧,确保局部一致性;全局束调整在闭环检测后优化整个地图,保证全局精度。优化过程使用 g2o 图优化库,最小化重投影误差和惯性测量误差。
7. ROS 全节点支持
提供完整的 ROS(Robot Operating System)节点,支持单目、单目惯性、双目、双目惯性及 RGB-D 相机的实时处理。ROS 节点便于与机器人系统的其他组件集成,如路径规划、控制模块和传感器融合。节点支持在线图像校正和 CLAHE 直方图均衡化(主要用于 TUM-VI 数据集)。
安装与配置
环境要求
操作系统:
- 推荐 Ubuntu 16.04 或 18.04,其他平台也可编译
- 需要 C++11 或 C++0x 编译器支持
- 建议使用性能较强的计算机(如 i7 处理器)以确保实时性能
核心依赖:
- Pangolin:用于可视化和用户界面,需从 GitHub 下载安装

