Skip to content

Darkchess Robot

A self-learning robotic arm that plays Darkchess against a human on a real board, flipping chess pieces with the help of a camera-based board recognition system.

  • Robot arm
  • Open source
  • Works with AI
  • arduino
  • 3D printable

Suggested by Robotheca, created by @ryanlinjui (opens in a new tab), from github.com/ryanlinjui/darkchess-robot (opens in a new tab). Pinned to commit a1bf04f (opens in a new tab).

Photo and 3D model

Darkchess Robot, photo from its repository
Photo:@ryanlinjui (opens in a new tab)Apache-2.0source file (opens in a new tab)

3D preview converted from github.com/ryanlinjui/darkchess-robot at a1bf04f, under Apache-2.0. View the original files from GitHub (6.3 MB) (opens in a new tab)

What it can do

Written by Robotheca from the project's documents.

  • Plays Darkchess (dark chess) on a physical board, with AI agents ranging from random to Min-Max, Alpha-Beta and learned Q-learning/DRL-based policies.
  • Eye component recognizes the board state from camera images using a VGGNet-based model.
  • Robotic arm flips, catches, moves, and eats chess pieces on the board using position commands.
  • Can be operated over WiFi via an API server, with a remote control button starting gameplay.

Works with AI

Found by Robotheca in the project's files at commit a1bf04f, its robot.yaml and Robotheca's notes on its documents. Never guessed; Robotheca doesn't run the code.

  • “Plays Darkchess (dark chess) on a physical board, with AI agents ranging from random to Min-Max, Alpha-Beta and learned Q-learning/DRL-based policies.”

    Robotheca's notes: What it can do

Bill of materials

This repository has no parts list Robotheca can read yet.

Build guide

The guide appears here as you scroll.

Guide by @ryanlinjui (README.md), under Apache-2.0.

More guides

Wiring and electronics

Notes written by Robotheca from the project's documents.

Main parts

  • ATmega1280 Arduino-compatible board controlling the arm.
  • ESP8266 boards used for the receiver and the WiFi remote control.
  • XYZrobot Smart Servo A1-16 servos powering the arm joints.
  • Li-ion 18650 battery powering the remote control.
  • Button module on the remote control.
  • Camera used by the Eye component to view the board.

Connections

  • ESP8266 receiver board is connected to the ATmega1280 board, which drives the servos.
  • Remote control uses an ESP8266 board, a button module and a breadboard powered by a Li-ion 18650 battery.