New Data: Moving Rover / Fixed Base

All of the analysis I have done so far has been done on data sets where both receivers were attached to the rover. The only exception was one post where I used a CORS reference station as the base. This made the solution verification easier than the more normal case where one receiver is fixed and the other is attached to the rover since the solution is always a circle. There are some reasons however why the two moving receiver case is not identical to the typical fixed base case. The most obvious differences are shorter baselines, correlated antenna orientation, and more cycle slips when both receivers are moving.

Yesterday I collected some more data, the first moving receiver data I have collected myself since December. This time I used the two Ebay receivers, a GY-GPSV3-NEOM8N and a GPSV5-NEOM8N (identical except one has a magnetometer that I did not use) and the two antennas that came with these receivers. Total cost for both receivers, antennas, and shipping was $56.

I again drove around a parking lot with good sky views with one receiver attached to the car roof, but this time the second receiver was sitting on a rock next to the parking lot. Here’s a couple of photos of the two receivers, the first one stuck on to the top of the car with some double sided foam tape, the second sitting on a rock to raise it above the surrounding long grass.



The car roof acted as a ground plane for the moving receiver. I forget to bring a ground plane for the fixed antenna but managed to create something vaguely ground-plane-like from a discarded beer can I found nearby. While this is certainly in the spirit of ultra-low cost, I’m not sure how effective it was and plan to go back to my 40 cent pie tin next time.
I took three fairly short data sets. The first was without a ground plane on the base antenna, the second was after adding my beer can ground plane, and the third was with the sample rate increased from 1 Hz to 5 Hz. All three data sets included GPS, GLONASS, and SBAS satellites in the raw data, although only GPS and GLONASS were used in the solution, and only GPS was used for ambiguity resolution.

In order to get the 5 Hz sample rate to avoid missing samples I had to increase the baud rate from 115K to 230K. I did still have some NMEA messages enabled that RTKLIB doesn’t use. The lower data rate would probably have worked if I had disabled these messages. I was not certain the 5 Hz would work since seen I have seen it stated online that the NEOM8N does not support 5 Hz data but in my case, it seemed to work fine.

I ran my Demo2 code and configuration file  on all three data sets and got clean solutions for all three. The third data set was intended to run longer but the battery died on one of my laptops fifteen minutes before I finished collecting the data. For the 5 Hz data set I should have modified the config file to adjust the inputs that are in units of counts instead of seconds to account for the different sample rate, but since the results looked good even with the sub-optimal settings, I did not bother to go back and re-run it after I realized my mistake.
Here are the ground tracks, positions, and velocities for the three cases

  No ground plane: 1Hz                  Ground plane: 1 Hz                      Ground plane: 5 Hz

Ground tracks:track1.png



While encouraging from a performance standpoint, this data does not give me much opportunity to make improvements since it is quite clean. I hope to go back in the next few days and take some more data, this time increasing the distance between base and rover and including more minor sky obstructions to see if I can stress the solution more.

These results also strengthen my belief that for relatively friendly environments and with some additional robustness improvements, an ultra-low cost hardware set combined with RTKLIB could be a usable solution. Of course it will take more data to make this more than just a suggestion.


10 thoughts on “New Data: Moving Rover / Fixed Base”

  1. Hi, thanks for the great information. GNSS/RTK is a new area for me but i’m interested in exploring cm precision with low cost hardware. I am trying to get RTK working with an M8N and a CORS (or our equivalent) base station. You mention in the post above a post “where I used a CORS reference station as the base” but I can’t find it. Can you reply with the link please?


    1. Hi Greg. I describe or used CORS reference stations in these posts

      Base station data
      Reference raw GPS data
      Moving Base vs Fixed Base

      In general, if the reference station is less than 20 km away, which is true in my examples, there is very little difference in configuration between using your own receiver and using a reference station as base station. As the baseline increases, it will be more difficult to get a solution because the ionospheric errors will increase and time to first fix will increase.


      1. Thanks for the reply. I will read through these over the weekend and see if I can get it working.

        My base station is around 18 km away and I seem to be able to connect to it in RTKNAVI. I am struggling with the M8N receiver which is a cheap Chinese unit. It works with the ublox u-center utility which tells me it has v2.01, but I can’t yet see it in RTKNAVI.


    1. Hi Michele. I’ve uploaded all of the data sets I’ve used on the blog to a Google drive. Here’s the link. It should be viewable by everyone.

      The latest data is in the collioure_car folder. The two 1 Hz data sets are in a single pair of ubx files. The interruption caused by adding the ground plane is the obvious bad spot in the middle of the data.


        1. Hi KP. Have you looked at the sample data sets I have posted at Most of them do not include time tag files so would have to be used with post-processing (RTKPOST) rather than simulated real-time (RTKNAVI) but the 3DR radio data set does include the time tag files.


    1. Hi Dan. For this exercise I am only concerned about the relative distance between the two receivers, not absolute positions. If I wanted to get an absolute base position, the simplest way would probably be to run a solution with the nearest CORS station as base, and the stationary receiver in the experiment as rover.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: