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 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.
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.
- iRobot is really good at producing a robust platform with useful
My Roomba is currently sitting on its charging platform and later
today will clean the front room floor. It is a system that regularly
runs for years rather than minutes. The system is well made
with spares available. Indeed my Roomba is a second hand unit that was
suffering the " 9 beep
dance". I fixed it with a soldering iron and a 60p component from Maplin
Electronics. The thing has been chased by the children, dropped (not
too far) and tells me when it needs a clean. What you get with a
Roomba is something with lots of development behind it.
- The Roomba has an application that means it is always on.
You get all the above if you buy a iRobot Create
but if I was using a Create, why would I leave it on?
Like my previous robots, there is no doubt something I made with
the Create would end up being disassembled or in the back of a
cupboard with the batteries out. My Roomba is there and I am
continually temped to modify it.
- Having an application means that Roombas provide a pathway to
addressing a fundamental question in language & representation.
Many robot people have the naïve idea that things
in the robot's environment can be represented with arbitrary symbols.
It turns out that `symbol grounding' (not really the right term) happens
through our experience of the world and that experience is determined by
embodiment. By the 1980's AI research realised the reference model of
meaning failed surprisingly quickly when moves out of a "blocks world,"
but what could we do about it? The issue has a long history going
back at least Heidegger and Witgenstein, extending through to Gibson's
notion of affordances, to Lakoff & Johnson's notion of metaphor,
and to Ruthrof's "semantics of the body".
How this thinking links into serious robot research is an on going issue.
back to Peter's home page