Bez popisu

Richard Elvira 4d924b7f77 Update Readme file před 4 roky
Examples f568f06ac8 Updated files to remove comments před 4 roky
Thirdparty df16ecc040 Added code před 4 roky
Vocabulary df16ecc040 Added code před 4 roky
include df16ecc040 Added code před 4 roky
src f568f06ac8 Updated files to remove comments před 4 roky
.gitignore 5379f555c3 Update Gitignore file před 4 roky
CMakeLists.txt df16ecc040 Added code před 4 roky
Dependencies.md 2b78640401 Update Dependencies.md před 4 roky
LICENSE bd7d14ba71 First commit před 4 roky
README.md 4d924b7f77 Update Readme file před 4 roky
build.sh df16ecc040 Added code před 4 roky
build_ros.sh df16ecc040 Added code před 4 roky
euroc_examples.sh 2734308a89 Update Readme and example scripts před 4 roky
tum_vi_examples.sh 2734308a89 Update Readme and example scripts před 4 roky

README.md

ORB-SLAM3

V0.2: Beta version, 21 Jul 2020

Authors: Carlos Campos, Richard Elvira, Juan J. Gómez, José M. M. Montiel, Juan D. Tardos.

ORB-SLAM3 is the first real time SLAM library able to perform Visual, Visual-Inertial and Multi-Map SLAM with monocular, stereo and RGB-D cameras, using pin-hole and fisheye lens models. In all sensor configurations, ORB-SLAM3 is as robust as the best systems available in the literature, and significantly more accurate.

We provide examples to run ORB-SLAM3 system in the EuRoC dataset using stereo or monocular with or without IMU, and in the TUM-VI dataset using fisheye stereo or monocular with or without IMU.

This software is based on ORB-SLAM2 developed by Raul Mur-Artal, Juan D. Tardos, J. M. M. Montiel and Dorian Galvez-Lopez (DBoW2).

Related Publications:

[ORB-SLAM3] Carlos Campos, Richard Elvira, Juan J. Gómez, José M. M. Montiel and Juan D. Tardós, ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM, Under review. PDF.

[IMU-Initialization] Carlos Campos, J. M. M. Montiel and Juan D. Tardós, Inertial-Only Optimization for Visual-Inertial Initialization, ICRA 2020. PDF

[ORBSLAM-Atlas] Richard Elvira, J. M. M. Montiel and Juan D. Tardós, ORBSLAM-Atlas: a robust and accurate multi-map system, IROS 2019. PDF.

[ORBSLAM-VI] Raúl Mur-Artal, and Juan D. Tardós, Visual-inertial monocular SLAM with map reuse, IEEE Robotics and Automation Letters, vol. 2 no. 2, pp. 796-803, 2017. PDF.

[Stereo and RGB-D] 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.

[Monocular] Raúl Mur-Artal, José M. M. Montiel and Juan D. Tardós. ORB-SLAM: A Versatile and Accurate Monocular SLAM System. IEEE Transactions on Robotics, vol. 31, no. 5, pp. 1147-1163, 2015. (2015 IEEE Transactions on Robotics Best Paper Award). PDF.

[DBoW2 Place Recognition] Dorian Gálvez-López and Juan D. Tardós. Bags of Binary Words for Fast Place Recognition in Image Sequences. IEEE Transactions on Robotics, vol. 28, no. 5, pp. 1188-1197, 2012. PDF

1. License

ORB-SLAM3 is released under GPLv3 license. For a list of all code/library dependencies (and associated licenses), please see Dependencies.md.

For a closed-source version of ORB-SLAM3 for commercial purposes, please contact the authors: orbslam (at) unizar (dot) es.

If you use ORB-SLAM3 in an academic work, please cite:

@article{ORBSLAM3_2020,
  title={{ORB-SLAM3}: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map {SLAM}},
  author={Campos, Carlos AND Elvira, Richard AND G\´omez, Juan J. AND Montiel, Jos\'e M. M. AND Tard\'os, Juan D.},
  journal={arXiv preprint arXiv:xxxx.yyyy},
  year={2020}
 }

2. Prerequisites

We have tested the library in Ubuntu 16.04 and 18.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.

C++11 or C++0x Compiler

We use the new thread and chrono functionalities of C++11.

Pangolin

We use Pangolin for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.

OpenCV

We use OpenCV to manipulate images and features. Dowload and install instructions can be found at: http://opencv.org. Required at leat 3.0. Tested with OpenCV 3.2.0.

Eigen3

Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0.

DBoW2 and g2o (Included in Thirdparty folder)

We use modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the Thirdparty folder.

Python

Required to calculate the alignment of the trajectory with the ground truth. Required Numpy module.

3. Building ORB-SLAM3 library and examples

Clone the repository:

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3

We provide a script build.sh to build the Thirdparty libraries and ORB-SLAM3. Please make sure you have installed all required dependencies (see section 2). Execute:

cd ORB_SLAM3
chmod +x build.sh
./build.sh

This will create libORB_SLAM3.so at lib folder and the executables in Examples folder.

4. EuRoC Examples

EuRoC had been recorder with two pinhole cameras and an inertial sensor, we provide an example script to launch them with the desired configuration.

  1. Download a sequence (ASL format) from http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

  2. Open the script "euroc_examples.sh" in the root of the project. Change the value of pathDatasetEuroc variable by the path where the dataset has been uncompress.

  3. Execute the following script to process all the sequences with all sensor configurations

    ./euroc_examples
    

Each example can be executed in the console, you need to copy the command and change "$pathDatasetEuroc" by the path of the dataset.

Evaluation

EuRoC provides a ground truth for each sequence in the inertial body reference. A pure visual execution report the trajectory centered in the left camera. Hence, we provide in the "evaluation" folder the transformation of the ground truth centered in the left camera reference. The inertial trajectories use the ground truth from the dataset.

Execute the following script to process a set of sequences and calculate the RMS ATE:

./euroc_eval_examples

5. TUM-VI Examples

TUM-VI had been recorder with two fisheye cameras and an inertial sensor.

  1. Download a sequence from https://vision.in.tum.de/data/datasets/visual-inertial-dataset and uncompress it.

  2. Open the script "tum_vi_examples.sh" in the root of the project. Change the value of pathDatasetTUM_VI variable by the path where the dataset has been uncompress.

  3. Execute the following script to process all the sequences with all sensor configurations

    ./tum_vi_examples
    

Each example can be executed in the console, you need to copy the command and change "$pathDatasetTUM_VI" by the path of the dataset.

Evaluation

Ground truth is only measured in a room where each sequence starts and ends, as a result the error measures the drift at the end of the sequence.

Execute the following script to process an example sequence and obtain the RMS ATE:

./tim_vi_eval_examples