I’ve been busy with some consulting projects recently so it’s been a while since my last post but I’m finally caught up and had some time to write something. I thought I would describe an experiment I did to both try out the “fixed” mode in RTKLIB and also provide some insight into the composition of the errors in the pseudorange and carrier phase measurements in the u-blox M8T receiver.
The “fixed” mode is an alternative to “static” or “kinematic” in which the exact rover location is specified as well as the base position and remains fixed. The residual errors are then calculated from the actual position rather than the measured position. I describe it in a little more detail in this post. It is intended to be used as a tool to characterize and analyze the residual errors in the pseudorange and carrier phase measurements.
The basic idea in this experiment was to connect two M8T receivers to a single antenna and then compare residuals between the two receivers. I first looked at the solution using one receiver as base and the other as rover (the zero baseline case) and then compared solutions between each receiver and a local CORS reference station about 8 km away.
The M8T is typically setup to use an active antenna for which it provides power on the antenna input. I was concerned about connecting the two antenna power feeds together, so to avoid this, I added a 47 pf capacitor in series in one of the antenna feeds to act as a DC block. In the photo below, the capacitor is inside the metal tape wrapped around a male to male SMA adapter. I cut the adapter in half, soldered the capacitor to each end, then wrapped it in metal tape as a shield.
The receivers are from CSG and each one is connected to a Next Thing CHIP single board computer, which logs the data and transmits it over wireless to my laptop. They are very similar to the Raspberry Pi data loggers I described in a previous post, but the on-board wireless makes them more convenient to use. At $9 each, they are also quite affordable, especially since they do not need micro SD cards like the Raspberry Pi Zeros. They also have a built-in LiPo battery connector which can be convenient for providing power., although they can also be powered over the USB connectors. They are also linux based, so setting them up is very similar to the instructions in my Raspberry Pi post.
I first looked at the zero baseline case where I used one receiver as base and the other as rover. In this case the two receivers are seeing exactly the same signal from the single antenna. Any error contributions from the satellites, atmosphere, or antenna should cancel and the only contributor to the residual errors should be from the receivers.
I collected about an hour of measurement data from my back patio. It is next to the house and nearby trees so as usual, the data quality is only mediocre and will include both some multipath and signal attenuation. I prefer to look at less than perfect data because that is where the challenges are, not in the perfect data sets collected in wide-open skies.
Here are the residuals for a high elevation, high signal strength GPS satellite. Standard deviations are 0.24 meters for the pseudorange and 0.0008 meters for the carrier phase.
For a lower elevation GPS satellite with low and varying signal strength, the standard deviations increased to 0.46 meters for the pseudorange and 0.0017 meters for the carrier phase. Notice how the residuals increase as the signal strength decreases as you would expect.
The GLONASS satellites had noticeably higher residuals. Here is an example of a satellite with high elevation and reasonable signal strength. The standard deviations were 1.02 meters for pseudorange and 0.0039 meters for carrier phase, more than twice the GPS residuals.
I’m not quite sure how relevant it is, but the ratio between the pseudorange residuals and carrier phase residuals in each case is roughly 300, the same value I have found works best for “eratio1”, the config file input parameter that specifies the ratio between the two.
RTKLIB also estimates the standard devations of the GLONASS satellites measurements at 1.5 times the standard deviations of the GPS satellites which is less than the difference I see in the example above.
However, my numbers are for only the receiver components of the measurement errors, I’m not sure exactly which components the RTKLIB config parameters are intended to include.
For the second experiment, I calculated solutions for both receivers relative to a CORS reference station about 8 km away. In this case, I was curious to see how close the two solutions are as they will have common satellite, atmospheric, and antenna errors but will differ in their receiver errors. The plot below shows the residuals for a GPS satellite from each solution plotted on top of each other. As you can see the errors are quite a bit larger than before and the correlation between the two receivers is very high. Based on the frequency of the errors, I suspect they are dominated by multipath which will vary roughly sinusoidally as the direct path and reflected path go in and out of phase with each other.
I found it quite impressive to see how repeatable the errors are between the two solutions. It indicates, at least at this distance, that the errors from the receiver are small compared to the other errors in the system.
Again, the GLONASS results were not as good as the GPS results and include a DC shift in the carrier phase that I’m not sure exactly what the cause is.
I haven’t spent a lot of time trying to figure out how to best use the information in these plots but in particular I found the similarity between the two receiver solutions in the longer baseline experiment quite encouraging. If the errors are dominated by multipath as I expect, then the baseline length isn’t that relevant and I would expect to see similar results with shorter baselines. If that’s true, then it may be possible to derive information about the receiver’s environment from the multipath data. People do this with more expensive dual frequency receivers to monitor things like tides and ground moisture content. It would be interesting to see if it can be done with these low cost receivers. Or maybe it already has been done …