Chess is one of the oldest two player strategy board game and it is played by millions of people worldwide. Thousands of books have been written on Chess, more than on any other game in the world. vteams robotics division have brought about a fusion of the old and the new by introducing an application that lets Rethink Robotics’ Baxter robot play Chess! Baxter Research Robot is a safe, affordable, robust platform to be used in research and industry based activities.
After working on multiple projects, our robotics team decided to do something out of the box. A Chess application was developed in which two remote players play chess from their workstations that are also connected with Baxter. Both players see a chessboard on their screens and are able to play against each other. The novelty is that Baxter replicates each move the players make onto a real chess-board. Whenever a piece is killed, Baxter picks it up and puts it on one side of the chessboard. Baxter notifies both players through its screen on change of turns. This application is developed by using the following software and hardware components:
Following Software Technologies are used:
- ROS (Robot Operating System)
- Baxter SDK 1.1.1
- Python 2.7.6
- Open-CV 2.4.10 library
- IDLE (Integrated Development Environment for Python)
Following Hardware Technologies are used:
- Baxter Research Robot
- Two workstations running ROS and connected with Baxter
How This Application Works:
When players start their applications, they are prompted to choose their teams. On selecting teams, a virtual chess board appears on each players’ screen.
When one player moves a piece, Chess interface running at back-end passes the co-ordinates of its picking position and then the placing position as well.
These co-ordinates are then transformed into Baxter co-ordinates that depends upon the length of boxes in the actual Chess and its relative position with Baxter torso. After transformation into Baxter co-ordinates, these co-ordinates are passed as the end-effector position to be followed by Baxter. Baxter reaches to given co-ordinates, picks up piece and places it to the desired location. When a piece is killed, Baxter picks it up and places on specified location outside of board.