heyarn:
My objective is to build a robot that will mow the lawn on its own, and not miss a spot. The first thing I need to figure out is how to make the robot aware of its location. GPS is too inaccurate. I want it to be accurate within a quarter inch.
A quarter inch is pretty optimistic, but you could probably get within +/- 6 inches with the proper sensors and a good SLAM algorithm. It won't be easy, and it won't be cheap.
First - you'll likely want to implement some kind of perimeter barrier to establish an "outer boundry" line for the robot. You'll want this boundry line to be either active (buried perimeter wire with a signal - a hacked wire toning trace tool set from Harbor Freight might work well), or passive (perhaps a bunch of buried rare-earth magnets, and use a hall-effect sensor to detect them?).
For your on-board sensors, you'll probably want a combination of ultrasonic sonar, as well as some kind of optical distance sensor(s). Unfortunately, such sensors do not come cheaply. You could try a Sharp IR sensor on a panning servo, but what you really want is LIDAR. Cheapest 2D, 360 degree LIDAR is going to be the sensor from a Neato XV-11 (you'll have to buy the robot and rip the sensor out - it's about $300.00-$400.00 USD; trust me, that is cheap for such a sensor). The downside, though, is that the sensor wasn't designed for outdoor use, so it might not work well in such conditions (ie, sunlight, etc). Then again, neither will the Sharp IR, likely.
You'll also want a sensor (or more) to detect cut vs. un-cut grass; this will allow you to turn off the blades of the robot while driving over areas that don't need cutting (unless your blades are engine powered - then it won't matter). Such a sensor might be hard to find; I've been looking for one. The best I can think of would be a very fast acting humidity sensor and/or temperature sensor (tall, uncut grass should have a higher humidity than short/cut grass, as well as non-grass), but such sensors with fast response times seem either impossible to find, or would likely be too expensive. I've also thought about color sensors, as well as cameras (and machine vision systems).
You might also want to add some kind of "home position" and some quadrature encoders to the wheels, to give you another bit of "dead reckoning" data (perhaps a compass sensor as well to indicate heading). If you can provide beacons, too, and get some kind of distance information from them, all the better.
Then you need to integrate all of this data, and pass it into your SLAM algorithm; over time, your robot will build up a map of its surroundings and where it /thinks/ it is located within those surrounding, with a certain degree of probability (it will never be 100 percent sure of its location, but ultimately, that doesn't matter - heck, none of your sensors will be supplying 100 percent accurate readings anyhow).
Good luck solving this problem; it won't be easy. I won't say "impossible", just don't expect it to be inexpensive, or for it to be done in a weekend (heck - you might find yourself working on it for a long time)...