Home - roadnarrows-robotics/chess_engine GitHub Wiki

bK chess_engine wiki

A ROS package to enable the easy integration of the GNU chess engine into your robotic applications.

Status

Nearing completion. (About time!) I need to add:

  • rqt_chess visualizer
  • refine the ROS messages and services.

License

MIT

bN Summary

What It Is

The chess_engine meta-package provides a set of libraries, headers, and ROS nodes to facilitate the developemnt of robotic chess playing algorithms. The end goal? Make a robotic manipulator that autonomously competes against either a human or robot opponent, playing on a physical board with physical pieces.

To that end, the developers of the perfect robotic chess playing machine must consider a (sub)set of the following problem domains:

  • Locate and orient the chess board.
  • Locate and recognize the chess pieces on or off the board.
  • Apply kinodynamic algorithms to move, grasp, and release any chess piece.
  • If playing on the same board with a human/robot competitor, behave with good chess etiquete. (Don't try to move when someone's hand is hovering over the board, equivocating over their move!)
  • Reset the physical game from the current board state and off-board captured pieces.
  • Train the robot to recognize a new board motif with chess pieces of a new style and color.
  • Add synthesized voice to distract your opponent's concentration and entertain your judges.
  • Define victory moves to be a very bad winner.

The Game

The chess_engine package supports the full game of chess:

  • Basic moves
  • Piece capture
  • Castling
  • Pawn promotion
  • En passant
  • Check
  • End of game (checkmate/draw/resign)

What It Is Not

If you are looking to develop a Deeper Blue, this repo will not avail. You must trek to the distant Himalayas to reach your Chess Nirvana. Good luck.

wN Requirements

  • Ubuntu 16.04 + ROS kinetic or Ubuntu 14.04 + ROS indigo
  • GNU Chess 6.x
  • Qt 5.x

bR System Reference Diagram

Reference Diagram

wR Game Scenarios

Game Player 0 Player 1
Auto-Play ce0 ce1
Robot vs. Computer robot+ce0 ce1
Robot vs. Human robot+ce0 human
Robot vs. Robot robot+ce0 robot+ce1
Computer vs. Human ce0 human
⚠️ **GitHub.com Fallback** ⚠️