Ask HN: I want to build a robot that cleans my bathroom.

9 points by SMrF ↗ HN
I recently bought a robot vacuum and I've never had cleaner floors. Now all I can think about is building a robot that cleans my bathrooms. So I'm going to build one.

I'm a programmer but I don't have a background in robotics. My question is on a scale of 1-10 how impossible is this? Please know I don't really care if it's impossible. The worst case scenario I end up with a pile of AI and robotics knowledge, and who doesn't want that?

Here is the scale:

1 -- I just need to buy a kit and throw it together with some Python

10 -- I need a PhD in robotics so I can secure a research grant to develop robotic vision hardware and software.

I figure I will place it in a bathroom and it will:

-- Identify loose objects and move them out of the bathroom

-- Identify all of the surfaces that can be cleaned, e.g. clean the bathtub, not the walls.

-- Manipulate the toilet lids to clean under the lids, etc.

-- Be tall enough or have a long enough arm to clean the entire shower.

-- It needs to be mobile enough to move around the bathroom, into the tub, etc.

-- Put everything back in the room where it was when it's done.

26 comments

[ 3.7 ms ] story [ 94.2 ms ] thread
I don't have a real robotics background, but I do work in automation, so I have a pretty decent grasp on machines that do things. I'd put this at a 9 on the impossibility scale. I base this mostly on the fact that robotics and automated machinery is usually very specific to a certain task. However, if you change your thinking from "a robot that cleans for me" to "machines that clean different surfaces" then the problem becomes much easier, probably around a 5 on your scale. Think a Roomba for the floor, an automatic shower cleaner for the shower, etc. It's a lot easier to make machines that do one very specific, repeatable task rather than a general purpose robot (which is probably why they aren't very common). Microcontrollers are dirt cheap and easily programmable, so I see your best route to getting a cleaner bathroom to break up the specific tasks to dedicated machines. That also has the benefit of breaking the development into smaller and more easily managed chunks.
Interesting. So I would have:

Toilet cleaner, tub cleaner, shower cleaner, floor cleaner, counter cleaner, mirror cleaner, etc...

The big drawback to this is that's a lot of robot maintenance. The vacuum is pretty easy, I just dump the dirt into a garbage can when I get home. Add five more robots for each bathroom... I will have to think about this.

I always pictured my solution to this problem like this:

* Everything that is not allowed to get wet or is loose, is stored in a safe place.

* Some 'high-pressure cleaner things' at strategic locations.

* A big fan and a hole in the ground.

This would probably be my solution as well. Although not nearly as sexy (or fun to create) of a solution as a robot, it would sanitize quite well.
Maybe think about building separate robots for each task (tub, etc...) that can be permanently attached to wall or the ceiling near its work spot. Tasks could be accomplished using special arms for each sub-task. A lifting arm, a chemical spraying arm, etc...

It would take the "where am I" "where is the target" out of the robots equation. You could simply hardcode the desired movements into the robot. Then if you wanted to sell them you could build a learning routine into the code so the public could easily use it after bolting it to the walls in their houses.

I gather this is how industrial robots work? I get a robot with a clean slate and then I guide it through the first few attempts at a task, then it does the same thing over and over again by itself.
Need a visualization system to interpret the current status of the 3D space, id tasks, prioritize and execute.

The configuration and the space consumed by the Robot will be the most significant challenge. Need a customized trussing system to enable the robot to move in the 3D space of a bathroom. Most efficient would be a track-based, ceiling housed system--depending on the size of the bathroom--think claw games you see in arcades. This would be a semi-perm install however.

Need a tooling system on a central locomotion/power actuating system. If using one central robot system, the tooling system will allow you to change "heads" between the specialized tasks of lifting lids vs spraying disinfectant vs wiping around corners.

What if it's not mounted in the ceiling? What about legs/tracks that move the arm to where it needs to go. I was thinking a subsystem that identifies object, e.g. "there's the toilet" or "there's the bathtub", then moves the cleaning system closer to the object to be cleaned.

I have a feeling this puts me closer to a 9 on my scale, but then again I feel like there are robots that do this subtask already? Identify target -> move to target. Plus I could cheat and put some sort of clue (RFID/infrared/big shiny sticker), on each object. Then it's just a matter of moving to the right spot.

The manipulation is going to be near impossible at your price point. Remember for each articulation you'll need a motor unless you build a flywheel assembly. That adds to the price really quick.

The programming, if you're just doing it for a single defined bathroom isn't that hard. It's when you get into 'all' bathrooms that the complexity increases exponentially.

I would pay $5,000, perhaps more, to never clean my bathroom again and always have a clean bathroom. My budget is a little bigger for a hobby project. I figure $10,000 - $20,000 for me to prototype something, that's including failures, etc. over 2-3 years. I have no idea how much motors cost, but I'm getting the idea that they are pricey.

Edit: if it's more than this it's not a deal breaker, I just have to rope someone else in, spread things out over more years or something more creative.

You might be able to do it at that price for everything but the toilet. Instead of going big, the design I would use (after only thinking about it for 2-3 minutes) would be to mimic an insect. Go really small and have it be able to adhere to the surface and clean as it went (tub, glass, floor, etc). Use a laser/camera to analyze the surface. The key would be to keep the center of gravity as close to the wall as possible.

On the large side, I would go with a pivoting telescopic arm with variable cleaning instruments. Use a counter weight to balance the robot.

How about a combination of the two? A telescopic arm positions its payload over the given cleaning target, and releases a small cleaning robot tethered on a string. The "spider" has the tech to minutely go over the surface of the target and clean it, while the arm has only the "macro" capabilities.
Maybe a few of these with a Roomba like strategy. Just walk around semi-randomly and clean as you go. Be able to identify non-cleanable surface like wall paper, etc. This would reduce the challenge to creating something that sticks to most surfaces and software plus laser/camera to identify surfaces.

I've never seen a robot that just "sticks" to everything though...

i googled and found this cool robot that cleans your bathroom... sorta like a pool cleaner robot.

http://www.inewidea.com/2009/08/12/8900.html

This looks like it's just a mockup/idea, but intriguing nonetheless. I thought about this approach. I wondered how well a suction system would work and it seems like a failure equals a broken robot.
>I wondered how well a suction system would work and it seems like a failure equals a broken robot.

Have the bot mounted on a tether like a pendulum lamp, it pays out an umbilical, Mission Impossible stylee, and when it reaches the floor it moves on suction cups. It basically belays (sp?) itself like an inertia reel climbing harness. Or optionally it could reel in the line if it "feels" itself begninning to fall. Not infallible but should help.

Or give it airbags?

Mount the Bot on a dual axis cable system similar to a Skycam.

http://en.wikipedia.org/wiki/Skycam

Feed high pressure water and cleaners from overhead.

Allow the bot to move vertically.

Hot air blower for drying.

[edit] I just noticed "seven" said basically the same thing I did.

Like the other poster below, I've written code for electromechanical automation long enough to have some idea of what you're in for.

First consider cost effectiveness: you can hire someone for $30/hour to clean your house. That covers the bathroom and probably another room or two. Nothing you're likely to build will beat that for a few years.

Second: you're looking at it from the "wrong" perspective. Instead of building a robot to clean the bathroom in the way you specified, it's probably easier to build a bathroom that's designed to be cleaned automatically. Imagine towel racks that rotate into the walls to keep them safe, vacuum-augmented drains in the floor, water proof floors and walls and a rotating wash head that can descend from the ceiling dispensing high pressure hot water and detergent. Combine that with high volume air vents, and you can clean the room in less than a minute.

Now, if we venture back into the realm of feasibility, why not a version of the Roomba that only does the floor, but has a scrubber, wet vacuum and washes with hot water and soap. Floor's usually the dirtiest area anyway and you can build that kind of cleaner for a few $100.

A maid would still do the job better and cheaper, though.

I considered a maid but decided it wasn't for me. I was having a hard time finding someone I trusted to enter my house when I'm not there. Then if I did find someone, I figure the turnover for maids is pretty high so I'd be searching again a year later. A maid service is out. They are underpaid and being taken advantage of in too many cases for me to even consider it.

There is a Roomba that sanitizes floors exactly as you described it. It's called a Scooba. I'm getting one.

The bathroom you describe is pretty sweet. It's like the bat cave of bathrooms. I don't think my wife would go for it, plus we rent so that would likely tick off the landlord...but I have no idea why public bathrooms don't do this.

>but I have no idea why public bathrooms don't do this.

IIRC the toilet cubicles in London that descend into the ground have this sort of cleaning system, basically the toilet and wash hand basin are mounted in a "McWash" and the whole things gets jetted down and dried after use (I don't think it would be after every use, just perhaps once a day).

Wet rooms would be perfect for this sort of concept.

I have a scooba and it works well for cleaning floors but seems kind of overkill unless you have a lot of floor to clean. Also I have gone through two sets of batteries as they tend to wear out if not used regularly and stored in the robot. There are some recommended procedures to extend the battery life though so ymmv.
Your second point is spot on... almost. It's still too complex. The key part is "Build a better bathroom". The problems with North American bathrooms, as they are used today, is that they are multi-purpose rooms. You got a bath, a sink, a toilet, a cabinet, our toothbrushes and toothpaste hanging out, towels hanging out, make-up, hair products, etc. etc. etc. What a mess!

Look at Japan where a bathroom is just that: A bath in a room. There's a wash area outside the bath. The floors are tiled and the whole room is self contained for the express purpose of washing yourself and soaking in a relaxing hot bath. Then you have a sink room that often doubles as a change room and may contain the clothes washing machine. This is where you have your personal care products. Finally you will have a toilet in a closet. A completely separate and small room with a toilet. The top of the toilet, where the water fills the tank, has a spout where you can wash your hands before that water goes into the tank. Three separated areas each with a designed purpose. Another benefit? You can be making a real stink on the toilet while the wife is taking a relaxing bath none the wiser. Cleaning such a bathroom is easy. Just hose it down and there are automatic products that can do that. Cleaning the sink area/change room is also easy and a robot would be fine for this application (and Japan loves robots!). Cleaning the toilet area could also be handled by a robot but it would have to be small enough to get in behind the toilet. And that is where a better design for a toilet would be valuable. Maybe better to build a "back of toilet" cover that is nearly as tall as the toilet bowl rim and comes out 1/2 the way from the wall... you know, like they are on airplanes.

I just have to say, since I don't know if you want the robot for the utility, or to just say you built one, but it'll probably be cheaper to hire a maid :P
You can use self cleaning coatings , and then using low pressure flow of water you can clean stuff.

Then you can use a robot walking on the ceiling(mounted/using vacuum) on the ceiling , that can control the angle ,direction and force of water , so you know water flows only down ( assuming your floor is water resistant).

Then you use some scooba like robot to clean the water from floor.

you might even spare the robot , and just use some water pipe the pushes water down , and stick it to places you want the water to flow down to , before you want to clean.

moving stuff from the bathroom: i think that in general "moving stuff" is quite complex. but if the stuff you want to move is is placed on removable plastic surfaces , that have some sorts of easy visual structures to ID by robots(maybe even a small barcode) , this becomes much easier for the robot.