Well they aren't as good as they could be. I have two robots at home, vac and mow, and as a programmer I can't help myself from being critical. They are so dumb.
I love my robots. They do things so I don't have to. They also produce a deep sense of satisfaction when they just get on with a chore while I have a drink, write a program or watch TV. There is something pleasurable about watching, or just being aware of, an automaton getting on with a job that you hate. But....
Some users are just unreasonable. They don't understand the different approach used by a robot. Both the vac and the mow use a simple randomized algorithm to make sure that they cover the area. This causes innocent users to become irritated when the robot repeatedly misses a spot. In the case of the vac you sit and watch as it scoots by the blob of something on the floor for the tenth time. There is a tendency to believe that it is doing on purpose. The mower is less irritating because the lawn doesn't usually sprout at one particular spot overnight. Even so the random pattern and minute cut leaves the user thinking - is it really doing something or it is just running around the lawn for fun.
Both robots work in a completely different way to a human.
We take a big powerful tool and get the job done in minimum time. The robots are smaller less powerful tools and take their time - after all they have nothing better to do. It is often said in casual reviews that a robot vac cannot beat a good human applied vac. This isn't completely true as the robot gets things cleaner than you could imagine simply by persistence. As long as you set it to clean multiple times it will eventually produce a result that you could eat your dinner off.
The robot mower uses the little and often approach to an even more extreme degree. It runs around a random path and cuts the grass just a little each time. The result is eventually a completely smooth finish.
Both robots are effective at their jobs. But...
The complaints and frustrations of the average user aren't the same as the problems that bug me. I'm very happy with the robot's random algorithm and I'm not irritated that it occasionally seems to miss a spot repeatedly. That's in the very nature of random algorithms.
What gets to me are other things that indicate that, as robots, these two devices haven't really got very far up the evolutionary ladder.
The robot vac for example is a "head banger". It runs around a room and crashes into things. Yes, it has a touch sensor - and it uses it hard and often! If you have a glass on a table, lookout because the repeated bumping can shake it off. And if something can be knocked over the robot vac usually manages it. The robot mower behaves in the same way but it has a guide wire that can be used to keep it away from danger. Of course the fact that it has a guide wire at all is an admission that this is not a very smart robot.
The point is that the common robots that we find in the domestic environment just aren't using very much intelligence at all. You might say that it is a cost factor but when you can get an Android device crammed with sensors and computing power for $50 it seems unreasonable that even the low end devices are so dumb.
So why don't I do something about it?
The point is that these are off-the --shelf domestic robots and what I could make them do isn't relevant. The robot vac does have an API, but without the extra sensors there isn't much that can be done. The robot mower doesn't have an official API, but there is an unofficial hack that is next to impossible to understand.
The real question is where are the open source robot vacs and mowers? An off-the-shelf but open version of either robot would spur development well beyond what hacking and reverse engineering can do.
So what would I do to make things better.
First, more sensors and second, more intelligence.
An ultrasonic distance sensor would stop the vac being a head-banger in a few seconds. Adding some location hardware would mean the random paths of both robots could be replaced by something that looked more systematic. Both robots could remember a floorplan and generally navigate more sensibly.
I'm not saying that getting this sort of more advanced robot right wouldn't take some effort, but it would be worth it.
There may be lots of really impressive robots in You Tube videos but the quality of the robots that have made it into the house isn't impressive. Of course many of the demos that you see aren't a true reflection of the state of the art because they are pre-programmed. When you see robot do something impressive you have to be very careful about working out how generalizable the behavior is. You can program a robot to greet you and shake hands - but will the robot do it if you aren't standing in front of it and what if you move to one side - will it adjust the program?
Most "robots" demos that you see are more like remote controlled vehicles or toys. We are still quite some way from a robot that can do its own planning for even simple jobs. Even a robot to unload the dishwasher is beyond what we can manage at the moment.
The good news is that despite my pessimism about the current state of things you can see that the separate components are there and waiting to be perfected and put together. The future in which domestic robots that do jobs slightly more demanding than vacuuming and mowing isn't that far away.
So our current robots are mostly poor examples of the robot species. This said, I wouldn't part with my two and this is the reason I want better and more rapid progress. My robots might be rubbish, but they have still proved to be essential house and garden mates.