# dufomap
**Repository Path**: kin-zhang/dufomap
## Basic Information
- **Project Name**: dufomap
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: BSD-3-Clause
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-04-22
- **Last Updated**: 2024-07-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Research
## README
DUFOMap: Efficient Dynamic Awareness Mapping
Daniel Duberg1,*
Qingwen Zhang1,*
Mingkai Jia2
Patric Jensfelt1
*Co-first author 1KTH 2HKUST
[](https://arxiv.org/abs/2403.01449)
[](https://KTH-RPL.github.io/dufomap) [video coming soon] [poster coming soon]. Accepted by RA-L'24.
Quick Demo: Run with the **same parameter setting** without tuning for different sensor (e.g 16, 32, 64, and 128 channel LiDAR and Livox-series mid360), the following shows the data collected from:
| Leica-RTC360 | 128-channel LiDAR | Livox-mid360 |
| ------- | ------- | ------- |
|  |  |  |
## 0. Setup
Clone and init submodule quickly:
```bash
git clone --recursive -b main --single-branch https://github.com/Kin-Zhang/dufomap.git
# 在内地的同学可以尝试下面gitee加速:
git clone --recursive -b main --single-branch https://gitee.com/kin-zhang/dufomap
```
Choose setup on your own environment or inside docker.
### Environment
Since Ranges (`std::range`) and `#include ` first existed in C++20 and GCC 10
```bash
sudo apt update && sudo apt install gcc-10 g++-10
sudo apt install libtbb-dev liblz4-dev liblzf-dev
```
### Docker
Dockerfile is provided, you can build or directly pull by:
```bash
# option 1: build
docker build -f Dockerfile -t zhangkin/dufomap .
# option 2: pull
docker pull zhangkin/dufomap
```
Then you can run a container with the following command:
```bash
docker run -it --rm --name dufomap -v /home/kin/data:/home/kin/data zhangkin/dufomap /bin/zsh
# you can also login as root to install pkg in existing container you want through:
docker exec -it -u 0 dufomap /bin/zsh
```
## 1. Build & Run
Build:
```bash
cmake -B build -D CMAKE_CXX_COMPILER=g++-10 && cmake --build build
```
Prepare Data: Teaser data (KITTI 00: 384.4Mb) can be downloaded via follow commands, more data detail can be found in the [dataset section](https://github.com/KTH-RPL/DynamicMap_Benchmark?tab=readme-ov-file#dataset--scripts) or format your own dataset follow [custom dataset section](https://github.com/KTH-RPL/DynamicMap_Benchmark/blob/master/scripts/README.md#custom-dataset).
```bash
wget https://zenodo.org/records/8160051/files/00.zip
unzip 00.zip -d data
```
Run:
```bash
./build/dufomap_run data/00 assets/config.toml
```

## 2. Evaluation
Please reference to [DynamicMap_Benchmark](https://github.com/KTH-RPL/DynamicMap_Benchmark) for the evaluation of DUFOMap and comparison with other dynamic removal methods.
[Evaluation Section link](https://github.com/KTH-RPL/DynamicMap_Benchmark/blob/master/scripts/README.md#evaluation)
## Acknowledgements
Thanks to HKUST Ramlab's members: Bowen Yang, Lu Gan, Mingkai Tang, and Yingbing Chen, who help collect additional datasets.
This work was partially supported by the Wallenberg AI, Autonomous Systems and Software Program ([WASP](https://wasp-sweden.org/)) funded by the Knut and Alice Wallenberg Foundation including the WASP NEST PerCorSo.
Feel free to explore other projects that use [ufomap](https://github.com/UnknownFreeOccupied/ufomap) (attach code links as follows):
- [RA-L'24 DUFOMap, Dynamic Awareness]()
- [RA-L'23 SLICT, SLAM](https://github.com/brytsknguyen/slict)
- [RA-L'20 UFOMap, Mapping Framework](https://github.com/UnknownFreeOccupied/ufomap)
### Citation
Please cite our works if you find these useful for your research.
```
@article{daniel2024dufomap,
author={Duberg, Daniel and Zhang, Qingwen and Jia, Mingkai and Jensfelt, Patric},
journal={IEEE Robotics and Automation Letters},
title={{DUFOMap}: Efficient Dynamic Awareness Mapping},
year={2024},
volume={9},
number={6},
pages={5038-5045},
doi={10.1109/LRA.2024.3387658}
}
@article{duberg2020ufomap,
author={Duberg, Daniel and Jensfelt, Patric},
journal={IEEE Robotics and Automation Letters},
title={{UFOMap}: An Efficient Probabilistic 3D Mapping Framework That Embraces the Unknown},
year={2020},
volume={5},
number={4},
pages={6411-6418},
doi={10.1109/LRA.2020.3013861}
}
@inproceedings{zhang2023benchmark,
author={Zhang, Qingwen and Duberg, Daniel and Geng, Ruoyu and Jia, Mingkai and Wang, Lujia and Jensfelt, Patric},
booktitle={IEEE 26th International Conference on Intelligent Transportation Systems (ITSC)},
title={A Dynamic Points Removal Benchmark in Point Cloud Maps},
year={2023},
pages={608-614},
doi={10.1109/ITSC57777.2023.10422094}
}
```