Navigation system for autnomous lawnmower

Hi. I want to make a navigation system that is cheap and precise. Precise GPS devices are too expensive for me so I am wondering what Parts can I use and how to use them in order to create a precise navigation system.

I am thinking of using a accelerometer to calculate distance. Ultrasonic sensor to help maneuver around objects and a compass to make sure the lawnmower always follows a correct path even when taken off path by maneuvering around an object. Is this a possible way for a navigation system? Also what compass do you recommend me using?

(I’m thinking of using this accelerometer “Will this work?”) https://www.adafruit.com/products/1231#Description

I don't think GPS by itself is accurate enough. I've heard of farm tractors using GPS, but I assume there is some sort of local reference to calibrate the GPS or some sort of additonal "local positioning system". Maybe you can research how they do it?

It also sounds dangerous to cats & dogs & small children! :D Have you ever seen the movie Maximum Overdrive? :D In the movie, I don't think the lawnmower "gets" anybody. But in real life, the story is that a member of the crew lost an eye while filming. (It's supposed to be Stephen King's worst movie, but I like it... It's funny and if you like AC/DC, you'll enjoy the soundtrack.)

anon1337: I am thinking of using a accelerometer to calculate distance. Ultrasonic sensor to help maneuver around objects and a compass to make sure the lawnmower always follows a correct path even when taken off path by maneuvering around an object. Is this a possible way for a navigation system? Also what compass do you recommend me using?

What you are describing is called a "dead reckoning" system. This won't work for any long periods of running (though can be useful when other, more accurate methods aren't available - such as when you are using DGPS and suddenly find yourself without signal).

You might want to keep such a system as a backup option, though.

There aren't many other options available - that at least are simple. You could always try some form of SLAM, if you are so inclined (perhaps building a map using sonar, IR, and cameras) - note that this takes it out of the Arduino range of microcontrollers (you would probably need to feed the sensor readings back to a PC or something, and integrate from there).

Another option might be to (somehow) place a "random" layout of magnets on the lawn (small rare-earth magnets epoxied to plastic golf tees), and then add a ring of hall-effect sensors to the robot to detect the magnets as they passed over, ultimately building up a map that way (plus using some SLAM techniques to build up a probability distribution of the map so you can roughly tell where you are at).

Alternatively, you could set up closely spaced magnets as a "trail" (kinda a passive form of a buried wire - which I assume you are trying to avoid?)...

If there aren't any obstacles in the way around the robot - you could set up ultrasonic receivers around the yard, then mount a spinning transmitter on the robot - and ping; the angle of the transmitter to the receivers plus some triangulation could give you a rough location estimate.

No single one of these solutions will give you anything perfect or accurate, but a combination can ultimately help.