# Programming a robot that learns to walk

Robin2:
But the reality is that it does not. A foal can walk within a few minutes of being born. In the wild, if he couldn't, he was eaten.

If you really want to see this in action then check out a baby elephant. They aren't born knowing how to control their trunks. So they are completely dependent on mother's milk for the first bit. But if you watch them they'll try. They'll eventually learn to grab a bunch of grass and then it will just sort of flop around looking for their mouth. What's happening is that the brain is firing motor neurons in a seemingly random fashion and learning what each patter does until it learns to control the trunk. It's actually kind of cute to watch the little guy trying in vain to put a bunch of grass in his mouth.

Hi

You could do this on a simpler method.
Without the ANN.

Generate random servo positions for all the servos, and use random delays between servo movement.
Store this in arrays. Include the accelerometer in the arrays.

At the end of each generation (atleast 2gen), you compare acceleration value, and copy the servo movements from the generation that achieved the greatest acceleration.
Then give those servomovements a slight randomness (example; best previous servomovement and timings +- 5%)

Repeat...

Muzel.

That's an interesting approach, and may bear some fruit. It's closer to a GA approach than ANN.

I'm not sure how the acceleration is indicative of forward movement though.

Delta_G:
It's actually kind of cute to watch the little guy trying in vain to put a bunch of grass in his mouth.

Sounds very interesting.

I understand that adult elephants have extraordinarily sensitive control of their trunks.

...R

I'd take a look at inverted pendulums.
Consider each leg as an IP - individually at first.

Then tweak the PID for each - seeing how they interact with the others in isolation, then expand the samples to 2, 3 and all four legs - with the stability sensors located mid-point of the legs under test.

If you work with 4 legs, you have 16 iterations of each test - so I believe the numbers might become manageable for a viable gait & motion learning machine.

Remember the essence of walking is maintaining balance, and motion in a nominated direction.