# A New DGNSS Positioning Infrastructure for Android Smartphones
## 1 Introduction  
Global Navigation Satellite System (GNSS) measures the satellite-to-user distances to determine the user position, suffering from measurement errors caused by the satellite clock, the satellite orbit, the propagation delay, and the receiver. The standalone GNSS determines position with an accuracy of 5 m to 10 m, and brings many benefits to our daily life [1]. Some applications, however, such as the lane-level positioning system and the collision warning system, and the Geographic Information System (GIS) information collection system, require far better accuracy than that given by the standalone GNSS [2]. The concept of Differential GNSS (DGNSS) was developed in the 1980s. DGNSS reduces measurement errors using corrections or raw measurements generated from one or more referencestations [3; 4]. The GNSS errors are correlated over space, and the corrections from reference stations remove all of the satellite clock errors, most of the orbit errors, and most of the ionospheric and tropospheric errors on the user side. The positioning accuracy of the DGNSS user can be improved up to 1 m to 2 m, which is sufficient for many applications. In intelligent transportation systems, DGNSS is integrated with other sensors to enhance accuracy and reliability, and, in this case, the installation of a special DGNSS unit has been required in such vehicle control and safety systems [5; 6; 7; 8; 9]. The DGNSS position error grows with the distance between the reference station and the user receiver. The deterioration with distance is mainly caused by the de-correlated error of ionosphere, which can be mitigated using the ionospheric gradients [9; 10]. Note that the receiver-related error (e.g., multipath errors) could not be reduced using corrections. In previous studies, the multipath errors can be mitigated with the aid of inertial navigation system/computer vision [5; 11], cooperative positioning [6; 7], and a three-dimensional map [8]. In recent years, a significant change in GNSS is that most smartphones are equipped with consumer-grade GNSS chipsets. According to the Global System for the Mobile Communication Assembly (GSMA) report, the smartphone market would reach at least 2.9 billion in 2020 [12]. DGNSS is disabled in the chipsets embedded within most smartphones in the electronic market, that is, DGNSS could not be achieved by feeding range corrections into the GNSS chipsets, as is achieved in the conventional DGNSS units. In 2016, Google has opened the access to raw GNSS measurements [13]. This has brought great benefits to applications that require higher accuracy. With the newest smartphones, the centimeter positioning accuracy can be achieved by using precise point positioning (PPP) or real-time kinematic positioning (RTK) [14; 15]. However, most of the smartphones do not provide continuous carrier phase measurements due to the great power consumption for normal smartphones. In addition, most of the mid and low-end smartphones do not provide the pseudorange measurements, and thus do not support the DGNSS operation. At the early stage of development of GNSS, the position domain correction was developed to improve the GNSS accuracy. This simple method assumes that the same set of satellites is utilized to determine the positions of the reference station and the smartphones. However, buildings or trees on the path from the satellite to the user can block the GNSS signals, and the reference station and users would utilize different sets of satellites. Thus, the conventional position correction degrades the accuracy of GNSS most of the time, instead of improving the accuracy [16; 17; 18]. The concept of DGNSS based on National Marine Electronics Association (NMEA) messages was first proposed in [17], and subsequently demonstrated in [18; 19]. These research efforts have shown that the positioning accuracy of smartphones can be improved in mid-latitude regions, and have demonstrated the feasibility of the concept. The line-of-sight of each satellites should be computed in the new concept.