Page 15 - Hacking Roomba
P. 15
xiv Introduction
In December 2005, iRobot Corporation, the maker of the Roomba, recognized the growing
hacking community and released documentation describing the Serial Command Interface
(SCI) present on third-generation Roombas. In mid-2006 iRobot renamed the SCI to be the
Roomba Open Interface (ROI), a name that better fits its role. The ROI allows you to take full
control of the Roomba and its behavior. This is no simple remote control interface, but instead
a protocol that allows complete sensor readout and full actuator control.
Since the release of the SCI/ROI specification, there has been an explosion of new Roomba
hacks. The Roomba hacking community has blossomed to include not just professional
hardware engineers, but people from all experience levels, from normal people looking to play
with their Roomba in a new way to academics experimenting with low-cost robotics. The
ROI turns the Roomba into a true robotics platform. And because these are all reversible
hacks, it’s easy to try someone else’s hacks. No longer do you have to break a Roomba to try
something out. To see some of the hacks people are working on and join in discussions about
them with others, see the Roomba Review hacking site mentioned above, the accompanying
forum at http://www.roombareview.com/chat/, and the Roomba hacking wiki at
http://roomba.pbwiki.com/.
Whom This Book Is For
This book is for those who want to experience the fun of programming a robot without all the
problems normally associated with building one.
Most of this book is designed for beginning hackers, those who know a bit of programming
and a little bit of electronics. Familiarity but not expertise is assumed with soldering and
schematics. No mechanical expertise is required, but if you have it, you can do even more
impressive things than what is outlined in this book.
If your soldering and schematics skills are a little rusty, two useful appendixes are supplied to help
get you back up to speed.
Most of the code examples are presented in Java. Java was chosen for its ubiquity and cross-
platform capability and is used for all the PC-connected projects. Thus, knowing how to
compile and run Java programs is required. The later, more advanced projects are programmed
on microcontrollers in either PIC BASIC or AVR GCC.
What This Book Covers
The projects in this book are based around the Roomba and the Roomba Open Interface
(ROI). The Roomba’s capabilities as presented via the ROI are described and tested. The few
capabilities that aren’t accessible via the ROI are mentioned briefly. The Roomba’s mechanical
and electrical internals are also discussed, but since this book is about hacking the Roomba
without taking it apart, they’re mentioned only briefly.