Computer vision based information gathering is recently becoming more and more common in industrial robot controls. This thesis presents an example to such system built around a chess game.
The presented system has a Mitsubishi MELFA RV-2F robot to move the chesspieces on the board. A camera applied on the robot provides the image input, from which the chess game state can be identified. A distributed system of softwares has been created that consists of a chess game software, another software that handles the image processing and the robot control, and there are other smaller softwares that participate in the robot’s lower level control and communication. The two main softwares communicate over TCP/IP network connection. The robot control software (on the computer) uses Modbus/TCP protocol to communicate with the robot base program.
The chess game is implemented in Java. The image processing component is written in C++ and uses OpenCV. The robot control component is written in C with the use of Libmodbus library. The lower level robot base sofware that controls the robot’s movement is implemented in Melfa Basic V, the native language of the robot.
Multiple game modes are available in the chess game by pairing different types of players. The game can be played by the user on the software GUI, or can be played by hand on the real chessboard. Artificial intelligence player can also be set as an opponent. Some game modes use the robot as an observation too, to broadcast the game in the phisical reality, without the robot side functioning as a player. Game modes can be easily configured from these combinations, thanks to the well defined and generalized interfaces. Less exciting, robotless game modes can be chosen too.