Page 16 - Hacking Roomba
P. 16
Introduction xv
The ROI protocol is covered in detail, with examples given as each part of the protocol is
examined. Practical and fun examples of each ROI command are given. As a way of abstracting
the rather low-level commands of the ROI, a code library of software routines is slowly built up
to become the RoombaComm API with applications built using it.
Throughout this book, the ideas and practices of Network Objects are developed. As comput-
ing and networking become so cheap as to be effectively free, all objects will become network
objects. The Roomba robot is already a computing object, a normal everyday device (a vacuum
cleaner) that has been imbued with intelligence in the form of a small computer. This book
describes several methods of extending the Roomba to become a networked object. These
methods are similar to those used for current and future network objects that will exist through-
out the home.
How This Book Is Structured
This book is designed mostly for the novice electronics hacker, but it contains several advanced
projects toward the end.The book is divided into three parts. Each part is mostly self-contained,
depending upon which shortcuts are taken, but knowing the concepts presented in earlier chapters
helps in the later ones.
Part I: Interfacing
This part describes the Roomba, its history, and its model variations, to dispel the confusion
regarding which Roombas are hackable via the ROI protocol. The ROI protocol is discussed in
depth, showing exactly what bytes are sent and received to command the Roomba. To allow a
PC to speak to the ROI, two simple hardware interface projects are shown — one wired, one
wireless. With those created, a software library is given that provides an easy-to-use abstraction
layer on the PC.
Part II: Fun Things to Do
Using the hardware and software infrastructure from the previous part, this part focuses on
interesting, or just plain silly, things to do with a computer-controlled Roomba. Make it dance
and sing, draw huge artwork on the ground, and create a complete dashboard/remote control
PC application called RoombaView.
Part III: More Complex Interfacing
With experience from using a PC to control a Roomba, the focus now becomes making the
Roomba a true Internet device and fully autonomous. The first few hacks are Internet versions
of the initial interfaces. From there a fully reprogrammable replacement brain is added to the
Roomba using microcontrollers like the PIC Basic Stamp or Arduino AVR. This part ends
with adding a larger microcontroller board that can run Linux and use a webcam, microphone,
or any other sensor imaginable.