Great news guys,

We are going to maker faire Rome in October laugh

I guess Alessandruino and Gael are also coming.

I have few things in mind ToDo before maker faire, but have lots of question, please help me get sorted:

ToDo:

-Run MRL from Raspi so that the chess board becomes completely standalone.
(I plan to give Wifi connectivity to Raspi with an USB Wifi dongle and connect the Arduino mega to it with USB port )

-Changing the chess engine used by MRL. (this one if possible http://stockfishchess.org/)

-Use WebGUI of MRL

-Re-code the Arduino program in MRL so the complete board will work only on 1 Raspi

Questions (Plz bare with the long list and details):

1) Will MRL work on Raspi, I basically need the following services ( Chess, Serial, python, speech)

2) changing the chess engine used by MRL, I guess stockfish (open source) would be a good idea, this is because the current engine doesnt give identifiers when the computer performs moves like castling and en passant or when computer kills a user's piece.

Grog, can you please look into the possibility of changing the chess engine or tell me how it can be done.

3) I currently work with MRL by starting it from command prompt, I would like to know little about the web GUI and its capabilities.

Current Scenario:
I have a website setup (chess.riidl.org) where I have a chess GUI, so if i connected my board to this site, I get user vs user game play unlike connection with MRL where I get user vs computer.

I have got this to work by writing a processing sketch which will send and receive data between the website and my Arduino.
I currently do this by having a .php file write to my database.

Future Scenario (if possible):
I was wondering if this could be done using the WedGUI part of MRL,
I guess the WebGUI uses sockets so I guess this would also remove the lags which we currently are facing with database.

I am not very good with web based programming so please guide me if I am wrong.

So guys, any feedback/suggestion on how the above tasks can be solved would be great.
*Sorry if I made the post too long/descriptive

Ciao! :)
 

GroG

10 years 3 months ago

Ahoy Mehtaatur !
WOOOHOOO 2 MRL projects now at ROME - high five o/
 
Ok .. 
 
  • Run MRL from RasPi -  - here is a link with MRL on raspi .. although some of it needs to be changed due to MRL's new startup procedure - http://myrobotlab.org/content/raspberry-pi-0 Be aware sometime wifi dongles can be difficult
  • Changing the chess engine used by MRL. (this one if possible http://stockfishchess.org/)    GAH! .. its c++ code, that's why they say on the web site (For Windows) .. possibly its not Linux compatible source code - and you want to run this on the RasPi ? Even if it does compile on the RasPi you still need to go through the complexity of creating JNI classes so the MRL can interface with it :(  ... Have you looked for a Open Source Java - package?  I would think one exists - Start Here
  • WebGUI of MRL -  easy ... there are 2 webgui parts .. the "web interface" and the very powerful REST interface .. with REST you can call any method on any service.. goodtimes
  •  Will MRL work on Raspi, I basically need the following services ( Chess, Serial, python, speech)  - Yes
  • Changing the chess engine used by MRL, I guess stockfish (open source) would be a good idea, this is because the current engine doesnt give identifiers when the computer performs moves like castling and en passant or when computer kills a user's piece. -  - Easy .. you should find the best open source Java - engine and we can get it into MRL
  • I currently work with MRL by starting it from command prompt, I would like to know little about the web GUI and its capabilities. - Sadly, there is not much documenation - Here is a blog - http://myrobotlab.org/content/webgui-updates   GAH !!! THERE ISN'T EVEN A SERVICE PAGE (I'll add that to my list)
  • I guess the WebGUI uses sockets so I guess this would also remove the lags which we currently are facing with database.  yes possible - draw diagram of how the communication is currently working - and I could give suggestions on how to do it in the future

 

Ciaooooo

AdolphSmith

10 years 3 months ago

You will make a big hit. Go man Go. I keep my fingers cross . Great project.

mehtaatur

10 years 3 months ago

In reply to by AdolphSmith

Thanks Adolph Smith
 
Grog, here's the flow the flow diagram of the current scenario.
Please suggest how to improve this with MRL/WebGUI.
 

GroG

10 years 3 months ago

In reply to by mehtaatur

Very helpful thanks...   For php & "Website" with GUI - you have a chessboard with movable pieces?  Or does the user type in a move ?  Is there a lot of Javascript ?  I went to your website but did not find an interface for the board.  

I saw this - http://chessboardjs.com/   MRL's WebGUI can do REST or what might be even better for this application is JSON over websockets - I'm betting that can control the chessboardjs 

Smaller and simple is my preference usually.

Here is a possible system - Everything runs through a game manager service - Users are controlled by the GameManager such that it can be WebUser against WebUser, WebUser against User using the board, WebUser against Game Engine, and all the other combinations.   

You have 1 board so the contol aspect is 2 players - the 2 players could be anything (game engine) or anyone (web user - board user)

mehtaatur

10 years 3 months ago

Wow Grog,
Thanks for the quick reply.

My site currently uses the GUI from chessboardjs.com, here's the page link http://chess.riidl.org/webchess/index.php

I get your idea about using a game manager on Raspi, but I havent done any programming with JSON/websockets.

Can you give me a starting point from where I could learn to implement this. Ill read more and then get back :)

Great . your already using chessboardjs :)   .. makes things easier

I would recommend that you attach your php files (remember to strip out any passwords if you have them)..

I've already created a ChessGameManager Service in MRL - it will coordinate between all the different interfaces.

Some Basic Rule :

  • Only 2 "users" can play at one time 
  • Once a game starts it can not end, nor can any other "users" control the game until one of the users quit.
  • When a user quits the game quits
  • A new game can begin with 2 users 
  • A user can be human or the game engine

Sound right so far?

Awsome, you made a service already laughcool

heres a link to my php files http://www.chess.riidl.org/webchess/download/webchess.rar

since I dont know much about wiriting in php, one of my team member has written these.

I just ordered a Raspi B+, so i guess in the next 3-4 day i would b able to start with the testing.

Since we will be using websockets, could you give me some good refernce from where I could start reading about it, cause I have never worked with sockets before. so before the Pi arrives I could have my basics in place .

Ciao smiley