In this work, we propose a Block Map (BM) generation and maintenance method and the corresponding BM-based localization system. The main contributions are as follows:
- A BM-based localization system in a large-scale environment is proposed for the first time.
- A BM generation method and corresponding switching strategy is proposed which maintains the spatial continuity of adjacent BMs.
- A factor graph-based optimization method with the dynamic sliding window based on BMs is proposed to achieve accurate and reliable state estimation.
- We achieve the best performance on publicly available large-scale datasets NCLT and M2DGR.
Ubuntu
- ndt_omp
- fast_gicp
- hdl_global_localization (Can be replaced by our promoted global localization method; will release soon)
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
We provide some Block Maps (Google Drive) to make your tests easy.
- M2DGR street_01
- M2DGR street_02
Download NCLT from https://robots.engin.umich.edu/nclt/
roslaunch block_localization run_nclt.launch
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.
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}
}
Thanks for the open-source projects hdl_localization, hdl_global_localization and LIO-SAM.