Robot Positioning Systems?
CyberLeader asks: "As a hobby I've been developing a small robot to mow the lawn (giving me more precious hours to read Slashdot, of course). The intended brain of the 'bot is a small Linux-based on-board PC. To be able to operate the 'bot as desired, the PC needs to be able to accurately identify the robot's location to within about 10 centimeters, but I can't find any decent system to do this that falls within my cost constraints of a few hundred U.S. dollars. The position doesn't have to be global; it can be relative to radio beacons or similar devices placed around the yard. Any suggestions?" Ah, the mischeif I could have caused if I had had one of these as a teenager...
it might be possible to do what you are thinking by setting up a few small devices around the yard that would emit a radio signal, thereby telling the robot its relative position in the yard. :P
i know there are systems for yards with a similar setup. although the sgnals are used not to control or give a position, but to keep a dog within the specified area (it will shock the dog if it tries to leave)
Stop over-analyzing your analizations
I'm no roboticist (though few of us are), but is there a way for the robot to tell what kind of terrain it's on? Tell it to move around randomly, but if it hits asphalt turn back. This could make for a messy lawn, but the only reason you're doing this is to freak out the neighbors I assume.
Another thing might just be to program very precise geometrical measurements into the bot. Go forward 10 feet, make a left turn, go forward 1 foot, left turn, forward 10 feet, etc.
--
I'd say something about Cliff having misspelled mischief, but that would just about guarantee that I'd misspelled guidance.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
Firstly, please be very careful. I agree totally with the above posts in that you shouldn't be running something like this unattended. A lawnmower with blades can be a dangerous device if it goes where it isn't meant to (like onto a road), or if it runs over something and turns it into a projectile (like a golf ball). Remotely, I don't think that you can account for these possibilities. More importantly, you could be held accountable for anything the robot does while you're not watching (even if it runs over a neighbour's garden, or their cat). Just something to think about, FYI.
The geek in me, however, has thought about the same idea. I think it's a neat idea and I've always wanted to try it myself. One of my ideas was to lay out a "track" of sorts - a wire through which runs some low current which you can perhaps have the robot follow, perhaps by detecting the magnetic fields or something. Maybe I'm f.o.s. since I have no idea how to implement this (I'm only a programmer - no electronics experience), but Lego Mindstorms gave me this idea when the book encouraged me to try to build a robot that follows a black line on the floor. In this case, of course, you use the optical sensor to have the robot turn one way if it sees black, and the other way as it sees white. The end result is a robot which jerkily makes its way round the oval they provide on a poster-sized sheet.
So instead of trying to use radio positioning or precise measurements, maybe there's a way to lay out a track that it can follow. A bit of work, but if done properly you'll only need to do it once, right?
You can accomplish anything you set your mind to. The impossible just takes a little longer.
Place several radio beacons around and in the intended area. Have each transmit on a slightly different frequency. If the robo-mower knows the frequency that the beacons are transmitting at, knows the frequency it is receiving the beacons on, and knows the speed at which it is moving, it should be able to use the doppler effect to figure out where it is compared to the known locations of the beacons. (At robo-mower speeds, though, the doppler shift may be to small to measure accuratly within the confines of a robo-mower.) This would also add a degree of safety. If the robo-mower detects that it is moving away from all of the beacons, it would shut off immediatly (and somehow call for help) since it is probably outside the intended area. As I said a sentance or two ago, the trick here would be to properly detect the very small doppler shifts without relying on expensive (both in money and power) hardware.
Come test your mettle in the world of Alter Aeon!
At a place I used to work, used a system developed by MacLeod Technologies, the CONAC System. They used to have a web page, but I can't find it. Very small company, snd I don't know if they are in buisness anymore. Here's a PDF that has a bit of a description. A google search on CONAC gets a few more hits. It is very accurate over a limited area like a yard- it works like this: Spin a laser that has a somewhat fan shaped beam, with the axis of the fan vertical, and sweeping 360 degrees of azimuth. Place (laser) recievers at known, fixed locations around the perimeter of the area. When the laser sweeps over a beacon, record the time. The time betwwen each reciever responding will give you azimuth to each reciver. If you have a reciever on the robot itself, you know which direction your robot is pointing, in relation to the array of recievers. With all this information, you can derive position and azimuth of your robot.
Make sure you have >> 3 recievers so you can have an overdetermined solution, so that if one reciever is blocked by a person, tree, or errant butterfly, you can still determine the position.
This *does* work, as long as you don't get too far from the sensors. The farther the sensor is away, the less accurate the position solution. You might want to implement multiple sorts of sensors, including compass and whatever else you can, and feed them all as inputs to a Kalman filter, which should give you a more robust solution.
If you'd like to talk about this, de-obfuscate, and drop me an email. I'd love to have a system like this for my *own* lawn.
The obvious solution to the danger of letting this operate unattended is to take the blades off!
Sears, and probably others, sell a lawnmower using nylon string trimmer blades.
You might even be able to adapt a normal string trimmer for this.
Having seen stories about robot mowers in the past, I revisited them to see how they accomplish this. This one uses a perimeter wire to tell the mower it's hit the boundary, plus onboard sensors to sense obstacles. Same for this one. I did a number of google searches for robot position sensing and didn't come up with anything that would represent a drop-in solution. Some folks are experimenting with visual clues, others with mathematical means to 'estimate' position (I don't know about you, but no mower of mine is going to figure out where it is by 'estimating'), while others are experimenting with sonar. I suspect that you aren't going to find a commercial product that will allow the accurate positioning you're after, at least not at the price goal you've set. Looks like you'll have to be a pioneer. Good luck.
"If I have seen further than other men, it is by stepping on their glasses." - Michael Swaine
find a construction company that has fallen on hard times from a grand state a few years back. See if they have any laser transit / positioning systems available (the ones I saw were made by Spectra Physics, there were other manufacturers, too). New, they'd be way too expensive for you, used you might can find a deal.
use one of those invisible fences that people use to keep their dogs in, but instead of shocking your lawnmower, just have adjust course to stay inside it's boundries
I post links to stuff here
If you really want to go cheap, just tie the lawn mower to the tree in the yard. As it circles the tree, it cuts smaller circles. If it does run over the cat, it was already dead.
The truth shall set you free!
Cost and coverage area are biggies! A US coast guard type receiver is more than US $400 and must be connected to a GPS reciever that will accept the differential signal. The signal is in the 300Khz band. You may need to shield the ignition on the lawn mower to prevent ignition noise interferance with the receiver. The USCG signals do not cover all 50 states. Unless you live near a large navigable waterway you are out of luck on this cheap solution. The other solutions are satelite based. While they are more precise, they are by subscription only. (expensive)
The truth shall set you free!
Three IR LED beacons, mounted on the gateposts. Each one bleeped a simple ID code (TV remote chipset, with a button permanently down).
On the two 'bots, were scanner heads. These were dead simple, a stepper to rotate it and a pair of IR detectors and lenses as a simple 1-axis discriminator. By stopping, then scanning the head around a bit, the bot could take a bearing on each of the beacons. Some triangulation and it then had a position fix. Crude, inefficient, lots of software, but the hardware was cheap & easy.
Control was a couple of nested state machines.
One beacon had few bits of data link in the code as well; just a simple "Wander around the garden", "Come home now", "'Bot A get into the kennel" code.
"Home" was a kennel in the conservatory, with the coded beacon mounted directly above the door. When "homing", they just did a home on the beacon until they were nearby to it. To get them through the kennel's bot-flap there was a buried wire inductive guide. Each bot 'was called through in turn, at which point it homed as close as possible to the beacon, until it picked up the wire field and then line-followed that through the flap. Indoors there were actually two separate wires, so the 'bots could park side-by-side and charge up.
The 'bots themselves were just little diamond chassis, with a single powered wheel each side and a castor at each end. In the middle was a plantpot (that being the function of the whole malarkey).
Battery life was OK, as they didn't move much. They weren't mobile 'bots, so much as randomly re-positioning on an intermittent basis.
Stuff they should have had:
Dallas Semiconductor's TINI board is cool for this sort of thing.
Er, I'm sure it doesn't run a typical lawnmower attachment with a high-speed blade or anything. At least, I hope it doesn't run a typical lawnmower attachment with a high-speed blade or anything. A small slow crawling lawnmower doesn't need to be dangerous.
A commercial product that has been doing this for years now runs on solar power, all the time, and follows a random pattern stopping when it reaches the wire.
If you want, you could put tiny arms holding tiny tweezers and cut the grass by tearing out six bites from each blade of grass...
Thanks for the responses so far. Some clarification to some of the points raised:
Software Shouldn't Suck
E-mail: frank at jacquette dot spamless com (remove the spamless!)
Radio just isn't going to cut it for this. Simple and reliable 'bot positioning at this time needs an absolute position indicator. Open the box, place the 'bot on-site, boot it up for the very first time and it should be able to work out where it is. Anything that requires it to be placed in a "known position", then track movement from their is just too painful to contemplate.
Doppler radio systems might deliver some velocity information (but it's difficult), but it cannot do absolute positioning.
Radio multi-station phase-tracking systems were developed during WW2 (Gee, Oboe) to give absolute positions. The trouble with these is that they only work over long distances. They work by timing path length differences between fixed stations, so they can only work if the path lengths differ by more than the shortest time interval you can measure, multiplied by the speed of light. With radio wavelengths in a garden - forget it !