Saturday, April 15, 2006

Gupi - How It Started

Back in January, I promised to make Gupi my first Lego Mindstorms NXT robot. Unfortunately, I wasn’t selected as part of the Mindstorms Developer Program (MDP) and so I cannot build it right now. But I have decided to take the opportunity to go through the initial robot design stages in a series of articles. The articles will run all the way to July, which is when I hope to finally get my hands on a Lego Mindstorms NXT set.

A nice resource for learning what Gupi is can be found here.

In 1999, I started the robotics company Robonetics. This was the year that Sony launched its Aibo. I believed that robotics hardware was finally growing up to become more like a PC. My company Robonetics would focus on building software for robots. We wanted to focus exclusively on intelligent robots, where we felt the most interesting robots were built. Back in 1996, I obtained my Master in Computer Science with a thesis on "Learning in Behavior-Based Autonomous Mobile Robots", and I’ve been into artificial intelligence for robots for as long as I can remember, so that focus didn’t come as a surprise to people who knew me. Still, before starting Robonetics, I also worked for 3 years at LogicaCMG, mostly within their space division. (In the picture, I’m on the left, and my brother Peter is on the right)

Robonetics developed a number of robots, and started to work on a solution to the core problem facing us: behavior coordination. We created the language RIDL, the Robot Intelligence Definition Language.




I’m holding the large robot doll prototype "Anty", left of me is Stefaan Decorte, chief designer for RIDL, and right of me holding the Gupi prototype, is Michael Uyttersprot, chief robotics designer.


Robonetics did not raise any venture capital. However, having seen what Robonetics did with its demo robots, Jo Lernout, former chairman of Lernout & Hauspie (L&H), asked me if we could build a furry toy robot that could be mass produced. The concept had to be cheap in production, but blow other toy robots away because of its far superior intelligence. As you can imagine, we were extremely excited by the prospect of such a project. We brainstormed with Jo Lernout about possible concepts, and ended up with the idea of a guinea pig, at the time codenamed R2. R2 was derived from roborat, but also hinted at the second generation of robots, and off course reminded of the robot R2D2 in Star Wars. A group of investors around Jo Lernout founded a company called R2, and Robonetics got the project to design and prototype the robot.

As it turns out, the time for robotics was still early. We had to develop our own electronics, which we called RPUs (Robot Processor Units). The name was inspired by the Graphical Processing Unit on your graphical card. We hoped that a generic processor combined with an RPU would provide a great robot software platform. However, for Gupi, there was no production budget for a generic processor. We needed a single chip solution, and so we built the RPU RS100. The RS100 allowed us to execute the complete software.



The RS100 is very different in design from Lego Mindstorms NXT. Lego has chosen to use a commercial-off-the-shelve 32-bit microprocessor. Whenever the robot wants to control many motors and inputs, it rapidly switches between its tasks to provide the illusion of concurrency. Our RS100 provided a very different architecture, much closer to how real brains work: every small piece of code literally ran at the same time. Using today’s terminology, you could say we designed a processor core with a really simple instruction set, but put a lot of cores on a single chip. We were able to use a really simple instruction set because we didn’t need to interface dynamically with memory (because memory was on chip and loaded from Flash memory only at boot time), disks, or other hardware other than digital incoming sensor signals, and digital outgoing motor signals. The real trick was to control concurrency (especially on the motors) and to ensure some sort of coordination between the behaviors. That’s where RIDL came in.

For Gupi, we had to create our own robot body. Having started as a software-only company, we found we now had people working full time on both mechanics and electronics. I guess for a mass-production robot, there really was little other choice at the time. Near the end of the project, we managed to reduce our hardware efforts by mounting as much as we could on Lego bricks with our own generic connector. If Lego Mindstorms NXT had been available at the time, then we would have been able to build our prototype entirely out of standard lego bricks (using both Lego and third party supplied NXT parts).

A few weeks after the start of the Gupi project, we already had a working prototype that demonstrated some basic features of Gupi. Here you can see the first prototype walking around.


The client thought the mechanics were too complicated for mass production, and we all felt it would break too easily. About a month later, we were into prototype 3, followed by prototype 4. Prototype 4 really nailed a lot of the body mechanics that were used in the largest part of the project. The legs were replaced by wheel-legs only near the end of the project, to enable Gupi to run faster. I've uploaded a movie of prototype 3 and 4 here


Meanwhile, on the sidelines, the project went from "hard to keep user specifications under control" to worse. Because of the rapid advances, expectations were high. Still, budgets were very low and timelines extremely short. Although Robonetics delivered on contractual promised milestones, the constraints and expectations led to tension between Robonetics and R2. By that time, Jo Lernout had set up a new company called Cutting Edge Toys (CET), as a vehicle to attract more investors. Whereas the money for R2 was mostly to develop Gupi, the CET money was intended to market the toy. As such, R2 had given an exclusive license to CET. But having more players, some further removed from the actual complexity of development, made matters worse for us. It came to non-payments for work already done, contract terminations, renegotiations, lawyers, and more unproductive stuff. Needless to say these things didn’t help the project. Much of the functionality in
this April 2003 video will look very familiar.


In the end, we allowed CET to temporary use a research prototype of Gupi for marketing purposes. Some time after that, CET didn’t need our services anymore. They had found an "alternative", and this new company had miraculously built the very same functionality, including bugs, for Gupi. Unfortunately for CET, the research Gupi didn’t run the latest software version of Gupi, only the most stable version. As a result, a number of features and bug fixes that Robonetics developed never made it into the commercial Gupi. Robonetics also never received any royalties on Gupi, whereas this type of payment was the very basis of the original contract. Robonetics eventually went bankrupt about a year after the Gupi project was terminated abruptly. The last movie we made on Gupi was this, split in parts one, two and three.




Since then, first R2 and later CET also went bankrupt, having sold only a few ten thousand robots, far below the breakeven point. By the time Gupi was on the market, our research had stopped for about 18 months, while the original conception only took 9 months. Our original Gupi had a whole continuum of feelings, based on real guiney pigs we had in the lab and at home with the chief robotics designer Michael Uyttersprot. Gupi’s responses could be really complex and unexpected at times. This also means the robot does not do what you want at sales presentations. It may just not feel like playing. I guess this was too hard to sell, because when Gupi was finally released, that continuum had been “corrected” into just 2 states, later expanded to 4. Although I respect the work others have done on Gupi, I still feel that since Robonetics was taken off the project, there has not been a big rise in intelligence in Gupi. I like to think sales would have been better with more advanced, more playful, and more learning intelligence on board.

So now, it is time to reopen the research on Gupi. With Lego Mindstorms NXT, it is actually possible to build a body with sensors that is close enough to Gupi. Using just the Lego bricks from the standard NXT set should allow anyone to build his own Gupi, and contribute to the research.

The next article on Gupi will be on the design of the Lego body of “Gupi NXT”.

Monday, April 03, 2006

Ordering Education and Education Value Packs

Last updated on April 4, 2006.

You can now order Lego Mindstorms Education NXT from http://www.legoeducation.com/store/SearchResult.aspx?pl=10&by=6. For the first time, you can see pictures of the various parts. This is what the Education Base Set looks like:


The Lego Mindstorms Education NXT software licenses are pretty expensive relative to the NXT set itself. I guess that reflects the level of investment that went into developing good software.

There are some discounts available on these classroom licenses if you buy Education value packs. These packs contain 4, 8 or 12 sets in a single shipment, and include the classroom software licenses required. In the case of the 4-set, your price per NXT Education Base Set + software is $300. In the case of the 12-set, the price "drops" to $261,67 (x12) dollar.

Notice that on the Lego Education Shop website, the information that comes with the Education Value Packs is wrong. It states with every pack that 12 units are included. This is incorrect! So be careful when selecting your value pack, or an unpleasant surprise might await you.