A "simple" OpenCV maze solver
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Antonio De Lucreziis f06ec2e2ce updated algorithm file 3 months ago
debug-steps added thumbnails 3 months ago
images added a better image 3 months ago
.gitignore initial commit 3 months ago
ALGORITHM.md updated algorithm file 3 months ago
README.md updated readme 3 months ago
cv_maze.py some tweaks and algorithm breakdown 3 months ago
main.py added debug image steps for explainer (to be written) 3 months ago
main_camera.py initial commit 3 months ago
main_camera_test.py some tweaks and algorithm breakdown 3 months ago
poetry.lock initial commit 3 months ago
pyproject.toml initial commit 3 months ago
utils.py some tweaks and algorithm breakdown 3 months ago

README.md

OpenCV Maze Solver

This is a simple maze solver using OpenCV and Python. The maze is solved using the A* algorithm from the NetworkX library.

Markers This project uses apriltag markers (from the family tag25h9) to detect the start and end points of the maze. Here is the meaning of each tag:

  • tag25_09_00001, tag25_09_00002: are used to detect boundaries of the maze.

  • tag25_09_00003 tells the start point of the maze.

  • tag25_09_00004 tells the end point of the maze.

Installation

This project uses Poetry for dependency management. To install the dependencies, run the following command:

poetry install

Usage

Image

To run the maze solver, use the following command:

poetry run python main.py --image <image_path>

Replace <image_path> with the path to the maze image you want to solve like images/IMG_0867.jpg.

Camera

To run the maze solver using the camera, use the following command:

poetry run python main_camera.py