Home 
 Map 
 ⇑ 

 ⇍   December 4th, 2005   ⇏ 

Copyright 2005 Michael Anttila

A few years ago I read an article on robotics that discussed bottom-up design versus top-down design. When most people think about designing a robot, they start with a top-down approach. For example, when building a six legged walking robot they will write an algorithm for moving the legs in the right way to move forward, then write another algorithm for turning left, another one for turning right, and finally write a decision making routine for determining when to go forward and when to turn.

A bottom-up approach is quite different. This method involves starting with very simple instructions for each individual leg. For example, if the leg is currently down, lift it up and move it forward. Otherwise, put it down and move it back. Adding more functionality doesn't necessarily mean changing these simple instructions. For example, turning can be accomplished by attaching two "antennae" with pushbutton switches to the front of the robot. When an antenna bumps into something, the switch is depressed and the legs on the opposite side of the body reverse their individual instructions. Thus, when the left antenna hits something the six legged robot will turn right until the path is clear.

The bottom-up approach has some interesting consequences. Getting our robotic bug to behave like a cockroach is fairly easy. We simply put a light sensor on the top and tell the bug to move when the sensor detects light, and stop when it doesn't. Now our bugbot will scramble around until it goes under something, then wait there until the thing is lifted or someone starts i looking for it with a flashlight, at which point it will scramble around more until it can find shade again. Such behaviour is more difficult to accomplish as efficiently with a top-down "brain-oriented" design.

Anyway, the article finished off with the roboticist envisioning a vacuuming robot that lived under the couch and came out to clean whenever the house was empty. It was an idea so simple that someone had to make one eventually. Later I read that a few companies had started making robot vacuum cleaners. I thought it was cool but didn't look into it beyond a passing interest.

Then in November I was talking to Emily and Oscar and found out that iRobot had gone public. In fact, they went public with only one successful consumer product under their belt: The Roomba robotic vacuum cleaner. That was enough to pique my interest. I did some research and liked what I saw. I came to the conclusion that I had to have one. Normally I don't buy things for myself this close to Christmas, but I figured there was no danger of anyone else getting me one, so I placed an order.

The picture below is of my brand new Roomba Scheduler -- currently the best consumer robot vacuum cleaner on the market. The Scheduler is part of the second generation of iRobot vacuums. It has a "home base" that acts as a recharge station, and it can be programmed to clean at certain times on certain days each week. At the scheduled time, it will leave home base, wander around semi-randomly for a few minutes to calculate the size of the room, use that data to figure out how long it should clean for (from 20 minutes to an hour and a half), clean, and then return to home base to recharge at the end of its mission.

So far I've only tried it twice -- both times in my bedroom -- and it worked great both times. I look forward to trying it out on the rest of my house. I have more to say but this writeup is getting long so I will post some comments over the next couple of days.

Disclosure: In addition to owning a Roomba, I also own stock in iRobot, so keep that in mind when I eventually recommend buying one. ;)

Comments

Wow cool!

My brother is living in the FUTURE! ;)
-- Alix

Have you formed a bond with your Roomba yet?  Does it have a name?  If it broke
down and you sent it in for repair, would you demand that it be repaired and
not replaced?
-- Russell

Haha... not quite.  We were going to give it a name, but we didn't come up with
a really good one.  At this point, I would be fine with a complete replacement
if necessary.  ;)

It does seem to have a personality though.  One day it woke
up and started cleaning, but while it was cleaning my office got behind the
door and pushed it closed, locking itself in.  At the end of the cycle it
couldn't find its home base, so it decided to keep cleaning until the batteries
were dead.  Unfortunately, the virtual walls shut off after an hour to conserve
battery power, but the batteries in the Roomba weren't dead yet, so it was
suddenly allowed to roam free in my office.  It made a mess of the drapes, and
then finally got stuck in a tangle of computer cables, unplugging my monitor in
the process.  

I came home to find my office door closed, random mayhem in my
office, and a stuck Roomba.  When I picked it up it played a sad song.	I
returned it to its home base and left it to think about what it had done.
-- Michael

POTW - Photo Map - Home - Feedback

Hosted by theorem.ca