DEVELOPMENT OF A LOW-COST CENTIMETRIC GNSS POSITIONING SOLUTION FOR ANDROID APPLICATIONS

With the smartphone boom, positioning oneself on the Earth's surface has become something common. Everyone know how to uses their smartphone to get their location or finding their way. However, achieve centimetric accuracy on positioning still a topical issue that arouses considerable interest. Geodetic GNSS antennas are currently used for this field, but their price is incompatible with the mass market applications (autonomous cars, drones, machine automation, photogrammetry, etc.). In this paper, an approach to improve the Android smartphone positioning is presented using low-cost GNSS receiver. Requested by Syslor, a start-up working in buried networks, the society want to enhance its customer services. The purpose of this study is to present a method to reach centimetric localisation of smartphones for augmented reality and as-built 3D plans applications.


INTRODUCTION
To get accurate GNSS positioning under Android Operating System, the main challenges are to get in the same time high quality satellite observations and the ability to process data acquired by the receiver from a smartphone. To answer this study two solutions were discussed initially. The first one consists in using the internal components of the phone to perform GNSS measurements. The main issue of this approach is to evaluate the accuracy and quality of the components used by the phone manufacturer.
The first significant studies on the subject were conducted by (Pesyna et al., 2014;Pesyna, 2015;Humphreys et al., 2016). Due to lot of noise on measurements, it is difficult to compute accurate positions from these data sets. In 2016, the release of Android Nougat marked an evolution in GNSS measurement on smartphone. This version provided for the first-time access to new functionalities dedicated to GNSS. Designated by GNSS API (24), this Android extension is a set of pre-programmed and simplified functions allowing access to raw measurements of the GNSS chip. In addition, the GSA (European GNSS Agency) and the ESA (European Space Agency) published a detailed booklet on this API in (European GNSS Agency, 2017). Looking at the Android documentation, we realize that not all devices are equivalent and that the quality of positioning depends largely on the manufacturer's choices. Thus, depending on the models, the results obtained can be different as illustrated in (Gogoi et al., 2018;Kalleev, Saburova, 2018;Dabove, Di Pietra, 2019). The most promising results were achieved with the Xiaomi MI 8, the first dual-frequency smartphone on the market released in 2018. Its performance has been tested by (Robustelli et al., 2019). The results are promising but performance achieved with smartphones is incompatible with the centimetric objectives.
A more realistic hybrid solution was finally selected. It consists in using the phone as the user terminal and associating an external low-cost GNSS receiver (Atunggal et al., 2018;Madawalagama et al., 2019). These receivers have the advantage of being inexpensive and do not suffer from extreme miniaturization that minimizes performance and observation capabilities. There are a significant number of low-cost GNSS receivers on the market. They have different dimensions, weights and characteristics. Depending on the models, they can be single or multi-frequency, single or multi-constellation. This study will provide a better understanding of how they work and how they can be integrated into a smartphone solution.

Hardware architecture
The hardware architecture of low-cost and geodetic GNSS receivers has many similarities. Less sophisticated, the low-cost components are often under-performing. We can find some interesting chips on the mass-market with a high price/performance ratio. However, it is not a ready-to-use solution. The receiver must be built from different components, which requires some knowledge in GNSS and electronics. The first step is to understand how a GNSS receiver works ( Figure  1). A receiver is composed of: 1. A GNSS antenna that converts the received radio waves into an analog signal. For higher accuracy, it is recommended to choose active antennas over passive antennas.
2. A chip that processes the analog signal transmitted by the antenna to convert it into raw digital data. Usually, the chip is placed on a motherboard allowing the data to be sent to physical output terminals (USB, Bluetooth, radio, etc.). The antenna and motherboard are the hardware part of the GNSS receiver.
3. An interface for data processing, recording and exploitation. In this study, it will be an Android device. Communication with the receiver depends on the user's choices and the specificity of the motherboard selected. Figure 1 : Hardware components of a GNSS receiver The output measurement quality is determined in the same time by the antenna and the chip. These two components work together and must be chosen in order to fully exploit their functionalities. One of the first models of low-cost chips cited in the literature is the Lea-4t in (Takasu, Yasuda, 2009). Commercialized by U-Blox, it provides a good price/performance ratio for a single-frequency chip. The product portfolio of U-Blox was gradually improved with several models as described in (Butorac, 2018) with the EVK NEO-7P and LEA-M8T models. The number of low-cost chips capable of processing multiple constellations and frequencies is relatively limited.

Chip selected for this study
Among the few high performance GNSS chips on the market, we chose to work with the ZED-F9P released in 2019 ( Figure  2). It is part of the new U-Blox GNSS controller product line. Compared to its predecessors, this module was designed to provide centimetric accuracy on positioning. ZED-F9P can be used with all GNSS constellations and processes all associated frequencies. In addition, this chip is compatible with RTCM corrections, allowing it to operate in RTK differential positioning. Design for mass market applications, this chip has very promising quality/price ratio. These technical features are summarized in Table 1  The ZED-F9P chip has a relatively intern complex hardware architecture for its very small size. Its structure can be divided into different blocks. Close to a professional GNSS receiver, this chip processes analogue signals from antenna and converts them into usable digital data. The memory block allows you to configure and save the chip settings. Communication is ensured with the proprietary UBX format. To ensure its performance is compatible with the objectives of the project, we tested this receiver in several environments. In addition, we made the parallel with a geodetic grade receiver.

Analyse of the raw data
The objective of this first test is to evaluate the performance of the low-cost receiver based on the study of raw measurements.
To quantify and compare the results, we performed the same measurements with a professional Trimble R10 antenna during 15 minutes. To post-process our measurements, we used the RTKLib software which includes the conversion from UBX to Rinex format. For this experiment, the receiver was placed on a roof to provide optimal measuring conditions. The two GNSS receivers were placed side by side and observed simultaneously.
The signal-to-noise ratio is used to qualify the quality of the measurement processing before and after signal amplification. A lower SNR ratio means that the signal processing quality is poorer. ZED-F9P Trimble R10 Figure 3 : Comparison of the signal-to-noise ratio obtained with the two receivers on the frequency L1 For ZED-F9P, the ratio oscillates from 30 to 60 dbHz, which is perfectly acceptable for this kind of low-cost equipment.
However, the quality of the results obtained with the Trimble R10 geodetic antenna is superior.
To understand the impact of these initial observations on positioning, it is interesting to compute GNSS coordinates in a 1 CEP (Circular error probable): Statistical indicator with a

50% confidence index
The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume XLII-2/W17, 2019 6th International Workshop LowCost 3D -Sensors, Algorithms, Applications, 2-3 December 2019, Strasbourg, France stand-alone solution (without any corrections). This configuration uses only the observations made by the GNSS receiver. The results obtained are presented in Figure 4. For the Trimble R10 antenna, the point sample is relatively dense and grouped with a 3D accuracy of about 0,7 m. In comparison, ZED-F9P has a sample with more dispersed points and therefore a less accurate positioning. The 3D standard-deviation for the low-cost antenna is more unfavourable with 1,20 m. This result is partly due to the fact that the input data are noisier ( Figure 3). However, this value remains fully consistent with the technical characteristics of ZED-F9P. In a stand-alone solution, the manufacturer announces an accuracy of 1.50 m CEP (Table 1). In both cases, the results are favourable for a stand-alone positioning solution.
The second part of this test consists in determine if the observation qualities of ZED-F9P are sufficient to reach centimetric precision in post-treated differential solution. The most complex aspect in the differential positioning smoothed by the phase is the resolution of the entire number of ambiguities. Only a "fixed" solution allows a centimetric positioning. For this open-sky test, 98.5% of positions are fixed with ZED-F9P and 99.8% with the Trimble R10. This means that over the 15 minutes of measurements, all the observations converged towards a centimetric positioning. For ZED-F9P, the accuracy on 3D positioning is about 0,01 m, which is excellent. The results are similar with the professional receiver. Although less efficient than the Trimble R10 geodetic antenna, the results obtained with ZED-F9P are excellent for low-cost GNSS equipment. This first test proved that centimetric accuracy can indeed be achieved with this receiver. However, this first performance experimentation, which is not exhaustive, must be pursued. A more global approach was taken, in order to compare the positioning error in different environments.

Position deviation
In this section, several environments were tested, the objective being to assess the performance of the low-cost receiver in various environments. The first test is best suited for GNSS measurement because it is performed in open sky. The second test is in a residential area and the last one is in a low-density urban area. Two operating modes were used (static and dynamic) with varied sources of corrections. To qualify the quality of positioning with ZED-F9P, standard-deviation and accuracy have been used. Although the chip provides theoretical standard-deviation on positioning, we preferred to determine the effective error. As the refreshment period of the ZED-F9P chip is 1 s, 30 s of observations are used to calculate the standarddeviation of the sample. To calculate the accuracy, we considered as true values the positions obtained with the R10 Trimble antenna. The GNSS data were recorded in NMEA format with an NTRIP client android application. The processing was automated with a Matlab script.

Static scenario
The results presented in Table 2 are very close to those achievable with a professional quality GNSS antenna. In RTK fixed mode, mean standard-deviation is always inferior to 1 cm which means that the chip measurement is precise. In open sky, ZED-F9 is globally accurate even if results are slightly less efficient in altimetry for residential and urban environment. These more unfavourable results can be explained by the operating method used on the field. The low-cost antenna is placed on the ground and positioned with a centring disc ( Figure  6) while the true values were measured with GNSS pole. Local multi-path effects can therefore affect the position of our antenna (cars, walls, vegetation, etc.).

Dynamic scenario
In this last experimentation, we wanted to study the quality of the positioning in a dynamic scenario, useful for augmented reality application. The difficulty in dynamic positioning is to get the true values to compute accuracy. To simplify the calculations, we forced the antenna to move in a straight line whose departure and arrival points are known in coordinates ( Figure 6). With this method, it is easier to calculate the standard-deviation and accuracy on positioning. The planimetry results are lower than 2 cm on average (Table 3). The lower altimetry results can be explained by the lack of tension of the string which has been improved in Base/Rover experimentation. For all tests, the most unfavourable position deviations remain within a centimetre range. These results are therefore fully compatible with Syslor's requirements. Figure 6 : Left, Ground measurement | Right, Dynamic measurement along a tight string

HARDWARE AND SOFTWARE DEVELOPMENTS
From previous experimentations, we decided to use this chip as hardware component of this low-cost solution. To fully integrate this technology in Syslor line-products, several developments was achieved.

Syslor "daughter" board
Hardware developments will be made to make this solution compatible with a professional use. A "daughter" board has been designed to be plugged on the current board (Figure 7). The latter allowed to add some technical improvements: 1. Installation of a Bluetooth module dedicated to the communication between the smartphone and ZED-F9P. This serial link ensures the transfer of positioning data and RTCM corrections from NTRIP caster without any cable.
2. When the internet network is too weak or no permanent station is in proximity to the measurement spot, two ZED-F9P modules can be used in Base/Rover. Installation of radio chips on daughter boards allow communication between them. The only condition for this operating mode is to have a known point in the vicinity.

Programming Android GNSS service
To simplify access to positioning data from Syslor applications, a GNSS "service" was developed in Android Studio (Google's software dedicated to mobile application development). A service is a stand-alone program that can be used from any Android application. This solution avoids unnecessary duplication of code in each Syslor applications. For this project, the service module will be dedicated to the communication of the data transmitted by Bluetooth between the daughter board and the smartphone. This service automatically processes three essential data flows (Figure 8).

Figure 8 : Operation of the GNSS service
The service is the centre of exchanges, it performs several operations in parallel. First, it manages the Bluetooth connection with the GNSS box. Once the link is established, the service receives the positioning frames in NMEA format. These frames are converted and made available in the code as environment variables updated every second. Information provided by the service is summarized in the Table 4. Then, they can be saved and displayed on the smartphone screen.
In the same time, the service works as a NTRIP client. For a centimetric RTK positioning, it is necessary to recover differential corrections in RTCM format. The operation of a NTRIP caster is based on the HTTP protocol. The service makes a caster request specifying its identity and location. In exchange, the server provides it the corrections appropriate to its position. To carry out the request, the information to be provided are the server IP address, the port, the mountpoint, customer IDs and the personal password. The RTCM corrections provided in response by the caster are then sent to ZED-F9P.

"Field notebook" Android application
To illustrate and confirm the proper functioning of this GNSS solution on smartphones and initiate the deployment of the solution in photogrammetric surveying and augmented reality application, a field notebook application has been created. Using the Syslor service, the application runs in RTK from NTRIP IDs. The objectives are to simplify the measurement and recording of topographic points by GNSS. Designed to be user friendly, the Java programming was done in Android Studio. These features are as follows: 1. Interface compatible with outdoor use 2. Operates in RTK 3. Accessibility to positioning and accuracy information 4. Compatibility with French map projections 5. Recording handling 6. Listings export Figure 9 : Syslor field notebook Android application for GNSS measurement The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume XLII-2/W17, 2019 6th International Workshop LowCost 3D -Sensors, Algorithms, Applications, 2-3 December 2019, Strasbourg, France

CONCLUSION
In terms of performance, ZED-F9P fully satisfied Syslor's requirements. The numerous experimentations conducted on the chip have demonstrated that centimetric positioning can be achieved in RTK (static and dynamic) positioning. Financially attractive, the chip is also very complete and offers real flexibility of use and configuration. The daughter board, the Android GNSS service and the field notebook application are significant advances. They demonstrate that the hybrid solution is today the most realistic way to reach centimetric positioning. This solid support will allow the start-up to advance and greatly improve its as-build 3D plans and augmented reality services. Pursued internally by Syslor, very encouraging results have been achieved and a customer solution will be available shortly for distribution.