How to reset a walker once it gets out of synch? 

I've got a quadraped walking nicely now. It is based on A.S.Wigand's "Basic Quadraped" creature - I added some rear leg muscles, then evolved the neural parameters to maximise speed. I've also added some smell sensors onto the front legs and I'm trying to work out how to get it to turn towards food. Genotype is:

MX[*:-0.363,in:0.8,s:-0.271,fo:0.04,2:-6.881,11:6.881][N,s:0.028, in:0.8,-1:-0.109,2:-1.876](RX[S](FX, ), MX[N, fo:0.04, in:0.77, si:2, s:1,-2:1.84,0:2.8][@,p:1, -1:0.4][N,s:0.39,fo:0.04, in:0.3, si:2.9,-2:1.06, 0:-0.238][|, r:1,p:1,-1:2.645](rX[N,in:0.8, fo:0.04, si:2.96854, -2:-3.871][|,r:1, p:0.449,-1:0.253](, X), , RX[N, fo:0.0273064, in:0, si:3, s:-0.818,-4:1.377][|,r:0.992, p:0.38,-1:0.2](X, )), rX[S](, FX))

In playing around with manually adjusting the smell neuron outputs, which are linked to leg neurons, I've noticed that if I tweak them too far, the creature's walking performance sometimes gets worse and doesn't seem to be able to recover even if I let the smell settings go. It seems as if the neuron cycles get out of synch and then are unable to get back into synch.

Does anyone have any ideas or suggestions about how I might go about building a "reset" into the creature, eg. if speed goes below some threshold, then the creature could be jumped into its original stance on creation, to start walking from scratch again.

Any ideas appreciated.

Thanks

Ian

Forums: 
Maciej Komosinski's picture

So you want to make a Food Finder based on the Basic Quadruped? :-)

There are two approaches.

You could use evolution to design the genotype (or parts of the genotype) for you, according to the fitness function. In this case, it would be practical to use the f0 genotype, as it gives you a lot of control over what will be mutated and what will remain fixed (you can apply "delete inhibit" and "modify inhibit" flags to every element of the creature: Part, Joint, Neuron, and Neural connection). Using f1 is OK, it just gives less control over mutations.

If you want to design the genotype manually (welcome to neural engineering!), it seems that you need to detect the "out of sync" state somehow. Instead of detecting low speed, I would rather design a neural circuit that compares two signal patterns/values and prevents the "out of sync" state by some kind of feedback. You will probably need to spend some time with a paper, a pencil, and neural signal patterns, and you will first need to identify what the "out of sync" exactly is (how to recognize this state and what signal values are, and which neural inputs describe this state best).

Thanks Maciej, much appreciated again.

I'll give that a go!

Cheers

Ian