/VisualSLAM

This is a framework for evaluating the impact of Visual Place Recognition loop closure systems on the accuracy of visual slam

Primary LanguagePython

VisualSLAM

This is a full visual slam pipeline built in python. The repo is built to provide a simple but comprehesive VSLAM system to support quick experimentation and research, particularly in the field of visual place recognition. The code base is extensible where each aspect of the VSLAM pipeline can be altered in a systematic way such that it's effect on performance can be evaluated.

Tracking

The codebase uses a stereo odometry pipeline with 3d-2d transformation estimation through the PnP algorithm with RANSAC for improved structural data association. Additionaly pose graph optimization over the last N poses is implemented in addition to global optimization with a loop closing detector. The algorithmic steps can be outlined below.

  1. Extract point features in Left and Right Stereo Images $I^{l}_{k}$, $I^{r}_k$.
  2. Match the points between left and right stereo images.
  3. Triangulate points between stereo images to get 3D points.
  4. Extract Point features from the next stereo pair in the sequence $I^{l}{k+1}$, $I^{r}{k+1}$.
  5. Estimate relative transformation between $I^{l}k$, $I^{l}{k+1}$ with the PnP and RANSAC algorithm.
  6. Run Pose Graph Optimization over the last N poses.
  7. Run Place Recognition for loop closure detections. If detected. Perform global optimization with the additional constraints.