• Stars
    star
    133
  • Rank 272,600 (Top 6 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Implementation for IROS2020: "GMMLoc: Structure Consistent Visual Localization with Gaussian Mixture Model"

GMMLoc

Build Status LICENSE

Dense Map Based Visual Localization. [project]

Paper and Video

Related publication:

@article{huang2020gmmloc,
  title={GMMLoc: Structure Consistent Visual Localization with Gaussian Mixture Models},
  author={Huang, Huaiyang and Ye, Haoyang and Sun, Yuxiang and Liu, Ming},
  journal={IEEE Robotics and Automation Letters},
  volume={5},
  number={4},
  pages={5043--5050},
  year={2020},
  publisher={IEEE}
}

Demo videos:

v103 gmmloc

Prerequisites

We have tested this library in Ubuntu 18.04. Prerequisites for installation:

  1. ROS (melodic)

  2. OpenCV3

apt-get install libopencv-dev
  1. miscs:
apt-get install python-wstool python-catkin-tools 
  1. evo (optional)
pip install evo --upgrade --no-binary evo

Installation

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 [email protected]:hyhuang1995/gmmloc.git

If using SSH keys for github, prepare the dependencies via:

wstool init . ./gmmloc/gmmloc_ssh.rosinstall
wstool update

or using https instead:

wstool init . ./gmmloc/gmmloc_https.rosinstall
wstool update

Compile with:

catkin build gmmloc_ros

Running Examples

We provide examples on EuRoC Vicon Room sequences. For example, to run the demo on V1_03_difficult:

  1. Download the sequence (ASL Format)

  2. Replace the /PATH/TO/EUROC/DATASET/ in v1.launch with where the sequence is decompressed:

<param name="data_path" value="/PATH/TO/EUROC/DATASET/$(arg seq)/mav0/" />
  1. Launch:
roslaunch v1.launch seq:=V1_03_difficult

Evaluation

If evo is installed, we provide script for evaluating on Vicon Room sequences.

roscd gmmloc_ros
./scripts/evaluate_euroc.sh

and the results would be saved to gmmloc_ros/expr. By default, we follow the evaluation protocol of DSO to perform evaluation without multi-threading. If you would like to run the script in online mode, uncomment this line in the script:

rosparam set /gmmloc/online True

Credits

Our implementation is built on top of ORB-SLAM2, we thank Raul et al. for their great work.