The Erdos project provides software, curricular, and hardware-based
information about using iRobot's Roomba vacuum cleaning robots
in education, especially undergraduate education.
We brought our roomba hardware and software to the fifteenth annual robot
competition and exhibition at the annual conference of the American Association
for Artificial Intelligence, Boston, July 16-20, 2006. There we demonstrated
our Monte Carlo localization software for the roomba at the convention center.
The exhibit was given a Technical Innovation Award for the Introduction of
a Novel and Inexpensive Robotics Platform.
A movie of our roomba localizing at AAAI 06 [avi, 12mb]
This movie shows the live footage (left, at 1x and 3x speeds) along with the
computational processing (right, at commensurate speeds) that constitutes the
Monte Carlo Localization algorithm. The area is part of the convention center from
AAAI 2006, using the walls and the roomba's virtual walls as barriers. In the video,
the small black circles are 300 pose hypotheses for the actual robot, the larger
red circle is the integrated odometric position, and the small blue circle is
the most likely robot pose. The robot wandered under our own (very simple) routine.
The roomba does provide wheel-based odometric information, but it will quickly
lose track of the actual robot position, especially as angular errors accumulate.
Each bump reading, however, reduces this accumulating uncertainty. At the end of the
200-second run (compressed to ~50 seconds), you will see that the blue circle
indicating the algorithmic estimate of the robot's location is correct, while
the wheel slippage has led to an odometric estimate well outside the area's walls:
This was done with an off-the-shelf $150 roomba and an $80 bluetooth interface
obtained from RoombaDevTools.
All of the software is available below. You're free to use it, but I would love
to know about it at dodds@cs.hmc.edu. Happy roomba'ing!
Here is the code as of 7/14/2006:
Here is a thumbnail screenshot of the current interface
as of 5/11/06:
Click this image for a full-sized version.
You can download our python software (with README file) from this link.
This software provides python drivers (SCI interface) and
higher-level functionality for the roomba. To use it, you'll need
If you prefer a Java interface to your roomba, Tod Kurt's
page may be the place to start.
The RoombaDevTools site has a
Visual Basic interface, as well.
Any language/OS combination
that can talk to the serial port will work... .
No need to splice your own cable...
Now, RoombaDevTool.com,
part of RoboDynamics, offers off-the-shelf interfaces:
You can create your own interface ($20 for USB, $60 for bluetooth)
even without picking up a soldering iron, and at some point I'll
put my expreiences doing this here.
In the meantime, there are lots of excellent online resources.
I used
Tod E. Kurt's HW and Java SW tips for the Roomba.
Erdos was used in two Chatham College classes in Spring 2006:
There are a number of powerpoint and other documents
related to this project available on this page.
We have named this project erdos for its potential to
convert coffee into proofs: in particular, proofs-of-concept
where a physically embodied platform can validate computational
and algorithmic ideas. Not to mention ruggedness:
the prolific Hungarian-born
mathematician
Paul Erdos lived to 83; he continues
converting coffee to proofs, now with access to the book.
In addition, we have post-fitted erdos with a requisitely
clunky acronym, i.e., the Educational Robotics Drive-Operating-System.
Finally, this project is a successor in spirit of the discontinued Evolution ER1,
but the name ER2
is already under trademark protection.
Bienvenidos a una nueva generacion!