Let's Make Robots!

Any ideas for a homemade outdoor Local Positioning System

Hello all. 

I've been thinking about designing an autonomous lawnmower for a while now. I've pretty much got it all figured out in my head except for how to maintain accurate positioning. I'm figuring I need to have somewhere around 1ft (.3m) error in accuracy. I know how to do kalman filters using odometry, IMU, LIDAR scan matching, etc, but I need something to correct for drift and GPS won't give me accurate enough data, (plus my yard has massive trees covering it). I've started reading about Local Positioning Systems and was wondering if anyone here has any experience with them? 

There seems to be a bunch of different ways of doing it, but the way I think sounds the best is using RF transmit/receivers as beacons, and have a transmitter/receiver on my robot as well, pretty much setting up a miniature GPS network in my back yard. One difference between this and GPS would be that I would measure the round-trip time from robot to beacon, instead of the one-way flight time that GPS does, this way I wouldn't have to worry about time synchronization. 

It would work like this:

-robot sends out a signal and starts a clock

-beacon sees this signal and sends back its unique ID code back

-robot sees this ID code, and then stops the clock. I can calculate distance based on the time it took, and with three or more beacons in range of the robot I can do trilateration to get a pretty good estimate of where I am. 

I haven't figured out if the robot should send one signal for all beacons to respond to, or do them one at a time, that will depend on the speed of my logic device I guess. I'm still in the early stages. 

Anyone have any thoughts...specifically, does this sound feasible? Got any links to related projects? Specifically, I'm only interested in methods that can be used outdoors in noisy environments (IR is definitely out, ultrasonic may not work since it'll be on a lawnmower). 



reference: "GPS-less Low Cost Outdoor Localization For Very Small Devices" by Nirupama Bulusu et al. It gives a great overview of LPS systems, but the system they propose in the paper doesn't sound very good to me. Seems like it would take too many beacons to get decent accuracy. 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

The main problem I can see is that your RF signal round trip time will be very, very short.
Even if a beacon was 100m away, the flight time each way would only be 100m/(3x10^8m/s) = 0.33uS. Not only would the round trip time be very hard to measure with a common microcontroller, it would be extremely hard to measure the small difference between any two beacons.

Yeah, I couldn't plan on using a regular microcontroller for this. I'm not sure what type of hardware I would use, but I know it's possible because people are already doing it...of course price is a big player here. 

When I did some reading on it, I ran across a paper that talked about getting the work done quickly and efficiently. The best plan was multiple bots given an area to cover and then let them mow their area however they see fit.

I am mulling over the idea of having multiple RFID tags in my yard to denote location. I have been thinking it could be useful, possibly in conjunction with other location aids.

You mentioned GPS and issues with trees. What about Assisted-GPS?

Never heard of Assisted-GPS until now. I'll look into it a bit more but at first glance it looks like it could solve the tree problem but not the accuracy problem. 

Ideally I would like to use differential gps (RTK DGPS), but they are very expensive and I haven't found any homebrew versions that look legit.

About the lawn mower in general: My goal is to have a mower that cuts the grass the way I want it to. I'd like to mow the yard once using remote control, while the mower is recording speed and pose data. Then I would llike the mower to be able to play the sequence back and mow the yard the same way I did. This way the yard looks better than those "wire-in-the-ground" robots that run about seemingly random. I would also add a way for the robot to detect if a new obstacle is in the way - then go around it and continue with the path, I'm thinking a lidar push broom, or even just a big bump sensor. If I do use lidar, I can also tilt it up and down so I can check for obstacles as well as use point cloud registration to aid in localization. 

I just thought of another way to improve accuracy of a regular gps. I can borrow a differential GPS from work and create a landmark in my yard (this way I know it's real position within a cm or 2). Then after I return the differential system, I can place a low cost receiver at the landmark. Then I can have a similar receiver on my robot, and send corrections form the stationary receiver to the mobile one! This sounds like it might work well.

I will still look into Assisted-GPS though because I think it may be needed.

This is an old thread, but I came across this paper that was pretty interesting: 

An Outdoor High-Accuracy Local Positioning System for an Autonomous Robotic Golf Greens Mower (you need IEEE access)

Here is the website for the company that did the paper: http://www.precisepath.com/

They use a beacon system using Ultra Sound, Infrared, and Radio (the radio is only for communication / time sync). They also do temperature and wind speed corrections on the Ultra Sound. They get about 3 cm accuracy. The Infrared is used for orientation and the Ultra Sound is used for position. Looks pretty neat, but I think it would still be pretty pricey to recreate it, they use alot of sensors...but each individual sensor is low cost. 

I was building a robotic lawn mower myself, until I came across a deal for a commerical one I just couldn't pass up.

If your robot has a pre-programmed path (Either by remote the 1st time out, or programming the micro for your yard), and it does detect something new in the path, how will it handle that, and how will it know that it went around the obstacle?  I am guessing that is why you want a RF beacon so it knows where it's at? 

I know it seems wrong, but the in ground system and the random paths of the commerical lawn bots really do work and really do work quite well. It takes them longer to mow the yard then a person, but that really isn't important, the goal is "I" don't have to be out there doing it. Yes, every now and then it might miss something, but it goes out every day or every other day or however you program it and it will get everything. They really are quite good at what they do.

But I also wanted something that would tell the bot where it was at in the yard, and I thought about using RFID and taging various locations in the yard.

Safety should be a big concern with a robotic lawn mower, (IMHO much more so then where in the yard the bot is) 1st curious kid that comes into the yard and it could be all over.  Not to meantion small rocks, branches from trees, etc (small things the sensors would not see, and maybe stuff you wouldn't see either if you were mowing yourself)

Remember there is a spinning blade under that bot, I would make it safe before I worried about anything else.

Just my 2 cents worth.