Roo Pi

A Roomba 530 on its charge station. I have put a raspberry pi on my Roomba. Below you will find links to how, but this page deals with the why.

The Roomba is a autonomous robot vacuum cleaner that can can be bought on line or, on occasion, from department stores. The machine has an interesting history in that it is manufactured by iRobot, the company set up by Rodney Brooks and others from MIT in the 1990's. The company has sold around six million Roombas[1] and the machine has in effect defined its own market with several imitations now available. Today however iRobot is probably more famous for producing the Packbot series of military remote control robots.

The illustrious pedigree of the Roomba is evident in the way it works. The Roomba does not map the room but rather performs a semi random walk that is likely to cover any given spot multiple times (see time lapse photo). With no sense of location, the roomba is often seen as little more than a toy by computer scientists but there are historical reasons for the Roomba to take this approach. Ignoring the history is of course likely to lead to one repeating it. A
time-lapse photo of the roomba's path

There are three good reasons for using a Roomba as the basis of serious robot research:

The link however does bring us back to an interesting feature of the Roomba. There is a problem with representation and Brooks grand agenda (in the early days at least) was to see what could be done without representation. The Roomba's random walk is not a quick fix that ought to be replaced with an algorithm based on some sort of map, but rather it is a considered solution to a classic problem. Indeed when one looks at the Roomba Open Interface, the architecture is very much Behaviour Based Robotics with "primitive" commands for "clean", "seek dock" and so on. In the same way one might like to start with two motors and a chassis and not use the excellent work done by iRobot to make a Roomba, one could also throw out their excellent work on the application/architecture and use a iRobot Create. I however think the Roomba is a better place to start thinking about robotics.


back to Peter's home page