Find all your DIY electronics in the MakerShed. 3D Printing, Kits, Arduino, Raspberry Pi, Books & more!

S0Uzq

We do not have a dog where I live, but we do have Roombas (and a cat). While this example above is funny, it’s also a fun engineering challenge. How would you modify the Roomba to detect dog poop and stop instead of making modern art all over the place?

Phillip Torrone

Editor at large – Make magazine. Creative director – Adafruit Industries, contributing editor – Popular Science. Previously: Founded – Hack-a-Day, how-to editor – Engadget, Director of product development – Fallon Worldwide, Technology Director – Braincraft.


Related

Comments

  1. Addidis says:

    Capacitive touch on the wheels , in tread (ish) patterns if it senses a connection on the sections that are pointing up its run over poo . 

  2. Sam Ley says:

    Moisture sensors along the front lip? If it hits something “wet” it backs up a little and shuts down to await further instructions? You’d still need to wipe off the nose of your Roomba, but at least it wouldn’t spread filth everywhere. Might also work for situations where you don’t want the roomba driving around in a spilled beverage, leaking pipe, leaking planter, etc.

    1. Steve Hoefer says:

      I like this idea. It shouldn’t add a lot to the cost, should be pretty durable, and, as you say would keep the bot for spreading any other mess around. 

      If it was my bot I’d want it to send me a text or email telling me it had found a wet spill too, just in case I don’t have a dog, but do have a burst pipe.

  3. Alan Ball says:

     Organic chemical sensor, sure it could get a false trigger, but the downside of that versus spreading poo everywhere. Pretty cheap little module too. 

    1. That’s what I was thinking Alan. Perhaps a methane sensor. I’ve been considering this for a while because I am trying to reason out how I could build a dog poop cleaning robot for the yard. I don’t think I can do it with any kind of image recognition. Brown poop doesn’t look that much different than brown sticks or brown rocks or brown leaves. 

  4. Roger Cook says:

     Use a sensor on the wheels to detect excess friction. Le Poo would increase the drive force necessary to keep going forward. If it exceeds some threshold, it can be determined that it’s pushing something rather than vacuuming it up, then shut down and await instructions, or maybe retread backwards to its dock. It would work for more than poo too, as it should work for large chunks of mud, big heaps of trash, and so on.

  5. Fightcube says:

    How about a moisture detector that drags just under the front edge of the Roomba?  It would have two electrical contacts that are interlaced across the entire front edge that feed the sensor.  If it detects moisture, it stops dead in its tracks and sounds a “friendly” alarm.  The sensor strip could be mounted to a leaf spring in case it encounters obstacles, and/or it’s height could be adjusted up and down with a set screw.  It would also have to be detachable and washable ;-)

  6. johngineer says:

    Similar to Sam’s idea, I think if you had a few low-current open electrical contacts which shorted in the presence of conductive semi-liquid, it would at least cause the Roomba to stop moving around. Perhaps it could even send you a TXT that says “Help! I think I stepped in poo!” or something, so you’re alerted to the crisis immediately.

    Of course, all of this rests on the idea that poo is conductive, a topic which (strangely) was never covered in any of my EE classes.

    1. Sam Ley says:

       My guess is that if your Roomba is making a circuit every 90 minutes, then it would run into poo that was less than 2 hours old, meaning it is probably still electrically conductive. If it was particularly hard and dry for some reason, it may not detect it, but it would also just push it aside instead of tracking it everywhere, which is less of a big deal than the wet (conductive) poo would be.

    2. johngineer says:

      Because I can’t resist a pun:

      One of the open contacts would be tied to V+, the other would connect to a pin on a microcontroller, which is pulled down thru a resistor to GND. The value of the resistor would be dependent on the resistance of the poo*. When the contacts are shorted, the microcontroller pin would go high. The firmware in the microcontroller would read this as being in one of two Boolean states, viz. POO and FALSE.

      *it is my sincerest desire that this is what comes up when people Google my name.

  7. ed says:

    simple…don’t have pets in the house… 

    1. Ed Hickcox says:

      Yeah, or crate your dogs during the day.  Our cats prefer that we do it that way….

  8. John Sanderson says:

    KISS,

    Isolate the contaminants from the work area.  Throw the @#%&#  dog outside!

  9.  http://www.amazon.com/iRobot-Roomba-4210-Discovery-Vacuuming/product-reviews/B00022HYJ6?pageNumber=7
    yeah read my review on amazon :)

  10. Anonymous says:

    Temperature detection. If near body temperature is detected in an object, the irobot is detoured from said object (a.k.a. big warm pile o’ poo) Although a hot summers day would throw a wrench in the gears here.

  11. Drew Harwell says:

    Schedule the daily sweep for immediately after you leave for work?

  12. Anne Speck says:

     I don’t know much about the specifics of how the roomba detects walls, etc, but lots of things use range finders — infrared, sound, light. The more interesting thing would be to email a set of exceptions to the user, have them do a visual check through an on-board or off-board camera, and then have the robot go back and clean the approved spots. 

  13. Ron Mueller says:

    It needs to smell

    1. Anonymous says:

       right. it needs to detect the presence of poo, identify the offending pet, grab the pet, and rub its nose in the poo.

  14. Steve Poling says:

    The problem is that the Roomba is operating “open loop” in the sense that it traverses a space doing a cleaning activity without sensing that the floor is actually clean before moving on. Moreover, it does not sense whether its “cleaning” activity is making things worse. Thus sensors set are needed to detect “cleanliness” of the floor it’s just gone over. If the floor isn’t clean enough, the device must back up and go over it again until it is clean. And if it fails to get something clean after N passes, it stops. No, i don’t know what kind of sensors that might be. I suspect a shiny and dry floor is a clean one.

    A simpler approach might be to put some smell sensor on the device that shuts down and refuses to start cleaning a stinky room. No, I don’t know how to make a smell-sensor either.

    Note that if we put a geiger counter on the device it might be cleanup places like Fukujima. Or do other decontamination tasks with another bad-thing detector.

    Clearly, the interesting answers to this request will be those which specify sensors of cleanliness and/or stink.

  15. Ed Hickcox says:

    Maybe an IR sensor on the front?  Might only work while it’s still warm…  The “wetness sensor” idea bears looking into.  You could adapt something from auto-watering systems that detect moisture levels in the soil.  Two sensor strip contacts along the leading edge of the robot which bring a pin high when they’re bridged by… whatever.  Beyond that I’m not sure, seeing as I have no practical experience with the Roomba.

  16. Pablo Pino says:

    Infrared sensor at dog´s waste output (*) sincronized with GPS ( or house internal positioning sistem)
    located at Dog´s collar.
    The device sends data of “when” and “where” to iRobot and determines time of drying in order to collect waste.

  17. Ed Symanzik says:

    Once you detect anything that would get smeared around, use this to remove it.

    http://blog.makezine.com/archive/2011/03/the-amazing-slime-picker-upper.html

  18.  someone needs a roomba…

    with a scoopa