Advertisement

evolving the stability of a body

Started by January 13, 2013 10:59 AM
5 comments, last by LorenzoGatti 12 years ago

Hi all!

I've been trying to "evolve" some creatures that are built up of circles and joints, and can also have a "booster" that propels them in a certain direction.

I've been using genetic algorithms to try and do this but I'm not really able to define what "stability" is. As in, I'm not able to identify if a structure is stable or not

As of now, I'm checking if it's able to stand on it's own for 20 seconds. If it can, then it's considered stable. But I'm finding it *really* hard to integrate movement into it. the AI isn't able to place the motors in effective positions so that they move :/

any ideas?

Thanks

Bollu

a WIP 2d game engine: https://code.google.com/p/modulusengine/

English is not my first language, so do feel free to correct me :)

Hi there,

It's a bit hard to comment on your post without atleast seeing a demo program or a video clip that exemplify your problem.

Cheers,

Mike

Advertisement

Not a trivial problem.

Could you perhaps describe for us precisely and in detail what these unstable bodies do, that you find undesireable. I believe that if you can answer this question you are already halfway at the solution.

Cheers,

Mike

Something like this? (caveat: I don't have flash installed, so I'm working from memory of a couple of years ago). This is a simpler case, but the essential idea might work for you.

If by "unstable" you mean "wobbling around and it may be able to stand up but it won't stay still," then you can use a few reference points on the creature's main polygon (or body or whatever you want to call it) and check for movement deltas. If the averae is above a set threshold, then it can be deemed unstable.

Additionally, you can use this as a more refined fitness amount (for your GA).

Good luck,

Selenaut

Advertisement

If you want to evolve walking "legs", you can split the problem into three stages: first legs with a decent shape and position, then an assignment of motors that can move the legs arbitrarily enough, then a motor activation schedule that causes walking.

To make legs, you could probably graft standard pieces to the "body": for example you can start with a rather short outer edge facing down and triangulate the trapezoid between it and its projection on the ground plane with close to equilateral triangles with edge lengths in a certain range; motors that contract or extend struts (SODA Constructor style) can be placed in the almost vertical front and back edges to bend, shorten or lengthen the "leg".

How to move legs might allow a direct solution (deformed leg shape -> altered strut lengths -> forces), while making the whole model walk can be approached with genetic algorithms or the like.

Omae Wa Mou Shindeiru

This topic is closed to new replies.

Advertisement