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.
Ubuntu16.04+
We use the new thread and chrono functionalities of C++11.
Cuda 10.* and CUDNN are required for Feature Detection Network Inference. Tested Under Cuda 10.2 and Cudnn 7.6.5
We use Pangolin for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.
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 ..
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
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 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
git clone https://github.com/Merical/self-supervised-feature-slam.git
cd SSF-SLAM
chmod +x build.sh
./build.sh
This will the executables create rgbd_lch in LCHP folder.
python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
cd LCHP
./rgbd_lchp path_to_vocabulary path_to_settings path_to_sequence path_to_association path_to_trajectory_dir