Monday, February 20, 2012

Low cost RTK performance round-up

Having done quite a bit work since the first Yuan10 was built, I think it's time to write a small summary.

I recently put up a navXperience 3G+C antenna that will serve as reference for all future RTK work in this area. With the support of the reference station University of Pisa and their reference observations at 0.2Hz I run RTKLIB (RTKNAVI and RTKPOST) for several days using several low-cost receivers that I assembled.
This should be somehow considered the best possible scenario, having a short 1.5Km baseline.. nevertheless the results are quite exciting I believe.

Figure 1: Yuan10: Skytraq S1315F-RAW

The plots above show solving of the integer ambiguities in about 5 minutes and reaching an accuracy of about 4cm square.

Figure 2: Rappen10 mMCX version: uBlox NEO-6P (RTK mode)

Again, the NEO-6P brings the position down to 4cm square accuracy in less than 10 minutes.

Figure 3: Denga10: NVS NV08C-CSM

The NV08C-CSM solves the carrier phase integer ambiguities and also brings down the accuracy to about 4cm square.

Each of these receivers has his specialty:
  • the S1315F-RAW has 20Hz raw measurements update rate, which is still unmatched performance by other low-cost receivers
  • the uBlox NEO-6P has integrated PPP for high accuracy standalone mode, no other low-cost receivers claims that
  • the NVS NV08C-CSM has Glonass!

P.S.: I attached a trimmed version of the data used to obtain these results here. Please note how the NVS observations are covered by NDA and therefore not included.

P.P.S.: The latest FW from NVS (dated 27 Feb 2012) improves dramatically the quality of the NV08C-CSM raw measurements: results above are not representative anymore.


luka said...

is that RTK observations or from postprocessing? Could you write how to set RTKnavi options to obtain the best solutions with Yuan 10?

Michele said...

Hi Luka,

These above are in post-processing but as the carrier ambiguity resolution is set to "forward" nothing prevents from obtaining the same in real-time.
See some details in the brochure here:

Of course the tricky bit is a good antenna :)


luka said...

Dear Michele,

In your brochures I didn't find how to set options in Setting2 and Statistics tab for the RTK mode. What did you set in "Integer Ambiguity...", "Validation Threeshold...", "Min Lock/Elevation...", "Number of Filter...", "Code/Carier Phase Error Ratio L1/L2" ad Carier- Phase Error a+b/sinEl".

Above settings are the most problematic for me. If I changing somethink I obtain the different solutions.

I would like to ask you about your file with settings which you used.

I have the Trimble Bullet III antenna.

Best wishes Luka

Michele said...

Dear Luka,

Of course I could have changed some expert settings, but this would have made very difficult to reproduce those results.

Instead, I just left all settings to their default value. Of course for a "Static" profile I entered the reference station observations and broadcast ephemerides, and the reference antenna position was taken from the Rinex header.

I have not done any magic. I just used RTKLib as a newbie would, in order to demonstrate that this kind of results are achievable by the majority of the users.


Willem Dantuma said...

Hi Michele,

Which antenna do you use to get these precisions ?



Michele said...

Hi Willem,

Did you actually _read_ the blog post?


Alfredo said...

Great work. Best wishes,

Unknown said...

Great work!
I'm trying out the NV08C. I flashed with the 2.05 firmware, I got NVS's config program and realtime display working, including with Binary Mode on UART B.

But I can't get the RTKNAVI_MB version to do anything. It never gets a fix or any data that I can see.

I see there's a BINR and BINR2 mode, and also an option to turn Checksum on and off. Which is correct for this RTKLib? What does BINR2 mode even DO? I didn't see

I copied the lines like "!NVS CFG-BINR d7 02 01" before the "@" out of the 1hz.txt into the Input Streams->CMD list, but I'm not sure what they're selecting even after reading the Binary Protocol spec.

I tried to take a look at the data stream in RTKLib, and all it's displaying in Hex mode is "0D0D0D" endlessly, but adding more fairly slowly. However, HyperTerminal shows plenty of binary data going on. And of course the NVS monitoring program is getting fixes and all from unit in BINR/BINR2 modes, so it's "working" in itself.


Michele said...

Hi Danny,

I am sure you will manage: usually it's just a baudrate/parity problem.
Try checking your settings against the Denga10 brochure.

If you purchased Denga10 from OneTalent then you are liable to contact me directly on my work email.


Unknown said...

"Parity"?? Oh heck I didn't see that... I haven't seen parity bits used in a LONG time! The NVS programs didn't even mention parity it was using, only baudrate and checksum. I had to search the manual to find the "odd parity" mention.

OK, now I have it working, well, to some degree. It's receiving data but doesn't seem to want to fall into FLOAT in the same physical configuration I used with the LEA-6T's I had.


Unknown said...

Thanks for this post. I want to do the same work with a ublox module but before I have a question. When you say "the NEO-6P brings the position down to 4cm square accuracy in less than 10 minutes." does it mean that only 10 minutes of acquisition are necessary to achieve a submeter accuracy ? if yes, what is the frequency of the acquisition ?

Regards, Vincent

Michele said...

Hi Vincent,

In optimal conditions (pefect visibility, professional antenna, zero-baseline differential mode) you can achieve centimetre differential accuracy in less than 10 minutes from first fix.

The test is meant to show the quality of carrier phase measurements in low cost receivers.
However it is hardly usable in real-World applications.

Best regards,

Unknown said...

Ok, thank you for your reply. I guess that you mean by "professional antenna" an external antenna. So, if I use an embedded antenna, the aquisition time will be longer (I hope it will be not around 1 hour...)

trentonisla said...

Hi Michele, im new to RTK navigation..

i would like to ask guidance on how to make an RTK system for my NEO 6P. I would like to know how to set up a base station and a roving, and how to combine them in RTK..

Thank you for your enlightenment

Unknown said...

Hi Michele
First, I am very grateful to you.
I tested the Dinga10 (NVS) recently RTKLIB.
There is no problem at all but GPS, (5cm>)
I used at the same time the Glonass and GPS, accuracy is greatly reduced. (2m <)
What is the problem to me.
Please tell me RTKLIB setting.


Unknown said...
This comment has been removed by the author.
Michele said...

English please.

Your question is slightly out of context as I treated only relative positioning above. I configured NEO6P to output RXM-RAW and RXM-SFRB.

Pretty much all GNSS receivers on the market are capable of achieving sub-meter accuracy and this is simply because of current system performance of GPS. So the devil is in the details. Some Companies are just more "aggressive" than others in their statements.

A 6m figure (CEP50?) suggests you are hanging your antenna on a broomstick out of the window.. good luck!


Unknown said...

Hi Michael,
sorry but I knew I had to communicate in English, I'm using NEO-6p recently and I can not minimize the position error. I have problems in the configuration of u-blox and RTKLIB. I'm using the PPP solution but as soon as I go running with RTKLIB, my position begins to oscillate and I do not know why.
I just wanted to know which parameters act in particular.


Unknown said...

Hi Michael,

Wonderful blog. I am working on RTK gps as well and I have done various tests too using RTKLIB. However, my results are never so accurate. I get fixed (Q=1) as low as 15-20% with 6-8m square accuracy. I am using NEO6T and basic Gilsson active antenna. I attach both the base and rover (about 15m apart) to RTKLIB (RTKNAVI) running on single pc using serial ports. I have tried all positioning modes of RTKLIB but I have failed in getting a good fix. Can you please help me as to what is wrong here?
Also, if I have to place them 1km apart, how would the setup be like? How will I transfer raw base carrier signal in real time?

Thank you for your help.


Unknown said...

Hi Michele!
My name is Alexey. I extremely need Your support on RTK. Right now I am working on high precise positioning task. I am planning to use CSM module and RTK LIB. Can I have Your consultancy. If Yes can We contact each other through on e-mail. My e-mail address:
I am looking forward to hearing from You soon.
Thanks in advance
Best regards Alexey.

Unknown said...

Hi there,
I using Denga10 with RTKLib on c# project. I want to execute the RTKPOST from command prompt. Have anyone tried it or now how the options are set?

kind regards