Skip to content

PLI-SLAM: A Stereo Visual-Inertial SLAM based on Point-Line Features

License

Notifications You must be signed in to change notification settings

VealFang/PLI-SLAM

Repository files navigation

PLI-SLAM: A Stereo Visual-Inertial SLAM based on Point-Line Features

PLI-SLAM is developed on the foundation of PL-SLAM and ORB_SLAM3, line features are fully engaged in the whole process of the system including tracking, map building and loop detection. Higher accuracy has been shown in PLI-SLAM on EuRoC Dataset compared to other VIO or point-line based SLAM systems. PLI-SLAM also performed stronger tracking robustness in various real scenario experiments conduted with a self-developed robot.

Video demo: youtube

1. License:

The provided code is published under the General Public License Version 3 (GPL v3).

2. Prerequisites:

Ubuntu

Ubuntu 16.04 or higher version is required.

ROS

We use ROS Melodic for real scenario experiments.

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. It can be found at: https://github.com/stevenlovegrove/Pangolin.

OpenCV

We use OpenCV 3.3.1 to manipulate images and features. Noted that line_descripter should be impoerted from the OpenCV/contrib library independently.

Eigen3

We use Eigen 3.3.4. It can be found at: http://eigen.tuxfamily.org.

Ceres Solver

We use ceres-solver-1.14.0 for nonlinear optimization. It can be found at: https://ceres-solver.googlesource.com/ceres-solver.

DBoW2 and g2o

We use modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations.

3. Building PLI-SLAM library and examples on ROS

  1. Clone the repository and add the path to the ROS_PACKAGE_PATH environment variable:
git clone https://github.com/VealFang/PLI-SLAM.git
gedit ~/.bashrc #Open .bashrc file
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS #Add at the end of the file
source ~/.bashrc
  1. Execute build_ros.sh script:
cd PLI_SLAM
chmod +x build_ros.sh
./build_ros.sh

4. Run on EuRoC dataset

Download a rosbag from the EuRoC dataset. Open 3 tabs on the terminal and run the following command at each tab:

roscore
roslaunch PLI_SLAM Stereo_Inertial Vocabulary Examples/Stereo-Inertial/EuRoC.yaml true
rosbag play ROSBAG_PATH 

About

PLI-SLAM: A Stereo Visual-Inertial SLAM based on Point-Line Features

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages