We designed and built a prototype Chess Robot that is able to play an entire game of chess against a human opponent. The robot will respond to a human move by moving any one of its pieces to any valid location on the board. This is done using an end effector which consists of a magnet that is raised to the underside of the board and magnetically attracts to a steel screw inside each piece. The end effector is then moved with a belt-pulley system to a new location via a series of paths and then lowered to release the piece from the magnet. Pieces are small enough such that the system can slide a piece between 2 other pieces, along the edges of the squares.
To move the magnet up and down, a rack and pinion mechanism was employed. The pinion was attached to a small stepper motor, and the rack was guided in a bracket which also was used to attach the end effector to the slider. The end effector was designed to be able to achieve at least 1 inch of travel. This allowed us to optimize the best magnet height such that the chess piece above was able to be moved.
Whenever a move is made by the human opponent of the robot, the human is to type in their move into a computer. This is to avoid the difficult problem of automatically detecting human moves. Once a move is entered, the Open-source 'Stockfish' API computes the best possible response move given the situation. This API is implemented in python, and the move is then converted into a sequence of x and y paths. This is sent to Arduino code which executes the move and subsequently moves the piece on the board.
Each slider interfaces with a main and return belt. The main belt is passed through a hole in the side of the slider and clamped down with two screws. It is pulled through an angled slot for tensioning before being screwed in place. The other side of the belt, the return, passes around two pulleys on either side of the extrusion: one powered and one free. In between the two pulleys, the belt passes through a larger slot on the other side of the slider. Finally, the belt returns to the start where it too is clamped down with a screw. This system allows for easy tensioning of the belt system and good reliability.
For this project, 2 main constraints were placed on the design.
1) The system must have 2.5 degrees of freedom.
2) It must be small enough to fit in a backpack
The first constraint is clearly met by our design. 1 degree of freedom in the x-direction, one in the y-direction, and1/2 in the z-direction since the end effector only has 2 positions (up and down).
The second constraint is also met. While the system is too large to fit in a backpack directly, given that its overall dimensions are 21" x 21" x 4". However, the system is designed such that it can be assembled by 1 person in under 10 minutes. Testing this, It took 1 team member 7 minutes to assemble the system.
While the project was overall a success, a few of the features we had originally planned for were not able to be implemented. Firstly, we were not able to implement piece promotion and fully automated piece capture. These both would have required more space than available to us within the constraints of this project, as well as more time. Extra space on both sides of the board to store captured pieces would be needed to fully automate this. To achieve this, we would either need a larger area accessible by the end effector or would need to make the board smaller, both of which we could not achieve. However, given more time and resources, we could likely implement these features.
Another shortcoming was the mounting of the chessboard itself. Specifically, we had not considered that leveling and securing the chess board would be difficult. However, it turned out that, at the last minute, one of the elements that were causing issues was that the board was at a slightly different height in one corner than the other, by a matter of millimeters. This meant that since the board and cartesian system were not exactly parallel, the end effector was too high at one edge and too low at the other. Integrating the board mounting into the frame of the cartesian system would be a solution to be implemented for future iterations.
Throughout the design process, the aim of the design was to make it as playable of a chess game as possible. In this, we believe we have succeeded. While the prototype did not have all the functionality we want, it is after all a prototype. In the future, we hope to add promotion, automated piece capturing, and even voice activation so that the user can simply say the move they wish to make rather than interfacing with a computer.