You probably already know that Roomba is a vacuuming robot from iRobot corporation. They’re very cleverly designed to get into and out of tight spots, to follow walls, and go around corners. Watching one in action you can see from the movements how it switches from one algorithm to another as it tries to navigate through chair legs to get out from under a table. They also have cliff sensors that allow them to vacuum up to the edge of steps and stairs without falling off. On top of that they actually do a good job of vacuuming the floor.
My Roomba (aka “Scooter”) has sat dormant for some time, patiently waiting for a new battery pack to be installed. After running across some Roomba projects on hackaday and other sites though I’ll have to get that battery replaced and get Scooter running again.
Before you start hacking Roomba you need to find out what you have to work with. A good starting point would be Dino Segovis’s WWW page which has two 10 minute teardown videos. From this you’ll learn that Roomba has a wide variety of sensors, motors, and micro switches on the inside. Fortunately they are all connected to the main PCB using uniquely keyed connectors so it is relatively easy to take apart and (successfully) put back together. You’ll also see that the drive wheel assembly uses a nifty planetary reduction gearset, and an infrared detector to count wheel rotations.
Once you’ve got a good background in Roomba internals you can try some of the hacks. Segovis has begun work on an all terrain robot based on Roomba guts. The smarts are provided by an Arduino, but he has tapped into the Roomba H bridge circuit to drive the motors.
Weal Chatila has added a small video camera to his Roomba, interfaced to a Gumstix Linux development board. Currently it is able to control Roomba via the Roomba serial port interface, and is able to stream video over the internet. His vision is a lot grander, although not implemented yet. He describes a pretty neat vision of a robot that takes videos while it cleans, and is able to recognize common objects and extract text from the videos it takes. Potentially, this robot could let you know where your glasses are or could tell you that the missing library book is under the couch, in addition to cleaning your floors. He calls this invention the GaagleBot.
Roomba hacker Tod Kurt has written a book on Roomba hacking called, appropriately, Roomba Hacking. Projects in the book include playing music with your Roomba, adding WiFi, and turning Roomba into a large format printer.
I’d like to see some hacks that allow Roomba to learn more about the space that it is cleaning in order to clean more efficiently. If you’ve used Roomba you know that it does a good job cleaning, but you have to leave it alone. It is simultaneously captivating to watch it navigate a room, and frustrating to watch the driving algorithm cause it to repeatedly drive right up to a dirty spot and turn before cleaning it. Most Roombas clean the same rooms over and over, and it would be great if they could learn the space they’re in and how to clean more efficiently.
In case you were wondering, the column photo is a time lapse image of Roomba’s path as it cleans a room. Originally posted to signaltheorist.com.