semvec/pypi-packages huggingface dataset:
perceptual-map-closures 2.0.3
Effectively Detecting Loop Closures using Point Cloud Density Maps
Requires Python: >=3.8
Keywords: Loop Closures, Localization, SLAM, LiDAR

<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>
projorg 1.1
projorg: Python project organization and management

<h2 align="center">projorg: Python project organization and management</h2>

A lightweight package for managing Python project structure, experiment tracking, and reproducibility.

## Features

- Consistent project directory structure (data, plots, checkpoints, logs)
- Automatic experiment naming based on input arguments
- Configuration management with JSON files and command-line overrides
- Comprehensive experiment logging (git hashes, timestamps, diffs)
- Cloud backup integration via rclone
- Hyperparameter grid search utilities

## Requirements

Your project must be in a git repository for the logging and path resolution features to work properly. The package uses git to track code versions, generate experiment logs, and locate the project root directory.

## Installation

```bash
pip install projorg
```

### Development installation

```bash
git clone https://github.com/alisiahkoohi/projorg
cd projorg/
pip install -e .
```

## Quick Start

Create a configuration file in `configs/my_config.json` with your
experiment parameters:

```json
{
    "experiment_name": "my_experiment",
    "learning_rate": 0.001,
    "batch_size": 32,
    "seed": 42
}
```

Use in your script:

```python
from projorg import setup_environment, datadir, plotsdir

# Setup with automatic logging
args = setup_environment(
    "my_config.json",
    ignore_arg_list=["experiment_name"],
    sequence_args_and_types=[("batch_size", int)]
)

# Access organized directories
data_path = datadir(args.experiment)
plots_path = plotsdir(args.experiment)
```

Override config values from command line:

```bash
python scripts/my_script.py --learning_rate 0.01 --batch_size 64
```

## Example

See `scripts/example_script.py` for a complete working example:

```bash
python scripts/example_script.py
```

## Core Functions

- `setup_environment()`: Initialize experiment with automatic logging of git commit hash, timestamp, configuration, and code diffs
- `datadir()`, `plotsdir()`, `checkpointsdir()`, `logsdir()`: Get organized paths
- `query_arguments()`: Generate hyperparameter combinations for grid search
- `upload_to_cloud()`: Backup experiments to cloud storage

## Logging

The `setup_environment()` function automatically creates detailed logs in the `logs/` directory for each experiment, including:

- Current git commit hash and branch
- Execution timestamp
- Full configuration file used
- Git diff showing uncommitted changes
- Any additional metadata you provide

This ensures complete reproducibility by capturing the exact code state for every experiment run.

## Questions

Contact alisk@ucf.edu

## Author

Ali Siahkoohi