Simultaneous localization and mapping
lastmod 2026-02-13created 2019-09-2035 edits
SLAM (Simultaneous localization and mapping) is a concept used in robotics and related fields: the problem of estimating a map of an arbitrary space and the current location within it, for a robot that can explore its surroundings while moving through that space.
Documentation
- [Recommended] ORB-SLAM2 - an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
- http://arxiv.org/abs/1610.06475v2
- https://arxiv.org/pdf/1610.06475v2.pdf
- http://webdiis.unizar.es/~raulmur/orbslam/
- https://github.com/raulmur/ORB_SLAM2
- https://codar.club/blogs/orb-slam2-building-detailed-process.html
- [Recommended] OpenVSLAM
- Implements various visual SLAM methods such as Orb-slam2
- https://openvslam.readthedocs.io/en/master/index.html
- [Recommended] Co-Fusion
- Real-time Segmentation, Tracking and Fusion of Multiple Objects
- http://visual.cs.ucl.ac.uk/pubs/cofusion/index.html
- https://github.com/martinruenz/co-fusion
- ElasticFusion - Real-time dense visual SLAM system
- https://github.com/mp3guy/ElasticFusion
- [Recommended] Cartographer
- Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
- Semantically Informed Visual Odometry and Mapping (SIVO)
- SIVO - Semantically Informed Visual Odometry and Mapping. Integrated Bayesian semantic segmentation with ORBSLAM_2 to select better features for Visual SLAM.
- https://github.com/navganti/SIVO
- Direct Sparse Odometry with Loop Closure (LDSO)
- https://arxiv.org/abs/1808.01111v1
- https://arxiv.org/pdf/1808.01111v1.pdf
- Simultaneous Localization and Mapping by Fusion of KeyPoints and Squared Planar Markers (UcoSLAM)
- https://arxiv.org/abs/1902.03729v1
- https://arxiv.org/pdf/1902.03729v1.pdf
- [Recommended] Keyframe-based monocular SLAM - design, survey, and future directions
- https://arxiv.org/abs/1607.00470v2
- https://arxiv.org/pdf/1607.00470v2.pdf
- Constructing Locally Dense Point Clouds Using OpenSfM and ORB-SLAM2
- http://arxiv.org/abs/1804.08243v1
- Movable-Object-Aware Visual SLAM via Weakly Supervised Semantic Segmentation
- https://arxiv.org/abs/1906.03629v2
- [Recommended] GCNv2 - Efficient Correspondence Prediction for Real-Time SLAM
- https://arxiv.org/abs/1902.11046v3
- https://github.com/jiexiong2016/GCNv2_SLAM
- GCNv2 is a high-throughput variant of the Geometric Correspondence Network for performing RGB-D SLAM online on embedded platforms. We trained the binary descriptor in the same format with ORB (32 bytes) for the convenience of integration. In this implementation, we evaluate the motion estimation using a system built on top the [ORB-SLAM2], (https://github.com/raulmur/ORB_SLAM2). Thanks to the robustness of ORB-SLAM2, our system is able to achive reliable tracking perfomance on our drone platform in real-time.
Deep learning based
- Monocular Depth Prediction Using Generative Adversarial Networks
- https://ieeexplore.ieee.org/document/8575530/
- http://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w9/Kumar_Monocular_Depth_Prediction_CVPR_2018_paper.pdf
- DepthNet - A Recurrent Neural Network Architecture for Monocular Depth Prediction
- https://ieeexplore.ieee.org/document/8575528
A SLAM framework consists of two main parts: the frontend and the backend. The frontend performs feature extraction, feature matching, and camera transformation parameter computation between temporally adjacent images. The backend computes camera transformation parameters where possible even between images that are not temporally adjacent, and performs graph optimization over the entire camera trajectory using the constraints obtained from the frontend and backend, with the goal of obtaining a more consistent map and camera trajectory.
- SuperPoint - Self-Supervised Interest Point Detection and Description
- https://arxiv.org/abs/1712.07629
- https://github.com/rpautrat/SuperPoint
- Mainly covers applying deep learning to the SLAM Frontend. Conventional feature extraction and matching algorithms do not work well under viewpoint changes, lighting changes, and the like; the paper presents the proposed algorithm, trained in a self-supervised way, as outperforming them in that respect.
- Global Pose Estimation with an Attention-based Recurrent Network
- https://arxiv.org/abs/1802.06857
- Mainly covers applying deep learning to the SLAM backend. This paper proposes a Neural graph optimizer, which consists of three parts: a local pose estimation model, a pose aggregation module, and neural graph optimization. The local pose estimation model learns the relative pose change between adjacent frames, and the pose aggregation module is trained to convert the relative poses obtained above into pose features. Finally, neural graph optimization trains an attention-based neural net to reduce drift error over the entire pose trajectory.
- DeepVO - Towards End-to-End Visual Odometry with Deep Recurrent Convolutional Neural Networks
- https://arxiv.org/abs/1709.08429
- Github - DeepVO for Visual Odometry Implementation using Tensorflow
- DeepVO - A Deep Learning approach for Monocular Visual Odometry
- https://arxiv.org/abs/1611.06069
- Neural SLAM - Learning to Explore with External Memory
- https://arxiv.org/abs/1706.09520
- Neural Map - Structured Memory for Deep Reinforcement Learning
- https://arxiv.org/abs/1702.08360
- DF-SLAM - A Deep-Learning Enhanced Visual SLAM System based on Deep Local Features
- https://arxiv.org/abs/1901.07223
- CNN-SLAM - Real-time dense monocular SLAM with learned depth prediction
- https://arxiv.org/abs/1704.03489
OpenSLAM Projects and Tools
| SLAM Projects |
| 2D-I-SLSJF, CAS-Toolbox, CEKF-SLAM, COP-SLAM, DP-SLAM, EKFMonoSLAM, FalkoLib, FLIRTLib, G2O, GMapping, GridSLAM, HOG-Man, Max-Mixture, MTK, ORB-SLAM, OpenSeqSLAM, ParallaxBA, Pkg. of T.Bailey, RGBDSlam, Robomap Studio, RobotVision, SLOM, SSA2D, tinySLAM, TJTF for SLAM, TORO, TreeMap, UFastSLAM, vertigo |
| SLAM Tools |
| EVG-Thin, KLD-Sampling, People2D |
Libraries
- g2o - General Graph Optimization
- https://github.com/RainerKuemmerle/g2o
- Ceres Solver - A large scale non-linear optimization library
- http://ceres-solver.org/
- https://github.com/ceres-solver/ceres-solver
See also
- Deep learning
- GAN
- RANSAC
- Neural-Guided RANSAC
- Bags of Binary Words for Fast Recognition in Image Sequences
- DBoW2
- Stereo Vision
- Visual odometry (VO)
- Cartographer (Google)
- Panorama
- Point Cloud
- PointNet
Favorite site
- Wikipedia (en) Simultaneous localization and mapping
- YouTube - Deep SLAM trends - Deep Learning for Visual SLAM, CVPR 2018 Workshop
- Deep Learning for Visual SLAM in CVPR 2018: attendance review
Benchmark
- Github - rtabmap - wiki - Benchmark SLAM
- Arxiv - Benchmarking and Comparing Popular Visual SLAM Algorithms
Awesome site
- SLAM Resources to follow up current SLAM trends and papers
- The list of vision-based SLAM / Visual Odometry open source, blogs, and papers