GNSS Positioning Using Mobile Devices with the Android Operating System

: The access and the use of the global navigation satellite system (GNSS) pseudo-range and carrier-phase measurements mobile devices as smartphones and tablets with an Android operating system has transformed the concept of accurate positioning with mobile devices. In this work, the comparison of positioning performances obtained with a smartphone and an external mass-market GNSS receiver both in real-time and post-processing is made. Particular attention is also paid to accuracy and precision of positioning results, also analyzing the possibility of estimating the phase ambiguities as integer values (ﬁxed positioning) that it is still challenging for mass-market devices. The precisions and accuracies obtained with the mass-market receiver were about 5 cm and 1 cm both for real-time and post-processing solutions, respectively, while those obtained with a smartphone were slightly worse (few meters in some cases) due to the noise of its measurements.


Introduction
Nowadays, smartphone technology is widespread. Almost everybody has one. It is not only used for calling but also to navigate to destinations and sometimes to share their location. Thus, navigation systems have become an important part of everyday life.
In the absence of global navigation satellite system (GNSS) signals or in any situation where the signal is disturbed or shielded, such as an urban canyon or partially indoors [1], other sensors embedded in smartphone devices provide reliable information for performing navigation and positioning [2].
To devise a successful outdoor navigation solution, it is important to understand the quality and accuracy of smartphones' integrated sensors [3]. Using smartphone can provide good accuracy using assisted GNSS (A-GNSS) systems, which can obtain the required data from other GNSS permanent stations or from an internet-connected server [4]. In both cases, it is mandatory to have access to GNSS raw measurements, as pseudo ranges and carrier-phase.
Typically, each modern Smartphone has an internal GNSS receiver, and since 2017, it has been possible to have GNSS raw data by mobile platform; likewise high-level Application Programming Interface (API), so it means that it is possible to get raw measurements from GNSS receivers for performing precise positioning (also using a single frequency chipset).
Thus, with the advent of the Android Nougat operating system (version 7.x or 8.x), some smart devices allow direct access to raw data and the PVT (position velocity time) solution by acquiring pseudo ranges and carrier-phase from the chipset inside [5,6]. Many other sensors are available today on smartphones; most of them are related to internal applications (e.g., proximity sensor, light sensors), while others (e.g., inertial measurements unit and camera) can be used for estimating a positioning solution, but these aspects are out of the scope of this paper. The ability to store and provide raw observations directly from the Android operating system API makes smartphones very interesting

GNSS Positioning Technique with Smartphones
Only by measuring the distances (pseudo ranges) between the user's receiver and the position of at least four satellites of the same constellation, is it possible to obtain a GNSS solution [10,11]. The distance between receiver and satellite is proportional to the signal propagation time if the transmitter and receiver clock are perfectly synchronized. As is widely known, if this condition is not satisfied, then the satellites' and receivers' clock biases have to be estimated. Moreover, other biases affect GNSS signals, such as thermal noise, uncompensated biases, multipath, and other propagation effects. Nevertheless, the main error source is given by two atmospheric propagation effects: the ionospheric and tropospheric delays and sometimes the ionospheric scintillations (only in particular conditions). If you do not estimate or remove these biases, the positioning error can be greater than 30 m, making the GNSS positioning useless for most applications. For solving these issues, one of these two principal approaches can be adopted, as widely described in the literature: the post-processing or real-time techniques. This last method can be used when the required accuracy has to be 5 cm at least [12], a condition that cannot be generally satisfied and obtained especially considering smart devices, such as smartphones or tablets [13,14].
If the previous level of accuracy is not enough or if it is not possible to estimate some biases in real-time in an accurate way, the post-processing approach is the only method that allows reaching better performances, exploiting, for example, the use of two or more frequencies, as in case of geodetic or handled receivers [15]. The use of these kinds of devices was really expensive, and only research institutes and few private companies were able to buy and use them. But starting from the last decade, with the advent of mass-market receivers, GNSS positioning has become more common because the cost of GNSS receivers and antennas has decreased to few US dollars, and many open source applications have increased the diffusion of these devices and techniques.
Most GNSS receivers available inside smartphones are only single-frequency (and not multi-frequency [16]) receivers, so all collected measurements are referred to the L1 frequency (L1 band). In this case, it is not possible to apply neither the most common differencing methods, also known as double or triple differences [12,15], nor to combine different observations [17]. Therefore, the only two possible solutions are represented by the single difference approach (considering one receiver and a reference satellite) or to model most of the GNSS biases (e.g., ionospheric and tropospheric delays, satellite and receiver clock drifts) using mathematical models [18].

Materials and Methods
As just described in the introduction section, many different tests were done both in static and kinematic conditions. Two different smartphones, the Huawei P10+ and the Samsung Galaxy S8+, were employed in these tests. Their main characteristics are summarized in Table 1, as well as those of the u-blox NEO M8T GNSS receiver, used as a comparison (reference) system. and a reference satellite) or to model most of the GNSS biases (e.g., ionospheric and tropospheric delays, satellite and receiver clock drifts) using mathematical models [18].

Materials and Methods
As just described in the introduction section, many different tests were done both in static and kinematic conditions. Two different smartphones, the Huawei P10+ and the Samsung Galaxy S8+, were employed in these tests. Their main characteristics are summarized in Table 1, as well as those of the ublox NEO M8T GNSS receiver, used as a comparison (reference) system. To generalize the results in terms of environmental conditions, two different test sites were investigated: the first test-site was one the rooves at Politecnico di Torino (Italy), an area where the noise and multipath effects are very high and where the satellite visibility is reduced due to the presence of other buildings. The second one was an open-sky site characterized by the absence of reflective surfaces, electromagnetic disturbances, and with optimal conditions for tracking satellites (e.g., no obstructions). These two sites, namely A and B, depicted in Figure 1, respectively, represent the two main conditions where a user works or tries to perform positioning activities. and a reference satellite) or to model most of the GNSS biases (e.g., ionospheric and tropospheric delays, satellite and receiver clock drifts) using mathematical models [18].

Materials and Methods
As just described in the introduction section, many different tests were done both in static and kinematic conditions. Two different smartphones, the Huawei P10+ and the Samsung Galaxy S8+, were employed in these tests. Their main characteristics are summarized in Table 1, as well as those of the ublox NEO M8T GNSS receiver, used as a comparison (reference) system. To generalize the results in terms of environmental conditions, two different test sites were investigated: the first test-site was one the rooves at Politecnico di Torino (Italy), an area where the noise and multipath effects are very high and where the satellite visibility is reduced due to the presence of other buildings. The second one was an open-sky site characterized by the absence of reflective surfaces, electromagnetic disturbances, and with optimal conditions for tracking satellites (e.g., no obstructions). These two sites, namely A and B, depicted in Figure 1, respectively, represent the two main conditions where a user works or tries to perform positioning activities. and a reference satellite) or to model most of the GNSS biases (e.g., ionospheric and tropospheric delays, satellite and receiver clock drifts) using mathematical models [18].

Materials and Methods
As just described in the introduction section, many different tests were done both in static and kinematic conditions. Two different smartphones, the Huawei P10+ and the Samsung Galaxy S8+, were employed in these tests. Their main characteristics are summarized in Table 1, as well as those of the ublox NEO M8T GNSS receiver, used as a comparison (reference) system. To generalize the results in terms of environmental conditions, two different test sites were investigated: the first test-site was one the rooves at Politecnico di Torino (Italy), an area where the noise and multipath effects are very high and where the satellite visibility is reduced due to the presence of other buildings. The second one was an open-sky site characterized by the absence of reflective surfaces, electromagnetic disturbances, and with optimal conditions for tracking satellites (e.g., no obstructions). These two sites, namely A and B, depicted in Figure 1, respectively, represent the two main conditions where a user works or tries to perform positioning activities.
To generalize the results in terms of environmental conditions, two different test sites were investigated: the first test-site was one the rooves at Politecnico di Torino (Italy), an area where the noise and multipath effects are very high and where the satellite visibility is reduced due to the presence of other buildings. The second one was an open-sky site characterized by the absence of reflective surfaces, electromagnetic disturbances, and with optimal conditions for tracking satellites (e.g., no obstructions). These two sites, namely A and B, depicted in Figure 1, respectively, represent the two main conditions where a user works or tries to perform positioning activities. and a reference satellite) or to model most of the GNSS biases (e.g., ionospheric and tropospheric delays, satellite and receiver clock drifts) using mathematical models [18].

Materials and Methods
As just described in the introduction section, many different tests were done both in static and kinematic conditions. Two different smartphones, the Huawei P10+ and the Samsung Galaxy S8+, were employed in these tests. Their main characteristics are summarized in Table 1, as well as those of the ublox NEO M8T GNSS receiver, used as a comparison (reference) system. To generalize the results in terms of environmental conditions, two different test sites were investigated: the first test-site was one the rooves at Politecnico di Torino (Italy), an area where the noise and multipath effects are very high and where the satellite visibility is reduced due to the presence of other buildings. The second one was an open-sky site characterized by the absence of reflective surfaces, electromagnetic disturbances, and with optimal conditions for tracking satellites (e.g., no obstructions). These two sites, namely A and B, depicted in Figure 1, respectively, represent the two main conditions where a user works or tries to perform positioning activities. Coupled with the two smartphones, the u-blox receiver was also used. This instrument needs software installed on an external device for collecting both the raw-measurements and the real-time results. There are many software available today on the market (e.g., those proposed in [19]) that can exploit the owner binary format (.ubx) for obtaining Receiver INdependent EXchange format (RINEX) files or real-time solutions. In this work, we used the RTKLIB suite (version 2.4.3) both for extracting the raw data, for converting them in RINEX (using the RTKCONV tool), and for performing the post-processing (using the RTKPOST tool) and real-time (using the RTKNAVI tool) solutions. This software is particularly interesting because it is an open source program package for standard and precise positioning with GNSS many constellations (GPS, GLONASS, Galileo, BeiDou, QZSS, SBAS) and supports various positioning modes with GNSS for both real-time and post-processing approaches: single, differential GPS/GNSS (DGPS/DGNSS), kinematic, static, moving-baseline, fixed, PPP-kinematic (precise point positioning kinematic), PPP-static, and PPP-fixed. It also includes a graphical user interface (GUI) and command-line user interface (CUI) with many library functions related to satellite and navigation system functions, stream data input and output functions, standard, real-time, and post-processing positioning. This software, as already described in the literature [20], is particularly interesting because it allows managing the stream data coming from a network of permanent stations using the Networked Transport of RTCM via Internet Protocol (NTRIP) authentication. In addition, RTKLIB allows fixing the phase ambiguities as integer values, applying the modified Least-squares AMBiguity Decorrelation Adjustment (LAMBDA) method (MLAMBDA) [21], an interesting and very famous technique, especially for real-time applications, where computational speed is mandatory [22].
Unfortunately, RTKLIB is not useful for the smartphone because it is not still available as an app. Thus, in this case, the GEO++ RINEX app was used to help to get the raw measurements and to store these into a RINEX file. This application is a RINEX parser and an observation analyzer which allows defining specific parameters to extract only the useful data for the user. In particular, it is possible to choose which constellation to store and the RINEX format version. The methodology of this work is summarized in Figure 2. Coupled with the two smartphones, the u-blox receiver was also used. This instrument needs software installed on an external device for collecting both the raw-measurements and the real-time results. There are many software available today on the market (e.g., those proposed in [19]) that can exploit the owner binary format (.ubx) for obtaining Receiver INdependent EXchange format (RINEX) files or real-time solutions. In this work, we used the RTKLIB suite (version 2.4.3) both for extracting the raw data, for converting them in RINEX (using the RTKCONV tool), and for performing the postprocessing (using the RTKPOST tool) and real-time (using the RTKNAVI tool) solutions. This software is particularly interesting because it is an open source program package for standard and precise positioning with GNSS many constellations (GPS, GLONASS, Galileo, BeiDou, QZSS, SBAS) and supports various positioning modes with GNSS for both real-time and post-processing approaches: single, differential GPS/GNSS (DGPS/DGNSS), kinematic, static, moving-baseline, fixed, PPPkinematic (precise point positioning kinematic), PPP-static, and PPP-fixed. It also includes a graphical user interface (GUI) and command-line user interface (CUI) with many library functions related to satellite and navigation system functions, stream data input and output functions, standard, real-time, and post-processing positioning. This software, as already described in the literature [20], is particularly interesting because it allows managing the stream data coming from a network of permanent stations using the Networked Transport of RTCM via Internet Protocol (NTRIP) authentication. In addition, RTKLIB allows fixing the phase ambiguities as integer values, applying the modified Least-squares AMBiguity Decorrelation Adjustment (LAMBDA) method (MLAMBDA) [21], an interesting and very famous technique, especially for real-time applications, where computational speed is mandatory [22].
Unfortunately, RTKLIB is not useful for the smartphone because it is not still available as an app. Thus, in this case, the GEO++ RINEX app was used to help to get the raw measurements and to store these into a RINEX file. This application is a RINEX parser and an observation analyzer which allows defining specific parameters to extract only the useful data for the user. In particular, it is possible to choose which constellation to store and the RINEX format version. The methodology of this work is summarized in Figure 2.

Results and Discussion
Since different tests were conducted following both static and kinematic approaches, as described in the previous section, now the main interesting results are shown, also considering the

Results and Discussion
Since different tests were conducted following both static and kinematic approaches, as described in the previous section, now the main interesting results are shown, also considering the two different software used for the post-processing analysis. To make a more readable paper, these results will be shown and commented on in two sub-sections, the first related to the behavior considering the two different environments and the second comparing the smartphones' results with those obtained with the u-blox receiver. In both cases, the results were obtained considering the post-processing approach, while in the third Section 4.3, the real-time results will be shown. We have considered two main statistical information for analyzing the obtained results: the precision estimated through the root mean square error (RMSE) and the accuracy as the difference between the mean estimated values and the reference ones.

Positioning Performances Considering Different Environments
First, the behavior of the GNSS internal chipset was analyzed considering a post-processing approach. As it is well known, to perform a relative post-processing approach, it is necessary to consider a master station, that in this case is represented by the TORI (Turin) permanent station: this GNSS station, that belongs to the European Reference Frame (EUREF) permanent GNSS network (www.epncb.oma.be), is composed by a multi-frequency and multi-constellation receiver and a choke ring antenna and is about 250 m distance from the test sites.
Both smartphones were settled in two different test sites previously cited, reference points, which coordinates were known with an accuracy level of a few millimeters. Regarding site A, the coordinate of the point was measured statically with a geodetic receiver (Leica GS14 receiver) for several hours and then post-processed. The point in site B is part of the national geodetic network. The first analyses were made considering the RTKLIB software and different positioning techniques: single point positioning (SPP), static, and kinematic. Moreover, different sessions' lengths were considered (10, 30, and 60 min) to verify if there was a correlation between the length of the session and the precision of the solutions. The results are presented in Tables 2 and 3. All solutions were obtained by applying the following atmospheric corrections. The Saastamoinen model was used to mitigate the tropospheric delay using dry and wet components, while the Klobuchar model for the ionospheric one, setting the cut off elevation as 10 • . All results were obtained fixing the phase ambiguities as integer values, according to the "Fix and hold" method [18].  Analysing the results in Tables 2 and 3, it seems that location A was noisier than B because the precision obtained in the first case was lower because of multipath effects due to reflective surfaces and limited satellites' visibility. At the same time, it seems that there was no correlation between the session length and the precision, that generally happens if geodetic or handled receivers are used. This is due to the quality of the raw measurements, that are noisier than those obtainable with other mass-market receivers, such as the u-blox. The analysis of the signal is not the topic of this paper, but the same devices were analyzed in [23].
Even in the case of the kinematic solutions, the smartphones were settled in a fixed place as a static survey. The only difference was due to the different transition matrix considered in the Kalman filter. By analyzing these results, it is possible to affirm that this kind of method was not feasible for these instruments, so it will be neglected in the following sections of this work.
For verifying the repeatability of these results, another dataset in the same places, with the same techniques, was collected. Considering only the Huawei P10+ and the RTKLIB (Table 4), it seems that there were no evident differences with those obtained in the other data collection.
The same dataset was also processed with the Leica Geo Office 8.3 software, to obtain another independent solution to demonstrate that the performances obtainable today with smartphones are independent of the software used for processing. Table 5 shows the results obtained with Huawei P10+ smartphone and demonstrates that the results obtained with this commercial software were generally slightly better than those obtained with RTKLIB, even if the behavior in terms of session length and environmental conditions was the same. Even if no results are reported here, it is important to underline that no differences could be found when the Samsung Galaxy S8+ smartphone was used.

Comparison between U-Blox and Smartphones Results
Another dedicated test was performed for comparing the results obtained with the smartphones and those with the other low-cost receiver (u-blox). All receivers were settled only on the site with the best satellite visibility (site B), close to each other, to verify the performances in the best possible conditions (good satellite visibility, no obstacles, or electromagnetic disturbances).
The authors performed two different measurement campaigns with a session length of 10 mins and 30 mins, respectively. In the first case (Table 6), it seems that the smartphones' performances were better than those obtainable with the u-blox receiver. This is really a strange behavior and was not confirmed if the longer session is analyzed (Table 7). This strange result is probably due to the noise of the raw GNSS measurements collected by the smartphone. Generally, it is really difficult to filter and de-noise these observations. Particularly interesting is the analysis of precision and accuracy obtainable. Tables 8-10 show these values for session length of about 1 h, 30 min, and 10 min, respectively.  According to the Table 5, the results are more accurate than precise for smartphone while u-blox provides better results both for accuracy and precision during the same time interval. For the session length equal to 30 minutes (Table 9) the smartphone results are slightly worse than in the previous case because the session length is half of that (Table 8).

Real-Time Kinematic Positioning
The main concept behind the real-time kinematic (RTK) positioning is that you need to obtain real-time differential corrections broadcasted by one or more permanent stations. In this work, the "Servizio di Posizionamento Interregionale" GNSS (SPIN GNSS) Network (https://www.spingnss.it/ spiderweb/frmIndex.aspx) was considered, selecting the Virtual Reference Station (VRS) as differential correction, and the Radio Technical Commission for Maritime (RTCM) 3.0 message for the broadcasted throw. To use both u-blox and smartphone contemporarily, it is necessary to have the GNSS Internet Radio software (https://igs.bkg.bund.de/ntrip/download) that allows obtaining the differential corrections for a location near to the test site. This last software also allows us to save the corrections in a text file, to provide the same input data for both the u-blox and smartphone. Then, the RTKNAVI tool that is part of the RTKLIB software, was used to perform the network real-time kinematic (NRTK) positioning.
Even in this case, the authors performed two different measurement campaigns with a session length of 5 and 10 minutes, respectively. This choice was due to the time interval that a generic user can wait for obtaining a positioning accuracy of about 5 cm, as described in [12]. As in the previous case, the test site that is in the open-sky area (site B) was chosen. Nevertheless, using the Huawei P10+ smartphone, no signal observation with phase ambiguities fixed as an integer value [24] were obtained, as it is possible to see from Table 11. Completely different results were obtained considering the u-blox receiver (Table 12). In this case, in 83% of solutions, the phase ambiguities were fixed as integer values, and the accuracies were about 3-4 cm both for 2D and up component. The second part of this analysis regards the positioning quality for observation epochs, where the phase ambiguities are not fixed (float solutions). Analyzing these results, it should be emphasized that the u-blox receiver provided precisions comparable to the fixed solutions, while accuracies were around 40 cm for both 2D and up components.  Considering Tables 11 and 13, it is evident how these two different smartphones provided completely different results, not only in terms of percentage of fix solutions but also in terms of precision and accuracy. The Samsung S8+ provided good results in terms of accuracy, even if the precision values were not so elevated, reaching a low percentage of fix epochs (14%). The behavior of Huawei P10+ results was completely different. The accuracies were in the interval between 3.18 m and 5.52 m, while the precisions were within 2.67 m and 4.88 m. Moreover, no fix solutions were available with this kind of device. This means that also considering previous studies [18], not all GNSS receivers installed inside smartphones can provide the same results because the raw observations have different conditions in terms of noise and accuracy. For the future, it will be interesting to perform the same tests considering new GNSS chipsets and the employment of new GNSS constellations and signals.

Conclusions
Until a few years ago, low-cost sensors and smart technologies were considered as "mass-market" solutions, able to estimate a very approximate positioning and adapt only for navigation or geolocalization. Nowadays, new technologies, new user requirements, new platforms (e.g., Android 8.0), and new challenges have allowed a very powerful "geomatics" tool to be brought to our hands. The modern smartphones or mass-market receivers are able to reach very impressive quality, both in static or kinematic positioning, widening the doors to an enormous quantity of applications and research fields. UAV, pedestrian positioning, unmanned ground vehicle, object tracking, security issues, are only a short list of possible domains where the quality reachable with these kinds of sensors could be exhaustive. The improvement is also allowed by the quality of the GNSS signals, the modern infrastructure dedicated to GNSS positioning (e.g., CORS, network, NRTK, etc.), and by the increasing interest due to user communities and big players in the use of these technologies for high-quality positioning.
In this paper, it is strongly demonstrated that the quality of the signals collected using these technologies is completely able to reach good positioning. Surely, by combining the sensors with a better external antenna, the performances could be better, and other possible applications could be founded. We have presented the results obtained with only one frequency. This is not expected to be the same concerning the performance of all smartphones, especially, because, in 2018, the first smartphone with a dual-frequency multi-constellation GNSS receiver was released (Xiaomi Mi8). This study aimed to show how different results can be obtained in the function of different positioning techniques that can be chosen according to the precision and accuracy requested. Future steps will be to test the performances of other smartphones with other GNSS chipsets installed to provide a deeper overview of possible results obtainable today. Certainly, this will also be done considering the new instruments released on the market in these few last months.
If a few years ago, smart technologies were only tools for calling and chatting, today, these tools are becoming potential tools for geomatics applications. In the near future, new constellations and signals promise us an improvement in the quality in terms of precision and performance. Therefore, this is only the first step of this new positioning revolution.