Merical / SSF-SLAM

Feature-based VSLAM system with self-supervised feature detection

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SSF-SLAM

A Self-Supervised-Feature-Slam System with RGB-D Camera. The Feature-based VSLAM system with self-supervised feature detection is referring to ORB_SLAM2.

Prerequisites

System

Ubuntu16.04+

C++11 or C++0x Compiler

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

CUDA&CUDNN

Cuda 10.* and CUDNN are required for Feature Detection Network Inference. Tested Under Cuda 10.2 and Cudnn 7.6.5

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.4.0. Tested with OpenCV 3.4.6. The cmake command is attached. Please make sure that libgtk2.0-dev, pkg-config and other prerequisites are installed.

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=$HOME/Sources/opencv_contrib-$OPENCV_VERSION/modules -D BUILD_TIFF=ON -D OPENCV_ENABLE_NONFREE=ON -DBUILD_PNG=ON -DWITH_CUDA=ON -DBUILD_opencv_cudacodec=OFF ..

Eigen3

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

sudo apt-get install libeigen3-dev

DBoW3 and g2o (Included in Thirdparty folder)

We use modified versions of the DBoW3 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.

LibTorch

LibTorch is required for Feature Detection Network Inference. Download the cxx11 abi libtorch package and copy the subfolder libtorch to ~/Sources Tested under Libtorch 1.5.1

Build

Clone the repository

git clone https://github.com/Merical/self-supervised-feature-slam.git

Build the project

cd SSF-SLAM
chmod +x build.sh
./build.sh

This will the executables create rgbd_lch in LCHP folder.

Examples

Associate the sequence

python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt

Execute

cd LCHP
./rgbd_lchp path_to_vocabulary path_to_settings path_to_sequence path_to_association path_to_trajectory_dir

About

Feature-based VSLAM system with self-supervised feature detection

License:Other


Languages

Language:C++ 94.4%Language:Python 5.0%Language:CMake 0.5%Language:Shell 0.1%