Depends on how thoroughly the toilet needs to be cleaned, of course, but here’s some rough idea of the procedure:
-Look at the toilet and determine if it needs cleaning, and what kind, and where. You can’t always assume a toilet is made of white porcelain, with its implications for simple, visual hacks to toilet-cleaning.
In any environment where a lot of dust accumulates, the toilet will periodically get a layer of scum and dust (which isn’t a contamination risk AFAIK the way leftover, ah, residue might be but is definitely visually-unpleasant, and well outside the scope of “clean” for most people). This will mostly affect the lid and the tank-top. In low-dust environments it may never come up at all—better hope the toilet-cleaning-robot designer understands that geography makes a difference!
Residue inside the bowl can be effluents, or just mineralization (the pinkish-orange colour you sometimes see inside of porcelain bowls). The internal angles and shapes of toilet bowls vary; you have to adapt your basic “brushstroke/cleanser-application” procedure to the actual shape, which may not be plannable ahead of time.
There’s the floor around the toilet and its base, as well! This can get pretty messy in some situations, whether from settled dust, spilled effluents or mineralization. There are usually bolt covers protecting the bolts that hold the toilet down, ones that mustn’t be dislodged during cleaning (and won’t respond the same way to pressure as the substrate they rest on; they’re designed to be removable by unassisted human hands to make unscrewing the bolt easy).
There’s the bit where the lid and seat attach—this has hinges which may be made of another material yet, or they may be covered.
The toilet might not be porcelain—and if it is, it might not be white. The seat color might not match the base, the toilet might have a shag rug over the lid or on the tank top. Some people stack things on top of their toilets; these must generally be removed and yet not thrown away, and placed back when they’re done. And it’s hard to make simple algorithms for this—if your toilet-cleaning robot shortcuts by comparing against a template of “porcelain white” and inferring the type of mess by probabilistic colour-matching (effluents, mineralization and dust usually look different), what does it do when it encounters a white porcelain toilet, mineralized, with a hardwood seat and a black shag carpet on the tank top, with some magazines stacked there?
Basically there’s a huge number of trivially-demonstrable, real possible variations on the basic abstract idea of “scrub toilet surface so it is clean in appearance and not covered with contaminants.” A human faced with three wildly-different toilet designs can probably make this all work out using just some spray cleaner and a brush, clearing off the items as needed, and trivially vary the angle of their arm or whatever to get at difficult spots. You need to be flexible, both mentally and physically, to clean a toilet under the full range of possible conditions for that task...
Sewing a new hem, one that wasn’t there before, is also more complex than it sounds—or rather, there’s a lot of embedded complexity that’s not obvious from the surface, and that’s trivial for a human but surprisingly easy to screw up in terms of designating a flowchart or whatnot to build program around.
Depends on how thoroughly the toilet needs to be cleaned, of course, but here’s some rough idea of the procedure:
-Look at the toilet and determine if it needs cleaning, and what kind, and where. You can’t always assume a toilet is made of white porcelain, with its implications for simple, visual hacks to toilet-cleaning.
In any environment where a lot of dust accumulates, the toilet will periodically get a layer of scum and dust (which isn’t a contamination risk AFAIK the way leftover, ah, residue might be but is definitely visually-unpleasant, and well outside the scope of “clean” for most people). This will mostly affect the lid and the tank-top. In low-dust environments it may never come up at all—better hope the toilet-cleaning-robot designer understands that geography makes a difference!
Residue inside the bowl can be effluents, or just mineralization (the pinkish-orange colour you sometimes see inside of porcelain bowls). The internal angles and shapes of toilet bowls vary; you have to adapt your basic “brushstroke/cleanser-application” procedure to the actual shape, which may not be plannable ahead of time.
There’s the floor around the toilet and its base, as well! This can get pretty messy in some situations, whether from settled dust, spilled effluents or mineralization. There are usually bolt covers protecting the bolts that hold the toilet down, ones that mustn’t be dislodged during cleaning (and won’t respond the same way to pressure as the substrate they rest on; they’re designed to be removable by unassisted human hands to make unscrewing the bolt easy).
There’s the bit where the lid and seat attach—this has hinges which may be made of another material yet, or they may be covered.
The toilet might not be porcelain—and if it is, it might not be white. The seat color might not match the base, the toilet might have a shag rug over the lid or on the tank top. Some people stack things on top of their toilets; these must generally be removed and yet not thrown away, and placed back when they’re done. And it’s hard to make simple algorithms for this—if your toilet-cleaning robot shortcuts by comparing against a template of “porcelain white” and inferring the type of mess by probabilistic colour-matching (effluents, mineralization and dust usually look different), what does it do when it encounters a white porcelain toilet, mineralized, with a hardwood seat and a black shag carpet on the tank top, with some magazines stacked there?
Basically there’s a huge number of trivially-demonstrable, real possible variations on the basic abstract idea of “scrub toilet surface so it is clean in appearance and not covered with contaminants.” A human faced with three wildly-different toilet designs can probably make this all work out using just some spray cleaner and a brush, clearing off the items as needed, and trivially vary the angle of their arm or whatever to get at difficult spots. You need to be flexible, both mentally and physically, to clean a toilet under the full range of possible conditions for that task...
Sewing a new hem, one that wasn’t there before, is also more complex than it sounds—or rather, there’s a lot of embedded complexity that’s not obvious from the surface, and that’s trivial for a human but surprisingly easy to screw up in terms of designating a flowchart or whatnot to build program around.
Bad news about that.
I think by far the most important test of the toilet-cleaning AI is the following: what does it do when it encounters something that is not a toilet?
Attach brain slugs to it.