Code Monkey home page Code Monkey logo

rgbd_ptam's Introduction

rgbd_ptam

This is a python implementation of RGBD-PTAM, the code is modified from stereo_ptam, which is based on C++ project lrse/sptam and paper "S-PTAM: Stereo Parallel Tracking and Mapping" Taihu Pire et al. RAS17.

RGBD-PTAM is a RGBD SLAM system able to compute the camera trajectory in real-time. It heavily exploits the parallel nature of the SLAM problem, separating the time-constrained pose estimation from less pressing matters such as map building and refinement tasks. On the other hand, the RGBD setting allows to reconstruct a metric 3D map for each frame, improving the accuracy of the mapping process with respect to monocular SLAM and avoiding the well-known bootstrapping problem. Also, the real scale of the environment is an essential feature for robots which have to interact with their surrounding workspace.

RGB-D system has direct depth measurements, by setting a pasudo stereo baseline, disparity can be computed from depth, then stereo measurements can be synthetized. Now the problem is converted to stereo SLAM, we can directly reuse S-PTAM's solution and stereo_ptam's code. Below is S-PTAM's system overview (from S-PTAM paper page 11):

Because one RGB-D frame has only one image, the computation burden is smaller than stereo setting, actually this project is faster than stereo_ptam, reach 30~50ms per frame (depending on keyframes adding frequency).

Features

  • Multithreads Tracking, Mapping, and Loop Closing
  • Covisibility Graph
  • Local Bundle Adjustment
  • Pose Graph Optimization
  • Motion Model
  • Visualization
  • Data loader for datasets TUM RGB-D and ICL-NUIM RGB-D
  • Relocalization (tracking failure recovery)
  • Dense point clouds visualization
  • Exhaustive evaluation

Requirements

  • Python 3.6+
  • numpy
  • cv2
  • g2o (python binding of C++ library g2o) for optimization
  • pangolin (python binding of C++ library Pangolin) for visualization

Usage

python ptam.py --dataset tum --path path/to/your/TUM_RGBD_dataset/rgbd_dataset_freiburg1_room
or
python ptam.py --dataset icl --path path/to/your/ICL-NUIM_RGBD_dataset/living_room_traj3_frei_png

Results

Visual results on TUM-RGBD dataset sequence "rgbd_dataset_freiburg1_room":

  • graph:
  • point cloud (sparse):

License

Following stereo_ptam, this project is released under GPLv3 License.

Contact

If you have problems related to the base S-PTAM algorithm, you can contact original authors lrse ([email protected]), or refer to the paper:
[1] Taihú Pire,Thomas Fischer, Gastón Castro, Pablo De Cristóforis, Javier Civera and Julio Jacobo Berlles. S-PTAM: Stereo Parallel Tracking and Mapping Robotics and Autonomous Systems, 2017.

If you have interest in this python implementation, email me (Hang Qi, [email protected]);

rgbd_ptam's People

Contributors

uoip avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.