Skip to content
OpenVSLAM: a Versatile Visual SLAM Framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
3rd Add initial files May 20, 2019
cmake Add initial files May 20, 2019
docs Remove unneeded commands form install instructions Jul 17, 2019
example Include <cmath> Jun 24, 2019
ros Compatible with the new API of util/image_util.h Jul 8, 2019
src Compatible with macOS Jun 24, 2019
test Modify comments in the test code Jun 17, 2019
viewer Check whether the server is launched correctly Jun 7, 2019
.dockerignore Update .dockerignore Jun 28, 2019
.gitignore Make base of ROS package Jun 27, 2019
.travis.yml Change the dataset Jun 27, 2019
CMakeLists.txt Enable ccache to accelerate a build Jun 26, 2019
Dockerfile.socket Modify OpenCV_DIR for OpenCV 4.1.0 Jun 12, 2019
LICENSE Add initial files May 20, 2019 Remove "ROS support" from "Currently working on" in README Jun 27, 2019
wercker.yml Enable ccache in wercker CI Jun 27, 2019

OpenVSLAM: a Versatile Visual SLAM Framework

Wercker Status Travis CI Status Documentation Status Docker Build Status


OpenVSLAM is a monocular, stereo, and RGBD visual SLAM system. The notable features are:

  • It is compatible with various type of camera models and can be easily customized for other camera models.
  • Created maps can be stored and loaded, then OpenVSLAM can localize new images based on the prebuilt maps.
  • The system is fully modular. It is designed by encapsulating several functions in separated components with easy-to-understand APIs.
  • We provided some code snippets to understand the core functionalities of this system.

OpenVSLAM is based on an indirect SLAM algorithm with sparse features, such as ORB-SLAM, ProSLAM, and UcoSLAM. One of the noteworthy features of OpenVSLAM is that the system can deal with various type of camera models, such as perspective, fisheye, and equirectangular. If needed, users can implement extra camera models (e.g. dual fisheye, catadioptric) with ease. For example, visual SLAM algorithm using equirectangular camera models (e.g. RICOH THETA series, insta360 series, etc) is shown above.

Some code snippets to understand the core functionalities of the system are provided. You can employ these snippets for in your own programs. Please see the *.cc files in ./example directory or check Simple Tutorial and Example.

We provided documentation for installation and tutorial. Please contact us via GitHub issues if you have any questions or notice any bugs about the software.


Visual SLAM is regarded as a next-generation technology for supporting industries such as automotives, robotics, and xR. We released OpenVSLAM as an opensource project with the aim of collaborating with people around the world to accelerate the development of this field. In return, we hope this project will bring safe and reliable technologies for a better society.


Please see Installation chapter in the documentation.

The instructions for Docker users are also provided.


Please see Simple Tutorial chapter in the documentation.

A sample ORB vocabulary file can be downloaded from here. Sample datasets are also provided at here.

If you would like to run visual SLAM with standard benchmarking datasets (e.g. KITTI Odometry dataset), please see SLAM with standard datasets section in the documentation.


If you want to join our Slack community, please fill out the application form from the following site(s):

Currently working on

  • IMU integration
  • Python bindings
  • Implementation of extra camera models
  • Refactoring

Feedbacks, feature requests, and contribution are welcome!


2-clause BSD license (see LICENSE)

The following files are derived from third-party libraries.

Please use g2o as the dynamic link library because csparse_extension module of g2o is LGPLv3+.



If OpenVSLAM helps your research, please cite the preprint paper for OpenVSLAM. Here is a BibTeX entry:

  author={Shinya Sumikura and Mikiya Shibuya and Ken Sakurada},
  title={OpenVSLAM: a Versatile Visual SLAM Framework},

The preprint can be found here.


  • Raúl Mur-Artal, J. M. M. Montiel, and Juan D. Tardós. 2015. ORB-SLAM: a Versatile and Accurate Monocular SLAM System. IEEE Transactions on Robotics 31, 5 (2015), 1147–1163.
  • Raúl Mur-Artal and Juan D. Tardós. 2017. ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras. IEEE Transactions on Robotics 33, 5 (2017), 1255–1262.
  • Dominik Schlegel, Mirco Colosi, and Giorgio Grisetti. 2018. ProSLAM: Graph SLAM from a Programmer’s Perspective. In Proceedings of IEEE International Conference on Robotics and Automation (ICRA). 1–9.
  • Rafael Muñoz-Salinas and Rafael Medina Carnicer. 2019. UcoSLAM: Simultaneous Localization and Mapping by Fusion of KeyPoints and Squared Planar Markers. arXiv:1902.03729.
  • Mapillary AB. 2019. OpenSfM.
  • Giorgio Grisetti, Rainer Kümmerle, Cyrill Stachniss, and Wolfram Burgard. 2010. A Tutorial on Graph-Based SLAM. IEEE Transactions on Intelligent Transportation SystemsMagazine 2, 4 (2010), 31–43.
  • Rainer Kümmerle, Giorgio Grisetti, Hauke Strasdat, Kurt Konolige, and Wolfram Burgard. 2011. g2o: A general framework for graph optimization. In Proceedings of IEEE International Conference on Robotics and Automation (ICRA). 3607–3613.
You can’t perform that action at this time.