Overall, our project was successful. It was able to perform the tasks that we hoped to carry out at the start of the project.
Convert an image of the board to an internal representation:
Given propper cropping callbiration and white paper under the board, our computer vision and neural network were able to reliably to detect all of the pieces on the board and convert it into an internal representation. The blue tape was successfully used to detect the corners of the board. Homography was then used to get a flat view of the board for the neural network to predict the color of the balls, which it did consistently.
Create an AI that can generate a move:
We were able to create to create two different AI's to play the game. One was a naive AI that outputted the move that moved its pieces the farthest. The other one was a much more stronger AI that used minimax and alpha-beta pruning to decide on the best possible move.
Move the piece dictated by a certain move:
After immense calibration, we were able to consistently move pieces from one spot to another without knocking over other pieces or hitting other objects in the environment.