Let's Make Robots!

MyRobotLab Plays Chess with Patrick?


This is a blog post for PM and anyone else interested.  I have been doing many updates to mrl, and have begun working on some tutorial videos.  Patrick Mccabe and I spoke a couple times regarding hooking up his great chess robot to mrl for a game engine.  

Well, he beat me to it and found one to interface with Apple Script - but I still thought it would be fun to try.  It did not take me more than 30 mins to find, download, and wrap a chess game engine and gui with mrl.

Once the chessgame is a Service it can be loaded through the gui and integrated with other services.  In the video I show how to start it up and have it send a command string to the serial port and gui/logger.

The mrl GUI can be put into an applet so it can be played over the inter tubes too..


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Oooops !

I THOUGHT I fixed that ... fixed now version 21M...

If you would, please do one of your tremendous videos covering updates to your chessbot !



edit b.sh

last line :

java -Djava.library.path=./bin .... yattah yattah

java -d32 -Djava.library.path=./bin .... yattah yattah 

-d32 changes it to run in 32 bit mode allowing the rxtx module to work - Arduino IDE is doing the same thing

also - I noticed loading some services the tabs don't always come up... if you hit the gui tab - then "refresh services" it will force them to reload....

What is the baud rate of the Xbee? What pin is the xmit? Can you post the code for the Arduino here?  

I have a sort of slave PDE for the Arduino, where it does whatever the computer tells it to do.  

Baud: 115200 I don't think the code would help you too much. It basically is sending the move the user enters on the chess keypad via xbee. Example: a2a3 So like I said, serial comes in in the form above and then the chess engine move gets sent back via serial with a ending character.

So you "don't" need the Z at the end?  Do you need that changed?  

Other things to think about:

  • The MakeMove for that particular game engine comes with a letter designator which I strip off -  It's the game piece type (with the exception of a pawn which does not have one) - you could fork this off - expand it to the word Q -> Queen and send it to the text to speech service, so the computer says what it's going to do :P - maybe add an easter egg when it wins?
  • It's been a few revisions but the GUIService can be changed into an applet (if I have not broken it), which means the whole thing can be controlled on a web page -  There currently is no provision for contention,  my bet on how it would work is the first human remote player to make a valid move would make it and the GUIs for multiple players would quickly fall out of synch. 
  • If you want to tweek it yourself - you need to get Eclipse & Subclipse/subversion - then you just need to add a subversion project and put in the google svn url - "svn checkout http://myrobotlab.googlecode.com/svn/trunk/ myrobotlab-read-only"  If you want to commit changes I'll have to get you rights 


When you get around to it let me know what you want/need.

Very cool! I will try it later today when I am back at home. One key component to my script was that the chess robot sent the move the user entered on the chess robot's keypad to the script via xbee. So the arduino serial output gets connected to the chess engine input. I see right now you are playing with the computer.