Home

Awesome

<div align="center"> <h1>BM-Loc</h1> <br /> <a href=https://www.youtube.com/watch?v=jJhs0jK-uSI>🎬Video</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="https://github.com/YixFeng/Block-Map-Based-Localization/blob/main/README.md#Installation">🛠️Installation</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href=https://arxiv.org/pdf/2404.18192>📑Paper</a> <br /> <br /> </div>

BMLoc_cover

In this work, we propose a <strong>Block Map (BM)</strong> generation and maintenance method and the corresponding BM-based localization system. The main contributions are as follows:


Installation

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu $\geq$ 18.04

1.2 ROS Package

2. Build

cd <your workspace>/src
git clone https://github.com/koide3/ndt_omp
git clone https://github.com/SMRT-AIST/fast_gicp --recursive
git clone https://github.com/koide3/hdl_global_localization
git clone https://github.com/YixFeng/Block-Map-Based-Localization

cd ..
catkin_make
source devel/setup.bash

Run

We provide some Block Maps (Google Drive) to make your tests easy.

m2dgr_street_01

m2dgr_street_02

1. NCLT

Download NCLT from https://robots.engin.umich.edu/nclt/

roslaunch block_localization run_nclt.launch

2. M2DGR

Download M2DGR from https://github.com/SJTU-ViSYS/M2DGR

roslaunch block_localization run_m2dgr.launch

Remarks: Since BM-Loc is a map-based localization method, you need to provide the directory where maps are stored. Edit the parameter globalmap_dir in config/*.yaml files.

Citation

If you use any of this code, please cite our paper.

@article{feng2024block,
  title={Block-Map-Based Localization in Large-Scale Environment},
  author={Feng, Yixiao and Jiang, Zhou and Shi, Yongliang and Feng, Yunlong and Chen, Xiangyu and Zhao, Hao and Zhou, Guyue},
  journal={arXiv preprint arXiv:2404.18192},
  year={2024}
}

Acknowledgements

Thanks for the open-source projects hdl_localization, hdl_global_localization and LIO-SAM.