Metadata-Version: 2.4
Name: aprilgrid
Version: 0.4.0
Summary: Pure python version of aprilgrid.
Project-URL: Source, https://github.com/powei-lin/aprilgrid
Project-URL: Documentation, https://github.com/powei-lin/aprilgrid#readme
Project-URL: Issues, https://github.com/powei-lin/aprilgrid/issues
Author-email: Powei Lin <poweilin1994@gmail.com>
License-Expression: BSD-3-Clause
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.8
Requires-Dist: numpy
Requires-Dist: opencv-python
Description-Content-Type: text/markdown

# Aprilgrid
[![Ubuntu Build Status](https://github.com/powei-lin/aprilgrid/workflows/ubuntu/badge.svg)](https://github.com/powei-lin/aprilgrid/actions/workflows/ubuntu.yml)

### Pure python version of aprilgrid
Inspired by [Apriltag](https://github.com/AprilRobotics/apriltag) and [Kalibr](https://github.com/ethz-asl/kalibr). There are lots of existing python binding of Apriltag. But as everyone knows, python binding causes a lot of issues. So I rewrite a pure python version of Apriltag, and it's also able to detect Aprilgrid.

<img src="example/showcase.avif" width="800" alt="Slow down for show case.">

## Install from PyPI
```
pip install aprilgrid
```

## Usage
Some examples of usage can be seen in the example/main.py file.

```py
from aprilgrid import Detector

detector = Detector("t36h11")

detector.detect(img)
```

Kalibr uses 2 bit black border while apriltag3 uses 1 bit black border for each tag. The default of aprilgrid follows Kalibr. Please use `t36h11b1` if you're using tags with 1 bit black border.

<img src="docs/tag_border_issue.png" width="400" alt="Slow down for show case.">

## Development
```sh
git clone https://github.com/powei-lin/aprilgrid.git
cd aprilgrid
pip install -e .
```

## TODO
- [ ] Add output for opencv calibrate camera.
- [ ] Provide pregenerated pdf and easy way to customize.
- [ ] Support all tag families.
- [ ] Accelerate and multi-threading.
- [ ] Robustness.

## Reference
- https://github.com/AprilRobotics/apriltag
- https://github.com/ethz-asl/kalibr