Finding the Right Algorithm - Inside GNSS - Global Navigation Satellite Systems Engineering, Policy, and Design

Finding the Right Algorithm

Receiver (on the right) and antenna (on the left) comprised the on-board unit used in both data collections

Working Papers explore the technical and scientific themes that underpin GNSS programs and applications. This regular column is coordinated by Prof. Dr.-Ing. Günter Hein, head of Europe’s Galileo Operations and Evolution.

Working Papers explore the technical and scientific themes that underpin GNSS programs and applications. This regular column is coordinated by Prof. Dr.-Ing. Günter Hein, head of Europe’s Galileo Operations and Evolution.

GPS receivers have become devices used by millions of drivers or pedestrians every day. Current positioning accuracy is usually sufficient to guide a car driver or a pedestrian through an unknown area. However, stand-alone positioning techniques are not precise enough for a number of demanding applications. Driving assistance systems, precise agriculture or mobile mapping systems typically require decimeter or even centimeter accuracy, regardless of the environment.

To reach this level of accuracy, techniques have been developed using raw carrier phase measurements, which are more precise than code measurements by a factor of a 100. However, they are ambiguous by an a priori unknown integer number of cycles called the ambiguity. This ambiguity remains constant as long as the carrier phase tracking is continuous.

Many techniques use the precision of the carrier phase to improve the accuracy of the final position. In particular, real-time kinematic (RTK) and precise point positioning (PPP) turn carrier phase measurements into very precise absolute pseudoranges by estimating the value of the ambiguity.

These methods do so by removing all biases affecting the carrier-phase measurements and using either precise satellite ephemeris and parameter estimation (for PPP) or by differencing with measurements coming from a spatially close reference station (for RTK). In particular, RTK can typically provide centimeter-level positioning with only a few seconds of convergence time, in a short-baseline configuration and a clear-sky environment.

However, the use of RTK in road user environment is challenging. Indeed environments encountered by road users range from a clear-sky environment on rural roads to constrained environments such as urban canyons. In the latter, users can expect frequent signal blockages, high-power multipath signals, and low availability of measurements (especially carrier phase).

A further consideration is that RTK is generally applied only on high-precision receivers for various reasons, probably the most important of which are that raw measurements are not always available on low-cost receivers and that the quality of measurements from low-cost systems using only GPS satellites is not sufficient to perform reliable integer-ambiguity resolution, particularly under dynamic conditions.

However, very low-cost multi-constellation (GPS/GLONASS L1) receivers have been released recently on the market, capable of outputting raw code, Doppler, carrier phase and C/N0 measurements at a cost of around US$50. With this kind of low-cost, multi-constellation receiver, the improved satellite visibility is expected to increase the reliability and the success rate of ambiguity resolution even in challenging environments.

The goal of the research on which this article is based was to determine the possibility of applying RTK algorithms on such user equipment in various environments encountered by road users.

Challenges of Low-Cost GPS/GLONASS RTK for Road Users
Transforming this concept into practical reality must address a number of factors, including the differences between GNSS systems and user equipment.

GPS and GLONASS Measurement Model. The code and carrier phase measurement model for GPS/GLONASS measurements is:

Equation (1a)


  • Pi and ϕi are the code and carrier phase measurements on frequency i
  • ρ is the geometric range
  • c is speed of light
  • dt and dT are the receiver and satellite clock biases, respectively
  • Ii and T are the ionospheric and tropospheric delay respectively
  • N and λi are the carrier phase ambiguity and the carrier wavelength
  • br,Pi and br,ϕi are code and carrier phase receiver hardware biases, respectively
  • bi,P and bi,φ are the receiver inter-channel biases on code and carrier phase measurements. In the case of GPS measurements, this term is negligible.
  • b5Pi and b5φi are code and carrier phase satellite hardware biases
  • εPi and εϕi are code and carrier phase measurement noise and multipath.

Separating GPS and GLONASS measurement model and differencing measurements between two spatially close reference receivers give:

Equation (1b)


  • ΔPGPS and ΔPl are single-differenced GPS and GLONASS pseudoranges, respectively
  • Δ∇φGPS and Δφl are double-differenced GPS carrier phase and single-differenced GLONASS carrier phase respectively
  • ΔρGPS and Δ∇ρGPS are single-differenced and double-differenced geometric range for a GPS satellite respectively, while ΔρGLO is single-differenced geometric range to a GLONASS satellite.
  • Δdt is the single-differenced receiver clock term 
  • br,ΔGPS, br,PGLO and br,ΔφGLO are receiver hardware bias on GPS single-differenced code, GLONASS single-differenced code and GLONASS single-differenced carrier phase measurements
  • bi,PiGLO and bi,φiGLO are code and carrier phase inter-channel biases, respectively.
  • Δ∇Ni and ΔNi are GPS double-differenced ambiguity and GLONASS single-differenced ambiguity respectively
  • λ and λl are GPS L1 wavelength and GLONASS wavelength associated to frequency number, respectively.

As seen on Equation (1b), the FDMA modulation of GLONASS signals implies that

  • the wavelength of the carrier λl is different on each satellite.
  • Code and carrier phase measurements are offset by inter-channel biases bi,PiGLO and biφiGLO, depending on both the receiver and the satellite.

Differences between a Low-Cost Receiver and a High-End Receiver. Low-cost receivers are usually designed to target mass-market applications, nested in embedded devices. Constraints in power consumption and costs are then very stringent and result in significant differences in the following factors:

  • front-end filter quality and bandwidth: high-end receivers use wide-band and expensive SAW filters, low-cost receivers use narrow-band filters to limit the sampling frequency.
  • local oscillator stability: very stable OCXO oscillators can be used in high end receivers 
  • signal processing techniques: high-end receivers use patented multipath mitigation techniques.
  • measurement selectivity: high-end receivers are generally more selective in terms of measurement quality.
  • local clock steering: receivers designed for RTK typically use clock steering techniques, to keep their clock offset synchronized within a few nanoseconds of GPS time. This can result in milliseconds differences in the time of measurements between the reference station and the low-cost rover that might not be easy to handle.

The low-cost receiver hardware limitations result in lower-quality measurements compared to high-end receivers. Also relevant to our present investigation, GLONASS FDMA structure implies that code measurements can be offset by inter-channel biases. In the case of high-end receivers, specific care is taken by the manufacturers in order to calibrate these biases. For low-cost GLONASS-enabled receivers, however, discussion in the article by S. Carcanague (2013), referenced in the Additional Resources section near the end of this article, indicates that:

  • GLONASS code inter-channel biases bi,PiGLO may not be linear with frequency and that these biases might not be the same from one receiver to the other from same manufacturer using the same hardware
  • GLONASS code receiver hardware bias br,ΔPGLO varies by a few meters every time the receiver is powered off.

Differences between a Low-Cost Patch Antenna and a Geodetic Antenna. From a satellite navigation user’s point of view, a good antenna is characterized by good multipath mitigation, characterized by the axial ratio and the gain pattern of the antenna; low-noise characteristics, and a calibrated phase center position.

Regarding the final point in this list, the position of the phase center of a well-designed antenna is calibrated and usually almost coincides with the physical center of the antenna. However, in the case of a low-cost patch antenna, differences can exist. Moreover, this position can vary depending on the quality of the ground plane.

So, even if the position of the phase center can be determined at the centimeter-level using RTK, the position of the physical center of the antenna should not be considered as precise. In the case of a low-cost antenna, the phase center variation remains uncontrolled and biases carrier phase measurements, making integer ambiguity resolution and validation more difficult.

A comparison between different types of receivers and antennas described in the article by T. Takasu and A. Yasuda (2008b) listed in Additional Resources showed that the antenna is one of the most important factor for mitigating code and carrier phase multipath. The article reported very similar performances between a low-cost GPS L1 receiver, and a multi-frequency GPS/GLONASS receiver connected to the same geodetic antenna.

Related research measured the phase center offset of a low-cost patch antenna and reported it to be a few centimeters away from the physical center of the antenna, essentially in the up direction. Phase center variations in this patch antenna were also shown to be at the centimeter-level. Finally, the previously mentioned research by S. Carcanague (2013) showed that ground plane quality considerably influences the accuracy of carrier phase measurements on a low-cost patch antenna.

A Solution for Precise Positioning in Cities
Given our analysis of the foregoing research, our proposed solution for precise positioning in urban environment is incorporates two modules: one for pre-processing and another for providing position/velocity/time (PVT).

The pre-processing module

  • makes a strict measurement selection using both high C/N0 masks and a multipath detection algorithm to reject as much as possible NLOS and multipath-contaminated measurements
  • takes special care to appropriately weight each measurement
  • corrects GLONASS code measurements from inter-channel biases
  • uses a cycle slip resolution technique to allow for a continuous estimation of carrier phase ambiguities.

The PVT module

  • uses a Kalman filter to precisely estimate the position among other parameters
  • takes into account the specificity of road user dynamics by applying a vertical velocity constraint
  • calibrates GLONASS carrier phase measurements in order to be able to estimate both GPS and GLONASS ambiguities as integers and fully benefit from the GLONASS constellation
  • uses environment-dependent ambiguity validation parameters, i.e., different ratio-test thresholds, to obtain a reliable ambiguity fixing as frequently as possible.

Features of Pre-Processing Module
Let’s look at the proposed pre-processing module in a little greater detail.

Code Measurement Weighting Scheme. Various weighting schemes have been proposed in the literature, including some relying on internal receiver parameters. However, these parameters are usually not available to the user. Moreover, as multipath error can be significantly higher than the noise error, the weighting formula may be overly optimistic in the case of a multipath-contaminated environment.

E. Realini has proposed a weighting scheme based on both carrier-to-noise ratio (C/N0) and elevation and adapted these for measurements from a low-cost receiver. However, his proposed empirical model was determined using only static measurements, which may not reflect the actual multipath error encountered by a road user. So, our solution also incorporates a model for the variance of the code measurements as proposed by H. Kuusniemi (see Additional Resources) specifically for difficult environments based on the function:

Equation (2)


  • C/N0 is the C/N0 of the received signal in decibel-Hertz
  • a and b are empirical parameters.

As code measurement errors due to multipath are significantly different if the receiver is in semi-urban environment or in urban environment, two sets of parameters were determined, by analyzing real data from a single-frequency, low-cost receiver with a patch antenna for use in two environments: semi-urban environment, a = 1 and b = 2812 for GPS code measurements; and urban environment, a = -1.5 and b = 7312 for GPS code measurements.

To determine in which environment the receiver is, the receiver can use embedded maps. In the present case, vehicle speed was used. As soon as the vehicle exceeded 50 km/h, the vehicle was considered to be in a semi-urban environment. Otherwise, urban environment weighting scheme was used.

To handle the GLONASS code inter-channel biases, our solution calibrates these as described in the article by S. Carcanague (2013). This correction can also be easily applied by changing the GLONASS code biases correction inside the chip. To take into account the lower chip rate of GLONASS signals, our solution down-weights GLONASS pseudoranges variance by a factor of 1.3 compared to GPS code variance, also as proposed by S. Carcanague (2013).

Doppler Measurement Weighting Scheme. In a static environment, the influence of multipath on Doppler measurements is null, as the frequency of the reflected signals and the direct signal are equal. Then measurements can be weighted using frequency lock loop (FLL) tracking loop jitter due to thermal noise, as proposed in the articles by N. Kubo or B. Aminian (Additional Resources).

However, this weighting would also be overly optimistic in the case of a moving user. So, we adopted the Doppler measurement weighting scheme introduced in S. Carcanague (2012), taking into account the vehicle speed. Similarly to the code-weighting scheme, this weighting is based on a real-data analysis of Doppler multipath as provided in Figure 1.

Multipath Detection. As explained earlier, two strategies are proposed to remove frequent multipath-contaminated measurements that can be found on a low-cost high-sensitivity receiver: 1) applying a very high C/N0 mask together with different code, Doppler, and carrier phase mask values and 2) using a fault-detection algorithm.

The best mask combination for code, Doppler, and carrier phase measurements was determined a-posteriori in S. Carcanague (2013). Only three values of C/N0 were tested to limit the computation load: 32, 36, and 40 decibel-Hertz for code, Doppler, and carrier phase measurements, which produced a total of 27 tested combinations.

The best combination was found to be for mask values of 32, 40, and 40 decibel-Hertz for carrier phase, Doppler, and code measurements, respectively. This combination had in general resulted with the best horizontal performance error statistics with the proposed RTK algorithm in the different environments encountered.

For the second strategy, we implemented the “Danish method” as in the paper by H. Kuusniemi to detect and exclude multipath on both Doppler and code measurements. This method was chosen for its ease of implementation, but more refined techniques should be investigated in the future.

Cycle Slip Resolution Method. Although relatively rare in static conditions, cycle slips can occur very frequently with low-cost receivers in motion. In that case, detecting and, if possible, repairing these is very important in order to estimate ambiguities as constants. However, repairing cycle slip in the case of a single-frequency user is still an open problem. Various methods have been proposed; however, most of these methods either treat each satellite separately, or do not take into account the integer property of the full cycle-slip vector.

S. Carcanague (2012) introduced a cycle slip resolution method based on Doppler and carrier phase measurements that, compared to other proposed techniques, has several advantages:

  • It uses the measurements from all the satellites to estimate the cycle slip vector float value, together with velocity and receiver clock bias rate.
  • It constrains the cycle slip float solution by applying a vertical velocity constraint.
  • It uses an integer estimation technique (LAMBDA method, as described in the presentation by P. Teunissen cited in Additional Resources) to estimate the full integer cycle slip vector.

The proposed method allows the full resolution of the cycle slip vector with measurements from a low-cost receiver in dynamic conditions. Being able to repair cycle slips allows the estimation of carrier phase ambiguities as constants in the RTK Kalman filter. It also improves the observability of estimated parameters compared to single-epoch RTK, which is usually recommended for a moving receiver in difficult environments.

Description of PVT Module
We addressed several factors in our proposed PVT module.

RTK Kalman Filter. The core of the PVT module is an extended Kalman filter, estimating position, velocity, acceleration, GPS/GLONASS float ambiguities, differential receiver clock offset, and GLONASS code biases (offset+slope). The Kalman filter has the following features:

  • GPS pseudoranges, GLONASS pseudoranges, and GLONASS carrier phase are kept in single-difference. This choice simplifies the implementation and multipath detection as it removes any issue relative to refer-ence satellite choice.
  • A null virtual observation in the vertical direction is used to constrain the vehicle dynamic in the up direction. The standard deviation associated to this virtual upward velocity was set to:

σvirtualvelocity = 0.02 * ||v||

where v is the user velocity estimated at the previous epoch, as in S. Carcanague (2012). Figure 2 presents a schematic of the proposed filter.

Additionally, GPS/GLONASS differential code and carrier phase measurements in the Kalman filter are modeled as follows:

Equation (3)


  • Same notations as in Equation (1b) are used
  • br is a slowly varying inter-constellation receiver hardware offset
  • ki is the GLONASS frequency number
  • bslop,ΔP is the slope of the GLONASS inter-channel bias as a function of the GLONASS frequency number.

In the model proposed in Equation (3), GLONASS code and carrier phase do not share the same differential receiver clock offset+receiver hardware bias term, as only GLONASS differential code measurements are offset by a bias br. This differs from the usual design of a GLONASS measurement esti-mation filter.

However, as explained in S. Carcanague (2013), this enables us to avoid introducing GLONASS code receiver hardware biases in the estimates of GLONASS carrier phase ambiguities. This “trick” was found to make the GLONASS ambiguities bias caused by code-phase offsets stable in time on the tested receiver.

GLONASS Ambiguities Bias Calibration and Integer Resolution. As explained in the paper by J. Sleewaegen et alia, a difference between GLONASS code and carrier phase hardware biases translates into a bias in estimates of float ambiguities. Without removing this bias, GLONASS ambiguities cannot be estimated as integers. These biases are usually constant on high-end receivers and similar for receivers of the same brand. Biases for various geodetic receiver brands can be found in the article by L. Wanniger (Additional Resources).

To determine the bias in float ambiguities of the tested receiver, we used an algorithm described in the article by S. Carcanague (2013). Static data was collected and a baseline established in combination with a nearby reference station. GPS ambiguities were fixed so that we could determine single-differenced GLONASS ambiguities to a very precise value. Biases were then deduced from adjusted GLONASS float ambiguities and stored in a table.

Once these biases are known, they can be subtracted from GLONASS float ambiguities estimated in the Kalman filter. Then GPS and GLONASS ambiguities are all estimated together as integers using the LAMBDA method, as depicted in Figure 3.

To validate the ambiguity vector, we employed two criteria: a minimum of five ambiguities, i.e., six carrier phase measurements, and a value of 2 applied as a ratio-test threshold when the receiver operated in a semi-urban environment and a value of 3,when the user was in an urban environment.

Road Measurement Campaign
In order to assess the performance of the proposed algorithm, we performed two measurement campaigns in Toulouse, France. In both measurement campaigns, two versions of high-grade GPS/INS systems were used to determine the reference trajectory, in post-processing, tight-coupling multi-pass mode: 1) a GPS L1/L2 receiver and an ARINC 743A standard antenna connected to an inertial module with fiber optical gyrometers; 2) a GPS/GLONASS L1/L2 receiver plugged to a tactical-grade inertial measurement unit (IMU).

A patch antenna connected to a 32-channel GPS/GLONASS receiver module was magnetically attached to the test vehicle’s roof and driven at traffic speed in downtown Toulouse and on the beltway. (See accompany photo of the test receiver and patch antenna.)

In both data sets, the reference station was TLSE in the RGP (Réseau GPS Permanent) network set up by the Institut Géographique National (IGN) and situated in the south of Toulouse. Maximum baseline length was about 11 kilometers in both data sets, when the vehicle reached the upper part of Toulouse beltway.

Data Sets. The first data set has a total duration of one hour, with approximately half coming from driving in an urban environment and half in a beltway environment. Data was recorded as the vehicle drove through the main streets of Toulouse city center, excluding the narrow streets of the old downtown.

The second data set had a total duration of two hours with approximately one hour in urban environments, including narrow old downtown streets, and one hour on the beltway. It therefore represents a very constrained data set. These routes are shown in Figure 4.

Performance Metrics. We assessed the improvement brought by the proposed algorithms based on five values:

  • horizontal position error at 68th, 95th, and 99th percentiles. As the proposed algorithm typically targets road users, results will be compared based on horizontal error only. Indeed the vertical component is usually of less importance in land vehicle applications.
  • fix rate. The fix rate is defined as the number of epochs during which ambiguities are fixed as integers over the total number of epochs
  • wrong fix rate. The wrong fix rate is theoretically the number of epochs with ambiguities fixed to an incorrect integer over the number of fixed ambiguities. In practice the wrong fix rate requires us to compare the obtained solution with a centimeter-level reference solution. However, the reference trajectory could not be considered to have that level of precision. Therefore, we adopted a new definition: an ambiguity vector is declared wrongly fixed if the distance between the associated estimated position and the reference trajectory exceeds 50 centimeters in the horizontal plan. This is an optimistic definition for semi-urban environment but a reasonable assumption in urban environments considering the accuracy of the reference trajectory.

Performance from COTS GNSS Receivers
In both measurement campaigns, commercial off-the-shelf (COTS) receivers were installed in the vehicle and the basic position outputs were logged and analyzed in comparison with accompanying high-precision devices.

The first data set included position solutions from the following equipment:

  • a high-end multi-frequency GPS/GLONASS/Galileo receiver connected to a geodetic antenna, in GPS/GLONASS/SBAS single-point mode.
  • The GPS/GLONASS receiver with patch antenna generated the data which was processed with RTKLib 2.4.1 in both continuous and instantaneous RTK mode. RTKLib is an open-source navigation software allowing various types of GNSS raw data processing strategies including PPP and RTK.

The second data set included position solutions of:

  • a high-precision dual-frequency GPS/GLONASS/SBAS receiver with geodetic antenna in single-point mode
  • a low-cost GPS/SBAS receiver in single-point mode
  • the 32-channel GPS/GLONASS receiver tested with RTKLib 2.4.1 in both continuous and instantaneous kinematic RTK mode, with a C/N0 mask of 30dB-Hz. Detailed RTKLib settings used can be found in the paper by S. Carcanague (2013).

The high-precision GNSS receivers could not be tested in RTK mode, as no real-time equipment (modem and so forth) was available. Table 1 presents the results from the road trials.

Our goal in this article is not to compare raw performance among the various navigation algorithms because the position accuracy can be refined using multiple parameters, especially for the high-end receivers.

Rather, these results demonstrate that default settings performance in single-point positioning mode are clearly above the meter-level on the beltway and that dozens of meters error may be expected in the most constrained environments, even with geodetic-grade equipment. These results underline the difficulty in performing satellite-based navigation in the tested environments.

Moreover, directly applying RTK algorithms on low-quality measurements leads to unreliable ambiguity fixing. Figure 5 gives an example of this when applying RTK processing (continuous mode) using RTKLib on measurements from the GPS/GLONASS receiver with patch antenna in the second data collection (beltway).

The spikes are due to frequent filter re-initializations. Ambiguity fixing is obviously very unreliable as more than 56 percent of all ambiguity fixes are fixed wrongly in semi-urban environments, (80 percent in urban environments) and that the resulting position error frequently exceeds 10 meters.

Ambiguity-fixing reliability must be the Number One concern when dealing with RTK software. Indeed, while on the field, the user (and the positioning filter) assumes that the position is at centimeter-level when the ambiguities are validated. This centimeter-level position is very difficult to cross-check unless high-grade equipment is available, particularly for a moving vehicle. Therefore, a RTK receiver with a high rate of incorrect fixes due to low-quality data is unusable.

Performance of the Proposed Algorithm
In order to determine the impact of each proposed algorithm, the performance of a baseline RTK filter is first studied. The baseline filter was chosen to have the following structure:

  • A single-epoch ambiguity resolution RTK filter is used, as recommended for low-cost receivers in the paper by M. Bahrami and M. Zierbart. The ambiguity state vector is re-initialized at each epoch and the LAMBDA method is used for GPS integer ambiguity resolution. GLONASS ambiguities are estimated as floats. A minimum of six satellites, i.e., five ambiguities, is required for GPS integer ambiguity resolution, and ambiguity is validated if the ratio test reaches 3.
  • No integer ambiguity is validated during the first three minutes of the data collection, so that all estimat-ed parameters, notably estimated GLONASS code biases, can converge.
  • GLONASS code inter-channel biases are considered linear with frequency and estimated as such in the RTK filter.
  • Pseudoranges, Doppler, and carrier phase measurements were weighted as a function of C/N0 value, with the following weighting scheme proposed in the article by B. Aminian:

Equation (4)


C/N0zenith is taken equal to 54 dB-Hz

C/N0 is the estimated C/N0 value in dB-Hz

σ is the standard deviation of the observation at the zenith.

Standard deviations at the zenith for code, Doppler, and carrier phase measurements are expressed as follows:

σcode = 3 m

σDoppler = 0.087 m

σcarrier = 0.007 m

Observations from satellites with elevations lower than 10 degrees are discarded.

  • C/N0 mask values of 32 dB-Hz, 40 dB-Hz, and 40dB-Hz are used for carrier phase, Doppler, and code measurements, respectively.
  • GLONASS code observation variances are down-weighted by a factor of 1.32. This factor was determined experimentally.
  • Variances of the accelerations in the process noise matrix were set empirically, after testing different values: σn = 0.7 m2.s-2 σe = 0.7 m2.s-2 σu = 0.1 m2.s-2 where σn, σe, σu are the process noise variances of acceleration in the north, east, and up direction, respectively.
  • Klobuchar model and UNB3m model are used to correct for ionospheric and tropospheric differential delay respectively.
  • International GNSS Service (IGS) rapid ephemeris and Russian Federal Space Agency rapid ephemeris are used for GPS and GLONASS, respectively, for satellite position and satellite clock offset computation.

Then, the different proposed ideas to improve the performance of the basic RTK filter are sequentially added. In particular, we tested the effects on performance of the following factors:

  • use of code and Doppler weighting schemes proposed and correction of GLONASS code biases via table-based values obtained from priori calibration as proposed in the Code Measurement Weighting Scheme described earlier
  • addition of the cycle slip resolution module and a code and Doppler multipath detection module described earlier in this article
  • correction of GLONASS carrier phase inter-channel biases, estimation of GLONASS ambiguities as integers, and introduction of environment-dependent validation parameters, as described earlier in the Proposed PVT Module section.

Fix rates and wrong-fix rates of the various solutions from the onboard receiver can be found in Table 2. Table 3 presents the horizontal position error percentiles in the two road tests. From these we can see the following:

1) Similarly to RTKLib solution, the baseline RTK solution has a very low fix rate and a very high wrong-fix rate, in both semi-urban and urban environments.

2) The use of the proposed weighting scheme for code and Doppler measurements, as well as the correction of GLONASS code biases, provide a significant jump in terms of horizontal position error statistics and fix rate, notably on the beltway. However, the wrong-fix rate remains very high.

3) The fix rate on the beltway using the proposed weighting scheme and GLONASS code corrections is significantly lower in the second data set than in the first. This has been interpreted as coming from the poor placement of the antenna on the vehicle roof during the second data collection. Indeed, during the second data collection, the patch antenna was placed on a rail that was about five centimeters above the metallic roof, which then worsened the ground plane quality.

4) The correction of cycle slips and the continuous estimation of ambiguities have a smoothing effect on the positioning domain and generally a positive effect on the wrong-fix rate. The fix rate is, however, generally slightly decreased, as the wrong fixes have been removed.

5) The use of the “Danish method” to detect and exclude multipath-contaminated measurements improves the fix rate and decreases the wrong-fix rate. However, the effect in the position domain is marginal.

6) GLONASS integer ambiguity resolution, realized by calibrating GLONASS ambiguity biases — using the proposed Kalman filter measurement model and the previously described ambiguity correction algorithm — was shown to tremendously improve the frequency and the reliability of the ambiguity resolution.

7) The high fix rate obtained in this last case has a very positive effect on the horizontal position error (HPE) 68th percentile, falling below 10 centimeters in the case of semi-urban environment data set.

8) The tail of the distribution error (99th percentile), however, is not improved by the various proposed measures. Indeed, extreme error values occur when GNSS signals are not available, i.e., when the Kalman filter is using prediction-only to provide a position.

As can be seen in Table 4, the full, low-cost RTK solution that we have proposed brings very promising results with a 1σ-HPE of only about 10 centimeters in the beltway environment and 1.5 meters in the urban environment. The 99th HPE percentile is at the meter level for the beltway.

Conclusions & Future Work
In order to take into account the characteristics of GPS/GLONASS measurements from low-cost user equipment (~€40 receiver coupled with a patch antenna) in the environment of interest, the following propositions were made to adapt typical RTK algorithms to the targeted use case:

  • appropriately mask measurements and weight them as closely as possible from their actual error
  • correct any biases, notably in GLONASS code measurements
  • exclude outliers in Doppler and code measurements and perform a very strict measurement selection based on estimated C/N0 value provided by the receiver
  • estimate carrier phase ambiguities continuously by resolving cycle slips using integer estimation techniques
  • estimate both GPS and GLONASS carrier phase ambiguities as integers, by calibrating GLONASS carrier phase inter-channel biases (The strategy used to obtain a stable carrier phase inter-channel bias in time was also presented.) 
  • finally, we also proposed an environment-dependent ambiguity validation strategy.

The proposed precise positioning software was tested using two data sets collected in downtown Toulouse and on Toulouse beltway. The results showed that, despite the very low cost of the tested system, reliable integer ambiguity resolution could be performed in a semi-urban environment, typically a beltway. Indeed fix rates of 73 and 59 percent, respectively, achieved on the beltway in the first and the second data set.

This high success rate reduces the 95th percentile HPE to less than 70 centimeters for both data sets and the 68th percentile HPE to around 10 centimeters. These results prove that the proposed algorithm is adapted to land vehicle precise positioning in semi-urban environments.

In a fully urban environment, multipath and reduced geometry prevented frequent and fully reliable ambiguity fixes. Indeed, ambiguities were fixed 17 and 8 percent of the time in urban environments in both data sets, with a wrong fix rate of 2 and 11 percent, respectively.

However, the proposed measurement weighting scheme, continuous estimation of carrier phase ambiguities, and the multipath detection module greatly improves the horizontal position error statistics, as the 95th percentile HPE was found to be below 3.5 meters for both data sets in the urban environment with a 68th percentile HPE around 1.5 meters. This result is particularly satisfactory considering the very difficult environment encountered and the performance of basic navigation filters from off-the-shelf receivers.

Different investigations could be performed to further extend this study, for example:

  • Compare the performance of the proposed algorithm with geodetic receiver in RTK mode. For technical reasons, only the single-point positions of geodetic receivers were recorded during the two data collections. Comparing to geodetic receiver in RTK mode would be fairer.
  • Include Galileo satellites. As the Galileo signal structure is expected to improve measurement accuracy (a benefit of the pilot channel), the proposed algorithm should be tested with Galileo satellites. As Galileo signals use CDMA, they should be easier to integrate than GLONASS satellites, because all carrier phase measurements would then share the same wavelength and code and carrier phase measurements would not be affected by inter-channel biases.
  • Taking into account the time correlation of code multipath when the receiver is static. As has been seen, low-cost receivers could be heavily biased by multipath. If the receiver is in motion, the multipath errors tend to average out over a short period of time. However, static multipaths tend to introduce bias-like errors into the measurements. As it was shown that biases in code measurements jeopardize reliable ambiguity resolution, the time-correlation of measurement errors should be taken into account when the receiver is static.
  • Introduce a “partial fixing” algorithm. A drawback of the LAMBDA method, combined with the ratio-test, is that the entire ambiguity vector is estimated as a whole. Therefore, if one of the carrier phase measurements is of lower quality, it can jeopardize the entire integer ambiguity resolution process. Therefore, fixing ambiguities iteratively — from the highest associated C/N0 value to the lowest — or fixing only a subset of ambiguities could reduce the effect of a carrier phase outlier. Other ambiguity resolution and validations methods could also be tested.

The authors would like to thank M3SYSTEMS and French ANRT for co-funding the study, as well as CNES (Toulouse, France) for the loan of the Novatel SPAN hardware (second data collection) and the supervision of the Ph.D, and ISAE for the loan of the Novatel SPAN hardware used in the first data collection.

Aminian, B., Investigation of GPS Observations for Indoor GPS/INS Integration, Master of Science thesis, Department of Geomatics Engineering, University of Calgary, Alberta, 2011
Bahrami, M., and M. Ziebart, “Instantaneous Doppler-Aided RTK Positioning with Single Frequency Receivers,” Proceedings of IEEE/ION Position Location and Navigation Symposium (PLANS), 2010
Bisnath, S., and R.Langley, “Pseudorange Multipath Mitigation By Means of Multipath Monitoring and De-Weighting,” KIS 2001, June 5–8, 2001, Banff, Alberta
Carcanague, S, “Real-Time Geometry-Based Cycle Slip Resolution Technique for Single-Frequency PPP and RTK,” ION GNSS 2012, September 17–21, 2012, Nashville, Tennessee,
Carcanague, S., (2013). GPS/GLONASS Precise Positioning Algorithms in Constrained Environments Using a Low-cost Single-frequency Receiver, Ph.D. thesis, Institut National Polytechnique de l’Université de Toulouse, <>, in press
Enge, P., and P. Misra, P., GLOBAL POSITIONING SYSTEM Signals, Measurements, and Performance. Ganga-Jamuna Press, 2nd Edition, 2006
iMAR Navigation GmbH, iIMU-FSAS Technical Data
Kamimura, K., and R. Tomita, T. Nagano, A. Chabata, Y. Kubo, and S. Sugimoto, “Detection of Cycle Slips and Multipath in GNSS RTK Precise Point Positioning,” 24th International Technical Meeting of the Satellite Division of the Institute of Navigation, Portland, Oregon, September 19–23, 2011
Kubo, N., “Advantage of velocity measurements on instantaneous RTK positioning,” GPS Solutions, vol. 13, 2009, pp. 271-280
Kubo, N., and S. Pullen, “Instantaneous RTK Positioning Based on User Velocity Measurements,” ION GNSS 21st International Technical Meeting of the Satellite Division, Savannah, Georgia, September 16–19, 2008
Kuusniemi, H., User-Level Reliability and Quality Monitoring in Satellite-Based Personal Navigation, thesis for the degree of Doctor of Technology, Tampere University of Technology, September 2005
Langley, R., “GPS Receiver System Noise,” GPS World, “Innovation,” June 1997
Lee, H.-K., and J. Wang, and C. Rizos, “Carrier Phase Processing Issues for High Accuracy Integrated GPS/Pseudolite/INS Systems,” Proceedings of 11th IAIN World Congress, Berlin, Germany, 2003
[14] Novatel, UIMU-LCI, Tactical Grade, Low Noise IMU Delivers 3D Position, Velocity and Attitude Solution as Part of SPAN Technology, Novatel, Specifications version 3, 2011
Pratt, M., and B. Burke, and P. Misra, “Single-Epoch Integer Ambiguity Resolution with GPS L1-L2 Carrier Phase Measurements,” Proceedings of ION GPS 1998, pp. 389-398
Realini, E., “goGPS free and constrained relative kinematic positioning with low cost receivers,” Ph.D. thesis, Politecnico Di Milano, 2009
Shirai, T., and N. Kubo, “RTK-GPS Reliability Improvement in Dense Urban Areas,” ION GNSS 2011, Portland, Oregon, USA
Sleewaegen, J., and A. Simsky, W. de Wilde, F. Boon, F., and T. Willems, “Origin and Compensation of GLONASS Interfrequency Carrier Phase Biases in GNSS Receivers,” Proceedings of ION GNSS 2012, Nashville, Tennessee, USA
Takasu, T., “RTKLIB: Open Source Program Package for RTK-GPS,” FOSS4G 2009 Tokyo, Japan, November 2, 2009
Takasu, T., and A. Yasuda, A. (2008) “Cycle Slip Detection and Fixing by MEMS-IMU/GPS Integration for Mobile Environment RTK-GPS,” ION GNSS 2008, Savannah, Georgia, USA, September 16–19, 2008
Takasu, T., and A. Yasuda, (2008b). “Evaluation of RTK-GPS Performance with Low-cost Single-frequency GPS Receivers,” International Symposium on GPS/GNSS 2008, Tokyo, Japan, November 11–14, 2008
Teunissen, P., “Least-squares estimation of the integer GPS ambiguities,” invited lecture, Section IV Theory and Methodology, IAG General Meeting, Beijing, China, 1993
Wang, C., Development of a Low-cost GPS-based Attitude Determination System, Master of Science thesis, Department of Geomatics Engineering, University of Calgary, Alberta, Canada
Wanninger, L., “Carrier-phase inter-frequency biases of GLONASS receivers” Journal of Geodesy, DOI 10.1007/ s00190-011-0502-y, 2011