# GPS relative positioning

I have a set of 4 rovers crawling on the ground, each of them equipped with a standard GPS positioning system. The rovers start together from a known position. Each rover is locating itself via GPS.

I command the rovers to move 1 meter straight, with a control loop on the GPS positioning. GPS absolute accuracy is larger than 1 meter but how do they behave relative to each other?

Atmospheric conditions can influence the absolute accuracy but the 4 rovers are very close to each other (let's say in a range of 10 or 20 meters). Shouldn't all the GPSs on board be influenced in the same way?

If that is true, the relative positioning should be kept and after crawling for 1 meter forward, the relative position of each rover should be the same. Is that correct?

• Interesting question. I don't have any idea, but that this could be an interesting situation to make experiments and find by yourself. I suggest you do tests without the rovers. First: place all of them in the same place, and check the readings for a while: are all the readings the same, all the time? Second: place all the receivers about 30m apart, and check the readings for a while. The readings of a standard GPS changes a few meters from time to time. Compare the relative changing of the four units: the changes are similar? The results could help you to develop an alghorithm for the rovers. Nov 17 '19 at 23:03
• That's a good suggestion .. I would have done this but so far I have only 1 GPS : (( the scenario I have depicted is only hypothetical for the moment. Hopefully, someone else has done this experiment yet ... Nov 17 '19 at 23:13
• Given sufficient view of the sky, what you want is quite possible with high end differential GPS units - even 20 years ago surveyors or people studying the flex of airplane wings were getting few-millimeters precision between receivers comparing phase details of their received signals - but it's not going to work with cheap modules from your favorite e-commerce site. Nov 17 '19 at 23:31
• Hopefully, someone else has done this experiment yet ... do not expect your results to be the same Nov 18 '19 at 0:31

Atmospheric conditions can influence the absolute accuracy but the 4 rovers are very close to each other (let's say in a range of 10 or 20 meters). Shouldn't all the GPSs on board be influenced in the same way?

Yes and no.

Yes, each signal from each individual satellite will induce the same satellite/receiver distance estimation error (due to propagation delay uncertainties and satellite position uncertainties) for all 4 rovers. If all rovers are using the same satellites to determine their positions, expect the position calculation errors to be similar, and the accuracy of their relative position to be pretty good. I'm assuming there are no significant reflections involved.

No, on stand-alone GPS receivers you have no control over which satellites are being used for the location calculation. You need at least 4 satellites, but 8 or more can be used if you have a good receiver and unobstructed sky view. In practice, the list of satellites being used in the calculation changes over time: satellites with borderline signal strength can be dropped or added to the list dynamically. If the lists of satellites used in two different rovers are different, you can no longer assume that the same errors will affect the position calculation on both receivers equally and the relative position accuracy will suffer as a consequence. Also keep in mind that the satellites are not stationary and over minutes new satellites will rise over the horizon while old satellites will disappear, what can make the performance of your system time-of-day dependent.

Technically, the best solution possible is to use RTK, as @AndersPetersson recommended. This technique was conceived to provide incredible relative position accuracy. Typically, you'll need a static reference station and a RTK-capable receiver on each rover.

A middle ground solution would be to use GPS assistance (A-GPS) if your receiver has that capability. The idea is to obtain correction parameters from the internet that will improve the absolute position accuracy of each individual receiver, what will indirectly improve the relative position accuracy among the rovers.

• Very good answer. I used to design relative GPS systems in 2000, there was few satellite and results were very good. Now that we have ten time more, the results might not work as well. What about reducing the number of visible satellites by hardware?Shielding the antennas with a 45° cone would make it mode "directional" still leaving enough satellites visible for positioning. May 18 '20 at 17:31

My experience is that the unfiltered GPS position with low quality GPS antennas may jump around at least 10-20 m, probably due to signal reflections. It would be interesting to hear a more qualified answer, but this observation alone makes me believe that GPS receiver quality is a limiting factor, and that a general answer to your question isn't possible without more information on the hardware.

RTK GPS would probably help for you as it specifies centimeter-level precision. The price has come down a lot lately. For example https://www.sparkfun.com/products/15005

• RTK is cheaper lately but still quite expensive if compared to what standard GPS cost. Also, you need to have a reference RTK station and a link to the robot for the RTK correction is required to send in real-time corrections. This will increase the final cost quite a lot. I think 10-20m is really a lot. Merging GPS data with telemetry can somehow improve the performance and generally, I would expect a pure GPS signal jumping in a max range of 1-3 meters with a good GPS (for example the U-blox M8N GLONASS/GPS/Beidou). But if that jump is in common then the relative position will be kept ... Nov 17 '19 at 23:03

Is seems you are trying to do something akin to differential GPS, and roll it your own way, which is a very interesting and tricky problem. My main concern would be this presumption:

Shouldn't all the GPSs on board be influenced in the same way?

Yes, if there are no reflections.

If there are buildings around, you'd notice that the error varies in unpredictable ways which depending on how the GNSS signals get bounced off flat surfaces around. The proper term for this is multipath, and GPS modules are notoriously bad in what is called an urban jungle (i.e. street level, surrounded by skyscrapers).

If your rovers are out in a field, then the task seems more tractable.

# Alternative solution

You may want to look into time-of-flight radio modules like the DecaWave DW1000. For your four rovers you'd get the 6 rover-to-rover distances and then it's a geometric construction problem (the four points are reconstructible up to rotation and symmetry).