We implemented a fully automated method for accurate maze solving for a 4th-year course. The system used
a camera looking from above the workspace and a FANUC robotic arm holding a marker.

A binary representation of the maze is extracted using image processing techniques
such as cropping, thresholding, noise reduction, and contour finding. The start
point of the maze is marked by a square and the endpoint is marked by a triangle.

Input from the camera

Binary image with end points identified

To ensure the path travels down the center, the binary image is skeletonized and a weighted A* algorithm is used to find a path through the maze. A greedy algorithm is then applied to reduce the number of waypoints required to traverse the path.

Skeletonized

A*

Reduce waypoints

In order for the robotic arm to draw accurately to the designated path, we calibrated the position and orientation of the camera, robotic arm, and the table surface. We place a standard checkerboard at a known location on the work surface, and then use homography to find the transformation between the checkerboard and the camera.