A 3-DoF servo-based wooden robotic arm based on Arduino and C++ that plays chess using computer vision.

Inverse Kinematics

The robot uses inverse kinematics to calculate the servo angles and position the end effector to the desired square on the board.

Read more in-depth here.

Computer Vision

A computer vision system with Python’s openCV and grid detection is used to decipher the position of the game.

  • Using cv2.polylines and cv2.pointPolygonTest, the grid with all of its squares are drawn.

  • A simple pixel-pixel comparison is made before and after the move is made to determine the origin and destination squares.

Older Designs

Developing this arm took over 3 summers in high school.