Next Article in Journal
Novel Dead-Time Compensation Strategy for Wide Current Range in a Three-Phase Inverter
Next Article in Special Issue
Improving RF Fingerprinting Methods by Means of D2D Communication Protocol
Previous Article in Journal
Shannon Entropy Index and a Fuzzy Logic System for the Assessment of Stator Winding Short-Circuit Faults in Induction Motors
Previous Article in Special Issue
Codebook-Aided DOA Estimation Algorithms for Massive MIMO System
Open AccessFeature PaperArticle

Assessment of Dual Frequency GNSS Observations from a Xiaomi Mi 8 Android Smartphone and Positioning Performance Analysis

1
Department of Engineering, Parthenope University of Naples, 80133 Naples, Italy
2
Department of Civil, Constructional and Environmental Engineering, Sapienza University of Rome, I-00184 Rome, Italy
*
Author to whom correspondence should be addressed.
Electronics 2019, 8(1), 91; https://doi.org/10.3390/electronics8010091
Received: 31 October 2018 / Revised: 8 January 2019 / Accepted: 9 January 2019 / Published: 15 January 2019
(This article belongs to the Special Issue Green Communications in Smart City)

Abstract

On May 2018 the world’s first dual-frequency Global Navigation Satellite System (GNSS) smartphone produced by Xiaomi equipped with a Broadcom BCM47755 chip was launched. It is able to receive L1/E1/ and L5/E5 signals from GPS, Galileo, Beidou, and GLONASS (GLObal NAvigation Satellite System) satellites. The main aim of this work is to achieve the phone’s position by using multi-constellation, dual frequency pseudorange and carrier phase raw data collected from the smartphone. Furthermore, the availability of dual frequency raw data allows to assess the multipath performance of the device. The smartphone’s performance is compared with that of a geodetic receiver. The experiments were conducted in two different scenarios to test the smartphone under different multipath conditions. Smartphone measurements showed a lower C/N0 and higher multipath compared with those of the geodetic receiver. This produced negative effects on single-point positioning as showed by high root mean square error (RMS). The best positioning accuracy for single point was obtained with the E5 measurements with a DRMS (horizontal root mean square error) of 4.57 m. For E1/L1 frequency, the 2DRMS was 5.36 m. However, the Xiaomi Mi 8, thanks to the absence of the duty cycle, provided carrier phase measurements used for a static single frequency relative positioning with an achieved 2DRMS of 1.02 and 1.95 m in low and high multipath sites, respectively.
Keywords: Android smartphone GNSS raw observations; Galileo E5a; multipath assessment; static positioning; Xiaomi Mi 8; Matlab compact3 TEQC parser Android smartphone GNSS raw observations; Galileo E5a; multipath assessment; static positioning; Xiaomi Mi 8; Matlab compact3 TEQC parser

1. Introduction

The appearance of low-cost GPS chipsets on the market coincided with a real revolution. Initially, the devices, whose costs were high, were designed only for military use or high-end geodetic application. In 1999, the phone manufacturer Benefon launched the first commercially-available GPS phone Benefon Esc! Since then, many steps forward have been made. The Ericsson mobility report of June 2018 states that 4.8 billion smartphones with GNSS chipsets are active worldwide.
A new revolution started in May 2016 when Google, during the annual developer-focused conference, announced that raw GNSS measurements will be available to apps in the Android Nougat operating system. For roughly 17 years, the pseudorange, doppler, and carrier phase observables were not available to developers, as these data were protected by chip manufacturers; only the position computed by the GNSS chipsets was available to everyone. Before the Google announcement, measurements collected by a smartphone could not be processed by post-processing software, and therefore, under the best conditions, positioning accuracy could reach three meters, while under adverse multipath conditions, it degraded to tens of meters. This accuracy is very far from that obtainable using a geodetic receiver which can reach up to the centimeters level. Despite the impossibility of accessing the measurements, scientists have tried to solve the issue. A first study was conducted by Pesyna et al. [1] in 2014. They used a smartphone antenna to receive GNSS signals and feed a software-defined receiver that generated carrier phase and pseudorange observables. Measurements collected were then processed with differential techniques. They have shown that the difference in performance is due to the smartphone antenna which does not have a good multipath suppression with respect to geodetic antennas. In 2015, Kirkko-Jaakkola et al. [2] were able to access the raw GNSS measurements of a Nokia Lumia 1520 smartphone equipped with a Qualcomm GNSS receiver thanks to a suitable firmware specifically modified by Microsoft mobile. They showed that smartphone measurements were noisy and suffered from a significant number of outliers in comparison with those collected by a U-Blox low-cost receiver and achieved only a meter-level positioning. In 2016, Humphreys et al. [3] were able to access GNSS raw measurements collected by a modified Samsung Galaxy S5 smartphone equipped with a Broadcom GNSS chipset running a customized Android Marshmallow (provided by Broadcom) including a modified GPS library that recorded RINEX (Receiver Independent Exchange Format) files to the phone’s storage card. Their analysis revealed that under typical smartphone use, the effects of local multipath was the main drawback to achieving a centimeter-accurate smartphone positioning.
After Google’s announcement in November 2016, Banville and Van Diggelen [4] analyzed GNSS data collected by a Samsung Galaxy S7 smartphone running the Broadcom 4774 GNSS chipset at the Googleplex, located in Mountain View, California. They used an engineering build of the Android N OS. They examined the quality of the data with the purpose of deriving precise positioning information from a smartphone, the main issues they encountered were due to the quality of the antenna and the duty cycling of the GNSS receiver. In 2016, Yoon et al. [5] were able to apply differential global navigation satellite system (DGNSS)-correction to a commercial smartphone without accessing raw data. The results they achieved showed an accuracy improvement by about 30–60%. In 2017, Alsubaie et al. [6] proposed a methodology to increase the accuracy of direct geo-referencing of smartphones using relative orientation and smartphone motion sensor measurements as well as integrating geometric scene constraints into free network bundle adjustment.
Zhang et al. [7] in 2017 tested a Nexus 9 tablet running the Broadcom 4752 GNSS chipset, jointly developed by Google and HTC. The tablet was equipped with Android N (version 7.1.1) and provided pseudorange data, navigation messages, accumulated delta ranges, and hardware clocks for GPS and GLONASS. They analyzed and assessed GPS L1 observations and studied the positioning accuracy of both static and kinematic observations concluding that it is difficult to obtain meter level positioning accuracy using only pseudorange observations from smartphones. Siddakatte et al. [8] investigated the performance of smartphone measurement and location data under various scenarios using internal and different external antenna configurations with the Huawei Mate9 phone equipped with a BCM4774 GNSS chipset.
Until May 2018, the GPS chipsets mounted on smartphones were single-frequency. In some cases, they were already multi-constellation, but the mono frequency extremely limited the performance because the ionospheric error could not be eliminated but only estimated using a single frequency model like Klobuchar one. On 31 May 2018 the world’s first dual-frequency GNSS smartphone produced by Xiaomi was launched. It is equipped with a Broadcom BCM47755 chipset. It is a dual-frequency (E1/L1+E5/L5) GNSS chip [9]. This smartphone with its chipset, utilizing Android dual-frequency raw GNSS measurements represents one of the most recent advances and developments of GNSS devices, allowing to achieve decimeter level positioning with a smartphone. Global Navigation Satellite System devices can be used in a range of mobility services that smart cities have to provide like parking, last-mile delivery, vehicle sharing, emergency response, and autonomous driving. As a consequence, to fulfil the requirements for location-based services and vehicle navigation, the number of these devices is rapidly increasing. In order to limit the number of GNSS receivers, one might think of using the receivers embedded in smartphones. However, these types of consumer receivers installed so far on smartphones do not always have characteristics that meet the ever-increasing levels of precision required for this type of application in smart city contests. The Android Xiaomi Mi 8 smartphone with its chipset, utilizing dual frequency multi-constellation code and carrier phase raw measurements is one of the most recent developments of GNSS devices. The availability of raw measurements can result in the advantage of using the smartphone as rover for real time kinematic (RTK) positioning to achieve higher precision. Tracking of multiple GNSS satellite signals maximizes the availability of a position fix even in harsh environments such as urban canyons. It is interesting to evaluate the performance improvements due to this type of smartphone, as it represents an important progress towards evolution of smartphones in high-precision GNSS receivers. This advance could contribute significantly to reduce the number of the used devices enabling green communication solutions for sustainable smart cities.
In July 2018, NSL’s FLAMINGO (Nottingham Scientific LimitedFulfilling enhanced Location Accuracy in the Mass-market through Initial GalileO services) Team evaluated the capabilities of the Xiaomi Mi 8 by comparing the accuracy of the internal PVT (Position Velocity Time) solution to that of a Samsung S8, embedded with the older single frequency Broadcom 4774 chipset, to that of Septentrio PolaRx5e, a geodetic class GNSS receiver in a static scenario. This test did not use smartphone raw data [10]. The same team explored the quality of the raw measurements from Xiaomi Mi 8 [11] and they found that the carrier phase was not affected by duty cycles. Warnat et al. [12] focused their attention on the analysis of the accuracy of pseudorange, double difference for both carrier phase, and code observables and estimate code multipath in an open sky environment.
The main aim of this work is to achieve the position by using multi-constellation, dual frequency pseudorange and carrier phase raw data collected from a Xiaomi Mi 8 smartphone. The availability of dual frequency raw data allows us to assess the multipath performance of the chipset. The smartphone’s performance is compared with those of a geodetic receiver. The experiments were conducted in two different scenarios to test the smartphone under different multipath conditions. Given the good quality of the Galileo measurements collected by the Xiaomi Mi 8, as demonstrated by Warnat et al. [12], we also tested the performance of Galileo E5a raw pseudorange by calculating a single-point code positioning and comparing with those of the E1 signal. Unlike Reference [12], we make an analysis in terms of the absolute position obtained in both single-point and differential mode, while regarding code multipath we estimate it also in a difficult scenario. Urban situations, where most of the smartphones are used, are particularly affected by multipath that is considered the dominant source of GNSS ranging errors. In this scenario, several blunders in the measurements are present [13].
Increasing the number of satellites used in positioning solutions is key to achieving better accuracy with mass market receivers. Thus, the availability of multi-constellation data must be exploited. This is one of the first studies that tests the multi-constellation performance of smartphone GNSS raw data in conjunction with code multipath assessment, as all the above mentioned studies analyzed only GPS observations on L1 frequency. An exhaustive exposition of the multi GNSS positioning could be found in References [14,15].
The experimental setup adopted is detailed in Section 2 where the hardware and software used are shown, and the sites where the measurements were collected are described. The methodological aspects followed to conduct our analysis are described in Section 3. The experimental results are reported in Section 4 and discussed in Section 5, and some final conclusions are drawn in Section 6.

2. Experimental Setup

The smartphone used was a Xiaomi Mi 8, embedded with a Broadcom BCM47755 chip. This chip is the first dual frequency chip expressly developed for a smartphone. It provides access to the single frequency (L1/E1) GPS, Galileo and GLONASS, as well as a second frequency L5 and E5a for GPS and Galileo, respectively. The Xiaomi Mi 8 can provide pseudorange data, navigation messages, accumulated delta ranges, and HW clocks for GPS, GLONASS, and Galileo. Here we want to recall that not all smartphones are able to log GNSS raw data. A list of devices capable of providing raw measurements is maintained at the URL https://developer.android.com/guide/topics/sensors/gnss. Information also includes constellations availability and the availability of the phase measurements. All devices need to run Android Nougat or later. The main issue to solve in order to obtain good performances from the GNSS receiver of the smartphone is the battery consumption. The smartphone vendors implement several techniques to maintain a low power consumption. The most common strategy used is the duty cycle: the receiver tracks GNSS data for 200 ms before shutting down for 800 ms [4]. Without tracking continuity, several cycle slips may occur between two consecutive measurements, severely limiting the use of such advance phase techniques as real time kinematic (RTK) or precise point positioning (PPP). As the NSL’s FLAMINGO Team showed in Reference [11], the carrier phase observations collected from Xiaomi Mi 8 are not affected by duty cycles.
In order to evaluate the smartphone’s performance, we used as a term of comparison the TOPCON GRS-1 geodetic receiver fed by the TOPCON PG-A1 antenna. It is a geodetic dual frequency (L1/L2) dual constellation (GPS/GLONASS) geodetic antenna. The biggest difference between the geodetic receiver and the smartphone is the antenna with which they are fed. As claimed by Zhang et al. [7] based on the study of Pathak et al. [16], the smartphone GNSS antenna uses linear polarization, making it susceptible to multipath effects from GNSS signals reflected by surfaces near the antenna. Thus, the smartphone antenna is highly sensitive to low-quality GNSS signal capture compared with the geodetic-quality device expressly designed to minimize the multipath effect. This is one of the main drawbacks to overcome in order to achieve a GNSS smartphone positioning accuracy comparable with that of geodetic receiver.
In order to investigate the performance of the smartphone we applied our analysis to the measurements captured in two different scenarios. The first dataset was in a site where it is expected to be a low-multipath environment. The geodetic receiver and smartphone were placed in Portici site (Naples, Italy). The experiment was carried out using one-hour RINEX 3.0.3 file at 1 Hz acquired by the smartphone during the 3 October 2018 and 1 Hz RINEX 2.11 files acquired by geodetic receiver. The second dataset was collected on 12 October 2018 over a time span of one hour in a strong multipath scenario in Centro Direzionale (CDN) site (Naples, Italy) by using the same instrumentation. This was a “difficult” environment in which the receivers were surrounded by buildings. It can be seen as a typical example of an urban canyon where many GNSS signals are strongly degraded by multipath effects or blocked by skyscrapers. The analysis was performed for all visible satellites for both the experiments during the whole observation periods.
As can be clearly seen from Figure 1a, the smartphone was not placed on the ground but positioned in such a way as to simulate its use by a human who keeps it in his hands at a height of about 140 cm.

3. Methodology

The Android system provides a series of functions called API (application programming interface) through which developers can interact with all the sensors (including the GNSS chipset) contained within the smartphone. Obviously, every different version of the Android system has different types of APIs. Until the Marshmallow version of the Android system it was possible to get location information through the android.gsm.location API [17]. This function allows users access to (a) GPS satellite information (C/No, azimuth, elevation) if that satellite it has been used in the PVT solution; (b) basic NMEA (National Marine Electronics Association) sentences, to PVT solution obtained by combining data from different sensors (GNSS, Wi-Fi, mobile networks) with the proper time stamp. This API actually makes the GNSS receiver like a black box: the acquisition and tracking blocks decode navigation message and generates the GNSS pseudoranges and carrier phase observables; these are corrected using the information contained in the navigation message (clock errors, ionosphere and troposphere, etc.); finally, the position, velocity, and time (PVT) solution is calculated and output by the chipset. Thus, users were not allowed access to raw GNSS measurements and so pseudoranges and carrier phase observables cannot be used. Starting from the Nougat version, Android introduces the new Location API android.location. It allows access to both the PVT solution and the GNSS raw measurements by which the GNSS observables can be calculated. Thanks to this API, some Android applications capable to log raw GNSS measurements like: GnssLogger [18], Geo++ RINEX Logger [19], and rinex ON [20] were developed.
The GnssLogger app was released by Google along with its source code in 2016. The app allows to log the measurements described in the GnssClock and GnssMeasurement classes in the online android.location API documentation [21]. Unfortunately, this app does not provide directly pseudorange or carrier phase observables and does not log ephemerides data. Thus the Google-developed logger does not allow to directly save raw data in RINEX format. The Geo++ RINEX Logger app was released in 2017 by the Geo++ company. It provides directly GNSS observables in RINEX format but does not provide ephemerides data. The rinexON app was released at the end of June 2018 by FLAMINGO team. It provides directly both observation and navigation file in RINEX 3.0.3 format for Galileo, GPS, and GLONASS satellite system. We decided to use rinexOn app thanks to this feature as data collected by smartphone can be further processed in post processing GNSS software.
As previously mentioned, multipath is one of the main errors that corrupts the code measurements collected by the smartphone. For this reason, it has been the object of a detailed analysis. In order to characterize multipath (mp) observable has been used. The mp is a linear combination of dual frequencies code and phase measurements. It is used to characterize the magnitude of the pseudorange multipath and noise for any GNSS system by the TEQC software [22]. Pseudorange multipath can be estimated by equations [23]
m p 1 = P 1 ( 1 + 2 α 1 ) λ 1 ϕ 1 + ( 2 α 1 ) λ 5 ϕ 5 = M P 1 + ε P 1 + K + I d
m p 5 = P 5 ( 2 α α 1 ) λ 1 ϕ 1 + ( 2 α α 1 ) λ 5 ϕ 5 = M P 5 + ε P 5 + K + I d
where the subscripts 1 and 5 denote L1 and L5 bands, m p 1 and m p 5 are the estimates of the code multipath error, P 1 and P 5 are the code observables, λ1 and λ5 are the wavelengths, ϕ 1 and ϕ 5 are the carrier phase observables in units of cycles, m p 1 and m p 5 are the code multipath, ε P 1 and ε P 5 are the receiver noise error of the code measurements, K is a constant term associated with phase ambiguities, I d is a term associated with instrumental delays and α = (f1/f5) with f1 frequency on L1 band and f5 frequency on L5 band. Above equations contain code multipath error, noise and unwanted terms due to phase ambiguities and instrumental delays. As can be seen from Equations (1) and (2) mp observables can be formed only if the code and phase observables are available at two different frequencies. This is one of the first studies that analyses smartphone code multipath pseudorange error. We calculated mp observables by using TEQC software. To estimate unwanted terms, we used a moving average filter [24] taken on 900 samples [25]. The outputs of TEQC are different files in compact3 format. In order to process these files, we developed a suitable Matlab parser (see Appendix A).
In order to get positioning solutions, we used RTKlib software. It is an open-source software for standard and precise positioning. It supports standard and precise positioning algorithms for GPS, GLONASS, Galileo, QZSS, BeiDou, and SBAS, for both real-time and post-processing [26]. The single-point positioning solution was achieved using the classical PVT algorithm applied on code measurements and broadcast ephemerides. Ionosphere and troposphere delays were evaluated using the Klobuchar and Hopfield model, respectively.
The carrier-based solution was achieved processing RINEX data with RTKlib in the static relative positioning mode estimating ambiguity through instantaneous strategy. In detail, a Continuously Operating Reference Station (CORS) of the Campania GNSS Network was used as base-station receiver. It is equipped with a Topcon NET-G3 dual frequency (L1/L2) dual constellation (GPS/GLONASS) receiver fed by a Topcon CR-G3 choke-ring antenna. This type of smartphone/reference station configuration forced us to perform a carrier phase based relative positioning using only the L1 frequency and the GPS constellation because the reference receiver, unlike smartphone, does not acquire L5 frequency and Galileo constellation. In addition, we also had to develop another Matlab tool with the objective of performing single point positioning using Galileo’s E5a frequency since RTKlib only uses the E1/L1 frequency and does not allow to achieve a single-point position by using the E5a frequency. This tool has been developed in such a way that the models, correction algorithms, weighting, and mask angle used are exactly the same as those used by RTKlib in its source code. Therefore, the E1/L1 positioning achieved by our software was almost the same obtained by using RTKlib, hence the results showed in the following refer to RTKlib.
The multipath analysis confirmed that the Galileo E5a showed the highest suppression of code multipath as compared to the other signals, thus we decided to compare smartphone Galileo E1 single-point positioning with E5a one.

4. Results

The sky plot of GPS and Galileo satellites in the Portici and CDN sites are shown in Figure 2.
The carrier-to-noise density C/N0 output by a receiver provides an indication of the accuracy of the tracked satellite GNSS observations and the noise density as seen by the receiver’s front-end. It also indicates the level of noise present in the measurements. These values are stored in RINEX file outputted by rinexON app. The lower the signal-to-noise ratio the worse the quality of the measurements. Figure 3 shows a comparison of the mean of C/N0 values for each tracked satellite between smartphone (blue bars) and geodetic receiver (red bars) in both sites. In detail, panel (a) shows the comparison for GPS satellites in the Portici data collection, panel (b) shows the comparison for GLONASS satellites in the Portici data collection, panel (c) shows the comparison for GPS satellites in the CDN data collection, and panel (d) shows the comparison for GLONASS satellites in the CDN data collection. The C/N0 is lower for the smartphone compared to the geodetic receiver in both sites and for both constellations. This is due to the limited performance of smartphone antenna with respect to geodetic one. It also captures low-quality signals that the geodetic antenna rejects. This explains the absence of the G30, R15, and G23 from panel (a), (b), and (c), respectively.
Figure 4 shows a comparison of the mean of C/N0 values between L1/E1 (blue bars) and L5/E5a (yellow bars) in both sites. In detail, panel (a) and panel (b) show the comparison for GPS and Galileo satellites, respectively, in the Portici site; panel (c) and panel (d) show the comparison for GPS and Galileo satellites in the CDN site. Figure shows that L1/E1 signals are considerably stronger than L5/E5a, for both sites.
As stated before mp observables can be formed only if the code and phase observables are available at two different frequencies. Results achieved are reported below. In Figure 5, the results showed in panel (a) are reported L1 multipath error for smartphone GPS measurements; they are obtained by using L1 and L5 frequencies. Not all GPS satellites transmit L5 frequency, therefore this analysis regards only visible satellites transmitting both L1 and L5 frequencies. Panel (b) shows E1 multipath error for Galileo smartphone measurements, they are obtained by using E1 and E5a frequencies and regard all Galileo visible satellites since each Galileo satellite transmits both frequencies. The last panel (c) shows L1 multipath error for the GPS measurements acquired by geodetic receiver. They are calculated using L1 and L2 frequencies. Looking at the figure, it is clear that the multipath on CDN site is much higher than that in Portici site both for smartphone and geodetic receiver. The multipath error standard deviation is reduced from of 18.71 m in CDN site to 6.11 m in Portici site for the GPS system and from a 14.11 m to a 3.77 m for the Galileo system. The comparison between the GPS panel (a) and the Galileo panel (b) system is interesting. It shows that considering the multipath coming from all the satellites as a whole, its standard deviation calculated on all visible Galileo satellites is lower than that calculated on all the GPS satellites for both sites. In panel (c) is reported the same analysis for geodetic receiver. Results achieved for L1 multipath error of the GPS measurements acquired by geodetic receiver show standard deviation values of 0.32 m and 0.46 m for Portici and CDN sites, respectively. They are much better than those achieved by the smartphone as expected. Results reported in all panels show that the Portici site was affected by a lower multipath compared to the CDN site as expected.
Figure 6 shows the position errors in both sites obtained using the code measurements. In both panels (a) and (b) the gray stars represent the position errors obtained using L1 GPS code measurements collected by the smartphone, the blue circles represent the position errors obtained using multi-constellation (GPS, GLONASS, Galileo) L1/E1 code measurements from the smartphone while the red circles represent the position error obtained using the L1 GPS code measurements from the geodetic receiver. As it can be seen, multipath around 900 epoch in the Portici site was very high. This is due to a lack of three seconds of data that affected the moving average filter used to estimate mp. The analysis shows, that for all configurations, the Portici site had a DRMS (horizontal root mean square error) that was halved compared to the CDN site. This was expected as the environment of the CDN presents a higher multipath as shown in Figure 5. Equally interesting is the RMS reduction that was achieved using the multi-constellation approach compared to the GPS only approach. This demonstrates that the use of multiple GNSS constellations guarantees the availability of a higher number of satellites, which is one of the most important features to achieve better accuracy positioning in a smartphone receiver.
Figure 7 shows the performance of the carrier-based relative positioning in static mode using smartphone as stationary rover for both sites. Due to the smartphone/base station configuration, we get only float solution as only L1 frequency could be used. As expected, performances in the Portici site were better than those in CDN. The RMS for the north and east components for low multipath environment sites were halved compared to the high multipath one. With regard to the RMS of the Up component, it went from 0.50 m in Portici to one of 7.82 to CDN. It should be emphasized that the results obtained are promising as they show that the duty cycle does not damage the phase measurements collected by the Xiaomi Mi 8. As already mentioned, duty cycle makes carrier phase measurements in almost all smartphones useless. Before the advent of the Xiaomi Mi 8, the only smartphone able to achieve position with carrier phase measurements was the Google/HTC Nexus 9 tablet [7], which has the ability to turn off the duty cycle. Fortunately, the next version of Android OS will make it possible to turn off the duty cycle via software, and this will certainly ensure an increase in the accuracy obtainable with the measures obtained from the smartphone.
In Table 1, the statistics of the carrier-based and single-point positioning analysis are summarized.
Figure 8 shows the comparison of code multipath between L1/E1 (represented in grey) and L5/E5a (represented in blue) measurements from all the visible GPS (upper panel) and Galileo satellites (lower panel) as whole collected by smartphone in the Portici site versus epoch. Galileo E1 signal shows a code multipath standard deviation of 3.77 m while Galileo E5a multipath error had a standard deviation of 1.21 m. This improvement demonstrates that Galileo E5a signal was specially designed to achieve better performance on multipath. The GPS L1 signal showed a code multipath standard deviation of 6.11 m while the GPS L5 multipath error had a standard deviation of 2.09 m. This improvement demonstrates also in the case of the GPS L5 signal, which appeared to be more effective against multipath as in the case of the Galileo system.
Finally, we conducted an analysis on the Galileo code positioning comparing E1 and E5a signals. This analysis was conducted on a dataset collected in the Portici site as it shows a higher number of visible Galileo satellites with respect to CDN site. The single-point positioning results (Figure 9) show a horizontal position accuracy of 13.50 m using E1 Galileo measurements with respect to an accuracy of 4.57 m in the case of E5a signal. The results of the vertical component confirm that the E5 signals show a greater accuracy (7.92 m) than those of E1 (34.31 m). This improvement reflects the better multipath performance of the E5a signal with respect to the E1 one confirming that the multipath is one of the dominant sources of error in the code single-point positioning.

5. Discussion

We analyzed and assessed Galileo, GLONASS, and GPS observations from an Android smartphone in terms of C/N0 and code multipath error. The positioning accuracy of static observations in two different sites characterized respectively by low and sever multipath conditions was investigated. Results were compared with those achieved by geodetic receiver. In the following are reported the main observations based on the experiments conducted. First, results related to the analysis of the signal-to-noise ratio are discussed, then those relative to multipath analysis and finally those relative to positioning accuracy achieved:
  • The C/N0 is lower in the smartphone compared to geodetic receiver in both sites and for all constellations. This is due to the limited performance of the smartphone antenna with respect to a geodetic one. By comparing smartphone L1/E1 carrier-to-noise density with L5/E5a we found that L1/E1 is considerably stronger than L5/E5a for both sites.
  • A comparison between the GPS and the Galileo smartphone measurements in terms of code multipath error was also made. For both sites, the Galileo measurements show a lower multipath error than the GPS ones. Particularly, an improvement of 25% and 38% was achieved by Galileo measurement in the CDN site and the Portici site, respectively. Despite Galileo improvement, the performance of the smartphone in terms of multipath was still very far from those of the geodetic receiver that showed a decimeter level error. Regarding the analysis of Galileo multipath signals, E5a signals showed a lower code multipath error with respect to E1 ones (as expected) with a standard deviation of 1.21 m with an improvement of 68%.
  • Regarding positioning domain, several techniques were used (L1 GPS single-point positioning, L1 multi-constellation single-point positioning, E5a Galileo single-point and carrier-based static positioning). The analysis shows that for code positioning (both in L1 GPS only and multi-constellation configuration) the low multipath site has a DRMS (values are reported in Table 1) that is halved compared to the high multipath site. By using the multi-constellation technique an average improvement of 17% compared to the single GPS approach was achieved. Thus, the multi-constellation is key to improving smartphone single-point positioning. For single point techniques, the best result has been achieved using Galileo E5a measurements collected by smartphone in the Portici site reaching a DRMS of 4.57 m with an improvement of 32% with respect to the L1 GPS only positioning and 15% in respect to the L1/E1 multi-constellation positioning. Finally, we performed carrier phase-based relative positioning in static mode using smartphone as stationary rover for both sites. We get only float positions as only L1 frequency measurements are acquired by both the smartphone and the reference station. The RMS for north, east, and up components in the low multipath site are 0.47 m, 0.91 m, and 0.5 m, respectively.
The results are very promising and were unthinkable until a few months ago. Some interesting related avenues of research that should be pursued include carrier phase real-time kinematic (RTK) positioning using a dual frequency multi-constellation receiver as reference station in conjunction with Xiaomi Mi 8 as rover. The application used to log RINEX data does not support the Beidou system, therefore one of the objectives of future work is to use this satellite system in order to fully exploit the potential of the Xiaomi Mi 8 device. The use of multiple GNSS constellations guarantees the availability of a higher number of satellites, thus a better accuracy positioning could be achieved as showed in the paper. Furthermore, the MIUI 10.1.1 Global Stable for Xiaomi Mi 8 was released in December 2018, namely the first stable international firmware based on Android 9.0 Pie. The new firmware allows the duty cycle to be switched off via software. This ensures better accuracy in phase measurements that should lead to much higher accuracy in the position domain.

6. Conclusions

In this paper we achieved positions using multi-constellation, dual frequency pseudorange and carrier phase raw data collected from Xiaomi Mi 8 smartphone. Thanks to the availability of dual frequency raw data, we assessed the multipath performance of the chipset for both E1/L1 E5a/L5 signals using mp combination. In order to test the effectiveness of the smartphone’s performance we collected measurements in two different scenarios with different multipath conditions and compared them with those of a geodetic receiver. We also tested the performance of Galileo E5a raw pseudorange by calculating a single-point code positioning and compared it with those of the E1 signal. The results achieved are very promising, showing that new smartphones equipped with multi-constellation dual frequency GNSS receivers can reach a positioning accuracy in urban environments that offer a low-cost solution to many of the challenges that smart cities have to face nowadays. Smartphones could be used in a range of mobility services that smart cities have to provide like parking, last-mile delivery, vehicle sharing, emergency response, and autonomous driving. This could reduce the number of used GNSS receivers fitting the requirements of future green communication.

Author Contributions

The authors contributed equally to this work.

Funding

This research received no external funding.

Conflicts of Interest

The authors declare no conflicts of interest.

Appendix A

Matlab compact3 teqc parser. You need to change only file name to parse. Output will be a 3 columns matrix with epoch, sat PRN and calculated information.
clear all
fid=fopen(‘PORTICI.sn5’); %file name to import
output=[];
%check if format is compact3
tipoFile=fgetl(fid);
if(~strcmp(tipoFile,’COMPACT3’))
    warning(strcat(‘WRONG FORMAT: ‘,tipoFile,’ IS NOT COMPACT3’))
    return
end
%Start epoch
lineaEpoca=fgetl(fid);
if (contains(lineaEpoca,’GPS_START_TIME’))
    %process string
    cellData=strsplit(lineaEpoca);
    cellData(1)=[[];
    anno=str2double(cellData{1});
    mese=str2double(cellData{2});
    giorno=str2double(cellData{3});
    ora=str2double(cellData{4});
    minuti=str2double(cellData{5});
    secondi=str2double(cellData{6});
else
    warning(‘I can not find first epoch’)
    return
end
ii=0;
while ~feof(fid)
    lineaHeaderEpoca=fgetl(fid);
        %is the first line?
        lineaHeaderEpocaCell=strsplit(lineaHeaderEpoca,’ ‘);
        %delete first cell because is empty
        lineaHeaderEpocaCell(1)=[[];
        numSatEpoca=str2double(lineaHeaderEpocaCell(2));
        numSecDaAggiungere=str2double(lineaHeaderEpocaCell(1));
        if (numSatEpoca==-1) %Sats are the same of previous epoch
            vectNumSec=ones(size(PRN,1),1)*numSecDaAggiungere;
            %we need prevuois PRN
            lineaMisure=fgetl(fid);
            lineaMisureCell=strsplit(lineaMisure,’ ‘);
            lineaMisureCell(1)=[[];
            for m=1:size(PRN,1)
          misure(m,1)=str2double(lineaMisureCell{m});
            end
            output=[output;vectNumSec,PRN,misure];
          else %sats are changed
    numSatEpoca=str2double(lineaHeaderEpocaCell(2));
    vectNumSec=ones(numSatEpoca,1)*numSecDaAggiungere;
    clear PRN;
    satSysNum=0;
    for i=3:numSatEpoca+2
        satSys=lineaHeaderEpocaCell{i}(1);
        switch satSys
          case ‘G’
          satSysNum=1000;
          case ‘E’
          satSysNum=3000;
          case ‘R’
          satSysNum=2000;
          end
          PRN(i-2,1)=satSysNum+str2double(lineaHeaderEpocaCell{i}(2:3));
    end
    lineaMisure=fgetl(fid);
    lineaMisureCell=strsplit(lineaMisure,’ ‘);
    lineaMisureCell(1)=[[];
    clear misure;
    for m=1:numSatEpoca
        misure(m,1)=str2double(lineaMisureCell{m});
    end
    output=[output;vectNumSec,PRN,misure];
      end
end
fclose(fid);
		

References

  1. Pesyna, K.M., Jr.; Heath, R.W., Jr.; Humphreys, T.E. Centimeter Positioning with a Smartphone-Quality GNSS Antenna. In Proceedings of the 2014 ION GNSS Conference, Tampa, FL, USA, 9–12 September 2014. [Google Scholar]
  2. Kirkko-Jaakkola, M.; Söderholm, S.; Honkala, S.; Koivula, H.; Nyberg, S.; Kuusniemi, H. Low-Cost Precise Positioning Using a National GNSS Network. In Proceedings of the ION GNSS+ 2015, 28th International Technical Meeting of the Satellite Division of The Institute of Navigation, Tampa, FL, USA, 14–18 September 2015; pp. 2570–2577. [Google Scholar]
  3. Humphreys, T.E.; Murrian, M.; van Diggelen, F.; Podshivalov, S.; Pesyna, K.M. On the Feasibility of cm-Accurate Positioning via a Smartphone’s Antenna and GNSS Chip. In Proceedings of the 2016 IEEE/ION Position, Location and Navigation Symposium (PLANS), Savannah, GA, USA, 11–14 April 2016. [Google Scholar] [CrossRef]
  4. Banville, S.; van Diggelen, F. Precise positioning using raw GPS measurements from Android smartphones. GPS World 2016, 27, 43–48. [Google Scholar]
  5. Yoon, D.; Kee, C.; Seo, J.; Park, B. Position Accuracy Improvement by Implementing the DGNSS-CP Algorithm in Smartphones. Sensors 2016, 16, 910. [Google Scholar] [CrossRef] [PubMed]
  6. Alsubaie, N.M.; Youssef, A.A.; El-Sheimy, N. Improving the Accuracy of Direct Geo-referencing of Smartphone-Based Mobile Mapping Systems Using Relative Orientation and Scene Geometric Constraints. Sensors 2017, 17, 2237. [Google Scholar] [CrossRef] [PubMed]
  7. Zhang, X.; Tao, X.; Zhu, F.; Shi, X.; Whang, F. Quality assessment of GNSS observations from an Android N smartphone and positioning performance analysis using time differenced filtering approach. J. Ordnance Eng. 2018, 22. [Google Scholar] [CrossRef]
  8. Siddakatte, R.; Broumandan, A.; Lachapelle, G. Performance evaluation of smartphone GNSS measurements with different antenna configurations. In Proceedings of the International Navigation Conference 2018, Royal Institute de Navigation, Brighton, UK, 27–30 November 2017. [Google Scholar]
  9. World’s First Dual-Frequency GNSS Smartphone Hits the Market. Available online: https://www.gsa.europa.eu/newsroom/news/world-s-first-dual-frequency-gnss-smartphone-hits-market (accessed on 25 September 2018).
  10. Initial Tests of the Xiaomi Mi 8 Dual Frequency GNSS Smartphone. Available online: https://www.nsl.eu.com/nsl-jcms/about-nsl/nsl-blog/15-products-and-services/55-xiaomi-mi8 (accessed on 10 September 2018).
  11. Data Quality from the Dual Frequency Xiaomi Mi 8. Available online: https://www.nsl.eu.com/nsl-jcms/about-nsl/nsl-blog/15-products-and-services/56-xiaomi-mi8-2 (accessed on 10 September 2018).
  12. Warnant, R.; Van De Vyvere, L.; Warnant, Q. Positioning with Single and Dual Frequency Smartphones Running Android 7 or Later. In Proceedings of the 31st International Technical Meeting of The Satellite Division of the Institute of Navigation (ION GNSS+ 2018), Miami, FL, USA, 24–28 September 2018; pp. 284–303. [Google Scholar]
  13. Pugliano, G.; Robustelli, U.; Rossi, F.; Santamaria, R. A new method for specular and diffuse pseudorange multipath error extraction using wavelet analysis. GPS Solut. 2016, 20, 499–508. [Google Scholar] [CrossRef]
  14. Paziewski, J.; Sieradzki, R.; Baryla, R. Multi-GNSS high-rate RTK, PPP and novel direct phase observation processing method: Application to precise dynamic displacement detection. Meas. Sci. Technol. 2018, 29, 035002. [Google Scholar] [CrossRef]
  15. Paziewski, J.; Sieradzki, R.; Wielgosz, P. On the applicability of Galileo FOC satellites with incorrect highly eccentric orbits: An evaluation of instantaneous medium-range positioning. Remote Sens. 2018, 10, 208. [Google Scholar] [CrossRef]
  16. Pathak, V.; Thornwall, S.; Krier, M.; Rowson, S. Mobile handset system performance comparison of a linearly polarized GPS internal antenna with a circularly polarized antenna. In Proceedings of the Antennas and Propagation Society International Symposium, Columbus, OH, USA, 22–27 June 2003; pp. 666–669. [Google Scholar]
  17. White Paper on using GNSS Raw Measurements on Android devices; European GNSS Agency: Prague, Czech Republic, 2017.
  18. Google GPS Measurement Tools. Available online: https://github.com/google/gps-measurement-tools/tree/master/GNSSLogger (accessed on 10 September 2018).
  19. Logging of GNSS Raw Data on Android. Available online: http://www.geopp.de/logging-of-gnss-raw-data-on-android/ (accessed on 10 September 2018).
  20. NSL Launches a New Free Android App as Part of FLAMINGO—Discover rinexON. Available online: https://www.flamingognss.com/rinexon (accessed on 10 September 2018).
  21. Location and Context Overview. Available online: https://developer.android.com/training/location/ (accessed on 10 September 2018).
  22. Estey, L.H.; Meertens, C.M. TEQC: The multi-purpose toolkit for GPS/GLONASS data. GPS Solut. 1999, 3, 42–49. [Google Scholar] [CrossRef]
  23. Robustelli, U.; Pugliano, G. Code multipath analysis of Galileo FOC satellites by time-frequency representation. Appl. Geomat. 2018. [Google Scholar] [CrossRef]
  24. Robustelli, U.; Pugliano, G. GNSS code multipath short time Fourier transform analysis. Navigation 2018. [Google Scholar] [CrossRef]
  25. [TEQC] Helpful Tip of Week 1895. Available online: https://postal.unavco.org/pipermail/teqc/2016/002071.html (accessed on 10 September 2018).
  26. Takasu, T. RTKLIB Ver. 2.4. 2 Manual. Available online: http://www.rtklib.com/prog/manual_2.4.2.pdf (accessed on 15 September 2018).
Figure 1. The location where the two sets of experimental data were collected, and the equipment used in this study: (a) Portici site, (b) Centro Direzionale Napoli (CDN) site.
Figure 1. The location where the two sets of experimental data were collected, and the equipment used in this study: (a) Portici site, (b) Centro Direzionale Napoli (CDN) site.
Electronics 08 00091 g001
Figure 2. Skyplots of Portici and CDN sites’ smartphone data. The beginning of the observational arc is represented by a circle. The GPS and Galileo satellites are shown in blue and red respectively.
Figure 2. Skyplots of Portici and CDN sites’ smartphone data. The beginning of the observational arc is represented by a circle. The GPS and Galileo satellites are shown in blue and red respectively.
Electronics 08 00091 g002
Figure 3. Mean of C/N0 values on L1 frequency comparison between smartphone and geodetic receiver. Blue bars represent smartphone, red represent geodetic receiver: top rows depict mean of C/N0 for GPS and Galileo satellites in Portici site; bottom rows depict mean of C/N0 for GPS and Galileo satellites in CDN site.
Figure 3. Mean of C/N0 values on L1 frequency comparison between smartphone and geodetic receiver. Blue bars represent smartphone, red represent geodetic receiver: top rows depict mean of C/N0 for GPS and Galileo satellites in Portici site; bottom rows depict mean of C/N0 for GPS and Galileo satellites in CDN site.
Electronics 08 00091 g003
Figure 4. Mean of C/N0 values on L1/E1 L5/E5a frequency comparison. Purple bars represent L1/E1 frequency, yellow L5/E5a: top rows depict GPS and Galileo satellites in Portici site; bottom rows depict GPS and Galileo satellites in CDN site.
Figure 4. Mean of C/N0 values on L1/E1 L5/E5a frequency comparison. Purple bars represent L1/E1 frequency, yellow L5/E5a: top rows depict GPS and Galileo satellites in Portici site; bottom rows depict GPS and Galileo satellites in CDN site.
Electronics 08 00091 g004
Figure 5. L1/E1 code multipath error for CDN site (represented in grey) and Portici site (represented in blue) versus processed time expressed in epochs. (a) L1 code multipath for all GPS satellites tracked by smartphone; (b) E1 code multipath error for all Galileo satellites tracked by smartphone; (c) L1code multipath error for GPS satellites tracked by geodetic receiver.
Figure 5. L1/E1 code multipath error for CDN site (represented in grey) and Portici site (represented in blue) versus processed time expressed in epochs. (a) L1 code multipath for all GPS satellites tracked by smartphone; (b) E1 code multipath error for all Galileo satellites tracked by smartphone; (c) L1code multipath error for GPS satellites tracked by geodetic receiver.
Electronics 08 00091 g005
Figure 6. Scatter plot of L1/E1 single-point position error. Grey markers represent errors when the solution has been obtained by using GPS only measurements collected by smartphone, blue circles represent error for smartphone multi-constellation approach, red circles represent error obtained by using geodetic receiver: (a) Portici site; (b) CDN site.
Figure 6. Scatter plot of L1/E1 single-point position error. Grey markers represent errors when the solution has been obtained by using GPS only measurements collected by smartphone, blue circles represent error for smartphone multi-constellation approach, red circles represent error obtained by using geodetic receiver: (a) Portici site; (b) CDN site.
Electronics 08 00091 g006
Figure 7. Carrier-based static positioning solution components performances for Portici (left column) and CDN (right column) sites.
Figure 7. Carrier-based static positioning solution components performances for Portici (left column) and CDN (right column) sites.
Electronics 08 00091 g007
Figure 8. Code multipath comparison between L1/E1 (represented in grey) and L5/E5a (represented in blue) measurements from all the visible GPS (upper) and Galileo satellites (lower) collected by smartphone in the Portici site versus epoch.
Figure 8. Code multipath comparison between L1/E1 (represented in grey) and L5/E5a (represented in blue) measurements from all the visible GPS (upper) and Galileo satellites (lower) collected by smartphone in the Portici site versus epoch.
Electronics 08 00091 g008
Figure 9. Scatter plot error comparison of single-point positioning between E1 and E5a signals collected by smartphone in the Portici site. Grey markers represent errors when the solution was obtained using Galileo E1 measurements, blue circles represent error for E5a measurements.
Figure 9. Scatter plot error comparison of single-point positioning between E1 and E5a signals collected by smartphone in the Portici site. Grey markers represent errors when the solution was obtained using Galileo E1 measurements, blue circles represent error for E5a measurements.
Electronics 08 00091 g009
Table 1. Positioning performance for single-point positioning and carrier phase positioning for the Portici and CDN sites.
Table 1. Positioning performance for single-point positioning and carrier phase positioning for the Portici and CDN sites.
PorticiCDN
Positioning# Solution AvailableRMS Horiz. err. (m)RMS Vert. err. (m)# Solution AvaibleRMS Horiz. err. (m)RMS Vert. err. (m)
Code35836.779.80348111.6124.09
Carrier phase32951.020.5033831.957.82
Back to TopTop