Introduction

Precise Point Positioning (PPP) is a popular Global Positioning System (GPS) processing strategy, thanks to its high precision without requiring additional GPS infrastructure (Zumberge et al. 1997). Single-Frequency PPP (SF-PPP) takes this one step further by no longer relying on expensive dual-frequency GPS receivers, while maintaining a relatively high positioning accuracy (Le and Tiberius 2007; Choy 2009; Shi et al. 2012). In fact, SF-PPP can be considered the most accurate real-time Global Navigation Satellite System (GNSS) processing strategy that is possible with a low-cost GNSS receiver and without any further requirements on other sensors or supporting GNSS infrastructure. Several different approaches exist to correct for the ionospheric delays in SF-PPP, each with its own performance characteristics. First, the ionosphere can be eliminated from the observations by forming an ionospheric-free combination of the code and phase measurements (Yunck 1993; Choy 2009), but this leads to a long convergence period before a sufficient accuracy is obtained. Second, the ionospheric delay can be parameterized and estimated together with the other unknown parameters, while constraining the ionospheric delay, which reduces the convergence period to some extent (Shi et al. 2012). Finally, the ionosphere can be corrected using sufficiently accurate external ionospheric data without estimating any additional ionospheric parameters (Le and Tiberius 2007). The latter approach almost completely eliminates the convergence period, while keeping a reasonable accuracy, and was demonstrated for the real-time automotive application of lane-level positioning in the motorway, under operational conditions (van Bree et al. 2011; Knoop et al. 2016).

However, the performance was shown to depend strongly on the number of available satellites (de Bakker and Tiberius 2016), limiting the application of SF-PPP to relatively open areas. One way of increasing the number of satellites is by moving from using only GPS to using multiple GNSS simultaneously (Angrisano et al. 2013; Cai et al. 2013; Lou et al. 2016). In this publication, we investigate whether the applicability of real-time SF-PPP with a low-cost receiver for lane identification can be extended to more challenging areas by using multiple GNSS. Several other GNSS might be considered such as the Chinese Beidou or European Galileo system. However, we focus on the Russian GLONASS system, since it is at present the only fully functional GNSS besides GPS. We introduce our approach to multi-GNSS SF-PPP and demonstrate its performance by means of several experiments. Results show that multi-GNSS SF-PPP indeed outperforms GPS-only SF-PPP in particular in case of reduced sky visibility.

SF-PPP model and corrections

The nonlinear GNSS positioning model can be expressed as:

$$y = F\left( x \right) + \varepsilon$$
(1)

where the observations y are a set of nonlinear functions F of the unknown parameters x plus noise ɛ. The model must be linearized around an approximate solution x 0 to solve for the unknown parameters (including the receiver position coordinates) through least-squares estimation. The linearized model can be expressed as:

$$\Delta y = A\Delta x + \varepsilon$$
(2)

where \(\Delta y\) are the observed minus computed observations, \(\Delta x\) are the increments to the approximate solution, and matrix A contains the partial derivatives ∂F/∂x evaluated at x 0.

In our SF-PPP model, the observations are, from each satellite, the pseudorange measurement p and carrier phase measurement ϕ (Le and Tiberius 2007). The unknown parameters are the receiver position coordinates in vector r r and the receiver clock offset t r , both of which are involved in the linearization, one ambiguity a per satellite, associated with the carrier phase measurement, and, for a multi-GNSS model, intersystem biases b (Montenbruck and Hauschild 2013). We consider GPS and GLONASS, which means there is one intersystem bias, which we define as the GLONASS pseudorange delay minus the GPS pseudorange delay at the receiver. In this respect, we take the GPS system as the reference and estimate a bias (or offset) for GLONASS. The observed minus computed observations are:

$$\begin{aligned} \Delta p & = p - p_{0} \\ \Delta \phi & = \phi - \phi_{0} \\ \end{aligned}$$
(3)

where p 0 and ϕ 0 are the computed observations:

$$\begin{aligned} p_{0} & = r^{s} - r_{r,0} + t_{r,0} - t^{s} - \upsilon + n + i + d^{s} \\ \phi_{0} & = r^{s} - r_{r,0} + t_{r,0} - t^{s} - \upsilon + n - i + \varphi_{r} + \varphi^{s} \\ \end{aligned}$$
(4)

with all terms expressed in meters. In the context of PPP, it is important to note that in addition to the linearization around r r,0 and t r,0, the computed observations contain a number of a priori model values for parameters which will not be estimated, including:

  • The precise satellite position coordinates in vector r s, the satellite clock offset t s and the relativistic effect υ. The GPS satellite positions and clock offsets are computed from Keplerian elements (IS-GPS-200D 2004). The GLONASS satellite positions and clock offsets are computed through numerical integration with a fourth-order Runge–Kutta method (GLONASS-ICD 2008). The satellite positions and clock offsets for both systems are then corrected with the IGS real-time service correction stream collected via Ntrip (Caissy et al. 2012).

  • The (neutral) tropospheric delay n. The tropospheric delay is modeled with the a priori Saastamoinen model (Saastamoinen 1972) using the Ifadis mapping function (Ifadis 1986) and parameters from the 1976 US Standard Atmosphere (Stull 1995).

  • The ionospheric delay i and satellite differential code bias d s. The ionospheric delay is computed a priori using the 1-day predicted Global Ionosphere Maps (GIM) from the Center for Orbit Determination in Europe (CODE) together with the corresponding differential code biases (Schaer 1999).

  • The carrier phase observations are corrected for the phase windup at the receiver φ r and satellite φ s (Wu et al. 1993). The user orientation is derived from position differences over time.

Note that besides the satellite differential code biases and the receiver GPS–GLONASS intersystem bias, no explicit hardware delays are present in the model. This is because they cannot be estimated separately. The pseudorange hardware delays are absorbed by the clock offsets both at the receiver (in the estimated receiver clock) and at the satellites (in the precise satellite clocks). The receiver and satellite carrier phase hardware delays are assumed constant and are absorbed by the estimated ambiguities. This is only allowed because the ambiguities are estimated as “floating” real-valued parameters (i.e., they are not fixed to integer values).

Besides the observations, the ambiguity estimate from the previous epoch \(\hat{a}^{ - }\) can be added to the current epoch as an additional observation per satellite, because it is assumed to be constant in the absence of a cycle slip. In this way, the recursive least-squares estimation is performed rigorously with a partially constant state space model. The functional model (disregarding noise) for a single epoch of measurements with pseudoranges and carrier phases of all satellites in view collected in vectors p and ϕ, respectively, and ambiguity estimates in vector a as:

$$\left[ {\begin{array}{*{20}c} {\Delta p} \\ {\Delta \phi } \\ {\hat{a}^{ - } } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} { - G} & u & \delta & {} \\ { - G} & u & \delta & I \\ {} & {} & {} & I \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\Delta r_{r} } \\ {\Delta t_{r} } \\ b \\ a \\ \end{array} } \right]$$
(5)

where G contains the unit direction vectors from the receiver to the satellites, u is a vector with ones, δ is 1 for GLONASS satellites and 0 for GPS satellites, and I is the identity matrix. The computed positions are finally corrected for solid Earth tides with the efficient numerical model of (Sinko 1995). Computed positions result in the ITRF2008 reference frame.

Stochastic model

The corresponding complete variance matrix for the observations of a single epoch is:

$$\left[ {\begin{array}{*{20}c} {Q_{pp} } & {Q_{p\phi } } & {} \\ {Q_{\phi p} } & {Q_{\phi \phi } } & {} \\ {} & {} & {Q_{{\hat{a}\hat{a}}}^{ - } } \\ \end{array} } \right]$$
(6)

where Q pp and Q ϕϕ are the variance matrices of the observed minus computed pseudorange and carrier phase measurements, respectively, Q contains the covariance between the pseudorange and carrier phase measurements, and \(Q_{{\hat{a}\hat{a}}}^{ - }\) is the full variance matrix of the ambiguity estimates carried from the previous epoch, describing their precision.

Observations from different epochs are assumed to be uncorrelated, and consequently, the ambiguity estimates from previous epochs are uncorrelated with the current observations. Observations to different satellites are also assumed to be uncorrelated, which means that Q pp , Q ϕϕ , and Q are diagonal matrices.

The diagonal elements of these matrices should not only account for the measurement noise itself (σ 2 p and σ 2 ϕ ), but also for the uncertainty in the applied PPP corrections and a priori models, and can thus be expressed as the sum of variance components:

$$\begin{aligned} \sigma_{\Delta p}^{2} & = \sigma_{{r^{s} }}^{2} + \sigma_{{t^{s} }}^{2} + \sigma_{n}^{2} /{ \cos }^{2} \left( z \right) + \sigma_{i}^{2} /{ \cos }^{2} \left( {z_{i} } \right) + \sigma_{p}^{2} /{ \cos }^{2} \left( z \right) \\ \sigma_{\Delta \phi }^{2} & = \sigma_{{r^{s} }}^{2} + \sigma_{{t^{s} }}^{2} + \sigma_{n}^{2} /{ \cos }^{2} \left( z \right) + \sigma_{i}^{2} /{ \cos }^{2} \left( {z_{i} } \right) + \sigma_{\phi }^{2} /{ \cos }^{2} \left( z \right) \\ \sigma_{p\phi }^{2} & = \sigma_{{r^{s} }}^{2} + \sigma_{{t^{s} }}^{2} + \sigma_{n}^{2} /{ \cos }^{2} \left( z \right) - \sigma_{i}^{2} /{ \cos }^{2} \left( {z_{i} } \right) \\ \end{aligned}$$
(7)

A number of these terms depend on the zenith angle of the satellite at the receiver z or at the ionospheric pierce point z i . The correlation between the observed minus computed (corrected) pseudorange and carrier phase measurements follows from error propagation. Notice the minus sign for the ionospheric variance component in the correlation term (Shi et al. 2012). Numeric values for each of the different variance components are provided in Table 1.

Table 1 Standard deviation σ in meters for each of the variance components in the stochastic model

Measurement noise

The measurement noise σ 2 p and σ 2 ϕ in m 2, which represents the expected variance of the pseudorange and carrier phase measurements at zenith, is proportional to the square of the pseudorange chip length (λ p ) or carrier wavelength (λ ϕ ), depending on the observation type and inversely proportional to the carrier-to-noise density ratio (c/n 0), (Braasch and Van Dierendonck 1999; Bona and Tiberius 2000):

$$\begin{aligned} & \sigma_{p}^{2} \sim\frac{{\lambda_{p}^{2} }}{{c/n_{0} }} \\ & \sigma_{\phi }^{2} \sim\frac{{\lambda_{\phi }^{2} }}{{c/n_{0} }} \\ \end{aligned}$$
(8)

In our experiments, the measured \(C/N_{0} = 10{}_{{}}^{10} { \log }\left( {c/n_{0} } \right)\) at zenith was on average 3.5 dB-Hz higher for GPS satellites than for GLONASS satellites (see Fig. 1), which leads to a factor of 1.5 in the standard deviation of both types of measurements. For the pseudorange, there is an additional factor of 2 in the standard deviation since the chip length (also called the code wavelength) is larger for GLONASS than for GPS by a factor of 2 (587 vs 293 m). The L1 carrier wavelength is close to 19 cm for both GPS and GLONASS. This leads to a total factor of 3 in the standard deviation of the pseudorange measurements and a factor of 1.5 for the carrier wave measurements between GLONASS and GPS.

Fig. 1
figure 1

Measured carrier-to-noise density ratio C/N 0 versus elevation for GPS and GLONASS satellites. The GPS satellites are received with on average 3.5 dB-Hz more power than the GLONASS satellites (for elevation angles above 60°). The transparent blue (GPS) and red (GLONASS) areas represent all measured values (note the overlap); the solid lines give the mean value for each 1° elevation bin

To explore the expected precision improvement by adding GLONASS to a GPS-only model, taking into account the different measurement accuracies, we consider the following simplified example. Suppose we have a single (GPS) measurement y 1, which directly observes a single unknown parameter x. Then the variance of the estimated parameter becomes equal to the variance of the measurement:

$$\left\{ {\begin{array}{*{20}l} {E\left\{ {y_{1} } \right\} = x} \hfill \\ {D\left\{ {y_{1} } \right\} = \sigma_{y}^{2} } \hfill \\ \end{array} } \right. \Rightarrow D\left\{ {\hat{x}} \right\} = \sigma_{y}^{2}$$
(9)

Now we add a (GLONASS) measurement y 2 which observes the same unknown parameter, with an expected standard deviation three times as large as that of the first observation, and combine both in a least-squares sense:

$$\left\{ {\begin{array}{*{20}l} {E\left\{ {\left[ {\begin{array}{*{20}c} {y_{1} } \\ {y_{2} } \\ \end{array} } \right]} \right\} = x} \hfill \\ {D\left\{ {\left[ {\begin{array}{*{20}c} {y_{1} } \\ {y_{2} } \\ \end{array} } \right]} \right\} = \left[ {\begin{array}{*{20}l} {1^{2} } \hfill & 0 \hfill \\ 0 \hfill & {3^{2} } \hfill \\ \end{array} } \right]\sigma_{y}^{2} } \hfill \\ \end{array} } \right. \Rightarrow D\left\{ {\hat{x}} \right\} = \frac{9}{10}\sigma_{y}^{2}$$
(10)

As shown this reduces the variance of the resulting estimator by 10% (the standard deviation reduces about 5%), not a huge improvement over the single observation. Hence, we can expect that, in cases where GPS-only SF-PPP is already performing well, the advantage of adding GLONASS will be rather limited.

However, there are a number of factors that are not considered in this simple example. Firstly, we only looked at the raw pseudorange measurement noise. The complete stochastic model also involves the carrier phase, the PPP corrections, correlations, and especially for the carrier phase measurements, this will bring the GPS and GLONASS precisions closer together (although the GLONASS corrections can also be expected to be of somewhat lower quality than the GPS corrections). Secondly, the observation model, i.e., the direct observation of the unknown parameter, is very favorable for estimation. In practice, the number of satellites might be low, or the geometry might be unfavorable for position estimation. In those cases the addition of GLONASS satellites might be much more significant. On the other hand, Fig. 4 shows that on average the number of available GLONASS satellites is lower than the number of available GPS satellites, which again reduces the GLONASS contribution. Finally, the example only involves a single epoch of data. If more epochs are considered, the (GLONASS) measurement noise might even out, and GLONASS could contribute to reducing position biases over longer time periods.

Dynamic model

In our default positioning filter, the carrier phase ambiguities are the only parameters propagated from a previous epoch to the current epoch. The receiver position coordinates, the receiver clock offset, and the intersystem bias are estimated each epoch anew—there is no vehicle dynamics model involved. In the following, we will call this the kinematic model.

However, to assess the impact of the time update on the performance, we will also consider two alternative models. First is a static model in which the receiver coordinates are also assumed constant and propagated from a previous epoch to the current epoch. This is the strongest possible position dynamics model, since it adds no uncertainty over time, and can thus provide a lower bound on the resulting position uncertainty. And second is a single-epoch model in which neither the ambiguities nor the position coordinates are propagated, and all unknown parameters are computed from a single epoch of data. With this model, the carrier phase measurements do not contribute to the position estimation, making it essentially a pseudorange-only model. It illustrates a hypothetical situation in which the tracking to each satellite is interrupted between each two epochs, and it provides an upper bound to the position uncertainty.

Integrity monitoring

In parallel with the positioning filter, statistical hypothesis testing is used to detect errors in the observations and propagated ambiguities (e.g., caused by excessive multipath or a cycle slip), based on the DIA procedure (Detection, Identification and Adaptation; Teunissen 1990). If one of the pseudorange measurements is identified, it is removed from the model. If either a carrier phase measurement or ambiguity is identified, the ambiguity for that satellite is reset (i.e., the propagated ambiguity is removed).

Shadowing and multipath

Real-time single-constellation (GPS) SF-PPP was previously shown to provide sub-meter accuracy with short initialization time with a low-end receiver and antenna (Knoop et al. 2016). However, obstruction of the line of sight from the receiver to the satellites (called shadowing) can significantly reduce the number of available satellites in built-up areas and degrade their relative geometry for positioning.

Additionally, reflected signals arriving at the receiver, called multipath, may bias the measurement and consequently the computed position. Integrity monitoring relies on redundancy in the model and is thus weakened if the number of available satellites is reduced, exacerbating the problem.

Therefore, while GPS SF-PPP works well for lane identification and lane mapping on motorways in open areas, it may not work on below-grade open cut motorways, motorways which pass through high-rise areas or motorways with tall roadside noise barriers. We will try to extend the SF-PPP applicability to these types of motorways, by incorporating a second GNSS (GLONASS). This will increase the number of available satellites and might improve the geometry sufficiently to retain the required position accuracy.

Experiments and results

Results from two experiments conducted with a u-blox M8T EVK receiver and supplied antenna are presented. The first experiment involves a stationary receiver on top of the Netherlands Measurement institute (NMi) building in Delft, and the second experiment was conducted with a vehicle driving over the A15, part of the orbital motorway around Rotterdam, in the Netherlands.

The receiver was connected to a raspberry pi 3 or laptop, logging the raw measurements. Precise orbit and clock corrections from the IGS real-time service were collected simultaneously in the office, using the BNC Ntrip client software, and corresponding merged broadcast ephemeris files for GPS and GLONASS were downloaded from the IGS. Predicted ionosphere maps and satellite differential code biases, from CODE, were downloaded prior to the experiment. The positions were then estimated with our multi-GNSS SF-PPP implementation simulating real-time operation, i.e., strictly using data available at the time of measurement only.

Stationary experiment

The receiver was installed on a roof and left to log data from August 10 till August 13, 2016. Data were recorded at 10 Hz (available online; see de Bakker 2017) and processed with a 30-s interval. Figure 2 shows the u-blox M8T antenna placed at the TU Delft GNSS observatory at the NMi building in Delft on a concrete pillar, of which the position is accurately known (x = 3924689.108 m, y = 301134.130 m, z = 5001909.520 m in ITRF2008 at August 10, 2016).

Fig. 2
figure 2

u-blox M8T patch antenna placed on concrete pillar at the TU Delft GNSS observatory on top of the NMi building in Delft

A panoramic view of the surroundings is presented in Fig. 3 which shows that there are few obstructions above the horizon and almost none above 5° of elevation, which is the elevation cutoff angle used during processing.

Fig. 3
figure 3

Panoramic picture of the TU Delft GNSS observatory, with the concrete pillar on the left. There is an unobstructed view of the sky, with the exception of a number of different antennae

Figure 4 shows a skyplot taken at the start of the stationary experiment and the number of satellites over time. There are an average of 10 GPS satellites available and an average of 8 GLONASS satellites for a combined number of available satellites around 18.

Fig. 4
figure 4

Typical skyplot (top panel) and number of satellites versus time (bottom panel) for the stationary experiment. The advantages of the ideal location are obvious with a good number of available satellites and good geometry

The positioning performance is assessed by comparing the computed position to the accurate reference position using the following performance metrics: mean, standard deviation (std), root-mean-square (rms) error and the 95th percentile (95%).

Figure 5 shows the position errors versus time, over all epochs in the top panel. The horizontal components are smaller than 1.22 m at all times; the up component shows 2 spikes to just below 2.75 m. The panels on the second row show the probability distribution with a histogram and a normal distribution with mean and std fitted to the data. The north component shows a 20 cm bias (the mean value) and a std of only 26 cm, while the east component is almost unbiased but has a somewhat higher std of 40 cm. The vertical component has both a larger bias (46 cm) and std (49 cm).

Fig. 5
figure 5

Multi-GNSS SF-PPP errors in north, east and up directions, versus time, and error distributions (top panels), for kinematic processing of stationary data over all epochs. The north and up components show a bias of, respectively, 20 and 46 cm; standard deviations are all smaller than 50 cm. Absolute errors in north, east and up directions (bottom three panels), as a function of the number of epochs since the start of the filter, and rms over all runs. The rms of the position errors decreases from the start of the filter, before it becomes stable after about 100 epochs

The bottom three panels of Fig. 5 present the position errors in the north, east and up directions over the first 200 epochs. For the results in these panels only, all parameters are reset after each 200 epochs, and the filter is restarted. The thin lines represent the 57 individual runs; the thick line shows, at each epoch, the rms over all runs. The computed positions start to converge to the true position as the carrier phase measurements start to contribute more and more to the solution, but the improvement is not very large and gets smaller over time. The top panel already illustrated that the errors do not go to zero, even after 4 days. This is most likely due to nonzero mean errors due to multipath, hardware delays and residual atmosphere delays.

Table 2 provides the performance metrics for the three different dynamic models (single epoch, kinematic and static) using an elevation mask of 5°, after the filter is allowed to converge for 100 epochs. Only the final state is considered. As expected the static positioning performs better than the kinematic positioning, which in turn performs better than single-epoch positioning. We can also see that GPS-only positioning outperforms GLONASS-only positioning. As for the multi-GNSS performance, if we take GPS-only as the baseline, the benefit of adding GLONASS is not very apparent. The performance stays at a comparable level.

Table 2 Positioning performance of the stationary experiment (elevation mask 5°), after the positioning filter has converged for 100 epochs

Under more difficult conditions, and especially also for the motorway experiments, letting the filter converge for 50 min is not very realistic, as the available satellites will change much more quickly, restarting the ambiguity estimation for these satellites each time. Therefore, in the following, we will simply compute the performance metrics over the complete time series, without resetting the filter, for the kinematic model, while only providing fully converged results for the static model. The expected performance of the single-epoch model should not depend on the time that the filter has run at all, although it can vary with, e.g., the number of available satellites. For the stationary data, we present both methods of computing the performance metrics here side by side for comparison.

Table 3 shows the same performance metrics as in Table 2 for the single-epoch and kinematic models, but now computed over all epochs, disregarding filter convergence and without restarting the filter at any time. As expected the single-epoch results are very similar between the two tables as they describe the same uncertainty, only taking a different sampling of the data. The kinematic model also shows comparable performance, especially the horizontal components of the GPS-only and multi-GNSS solutions. The final static errors are comparable in size to the mean values of the kinematic errors. This can be explained, because both results are based on the same measurements, and taking the mean value of the kinematically computed positions, has a similar effect as directly estimating a static position.

Table 3 Positioning performance of the stationary experiment (elevation mask 5°), computed over all epochs, disregarding filter convergence, and final position errors of static processing after 4 days

Figure 6 shows the cumulative distribution of the horizontal position error for the kinematic model and confirms that GPS-only and GPS + GLONASS processing performs at a similar level, and both outperform GLONASS-only processing by a large margin. The percentage of epochs with a position error smaller than 1.75 m is of special relevance, because this equals half of a lane on the motorway and thus illustrates lane-level positioning.

Fig. 6
figure 6

Cumulative distribution of horizontal position errors for kinematic processing of stationary experiment with a 5° elevation mask angle. Position errors are smaller than 1.75 m on all epochs for both GPS-only and multi-GNSS processing and smaller on 74% of all epochs for GLONASS-only

Stationary experiment with reduced sky visibility

Further improving on an already very good GPS-only performance was not the aim and, considering the lower accuracy of the GLONASS signals, could not be expected. Instead, we are more interested in keeping this level of performance under more difficult conditions. Therefore, we have also processed these data with an elevation mask of 30°, to simulate degraded sky visibility. Figure 7 again shows the skyplot for the first epoch and the number of available satellites over time. Comparison to Fig. 4 shows that the number of satellites is about halved. On average there are five GPS, four GLONASS and nine satellites available in total.

Fig. 7
figure 7

Typical skyplot (top panel) and the number of available satellites (bottom panel) during the stationary test, with an elevation cutoff angle of 30°. By applying the 30° elevation cutoff angle, the number of available satellites is about halved, w.r.t. a 5° cutoff angle

The top three panels of Fig. 8 show the time series of position errors for, respectively, GPS-only, GLONASS-only and multi-GNSS SF-PPP. The GPS-only results show large excursions to (well) beyond 5 m. For applications requiring accurate positions, the SF-PPP solution should be considered unavailable at these times. The results also show that the availability of an accurate GLONASS-only solution is very low. The third panel reveals that the combined GPS + GLONASS processing keeps performing very well under these conditions, all errors staying below 5 m and the horizontal components below 1 m most of the time. The small panels on the bottom row of Fig. 8 show the error distributions, and a normal distribution with the same mean and standard deviation. The horizontal components have a bias of about a 10 cm and standard deviation of about 50 cm.

Fig. 8
figure 8

Time series of errors in north, east and up direction for, respectively, GPS-only, GLONASS-only and GPS + GLONASS kinematic processing of stationary data with 30° elevation cutoff (top three panels) and GPS + GLONASS error distribution (bottom panel)

Table 4 shows the results using an elevation mask of 30°. Now the benefit of using multiple GNSS is very clear, as it easily outperforms both GPS-only and GLONASS-only positioning. The values for multi-GNSS performance in north and east direction are of particular interest since they show that lane-level positioning would indeed be possible, while it would be difficult for the single-GNSS options. Note that the final position computed with the static GPS-only and GPS + GLONASS processing has not degraded due to the increased elevation mask angle; in fact the vertical component has improved. This result can be explained as excluding low-elevation satellites also gets rid of most of the multipath, thereby reducing position biases.

Table 4 Positioning performance of the stationary receiver (elevation mask 30°), computed over all epochs, disregarding filter convergence, and final position errors of static processing after 4 days. GPS-only values represent 93.7% of epochs; GLONASS-only values represent 71.5% of epochs; and no solution could be computed at the other epochs

Figure 9 again shows the cumulative distribution of the horizontal position error. Only the GPS + GLONASS solution is available at each epoch (100%), and 98.7% of the time the error is smaller than 1.75 m; the GPS-only solution is available 93.7% of the time and smaller than 1.75 m 87.5% of the time. A GLONASS-only solution could be computed 71.5% of the time, and the horizontal error was smaller than 1.75 m only 9.9% of the time. These results clearly show the benefit of the multi-GNSS approach.

Fig. 9
figure 9

Cumulative distribution of horizontal position errors for kinematic processing of stationary experiment with a 30° elevation mask angle. The GPS + GLONASS error is 98.7% of the time still smaller than 1.75 m; GPS 87.5%, GLONASS-only 9.9%. About 6.3% of the time a GPS solution is not available at all; 28.5% of the time for GLONASS

Automotive experiment: A15 orbital motorway

This experiment was conducted on the east-bound A15 motorway with a 13-m-tall roadside noise barrier (noise abatement wall) in close proximity (about 7 m) to the road on the south side (see Fig. 10). The test vehicle drove at the center of the rightmost lane adding another 1.75 m distance to the barrier. The vehicle itself is about 1.46 m high, and the antenna is mounted on top of the vehicle, which means that the noise barrier obstructs the view to the south up to about 52°, see Fig. 11. The noise barrier is constructed of concrete, metal and glass, leading to a partially permeable barrier for radio waves, reducing satellite reception from this side. The noise barrier is about 1.9 km in length, and after about 600 m there is an overhead cyclist and pedestrian crossing over a metal latticework bridge, see Fig. 10.

Fig. 10
figure 10

A15 motorway with noise barrier and cyclist and pedestrian bridge

Fig. 11
figure 11

Skyplot for the A15 experiment, the noise barrier obstructs the view to the south (hatched area)

Figure 11 shows the skyplot a few minutes into the A15 experiment. The obstruction caused by the noise barrier is shown with the hatched area in cyan. The barrier does not stop all signals (at times satellites with lower elevation were observed), but does strongly reduce satellite reception from the southern direction.

The test trajectory was driven a total of 12 times over the month of October, 2016; data were collected and processed at 10 Hz. The computed positions were inspected visually, and it was determined whether they fall in the correct lane, by overlaying them on a map from the digital topographic database of the Netherlands’ Cadaster, Land Registry and Mapping Agency. Figure 12 shows this map for a small piece of the driven track with a dot for each of the computed positions. The figure shows the motorway lanes, and the emergency stopping lane in gray, the soft shoulder in green and below that the outline of the noise barrier. The thin black lines around the computed positions indicate the lane demarcations. Of all computed positions, 99.6% falls in the correct lane, and all misses are during the initial convergence period and a second reconvergence period after driving under the cyclist and pedestrian bridge, which obstructs most signals.

Fig. 12
figure 12

Small part of the computed positions and smoothed spline on a 5-cm accurate road infrastructure map of the A15 motorway. The coordinates are “Rijksdriehoekscoördinaten,” which is a Dutch coordinate reference system. We subtracted 92,000 m from the x-axis (pointing east) and 430,700 m from the y-axis (pointing north) for better readability

A reference track was obtained by using a smoothing spline on all computed positions together and also drawn in the map. The reference track is accurate enough to assess the position offsets of each sample in cross-track direction, i.e., perpendicular to the driving direction. To this end, the distance of each computed position to the spline is computed. Figure 13 shows the results of these computations for the GPS-only and the GPS + GLONASS solution. The figure clearly shows the convergence period at the beginning, as the filter is just started, and again around 600 m, where the bridge is located. The errors of the converged filter are all within the width of a single lane (dashed lines at 1.75 m to either side), with the exception of a small excursion of the GPS-only solution. The multi-GNSS GPS + GLONASS solution also has a slightly smaller root-mean-square (rms) error than the GPS-only solution (57 vs 60 cm). These rms values are higher than those in the horizontal directions in the stationary experiment, but that is not surprising for several reasons. Firstly, the noise barrier causes a poor satellite geometry for positioning, especially in the cross-track direction, because the reception of all satellites on one side is hindered. In fact this was one of the reasons to select this section of motorway. Secondly, during the automotive experiment, there are more interruptions in the carrier phase measurements, leading to reinitialization of the ambiguity estimation. And, finally, the driver errors cannot be separated from the positioning errors. The vehicle was kept to the center of the lane as closely as possible, but is still expected to drift up to a few decimeters.

Fig. 13
figure 13

Cross-track offset versus traveled distance along noise barrier. There are two initialization points: at the start and at the cyclist and pedestrian bridge. The converged solutions are almost all within the lane

However, the GPS-only solution is still performing very well, with lane-level accuracy available 99.3% of the time (vs 99.6% for the GPS + GLONASS solution). When driving on the motorway even more challenging conditions occur quite regularly, e.g., when overtaking a truck, driving past an even taller obstruction, or when the GPS constellation is less favorable. However, positioning performance under these conditions is difficult to determine empirically, because they only occur for a short time and/or are not easily repeatable. Therefore, we will instead simulate reduced satellite visibility again, by excluding satellites that would be blocked if a truck occupied the lane on the left-hand side (to the north) of the test vehicle. The truck is modeled with a length of 12 m, a height of 4 m and a width of 2.55 m, at a distance of 3.5 m, oriented parallel to the test vehicle, and with a rectangular cross section. With the antenna height of 1.46 m, this gives a maximum obscuration angle of 49°. Figure 14 (top) shows the skyplot including the obstructed view due to the noise barrier to the south and truck to the north. In the following results, satellites in any of the hatched areas in the top panel of Fig. 14 were excluded from processing. The bottom panel of Fig. 14 shows the cumulative distribution of the cross-track position errors. Under these extreme conditions, which start to resemble a so-called urban canyon between high-rise buildings, GPS-only SF-PPP still provides lane-level accuracy 77.7% of the time, but is now outperformed by multi-GNSS SF-PPP which provides lane-level accuracy 83.7% of the time. The rms value of the cross-track position error is also better for GPS + GLONASS (1.42 m) than GPS-only (1.64 m).

Fig. 14
figure 14

(Top panel) Skyplot with obstructed view due to noise barrier to the south and a truck to the north. (Bottom panel) Cumulative distribution of cross-track position error; GPS + GLONASS outperforms GPS-only under these conditions

Conclusions

The results show that GPS + GLONASS multi-GNSS SF-PPP performs well under all circumstances considered in this research. This includes kinematic processing in a reference station-like setup with free view of the sky above 5° elevation and processing with an (imposed) 30° elevation cutoff angle as well as processing of data collected on a motorway chosen specifically for its reduced sky visibility. The noise barrier along the A15 motorway did not prevent lane-level positioning (i.e., accuracy better than 1.75 m) with the SF-PPP method.

Comparisons between GPS-only and GPS + GLONASS results show that the GLONASS addition has a marginal impact in those cases where GPS-only already performs well. This is in line with expectations, given the lower precision of the GLONASS signals with respect to the GPS signals. The long-term mean position coordinates do show some improvement due to the GLONASS addition. However, under more challenging conditions, the differences are striking. The multi-GNSS solution is much more resistant to reduced visibility and keeps performing well even with a 30° cutoff angle (98.7% availability). While the GPS-only performance breaks down, availability of lane-level accuracy decreases considerably. Similarly, lane-level accurate positioning remained possible 83.7% of the time, on the A15 motorway with a tall roadside noise barrier, even if additional signal obstruction was simulated. GLONASS-only processing performs as expected, but does not provide lane-level accuracy.