开源slam整理

文章目录

罗列一些开源slam算法,有的特别耳熟能详的没写出来。如LOAM,cartographer等。

1:激光类

该文档聚焦多传感器融合 SLAM,涵盖激光 - 视觉 - 惯性、激光 - 惯性、视觉 - 惯性增强及 GPS 融合等算法,核心内容如下:

1:单纯激光类
算法 / 类别特点开源地址
激光主导算法
CT-ICP连续时间建模,B 样条轨迹拟合解决运动畸变,剧烈运动场景误差比传统 ICP 降 50%。KITTI上显示运算耗时较短https://github.com/jedeschaud/ct_icp
Traj-LO纯雷达 构建简单有效的连续时间轨迹模型,从而紧密耦合几何信息与运动平滑性约束‌https://github.com/kevin2431/Traj-LO
GLIM手动优化;GPU加速;https://github.com/koide3/glim
KISS-ICP点到点ICP;雷达slam;实时性高https://github.com/PRBonn/kiss-icp
PIN-SLAM激光雷达与RGB-D相机;python;GPU ;kitti -20https://github.com/PRBonn/PIN_SLAM
SiMpLENDT;只匹配;代码轻量化且内存占用低;kitti-17https://github.com/vb44/SiMpLE
FAST-LIO 系列基于 IKFoM,适用于室外高速机器人,M2DGR 数据集定位精度提升 61.9%;FASTER-LIO 引入增量体素地图降低内存。-
FAST-LIO2高效激光 - 惯性里程计,iKD-Tree 加速搜索,多线程并行计算,适用于资源受限平台,处理速度达 100Hz。https://github.com/hku-mars/FAST_LIO
FASTER-LIO高效激光 - 惯性里程计,ivox点云存储。https://github.com/gaoxiang12/faster-lio
Point-LIO逐点LIO框架,极高频率;是随机过程增强的运动学模型,将IMU测量作为输出建模。应对激烈运动场景。https://github.com/hku-mars/Point-LIO
funny_lidar_slam支持多种imu、多种优化方法https://github.com/zm0612/funny_lidar_slam

https://github.com/zhan994/faster-lio_detailed

2:深度学习激光

该文档聚焦深度学习与激光 SLAM 结合的算法,优化动态处理、特征提取等:

算法名称特点开源地址
SuMa++基于 SuMa 框架,集成 RangeNet++/SqueezeSegv3 语义分割,剔除动态物体点云,语义辅助回环检测,支持大规模场景。https://github.com/PRBonn/suma_plus_plus
LOAM-Livox适配 Livox 非重复扫描雷达,神经网络预测点云运动模糊,优化低帧率雷达位姿估计,支持与 IMU 紧耦合。https://github.com/Livox-SDK/LOAM_Livox
C-LOAM动态场景鲁棒激光 SLAM,两阶段深度学习分割静态 / 动态物体,仅用静态点云计算位姿,误差比传统 ICP 降 30%+。https://github.com/Yaepiii/C-LOAM
OverlapNet孪生网络学习点云重叠区域相似性,生成全局位置描述子,抗视角变化与遮挡,适合大规模场景定位。https://github.com/PRBonn/OverlapNet/
HDL-Graph-SLAM模块化框架,支持多激光雷达,集成深度学习前端(如点云配准网络),便于二次开发。https://github.com/koide3/hdl_graph_slam
4DMOS4D 卷积提取点云时空特征,贝叶斯滤波实时识别动态障碍物,处理大面积遮挡场景优于几何方法。https://github.com/PRBonn/4DMOS
SLAMesh港科大网格实时 SLAM,CPU 构建拓扑一致三角网格地图,替代点云 / 体素,40Hz 实时,适合资源受限平台。https://github.com/lab-sun/SLAMesh
LT-Mapper终身动态建图,分解为多会话 SLAM、动态检测与地图管理,锚节点对齐轨迹,增量地图减少存储,支持长期更新。https://github.com/gisbi-kim/lt-mapper
TurboReg最大团优化替代暴力搜索,配准速度提升 200 倍,精度达 SOTA,单帧处理 < 5ms,兼容多源点云。https://github.com/Laka-3DV/TurboReg

2:视觉类

算法 / 类别特点开源地址
视觉 - 惯性增强混合算法
ORB-SLAM3(扩展版)集成激光深度辅助视觉特征匹配,支持多地图切换与闭环检测,EuRoC 双目 - 惯性模式 RMSE 仅 1.2cm。https://github.com/UZ-SLAMLab/ORB_SLAM3
PL-VINS点线融合,结合线特征与 IMU 预积分,弱纹理环境定位误差比 VINS-Mono 降 24%。-
融合 GPS 算法
GVINS视觉 - 惯性 - GNSS 紧耦合,因子图优化,支持多卫星系统,GNSS 信号间歇时仍稳定。https://github.com/HKUST-Aerial-Robotics/GVINS
浙大 GPS/Visual/INS 算法EKF 融合 GPS 与 IMU 数据,作为视觉 SLAM 初始位姿,图优化联合多帧,定位误差比纯视觉惯性方案降 40%。论文:https://wap.cnki.net/touch/web/Dissertation/Article/10335-1017051032.nh.html
AdaBoost 优化的 MIMUs/GPS 算法用 BP 神经网络预测 GPS 失锁时 MIMUs 误差,辅助卡尔曼滤波,50 秒失锁期位置误差减 25%。论文:《电光与控制》2018 年第 12 期
松耦合 EKF 融合(IMU+GPS)扩展卡尔曼滤波融合,注重四元数处理与时间同步,适合自动驾驶。参考:https://download.ZEEKLOG.net/download/qRZQaOqFbIVs/90578001
群调度滤波算法(GPS/INS)群调度策略平衡精度与计算时间,航空场景精度提升 87%,耗时减 30%。论文:《中国安全生产科学技术》2020 年第 10 期
其他
VILO视觉 - 惯性 - 腿里程计,适用于 Unitree A1 和 Go1 机器人。https://github.com/ShuoYangRobotics/Cerberus.git
VoxelMap++轻量化体素地图管理,内存占用减少 30%,支持非平面地形。https://github.com/uestc-icsp/VoxelMapPlus_Public
1:大场景视觉

该文档聚焦大场景视觉 SLAM 算法,涵盖多传感器融合、协同建图、高效场景表示等技术:

算法名称特点开源地址
ORB-SLAM3支持多地图系统(Atlas)实现千米级建图,多传感器融合应对尺度漂移,KITTI 里程计排名前 5(00 序列误差 < 0.6%)。https://github.com/UZ-SLAMLab/ORB_SLAM3
VINS-Fusion视觉 - 惯性紧耦合优化,GPS / 视觉融合校正全局位姿,10km 城市道路位置误差 < 0.1%,支持 4K 实时处理。https://github.com/HKUST-Aerial-Robotics/VINS-Fusion
COVINS多机器人协同大场景建图,分布式优化架构支持跨设备地图合并,4 台无人机效率提升 300%,1.2 万㎡博物馆重建完整度 95%。https://github.com/VIS4ROB-lab/covins
VINGS-Mono单目惯性高斯溅射 SLAM,处理 5000 万高斯椭球的大规模城市场景,NVS 闭环检测修正地图,动态滤波器应对室外干扰。https://vings-mono.github.io/
PLGSLAM大型室内场景专用,渐进式场景表示(动态划分局部场景),局部 - 全局捆绑调整消除累积误差,实时重建平滑。https://github.com/dtc111111/plgslam
Voxel-SLAMGPU 加速多级体素地图管理,支持室内外无缝切换,结合语义分割压缩点云,16km² 场景内存仅 1.2GB。https://github.com/hku-mars/Voxel-SLAM
SplaTAM3D 高斯溅射 RGB-D SLAM,支持 400FPS 渲染与动态场景更新,重建分辨率 876×584,适用于沉浸式重建。https://github.com/spla-tam/SplaTAM
DROID-SLAM迭代稠密束调整层优化位姿与深度,支持单目 / 双目 / RGB-D 输入,ETH3D 大规模场景重建排名第一,泛化性强。https://github.com/princeton-vl/DROID-SLAM
2:轻量视觉

该文档聚焦轻量化视觉 SLAM 及边缘计算优化,适合资源受限设备:

算法名称特点开源地址
ORB-SLAM3多传感器支持(单目 / 双目 / RGB-D),模块化设计(跟踪 / 建图 / 回环分离),CPU 占用 < 15%(树莓派 4B),ROS 2 接口适配边缘设备。https://github.com/UZ-SLAMLab/ORB_SLAM3
SVO半直接法(混合直接法与特征点法),帧率 100Hz(640×480),代码库 2MB,内存 < 50MB,适合 MCU 级设备(如 STM32H7)。https://github.com/uzh-rpg/rpg_svo
SVO_edgeletSVO 改进版,移除 ROS 依赖,优化关键帧策略,自动模型选择与并行化计算,提升 ARM 设备(如树莓派)效率。https://github.com/HeYijia/svo_edgelet
DROID-SLAMTransformer 架构动态分配计算资源,自适应分辨率(320×240),推理速度提升 3 倍(NVIDIA Xavier),动态场景误差降 30%。https://github.com/princeton-vl/DROID-SLAM
PiSlam专为树莓派设计,优化 ORB 特征检测,NEON 指令集加速,简化 Harris 评分,树莓派 3 单帧检测 8.4ms。https://github.com/weixr18/Pi-SLAMhttps://github.com/Immortalqx/pi-slam-fusion
LSD-SLAM半稠密直接法,基于光度一致性约束,CPU 实时建图,适合低纹理环境,通过概率深度滤波优化。https://github.com/tum-vision/lsd_slam
AirSLAM点线特征融合,TensorRT 加速 PLNet 特征提取,Jetson Nano 实现 40Hz 定位,动态场景误差 < 1%。https://github.com/sair-lab/AirSLAM
DXSLAM深度特征 SLAM,集成 HF-Net 提取关键点,FBoW 词袋与 OpenVINO 加速,无 GPU 设备实时闭环检测(初始化 40ms)。https://github.com/ivipsourcecode/dxslam
VINS-MobileVINS 轻量移植版,针对手机 ARM 优化,IMU 预积分 + 滑动窗口优化,功耗 < 1W。https://github.com/HKUST-Aerial-Robotics/VINS-Mobile
DynaSLAM-LiteDROID-SLAM 轻量化分支,MobileNet 替换 Mask R-CNN,动态物体剔除延时 15ms(Jetson TX2)。https://github.com/BertaBescos/DynaSLAM
DSO直接法稀疏 SLAM,光度误差优化位姿与深度,逆深度参数化,Jetson TX2 单目实时定位。https://github.com/JakobEngel/dso
OKVIS紧耦合视觉 - IMU,滑动窗口优化,边缘化旧关键帧,Jetson AGX Xavier 实现 50Hz 实时运行。https://github.com/ethz-asl/okvis
LDSO直接法 + 稀疏优化,无需特征提取,自动选择 5-10% 关键像素,Jetson Nano 30fps,内存 < 300MB。https://github.com/tum-vision/LDSO
OpenVINSMSCKF 框架,支持单目 / 双目 / IMU,固定滞后平滑器替代全局优化,STM32MP1 20fps,功耗 < 2W。https://github.com/rpng/open_vins
TartanVO端到端 VO,MobileNetV3 替代 ResNet,模型 3.5MB,INT8 量化推理速度提升 3 倍,骁龙 865 60fps。https://github.com/castacks/tartanvo
算法名称特点开源地址
边缘 SLAM
Edge-SLAMORB-SLAM2 边缘优化版,支持 MQTT 协议与云端协同。https://github.com/droneslab/edgeslam
TinySLAMMCU 轻量实现,仅需 32KB RAM。https://github.com/OSLL/tiny-slam-ros-cpp
SwarmMap多代理协作 SLAM,分布式计算,Jetson 集群支持 20 + 代理,轨迹误差 < 38cm。https://github.com/MobiSense/SwarmMap
Jetson-SLAMJetson 平台 GPU 加速,PyCA 技术优化特征提取,432×240 分辨率下 60Hz + 帧率。https://github.com/ashishkumar822/Jetson-SLAM
3:深度学习视觉

该文档聚焦深度学习与视觉 SLAM 结合的算法,涵盖端到端、动态处理等:

算法名称特点开源地址
DeepVO端到端视觉里程计,CNN+LSTM 直接从 RGB 帧预测 6-DoF 位姿,解决低纹理场景漂移。https://github.com/ChiWeiHsiao/DeepVO-pytorch
CNN-SLAMCNN 预测单目深度图与 LSD-SLAM 结合,实时生成稠密深度图,提升单目尺度一致性。https://github.com/iitmcvg/CNN_SLAM
DynaSLAM基于 ORB-SLAM2,集成 Mask R-CNN 检测动态物体并剔除,提升静态场景定位精度。https://github.com/BertaBescos/DynaSLAM
TANDEM单目深度估计网络(如 Monodepth2)与直接法结合,实时构建全局一致稠密 3D 地图。https://github.com/tum-vision/tandem
DeepFactors概率稠密 SLAM,VAE 学习场景表示(几何 + 外观),支持高效回环检测。https://github.com/jczarnowski/DeepFactors
BoW3D3D 特征 + BoW 技术优化闭环检测,减少大规模场景累计误差,适用于 RGB-D/LiDAR SLAM。https://github.com/YungeCui/BoW3D
MobileNeRF移动端优化 NeRF,速度比传统快 10 倍,轻量网络 + WebGL 加速,支持 Android/iOS/Web。https://mobile-nerf.github.io/
XRDSLAM支持 NeRF 和 3D 高斯泼溅等新型场景表示技术。https://github.com/openxrlab/xrdslam
VINet融合视觉与 IMU,CNN 处理图像 + RNN 融合时序 IMU,KITTI 实现厘米级位姿估计。https://github.com/HTLife/VINet
SC-SfMLearner无监督单目深度与运动估计,引入几何一致性损失提升动态场景鲁棒性。https://github.com/JiawangBian/SC-SfMLearner-Release
GO-SLAM3D 高斯表示 + 物体级语义分割,实现动态物体剔除与场景交互式编辑。https://github.com/youmi-zym/GO-SLAM
BA-Net神经网络替代传统 BA 优化,设计可微分 LM 算法层,联合训练前端深度与后端优化。https://github.com/frobelbest/BANet
SuperGlue-SLAM集成 SuperPoint(特征点提取,能抵抗低纹理环境)+SuperGlue(图神经网络匹配特征点),匹配正确率比 ORB-SLAM 提升 60%,动态特征自动剔除。SuperPoint:https://github.com/magicleap/SuperPointPretrainedNetwork;SuperGlue:https://github.com/magicleap/SuperGluePretrainedNetwork
LightGlue特征点匹配算法,说是比SuperGlue强一些https://github.com/cvg/LightGlue.git
4:视觉语义

该文档聚焦视觉语义 SLAM,融合语义信息提升定位与建图鲁棒性:

算法名称特点开源地址
Kimera2Kimera 改进版,增强特征跟踪、关键帧选择,支持多模态输入(单目 / 双目 / RGB-D 等),优化回环检测抗虚假匹配。https://github.com/mit-asrl/kimera
SlideSLAM稀疏轻量去中心化框架,数据驱动前端实例分割(RGBD / 激光雷达),语义驱动回环检测,支持多机器人协同。https://github.com/uzh-rpg/slideslam
ORB_SLAM2_SSD_Semantic集成 SSD 目标检测、光流动态物体检测与 Octomap 语义地图,支持动态环境稠密重建与目标数据库构建。https://github.com/Ewenwan/ORB_SLAM2_SSD_Semantic
CubeSLAM物体级 SLAM,立方体参数化物体,联合优化相机位姿 + 物体位姿 + 地图点,定位精度提升 23%,动态物体跟踪精度 82.1%(KITTI)。https://github.com/shichaoy/cube_slam
Kimera-Semantics实时语义网格重建,融合 VIO 与 3D 语义分割,无人机平台 10Hz 建图,语义标注准确率 89.4%,内存比 ElasticFusion 低 40%。https://github.com/MIT-SPARK/Kimera-Semantics
DSP-SLAM动态场景语义 SLAM,集成实例分割与运动分割,TUM 动态数据集 ATE 1.7cm(ORB-SLAM2 的 3.2 倍),支持 CAD 模型替换。https://github.com/JingwenWang95/DSP-SLAM
SemanticFusionElasticFusion+CNN 语义分割融合,NYUv2 体素级语义标注精度 83.6%,支持 80 类 COCO 物体实时检测。https://github.com/seaun163/semanticfusion
QQ-SLAM神经隐式 SLAM,查询量化减少输入方差加速优化,重建质量比 NICE-SLAM 提升 34%,支持实时语义地图。https://github.com/machineperceptionlab/qq-slam
Semantic_SLAM融合 ORB 特征、GPS 及地标语义(如 Google 地图 POI),构建带拓扑关系的语义地图,适用于大型户外导航。https://github.com/1989Ryan/Semantic_SLAM
5:后SLAM时代核心算法/项目汇总表

后SLAM时代的主流技术架构采用双层协同设计,兼顾几何精度与交互体验:

  • 保命层(Survival):由LiDAR或传统SLAM算法(如FAST-LIO2)负责,提供绝对几何定位精度、实时姿态估计与防撞避障能力。
  • 貌美层(Appearance):由3DGS算法负责,生成照片级纹理的三维场景,支持语义理解与沉浸式人机交互。
算法/项目名称核心特点适配传感器有效开源地址
NeRF(Instant-NGP加速版)隐式辐射场建模,支持任意视角渲染;多分辨率哈希编码+Tiny MLP,训练仅5秒、渲染>60FPS,显存占用<4GB任意相机(纯RGB)https://github.com/NVlabs/instant-ngp
3DGS(原版)三维高斯点云+光栅化,100+FPS实时渲染;模型体积小,超远距离细节略逊NeRF;3DGS技术基础框架任意相机(纯RGB/RGB-D)https://github.com/graphdeco-inria/gaussian-splatting
Neural-SLAM融合CNN/LSTM与传统SLAM,神经网络提特征、预测位姿;对光照/动态物体鲁棒,计算量大依赖GPU相机(纯RGB)https://github.com/devendrachaplot/Neural-SLAM
BARF光束平差+NeRF,同步优化位姿与辐射场;降低初始位姿敏感性,适用于位姿噪声大场景,精度提升15%-30%相机(纯RGB)https://github.com/chenhsuanlin/bundle-adjusting-NeRF
OpenGS-SLAM纯RGB支持无界户外场景;点图回归网络保证位姿一致性,自适应尺度匹配解决漂移;适配自动驾驶/无人机相机(纯RGB)代码库:https://github.com/3DAgentWorld/OpenGS-SLAM;项目主页:https://3dagentworld.github.io/opengs-slam/
SceneSplat49K规模3DGS评估基准,覆盖室内外场景;支持算法性能对比测试相机(纯RGB/RGB-D)https://github.com/unique1i/SceneSplat
Gaussian-SLAM(LET-NET版)3DGS实时渲染(>30fps/1080p);联合优化位姿与高斯参数;基于LET-NET深度估计,室内稳定RGB-D/纯RGBhttps://github.com/VladimirYugay/Gaussian-SLAM
Gaussian-SLAM(Mishne-Lab版)3DGS实时渲染;专注室内场景重建,真实数据集表现可靠RGB-D/纯RGBhttps://github.com/Mishne-Lab/Gaussian-SLAM
XRDSLAM模块化深度学习框架,多进程解耦跟踪/建图/可视化;集成NeRF/3DGS,提供ATE/PSNR等标准化评估;适用于多传感器融合算法研究多传感器(相机/LiDAR/IMU等)https://github.com/openxrlab/xrdslam
Hier-SLAMLLM辅助语义编码,层级压缩存储(Log(N));2000FPS(含语义)/3000FPS(无语义)渲染;适配500+类语义场景相机(纯RGB/RGB-D)https://github.com/LeeBY68/Hier-SLAM
SEGS-SLAM结构化高斯初始化+外观运动嵌入;抗光照突变,TUM数据集轨迹误差降低9.8%;适配动态光照环境RGB-D/纯RGBhttps://github.com/leaner-forever/SEGS-SLAM
MASt3R-SLAM两视图重建先验+二阶图优化;15FPS实时稠密建图;未校准相机场景超越ORB-SLAM3,适配低算力相机(纯单目)https://github.com/rmurai0610/MASt3R-SLAM
LIV-GaussMap(社区版)适配Livox非重复扫描雷达;FAST-LIO2提供100Hz位姿;自适应体素初始化解决点云疏密不均;几何+光度联合优化Livox雷达+相机+IMUhttps://github.com/sheng00125/LIV-GaussMap
LIV-GaussMap(港大火星实验室版)LiDAR-IMU-视觉融合;适配室外大场景/自动驾驶;港大火星实验室出品,鲁棒性强LiDAR+相机+IMUhttps://github.com/hku-mars/LIV-GaussMap
Gaussian-LIC学术级紧耦合方案;3DGS渲染误差反向修正LiDAR里程计漂移;滑动窗口控制显存,避免溢出LiDAR+相机+IMUhttps://github.com/Ok8828/Gaussian-LIC
Photo-SLAMCVPR 2024成果;双层架构(稀疏几何SLAM+高斯渲染);少高斯分裂换速度,笔记本/嵌入式可实时;多传感器融合相机(纯RGB/RGB-D)+ 可选LiDARhttps://github.com/HuajianUP/Photo-SLAM
SplaTAMCVPR 2024成果;RGB-D SLAM标杆,跟踪/建图解耦;深度图边界引导高斯生成,无纹理区域效果优RGB-D相机https://github.com/spla-tam/SplaTAM
Co-SLAMCVPR 2024成果;速度与质量平衡;代码模块化清晰,易上手,适合二次开发与工程落地RGB-D相机https://github.com/HengyiWang/Co-SLAM
GS-SLAMCVPR 2024成果;早期代表性3DGS工作;自适应高斯扩张策略,适配多样室内场景RGB-D相机https://github.com/Niedev/GS-SLAM
RTG-SLAMCVPR 2024成果;支持实时大场景重建,鲁棒性强RGB-D相机https://github.com/MisEty/RTG-SLAM
GS-ICP SLAM2024成果;基于ICP算法优化跟踪精度,定位误差小RGB-D相机https://github.com/Lab-of-AI-and-Robotics/GS_ICP_SLAM
Splat-SLAM引入全局优化策略,提升长序列重建一致性RGB-D相机https://github.com/eriksandstroem/Splat-SLAM
MonoGSCVPR 2024成果;纯单目输入;深度正则化解决尺度模糊问题相机(纯单目)https://github.com/muskie82/MonoGS
LoopSplat内置回环检测模块,优化长序列场景重建一致性相机(纯RGB/RGB-D)https://github.com/GradientSpaces/LoopSplat
CG-SLAM支持单目/RGB-D双输入模式,场景适配灵活相机(纯单目/RGB-D)https://github.com/hjr37/CG-SLAM
SemGauss-SLAM集成语义分割网络,实现语义级三维场景重建RGB-D相机https://github.com/IRMVLab/SemGauss-SLAM
SGS-SLAM专注语义信息提取与重建,可区分多类目标物体RGB-D相机https://github.com/ShuhongLL/SGS-SLAM
NEDS-SLAM适配动态环境,可滤除移动目标对建图的干扰RGB-D相机https://github.com/GDAOSU/NEDS-SLAM
Compact-3DGS提出高斯模型压缩策略,大幅降低存储资源占用相机(纯RGB/RGB-D)https://github.com/maybeLx/Compact-3DGS
MM-3DGS SLAM多模态数据深度融合,提升室外场景重建鲁棒性多传感器(相机/LiDAR等)https://github.com/VITA-Group/MM-3DGS-SLAM
算法名称传感器需求实时性排序重建质量排序核心优势推荐指数
Photo-SLAMRGB-D/单目/Livox雷达1(最高)7(中等偏上)速度最快,适配嵌入式,多传感器兼容⭐⭐⭐⭐⭐(首选落地)
LIV-GaussMapLivox雷达+相机22Livox专用,户外大场景适配,精度+纹理均衡⭐⭐⭐⭐(Livox用户首选)
SplaTAMRGB-D31(最高)稠密重建效果好,代码成熟,入门标杆⭐⭐⭐⭐(高质量重建首选)
Co-SLAMRGB-D43速度质量平衡,易二次开发⭐⭐⭐⭐(工程开发次选)
CG-SLAMRGB-D54深度一致性优,几何结构准确,无纹理场景稳定⭐⭐⭐⭐(几何精度优先)
MonoGS单目/RGB-D68单目场景唯一优选,解决尺度问题⭐⭐⭐(无深度相机时选)
GS-ICP SLAMRGB-D/LiDAR75ICP辅助跟踪稳定,定位误差小,双输入兼容⭐⭐⭐(定位精度优先)
Gaussian-SLAM(Mishne-Lab版)RGB-D/纯RGB86室内小场景专用,稳定性突出⭐⭐⭐(室内小场景首选)
RTG-SLAMRGB-D99大场景优化,鲁棒性强⭐⭐⭐(大场景重建选)
GS-SLAMRGB-D1010早期代表性工作,学术参考价值高⭐⭐(学术参考)
Gaussian-LICLiDAR+相机1111学术级紧耦合,极限精度研究⭐⭐(学术研究首选)
Instant-NGP任意相机(纯RGB)——(渲染专用)——(渲染专用)非SLAM方案,极速渲染/低显存,可作后端补充⭐⭐⭐(演示场景补充)
(注:该表格部分内容由 AI 填充)

环境配置避坑指南

  1. CUDA版本敏感:绝大多数3DGS算法依赖diff-gaussian-rasterization库,该库对CUDA版本兼容性要求严格,强烈建议使用CUDA 11.6/11.7/11.8,搭配PyTorch 1.13或2.0版本;CUDA 12.x版本易出现编译报错。
  2. 显卡驱动匹配:确保NVIDIA显卡驱动版本支持所选CUDA版本(例如CUDA 11.8需驱动版本≥520.61.05)。
  3. 虚拟环境隔离:使用Conda创建独立虚拟环境,优先采用项目提供的environment.yaml文件配置依赖,避免系统Python环境的包冲突。
  4. 编译环境配置:Windows用户需安装Visual Studio 2019/2022并勾选“C++桌面开发”组件,以支持CUDA扩展源码编译;Linux(Ubuntu)环境的配置流程更简洁顺畅。

3:多传感融合

开源算法
算法 / 类别特点开源地址
激光 - 视觉主导算法
FAST-LIVO2采用 ESIKF 框架,直接处理原始 LiDAR 点云和图像数据,支持实时稠密建图,CUDA 加速优化效率,高速场景定位误差 < 0.3%。https://github.com/hku-mars/FAST-LIVO2
Gaussian-LIC2首个激光 - IMU - 相机高斯泼溅(3DGS)SLAM,通过稀疏激光深度监督优化高斯地图,盲区重建误差降 40%,支持动态场景实时渲染。https://github.com/xingxingzuo/gaussian_lic2
LVI-SAM激光 - 视觉 - 惯性紧耦合,前端基于 IMU 预积分和视觉特征点,后端因子图优化,室外大场景 ATE 达 5-10cm,支持非重复扫描激光雷达。https://github.com/TixiaoShan/LVI-SAM
SR-LIVO光 - 惯性 - 视觉紧耦合,通过扫描重建对齐时间戳提升 LIO 精度,剧烈运动或弱纹理环境表现优于 R3LIVE、FAST-LIVO。https://github.com/ZikangYuan/sr_livo
RLIVELIDAR 惯性 - 视觉融合,含 LIO(构建几何结构)和 VIO(呈现纹理)子系统,结合 LiDAR、IMU 和视觉数据。https://github.com/hku-mars/r3live
Ground-Fusion++退化感知的多模态融合框架,自动切换激光/视觉子系统,支持稠密彩色建图。 极端环境(如黑暗、长廊、动态遮挡),鲁棒性极强。https://github.com/sjtuyinjie/Ground-Fusion2
SDV-LOAM半直接视觉里程计;实时性挺好;https://github.com/ZikangYuan/SDV-LOAM
LIMO深度增强的单目视觉框架;半直接法;实时性好https://github.com/johannes-graeter/limo
MOLA多元传感器(2D/3D激光雷达、单目/双目相机、IMU)的即插即用式接入; 解耦(松耦合)https://github.com/MOLAorg/mola
openvins-GPS顾名思义https://github.com/zhouyong1234/open_vins_GPS

RTAB map
RTAB-Map(实时外观基于图的建图)是一种基于RGB-D、立体视觉和激光雷达的图优化SLAM方法,核心依赖增量式外观闭环检测机制。该闭环检测器采用词袋模型(BoW) 来判断新图像源自已知场景位置还是未知区域:当闭环假设被确认后,会向地图的图结构中添加新的约束条件,随后通过图优化器最小化地图中的累积误差。系统内置内存管理策略,可限制用于闭环检测和图优化的场景位置数量,从而在大规模环境中始终满足实时性要求。RTAB-Map可独立使用——搭配手持Kinect、立体相机或3D激光雷达实现6自由度(6DoF)建图;也可部署于搭载激光测距仪的机器人,完成3自由度(3DoF)建图任务。

开源地址:
http://introlab.github.io/rtabmap/
https://github.com/introlab/rtabmap/tree/master

英文术语中文翻译核心作用
Graph-Based SLAM图优化SLAM将地图表示为“节点(场景位置)+边(位置约束)”的图结构,通过优化减少建图误差,是RTAB-Map的核心框架
Incremental Appearance-Based Loop Closure增量式外观闭环检测实时分析新采集的图像特征,判断是否回到已探索过的区域(闭环),解决SLAM的累积漂移问题
Bag-of-Words (BoW)词袋模型图像特征的高效匹配算法:将图像拆分为“视觉词汇”(如角点、边缘特征),通过词汇相似度快速判断场景重合度,是闭环检测的核心算法
6DoF / 3DoF6自由度 / 3自由度建图维度:
- 6DoF(位置x/y/z + 姿态roll/pitch/yaw):适用于RGB-D/立体相机/3D激光雷达,可实现完整的三维空间建图;
- 3DoF(仅姿态roll/pitch/yaw或位置x/y/z):适用于平面移动机器人+激光测距仪,专注于平面场景建图
Memory Management内存管理策略动态限制图中节点数量,避免大规模场景下数据量过大导致实时性下降,是RTAB-Map适配大场景的关键特性
  1. 硬件搭配建议
    • 手持场景:Kinect v2(RGB-D)、Intel Realsense D455(RGB-D)、ZED 2i(立体相机)—— 即插即用,适合室内快速建图;
    • 机器人场景:激光雷达(如Velodyne VLP-16、Livox Mid-40)+ 里程计(IMU/轮式里程计)—— 适用于室外大规模环境或无纹理场景(如仓库、走廊)。
  2. 核心优势与适用场景
    • 优势:实时性强(内存管理优化)、闭环检测鲁棒(BoW模型)、多传感器兼容(RGB-D/立体/激光雷达);
    • 适用场景:室内导航、机器人巡检、三维场景重建(如室内装修扫描、文物数字化),尤其适合需要长时间运行的大规模环境任务。
  3. 与ROS 2的适配性
    • RTAB-Map提供官方ROS 2包(支持Foxy/Humble/Iron等版本),可直接通过apt install ros-<distro>-rtabmap-ros安装;
    • 支持ROS 2的传感器消息(如sensor_msgs/Imagesensor_msgs/PointCloud2),可无缝对接机器人的传感器数据流,快速集成到ROS 2开发的机器人系统中。
标定
各种标定工具

https://github.com/PJLab-ADG/SensorsCalibration.git

多传感器通用标定工具箱
OpenCalib
(上海人工智能实验室)

  • 地址:https://github.com/PJLab-ADG/SensorsCalibration
  • 特点:支持激光雷达-IMU、相机-IMU、多传感器到车体的标定,提供手动/自动/在线标定工具及基准数据集,被称为"自动驾驶标定代码库的首个全套解决方案"。

calibtoolkit(深蓝学院)

  • 地址:https://github.com/calibtoolkit
  • 特点:集成单双目相机、相机-激光雷达、激光雷达-激光雷达、激光雷达-IMU标定功能,附带测试数据便于算法验证。

相机-IMU标定
Kalibr
(ETH Zurich)

  • 地址:https://github.com/ethz-asl/kalibr/wiki/camera-imu-calibration
  • 特点:ROS生态中最常用的相机-IMU标定工具,通过样条曲线建模系统姿态,支持滚动快门相机。

Crisp

  • 地址:https://github.com/hovren/crisp
  • 特点:Python库实现滚动快门相机与陀螺仪的联合标定,输出真实陀螺仪速率、时间偏移及坐标系旋转参数。

激光雷达-相机标定
Autoware Calibration Toolkit

  • 地址:https://github.com/JunzWu/Autoware_Calibration_Camera_Lidar
  • 特点:ROS兼容工具,需配合nlopt优化库,提供可视化界面调整激光雷达与相机外参。

LiDAR-Camera-Calibration-Tool

  • 地址:https://github.com/onePPF/LiDAR-Camera-Calibration-Tool
  • 安装pip install opencv-python open3d && git clone [仓库地址]
  • 适配场景:固态雷达直接用同步数据,机械雷达需先生成稠密点云。

手眼标定(机器人领域)
easy_handeye

  • 地址:https://github.com/IFL-CAMP/easy_handeye
  • 应用:配合Franka机械臂与RealSense D435相机,需修改aruco_ros源码以发布TF信息。

Hydra(2025新开源)

  • 特点:无标记RGB-D手眼标定,仅需3个随机机械臂姿态即可实现90%成功率,精度达5mm,ROS 2兼容。

单传感器标定

  • OpenCV相机标定:https://gitcode.com/gh_mirrors/opencv31/opencv,提供经典张氏标定法实现,支持鱼眼相机畸变校正。
  • 激光雷达到车体标定:OpenCalib中的vehicle_calib模块,解决传感器安装位置误差问题。
激光雷达-IMU标定
项目名称地址核心优势
港大LI-Inithttps://github.com/hku-mars/LiDAR_IMU_Init实时校准时间偏移与外参,支持机械/固态激光雷达,无缝集成FAST-LIO2作为初始化模块
浙大LI-Calibhttps://github.com/APRIL-ZJU/lidar_IMU_calib基于B样条的连续时间批量优化,无需人工靶标,在城市环境中实现高精度标定
HIT lidar_imu_calibhttps://github.com/chennuo0125-HIT/lidar_imu_calib专注优化激光雷达-IMU变换中的姿态分量,常将位置参数设为0以简化匹配算法
IMU

EKF
https://github.com/i2Nav-WHU/KF-GINS
https://github.com/cmjang/F4_IMU_Altitude_EKF_Mahony/tree/main
https://github.com/pigknight/studyEKF
https://github.com/Shelfcol/gps_imu_fusion/tree/main?tab=readme-ov-file
https://github.com/zm0612/eskf-gps-imu-fusion?tab=readme-ov-file

IMU标定
工具名称主要用途开源库地址
imu_utils标定IMU的随机误差(如高斯白噪声、随机游走)https://github.com/gaowenliang/imu_utils
code_utilsimu_utils依赖的代码库https://github.com/gaowenliang/code_utils
imu_tk标定IMU的确定性误差(如刻度因子、轴偏差、零偏)https://github.com/Kyle-ak/imu_tk
Kalibr多传感器联合标定(如Camera-IMU)https://github.com/ethz-asl/kalibr

使用imu_utils的详细步骤

使用 imu_utils 标定IMU,主要包含环境准备数据采集运行标定三个部分。

环境准备与编译

  1. 编译 code_utils
    • 创建一个ROS工作空间(如果还没有的话),并将 code_utils 克隆到 src 目录下。
    • 注意:不要同时将 imu_utilscode_utils 放在 src 下编译。必须先单独编译 code_utils,再处理 imu_utils
    • 进入 code_utils 目录,你可能需要根据你的系统环境对代码进行一些调整,例如:
      • CMakeLists.txt 中,将 C++ 标准设置为 -std=c++14
      • sumpixel_test.cpp 中,修改头文件包含为 #include "code_utils/backward.hpp"
  2. 编译 imu_utils
    • code_utils 编译成功后,再将 imu_utils 克隆到工作空间的 src 目录下。
    • 同样,可能需要修改其 CMakeLists.txt 中的 C++ 标准为 -std=c++14,并在 imu_an.cpp 中添加头文件 #include <fstream>

编译 imu_utils

catkin_make 

编译 code_utils

catkin_make 

安装依赖
在终端中执行以下命令来安装必要的依赖库:

sudoapt-getinstall libdw-dev 

确保你已经全局安装了 Ceres Solver,因为 code_utils 依赖它。

数据采集

    • 保持静止:整个采集过程中,IMU必须保持完全静止,任何振动都会影响标定结果。
    • 时间要长:通常需要静止采集至少2小时的数据(有时4小时以上效果更好),以获得有效的艾伦方差曲线。
    • 预热:建议让IMU上电运行10分钟后再开始录制,以上电瞬间开始录制会有较大误差。

录制数据包:将IMU传感器静止放置在桌面或其他稳定的地方,然后使用 rosbag 记录IMU数据话题。

rosbag record /your_imu_topic -O imu_static.bag 

关键点

运行标定

  1. 运行标定程序
    • 首先,确保ROS核心已经运行 (roscore)。
    • 此时,在第一个终端中你会看到 imu_utils 开始计算并输出信息。
  2. 获取结果:标定完成后,结果文件(例如 my_imu_imu_param.yaml)会保存在 data_save_path 指定的路径中。这个YAML文件包含了加速度计和陀螺仪各轴的噪声密度(_n)和随机游走(_w)参数。

在另一个终端中,以较高的速率回放之前录制的数据包:

rosbag play -r 200 your_path/imu_static.bag 

在一个终端中启动标定节点:

roslaunch imu_utils my_imu.launch 

修改启动文件:在 imu_utilslaunch 目录下,创建一个新的启动文件(例如 my_imu.launch),并正确设置参数:

<launch><nodepkg="imu_utils"type="imu_an"name="imu_an"output="screen"><paramname="imu_topic"type="string"value="/your_imu_topic"/><!-- 你的IMU话题名称 --><paramname="imu_name"type="string"value="my_imu"/><!-- 你的IMU名称 --><paramname="data_save_path"type="string"value="$(find imu_utils)/data/"/><paramname="max_time_min"type="int"value="120"/><!-- 最大时长(分钟) --><paramname="max_cluster"type="int"value="100"/></node></launch>
  • 关于误差类型imu_utils 主要用于标定IMU的随机误差。如果需要标定确定性误差(如刻度因子、非正交误差等),你可能需要结合使用 imu_tk 等工具。
  • 数据质量是关键:标定结果的准确性严重依赖于数据采集的质量。务必确保IMU在数据采集过程中长时间静止且稳定

4. navigation

以下是主流的强化学习避障开源库及GitHub地址,覆盖无人机、机器人等场景:

  1. 通用强化学习框架(支持避障任务开发)

• Stable Baselines3

GitHub: https://github.com/DLR-RM/stable-baselines3
特点:基于PyTorch,集成PPO、DQN等算法,提供机器人避障示例。

• Ray RLlib

GitHub: https://github.com/ray-project/ray
特点:支持分布式训练,适合复杂避障任务(如多智能体协同避障)。

  1. 无人机/机器人专用避障库

• AirSim RL避障示例

GitHub: https://github.com/microsoft/AirSim/tree/master/PythonClient/reinforcement_learning
特点:微软开源无人机仿真平台,提供深度强化学习避障Demo(如DQN、A3C)。

• gym-pybullet-drones

GitHub: https://github.com/utiasDSL/gym-pybullet-drones
特点:PyBullet物理引擎的无人机强化学习环境,包含避障任务接口。

  1. 自动驾驶避障

• CARLA-RL

GitHub: https://github.com/carla-simulator/carla/tree/master/PythonAPI/examples/reinforcement_learning
特点:基于CARLA仿真器的自动驾驶避障训练框架,支持PPO、SAC等算法。

  1. 轻量化部署工具

• ONNX-RL

GitHub: https://github.com/onnx/onnx-runtime/tree/main/onnxruntime/python/tools/transformers/models/rl
特点:将训练好的强化学习模型转为ONNX格式,便于嵌入式设备(如机器人)部署。

5. ROS LLM/VLM

1. 核心工具包汇总对比表

工具包名称核心特性计算模式技术栈适合场景
ROSANASA 官方背书,安全性高,基于 LangChain云端 (OpenAI)Python, LangChain生产环境,需要安全护栏的任务
ROS-LLM亚马逊 AWS 驱动,配置化开发,原子动作库云端 (AWS/OpenAI)Python, AWS Bedrock快速搭建云端控制的机器人 Demo
llama_ros本地运行大模型,无需联网,量化部署边缘端 (Edge)C++, llama.cpp无网环境,数据隐私敏感,算力受限板载
VLM-ROS视觉语言模型,不仅听懂话,还能看懂图多模态 (VLM)Python, CLIP/LLaVA语义导航,场景理解 (“去红色的沙发”)
Tello LLM特定硬件 (Tello 无人机) 的语音控制实现云端 + 语音Whisper, OpenAI无人机语音交互 Demo 参考
  1. 纯离线终端设备(比如你的教育机器人不能时刻联网):
    • 必选llama_ros。这是目前唯一成熟的 ROS 2 本地量化 LLM 方案。
  2. 复杂的语义导航(比如“去厨房拿可乐”):
    • 架构ROSA (做决策) + ConceptGraphs (做语义地图)。
    • 利用 ROSA 解析指令,利用 ConceptGraphs 提供的高级地图数据给 MoveBase/Nav2 发送坐标。
  3. 如果你只是想快速跑通一个 Demo 给别人看
    • ROS-LLMTello LLM 的逻辑。配置最快,效果最直观。

2. 详细介绍与部署说明

(1) ROSA (Robot Operating System Agent)

  • 功能介绍:NASA JPL 开发的通用框架。不仅支持自然语言控制,还内置了安全检查(Safety Guardrails)和状态诊断。它将 ROS 2 的 topic/service 自动映射为 LangChain 的 Tool。
  • 开源地址https://github.com/nasa-jpl/rosa
  • 与 ROS 接口
    • Topic:监听 /diagnostics 进行自我诊断。
    • Library:作为 Python 库直接嵌入在你的节点代码中,通过 agent.invoke() 调用。
  • 部署步骤
    1. pip install nasa-rosa langchain-openai
    2. 在 Python 节点中 import rosa 并实例化。
    3. 配置 OpenAI Key 即可运行。

(2) ROS-LLM (Auromix)

  • 功能介绍:强调“低代码”和“云集成”。通过 JSON 配置文件定义机器人的能力(原子动作),支持 AWS Bedrock 和 OpenAI。
  • 开源地址https://github.com/Auromix/ROS-LLM
  • 与 ROS 接口
    • Service:提供 ROS Service 接收文本指令。
    • Action:通过 Action Client 调用底层的 Nav2 或其他节点。
  • 部署步骤
    1. 建立 ROS 2 工作空间,Clone 代码。
    2. rosdep install 安装依赖。
    3. colcon build 编译。
    4. 修改 config.json 添加你的 Nav2 动作。

(3) llama_ros (本地化部署首选)

  • 功能介绍这是 SLAM 开发者需要重点关注的项目。 它利用 llama.cpp 将 LLM 直接运行在机器人内部(如 Jetson Orin 或 NUC)。它不依赖 GPT-4,而是运行 Llama3-8B 或其他量化模型 (GGUF 格式)。
  • 开源地址https://github.com/bmgist/llama_ros (你提供的 gitcode 是其镜像)
  • 与 ROS 接口
    • Action:提供 GenerateResponse 动作服务器,你可以像调用导航一样调用 LLM 生成文本。
    • Topic:支持将生成的 token 实时流式传输(Streaming)到 Topic。
  • 部署步骤
    1. 安装 CUDA (如果有 N 卡) 或 OpenBLAS。
    2. Clone 仓库,使用 colcon build (编译过程会自动下载 llama.cpp)。
    3. 下载 .gguf 格式的模型文件(如 Llama-3-8B-Instruct-Q4_K_M.gguf)。
    4. 通过 Launch 文件加载模型路径启动节点。

(4) VLM-ROS (视觉语言模型融合)

  • 功能介绍:加入了“眼睛”。它将 ROS 的图像话题 (sensor_msgs/Image) 发送给视觉大模型(如 GPT-4V 或开源 LLaVA),让机器人能理解画面内容。
  • 开源地址https://github.com/iamZhaoHang/VLM-ROS
  • 与 ROS 接口
    • Subscription:订阅 /camera/image_raw
    • Service/Topic:接收查询(例如:“前面有什么?”),返回文本描述。
  • 部署步骤
    1. 安装 PyTorch 和 Transformer 库。
    2. 下载视觉模型权重(如果使用本地模型)。
    3. 修改 Launch 文件中的 Image Topic 名称以匹配你的相机。

(5) Tello LLM ROS (特定案例)

  • 功能介绍:一个垂直领域的 Demo。整合了 OpenAI Whisper(语音转文字)+ LLM + Tello 驱动。
  • 开源地址https://github.com/GaohaoZhou-ops/Tello-LLM-ROS
  • 与 ROS 接口
    • Topic:发布 /cmd_vel 控制无人机。
    • External:调用麦克风 API 获取音频。
  • 部署步骤
    1. 需要麦克风硬件。
    2. 安装 openai-whisper
    3. 运行脚本直接控制 Tello 无人机(通过 WiFi)。

3. 适合 SLAM/Planning 的开源项目

ConceptGraphs (语义 3D 场景图)

这是一个真正将 SLAMLLM 深度结合的前沿开源项目。

  • 功能:它在构建 3D 地图(RGB-D SLAM)的过程中,利用 VLM 识别物体,生成一个 3D 场景图 (3D Scene Graph)
  • 为什么适合你
    • 它生成的不是黑白栅格地图,而是结构化的数据库(节点是椅子、桌子;边是“椅子在桌子旁边”)。
    • LLM 可以直接查询这个图数据库进行规划:“去那个离窗户最近的红椅子”。
  • 开源地址https://github.com/concept-graphs/concept-graphs
  • 接口:输出 JSON/Graph 格式的地图数据,可供 ROS 规划器使用。

GPT-Driver (大模型直接生成行为树)

  • 功能:专注于将自然语言指令转化为 Behavior Tree XML
  • 开源地址:虽然没有单一的统领级项目,但 BehaviorTree.CPP 官方提供了一些结合 LLM 的示例和 Prompt 模板。
  • 参考:关注 BehaviorTree.CPP V4 的 Scripting 功能,非常适合与 LLM 生成的代码对接。
Could not load content