RTK stands for Real-Time Kinematic and is another technique that improves the accuracy of GPS position measurements—however, it’s one of the hardest to understand and the most intensive to implement.
Standard Positioning Service (SPS) is the first position fix that GPS systems achieve, and they do this using the C/A code. If differential corrections are available, the SPS accuracy can be improved as timing delays on the satellite signals can be removed. Using DPGS position accuracy of around 40 cm is fairly normal. RTK is the next step on from DGPS, and there are two versions of it; RTK float, which achieves decimetre level accuracy and RTK integer, which achieves centimetre level accuracy.
To understand how either version works it’s necessary to understand two things:
- The first is that RTK is bending the rules of what we should be able to achieve using a civilian GPS receiver. It is not a technology that was designed into the system to help us. Instead, it’s a method that was figured out by GPS manufacturers to achieve greater accuracy than was intended using the C/A code.
- The second thing to understand is that it is based on the carrier waves themselves, not on the C/A code or navigation message they carry.
So how does it work?
In our ‘What is SPS’ page, we discussed how SPS is based on pseudo-range measurements calculated using the C/A code. The receiver does this by synchronising its clock with the GPS satellites, then generating its own version of the C/A code for each satellite it can see. If it has to delay its own copy of the C/A code by, say, seven milliseconds in order to match the C/A code being received at the antenna, then it knows the travel time of the signal from that satellite is seven milliseconds and it can then work out how far away the satellite is.
The ultimate aim of RTK is to establish how many carrier waves there are between the antenna and the satellite. The reason for this is simple. Each satellite broadcasts a unique C/A code made up of 1,023 bits. The code is sent at a rate of 1.023 Mb/s, which means one bit is sent about every microsecond. In one microsecond the radio signal from the satellite covers a distance of about 300 metres.
The carrier wave that the C/A code is modulated onto is at a much higher frequency however—1575.42 MHz. This means a single wave covers about 19 cm. If we could work out how many full waves there are between the satellite and the antenna, then it would be possible to calculate the distance much more accurately. In fact, if we know how many full waves there are, and it’s possible to measure partial waves (the phase angle) too, then we can be very precise.
RTK Integer and RTK Float can be considered as two separate (but related) algorithms running concurrently within a system. If RTK Integer has a valid solution, the system switches to it (however the RTK Float algorithm continues running in the background). If RTK Integer subsequently becomes invalid, the system reverts back to RTK Float, which does not need to start again as long as the carrier phase lock is not lost.
So how are the algorithms different? RTK Float aims to identify your probable location (improving on the current DGPS accuracy) using statistical methods. It requires a minimum of four common satellites with the base station, and (in lay-terms), looks for a point in a circle around the current position measurement about which the satellites are revolving. Unlike RTK Integer, the Float algorithm never attempts to solve the ambiguity problem—it only tries to identify the most probable position within a circle drawn around the current position estimate. The accuracy for RTK Float starts around 40 cm, but increases to 20 cm at best.
RTK Integer, on the other hand, aims to solve the ambiguity problem and is not used until it has done so. It requires five common satellites, and when a valid solution is found the system knows there are n carrier waves plus any partial wave between it and the satellite. It can align its measurements to about 0.6% of the 19 cm wavelength, giving an accuracy of about 1 cm.
Now we’ve reached the point in our ‘What is GNSS?‘ series where we’ve discussed how GNSS systems are generally easy to use, don’t drift and can achieve high levels of accuracy. But nothing in life is perfect, is it? So, what’s the down side? What most improves accuracy, and what are the limitations of GNSS?