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.
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.
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.