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”.

14 Comments:

At April 15, 2006 4:20 PM , Anonymous Anonymous said...

Very interesting story! Maybe it's just me, but I had assumed you to be an enthusiastic kid, maybe 20 at most - but you're even older than I am ... wow ;)

I have to admit that I don't care much for guinea pigs, and much less for robotic pets. Sony's recent announcement to discontinue the Aibo shows that I'm apparently not the only one. And whatever happened to the Furry? Or the Tamagochi, for that matter?

Your story sounds like many of those .com stories, where the original inventors were eventually driven out of the company once big money came in and they wanted/had to sell products. It must be awful to see the enthusiasm and hard work go down the drain in battles with lawyers and VCs that once supported you.

Are you going to make code available eventually? While it will probably be fairly easy to build a robot that has the right motors and sensors, I guess few will be able to program any kind of complex behavior into it.

 
At April 16, 2006 3:30 AM , Anonymous Anonymous said...

When I read your posting it made me think about the Functional and Technical specs that I deal with in my job and I started to wonder how working with robots what kind of specs or how these type of specs would change because you are do things in the physical world instead of everthing going on inside the beige box.

I would love to hear you comments on this.
Thanks

 
At April 16, 2006 10:19 AM , Anonymous Anonymous said...

Robert,

I'm going to make it possible for others to not just download and run Gupi software on their Lego NXT creations, but I also intend to make it easy to change or extend the robot's behavior.

I don't intend to make the original code of Gupi available, which wouldn't work anyway because the we had written our custom compilers for RIDL.


Anonymous: user specifications were along the lines of "we would like it to walk along walls", "it shouldn't fall off the table", ... Actually, the problem in the project is not getting some sort of specifications, but its the fact that the customer *really* doesn't know what to ask. Some things are really easy to add, whereas others are impossible with the given sensors. We could make the robot be attracted to people, but we couldn't make it go to its owner (in a crowd). We could avoid obstacles, but we couldn't recognize them. Etceteras.

The reason why we made a lot of prototypes, is to show something to the customer and get feedback.

Technical specifications were therefore to allow for the shortest possible demonstration time, but make sure the robot was open ended for further extension. The design-for-change architecture helped us be develop very fast.

 
At April 16, 2006 12:14 PM , Anonymous Anonymous said...

Hey Filip!
Do you know why Jim don`t update his blog?
I am checking in on youre and jim`s blogs every day!!
Andy

 
At April 16, 2006 12:51 PM , Anonymous Anonymous said...

Hi anonymous. Glad you keep checking in!

Jim has said there would be great new information in about 2 weeks time from now, when the non-disclosure ends. And if he isn't working on that content, then he is probably writing his new Lego Mindstorms NXT book he'll be publishing later this year.

 
At April 16, 2006 2:25 PM , Blogger James Floyd Kelly (Jim) said...

Andy,

This is Jim... I try to update my blog when new information becomes available OR at least when I actually have something to say or comment on with regards to existing stuff.

Right now, there simply are no new NXT videos and pictures floating around. Believe me, I look ALL OVER for new stuff, but LEGO isn't giving many demonstrations of the robotics kit and those of us in the MDP are not allowed to share videos and pictures just yet...

But in 2 weeks, I probably won't be able to keep up with the amount of information being released. Many of the MDP members are preparing their own websites and blogs to demo their projects and work...

Thanks for checking out Filip's blog and my own... and please do keep checking in because as May 1st comes near, I'm guessing the LEGO and Education NXT blog sites may be releasing their own information.

And Filip is right about the book... 20 chapters and I'm on chapter 3 right now (on schedule, though). It does take a lot of my time... but I'll try and make sure not to ignore my blog.

Jim

 
At April 16, 2006 6:03 PM , Anonymous Anonymous said...

so you guys were planning on having a custom silicon chip produced for gupi? isnt that very expensive? or were the ideas just tested on an fpga or something?

 
At April 17, 2006 1:27 PM , Anonymous Anonymous said...

Hi Chris,

In the lab, we used FPGA. Transferring that chip design to ASIC (custom chip) isn't expensive at all. You can take a loaded and working FPGA (like the one we had in our demonstration Gupi that CET borrowed), go to China, and simply download the design to a custom ASIC. Custom ASICs are a lot cheaper than using commercial-off-the-shelve general processors (when ordering more than 10.000 units). The cost is in the design of the FPGA-code (i.e. chip design).

Filip

 
At April 18, 2006 3:42 AM , Anonymous Anonymous said...

I just looked at the videos, and wondered if you were planning to do anything about the noise the Gupi made. It's really quite loud (and I know how much noise servos make, it's not just the video), I wonder if that wouldn't have kept people from buying it.

 
At April 18, 2006 3:17 PM , Anonymous Anonymous said...

Robert,

I guess most robots suffer from that problem. The very nature of the robot "mussles" will have to change before that problem goes away (or you have to add lots of material for artificial dampening, which tends to be bulky).

I'll be using standard NXT parts, so I'd expect Gupi NXT to be noisy as well.

Gupis are sold turned off in the box, and they are very silent in that state ;-).

Filip.

 
At April 18, 2006 5:24 PM , Anonymous Anonymous said...

For home-built robots it doesn't matter of course, but for ones that you want to sell - especially as pets. Anyway, just wondering.

 
At April 27, 2006 11:58 AM , Anonymous Anonymous said...

Hi Robert,

You are right, off course. Actually, we figured the same thing at the start of the project. Unfortunately, cents mattered when designing Gupi, and more silent motors were simply more expensive.

Filip.

 
At January 04, 2008 9:47 PM , Anonymous Anonymous said...

I got a gupi for christmas of my uncle and i was looking for some info on him so i looked and i found a gupi birth certificurt and it is great i got it lamanated well so far gupi is going great. my nephew's love him to bits so gupi is the perfect gift!

 
At January 09, 2016 3:41 PM , Anonymous Anonymous said...

Is it posible for me to buy a gupi prototype? I used to have a gupi but the prototype is more realistic.

 

Post a Comment

Subscribe to Post Comments [Atom]

<< Home