Ever since I could remember I've been interested in robots and one in particular that's always puzzled me is the i-robot Roomba. How did it know where it was going, and how did it always manage to clean the whole room? These questions led me to tear one open and hack the code underneath and what I found was truly spectacular. The most advanced path tracing program in the history of the world, and a fatal flaw that I set out to fix.

Although the Roomba always managed to clean the whole room, it did so in the most frustrating manner possible. It can't see where the messes are and even when placed in front of a particularly nasty spot, may clean a majority of the other parts of the room before it gets to the actually dirty part. Buttons on the Roomba would be shotty design and if I stayed and connected to my computer it would be even less convenient. Instead I implemented motion controls through Unity and sent those controls to Roomba's python interface. I learned many things about the ROS and about game engines. It's been a truly rewarding experience and I love this project.

Built With

Share this project:

Updates