The Roomba Vacuum Robot

Have you ever wondered how the iRobot Roomba vacuum robot works? When I brought my new household robot home, that was the first thing I wanted to know. For example, did you know your robot floor cleaner was basically a complex robot bug?

Now let's observe the little robot with a white coat and a loop see what we can reverse engineer...

1) How does your robot vacuum?

Vacuum robots work pretty much like traditional vacuums. They have a vacuuming unit to suck the dust in and rotating brushes to move the dust up so that it is naturally drawn inside.

The brushes of the Roomba vacuum robot
The brushes of the Roomba vacuum robot

You can see on the picture the 2 rotating brushes with their rotating directions. They both send the dust toward the middle so that the dust will rebound on each other until it gets sucked up by the Roomba vacuum robot. Also, between the two brushes we will see later that their is a useful dirt sensor. But for the sensor to work, the brushes must send the dirt on it.

Do you see this spinning brush on the corner? It is one of the cool features of the Roomba vacuums. Just like usual vacuum cleaners, a robot vacuum cleaner can only clean the dust that is right under it. It's a problem when the cleaning robot cannot go too near from walls. But the spinning brush will move the dust near the walls and throw most of it under the robot and the rest randomly around the room, ready to be picked up later.

The vacuuming is clearly less powerful than a traditional vacuum cleaner, but your Roomba vacuum robot will handle that with a unique strategy for vacuum robots: it doesn't try to vacuum the room fast with an optimized path finding. Instead the robot vacuum cleaner goes randomly and passes over most of the room several times. By passing several times over the floor, it makes a better job than most robot vacuum cleaners passing only once quickly everywhere.

2) The Roomba has many behaviors

The Roomba vacuum robot evolved from bugs (or at least bug robots). It uses a combination of simple behaviors that can reach complex goals together.

This idea was created by Rodney Brooks, the supervisor of Colin Angle and Helen Greiner. The three of them founded the iRobot company. Brooks made a significant work with his subsumption architecture: instead of "sensing, detecting, thinking and deciding" occuring as one step after another, Brooks proposed to have all of these happening together, independently.

How to make a Roomba vacuum robot?

In short, your Roomba vacuum robot will not try to avoid you, then try to go straight and then try to vacuum the room. Instead it will follow navigation patterns that cover efficiently the room while modifying them in case of obstacles and other reactive behaviors.

Now what kind of behaviors did I observe in my Roomba?

  • it can follow walls on his right (so that the spinning brush cleans the side of the wall)
  • it can rebound randomly on walls
  • it can change directions every few seconds
  • I read it can make spirals from the center of the room going bigger and bigger (my rooms are too small for that)
  • it can spin its brushes backward when it is trapped in cables or on the side of carpets
  • it can stop when bumping an obstacle, sensing the void near stairways
  • it can sense when it cannot move anymore
  • it stays around dirty spots to clean them in detail

These many behaviors combined make the iRobot Roomba vacuum robot very efficient and safe. The company even claims the Roomba has "more than 60 robotic behaviors".

Why is this strategy more efficient to clean your floor?

Compare to other vacuum robots, Roomba vacuums don't care about doing a quick job. A Roomba takes at least 4 times longer to clean a room than a Neato XV-11 vacuum robot. But the Roomba passes several times everywhere. The combination of wall following, spiraling in the middle and random turns makes sure the iRobot Roomba vacuum covers all the room.

Click here for detailed Roomba reviews.

The logic is that since there is no human supervision necessary, there is no hurry. I agree with that. I can easily leave my Roomba vacuum the other room while I'm watching TV for example. The noise is not even a problem, especially when I close the door.

3) Roomba parts and sensors

The Roomba vacuum robot has many sensors that help get the job done. Here is a list of most of its sensors:

  • Bumpers on front to detect obstacles
  • infrared receivers to locate virtual walls and charging base signals
  • cliff sensors detect the distance to the ground to avoid falling in stairs
  • dirt sensors that detects when there is a lot of small objects (sand, dry mud...)
  • current sensors to detect is the robot is well docked on the charging station
  • (probably) encoders on the motors to detect if they are spinning
  • (probably) accelerometers (like in the wii-mote) to detect if the robot is moving
Roomba vacuum robot

The Roomba vacuum robot can detect when it is charging.

The bumpers are quite straightforward: if it touches something, it pushes a button that tells the robot to change direction. They are low enough to detect my toes. And the robot is slow enough that it won't hurt any toe (though the spinning brush was tickling me) or furniture.

The infrared receiver is a littler better than the one they use in TVs since it can detect the position of the charging base. I suspect the robot must triangulate this position since clicking "dock" in front of the charging base doesn't help much the Roomba vacuum robot for docking. Triangulation means that the robot look in which direction the signal comes from, then moves and checks again, and again... After doing it several time, it can trace the direction lines on a virtual map and they should all point to one special direction.

The cliff sensors send infrared signals that rebound on the grounds and come back... if there is a ground. If the Roomba vacuum robot doesn't receive a signal back, it knows there is a danger. There are four of these, so that the robot can follow the cliff just like it can follow a wall using its bumbers.

The dirt sensors are hidden by the brushes. iRobot also says they use acoustic sensors to detect places with more dirt on the ground. I am not sure yet if they replaced the dirt sensors with acoustic sensors. But thanks to this sensor, the robot will stay around the dirty place slightly longer to be sure it cleaned all right.

After that the current sensors and encoders are just basic robotic sensors that I am pretty sure are on the Roomba vacuum robot. For example, when I move the Roomba 1 or 2 cm away from its charging station, it will move back into position to stay on charge. Also, my Roomba complains sometimes that it is stuck. The easiest way to do that is to compare the speed of the wheel with the speed of the robot. All these sensors are very cheap and small, and in almost every robots.

Did you have enough?

Well, that was a little long, and I feel it left some details behind about the software architecture (that I can just guess anyway) and some of the behaviors. I'll just add the links when I write complementary articles.

Other pages that might interest you:

Top tips to take improve your Roomba battery life.

My review of the Roomba. You can add your own experience.

Tips to find your Roomba at the lowest price.

Click here to go from the Roomba vacuum robot explained to the iRobot Roomba vacuum main page.

Click here to go back to the Personal Robot Home Page.

New! Comments

Have your say about what you just read! Leave me a comment in the box below.

Search The site

Robot Tips

Subscribe to Robot Tips and get the best tips to choose, dream, learn and build robots.

Enter Your E-mail Address
Enter Your First Name

Don't worry — your e-mail address is totally secure.
I promise to use it only to send you Robot Tips.

Find out more...

Roomba for the lowest price

Roomba Lowest price

How the Roomba robot works

How the Roomba Robot Works?

Get your own Roomba!