Home - roadnarrows-robotics/chess_engine GitHub Wiki
A ROS package to enable the easy integration of the GNU chess engine into your robotic applications.
Nearing completion. (About time!) I need to add:
- rqt_chess visualizer
- refine the ROS messages and services.
MIT
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 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)
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.
- Ubuntu 16.04 + ROS kinetic or Ubuntu 14.04 + ROS indigo
- GNU Chess 6.x
- Qt 5.x
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 |