XinkeAE / pl-slam

This code contains an algorithm to compute stereo visual SLAM by using both point and line segment features.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Notice that this repository is only an open-source version of PL-SLAM released with the aim of being useful for the community, however, it is far from being optimized and we are not including some features such as the parallelized version of PL-SLAM.

PL-SLAM

This code contains an algorithm to compute stereo visual SLAM by using both point and line segment features.

Authors: Ruben Gomez-Ojeda, Francisco Angel Moreno, Davide Scaramuzza, and Javier Gonzalez-Jimenez

Related publication: PL-SLAM: a Stereo SLAM System through the Combination of Points and Line Segments

If you use PL-SLAM in your research work, please cite:

@article{gomez2017pl,
  title   = {{PL-SLAM: a Stereo SLAM System through the Combination of Points and Line Segments}},
  author  = {Gomez-Ojeda, Ruben and Moreno, Francisco-Angel and Scaramuzza, Davide and Gonzalez-Jimenez, Javier},
  journal = {arXiv preprint arXiv:1705.09479},
  year    = {2017}

}

The pdf file can be found at https://arxiv.org/abs/1705.09479.

PL-SLAM

Previous publications:

Gomez-Ojeda, R., Briales, J., & Gonzalez-Jimenez, J. (2016, October). PL-SVO: Semi-direct monocular visual odometry by combining points and line segments. In Intelligent Robots and Systems (IROS), 2016 IEEE/RSJ International Conference on (pp. 4211-4216). IEEE.

Gomez-Ojeda, R., & Gonzalez-Jimenez, J. (2016, May). Robust stereo visual odometry through a probabilistic combination of points and line segments. In Robotics and Automation (ICRA), 2016 IEEE International Conference on (pp. 2521-2526). IEEE..

License:

The provided code is published under the General Public License Version 3 (GPL v3). More information can be found in the "LICENSE" also included in the repository.

Please do not hesitate to contact the authors if you have any further questions.

1. Prerequisites and dependencies

OpenCV 3.0.0

It can be easily found at http://opencv.org. In the case of line segments, we have modified the line_descriptor from the opencv_contrib repository, included in the 3rdparty folder.

Eigen3

http://eigen.tuxfamily.org

Boost

Installation on Ubuntu:

sudo apt-get install libboost-dev

g2o - General Graph Optimization

It can be found at:

https://github.com/RainerKuemmerle/g2o.git

YAML

Installation on Ubuntu:

sudo apt-get install libyaml-dev

MRPT (Optional)

In case of using the provided representation.

sudo apt-get install libmrpt-dev

Download and install instructions can be also found at: http://www.mrpt.org/ .

Line descriptor (in 3rdparty folder)

We have modified the line_descriptor module from the OpenCV/contrib library (both BSD) which is included in the 3rdparty folder.

2. Configuration and generation

Executing the file build.sh will configure and generate the line_descriptor and DBoW2 modules, uncompress the vocabulary files, and then will configure and generate the PL-SLAM library for which we generate: libplslam.so in the lib folder, and the applications plstvo_dataset and plslam_dataset that works with our dataset format (explained in the next section).

3. Dataset format and usage

The plslam_dataset (and plstvo_dataset) basic usage is:

./plslam_dataset  <dataset_path>  

where <dataset_path> refers to the sequence folder relative to the environment variable ${DATASETS_DIR} that must be previously set. That sequence folder must contain the dataset configuration file named dataset_params.yaml following the examples in pl-slam/config, where images_subfolder_{lr} refers to the left and right image subfolders.

About

This code contains an algorithm to compute stereo visual SLAM by using both point and line segment features.

License:GNU General Public License v3.0


Languages

Language:C++ 99.1%Language:CMake 0.8%Language:Shell 0.1%