Metadata-Version: 2.2
Name: map_closures
Version: 2.1.0
Summary: Effectively Detecting Loop Closures using Point Cloud Density Maps
Keywords: Loop Closures,Localization,SLAM,LiDAR
Author: Saurabh Gupta, Tiziano Guadagnino
License: MIT
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Project-URL: Homepage, https://github.com/PRBonn/MapClosures
Requires-Python: >=3.10
Requires-Dist: kiss-icp<=1.3.0,>=1.2.3
Requires-Dist: numpy<2.3.0,>=2.1.0
Requires-Dist: scipy<1.18.0,>=1.14.0
Requires-Dist: pydantic<2.14,>=2.11
Requires-Dist: pydantic-settings<2.15,>=2.12
Requires-Dist: typer[all]<0.26.0,>=0.24.0
Requires-Dist: typing_extensions
Requires-Dist: tqdm~=4.67
Provides-Extra: all
Requires-Dist: open3d<0.20,>=0.19; extra == "all"
Requires-Dist: pyyaml~=6.0; extra == "all"
Requires-Dist: mcap-ros2-support; extra == "all"
Requires-Dist: rosbags<0.12,>=0.10; extra == "all"
Requires-Dist: trimesh; extra == "all"
Requires-Dist: ouster-sdk; extra == "all"
Requires-Dist: pyntcloud; extra == "all"
Provides-Extra: visualizer
Requires-Dist: polyscope; extra == "visualizer"
Requires-Dist: matplotlib>3.9.2; extra == "visualizer"
Description-Content-Type: text/markdown

<div align="center">
    <h1>MapClosures</h1>
    <a href="https://github.com/PRBonn/MapClosures/releases"><img src="https://img.shields.io/github/v/release/PRBonn/MapClosures?label=version" /></a>
    <a href="https://github.com/PRBonn/MapClosures/blob/main/LICENSE"><img src=https://img.shields.io/badge/license-MIT-green" /></a>
    <a href="https://github.com/PRBonn/MapClosures/blob/main/"><img src="https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black" /></a>
    <a href="https://github.com/PRBonn/MapClosures/blob/main/"><img src="https://img.shields.io/badge/Windows-0078D6?st&logo=windows&logoColor=white" /></a>
    <a href="https://github.com/PRBonn/MapClosures/blob/main/"><img src="https://img.shields.io/badge/mac%20os-000000?&logo=apple&logoColor=white" /></a>
    <br />
    <br />
    <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
    <a href="https://github.com/PRBonn/MapClosures/blob/main/README.md#Install">Install</a>
    <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
    <a href=https://www.ipb.uni-bonn.de/pdfs/gupta2024icra.pdf>ICRA24 Paper</a>
    <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
    <a href=https://github.com/PRBonn/MapClosures/issues>Contact Us</a>
  <br />
  <br />

Effectively Detecting Loop Closures using Point Cloud Density Maps.

<p align="center">

![image](https://github.com/PRBonn/MapClosures/assets/28734882/18d5ee54-61a9-4d9f-87f2-8aba16de0f75)
</p>
</div>
<hr />

## Install the Python API and CLI
`pip install map-closures`

### Usage
<details>
<summary>
The following command will provide details about how to use our pipeline:

```sh
map_closure_pipeline --help
```
</summary>

![CLI_usage](https://github.com/PRBonn/MapClosures/assets/28734882/6dfbd767-ca63-4671-9582-3129752d0244)
</details>

<details>
<summary>
Providing the -v flag will initialize the visualizer:

```sh
map_closure_pipeline -v
```
</summary>

![Visualizer](https://github.com/user-attachments/assets/34aa2b2f-c0ce-4dfb-a0e0-cbcc04487a5a)
</details>

## Citation

If you use this library for any academic work, please cite our original [paper](https://www.ipb.uni-bonn.de/pdfs/gupta2024icra.pdf).

```bibtex
@inproceedings{gupta2024icra,
    author     = {S. Gupta and T. Guadagnino and B. Mersch and I. Vizzo and C. Stachniss},
    title      = {{Effectively Detecting Loop Closures using Point Cloud Density Maps}},
    booktitle  = {IEEE International Conference on Robotics and Automation (ICRA)},
    year       = {2024},
    codeurl    = {https://github.com/PRBonn/MapClosures},
}
```

## Acknowledgement

This repository is heavily inspired by, and also depends on [KISS-ICP](https://github.com/PRBonn/kiss-icp)

## Contributors

<a href="https://github.com/PRBonn/MapClosures/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=PRBonn/MapClosures" />
</a>
