This was our course project for the ME547 robot manipulator course. We implemented a fully automated method for accurate maze solving. The system used a camera looking from above and a FANUC robotic arm.
A binary representation of the maze is extracted using image processing techniques such as cropping, thresholding, noise reduction, and contour finding. The start point is marked by a square and the end point is marked by a triangle.
To ensure the path travels in the center between the walls, the binary image is skeletonized and a weighted A* algorithms is used to find a path through the maze. A greedy algorithms 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 designed path, we calibrated the position and orientation of the camera, robotic arm, and the table surface. We used a standard checkerboard for calibration. First, a pattern is drawn on the table to place the checkerboard. Since we know where the robot has drawn, we can calculate the transformation of the checkerboard with respect to the robot. Then, the camera is calibrated to the checkerboard using homography.