You are on page 1of 8

GNSS Compare: Performance assessment of

real-time PVT algorithms using raw GNSS


measurements on an Android smartphone
Sebastian Ciuban Mateusz Krainski Dominka Perz Mareike Burba
European Space Agency European Space Agency European Space Agency European Space Agency
ESTEC ESTEC ESTEC ESTEC
Noordwijk, Netherlands Noordwijk, Netherlands Noordwijk, Netherlands Noordwijk, Netherlands
ciuban.sebastian@gmail.com mateusz@krainski.eu dominika.perz@gmail.com mareikeburba@hotmail.com

Abstract—GNSS Compare is the Android mobile application For the development of GNSS Compare [2] there are
that won the first Galileo Android App Competition organized several factors that we have taken into account, apart from
by the European Space Agency (ESA). The application is avail- the competition’s objectives. First, the increased interest of
able for free on Google Play Store and its code framework
is open-source. Its current dual-frequency features allows the the GNSS community since May 2016 when Google an-
possibility of obtaining a position, in real-time, using Galileo nounced the possibility of having access to the GNSS raw
E1, E5a, Ionosphere-Free (IF) combined E1/E5a and Global measurements from smartphones running Android 7 or later.
Positioning System (GPS) L1, L5, IF combined L1/L5 code based As examples, recent studies are investigating multi-GNSS
pseudoranges. In this paper we study and analyze the real-time Position, Velocity and Time (PVT) performances with carrier-
performance of the implemented Position, Velocity and Time
(PVT) estimators such as the Extended Kalman Filter (EKF). smoothed code pseudoranges [3], the benefits brought by the
Furthermore, the EKF innovation vectors are used to study and new dual-frequency mass-market chips [4] and also dedicated
compare the code pseudorange measurements quality from the workshops [5] are being organized to provide insights in this
two frequencies (L1 and L5) of GPS signals. In this way valuable area of research. The second factor is represented by the
insights can be gained on how the signal structures impact the reduced number of free software tools that allow real-time
positioning performance of the mass-market Global Navigation
Satellite System (GNSS) receivers inside the smartphones. processing and analysis of the pseudoranges obtained from the
The information from the real-time algorithms (e.g., innovation mass-market GNSS receivers inside the Android smartphones.
vectors, receiver clock bias estimation, estimated position) is Currently the most widely used software for post-processing
directly logged by GNSS Compare and the retrieved files are and analysis of the Android GNSS raw measurements is the
used for analysis. To the knowledge of the authors there is no GNSS Analysis Tools from Google [6]. The last main factor is
free mobile Android application that have these features in order
to complement the research in the area of smartphone GNSS raw
the need of an open-source code of an Android application that
measurements processing. is able to run real-time PVT algorithms. Algorithms that can
Index Terms—Dual frequency GNSS smartphone, Android be easily customized and do not require in-depth knowledge
GNSS raw measurements, Real-time PVT, EKF innovation vector of Android programming.
We have designed and developed GNSS Compare in order
to accomplish the competition’s objectives and the ones de-
I. I NTRODUCTION rived from the observed factors mentioned above. One of the
features of GNSS Compare is the software framework that
In October 2017 European Space Agency (ESA) has allows the interested persons to further develop and/or extend
launched, internally, the first edition of the Galileo Android the application towards their own needs (e.g., real-time precise
App Competition in cooperation with the European GNSS positioning algorithms, sensor fusion). There is a dedicated,
Agency (GSA) and the European Commission (EC). The however related, scientific paper [7] dealing with the details
challenge was to design a mobile application that processes on how to make use of the application’s novel framework that
the Global Navigation Satellite System (GNSS) raw measure- is also open-source on Github [8].
ments [1], in real-time, on an Android smartphone such that From an algorithmic point of view, we have updated the
it’s able to estimate the user’s position using the European application to support the newly released smartphone Xi-
GNSS Galileo and the American Global Positioning System aomi Mi8 that has a dual-frequency GNSS chip (Broadcom
(GPS), individually or combined. One of the main motivations BCM47755). Therefore, GNSS Compare is able to process
for this competition is related to the interest in how Galileo is the Galileo E1, E5a and GPS L1 Coarse/Acquisition (C/A),
performing in the mass-market GNSS receivers that are used L5 signals to estimate the user’s position. The implemented
in smartphones that support the European GNSS. estimators are Weighted Least Squares (WLS) and Extended
Kalman Filter (EKF) based on code pseudoranges using the
P Ri = ρi + c δtR − δtij + dij,ion + ditrop + ij

Standard Point Positioning (SPP) concept. (1)
In this paper we present an analysis of the Android derived
where the superscript i indicates the ith satellite and the
GPS code based pseudoranges of the dual-frequency smart-
subscript j the frequency for each GNSS constellation (GPS
phone Xiaomi Mi8. The same analysis principles apply also
L1 or L5); ρi is the geometric range between the receiver and
for Galileo, however for this work we focus on GPS only.
the observed satellite; c is the speed of light in vacuum, δtR is
Therefore, in the analysis we investigate: the carrier to noise
the receiver clock bias and δtij is the satellite clock bias that
density ratio (C/N0), the noise power and/or other unmodelled
is computed with the set of coefficients which are frequency
effects in the single-frequency pseudoranges (L1, L5) and in
dependent; dij,ion is the delay caused by the ionosphere and
the Ionosphere-Free (IF) combined ones by examining the
ditrop is the tropospheric delay; ij is the measurement noise,
EKF innovation sequence.
which in the absence of multipath and reduced effects of other
Furthermore, the differences in terms of positioning perfor-
unmodelled error sources (e.g., interference), is a zero mean
mance of the EKF is shown when using solely the single-
gaussian distributed random variable. If we consider ij for
frequency pseudoranges from GPS L1, L5 signals and their
multiple satellites as a vector () then:
IF combination. It is important to mention that the presented
results are retrieved from the internal logged files by GNSS
 ∼ N (0, R) (2)
Compare and that no additional post-processing was made.
This is one of the advantages that the application brings, the where R is the variance-covariance matrix of the measure-
logging of low-level information that can be then visualized ment noise vector.
in any programming environment. It is worth mentioning that δtij should be computed using
In the following sections we first describe the GNSS SPP the clock coefficients from the Legacy Navigation Message
technique and what it involves in terms of algorithms. Then (LNAV) message for single-frequency positioning with L1 and
the measurement models for GPS code pseudoranges are pre- from the Civil Navigation Message (CNAV) for L5. For GPS
sented together with the EKF estimator and its elements (e.g., we can only retrieve the LNAV, therefore we can’t distinguish
dynamic model, process noise model). Finally, we present the the satellite clock coefficients from the SUPL server for L1
test and experiment analysis that were carried for a static user and L5. Considering this, in the present study, we access in
and the conclusions of the results. the GPS related processing the information contained only in
the LNAV message for both L1 and L5.
II. GNSS SPP T ECHNIQUE Equation (1) is non-linear due to the geometric range (ρi ).
The SPP technique involves the usage of the broadcast The linearization can be done around a set of approximate
ephemeris together with a set of coefficients to determine the coordinates (X0 , Y0 , Z0 ) of the user by applying a first order
satellite clock bias. Moreover, the modelling of the signal Taylor series expansion. Therefore, the linearized expression
propagation error sources (e.g., ionosphere, troposphere) is of (1) is:
needed along with an estimator that solves the PVT problem
(e.g., EKF). P Ri − ρi0 − δtij + dij,ion + ditrop = ui · δr + cδtR

(3)
For the retrieval of the broadcast ephemeris and the satel- | {z }
lite clock bias coefficients, GNSS Compare uses a Secure yi
User Plane Location (SUPL) server provided by Google where,
(supl.google.com:7276). The server is able to deliver i
• y is the differenced between the measured and the
the mentioned information for both GPS and Galileo con- predicted pseudorange measurement,
X i − X0 Y i − Y0 Z i − Z0

stellations given a connection to the internet. Moreover, the i
server also supports the Russian Global’naya Navigatsionnaya • u = − ,− ,− represents
ρi0 ρi0 ρi0
Sputnikovaya Sistema (GLONASS). Further in this section we th
the line of sight unit vector towards the i satellite,
present the considered measurement models and the model for • δr = [∆X, ∆Y, ∆Z] is the vector containing the dif-
the EKF in a case of a static user. ferences between the true and the approximate user
position, differences that are regarded as unknowns in
A. Measurement model
this situation.
In order to obtain the code-based pseudoranges from a As example, in the case of 4 observed GPS satellites (G),
smartphone with Android 7.0 version and upwards, one has the linear measurement model can be written as the result of
to apply a set of algorithms to the raw parameters that a matrix-vector multiplication:
are retrieved with the help of the Application Programming  G,1   G,1 
Interface (API). These algorithms are described in the GNSS y u 1 
y G,2  uG,2 1 δrT

Compare’s website (https://gnss-compare.readthedocs.io) and  G,3  =  G,3  (4)
with the code available on [8] which are based on [9]. After y  u 1 cδtR
the pseudoranges are computed, from a mathematical point of y G,4 uG,4 1
view they can be described as follows: |
H
{z }

NAVITEC 2018
In (4) the observation matrix (H) can be used in the dynamic and measurement models. A more insightful view
presented form in a WLS or EKF as long as the receiver clock of the latter statement can be achieved by inspecting the
drift estimation is not of interest. If it is, then H should be expression of Sk :
modified by inserting an additional column of coefficients.
Sk = E (γ k − E [γ k ]) (γ k − E [γ k ])T
 
B. The Extended Kalman filter (10)
= Hk P− T
k H k + Rk .
The Kalman Filter (KF) is able to fuse the information about
In (10) one can observe that the time predicted variance-
how a system is evolving in time (according to a dynamic
covariance matrix of the state vector from (6) is being mapped
model) with the measurements made upon that system. Also
in the measurement domain by the observation matrix (Hk )
the classic KF has two main requirements:
to which the variance-covariance matrix of the measurements
• the dynamic and measurement models to have uncorre-
(Rk ) is added. For this reason γ k is a useful parameter to
lated gaussian distributed noises, analyze the performance of the EKF and the measurement
• the unknowns should be linked to the dynamic and
quality at the same time.
measurement models in a linear form. 2) Dynamic model: There are various dynamic models
In the context of GNSS, the KF is a suitable choice for the considered in the GNSS Compare’s implementation of the
estimation of the PVT [11]. EKF (e.g., for vehicles, pedestrians). In this paper we focus
However, because the GNSS pseudorange measurements on a static user, therefore we define our state vector to be:
require linearization, an EKF was implemented to estimate the
T
PVT. In this particular case, (1) is linearized, at each epoch, x = [xpos xclock ] (11)
around the time predicted coordinates according to the chosen
dynamic model. Further in this subsection we recall the EKF where,
equations, describe the dynamic model for the states of interest • xpos = [X Y Z] is the vector containing the user’s
(position and receiver clock) and the tunning of the filter. cartesian coordinates (meters) in the Earth Centred Earth
1) Equations: Considering a linear relationship between the Fixed (ECEF)
h frame,i
state vector (x) at epoch k and the dynamic model then we • xclock = cδtR cδ̇tR is the vector whos components are
can write the time prediction step as: the receiver clock bias and drift in meters (m) and meters
per second (m/s).
x̂− +
k = Fk x̂k−1 + wk , (5) The next step is to express the transition matrix for the state
vector in (11):
P− + T
k = Fk Pk−1 Fk + Qk (6)  
Fpos 03×2
where the superscripts: ˆ (hat) denotes an estimated quantity, F= . (12)
02×3 Fclock
the − (dash) represents the time prediction and the + (plus)
the measurement update; Fk is the transition matrix; wk In (12) the transition matrix of the user’s position is defined
is the process noise which is assumed to be a zero mean to be:
distributed gaussian random vector [wk ∼ N (0, Qk )] and Pk
is the variance-covariance matrix of the state vector. Fpos = I3 (13)
After the linearization of (1) is done around the time where I3 is a 3×3 identity matrix.
predicted states (5), the measurement update step can begin We implement the dynamic model of the receiver clock
with the computation of the Kalman Gain (Kk ): states (cδtR and cδ̇tR ) as a two-state random process, approach
recommended in [12]:
Kk = P− T − T

k Hk Hk Pk Hk + Rk . (7)  
1 ∆t
The measurement update step for the state vector and Fclock = (14)
0 1
its variance-covariance matrix is finalized according to the
following expressions: in which ∆t is the time difference between epochs.
The further action is to approximate the variance-covariance

x̂+
k = x̂k + Kk γ k , (8) matrix of the process noise (w) also known as the process
− noise matrix (Q). With the help of Q, we take into account
P+
k = (Ik − Kk Hk ) Pk (9)
the miss modelling in the dynamics of the state vector:
where γ k is the innovation vector. It represents the differ-  
ence between the pseudorange measurement and the predicited Qpos 03×2
Q= . (15)
measurement using the information (about position and re- 02×3 Qclock
ceiver clock bias) from the time predicted state vector. From Equation (13) describes a user with static coordinates,
a statistical point of view, γ k is a zero mean gaussian random therefore the miss modelling in this situation can be regarded
vector with a variance-covariance matrix [γ k ∼ N (0, Sk )] as non-existent. This knowledge can be represented in (15) as
that contains both the contribution from the noises in the follows:

NAVITEC 2018
GNSS Compare has two other classes that have the EKFs
Qpos ≈ 03 . (16) designed and tunned for:
• PedestrianStaticExtendedKalmanFilter,
For the clock states, we approximate the process noise
• DynamicExtendedKalmanFilter.
matrix as in [11]:
  The EKFs for the pedestrian and the dynamic user (e.g., car)
Sg 3 Sg 2 are planned to be described in a future paper. For example,
S
 f + ∆t ∆t
Qclock ≈  S 3 2 (17) the EKF for the dynamic user also includes the modelling of

g

2 the velocity. However, their main principles do not differ from
∆t Sg ∆t
2 the static user case.
where,
III. GNSS C OMPARE ’ S U SER I NTERFACE

h0
• Sf ≈ is the Power Spectral Density (PSD) of the
2 In this section, we briefly present a part of the GNSS
white noise,  Compare User Interface (UI).
2
• Sg ≈ 2π h−2 is the PSD of the random walk of the
frequency noise.
In (17) h0 is the power coefficient of the white noise
and h−2 is the power coefficient of the random walk of
the frequency noise. These parameters can be retrieved after
performing an Allan Variance analysis for the receiver’s clock.
3) Tunning: The approach for the tunning of the EKF
presented herein is based on [12] and [13]. This process
involves the choice of values to be assigned in the R and
Q matrices such that it best fits the real situation in the field.
More explicitly, it means how much confidence we allocate
to the measurements and to the dynamic model that will
finally determine the performance of the EKF in estimating the
PVT. We have implemented, as example, the following form
of the measurement noise variance-covariance matrix which
was adapted after [13] assuming no cross-correlations between
satellites:   2
−Ei
Rii = σ02 a + b exp (18)
c
where,
2 2
• σ0 = (10 m) and is the reference variance factor
for the code pseudoranges noises (it has to be adapted
accordingly for L1 and L5),
• a = 0.13, b = 0.53 and c = 10 are unitless parameters
that are determined empirically,
th
• Ei is the elevation of the i satellite.
The values for the power coefficients h0 and h−2 were taken
from [12] and they correspond to a low quality Temperature
Compensated Crystal Oscillator (TCXO):
Fig. 1. GNSS Compare UI: Main Viewer

TABLE I
A LLAN VARIANCE DETERMINED POWER COEFFICIENTS
Fig. 1 is the main view (display) that appears after the
application is started. In the Constellation status part, the user
Timing Standard h0 h−2 can find information regarding the visible satellites, which
TCXO (low quality) 2 × 1e-19 2 × 1e-20
signals are being tracked (e.g., Galileo E5a, GPS L5) and
how many are used in the PVT estimation. By inspecting the
We bring into the attention that the values in Table I are in Calculation results, one can monitor and analyze the real-time
units of seconds. Taken into account that the receiver clock estimation results of the position (latitude, longitude, altitude)
states are expressed in units of meters, when h0 and h−2 are and of the receiver clock bias.
used to approximate (17), they should be converted in the same Furthermore, GNSS Compare offers the option to choose the
units by multiplying them with the square of speed of light. PVT estimator that suits the situation in the field (e.g., static,
The EKF and it’s tunning described above was implemented dynamic) via the UI as seen in Fig. 2. One interesting use
in the StaticExtendedKalmanFilter Java class [8]. is that the PVT estimator can be changed, as example, from

NAVITEC 2018
WLS to Static EKF while the application is running. Such • L1,
feature allows the user to test and validate his/hers algorithms • L5,
and the tunning of them in real-time. • IF combination of L1 and L5.
For each configuration, the logging of the EKF’s output
(innovation vector, receiver clock bias estimation, estimated
position etc.) and other relevant information (satellite IDs,
C/N0, pseudoranges, etc.) was enabled. We also mention that
the initialization of the EKFs was done using the position
information provided by the Android Fine Location through
the Android API [15].
The total duration of the test was approximately 15 minutes
(900 seconds) starting from 8:35 a.m on 16 November 2018.
That specific time window has been chosen in order to have
a good availability and geometry of the GPS satellites that
transmit both on L1 and L5. The number of GPS satellites
able to transmit on L1 and L5 are currently limited to 12. The
satellite visibility planning has been done using Trimble’s free
online tools [16].
B. Performance assessment
The results presented in this subsection are plotted from the
GNSS Compare logged files which are available on the Github
repository [8] in the NAVITEC loggedFiles folder. The archive
within the folder contains the following text files:
• KalmanFilterFileLogger GPS L1,
• KalmanFilterFileLogger GPS L5,
• KalmanFilterFileLogger GPS IF,
• RawMeasurementsFileLogger rawMeasurements.
The last file has the Android GNSS raw parameters logged
in the same format as Google’s GnssLogger App [6]. It can
be useful for post-processing and verification purposes.
We begin the analysis by inspecting the C/N0 values for L1
and L5 from the following satellites: G01, G08, G10, G27 and
G32.

Fig. 2. GNSS Compare UI: Positioning Method

More details about the GNSS Compare’s UI and how


to access the different views can be found in the online
documentation [14].
IV. T EST AND P ERFORMANCE A SSESSMENTS WITH REAL
GPS DATA
A. Description of the test
To give an example with the type of analysis that can be
made with GNSS Compare and its real-time algorithms, a
static test has been conducted. The test was made on the roof
of the Navigation Laboratory of the European Space Research
and Technology Centre (ESTEC) in Noordwijk, Netherlands.
A Xiaomi Mi8 smartphone which has a dual-frequency GNSS
chip (BCM47755) was placed near a reference point whose
coordinates (latitude 52.218469°, longitude 4.419383°, height Fig. 3. Signal strength information over elevation for GPS L1 and L5
58 m) were determined using Real-Time Kinematic (RTK)
techniques. Fig. 3 shows that there is a significant difference between
GNSS Compare was configured to use the GPS signals at the C/N0 values of L1 and L5. This behavior can be related to
1 Hz for PVT estimation in real-time, in parallel, from: the fact that the design of a smartphone antenna able to capture

NAVITEC 2018
i
also the L5 signals represents one of the main challenges [6]. P RIF the variance propagation principle is applied:
Even though the minimum transmit power of the GPS satellites !
2
is expected higher on L5 than L1, the power received by the σ P i
σP2 i = M L1
MT (20)
smartphone on the L5 signals can be notably lower than the IF σP2 i
L5
one seen on the same satellite but on the L1 signal.
Fig. 4 shows over time the innovations from the three EKFs in which σP2 i and σP2 i are the noise variances of the L1 and
L1 L5
that were processing the code-based pseudoranges from L1, L5 L5 code-based pseudoranges. The closed form of (20), given
and L1/L5 IF combination in parallel. The GPS L1 signal has a no cross-correlations between the errors, is:
Binary Phase Shift Keying (BPSK) modulation with a chipping σP2 i = 5.110σP2 i + 1.589σP2 i . (21)
rate of 1.023 MHz, often reprsented as BPSK(1). In the case of IF L1 L5

GPS L5, the same modulation technique is used however with The analysis on the effect of using different signal structures
a chipping rate that is 10 times higher than GPS L1, which and the IF combination can be complemented with a numerical
can be written as BPSK(10). A higher chipping rate causes the one. By computing the standard deviation of the innovations
PSD of the L5 signal to have a wider frequency occupation (σγ ) presented in Fig. 4, one can investigate the different
which also implies a narrower autocorellation function. These measurement noise levels.
characteristics allow more accurate code tracking, better rejec-
tion of narrowband interference, increased robustness against TABLE II
S TANDARD DEVIATION OF THE EKF INNOVATIONS
multipath and improved signal accuracy [17].
Satellite ID σγ,L1 [m] σγ,L5 [m] σγ,IF [m]
G01 2.143 1.494 4.615
G08 2.203 1.284 4.764
G10 2.586 1.111 5.612
G27 2.254 1.529 5.037
G32 1.973 1.107 4.020

Table II shows that for this particular scenario, σγ,L1 is


approximately 1.5 times higher than σγ,L5 , on average. For
the IF case, σγ,IF is roughly 2 times higher than σγ,L1 and
nearly 3.5 times higher than σγ,L5 . From this analysis an
early expectation can be made in the sense that the best
PVT performance is supposed to be given by the L5 only
code-based positioning, followed by L1 and the L1/L5 IF
combination.
The next step in the analysis is to investigate the estimation
of the receiver clock bias by the three EKFs.
Fig. 4. EKF innovations over time

The effect of the BPSK(1) and BPSK(10) can be visually


observed, at the measurement level, in the above figure. For
L5 the innovations are lower in magnitude and variation when
compared with the ones of L1. This means that the L5 code-
based pseudoranges have a better quality.
Regarding the IF combination of L1 and L5, the obtained
innovations have the highest variance. The main gain of this
linear combination is the removal of the first-order ionospheric
delay up to 99.9% [13]. However the variance of the noise of
the IF combined pseudoranges is approximately more than
five times higher than the original ones. This can be proven
mathematically by viewing the IF combination equation as a
matrix-vector multiplication:
2 2 i
  
i fL1 fL5 P RL1
P RIF = 2 − f2 − 2 − f2 i (19)
fL1 L5 fL1 L5
P RL5
| {z } Fig. 5. EKF estimation of the receiver clock bias
M

where fL1 and fL5 are the frequencies for L1 (1575.42 In Fig. 5 the receiver clock bias behavior is consistent
MHz) and L5 (1176.45 MHz). In order to find the variance of between the presented cases. The bias reached a value around

NAVITEC 2018
210 km in 10 minutes, which means roughly a drift of 350 m/s. V. C ONCLUSIONS
This is in line with the TCXO frequency stability of few parts
The design of the GNSS Compare Android application [2],
per million (ppm). With such type of analysis is possible to
its open-source code [8] and online documentation [14] ad-
form a good idea about the performances given by the internal
dresses the issue of the reduced number of free tools for
receiver clock of the Xiaomi Mi8.
Android GNSS raw measurements processing in real-time.
Taking into account that the measurement quality for the It has been shown the possibility of in-depth analysis using
code-based pseudoranges from GPS L1, L5 and L1/L5 IF the GNSS raw measurements from a dual-frequency smart-
combination have been investigated along with the analysis phone Xiaomi Mi8. The retrieved code-based pseudoranges
of the receiver clock bias estimation, the discussion about the from GPS L1, L5 and their IF combination were processed
positioning performance can follow. in three parallel EKFs, in real-time, to estimate the position
of a static user. For the analysis, the output of the EKFs
(innovation vector, receiver clock bias estimation, position
estimation, etc.) was logged in files that are available online
on GNSS Compare’s Github repository [8] .
From the example of analysis that can be done with GNSS
Compare presented in this paper, several observations can be
made:
• the utility of running multiple EKFs in real-time using
different GNSS signals (GPS L1 and GPS L5),
• the effect of the GNSS signal structures (L1 compared to
L5) in the EKF innovations,
• the measurement noise increase of the GPS L1/L5 IF
combination,
• the horizontal positioning performance of the three EKFs.

GNSS Compare has received highly encouraging feedback


from the communities represented by scientists and software
developers. Currently, the application has already several
Fig. 6. Horizontal positioning error prizes:
st
• 1 place at the first edition of Galileo Android App
Fig. 6 is representing the error on X direction (∆X) and Competition organized by ESA [18],
st
Y (∆Y ) direction, in the ECEF frame, of the estimated • 1 place at the European Satellite Navigation Competi-

positions. The expectation formed from the analysis of the tion (ESNC) Living Lab Prize [19],
nd
EKF innovations (Fig. 4) is confirmed, in the sense that • 2 at the ESNC Czech Republic Challenge [20].
the best performance is given by the GPS L5 code-based The competitions above also evaluated the business potential
pseudoranges followed by L1 and the L1/L5 IF. of the initiative and not only the technical related aspects. At
To quantify the position estimation performances, the Root present, GNSS Compare has over 3.600 downloads and over
Mean Square Error (RMSE) measure has been chosen. Ta- 2.000 users.
ble III contains the RMSE values for the horizontal (2D)
position domain for all the three cases. VI. F UTURE WORK
For the future work, we plan to extend our analysis to
TABLE III
Galileo E1 and E5a signals and our real-time algorithms (e.g.,
2D ROOT M EAN S QUARE E RRORS Precise Point Positioning, sensor fusion). Furthermore, we also
intend to use the software framework of the application [7]
Estimator EKF L1 EKF L5 EKF L1/L5 IF
to investigate the advantages of sharing low-level GNSS
2D RMSE [m] 1.738 1.449 2.239
data (atmospheric corrections, EKF innovations, etc.) between
multiple users over the internet. The concept is similar to the
For this scenario, the L1/L5 IF combination gives the one for Cooperative Intelligent Transportation Systems (C-
least performance even if the first-order ionosphere delay ITS) [21] and it has the potential to improve the positioning
is removed up to 99.9% from the pseudoranges. When the accuracy, reliability, availability and robustness of GNSS in
ionosphere is less active (morning), the delays caused by it harsh environments (e.g., urban areas).
are not major, therefore the IF combination noise decreases
ACKNOWLEDGMENT
the measurements quality (in the absence of other effects like
multipath). The ionospheric delay from the L1 and L5 code- The developers of GNSS Compare would like to thank the
based pseudoranges was corrected with the Klobuchar model. ESA’s Directorate of Navigation (D/NAV) and Directorate of

NAVITEC 2018
Technology, Engineering and Quality (D/TEC) for the sup- [22] GPS World, “GNSS Compare app now available for
port throughout the development and improvement of GNSS download”, 2018. Available: https://www.gpsworld.com/
gnss-compare-app-now-available-for-download/.
Compare. We also highly appreciate the support of ESA for [23] The ChocolaTeam, “Callisto - Galileo’s Spaceship”, 2018. Available:
the promotion of the application in the online press (GPS https://play.google.com/store/apps/details?id=com.chocolateam.
World [22]), social media and during ESTEC’s Open Days. galileogame.
As a result of these actions, GNSS Compare accumulated over
3.000 downloads.
Further appreciation is given to the following ESA employ-
ees who have shared their knowledge and experiences with
us: Paolo Crosta, Nityaporn Sirikan, Gaetano Galluzzo, Paolo
Zoccarato, and Tim Watterton.
Finally, special thanks to Matej Poliacek and Peter Vanik
from the ChocolaTeam, who have trusted the framework we’ve
developed and are using it as the calculation back-end of their
application [23].

R EFERENCES
[1] European Space Agency , ”ESA trainees compete in inaugural Galileo
App contest”. Available: https://m.esa.int/Our Activities/Navigation/
ESA trainees compete in inaugural Galileo app contest.
[2] GNSS Compare on Google Play Store. Available: https://play.google.
com/store/apps/details?id=com.galfins.gnss compare.
[3] R. Warnat and L. Van De Vyvere, ”Positioning with Single and Dual
Frequency Smartphones Running Android 7 or Later”, ION GNSS+
2018, September 2018.
[4] P. Crosta, P. Zoccarato, and R. Lucas Rodriguez, ”Dual Frequency Mass-
market Chips: Test Results and Ways to Optimize PVT Performance”,
ION GNSS+ 2018, September 2018.
[5] European GNSS Agency (GSA), Workshop on ”GNSS Raw Measure-
ments: From research to commercial use”, May 2018.
[6] F. van Diggelen and M. Khider, ”GNSS Analysis Tools from Google”,
Inside GNSS, March/April 2018.
[7] M. Krainski, S. Ciuban, D. Perz, and M. Burba ”GNSS Compare: A
novel software framework for processing raw GNSS measurements on
an Android smartphone”, NAVITEC 2018, December 2018.
[8] GNSS Compare open-source code. Available: https://github.com/
TheGalfins/GNSS Compare.
[9] European GNSS Agency (GSA), ”White Paper on using GNSS Raw
Measurements on Android devices”, January 2018.
[10] European GNSS Service Centre (GSC), ”European GNSS (Galileo)
Open Service: Signal-In-Space Interface Control Document”, December
2016.
[11] M. Petovello, ”GNSS Filtering Options”, Inside GNSS, March/April
2013.
[12] R. Grover Brown and P.Y.C Hwang ”Introduction to Random Signals
and Applied Kalman Filtering”, Fourth Edition, February 2012.
[13] J. Sanz Subirana, J.M. Juan Zornoza and M. Hernandez-Pajares ”GNSS
DATA PROCESSING Volume I: Fundamentals and Algorithms”, May
2013.
[14] GNSS Compare Online Documentation. Available: https:
//gnss-compare.readthedocs.io.
[15] Android Location Strategies. https://developer.android.com/guide/topics/
location/strategies.
[16] Trimble GNSS Planning Online. Available: https://www.
gnssplanningonline.com.
[17] J.W. Betz, ”Engineering Satellite-Based Navigation and Timing: Global
Navigation Satellite Systems, Signals, and Receivers”, Wiley-IEEE
Press, December 2015.
[18] European Space Agency, “ESA trainees compete in inaugural Galileo
app contest”, 2018. Available: https://www.esa.int/Our Activities/
Navigation/ESA trainees compete in inaugural Galileo app contest.
[19] European Satellite Navigation Competition, “GNSS Living Lab Prize”,
2018. Available: https://www.esnc.eu/prize/living-lab/.
[20] European Satellite Navigation Competition, “Czech Republic Chal-
lenge”, 2018. Available: https://www.esnc.eu/prize/czech-republic/.
[21] European Transport Safety Council, “Cooperative Intelligent Transport
Systems (C-ITS) ”, November 2017.

NAVITEC 2018

You might also like