Offline
Newbie
Karma: 0
Posts: 17
|
 |
« on: March 19, 2013, 04:30:30 pm » |
My group is trying to navigate a lawn mower in an open field using one of two methods.
Having two GPS units and using what we are referring to as relative GPS: Essentially we have one stationary GPS that assumes the first point it reads is the point it is at and all other data it receives has error in it. It calculates this error and sends it over to the "rover" so that it may calculate what the error is and subtract it from its own coordinates. We are assuming since the units will be in a 30 m radius the errors received by both GPS will be similar. Is this a correct assumption. Is there a way to get <1m accuracy using 2 GPS units?
The second method is using an accelerometer, gyroscope, and single GPS combined with a Kalman filter. While there is information on combining the accelerometer and gyroscope, I'm not sure how to begin filtering the the GPS into this system.
Any advice is appreciated on how to waypoint navigate our lawn mower with a minimum of 1m of accuracy.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 45
Posts: 1473
|
 |
« Reply #1 on: March 19, 2013, 07:39:18 pm » |
You need marks in the ground to get 1 meter accuracy, or perhaps a IR detection system or a laser beam.
If you are going to use an accelerometer and gyro, perhaps you could add a magnetometer.
|
|
|
|
|
Logged
|
|
|
|
|
Massachusetts, USA
Offline
Tesla Member
Karma: 108
Posts: 6607
|
 |
« Reply #2 on: March 19, 2013, 08:41:20 pm » |
I have read that if you do the Differential / Real-Time Kinematic GPS right you should get accuracy of a few centimeters. I would think that is more than sufficient.
|
|
|
|
|
Logged
|
|
|
|
|
Dubuque, Iowa, USA
Offline
Edison Member
Karma: 15
Posts: 1587
|
 |
« Reply #3 on: March 20, 2013, 12:32:46 am » |
Essentially we have one stationary GPS that assumes the first point it reads is the point it is at and all other data it receives has error in it. It calculates this error and sends it over to the "rover" so that it may calculate what the error is and subtract it from its own coordinates. After you try this please come back and tell us how well it worked. I'd considered trying it out myself but ... too many projects.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 17
|
 |
« Reply #4 on: March 20, 2013, 10:13:29 am » |
So far it seems that the errors that each GPS gets are independent of each other. At about a foot apart our Due calculates the approximate distance between the two is anywhere between 9m and 90m which makes no sense. Worse case scenario is that they should read about 20m apart assuming each GPS has 10m accuracy and each is assumed to be right next to each other at first reading then eventually drifts to the farthest part away of its accuracy.
|
|
|
|
|
Logged
|
|
|
|
|
Massachusetts, USA
Offline
Tesla Member
Karma: 108
Posts: 6607
|
 |
« Reply #5 on: March 20, 2013, 11:06:47 am » |
The first locations from a GPS might not be as precise as subsequent fixes. They often give you a less accurate answer in order to give you a fast answer.
What I think I would do is send the base station location to the mobile station and give an indication when the two agree within some reasonable margin (like 100 cm). Then switch to Differential GPS.
A possible alternative is to get accuracy data from the base station GPS itself. Then you can throw out data until accuracy gets into the expected range.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 17
|
 |
« Reply #6 on: March 20, 2013, 01:21:44 pm » |
After being outside a while the readings went from about 9m to 0m when they were about 1m apart. I think it's safe to assume the two GPS receive different errors therefore making the an infeasible solution. You keep mentioning differential GPS but I don't know how that would work, is it significantly different than what I am trying to do?
|
|
|
|
|
Logged
|
|
|
|
|
Massachusetts, USA
Offline
Tesla Member
Karma: 108
Posts: 6607
|
 |
« Reply #7 on: March 20, 2013, 03:28:12 pm » |
You keep mentioning differential GPS but I don't know how that would work, is it significantly different than what I am trying to do?
Not if you are doing it right. "Differential GPS" uses a fixed ground station to provide error data to moving stations. Are your two GPS modules the same make, model, and version?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 17
|
 |
« Reply #8 on: March 20, 2013, 05:05:09 pm » |
Yes exactly the same. How long does a base station need to gather data before it has a known location?
|
|
|
|
|
Logged
|
|
|
|
|
USA
Online
Jr. Member
Karma: 1
Posts: 70
If you can't fix it with a hammer, it must be an electrical problem.
|
 |
« Reply #9 on: March 20, 2013, 10:49:06 pm » |
Don't you need a surveyed point for the GPS to compare with to do differential?
|
|
|
|
|
Logged
|
|
|
|
|
Massachusetts, USA
Offline
Tesla Member
Karma: 108
Posts: 6607
|
 |
« Reply #10 on: March 21, 2013, 06:37:13 am » |
Don't you need a surveyed point for the GPS to compare with to do differential?
You should only need a surveyed position if you want absolute coordinates. If you just want relative coordinates ("Where am I relative to the lawn boundary?") I think you just need a fixed location that both agree on. I would think that once both units have current ephemeris data they would agree on where they are. If the base station is going to be in the same place each time you could calculate a long-term median position to use as the 'known' position.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 17
|
 |
« Reply #11 on: March 21, 2013, 09:06:41 am » |
johnwasser,
could you give a short explanation of the process you are describing.
Do we put the GPS units in the same location until they agree on a coordinate then start doing calculations? Or are we surveying for a set time until they have a good average location and then doing locations. Things are clearing up and we are doing a test today. Your advice is very helpful.
|
|
|
|
|
Logged
|
|
|
|
|
Massachusetts, USA
Offline
Tesla Member
Karma: 108
Posts: 6607
|
 |
« Reply #12 on: March 21, 2013, 03:09:18 pm » |
RTK (Realtime Kinematics) is another way to get accurate positioning from a GPS. It takes more computer power than an Arduino can supply but a Beagle Board (or maybe a Raspberry Pi) can run it: http://blog.makezine.com/2009/11/12/diy-real-time-kinematic-gps/
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 9
Posts: 839
|
 |
« Reply #13 on: March 22, 2013, 12:59:28 am » |
I don't think you can do "differential GPS" just with two regular GPS modules. You need a special device which is in the thousand dollar ballpark rather than the $50 ballpark.
I have done a bunch of experiments with two regular GPS modules to see if I got a more precise location from them, and the answer seems to me, to be no. You do get some situations where one has a fix and the other doesn't have a fix, but in terms of precision, not much improvement over the normal position distribution noise.
|
|
|
|
|
Logged
|
|
|
|
|
Texas
Offline
Jr. Member
Karma: 1
Posts: 97
Eso es lo que es
|
 |
« Reply #14 on: March 22, 2013, 12:18:41 pm » |
Perhaps you could use one of these to cover the differential aspect. https://www.sparkfun.com/products/10724I would imagine with some basic calculus programming you could at least know fairly accurately your relationship with your starting point or any other via you have exact coordinates of. I read quite extensively about this IMU until I realized the accelerometer wasn't accurate enough for my project. Seems like a pretty good product.
|
|
|
|
|
Logged
|
|
|
|
|
|