Thursday, February 22, 2007

For Dentworth: Boris V, the floor-sweeping robot




Yes, the floor sweeping robot has been given a name: according to my girlfriend, he is now Boris, and he has gone through several more reincarnations since the first prototype I wrote about. In that time I've tried many different variations - most of them variations on a theme of 'combine harvester style Boris', with a horizontally rotating brush. However, those brushes always got choked up with hair, and the gear trains always picked it up and ground to a halt eventually. I tried a servo-powered, more-or-less static brush which only moved when Boris was backing off from obstructions (so he didn't just shove piles of crud to the walls and leave it there) - but the power consumption on the servos was astronomical for some reason, so I ditched that and went back to motors.

This particular reincarnation, sadly, is already dead and gone to make way for a smaller mini-Boris. I found these wide flat brushes resulted in a mechanism which was too low to the ground and picked up crap - same problem as the combine harvester style - so the current plan has kind of gone full circle, and is using the original brushes from Boris1 (which sit much higher up), albeit on a much smaller chassis and without all the pesky gearing down - which I've discovered was probably unnecessary. Ho hum.

Also I have dark suspicions that this particular Boris managed to kill my wireless router - no mean feat considering he never went within a foot of the thing. But the power cables are under the sofa, and when he went under the sofa it was fine, and when he came out the router had died. Muy suspicious. Still, I don't begrudge him that - the router was always dodgy, and it was with some relief that I went to buy a new one.

Of course, in the six months or so that I've been tinkering with this several low-budget, floor-sweeping robots have come on the market, but that's so not the point.

(sorry about the graininess of the photos - I should have put some more lights on when I took the photos!)

11 comments:

Matt F said...

Funny, the floor looks a lot cleaner in the photos of Boris1...

XXXX YYYY said...

Very interesting looking little buggar, I like that he is small and can go under the sofa, hmmm. not so great about the cable.

XXXX YYYY said...

It's a long shot but could the radio emissions have neutralize the router? We had a problem with a battery backup system jamming the LAN.

Matt F said...

My current theory is that static built up on the floor brushes. Other Borises have been under that sofa and the dratted thing survived. the brushes were the only real innovation on this model. (they also picked up power cables really easily - another reason to go for the bigger brushes, where it's easier for the robot to pull itself out of trouble.)

XXXX YYYY said...

yes, I've heard static charges can destroy delicate computer parts.

Tom Kimber said...

What is Boris' brain like? Does do what he's told by a human overlord, or figure it out as he goes along?

XXXX YYYY said...

Moomingod in control.

Matt F said...

No, I have no overlordship - I turn him on and let him get on with it. My original plan was to put a solar panel on him, turn him on and forget him forever, but as you can see there's a lot of batteries there, and my flat gets almost no direct sunlight, so I still have to charge him up and empty his dustpan.

His brain is the grey, slightly domed part on top. In techie terms, it's basically a couple of programmable PIC chips, so he's really fairly small and stupid. In fact, thanks to my very uncomplicated programming skills, Boris is really, really stupid - he bumbles along in a straight line until he hits something, then he turns around and heads off in a more-or-less random direction. According to Eric Drexler, in a book I read ages ago, this is just as effective a cleaning system as trying to lay down neat lawn-stripes, or following walls, or anything complicated.

My only bit of (minor) sophistication is that every so often he'll vary the amount he turns by - so if he gets stuck somewhere, then after a couple of goes the amount of turn will change and hopefully he'll escape from between the chairlegs, or wherever he's managed to trap himself. So far, that works okay. However, I'm thinking about making the amount of turn dependent on his internal timer - so if he's done a long strip, his turn will be closer to 180 degrees, wheras if he's bumping between two chairlegs, his turns will be smaller. That might backfire, though, so I'm loathe to change it as long as it works!

It's also very difficult to get this system to turn in an accurate, repeatable way. My girlfriend wants me to change Boris into a robot for marking out stages (apparently you put bits of tape on the stage to show the actors where to stand, etc.).In theory it's easy, but the main practical problem (IMHO) is this issue of being able to get an accurate ninety degree turn. Without that, the poor robot will never know exactly where it is, which is kind of fundamental in that situation.

Matt F said...

Damn, I wish I'd thought of that when I was looking for a user name for this place.

Tom Kimber said...

I think this is how the Roomba works - and to be frank, I'm fairly sure I perform housework using a similar heuristic myself.

xandra m said...

Have you noticed that dentworth has deleted her Multiply account??