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
andcv2.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.