Let's talk!

Maciej Szymczuk
Regional Director

(+1) 929 262 9149


contact form

Let's talk

Let's talk!

Jim Fitzgerald
Regional Sales Director

(+353) 87 2421585


contact form

Let's talk

Let's talk!

Eva Krydowska
Business Development Director
United Kingdom

(+44) 7775 517 771


contact form

Let's talk

Let's talk!

Stan Roman Winiarski
Regional Sales Director

(+49) 177 259 2610


contact form

Let's talk

Let's talk!

Slawek Ulankiewicz
Regional Sales Director

(+45) 2684 0944


contact form

Let's talk

Let's talk!

Jacek Zadrąg

Chief Operating Officer

(+48) 693 420 078


contact form

Let's talk

Let's talk!

René Koelblen
Regional Sales Director
France, Benelux

(+48) 795 348 016


contact form

Let's talk

Let's talk!

Andrzej Senator
International Sales Director

(+48) 728 996 917


contact form

Let's talk

We live in a world so fast-changing that, sooner or later, it won’t be surprising or weird to see a self-driving car on the streets anymore. Autonomous driving requires a set of different, soon-to-be-released technologies that will enable it one of which already exists.

We use it frequently with regard to everything connected with satellite navigation it’s called the Global Positioning System (GPS). Howeveras you may not knowthis technology has many more aspects: GNSS, DGPS, RTK-GPS, GLONASS and more.

GPS and its problems

GPS, or rather GPS-NAVSTAR, is a satellite navigation system created by the US Department of Defence. GPS covers the entire globe and consists of 31 satellites orbiting the Earth.

The system works out how long it takes for a radio signal to get from the satellite to the receiver. Knowing the velocity of an electromagnetic wave and the exact time when a given signal was sent, GPS can calculate the distance between a receiver and its corresponding satellites. The receiver, knowing the location of satellites in the sky, their theoretical trajectories and deviations from them, can calculate its geographical position.

 To work correctly, the transmitter needs a signal from at least three satellites, but each of them has an individual set of errors. If we would like to be more precise in locating the transmitter, an area – instead of a single point – should be determined.

gps signal illustration

The moment at which the signal starts may be delayed as an effect of the inaccuracy of satellite clocks and the difference between the theoretical and real-time location of the satellite in orbit. It is then, that during the trip toward the Earth, the signal is degraded in the atmosphere and reflected by objects located near the receiver‘s antenna (so-called multipath).

gps multipath

Because of the problems mentioned above, the precision of GPS measurements is not ideal. Depending on the conditions and region, an the observational error may vary from a few to several metres.

In search of greater accuracy

In most cases, that observational error is acceptable. However, there are some applications of GPS systems in which such measurement deviations are intolerable. And because of this, additional methods of measurement correction were created, titled DGPS (Differential Global Positioning System). They are based on the concept that, in a particular area in close proximity to a specific reference position, the same or almost the same errors occur.

If two receivers are located on the Earth at a distance of hundreds of kilometres from each other, satellite signals coming to them pass through practically the same region of the atmosphere, bearing the same propagations of error.

With the exception of multipath, and receivers noise errors, other error values will be shared for both receivers. In such a situation, a reference receiver (its location is fixed and well-known), may be used to measure the value of errors and to send them to the other receiver, which is in motion.

DGPS system

In the case of DGPS systems, the reference station is placed at a geodetic point with an accurately assigned 3D position. The theoretical distance between the station‘s antenna and satellite is calculated based on knowledge of the station’s location and that of the satellite in orbit. After comparing that location with the location measured by our mobile GPS receiver, we get a difference, called a differential correction.

Of course, such a solution has its Achilles’ heel – a link, and by that I mean the messaging channel between the mobile GPS receiver and the reference station. In an ideal situation, a link should transmit data with minimum delay and without loss of information.

The creators of DGPS addressed this problem, because in the mobile receiver – apart from differential corrections – the velocities of their change are also calculated. The mobile receiver uses them to model the changing tendency of value corrections in time. That means that a correction, extrapolated in time and with the proper sign, is being added to the correction calculated in the mobile receiver.


However, creating a whole DGPS system covering a larger area from scratch is expensive. So what can a company or individual do to take advantage of the significantly greater precision of this GPS system? Many DGPS systems work globally and make this possiblefor a fee, naturally. In Europe, the most recognisable example is the EGNOS (European Geostationary Navigation Service).

Within this system, most of Europe has been covered with a web of reference stations, and we can download their data from their websites. This system was mainly created to support air and maritime communication but is also being used successfully by commercial companies.

Thanks to such systems as EGNOS, we can limit the observational error to a maximum of a few metres. But despite this being a significant improvement to the standard GPS system, what if such precision is not yet enough? The RTK (Real Time Kinematic) measurement is the newest technology in the world when it comes to measurement accuracy achieved in real-time without calculations done after post-processing.

This method also uses measurement corrections sent in real time by a reference station. But contrary to other methods, it also uses phase observations beyond the observation of the satellite‘s signal. 

The receiver registers the phase for every signal as well as the change of the number of full phase cycles from the moment the receiver starts to track the satellite. RTK-GPS allows for achieving measurement accuracy to the centimetre. But it must be mentioned that such high precision requires more restrictive conditions than other methods. 

Such a measurement needs a signal from at least five satellites, and a special reference station must be located at a maximum distance of 20 kilometres from the mobile receiver (in contrast to 200 kilometres in the case of a DGPS system). 

Additionally, there is the cost of buying a special receiver – to achieve such results we need a device that can receive two frequencies (L1 and L2), registering the phases of satellite signals. On today’s market, some receivers take measurements on one frequency (L1), which costs less money but provides less accurate results. 

But the biggest problem is different – maintaining a stable signal, which is quite tricky and vital in the case of the RTK method. And why is that? The receiver‘s initialisation requires designation of the phase uncertainty (the unknown, random starting number of full phase signal cycles). 

What can a programmer do on a farm?

Some may be surprised, but GPS and control systems are frequently used in agriculture, whereby precision in this regard plays a key role. Some time ago, I was working on the SmartFarm project, aimed to create a system for precise navigation of agricultural machinery during work in the field. 

Every technology that I have mentioned above – GPS, DGPS and RTK-GPS – was used within that project. The last one was the most problematic and difficult to implement, and the application itself was dedicated for desktop and mobile devices. The system uses two U-blox receivers working within a single range of the L1 frequency. One of them works as the reference station.

u-blox receivers

But the equipment itself is not enough – special software capable of carrying out complicated calculations is also needed. 

Luckily, there is no need to create such a system entirely from scratch. The RTKLIB is an open-source library that shares a set of functions and tools helpful in GNSS positioning. In addition to the library available in the C language, we get a dedicated RTKNAVI program allowing for easy debugging and testing of our solution.

RTKNAVI program screen RTKNAVI program graphs

Actually, RTK measurement allows for achieving accuracy to the centimetre, but the biggest problem was maintaining a stable signal for longer periods of time. On the other hand, when it comes to calculations, many external factors affect the accuracy of measurement, which also doesn’t make things easier for the system.

Another limitation was the fact that the receivers used by the system were working with only one frequency, and not with both available ones. So, as is often the case, the best method is also the most difficult and demanding one.

Fresh software development tips delivered straight to your inbox

Subscribe to our monthly newsletter with useful information about building valuable software products.
Don't worry, we value your privacy and won't spam you with any bussines enquiries!


Software Developer

Programmer and new technologies enthusiast, who will not shun from any programming language. Professionally, for five years connected with the .NET platform. Seeker of innovative and creative solutions.

Multiple finalist of nationwide IT competitions, therein a two-time winner of the world’s largest technology contest for students - ImagineCup.

As part of our website we use cookies to provide you with services at the highest level, including in a manner tailored to individual needs. Using the site whithout changing the cookies settings means that they will be stored in your device. You can changes settings at any time. Accept