Saturday, January 28, 2006

My First NXT Project

Tags: My-Robots

In the past, my team at Robonetics and I designed a toy robot called Gupi, a robot guiney pig. The client asked us to design the robot as with behaviors that were as lifelike as possible, yet use as few components as possible. Today, the robot is no longer in production, so I’ll use it as an introduction to advanced Lego Mindstorms NXT development.

But first, let’s see Gupi in action. Here is a movie of Gupi being tested in our lab. There is nothing special about its environment. The maze, for instance, could have been created using books or anything other material. The girl in the movie is my niece, Sarah Verhaeghe (the movie plays on Windows, but can also be viewed on Mac or Linux).


Movie on Gupi

Here's a comparison between the internals of Gupi, and the parts that come with Lego Mindstorms NXT:

GupiLego Mindstorms NXT
Number of motors33
Ultrasonic sensor11
Sound sensor21
IR sensor80
Touch sensor51
Light sensor21
Tilt sensors2 one-directional sensors0
Rotation sensors2 motor-stops on head motion, one on each extreme (allows to turn head left to end, right to end)1° accurate sensing on all motors
CPUFPGA
(custom designed chip)
32-bit processor
RAMNone
(sounds stored in ROM)
?
Wireless ConnectionNoneBluetooth
Debugging8 LEDs (255 error codes) - only visible when opened upMatrix screen; Bluetooth

Off course, the features are not a 1-on-1 match. But it is close enough. Gupi had more sensors, but the accuracy of these sensors was lower and its CPU power was lower (or at least harder to exploit). By making some mechanical adjustments, and exploiting the more powerful NXT brick, it must be possible to create a smart pet using Lego bricks.

The behavior of Gupi was amazingly complex, and the video does it only partially justice (the experimental lab robot broke easily when handled by children). The real trick with building robot brains isn't making it do one thing, or even two or three things. The trick is to have a lot small behaviors, and to orchestrate those into coherent overall behavior and character that makes the robot a real being. The shifting attention of the robot depending on threats or new perceptions, the rapid changes in emotion that make it run away scared from the sound, or walk toward the sound to explore. On top of that, we had limited live debugging tools to see why the robot behaved as it did.

It is this kind of development that I hope to explain and explore using Lego Mindstorms NXT. We had a great start with Gupi, but I believe we can replicate the behavior of Gupi. Probably even make it even more intelligent.

It would be great to team up with others, but I'm not yet sure how that would work. I also hope to explain my own work on NXT in such a way, that even kids can start changing the behavior of Gupi in ways they like better. Or maybe build a completely different robot with the behaviors. At Robonetics, we once demonstrated a car driving around (and squicking, like a guiney pig!) simply by hooking the brains and sensors to a different platform. How much more can be achieved with Lego, where mechanics, sounds and behavioral wiring can be changed very easily, and where kids great and small can really let their imagination take over.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home