2014-03-14

By Colin


2013-12-08

This is using a simple supervised function learner to learn the mapping from joint angles to positions and velocities. From there it applies a trivial hard-coded algorithm to reach for a random target point that moves every few seconds (not explicitly shown).

It starts out naive in this video, so the the function learner is learning on the fly from scratch just from the motion that happens at random initially; but the nature of the function learner is that it learns very fast locally so the behavior is reasonable almost immediately.

I upped the number of segments to push it to where it's barely working (it worked too well with the default number of segments). It doesn't understand the force and acceleration dynamics--those are implicit in the simple hard-coded control code--which is why it's wobbly. Learning those comes next...

-Simon Funk



2010-12-04

The goal is for the mid point of the hand to be positioned on the white circle.

Fitness is measured over 28 defined target points (28 trials).

For each trial we calculate the mean distance from target across all timesteps, early timesteps are weighted down to de-emphasise speed approaching target and emphasise accuracy of targetting.

Final fitness is the square of each trial's mean distance value. This emphasises improving the worst trials over better ones (classic reduction of squared error)

Colin



2010-11-19

Here's a video of SharpNEAT evolving a controller to keep a player arm straight.

Evaluation/fitness metric is hand height averaged over all timesteps. A more direct metric would be to punish joint angle deviation from zero degrees, hence there is /some/ degree of indirectness in the fitness metric. E.g. if you just nudge the arm at the start and allow it to collapse you can get the hand to rest on the arm base thus giving it some height, thus giving rise to at least one very simple local fitness maximum.

Colin



2010-03-14

AI Challenge progress

"This video shows some different progress with the AI Challenge. The previous video demonstrated how the computer was directly manipulating the joints through a neural network. In this video, there's a proportional controller attached to each joint, which only tries to get the angles of each joint to some particular value.

These values are set by a joystick that I attached to the computer. [...]"