I actually own a useful robot. Amazing. I've got some useless ones too, but this one actually does something that number one wife thinks is good. It does the vacuuming. You plonk it down in the middle of a room, give it a kick and off it trundles, bouncing off furniture and cleaning as it goes. And it does a creditable job. To be sure, we did have to clear a bit of junk off the floor to give it a free run, and it does take longer than I would, but the evidence in the dust collector is clear, it cleans.
We set it loose in the bedroom and it rumbled about for a while. When I caught up with it later it was coughing a bit, and upon inspection it had picked up a lot of dust (it had been wandering about underneath things), an umbrella cover and 20 pence. I emptied it all out, charged the battery and off it went again. The device itself is beautifully engineered. It bristles with sensors so that it really can follow a wall, detect and manage collisions with obstacles and avoid falling down stairs (it is especially good at that one). And it has a bunch of brushes and proper filters and stuff. It really is a vacuum.
The funny thing is that I didn't really select it for its cleaning prowess. I was more interested in the interfacing potential for the Micro Framework book that I'm presently writing. The robot exposes a software interface into which you can plug a computer. It works too. I've had C# programs in a Micro Framework telling the robot what to do, which is very nice. But now number one wife wants it to clean the conservatory, so I'll have to get on with something else.