RTKLib – Centimeter accuracy GPS/GLONASS post-processing



Hello!

Unfortunately, I have not found habré mention wonderful library for processing raw measurements, RTKLib. In this regard ventured to write a little bit about how it can help you to get centimeters in relative navigation.
The goal is simple – to draw attention of the public.

I myself just recently started to work with this library and was amazed by its possibilities for mere mortals. On the Internet a lot of information on the practical examples but would like to try myself and here is the result.

So, the process is generally as follows:



Let's say we have two GLONASS/GPS receiver with which we can obtain raw measurements (raw data). Raw, they are called that because they are the primary material for processing of pseudo range, Doppler, phase measurements...
Utility STRSVR from the library of RTKLib, we need to record two data streams – one from the base station, which is still standing, and the second is from the Rover, which is planned to move. The entry from the database it is advisable to start in advance, in 10-15 minutes prior to the recording of the Rover.

In my case the database was on the roof of the building, and with the Rover, out on the street. For recording used two laptop.

1) Custom Input – Serial both laptops, is the flow from the GNSS receiver.



2) Output – File, it will have a file of raw measurements.

3) Allow the database to record Start and a leisurely walk to open countryside.

For a small demonstration printed A4 sheet with the letter H, which would cut around the antenna, or rather a base for mounting on a tripod. Antenna TW3440 Canadian production company Tallysman custom-made with the underlying surface 30 × 30 cm



4) are Located on the pavement, put the Rover on the entry and try slowly to cut around the letter. Though the Rover is issuing frequency of 5 Hz, it is better to do everything thoroughly.

5) At the end of the stroke curl up and go to see what happened.

6) Drop both files on a single computer and can start treatment.

7) First, we have raw data to standard RINEX files. This will help us RTKCONV:



8) Specify the path to the file with raw data, as well as the folder where the program will put RINEX format raw data, in my case it NVS BINR and in the settings put a check mark GPS and GLO, the rest can not touch.



9) Click Convert and get the files for the Rover and then for the base, it is better to arrange them in their appropriate folders Base and Rover.

10) Further the most interesting – in post-processing. Open utility RTKPOST.



11) Click Options, tab Settings 1 in the mode setting specified for Kinematic processing relative measurements. Put a check mark GPS and GLO, you can then play around with the settings.



12) Output Tab – you can set the output format, such as NMEA.



13) an Important point – the tab Positions, it is necessary to specify the coordinates of the base station, either take them out of the header, or by averaging over the period of record. The more precisely we know the coordinates of the base the more accurate will be the absolute coordinates of the Rover.
For example, specify RINEX Header Position – to take from the file header.



14) Click OK and go to the main window, there in the Rover field, specify the path to a RINEX file with the Rover, and base the path to the appropriate file. Click Execute and wait for the result. After processing you can view the result by clicking on the Plot.


15) at the Bottom of the figure shows that solutions with centimeter accuracy obtained 97.3%, the rest is the floating solution with an accuracy that is much worse.



That's all for now.

If anyone is interested, I can write how to implement RTK mode.

Also it would be nice to know your opinion: what is not obvious applications, you can use solutions with centimeter NAV?
Article based on information from habrahabr.ru

Comments

Popular posts from this blog

Powershell and Cyrillic in the console (updated)

Active/Passive PostgreSQL Cluster, using Pacemaker, Corosync

Automatic deployment ElasticBeanstalk using Bitbucket Pipelines