A Robot Learns To Fly 289
jerkychew writes: "For those of you that read my last post about the robot escaping its captors, there's more news regarding robots and AI. According to this Reuters article, scientists in Sweden created a robot that essentially 'learned to fly' in just three hours. The robot had no preprogrammed instructions on how to achieve lift, it had to deduce everything through trial and error. Very interesting stuff."
very interesting (Score:4, Interesting)
You don't need hardware to try this at home... (Score:5, Interesting)
Define a very simple stack-based language. The stack only holds boolean values, and when empty pops and endless supply of "false" values and when full discards pushes. Choose some control flow opcodes:
NOP, SKIP (pop, if true, skip ahead a fixed amount), REPEAT (pop, if true, skip back a fxied amount), NOT, RESET (clear stack, back to beginning)
and some opcodes related to your environment (mine was a rectangular arena):
GO (try to move forward one step, push boolean success), TURN (90 degrees clockwise), LOOK (push boolean "do I see food ahead?"), EAT (try to eat, push boolean success)
Pick a stack size (this has interesting consequences, as some of my organisms learned to count by filling the stack with TRUE values and consuming them until they hit the endless supply of FALSE when empty) and a code size. Force all organisms to end in your RESET op. Generate them randomly and run them in your simulator (I did 20-50 at once letting each one run a few hundred instructions in a row). Evaluate fitness (in my case, how well fed they were) and breed them. You can combine the functions in lots of ways. Randomly choose opcodes (or groups of opcodes) from each, possibly with reordering or shifting. Introduce some mutations.
Once you get something interesting, try to figure out how it works. This can be the hardest part -- my description above produced many variations that were only 8-10 instructions long before an unavoidable RESET opcode, and they could search a grid with obstacles for food!
Just as impressive... (Score:2, Interesting)
MAIN
{
target = 72;
do
{
guess = rand();
}
while guess target;
print "GOT IT!"
}
NEWS HEADLINE:
Artificial Intelligence researcher creates computer program that comes up with the number 72.
Maximum lift != flying (Score:2, Interesting)
Re:You don't need hardware to try this at home... (Score:2, Interesting)
Re:very interesting (Score:2, Interesting)
Actually, I think research of this sort has gone a lot further in the simulated environment than these swedes have done. The different thing about this research is that they have done it with an object in the physical world. This should please those who distrust simulation, but for the average
Re:very interesting (Score:2, Interesting)
Not Evolution of Flight (Score:2, Interesting)
1.Equiping a test subject with wings short-circuits the most intreguing part of the experiment.
2.Equipping a winged test subject with a moter too heavy to maintain loft is stupidity at work.
3.Thrust is not lift. Flight requires both, but this was thrust. The robot recreated 19th and 20th century flying machines. They didn't work either.
4.Horizontal stabilizers (vertical rods) are not considered to have been available during the evolution of flight.
The test is intriguing, for sure. But to bill this as AI learned flight is either poor press coverage, or a scientist seeking funding through an uninformed press.