Skip to main content

Need to trap a Roomba? You don’t need anything more sophisticated than a rug

Need to trap a Roomba? You don’t need anything more sophisticated than a rug


A recent video shows how robo-vacs confuse dark patterns for dangerous cliffs

Share this story

iRobot recently launched a new robot vacuum cleaner that uses AI to avoid dog poop, but the company’s Roombas have long struggled with a more basic problem: confusing dark patterns on carpets and rugs for perilous drops.

A video recently shared on Twitter by IBM researcher Dmitry Krotov shows exactly the problem: a Roomba rolling around inside a rectangular box pattern on a rug, refusing to drive over the lines as if were physical walls. Usually, iRobot’s software flags this sort of problem as a dangerous “cliff,” and a quick search on Twitter for “roomba rug cliff” shows it’s a pretty common error. As one user complains: “I swear that Robby the Roomba is a right drama queen!! This is NOT a cliff Robby. It’s a rug!”

The actual mechanics behind this error are pretty fascinating, though. And it has nothing to do with machine learning, but rather the cost constraints on the robot vacuums’ hardware.

As iRobot research scientist Ben Kehoe explained in response to Krotov’s video, the basic problem is that Roombas detect sudden drops like stairs and steps using a combination of an LED and a photodiode — a sensor that detects light. As Kehoe puts it: “Does the photodiode detect reflected light from the LED? Great, the floor is there! No reflected light? Uh oh, that must be a cliff. Dark black carpet->no reflected light, it looks like a cliff!”

The problem, notes Kehoe, is balancing the accuracy of the Roomba’s sensors while keeping unit costs low. “Our newer models don’t suffer from this, but it took YEARS to figure out how to make the sensor robust to this while remaining cost effective,” he tweeted.