文章目录
罗列一些开源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 -20 | https://github.com/PRBonn/PIN_SLAM |
| SiMpLE | NDT;只匹配;代码轻量化且内存占用低;kitti-17 | https://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 |
| 4DMOS | 4D 卷积提取点云时空特征,贝叶斯滤波实时识别动态障碍物,处理大面积遮挡场景优于几何方法。 | 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.csdn.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-SLAM | GPU 加速多级体素地图管理,支持室内外无缝切换,结合语义分割压缩点云,16km² 场景内存仅 1.2GB。 | https://github.com/hku-mars/Voxel-SLAM |
| SplaTAM | 3D 高斯溅射 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_edgelet | SVO 改进版,移除 ROS 依赖,优化关键帧策略,自动模型选择与并行化计算,提升 ARM 设备(如树莓派)效率。 | https://github.com/HeYijia/svo_edgelet |
| DROID-SLAM | Transformer 架构动态分配计算资源,自适应分辨率(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-SLAM;https://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-Mobile | VINS 轻量移植版,针对手机 ARM 优化,IMU 预积分 + 滑动窗口优化,功耗 < 1W。 | https://github.com/HKUST-Aerial-Robotics/VINS-Mobile |
| DynaSLAM-Lite | DROID-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 |
| OpenVINS | MSCKF 框架,支持单目 / 双目 / 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-SLAM | ORB-SLAM2 边缘优化版,支持 MQTT 协议与云端协同。 | https://github.com/droneslab/edgeslam |
| TinySLAM | MCU 轻量实现,仅需 32KB RAM。 | https://github.com/OSLL/tiny-slam-ros-cpp |
| SwarmMap | 多代理协作 SLAM,分布式计算,Jetson 集群支持 20 + 代理,轨迹误差 < 38cm。 | https://github.com/MobiSense/SwarmMap |
| Jetson-SLAM | Jetson 平台 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-SLAM | CNN 预测单目深度图与 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 |
| BoW3D | 3D 特征 + 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-SLAM | 3D 高斯表示 + 物体级语义分割,实现动态物体剔除与场景交互式编辑。 | 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,融合语义信息提升定位与建图鲁棒性:
| 算法名称 | 特点 | 开源地址 |
|---|---|---|
| Kimera2 | Kimera 改进版,增强特征跟踪、关键帧选择,支持多模态输入(单目 / 双目 / 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 |
| SemanticFusion | ElasticFusion+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:新兴
| 算法名称 | 特点 | 开源地址 |
|---|---|---|
| NeRF(Neural Radiance Fields) | 作为基于隐式表示的三维重建算法,NeRF 通过神经网络建模场景的辐射场(颜色 + 密度),仅需多张无序图像即可生成具有真实感的三维场景,支持任意视角渲染。其核心是利用体素采样和光线追踪技术,将 2D 图像特征映射到 3D 空间,解决了传统 SLAM 中纹理缺失或动态物体导致的重建误差问题。但原始 NeRF 训练速度慢(需数小时),且对输入图像数量和视角多样性要求较高。 | https://github.com/NVlabs/instant-ngp; 加速优化算法:https://github.com/NVlabs/instant-ngp |
| 3DGS(3D Gaussian Splatting) | 作为 NeRF 的替代方案,3DGS 通过三维高斯分布表示场景点云,结合光栅化技术实现实时渲染(帧率可达 100+ FPS)。相比 NeRF,它保留了隐式表示的真实感,同时解决了动态场景重建中物体运动导致的模糊问题,支持动态物体掩码分离与独立跟踪。此外,3DGS 的模型体积更小,适合嵌入式设备部署,但在超远距离场景的细节重建精度略逊于 NeRF。 | https://github.com/graphdeco-inria/gaussian-splatting https://github.com/MrNeRF/awesome-3D-gaussian-splatting |
| Neural-SLAM | 融合神经网络与传统 SLAM 框架,通过 CNN 提取图像特征,LSTM 预测相机姿态,同时构建隐式场景表示(如占用网格或辐射场)。相比传统视觉 SLAM(如 ORB-SLAM),NeuralSLAM 对光照变化、动态物体的鲁棒性更强,且无需人工设计特征点,但计算量较大,实时性依赖 GPU 加速。 | https://github.com/devendrachaplot/Neural-SLAM |
| Bundle-Adjusting Neural Radiance Fields(BARF) | 结合光束平差(Bundle Adjustment)与 NeRF,在优化相机姿态的同时重建场景辐射场,解决了 NeRF 对初始相机位姿敏感的问题。适用于输入图像位姿噪声较大的场景(如手机拍摄的无序图像),重建精度比原始 NeRF 提升 15%-30%,但训练过程更复杂。 | https://github.com/chenhsuanlin/bundle-adjusting-NeRF |
| OpenGS-SLAM | 纯RGB输入支持无界户外场景,通过点图回归网络实现帧间一致性位姿估计;3DGS渲染与位姿联合优化,跟踪误差较传统方法降低90.2%;自适应比例映射器解决户外场景尺度漂移问题 | https://github.com/3DAgentWorld/OpenGS-SLAM |
| SceneSplat | 支持49K场景的大规模3DGS评估基准,含室内外场景 | https://github.com/unique1i/SceneSplat |
| Gaussian-SLAM | 3D高斯泼溅实时渲染,帧率>30fps(1080p分辨率)联合优化相机位姿与高斯参数,支持RGB-D/纯RGB输入 | https://github.com/VladimirYugay/gaussian-slam |
| XRDSLAM | 模块化深度学习SLAM框架 多进程架构:解耦 跟踪、建图、可视化,提升并行效率。集成 NeRF/3DGS SLAM:支持 NICE-SLAM、Vox-Fusion、SplaTAM 等算法。标准化评估:提供 ATE、PSNR、SSIM 等指标,便于对比。适用场景:多传感器融合 SLAM(如 LiDAR+视觉+IMU)算法研究平台(快速验证新方法) | https://github.com/openxrlab/xrdslam |
| Hier-SLAM | 大语言模型(LLM)辅助语义编码:利用 层级类别表示 压缩语义信息,减少存储开销(降至 Log(N) 级别)。高速渲染:支持 2000 FPS(含语义) 或 3000 FPS(无语义) 的实时渲染。可扩展性:适用于 500+ 类语义场景,在复杂环境中仍能高效运行。优化策略:采用 层内(inter-level)和跨层(cross-level)联合优化,提升语义理解能力 | https://github.com/LeeBY68/Hier-SLAM |
| SEGS-SLAM | 引入结构化高斯点云初始化(SEPM)与外观运动嵌入(AfME),抗光照突变;TUM数据集轨迹误差降低9.8% 动态光照环境 | https://github.com/leaner-forever/SEGS-SLAM |
| OpenGS-SLAM | 基于Dust3R点图回归网络的自适应尺度匹配器,解决户外无边界场景尺度漂移问题 自动驾驶/无人机 | https://3dagentworld.github.io/opengs-slam/ |
| MASt3R-SLAM | 两视图重建先验+二阶图优化,15FPS实时稠密建图;未校准相机场景超越ORB-SLAM3 单目低算力设备 | https://github.com/rmurai0610/MASt3R-SLAM |
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 |
| RLIVE | LIDAR 惯性 - 视觉融合,含 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 / 3DoF | 6自由度 / 3自由度 | 建图维度: - 6DoF(位置x/y/z + 姿态roll/pitch/yaw):适用于RGB-D/立体相机/3D激光雷达,可实现完整的三维空间建图; - 3DoF(仅姿态roll/pitch/yaw或位置x/y/z):适用于平面移动机器人+激光测距仪,专注于平面场景建图 |
| Memory Management | 内存管理策略 | 动态限制图中节点数量,避免大规模场景下数据量过大导致实时性下降,是RTAB-Map适配大场景的关键特性 |
- 硬件搭配建议:
- 手持场景:Kinect v2(RGB-D)、Intel Realsense D455(RGB-D)、ZED 2i(立体相机)—— 即插即用,适合室内快速建图;
- 机器人场景:激光雷达(如Velodyne VLP-16、Livox Mid-40)+ 里程计(IMU/轮式里程计)—— 适用于室外大规模环境或无纹理场景(如仓库、走廊)。
- 核心优势与适用场景:
- 优势:实时性强(内存管理优化)、闭环检测鲁棒(BoW模型)、多传感器兼容(RGB-D/立体/激光雷达);
- 适用场景:室内导航、机器人巡检、三维场景重建(如室内装修扫描、文物数字化),尤其适合需要长时间运行的大规模环境任务。
- 与ROS 2的适配性:
- RTAB-Map提供官方ROS 2包(支持Foxy/Humble/Iron等版本),可直接通过
apt install ros-<distro>-rtabmap-ros安装; - 支持ROS 2的传感器消息(如
sensor_msgs/Image、sensor_msgs/PointCloud2),可无缝对接机器人的传感器数据流,快速集成到ROS 2开发的机器人系统中。
- RTAB-Map提供官方ROS 2包(支持Foxy/Humble/Iron等版本),可直接通过
标定
各种标定工具
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-Init | https://github.com/hku-mars/LiDAR_IMU_Init | 实时校准时间偏移与外参,支持机械/固态激光雷达,无缝集成FAST-LIO2作为初始化模块 |
| 浙大LI-Calib | https://github.com/APRIL-ZJU/lidar_IMU_calib | 基于B样条的连续时间批量优化,无需人工靶标,在城市环境中实现高精度标定 |
| HIT lidar_imu_calib | https://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_utils | imu_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,主要包含环境准备、数据采集和运行标定三个部分。
环境准备与编译
-
安装依赖
在终端中执行以下命令来安装必要的依赖库:sudo apt-get install libdw-dev确保你已经全局安装了 Ceres Solver,因为
code_utils依赖它。 -
编译 code_utils
- 创建一个ROS工作空间(如果还没有的话),并将
code_utils克隆到src目录下。 - 注意:不要同时将
imu_utils和code_utils放在src下编译。必须先单独编译code_utils,再处理imu_utils。 - 进入
code_utils目录,你可能需要根据你的系统环境对代码进行一些调整,例如:- 在
CMakeLists.txt中,将C++标准设置为-std=c++14。 - 在
sumpixel_test.cpp中,修改头文件包含为#include "code_utils/backward.hpp"。
- 在
- 编译
code_utils:catkin_make
- 创建一个ROS工作空间(如果还没有的话),并将
-
编译 imu_utils
- 在
code_utils编译成功后,再将imu_utils克隆到工作空间的src目录下。 - 同样,可能需要修改其
CMakeLists.txt中的C++标准为-std=c++14,并在imu_an.cpp中添加头文件#include <fstream>。 - 编译
imu_utils:catkin_make
- 在
数据采集
- 录制数据包:将IMU传感器静止放置在桌面或其他稳定的地方,然后使用
rosbag记录IMU数据话题。
关键点:rosbag record /your_imu_topic -O imu_static.bag- 保持静止:整个采集过程中,IMU必须保持完全静止,任何振动都会影响标定结果。
- 时间要长:通常需要静止采集至少2小时的数据(有时4小时以上效果更好),以获得有效的艾伦方差曲线。
- 预热:建议让IMU上电运行10分钟后再开始录制,以上电瞬间开始录制会有较大误差。
运行标定
-
修改启动文件:在
imu_utils的launch目录下,创建一个新的启动文件(例如my_imu.launch),并正确设置参数:<launch> <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen"> <param name="imu_topic" type="string" value= "/your_imu_topic"/> <!-- 你的IMU话题名称 --> <param name="imu_name" type="string" value= "my_imu"/> <!-- 你的IMU名称 --> <param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/> <param name="max_time_min" type="int" value= "120"/> <!-- 最大时长(分钟) --> <param name="max_cluster" type="int" value= "100"/> </node> </launch> -
运行标定程序
- 首先,确保ROS核心已经运行 (
roscore)。 - 在一个终端中启动标定节点:
roslaunch imu_utils my_imu.launch - 在另一个终端中,以较高的速率回放之前录制的数据包:
rosbag play -r 200 your_path/imu_static.bag - 此时,在第一个终端中你会看到
imu_utils开始计算并输出信息。
- 首先,确保ROS核心已经运行 (
-
获取结果:标定完成后,结果文件(例如
my_imu_imu_param.yaml)会保存在data_save_path指定的路径中。这个YAML文件包含了加速度计和陀螺仪各轴的噪声密度(_n)和随机游走(_w)参数。
- 关于误差类型:
imu_utils主要用于标定IMU的随机误差。如果需要标定确定性误差(如刻度因子、非正交误差等),你可能需要结合使用 imu_tk 等工具。 - 数据质量是关键:标定结果的准确性严重依赖于数据采集的质量。务必确保IMU在数据采集过程中长时间静止且稳定。
navigation
以下是主流的强化学习避障开源库及GitHub地址,覆盖无人机、机器人等场景:
- 通用强化学习框架(支持避障任务开发)
• Stable Baselines3
GitHub: https://github.com/DLR-RM/stable-baselines3
特点:基于PyTorch,集成PPO、DQN等算法,提供机器人避障示例。
• Ray RLlib
GitHub: https://github.com/ray-project/ray
特点:支持分布式训练,适合复杂避障任务(如多智能体协同避障)。
- 无人机/机器人专用避障库
• 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物理引擎的无人机强化学习环境,包含避障任务接口。
- 自动驾驶避障
• CARLA-RL
GitHub: https://github.com/carla-simulator/carla/tree/master/PythonAPI/examples/reinforcement_learning
特点:基于CARLA仿真器的自动驾驶避障训练框架,支持PPO、SAC等算法。
- 轻量化部署工具
• ONNX-RL
GitHub: https://github.com/onnx/onnx-runtime/tree/main/onnxruntime/python/tools/transformers/models/rl
特点:将训练好的强化学习模型转为ONNX格式,便于嵌入式设备(如机器人)部署。

2668

被折叠的 条评论
为什么被折叠?



