Using Learnt Features in Indirect Visual SLAM. [project]
Related publication:
@inproceedings{hyhuang2020rdvo,
title={Monocular Visual Odometry using Learned Repeatability and Description},
author={Huaiyang Huang, Haoyang Ye, Yuxiang Sun and Ming Liu},
booktitle={IEEE International Conference on Robotics and Automation (ICRA)},
year={2020},
organization={IEEE}
}
Demo videos:
We have tested this library in Ubuntu 18.04 with CUDA 9.2 and cuDNN 7.6. Prerequisites for installation:
- ROS (ros-base is enough)
apt-get install ros-melodic-ros-base
- miscs for installation:
apt-get install python-wstool python-catkin-tools
apt-get install libopencv-dev
-
CUDA tookit, cuDNN (change the version of libtorch in install.sh according to CUDA version)
-
Pangolin (optional, for visualization)
-
evo (optional, for evaluation)
pip install evo --upgrade --no-binary evo
Initialize a workspace:
mkdir -p /EXAMPLE/CATKIN/WORK_SPACE
cd /EXAMPLE/CATKIN/WORK_SPACE
mkdir src
catkin init
catkin config --extend /opt/ros/melodic
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin config --merge-devel
Clone the code:
cd src
git clone git@github.com:hyhuang1995/sp_orb_slam.git
Use the installation script:
cd sp_orb_slam
./install.sh
We provide examples on the New Tsukuba and the EuRoC MAV dataset. To run the demo on the New Tsukuba sequences:
-
Download the dataset
-
Replace the /PATH/TO/TSUKUBA/DATASET in tsukuba.launch with where the sequence is decompressed:
<param name="data_path" value="/PATH/TO/TSUKUBA/DATASET" />
- Launch:
roslaunch tsukuba.launch seq:=lamps
To run the demo on the EuRoC MAV dataset:
-
Download the sequences (ASL Format)
-
Replace the /PATH/TO/EUROC/DATASET/ in euroc_mono.launch with where the sequence is decompressed:
<param name="data_path" value="/PATH/TO/EUROC/DATASET/$(arg seq)/mav0/" />
- Launch:
roslaunch euroc_mono.launch seq:=MH_05_difficult
The output trajectories would be saved to orb_ros/expr.
If evo is installed, we provide scripts for evaluating the VO performances.
roscd orb_ros
./scripts/evaluate_tsukuba.sh
or
./scripts/evaluate_euroc.sh
and the results would be saved to orb_ros/expr.
Our implementation is built on top of ORB-SLAM2, see the license in the source files for more details. The authors would like to thank Raul et al. for their great work.