colgreen / sharpneat

SharpNEAT - Evolution of Neural Networks. A C# .NET Framework.
https://sharpneat.sourceforge.io/
Other
389 stars 100 forks source link

SUPG for Quadruped Locomotion - 4-legged Walker #53

Open MuleaneEve opened 7 years ago

MuleaneEve commented 7 years ago

Last year, I was learning about ANN and EA by playing with existing projects, and I particularly liked this 3D 4-legged walker based on a research paper by Gregory Morse. You can watch videos of the walker on his website.

So, I updated the source code a bit, and uploaded it on bitbucket (because of my other interest in physics simulation).

I am mentioning it now after reading the issue colgreen/sharpneat#16 by @asimaranov and @drallensmith. Sadly, right now, it is using a very old version of SharpNeatLib and I don't have enough mastery to update it to the current version of sharpneat.

Would you be interested in it? I would help as much as I can.

colgreen commented 7 years ago

Thanks. Potentially this could become one of the default task/domains following a review of the code. However, right now my time is directed towards a big refactor of the core code so I won't have time to do anything for a while.

As such I will leave this open for the time being.

MuleaneEve commented 7 years ago

Thank you. I look forward to both.

MuleaneEve commented 6 years ago

I will re-write this sample to use BEPUphysics instead of ODE.

The benefits are:

The only downside that I see is that BEPUphysics v2 was just released in alpha, so it is less stable than ODE. However, that should be a short term inconvenience and this sample doesn't require complex physics.

colgreen commented 6 years ago

Yeh looks good, and certainly seems fast based on how much is going on in some of the demos - and those include the rendering overhead too (seems to be using a managed library over DirectX).

Did you mean you will re-write your code currently on bitbucket? I.e. should I wait for this before bringing the work into sharpneat?

MuleaneEve commented 6 years ago

(Edit: I didn't notice that my brother had used my PC :) )

Yes, I will re-write the code (from bitbucket) and host it in a temporary repository on GitHub. You can then take it into SharpNEAT.

By the way, my expectation is that the quadruplet will no longer be able to learn to walk with BEPUphysics. The old code is slow to learn (it can take over 5 hours) and very brittle (most of the time, the learning fails and you have to start over).

So, my focus will be to set up the project with the 3D and physics aspects, so that you can take care of the AI.

MuleaneEve commented 6 years ago

I have made some progress on this project. The code is available here. I also introduced it to the BEPUphysics devs.

The Quadruped is currently just a simple rag-doll. It hasn't been tied to SharpNEAT yet. The code to achieve that is in SharpNeatWalker\OscillatorQuadruped but it is commented out because it needs to be adapted to this new engine.

One idea that I have for this new version is that the app can show the best neural network running on screen, while the training is ongoing in the background. And we can introduce some input keys to control all that...