ASD-SLAM

This repository contains two parts: one is ASDNet generating ASD in folder ASDNet, the other is ASD-SLAM which derived from ORB-SLAM2.

Dependency

  • ROS (tested with indigo and kinetic)
  • Libtorch
    https://github.com/pytorch/pytorch.git
    git submodule update --init --recursive 
    mkdir build
    cd build
    python ../tools/build_libtorch.py
    

Compile

You can use the following commands to download and compile the package.

git clone https://github.com/mataiyuan/ASD-SLAM.git
cd ASD-SLAM && catkin build vslam

When you compile the code for the first time, you need to modify CMakeLists.txt in folder vslam, you should set your own APPEND CMAKE_PREFIX_PATH list(APPEND CMAKE_PREFIX_PATH "/home/mataiyuan/Ku/pytorch/torch/share/cmake/Torch").

NetWork

drawing

Run the package

  1. Run the ASDNet.py to train to learn descriptors ASD
python ASDNet.py
  1. run ASD-SLAM on KITTI or EUROC datasets:
bash run_vslam_kitti.sh  
or  
bash run_vslam_euroc.sh

Experiment Results

we test ASD-SLAM LDSO ORB-SLAM2 on KITTI datasets , the results are in folder /experiment_result. you can evaluate the results with rpg_trajectory_evaluation.

drawing

drawing

Show the map

After you run bash run_vslam_kitti.sh or bash run_vslam_euroc.sh , it will save the map.map and trajectory in folder /DataSave, the format of trajectory is origanized as timestamp , qx , qy , qz , qw , px , py , pz. If you want to check the map, you can build the folder display_map like this:

catkin build display_map --no-deps
./display_map map_dir

drawing