Teaching Robots to Love - Programming a Roomba

Teaching Robots to Love - Programming a Roomba

A few weeks ago, I was coerced by my girlfriend into buying one of those silly "floor cleaning robots." Yes, I mean a Roomba. I was skeptical, but I sat down and did some research. 

Little did I know that while I had been slaving away religiously vacuuming my own floors (ok, occasionally vacuuming my own floors) since the first Roomba came out in 2002, the makers at iRobot had made amazing strides in autonomous floor-cleaning technology!

While first-generation Roombas seemed to bumble around like an aimless freshman in orientation week, the current Roombas promised not to lodge themselves under your furniture or toss themselves down your stairs. They can be scheduled to clean when you're not home, and they even charge themselves! 

iRobot convinced me that these little guys are actual engineered robots nowadays.

Hello, Roomba! 

After explaining to my cat that there would be a new addition to the family soon, I ran out that very night to bring home her new little sister, a 530 Series Roomba. I tore into the package like a kid on Christmas morning (or like an engineer opening up a floor cleaning robot). 

After naming her and waiting an agonizing 16 hours for the first battery charge, I started to read through the instructions. While flipping through the pages, I was given one of the biggest, best surprises I’ve had in a long time.

Can You Teach A Robot To Love?

Instead of a disclaimer about how any modification to Roomba would void her warranty, I found a message encouraging programmers, engineers, and electronics enthusiasts to modify and add on to Roomba!

They even put a serial connection in and provided a full set of commands (called ROI 500 or Roomba Open Interface 500) to control the Roomba completely with a microcontroller or Bluetooth device! I was so excited that I think I might have screamed. 

A swirl of Roomba add-ons (fridge retrieval arm, morning breakfast preparation attachment) and Roomba subroutines (cat chasing mode, teaching Roomba to love, programming her to play the Notre Dame Victory March) rushed into my mind. I figured I would share my project with DMC and friends, so be sure to check back for updates on my progress!


This was the first entry in a multi-part blog about a home project programming a Roomba robot. If you are a robot enthusiast, check out this other robot-related content.

Robots vs. Humans Soccer - Teaching Robots to Learn
Robot Dancing - Teaching Robots to Heal
A Roomba Christmas

Learn more about DMC's Robotic Automation & Integration services.


Joe Mann - Programming Roomba
Well, if you are into programming Roomba- I'm sure you will enjoy this article as much as I did:
I just got a model 4110 today and the first time convinced me that these tnhigs really work. This thing is great and I wish I bought one years ago. I'm runnning it for the second time as I write this. I'm a single guy and I am not Felix Unger .the place is cluttered. To complicate tnhigs, my apartment's kitchen has a ton of odds and ends that are getting sold/given away/donated tomorrow so it's an obstacle course. This thing is a lot quieter than I thought it would be. It's not whisper quiet but quiet enough that it can barely be heard in the apartment downstairs. Here it is 11:30 at night and I'm running it without worrying about ticking off my neighbor. It navigates really well. To put it simply, tt more or less bumps into tnhigs then turns and goes somewhere else but you can tell the Roomba's programming just isn't that simple. I was amazed while watching it work its way around a three-legged guitar stand. It got between all the legs. The iRobot website has a video representation of the path of a Roomba and I'll say my Roomba did what i saw in the video. It found its way into the maze of boxes, chairs and stuff in my kitchen and actually found its way out. It also navigated the clutter of guitar stands, cables, an amp or two .to say nothing of navigating around the coffee table and couch. It got hung up when it crawled up on a coiled up guitar cable but I can't blame the Roomba for that. It only stopped moving sort of in one place in my apartment and that's where the carpet meets the tile of the kitchen and one part of that joint is frayed. That got stuck a little in the brushes but the Roomba figured out it had a problem and worked its way loose in about 20 seconds. It scooted back out of the area via a different place and went back to carpet duty. It did a pretty good job of cleaning the tile floor but there's too much crap in there right now to judge the Roomba on it. It cleaned what it could reach. It went under and around the bird cage and cleaned up all the seed shells that my bird dumped, including sunflower shells (the bird seems to enjoy watching the Roomba). I get two new kittens in a few weeks and can't wait to see how they react (they'd better learn to get used to it). I'm not sure if it's as good as a regular vacuum cleaner or not but I didn't think it would do nearly as good a job as it does. A key point, I *think*, is that it doesn't have to do as good a job as my super sucker expensive vacuum since running the regular vac is a pain in the neck. Running the Roomba is fire and forget so I'll be using it far more than my normal vacuum. The auto dirt sensor thing works. When the Roomba got to the bird cage (and all the seed shells) I saw a blue LED come on and it went to town' in that area. It did that a few other times as well. I was about to say that it ended up missing a spot about a foot wide but it just went over that area twice. I wanted to see how quickly it would find the home base so I leaned over and pressed the go home' buttons (press CLEAN and SPOT simultaneously). It seemed to get a little confused because it had to navigate around several tnhigs to get home but it finally made it in about 3 minutes vacuuming all the way. It was definitely doing some different navigation thinking than during normal cleaning. The spot mode is pretty cool but I didn't have much of a reason to use it other than to see how it worked the dirt sensor kicks it into spot mode when it finds a dirty area. In spot mode it turns in a tight spiral and slowly moves away from center to hit that area hard. I didn't test the virtual wall unit so I can't say anything about it. I would never bother to pay for one I have no need to block off any area in my place. All in all I have to give this Roomba 5 stars. It's not a perfect vacuum cleaner but it works really well. It didn't quite get all of the bird seed off the floor but a dustbuster' picked up the few pieces the Roomba didn't. I only plan on using my regular super sucker expensive vac for vacuuming right before I clean the carpets. This Roomba is great and I recommend it to anyone interested. I had been thinking about buying one for a few years and finally bought one. If you're close to buying one but aren't sure, go buy one.

Post a comment

Name (required)

Email (required)

Enter the code shown above:

Related Blog Posts