Tech note #1701: Garbage in, garbage out.

I set the Roomba about a mission to clean the floors and it kept getting stuck humping the edge of the bathroom scale. Kinda silly, counterproductive, and it left tire marks on the floor.

image
... At least clean up after yourselves, geez.

After I noticed this, I thought of something…

The Roomba has a nice multitude of sensors that regulate its operation, but it can deal with failures on some of them by determining their data is bad and ignoring them. For instance, this …

image

This is the front caster. Notice how it’s half black and half, well, sort of white?

image

An infrared LED and phototransistor sit above it and count its rotations.

Sorry I didn’t get a before pic, as if you needed to see a hair clogged axle that badly, but yeah…

Here’s what it looks like disassembled and cleaned out. It had hair wrapped in it and it couldn’t spin. It can be easily pried up from an end and the axle pressed out.

image

Now it spins freely.

So what was up with the bathroom scale and floor? The Roomba was hitting the edge and just starting to lift off the floor – the wheels were losing traction, but still both rotating, and the jammed caster with rotation sensor was being ignored by the firmware.

Thus, the system thought it was just rolling across empty floor.

So does it work now? Just after cleaning the caster and resetting the CPU, I restarted the cycle. Upon getting jammed in the laces of my boot, the Roomba promptly stopped and asked for assistance.

The underlying concept that’s valuable to see here is: garbage in, garbage out. When looking at any system, consider the fact that an assembly within will only work as well as its input. Verify correct input signals before you start chasing your tail forever.

And from now on, I’m putting away the scale before starting the Roomba. Well, it can’t dust under it anyway.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.