Automated Chess Board

Knights of Engineering

Timeline

Fall 2018 – Spring 2019

Students

  • Katherine Younke
  • Andrew Delgado
  • Lena Ngungu
  • Rodrigo Ramirez
  • Ray Robinson

 

Abstract

We are creating an interactive chess playing robot, one that will be used for university outreach and to encourage potential students to enroll at UTA. More than just an outreach tool, this system will be used to demonstrate what one who studies as a computer scientist or engineer can develop. This in turn will spark an interest in younger kids to pursue careers in the STEM fields.

We will achieve this vision by creating a chess board that has a CPU opponent capable of moving its pieces without assistance. We will showcase the capabilities of university-level engineering students and make sure that components are visible to the users. The game will have varying difficulties with untimed play modes so that those with varying skill levels can enjoy and understand the intricacies of the board development.

Background

This project is created for university outreach activities. The project’s purpose is to spark interest in grade level students in the field of Computer Science and Engineering. It will add variety to the showcased projects from university students that will be both entertaining and educational. The goal is to stimulate curiosity and awe from potential engineering students. While versions of the product already exist on the market, they do not demonstrate what students at the university are capable of creating through the knowledge and tools offered in their time at the university

Project Requirements

Arm moves the computer’s pieces to intended position

Interface between computer vision and the AI gives game state

Interface between the arm and the AI signals change to game state

Display indicates moves to the user

User can choose a difficulty setting

Raspberry Pi can compute its move in response to user move

Camera can recognize individual pieces

Lights indicate the end of a game

User can press a button signal the end of their turn

User can turn the machine on or off with a button

 

System Overview

The Raspberry Pi layer will include all of the artificial intelligence programming work. It will receive information about the current game state from the camera layer and make a calculation based upon that information to find the best move. The calculated move will then signal to the SCARA arm the calculated next state The Raspberry Pi layer will receive power from the a power supply and turn on and off based upon the selection of the user on the Visuals layer interface.

The camera layer will read the current state of the game and feed the information to the Raspberry Pi layer. It will only be activated when the user presses the ‘End Turn” button.

The arm layer receives the next state that has been pre-calculated by the AI algorithm; it contains information about which piece to move and the location that it needs to be moved to. If there are any obstructing pieces, the system will first adjust those pieces so that the path can remain clear. The arm will then physically move the piece of interest to the location of interest.

The visuals layer will act as the physical interface between the user and the system. It contains three subsystems: the Display with buttons, the interface, and the LED’s. The Display with buttons subsystem will be responsible for indicating to the user cases of error, level selection options, and options to end turns, end games, and turn off the entire system. The interface layer will receive information from the Raspberry Pi layer about player legality and cases when the game is terminating and then output the display and LED’s the appropriate responses to those cases.

The power layer is responsible for turning the system on and off based upon signals from the user provided by the Visuals’ Display with Buttons subsystem. The power will be given to the Raspberry Pi and the SCARA arm.

Results

The board consists of a wooden case with a laser-cut acrylic surface. The front of the case houses a touch screen that displays the GUI upon plugging in the Raspberry Pi.

The GUI displays three sections. The first section allows for the user to pick their starting color.  The second section allows for the user to select their level of difficulty for the AI to be set as. The final section is allows for you to disable the robot arm. The last portion of the GUI are the two buttons that indicate the start of the game or the exit of the game.

The camera takes pictures upon the signal from the GUI. The algorithm on the Raspberry Pi then processes the differences in game state from those pictures to make a determination of its next move.

Future Work

In the future, the robot arm needs to interface with the AI to successfully send and receive the positions for the arm to move toward. At that point the board would have the capability to be fully autonomous from the user. As such, the board could possibly extend towards ocular control for the benefit of disabled users.

Project Files

https://www.youtube.com/watch?v=yn56c1h7bqI

Github Repository

Project Charter

System Requirements Document

Architectural Design Specification Document

Detailed Design Specification

Innovation Day – Senior Design Poster

References

Marcusbuffett. “Marcusbuffett/Command-Line-Chess.” GitHub, github.com/marcusbuffett/command-line-chess.

“OpenCV 3.3.” OpenCV 3.3 – OpenCV Library, 3 Aug. 2017, opencv.org/opencv-3-3.html.

Meyer, Joey. “The Arm.” The Arm, www.raspberryturk.com/details/arm.html.

chenc4