After toying with the Connectionist code (http://elsy.gdan.pl/
) I thought it would be great fun to create a physical robot and observe it learning some tasks.
As a professional Java programmer and Lego aficionado, finding out about Lejos was like
So here I am, I bought the Mindstorms 2.0 set, some extra sensors and holonomic wheels. I figured doing the math for driving the holonomic wheels wasn't my cup of tea so I ended up with a simple differential-drive bot. (later I discovered there is a Pilot for holonomic bots in the Lejos library that does the math... but I'm not rebuilding AGAIN so soon now
Anyway, I've tried running this q-learning 'port' yesterday... but it didn't work.
Firstly, the Brain class has a constructor with too many parameters.
As I wasn't planning using that one, I've deleted it. (the constructor allows for extensive tweaking of the algorithm, now the constructors use the available parameter defaults)
Secondly, and this is a showstopper, my program will compile and upload, but upon running there's an out of memory exception. I didn't check out where exactly this happens, I still have to learn how to debug
, but I did find out that exception 3 is supposed to be OutOfMemoryException.
So my question is, has anyone actually succesfully run this Q learning code on a NXT brick? Finding a non-compiling Brain class in the library classes I started to wonder about this.
I did see some Q learning Mindstorm robots on youtube. (maybe remotely controlled, that could be it)
I didn't add too much of my own code; just 5 actions to perform (albeit all actions have their own small class), a simple implementation of Perception...
Not doing anything wild. 22 classes in total.
The only thing I "feel" which might be the memory problem are the 3 dimensional arrays with doubles in them, in the imported Brain class.
Does anyone have any thoughts on this?