Authors: Raul Mur-Artal, Juan D. Tardos, J. M. M. Montiel and Dorian Galvez-Lopez (DBoW2)
Raúl Mur-Artal and Juan D. Tardós. ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras. IEEE Transactions on Robotics, vol. 33, no. 5, pp. 1255-1262, 2017. PDF.
The library has been tested in Ubuntu 12.04, 14.04 and 16.04, but it should be easy to compile in other platforms. A powerful computer (e.g. i7) will ensure real-time performance and provide more stable and accurate results.
New thread and chrono functionalities of C++11 are used.
Pangolin is used for visualization and user interface. Download and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.
OpenCV is used to manipulate images and features. Download and install instructions can be found at: http://opencv.org. Required at least 2.4.3. Tested with OpenCV 2.4.11 and OpenCV 3.2.
Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0.
Modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations are used. Both modified libraries (which are BSD) are included in the Thirdparty folder.
Requires matplotlib, numpy, math, copy libraries.
Clone the repository:
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
A script build.sh
to build the Thirdparty libraries and ORB-SLAM2 is provided. Please make sure you have installed all required dependencies (see section 1). Execute:
cd ORB_SLAM2
chmod +x build.sh
./build.sh
This will create libORB_SLAM2.so at lib folder and the executable stereo_mpc in Examples folder.
Execute the following command. Change mpc.yaml
to your yaml file. Change PATH_TO_DATASET_FOLDER
to the uncompressed dataset folder. Change SEQUENCE_NUMBER
to your sequence name. The sequence to run the SLAM for requires a times.txt
in the same PATH_TO_DATASET_FOLDER/Examples/Stereo/SEQUENCE_NUMBER
directory which contains the timestamps of the corresponding frames on each line.
./Examples/Stereo/stereo_mpc ./Vocabulary/ORBvoc.txt Examples/Stereo/mpc.yaml PATH_TO_DATASET_FOLDER/Examples/Stereo/SEQUENCE_NUMBER
Change gt_poses_path
and pred_poses_path
to your pose files. Execute the following command.
python eval_slam.py
ORB-SLAM2 is released under a GPLv3 license. For a list of all code/library dependencies (and associated licenses), please see Dependencies.md.
If you use ORB-SLAM2 (Monocular) in an academic work, please cite:
@article{murTRO2015,
title={{ORB-SLAM}: a Versatile and Accurate Monocular {SLAM} System},
author={Mur-Artal, Ra\'ul, Montiel, J. M. M. and Tard\'os, Juan D.},
journal={IEEE Transactions on Robotics},
volume={31},
number={5},
pages={1147--1163},
doi = {10.1109/TRO.2015.2463671},
year={2015}
}
if you use ORB-SLAM2 (Stereo or RGB-D) in an academic work, please cite:
@article{murORB2,
title={{ORB-SLAM2}: an Open-Source {SLAM} System for Monocular, Stereo and {RGB-D} Cameras},
author={Mur-Artal, Ra\'ul and Tard\'os, Juan D.},
journal={IEEE Transactions on Robotics},
volume={33},
number={5},
pages={1255--1262},
doi = {10.1109/TRO.2017.2705103},
year={2017}
}