/Awesome-SLAM

A curated list of SLAM resources

MIT LicenseMIT

Awesome-SLAM Awesome

A curated list of SLAM resources

Stay Tuned for Constant Updates

Last updated: Mar. 14th, 2021.

The repo is maintained by Youjie Xia. The repo mainly summarizes the awesome repositories relevant to SLAM/VO on GitHub, including those on the PC end, the mobile end and some learner-friendly tutorials.

Regrading awesome SLAM papers, please refer to Awesome-SLAM-Papers.

If you want to know more about dependencies/packages of SLAM systems, please refer to Installing Dependencies on Ubuntu 16.04 LTS towards SLAM Projects (Updating).

If you think this repo is useful, please watchstar or fork it!

Welcome to contribute to this repo, if you are interested in SLAM! Feel free to creat a pull request or contact me.

Note: Name Format - repository name: one-sentence introduction (with link to the corresponding repo)


Table of Contents


1. Hot SLAM Repos on GitHub


2. Visual SLAM

2.1 Framework

2.2 Monocular

2.3 Stereo

2.4 RGBD

2.5 Others

  • CubeSLAM: Monocular 3D Object Detection and SLAM
  • se2lam: Visual-Odometric On-SE(2) Localization and Mapping
  • se2clam: SE(2)-Constrained Localization and Mapping by Fusing Odometry and Vision
  • BreezySLAM: Simple, efficient, open-source package for Simultaneous Localization and Mapping in Python, Matlab, Java, and C++
  • MultiCol-SLAM: a multi-fisheye camera SLAM
  • Event-based Stereo Visual Odometry

3. Visual Inertial SLAM

3.1 Framework

  • maplab: An open visual-inertial mapping framework.
  • ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM
  • VINS-Fusion: An optimization-based multi-sensor state estimator
  • Kimera: an open-source library for real-time metric-semantic localization and mapping
  • OpenVINS: An open source platform for visual-inertial navigation research

3.2 Monocular

3.3 Stereo

3.4 RGBD

3.5 Others


4. LIDAR based SLAM

4.1 Framework

4.2 Others


5. Learning based SLAM

The SLAM algorithms using conventional methods are listed above by default. The section is to list SLAM algos using learning based methods.

5.1 Survey

5.2 Others

5.3 Deep Features

  • GCNv2 SLAM: Real-time SLAM system with deep features
  • FCGF: Fully Convolutional Geometric Features: Fast and accurate 3D features for registration and correspondence
  • Deep Image Retrieval
  • Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters

5.4 Semantic SLAM


6. Mobile End SLAM

The SLAM algorithms running on PC end are listed above by default. The section is to list references and resources for SLAM algo dev on mobile end.

6.1 Visual SLAM

6.2 Visual Inertial SLAM

  • VINS-Mobile: Monocular Visual-Inertial State Estimator on Mobile Phones

6.3 Augmented Reality

6.3.1 Depth Image API with iPhone 7 Plus (or newer)

6.4 Others


7. Datasets


8. Tutorials

8.1 3D Vision

8.1.1 Libs

8.2 Robotics

  • RoboticSystemsBook
  • MATLABRobotics: MATLAB sample codes for mobile robot navigation
  • Kindr: Kinematics and Dynamics for Robotics
  • Sensor Fusion in ROS: An in-depth step-by-step tutorial for implementing sensor fusion with robot_localization
  • fuse: The fuse stack provides a general architecture for performing sensor fusion live on a robot. Some possible applications include state estimation, localization, mapping, and calibration.
  • GPU Computing in Robotics

8.3 Lie Algebra and Lie Groups

8.3.1 Libs

  • Sophus: C++ implementation of Lie Groups using Eigen
  • manif: A small C++11 header-only library for Lie theory

8.4 Optimization Techniques

8.4.1 Libs

  • ceres-solver: A large scale non-linear optimization library
  • g2o: A General Framework for Graph Optimization
  • GTSAM: Georgia Tech Smoothing and Mapping Library
  • AMGCL: C++ library for solving large sparse linear systems with algebraic multigrid method
  • Armadillo: fast C++ library for linear algebra & scientific computing
  • IFOPT: An Eigen-based, light-weight C++ Interface to Nonlinear Programming Solvers (Ipopt, Snopt)
  • LBFGS++: A header-only C++ library for L-BFGS and L-BFGS-B algorithms
  • OptimLib: a lightweight C++ library of numerical optimization methods for nonlinear functions
  • PoseLib: a collection of minimal solvers for camera pose estimation
  • fpm: C++ header-only fixed-point math library

8.5 Calibration

8.5.1 Libs

8.6 RANSAC

  • RansacLib: Template-based implementation of RANSAC and its variants in C++

9. Selected Blogs


10. Research Groups

TBA


11. Community