Next Article in Journal
Structured Light Three-Dimensional Measurement Based on Machine Learning
Previous Article in Journal
Hough Transform-Based Large Dynamic Reflection Coefficient Micro-Motion Target Detection in SAR
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

RTK with the Assistance of an IMU-Based Pedestrian Navigation Algorithm for Smartphones

School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China
*
Author to whom correspondence should be addressed.
Sensors 2019, 19(14), 3228; https://doi.org/10.3390/s19143228
Submission received: 14 June 2019 / Revised: 18 July 2019 / Accepted: 19 July 2019 / Published: 22 July 2019
(This article belongs to the Section Remote Sensors)

Abstract

:
Real-time kinematic (RTK) technique is widely used in modern society because of its high accuracy and real-time positioning. The appearance of Android P and the application of BCM47755 chipset make it possible to use single-frequency RTK and dual-frequency RTK on smartphones. The Xiaomi Mi 8 is the first dual-frequency Global Navigation Satellite System (GNSS) smartphone equipped with BCM47755 chipset. However, the performance of RTK in urban areas is much poorer compared with its performance under the open sky because the satellite signals can be blocked by the buildings and trees. RTK can’t provide the positioning results in some specific areas such as the urban canyons and the crossings under an overpass. This paper combines RTK with an IMU-based pedestrian navigation algorithm. We utilize attitude and heading reference system (AHRS) algorithm and zero velocity update (ZUPT) algorithm based on micro electro mechanical systems (MEMS) inertial measurement unit (IMU) in smartphones to assist RTK for the sake of improving positioning performance in urban areas. Some tests are carried out to verify the performance of RTK on the Xiaomi Mi 8 and we respectively assess the performances of RTK with and without the assistance of an IMU-based pedestrian navigation algorithm in urban areas. Results on actual tests show RTK with the assistance of an IMU-based pedestrian navigation algorithm is more robust and adaptable to complex environments than that without it.

1. Introduction

Over the past two decades, GNSS has been evolving rapidly [1]. The U.S. government has promoted the Global Positioning System (GPS) modernization program, adding the second civil signal on L2 frequency (L2C) and the third civilian signal on L5 frequency (L5). As of 24 April 2019, there were a total of 31 operational satellites in the GPS constellation, not including the decommissioned, on-orbit spares [2]. Europe is developing the Galileo system to provide global services. Up to 12 February 2019, there were a total of 22 satellites in operation [3]. Galileo navigation signals are transmitted in the following four frequency bands: E1, E5a, E5b, and E6 bands. The frequency of E1 is equal to that of L1 of GPS (1575.42 MHz), while the frequency of E5a is equal to that of L5 of GPS (1176.45 MHz) [4].
RTK was first proposed as a differential positioning technology that processes both the pseudorange and carrier phase measurements of GPS to provide cm-level accuracy in real time [5]. RTK involves at least one stationary receiver and at least one movable receiver. The stationary receiver, which is called the base station, plays the role of the reference to calculate the position of the movable receiver, which is called the rover [6]. Solving the ambiguity of the carrier phase is one of the most important procedures of RTK. The revolution of GNSS improves the performance of RTK thanks to the increasing number of visible satellites and civilian signals. Utilizing other constellations in addition to GPS improves spatial distribution and reduces problems caused by obstructions, which improves the accuracy and availability of RTK, as shown for GPS/Galileo [7], GPS/GLONASS [8], GPS/BDS [9], and GPS/BDS/Galileo/QZSS [10]. RTK also benefits from the dual frequency, as the accuracy and ambiguity resolution performance are improved [11,12]. Compared with geodetic-grade dual-frequency and multi-frequency receivers, consumer-grade receivers are more widely used due to their low costs. However, low-cost commercial receivers often use inexpensive hardware, especially antennas with poor performance, which leads to the lower carrier-to-noise ratio (CNR), worse resistance to multipath, and poorer ambiguity resolution performance [13]. However, smartphones are often equipped with low-cost receivers. The antennas on smartphones are often linearly polarized (LP) [14], while circular polarization (CP) is generally adopted in satellites to avoid Faraday rotation problems [15]. As a result, the smartphone’s antenna has a loss in the power of signals received, which leads to lower CNR.
Before 2016, Raw GNSS measurements collected by a smartphone were not available to users. Most users only had access to the position computed by the GNSS chipsets. A software-defined receiver called GRIDwas adopted to generate measurements from signals collected by smartphone antennas. The test showed that poor multipath suppression of these antennas did harm to the integer ambiguity resolution [16]. Conditions had changed as Google introduced the Android 7.0 operating system in 2016, indicating that users could get raw GNSS measurements including pseudorange, Doppler, and carrier phase through some APIs. Raw measurements collected by a Samsung Galaxy S7 with the BCM4774 GNSS chipset were analyzed in November 2016. Results confirmed that the quality of carrier-phase measurements could potentially allow for a centimeter-level positioning. However, not only the poor quality of the antenna, but also the duty cycling prevent smartphones from being used as practical RTK units [17]. Duty cycling is a technique to prolong battery life. The duty cycling switches on the navigation chip for a fixed period before switching it off. This fixed period is called the burst period. The burst period can last for 200 milliseconds in one second. What happens in the remaining 800 milliseconds is not known [18,19]. The duty cycling prevents the smartphone from tracking the carrier phase continuously. Carrier phase collected during several minutes after a cold start of a Huawei P10 was used to provide precise position. Results showed the smartphone could reach decimeter accuracy in static conditions and sub-meter when used in urban vehicle scenarios [18]. The Nexus 9 tablet with BCM4752 was one of few devices that had the duty cycling feature disabled before May 2018. Tests using the carrier phase collected by the Nexus 9 tablet for precise positioning proved that not integer phase ambiguities, but float solutions could be estimated. It also proved that precise positioning was feasible with a moderate level of multipath [20].
There were only chipsets supporting the single frequency of each constellation such as BCM4774 and BCM4752 mentioned above. These chipsets differed in supporting different kinds of constellations. A new revolution happened in May 2018 as the first dual-frequency GNSS smartphone produced by Xiaomi was launched. The Xiaomi Mi 8 could collect dual-frequency (L1/E1 + L5/E5a) raw GNSS measurements with the BCM47755 chipset. Meanwhile, Google introduced the Android P operating system that could disable duty cycling with the developer option “Force full GNSS measurements” [21]. These two changes made precise positioning on smartphones much more promising. Frank van Diggelen, the Principal Engineer at Google, pointed out that some phones disabled the duty cycling automatically when users requested raw measurements [22]. The NSL’s FLAMINGO (Nottingham Scientific Limited’s fulfilling enhanced location accuracy in the mass-market through Initial Galileo Services) Team found that the carrier phase collected by the Xiaomi Mi 8 was not affected by the duty cycling [23,24]. Static differential positioning using the carrier phase of GPS and Galileo (L1/E1 + L5/E5a) on a very short baseline provided cm-level precision in the horizontal component and decimeter-level in the vertical component [19]. Observations and positioning performance were analyzed in different multipath conditions, indicating that the Xiaomi MI 8 was very promising to provide sufficiently accurate positioning results in urban areas [25]. With dual-frequency raw measurements, the Xiaomi Mi 8 could use the combination of L1 bands and L5 bands to eliminate most ionosphere errors, which helped obtain more accurate positioning results than smartphones like the Samsung S8 utilizing single-frequency measurements [26]. The carrier phase measured by the Xiaomi Mi 8 could also be used for precise point positioning (PPP) [27].
Users of smartphones are often pedestrians in urban areas. They are more likely to walk through an urban canyon, which is a narrow street with very tall buildings on both sides. They also often walk under overpasses. These overpasses and obscurations can cause the receiver to lose track of the signals, therefore leading to the loss of the carrier phase for many seconds [28]. During that time, RTK cannot provide valid positioning results. The outage of signals hinders all kinds of GNSS positioning methodologies. One common way to improve this is to integrate GNSS with the inertial navigation system (INS). INS is based on an IMU, which consists of gyroscopes and accelerometers, enabling computing velocity, attitude, and position. A hybrid IMU containing magnetometers can also be called a magnetic, angular rate, and gravity (MARG) sensor, which gives more accurate orientation [29]. Assisting GNSS with INS can reduce acquisition time and improve immunity to noise and interference [30]. When it comes to RTK, ambiguity resolution and cycle slip detection benefit from INS aiding [31,32]. Single-frequency multi-constellation RTK tightly coupled with INS performs better than dual-frequency RTK without INS in urban areas [33]. We can couple RTK with INS to assist ambiguity resolution and resist noise, but no position output can be gained frequently in GNSS-challenged environments and GNSS-denied environments. The positioning results are provided by the INS during the GNSS outage [34]. However, INS based on an MEMS-IMU that suffers from large drift cannot provide satisfactory positioning results for a long period of time [35].
Navigation algorithms based on inertial MEMS sensors are divided into two types in general: pedestrian dead reckoning (PDR) algorithms and INS-based algorithms [36]. PDR estimates the position by counting steps and estimating stride length and heading. Many algorithms, such as peak detection and zero-crossing counting, can be used to detect and count steps [37]. After successfully detecting a new step, PDR uses a kind of step length model to estimate the moving distance of a pedestrian [38]. AHRS algorithms can be used to improve the accuracy of estimating the heading angle, which improves the PDR’s performance [39,40]. INS uses strapdown mechanical equations to estimate position, velocity, and attitude. INS-based algorithms utilize some pseudo-measurements to correct the estimate of position, velocity, biases of sensors, and attitude [41]. For example, a foot-mounted INS has explicit stance phases. The velocity should be zero during the stance phases so the ZUPT algorithm can be used to utilize the zero-velocity to reduce the long-term drifts of IMU [42]. PDR algorithms and INS-based algorithms can be coupled for a more accurate estimate of heading and position [36].
In this paper, we collect observation measurements through a Xiaomi Mi 8. We compare the performance of single-frequency RTK with that of dual-frequency RTK based on the Xiaomi Mi 8 in both static mode and dynamic mode. We also compare the performance of RTK based on the Xiaomi Mi 8 with that based on a dual-frequency NovAtel receiver equipped with an OEM617-CDS-R0G-550 card. Here, we utilize RTKLIB [43] to take the measurements. We also provide a method to assist RTK with an IMU-based pedestrian navigation algorithm for smartphones. Considering GNSS outage and MEMS-IMU integrated into our smartphone, we adopt the Madgwick algorithm, which is one kind of AHRS algorithm to provide the initial attitude of our smartphone and utilize the ZUPT algorithm to aid INS to provide positioning results during GNSS outage.
The rest of the paper is organized as follows: In Section 2, the RTK algorithm, the Madgwick algorithm, the ZUPT algorithm, and the procedure of collecting data are introduced in detail. The performance comparison among RTK using the Xiaomi Mi 8, using the NovAtel receiver, and RTK with the assistance of an IMU-based pedestrian navigation algorithm are described in Section 3. Conclusions and future work are summarized in Section 4.

2. Materials and Methods

2.1. Implementation of RTK

We used RTKLIB to analyze the single-frequency and dual-frequency RTK performance based on the Xiaomi Mi 8. In this section, we introduce the theory of RTKLIB [43,44].

2.1.1. EKF Formulation

RTKLIB is based on the extended Kalman filter (EKF). The EKF is a nonlinear version of the Kalman filter (KF), which can help solve nonlinear state estimation. A discrete nonlinear system at epoch t k can be described with two formulas:
x ^ k = f x k 1 , u k , w k
y k = h x k , v k
Here, x ^ k and y k are the estimated state vector and measurement vector at epoch time t k , respectively. w k and v k are the process and observation noises, which are both assumed to be multivariate Gaussian noises with zero mean and covariance Q k and R k , respectively. u k is defined as the control vector. We can utilize the process function f to compute the predicted state at epoch t k 1 from the state at epoch t k and utilize measurement function h to compute the predicted measurement at epoch t k from the predicted state at epoch t k . We define two Jacobian matrices F k 1 k and H k as the matrix of partial derivatives of function f and function h, respectively:
F k 1 k = f x | x ^ k 1
H k = h x | x ^ k
The procedure of EKF can be divided into two parts at each epoch: predicting and updating.
Predicting aims to provide predicted state estimate x ^ k and covariance estimate P k as follows:
x ^ k = f x ^ k 1 , u k , 0
P ^ k = F k 1 k P ^ k 1 F k 1 k T + Q k
Updating aims to provide updated state estimate x ^ k and updated covariance estimate P k as follows:
K k = P ^ k H k T ( H k P ^ k H k T + R k ) 1
x ^ k = x ^ k + K k ( y k h ( x ^ k , 0 ) )
P ^ k = ( I K k H k ) P ^ k

2.1.2. Theory of RTK

RTK is a differential positioning methodology that utilizes the double-differencing pseudorange and carrier phase. We present the principle of triple-frequency RTK for the sake of generality. We can use single-frequency RTK or dual-frequency RTK in practical applications. We define state vector x and measurement vector y as follows:
x = ( r r T , v r T , B 1 T , B 2 T , B 5 T ) T
y = ( Φ 1 T , Φ 2 T , Φ 5 T , P 1 T , P 2 T , P 5 T ) T
where r r and v r are the position and velocity of the rover, respectively; B i is the L i single-differencing carrier-phase biases. Φ i and P i are the double-differencing phase-range and pseudorange measurements on the L i band, respectively. When it comes to the predicting procedure, we can define F k 1 k as Equation (12), considering basic kinematics theory and the consistency of the carrier biases if there is no loss of lock:
F k 1 k = I 3 × 3 I 3 × 3 Δ t O 3 × ( 3 m 3 ) O 3 × 3 I 3 × 3 O 3 × ( 3 m 3 ) O ( 3 m 3 ) × 3 O ( 3 m 3 ) × 3 I ( 3 m 3 ) × ( 3 m 3 )
When it comes to the updating procedure, we can define the measurement function h ( x ) as Equation (13), assuming there are m satellites in view:
h ( x ) = ( h Φ , 1 T , h Φ , 2 T , h Φ , 5 T , h P , 1 T , h P , 2 T , h P , 5 T ) T
where:
h Φ , i = ρ r b 12 + λ i ( B r b 1 B r b 2 ) ρ r b 13 + λ i ( B r b 1 B r b 3 ) ρ r b 1 m + λ i ( B r b 1 B r b m )
h P , i = ρ r b 12 ρ r b 13 ρ r b 1 m
In the two equations, λ i is the wavelength of the L i bands. ρ r b 1 k is the double-differencing pseudorange of the 1st satellite and the k th satellite.
We define D as the single-differencing matrix:
D = 1 1 0 0 1 0 1 0 1 0 0 1
We utilize e r k to stand for the LOS vector from the receiver antenna to the k th satellite in ECEF. We can define E as:
E = e r 1 e r 2 e r m
Finally, we can write H k as:
H k = D E O ( m 1 ) × 3 λ 1 D O ( m 1 ) × m O ( m 1 ) × m D E O ( m 1 ) × 3 O ( m 1 ) × m λ 2 D O ( m 1 ) × m D E O ( m 1 ) × 3 O ( m 1 ) × m O ( m 1 ) × m λ 5 D D E O ( m 1 ) × 3 O ( m 1 ) × m O ( m 1 ) × m O ( m 1 ) × m D E O ( m 1 ) × 3 O ( m 1 ) × m O ( m 1 ) × m O ( m 1 ) × m D E O ( m 1 ) × 3 O ( m 1 ) × m O ( m 1 ) × m O ( m 1 ) × m

2.2. Introduction of the Madgwick Algorithm

The Madgwick algorithm can help provide attitude estimation with both IMU and MARG sensors. This algorithm introduced by Madgwick at the 2011 IEEE International Conference on Rehabilitation Robotics is one kind of AHRS algorithm [29,45]. The Madgwick algorithm employs a quaternion to describe the attitude.

2.2.1. Introduction of the Quaternion

We used a four-dimensional complex number called the quaternion to stand for the attitude of a rigid body relative to a coordinate frame in the three-dimensional space. For example, B A q ^ reflects the attitude of frame B relative to frame A (Figure 1). We can compute the quaternion with the angle θ between frame B and frame A :
B A q ^ = q 0 q 1 q 2 q 3 = c o s ( θ 2 ) r x s i n ( θ 2 ) r y s i n ( θ 2 ) r z s i n ( θ 2 )
r = r x r y r z
Here, r stands for the orientation of the angle. We use B A q * ^ to denote the conjugate of B A q ^ , which represents the attitude of frame A relative to frame B . We can define B A q * ^ as:
B A q * ^ = A B q ^ = q 0 q 1 q 2 q 3
We can define S ω as a quaternion that is formed with the components of the ω n b b , assuming ω n b b is the angular rate:
ω n b b = ω x ω y ω z
S ω = 0 ω x ω y ω z
Then, we can write the quaternion differential equation as:
E S q ˙ ω , t = 1 2 E S q ^ e s t , t 1 S ω t
Here, S ω t is the angular rate measured at time t; E S q ^ is the estimate of the attitude quaternion of the Earth frame relative to the sensor frame at time t 1 ; and E S q ˙ ω , t is the quaternion derivative, which reflects the change rate of the quaternion. ⊗ is defined to denote quaternion multiplication. Then, we can compute the estimate of the attitude quaternion at time t, assuming Δ t is the sample interval:
E S q ω , t = E S q ^ e s t , t 1 + E S q ˙ ω , t Δ t
This quaternion is calculated with the measurements of gyroscopes.

2.2.2. Theory of the Madgwick Algorithm

We can calculate the quaternion with the measurements of gyroscopes, as mentioned above. We can also calculate the quaternion with the measurements of the accelerometers and magnetometers. Suppose we had a predefined reference vector E d ^ in the field of the Earth frame. We can compute the reflect of the vector in the sensor frame using the quaternion:
S d ^ = E S q ^ * E d ^ E S q ^
We can also get the value of vector S s ^ in the measured field of the sensor frame. We can define an objective function to represent the difference between S d ^ and S s ^ as follows:
f ( E S q ^ , E d ^ , S s ^ ) = S d ^ S s ^ = E S q ^ * E d ^ E S q ^ S s ^
The most accurate quaternion should go with the minimum of the objective function. Therefore, this is an optimization problem that can be solved using gradient descent, as Equation (28) shows:
E S q k + 1 = E S q ^ k μ f ( E S q ^ k , E d ^ , S s ^ ) f ( E S q ^ k , E d ^ , S s ^ )
In Equation (28) μ , stands for the variable step-size.
The objective function is formed with two sub-functions solving the measurements of accelerometers and magnetometers, respectively. When it comes to the measurements of accelerometers, we substitute E g ^ and normalized accelerometers measurements E a ^ for S d ^ and S s ^ , respectively, as shown in Equations (29) and (30). Then, we can get the first sub-function, as shown in Equation (31).
E g ^ = 0 0 0 1
S a ^ = 0 a x a y a z
f g ( E S q ^ , E g ^ , S a ^ ) = 2 ( q 1 q 3 q 0 q 2 ) a x 2 ( q 0 q 1 + q 2 q 3 ) a y 1 2 ( q 1 2 + q 2 2 ) a z
When it comes to the measurements of magnetometers, we substitute the Earth’s magnetic field E b ^ and normalized magnetometer measurements E a ^ for S d ^ and S s ^ , respectively, as shown in Equations (32) and (33). Then, we can get the second sub-function, as shown in Equation (34).
E b ^ = 0 b x 0 b z
S m ^ = 0 m x m y m z
f b ( E S q ^ , E b ^ , S m ^ ) = 2 b x ( 0 . 5 q 2 2 q 3 2 ) + 2 b z ( q 1 q 3 q 0 q 2 ) m x 2 b x ( q 1 q 2 q 0 q 3 ) + 2 b z ( q 0 q 1 + q 2 q 3 ) m y 2 b x ( q 0 q 2 + q 1 q 3 ) + 2 b z ( 0 . 5 q 1 2 q 2 2 ) m z
Then, we can form the objective function with two sub-functions as follows:
f g , b ( E S q ^ , E a ^ , E b ^ , S m ^ ) = f g ( E S q ^ , E g ^ , S a ^ ) f b ( E S q ^ , E b ^ , S m ^ )
Then, we can calculate the quaternion using the gradient descent algorithm as Equation (36) shows:
E S q , t = E S q ^ e s t , t 1 μ t f g , b ( E S q ^ , E a ^ , E b ^ , S m ^ ) f g , b ( E S q ^ , E a ^ , E b ^ , S m ^ )
Here, we have two quaternions. One of them is calculated using the angular rate, while the other one is practically calculated utilizing the measurements of the accelerometers and magnetometers. The proper fusion of the two separate quaternions can be more accurate. Different weights can be applied to each quaternion to get the fusion as Equation (37) shows:
E S q e s t , t = γ t E S q , t + ( 1 γ t ) E S q ω , t , 0 γ t 1
Proper γ t , μ t , and some deformation can help us get Equations (38) and (39) to calculate the fused quaternion.
E S q e s t , t = E S q ^ e s t , t 1 + E S q ˙ e s t , t Δ t
E S q ˙ e s t , t = E S q ˙ ω , t β f g , b ( E S q ^ , E a ^ , E b ^ , S m ^ ) f g , b ( E S q ^ , E a ^ , E b ^ , S m ^ )
β in Equation (39) stands for the divergence rate of E S q ω because of the drift.

2.3. Introduction of ZUPT Aiding INS

ZUPT is widely used in INS-based pedestrian navigation. ZUPT is based on a foot-mounted IMU, which means we must fix the IMU on our foot. The ZUPT aiding INS can be divided into two procedures: zero-velocity detection and updating state with virtual measurements [46,47].

2.3.1. Zero-Velocity Detection

The walking process of pedestrians can be modeled as a repeating sequence of heel strike, stance, push off, and swing. The velocity of our foot should be zero during the stance phase when the foot is bearing the weight of the whole body. The zero-velocity can be utilized as a “virtual measurement” to correct the IMU’s attitude, velocity, and position if we can detect the occurrence of the zero-velocity. While there are many approaches to help detect zero-velocity, we chose the generalized likelihood ratio test (GLRT) to derive the detector [48]. The IMU is considered stationary at epoch k if Equation (40) is satisfied.
1 N i W k ( 1 σ f f i g f k ¯ f i ¯ + 1 σ ω ω i 2 ) < γ
In Equation (40), f k ¯ is the mean of accelerometer measurements over the time window W k of length N samples adjacent to epoch k. σ f and σ ω reflect the error of accelerometer and gyroscope, respectively. f ¯ i and ω i are the samples at epoch i in the window.

2.3.2. Updating the State with Virtual Measurements

We used KF to predict and update states. The predicting can be described as Equation (41), considering we chose the position, velocity, and the attitude quaternion as state variables.
x k v k q k = x k 1 + v k 1 d t k v k 1 + ( q k 1 f k q k 1 1 g ) d t k Ω ( ω k d t k ) q k 1
In Equation (41), x k is the position, v k is the velocity, and q k is the attitude quaternion. q k 1 is the conjugate of q k . f k and ω k are measurements in three dimensions. Ω ( · ) is the quaternion updating matrix, which is relative to the angular rate and angle. We can obtain the virtual residual Z k when the zero-velocity occurs as Equation (42) shows.
Z k = 0 v x , k 0 v y , k 0 v z , k
Then, we can calculate the Kalman filter feedback assuming K k is the Kalman gain to correct the states as Equation (43) shows.
d x k = K k Z k

2.4. RTK with the Assistance of an IMU-Based Pedestrian Navigation Algorithm

We walked through an urban canyon. RTK could not provide reliable and continuous positioning results in the urban canyon because of GNSS outage. The assistance of an IMU-based pedestrian navigation algorithm could be helpful. We tied the Xiaomi Mi 8 to our foot, and the Xiaomi Mi 8 collected the measurements of the accelerometer, the gyroscopes, and the magnetometers. By applying the Madgwick algorithm, we could estimate and record the Xiaomi Mi 8’s attitude with these measurements. We counted the interval between two positioning results output by RTK. If the intervals between a positioning result and its last output and also its next output both exceeded the threshold, this positioning result would be ignored. The last valid positioning result before the GNSS outage was regarded as the initial position of the ZUPT aiding INS. We synchronized the outputs of RTK and the Madgwick algorithm so that we could provide the initial attitude, especially the yaw, for the ZUPT aiding INS. The outputs of the ZUPT aiding INS were regarded as positioning results during GNSS outage in the urban canyon. Once we passed through the city canyon, the ZUPT aiding INS stopped outputting positioning results, and RTK continued providing positioning results.

2.5. Data Collection

We used the Xiaomi Mi 8 to collect the GNSS raw measurements and the measurements of IMU.

2.5.1. GNSS Raw Measurements’ Collection

Here, we used an app called Geo++ RINEX Logger, which could produce a file of measurements in RINEX format [49]. There are other similar apps such as RINEX ON [50]. RINEX ON has the advantage of providing not only measurements, but also ephemeris. However, not all kinds of smartphones provide the users with ephemeris. Google also released the GnssLogger app to log the data related to GNSS measurements [51]. GnssLogger did not directly provide pseudorange or carrier phase. Users could only calculate the pseudorange and carrier phase with the data provided by GnssLogger.
Many other smartphones are equipped with BCM47755 and Android P. We can refer to the Android Developers Documentation to choose one kind of phone to develop some applications or test the RTK and PPP performance [52].
Our experiments were based on the Geo++ RINEX Logger and the Xiaomi Mi 8. The Xiaomi Mi 8 equipped with the BCM47755 could utilize dual-frequency signals, as Figure 2 shows.
All the Galileo satellites can broadcast E1 and E5a signals. In contrast, only 12 GPS satellites whose Block types are IIFcan broadcast the L5 signals [53]. A website called Trimble GNSS Planning can be helpful to identify a period when there are the most visible satellites that broadcast L1 (E1) and L5 (E5a) signals in a day [54]. We chose an M300 receiver made by ComNav Technology Ltd. Shanghai, China as the base station. This receiver can provide the measurements of all frequencies and all constellations. We also chose a dual-frequency NovAtel receiver, which supports L1 and L2 signals, as another rover. The position results provided by the dual-frequency RTK using the M300 receiver and the NovAtel receiver were regarded as the references.

2.5.2. IMU Raw Measurements Collection

Here, we used an app called Sensorstream IMU+GPS to collect the measurements of accelerometers, gyroscopes, and magnetometers [55]. We tied the Xiaomi Mi 8 to our foot, as Figure 3 shows.
Sensorstream IMU+GPS can record the measurements of the sensors in smartphones and produce the measurement file in CSV format. Each measurement had its corresponding timestamp. The timestamp is the span from the booting to the happening of the sensor event. We wrote an app to get the time since the phone was booted to help transfer the timestamp of the sensor event to the UTC. There is also a difference between GPS time and UTC. We can transfer UTC to GPS time as Equation (44) shows up to 31 May 2019.
t G P S = t U T C + 18 s

3. Results

3.1. RTK Performances Based on the Xiaomi Mi 8

3.1.1. RTK Performances in Static Mode

We tested the RTK performance in static mode on the roof of the Yifu Building of Peking University on 12 July 2019. The baseline was 15 m. We tested the single-frequency RTK and dual-frequency RTK with GPS measurements. The visible signals are shown in Figure 4a. At least two L5 signals were visible during the test. Figure 4b–d show that both single-frequency RTK and dual-frequency RTK could provide fixed solutions and cm-level precision after a few minutes in static mode. The introduction of L5 measurements reduced the convergence time and improved the fixed rate.

3.1.2. RTK Performances in Dynamic Mode

This section shows RTK performances in dynamic mode. We chose an M300 receiver as the base station (Figure 5a). The M300 receiver was capable of tracking all the signals of all the constellations. The M300 receiver was connected with an antenna located on the roof of our laboratory (Figure 5b). This antenna was also able to receive all the signals of all the constellations. We put the Xiaomi Mi 8 on a small handcart as the rover. We also located a receiver equipped with an OEM617-CDS-R0G-550 card close to the Xiaomi Mi 8 for comparison. This card that could track the L1/L2 signal of GPS was manufactured by NovAtel. The NovAtel receiver was connected to a mini-survey antenna GPS500, which was capable of receiving GPS L1/L2 (Figure 5c,d). The GPS500 was much more resistant to the influence of multipath and noise than the antenna in smartphones. We treated the dual-frequency RTK results provided by the NovAtel receiver as the reference.
We tested the RTK performance in dynamic mode on the sports ground of Peking University on 31 May 2019. We started from the north of the sports ground and walked counterclockwise. A tall building was located to the southeast of the sports ground, which could block signals. We compared the performance between single-frequency RTK and dual-frequency RTK with the NovAtel receiver. Signals tracked by the NovAtel receiver are shown in Figure 6a,b. All the signals shown in Figure 6a,b were tracked by both the rover and base station. The receiver could track the signals of at least four satellites thanks to the high quality of GPS500, which helped to keep providing positioning results during the test.
The performances of single-frequency RTK and dual-frequency RTK with the NovAtel receiver are presented in Figure 6c,d. The fixed rate of ambiguity resolution for single-frequency RTK was less than 9%, while that for dual-frequency RTK exceeded 82%. The differences between the results verified the conclusion that dual-frequency RTK was much more likely to get fixed ambiguity resolution than single-frequency RTK. We chose the dual-frequency RTK results as the reference to compare the performance of RTK in different modes based on the Xiaomi Mi 8. We divided RTK into four modes: RTK with L1 signals of GPS; RTK with L1 signals and L5 signals of GPS; RTK with L1 signals of GPS and E1 signals of Galileo; RTK with L1/L5 signals of GPS and E1/E5a signals of Galileo. Signals tracked by the Xiaomi Mi 8 are shown in Figure 7. Comparison of Figure 7 and Figure 6 explains that the Xiaomi Mi 8 had a little lower capacity of tracking GPS L1 signals than the NovAtel receiver because of the antenna with poor performance. As mentioned in the Introduction, the GPS constellation has more operational satellites than the Galileo constellation does. As a result, there are more GPS visible satellites at the same time. Figure 7 reflects that the number of Galileo satellites tracked by the Xiaomi Mi 8 was less than the number of GPS satellites tracked by the Xiaomi Mi 8. Figure 7 also reflects that the number of visible GPS satellites with both L1 and L5 signals was fewer than that of visible GPS satellites with only L1 signals. We can refer to the Trimble GNSS Planning to find the moments when there were enough visible GPS satellites that were broadcasting L5 signals and visible Galileo satellites.
The performances of RTK in different modes are presented in Figure 8 and Figure 9. Figure 8a shows the performance of RTK with only L1 measurements of GPS. The positioning results fluctuated drastically when the rover was located in the southeast of the sports ground because of the building nearby. This building blocked the signal and exacerbated the multipath effect, which could cause a big positioning error. RTKLIB ignored a satellite if the difference between its pseudorange and carrier phase exceeded the threshold, which was caused by the multipath effect and noise. If we only utilized the GPS, the number of valid satellites was likely to be less than four, which led to the absence of positioning results at some moments. As a result, Figure 8a shows that RTK with only L1 measurements did not provide positioning results in the southeast of the sports ground at some moments. Figure 8a also shows that the positioning results suffered from fluctuations and biases when the rover was located in the north of the sports ground at the beginning of the test, which reflected that RTK spent a few seconds converging to provide precise positioning results. Figure 8b shows the performance of RTK with L1 measurements and L5 measurements of GPS. The introduction of L5 measurements helped flatten the fluctuations caused by the blocking of signals and multipath effects. The positioning results given by RTK with L1 measurements and L5 measurements of GPS were also closer to the reference than those given by RTK with L1 measurements in Figure 8a, which meant more accuracy. However, the introduction of L5 signals could not increase the number of visible satellites. As a result, RTK still could not provide positioning results at some moments in the southeast of the sports ground. The introduction of L5 signals did not reduce the convergence time at the beginning, either. Figure 7 shows that there was only one valid L5 signal at the beginning of the test, which limited the advantages of dual-frequency RTK. Figure 8c shows the performance of RTK with L1 measurements of GPS and E1 measurements of Galileo. The introduction of another constellation meant more visible satellites. These additional Galileo satellites ensured the number of visible satellites when some GPS signals were blocked by the building, which helped to keep providing positioning results in the southeast of the sports ground. The introduction of Galileo also helped reduce the fluctuations and the convergence time at the beginning thanks to the improvement of the spatial distribution. Figure 8d shows the performance of RTK with L1/L5 measurements of GPS and E1/E5a measurements of Galileo. The positioning results given by RTK with L1/L5 measurements of GPS and E1/E5a measurements of Galileo were very close to the reference, as the introduction of Galileo helped increase the number of visible satellites, and dual frequency helped flatten the fluctuations and reduce the convergence time. However, Figure 8d shows that dual frequency could not help increase the fixed rate of ambiguity resolution for RTK on the Xiaomi Mi 8 in dynamic mode. This phenomenon was caused by the poor quality of signals because of the poor performance of the antenna. The statistics of positioning error in the ECEF coordinate are shown in Table 1. Table 1 also shows that dual-frequency RTK could provide positioning results with smaller biases and fluctuations.
We tested the RTK performance in dynamic mode repeatedly to verify the advantages of dual-frequency RTK with the Xiaomi Mi 8. The results of a test on the basketball court are shown in Figure 10. The statistics of positioning errors in the ECEF coordinate are shown in Table 2.
Figure 10 and Table 2 also show that dual-frequency measurements could reduce the convergence time and positioning bias. Besides, Figure 10 shows that the fixed rate of ambiguity resolution for RTK on the Xiaomi Mi 8 in dynamic mode did not improve although the dual-frequency measurements were introduced.

3.2. The Performance of the Madgwick Algorithm

This section shows the performance of the Madgwick algorithm. We can use not only quaternion, but also Euler angles including pitch θ , roll γ , and yaw ψ to depict the attitude. Quaternion and Euler angles can be transformed into each other. Figure 11 shows the definition of the coordinate system used by the Android system [56]. The X-axis is horizontal and points to the right of the phone. The Y-axis is vertical and points to the top of the phone. The X-axis and Y-axis are in a plane parallel to the screen of the phone’s surface. The Z-axis points towards the outside of the front face of the screen and is perpendicular to the plane of the X-axis and Y-axis. Yaw is defined as the angle between the magnetic north direction and the Y-axis, which reflects the rotation around the Z-axis. Yaw values range from 0 360 where 0 = north, 90 = east, 180 = south and 270 = west. Pitch reflects the rotation around the X-axis with positive values when the Y-axis moves toward the Z-axis. Pitch values range from 90 + 90 where 0 = horizon, + 90 = straight up, and 90 = straight down. Roll reflects the rotation around the Y-axis with positive values when the X-axis moves toward the Z-axis. Roll values range from 180 + 180 .
We changed the Xiaomi Mi 8’s attitude to test the performance of the Madgwick algorithm with a three-axis turntable. The turntable could provide an accurate attitude with an error of smaller than four seconds. We initiated the turntable, setting the pitch, roll, and yaw to zero. Then, we changed the pitch, roll, and yaw of the turntable simultaneously. We set the pitch and roll to 45 , while we set yaw to 325 . After that, the three Euler angles were set to zero again. Since the Xiaomi Mi 8 was fixed in the chute of the turntable, the attitude of the Xiaomi Mi 8 was strictly in line with the attitude of the turntable. We collected the measurements of sensors and estimated the Euler angles with the Madgwick algorithm. The results are shown in Figure 12. The estimated Euler angles corresponded to the change of attitude.

3.3. The Performance of the ZUPT Aiding INS

This section shows the performance of the ZUPT aiding INS. We tied the Xiaomi Mi 8 to our foot and took a walk following the pre-planned path (approximately 50 meters) in the corridor on the ninth floor of the Yifu Building of Peking University. The place where we walked is shown in Figure 13a, and the pre-planned path is shown by the red arrows in Figure 13a. We measured the length and width of the corridor and established a model of the environment with AutoCAD. The results of the ZUPT aiding INS are shown in this model in Figure 13b. It can be seen that the results could reflect our trajectory.

3.4. Performances of RTK with the Assistance of an IMU-Based Pedestrian Navigation Algorithm

This section shows the performance of RTK with the assistance of an IMU-based pedestrian navigation algorithm. We walked through a narrow path with tall teaching buildings on both sides, as Figure 14 shows. We walked following the red arrows and turned left at the green point. We turned right at the blue point with a five-meter distance between the two points. We kept going straight at other moments.
Tall buildings could not only block GNSS signals, but also aggravate the multipath effect, which hindered RTK from providing positioning results, as Figure 15a shows. There were only two points between the two blue points in Figure 15a, which meant RTK could hardly provide the positioning results because of the GNSS outage. Although the RTK could provide two positioning results as the green point and the black point shown in Figure 15a, the positioning results were not precise enough. The black point was to the southwest of the green point, which was incompatible with the fact that we kept walking toward roughly north. Severe multipath effects in the urban canyon limited the accuracy of RTK. As a result, it was unreliable to provide positioning results with RTK based on the Xiaomi Mi 8 in the urban canyon. We tied the Xiaomi Mi 8 to our foot to utilize the ZUPT aiding INS to provide continuous positioning results during GNSS outage, as mentioned in the Materials and Methods. The positioning results are shown in Figure 15b. The outputs of the ZUPT aiding INS were able to fill in the position when the positioning results of the RTK were lost, as Figure 15b shows. Positioning results in Figure 15b could reflect our trajectory as there were two changes in the direction of motion. The last output of the ZUPT aiding INS was consistent with the first positioning result provided by the RTK after we passed through the urban canyon. Figure 15 and Figure 16 show that the combination of RTK, the Madgwick algorithm, and the ZUPT aiding INS could be more robust and more reliable than RTK without the assistance of an IMU-based pedestrian navigation algorithm. RTK with the assistance of an IMU-based pedestrian navigation algorithm could be more adaptable to urban areas because of the capacity of providing positioning results during GNSS outage. Our experiment demonstrates the feasibility of providing continuous positioning results by using RTK with the assistance of an IMU-based pedestrian navigation algorithm.

4. Conclusions and Future Work

In this paper, we tested the performances of single-frequency RTK and dual-frequency RTK on the Xiaomi Mi 8 and compared the performance of RTK based on the Xiaomi Mi 8 with that based on the NovAtel receiver. Both single-frequency RTK and dual-frequency RTK could provide fixed solutions in static mode. The introduction of the dual-frequency RTK reduced the convergence time and improved the fixed rate in static mode. When it comes to dynamic mode, dual-frequency RTK with GPS and Galileo measurements suffered from the least biases and fluctuations. The introduction of Galileo satellites helped provide more continuous positioning results because of the increasing number of visible satellites. The fixed rate of dual-frequency RTK based on the Xiaomi Mi 8 in dynamic mode did not rise significantly compared with single-frequency RTK based on the Xiaomi Mi 8.
We also provided a method to assist RTK with an IMU-based pedestrian navigation algorithm for smartphones. We combined RTK with the Madgwick algorithm and the ZUPT aiding INS to provide more continuous positioning results. The experiment showed that RTK with the assistance of IMU could provide reliable positioning results during GNSS outage, which was much more reliable and adaptable to complex environments than RTK without the assistance of an IMU-based pedestrian navigation algorithm. The experiments verified the feasibility of providing continuous positioning results in both GNSS-allowed and GNSS-challenged environments with a Xiaomi Mi 8.
Assisting RTK with an IMU-based pedestrian navigation algorithm is still in the proof-of-concept stage. Experiments verified the feasibility of our method. However, further work is needed to assess our method’s performance more accurately. In the future, we will conduct experiments to test the method’s accuracy and stability in different environments. Besides, we will obtain the GNSS measurements and measurements of IMU with our app and develop a GNSS/INS with a loosely-coupled or tightly-coupled integration system based on smartphones to raise the anti-jamming capability of RTK. Considering tying smartphones to the pedestrian’s foot is inconvenient and not practical for pedestrians, we will also assist RTK with other algorithms during GNSS outage so that continuous positioning results can be provided with a handheld smartphone.

Author Contributions

Conceptualization, Z.N. and P.N.; data curation, Z.N., L.T., and J.S.; formal analysis, Z.N., L.T., and J.S.; software, Z.N.; writing, original draft, Z.N.; writing, review and editing, Z.N. and B.Z.

Funding

This research was funded by the National Key Research and Development Project of China Grant Number 2016YFB0502100.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Alkan, R.M.; Karaman, H.; Sahin, M. GPS, GALILEO and GLONASS Satellite Navigation Systems & GPS Modernization. In Proceedings of the 2nd International Conference on Recent Advances in Space Technologies, Istanbul, Turkey, 9–11 June 2005; pp. 390–394. [Google Scholar]
  2. GPS.gov: Space Segment. Available online: https://www.gps.gov/systems/gps/space/ (accessed on 8 June 2019).
  3. Latest Batch of Galileo Satellites Enters Service. Available online: https://www.gsa.europa.eu/newsroom/news/latest-batch-galileo-satellites-enters-service (accessed on 8 June 2019).
  4. Signal-in-Space Interface Control Document; European GNSS (Galileo) Open Service; European Union: Brussels, Belgium, 2016; pp. 3–7.
  5. Langley, R. Rtk gps. GPS. World 1998, 9, 70–76. [Google Scholar]
  6. Lee, I.S.; Ge, L.L. The performance of RTK-GPS for surveying under challenging environmental conditions. Earth Planets Space 2006, 58, 515–522. [Google Scholar] [CrossRef] [Green Version]
  7. Odijk, D.; Teunissen, P. Characterization of between-receiver GPS-Galileo inter-system biases and their effect on mixed ambiguity resolution. GPS. Solut. 2013, 17, 521–533. [Google Scholar] [CrossRef]
  8. Ong, R.B.; Petovello, M.G.; Lachapelle, G. Assessment of GPS/GLONASS RTK under various operational conditions. In Proceedings of the ION GNSS 2009, Savannah, Georgia, 22–25 September 2009; pp. 3297–3308. [Google Scholar]
  9. He, H.; Li, J.; Yang, Y.; Xu, J.; Guo, H.; Wang, A. Performance assessment of single- and dual-frequency BeiDou/GPS single-epoch kinematic positioning. GPS. Solut. 2014, 18, 393–403. [Google Scholar] [CrossRef]
  10. Odolinski, R.; Teunissen, P.; Odijk, D. Combined BDS, Galileo, QZSS and GPS single-frequency RTK. GPS. Solut. 2015, 19, 151–163. [Google Scholar] [CrossRef]
  11. Teunissen, P.; Odolinski, R.; Odijk, D. Instantaneous BeiDou+ GPS RTK positioning with high cut-off elevation angles. J. Geod. 2014, 88, 335–350. [Google Scholar] [CrossRef]
  12. Odolinski, R.; Teunissen, P.; Odijk, D. Single-frequency, dual-GNSS versus dual-frequency, single-GNSS: A low-cost and high-grade receivers GPS-BDS RTK analysis. J. Geod. 2016, 90, 1255–1278. [Google Scholar] [CrossRef]
  13. Takasu, T.; Yasuda, A. Evaluation of RTK-GPS performance with low-cost single-frequency GPS receivers. In Proceedings of the International Symposium on GPS/GNSS, Tokyo, Japan, 1–14 November 2008; pp. 852–861. [Google Scholar]
  14. Meenakshi, R.; Premalatha, G. Circularly polarized monopole mobile phone antenna for GNSS Applications. Int. J. Eng. Sci. 2016, 3, 757–760. [Google Scholar]
  15. Hsieh, W.; Chang, T.; Kiang, J. Dual-band circularly polarized cavity-backed annular slot antenna for GPS receiver. IEEE Trans. Antenn. Propag. 2012, 60, 2076–2080. [Google Scholar] [CrossRef]
  16. Pesyna, J.; Kenneth, M.; Heath, J.; Robert, W.; Humphreys, T. Centimeter positioning with a smartphone-quality GNSS antenna. In Radionavigation Laboratory Conference Proceedings; The University of Texas at Austin: Austin, YX, USA, 2014. [Google Scholar]
  17. Banville, S.; Van Diggelen, F. Precise positioning using raw GPS measurements from Android smartphones. GPS. World 2016, 27, 43–48. [Google Scholar]
  18. Pirazzi, G.; Mazzoni, A.; Biagi, L.; Crespi, M. Preliminary performance analysis with a GPS+ Galileo enabled chipset embedded in a smartphone. In Proceedings of the ION GNSS+ 2017, Portland, OR, USA, 25–29 September 2017; pp. 101–115. [Google Scholar]
  19. Warnant, R.; Mazzoni, A.; Van De Vyvere, L.; Warnant, Q. Positioning with Single and Dual Frequency Smartphones Running Android 7 or Later. In Proceedings of the ION GNSS+ 2018, Miami, FL, UDA, 24–28 September 2018. [Google Scholar]
  20. Håkansson, M. Characterization of GNSS observations from a Nexus 9 Android tablet. GPS. Solut. 2019, 23, 21. [Google Scholar] [CrossRef]
  21. Van Diggelen, F. GNSS Raw Measurements from Android Phones. In Proceedings of the GSA Raw Measurements Workshop, Prague, Czech Republic, 30 May 2018. [Google Scholar]
  22. Van Diggelen, F. Raw Measurements from Phones. In Proceedings of the ION Masters Course, Miami, FL, USA, 24 September 2018. [Google Scholar]
  23. Chen, B.; Gao, C.F.; Liu, Y.S.; Sun, P.Y. Real-time Precise Point Positioning with a Xiaomi MI 8 Android Smartphone. Sensors 2019, 19, 2835. [Google Scholar] [CrossRef] [PubMed]
  24. Nottingham Scientific Ltd. Available online: https://www.nsl.eu.com/nsl-jcms/about-nsl/nsl-blog/15-products-and-services/56-xiaomi-mi8-2 (accessed on 6 July 2019).
  25. Robustelli, U.; Baiocchi, V.; Pugliano, G. Assessment of dual frequency GNSS observations from a Xiaomi Mi 8 Android smartphone and positioning performance analysis. Electronics 2019, 8, 91. [Google Scholar] [CrossRef]
  26. Galluzzo, G.; Navarro-Gallardo, G.; Sunkevic, M. Using GNSS Raw Measurements on Android Devices. In Proceedings of the the 9th International Conference on Indoor Positioning and Indoor Navigation (IPIN 2018), Nantes, France, 24–27 September 2018. [Google Scholar]
  27. Wu, Q.; Sun, M.F.; Zhou, C.J.; Zhang, P. Precise Point Positioning Using Dual-Frequency GNSS Observations on Smartphone. Sensors 2019, 19, 2189. [Google Scholar] [CrossRef] [PubMed]
  28. Sinko, J.W. RTK performance in highway and racetrack experiments. Navigation 2003, 50, 265–275. [Google Scholar] [CrossRef]
  29. Madgwick, S.O.; Harrison, A.J.; Vaidyanathan, R. Estimation of IMU and MARG orientation using a gradient descent algorithm. In Proceedings of the 2011 IEEE International Conference on Rehabilitation Robotics, Zurich, Switzerland, 29 June–1 July 2011; pp. 1–7. [Google Scholar]
  30. Zhang, T.S.; Niu, X. An integrated research platform for real-time deep integration. In Proceedings of the ION GNSS 2012, Nashville, TN, USA, 17–21 September 2012; pp. 1666–1673. [Google Scholar]
  31. Petovello, M.G.; Cannon, M.E.; Lachapelle, G.R. Benefits of Using a Tactical-Grade IMU for High-Accuracy Positioning. Navigation 2004, 51, 1–12. [Google Scholar] [CrossRef]
  32. Altmayer, C. Enhancing the integrity of integrated GPS/INS systems by cycle slip detection and correction. In Proceedings of the IEEE Intelligent Vehicles Symposium 2000, Dearborn, MI, USA; 2000; pp. 174–179. [Google Scholar]
  33. Li, T.; Zhang, H.P.; Gao, Z.Z.; Chen, Q.J.; Niu, X.J. High-accuracy positioning in urban environments using single-frequency multi-GNSS RTK/MEMS-IMU integration. Remote Sens. 2018, 10, 205. [Google Scholar] [CrossRef]
  34. Li, T.; Zhang, H.P.; Niu, X.J.; Gao, Z.Z. Tightly-coupled integration of multi-GNSS single-frequency RTK and MEMS-IMU for enhanced positioning performance. Sensors 2019, 17, 2462. [Google Scholar] [CrossRef]
  35. Angrisano, A. GNSS/INS Integration Methods. Ph.D. Thesis, The Parthenope University of Naples, Naples, Italy, 2010. [Google Scholar]
  36. Lin, T.; Li, L.R.; Lachapelle, G. Multiple sensors integration for pedestrian indoor navigation. In Proceedings of the 2015 International Conference on Indoor Positioning and Indoor Navigation, Banff, AB, Canada, 13–16 October 2015; pp. 1–9. [Google Scholar]
  37. Brajdic, A.; Harle, R. Walk detection and step counting on unconstrained smartphones. In Proceedings of the 2013 ACM international joint conference on Pervasive and ubiquitous computing, Zurich, Switzerland, 8–12 September 2013; pp. 225–234. [Google Scholar]
  38. Kuang, J.; Niu, X.J.; Chen, X.G. Robust pedestrian dead reckoning based on MEMS-IMU for smartphones. Sensors 2018, 18, 1391. [Google Scholar] [CrossRef]
  39. Del, R.; Michael, B.; Lovell, N.H.; Redmond, S.J. Quaternion-based complementary filter for attitude determination of a smartphone. IEEE Sens. J. 2016, 16, 6008–6017. [Google Scholar]
  40. Li, Y.; Lan, H.Y.; Zhuang, Y.; Zhang, P.; Niu, X.J.; El-Sheimy, N. Real-time attitude tracking of mobile devices. In Proceedings of the 2015 International Conference on Indoor Positioning and Indoor Navigation, Banff, AB, Canada, 13–16 October 2015; pp. 1–7. [Google Scholar]
  41. DFoxlin, E. Pedestrian tracking with shoe-mounted inertial sensors. IEEE Comput. Graph. 2005, 25, 38–46. [Google Scholar] [CrossRef]
  42. Gu, Y.; Song, Q.; Li, Y.H.; Ma, M. Foot-mounted pedestrian navigation based on particle filter with an adaptive weight updating strategy. J. Navigation 2015, 68, 23–38. [Google Scholar] [CrossRef]
  43. Takasu, T. RTKLIB ver. 2.4.2 Manual. Available online: http://www.rtklib.com/prog/manual_2.4.2.pdf (accessed on 8 June 2019).
  44. Takasu, T.; Yasuda, A. Development of the low-cost RTK-GPS receiver with an open source program package RTKLIB. In Proceedings of the International Symposium on GPS/GNSS, Jeju, Korea, 4–6 November 2009; pp. 4–6. [Google Scholar]
  45. Madgwick, S.O. An Efficient Orientation Filter for Inertial and Inertial/Magnetic Sensor Arrays; University of Bristol: Bristol, UK, 30 April 2010. [Google Scholar]
  46. Fischer, C.; Sukumar, P.T.; Hazas, M. Tutorial: Implementing a pedestrian tracker using inertial sensors. IEEE Pervas. Comput. 2012, 12, 17–27. [Google Scholar] [CrossRef]
  47. Nilsson, J.; Skog, I.; Händel, P.; Hari, K. Foot-mounted INS for everybody-an open-source embedded implementation. In Proceedings of the 2012 IEEE/ION Position, Location and Navigation Symposium, Myrtle Beach, SC, USA, 23–26 April 2012; pp. 140–145. [Google Scholar]
  48. Skog, I.; Handel, P.; Nilsson, J.; Rantakokko, J. Zero-velocity detection—An algorithm evaluation. IEEE Trans. Biomed. Eng. 2010, 57, 2657–2666. [Google Scholar] [CrossRef] [PubMed]
  49. Geo++ RINEX Logger. Available online: https://play.google.com/store/apps/details?id=de.geopp.rinexlogger (accessed on 8 June 2019).
  50. Rinex ON. Available online: https://play.google.com/store/apps/details?id=com.eu.nsl.rinexON (accessed on 8 June 2019).
  51. Google GPS Measurement Tools. Available online: https://github.com/google/gps-measurement-tools/tree/master/GNSSLogger (accessed on 7 July 2019).
  52. Raw GNSS Measurements | Android Developers. Available online: https://developer.android.com/guide/topics/sensors/gnss.htmlhttps://developer.android.com/guide/topics/sensors/gnss.html (accessed on 6 July 2019).
  53. GPS CONSTELLATION STATUS. Available online: https://www.navcen.uscg.gov/?Do=constellationStatus (accessed on 8 June 2019).
  54. Trimble GNSS Planning. Available online: https://www.gnssplanning.com/#/skyplot (accessed on 8 June 2019).
  55. Sensorstream IMU+GPS. Available online: https://play.google.com/store/apps/details?id=de.lorenz_fenster.sensorstreamgps (accessed on 8 June 2019).
  56. SensorEvent|Android Developers. Available online: https://developer.android.com/reference/android/hardware/SensorEvent (accessed on 8 June 2019).
Figure 1. Visualization of frame A and frame B . Frame A rotates an angle θ around the r axis to become frame B .
Figure 1. Visualization of frame A and frame B . Frame A rotates an angle θ around the r axis to become frame B .
Sensors 19 03228 g001
Figure 2. Visualization of the various GNSS carrier frequencies.
Figure 2. Visualization of the various GNSS carrier frequencies.
Sensors 19 03228 g002
Figure 3. Close-up of tying the Xiaomi Mi 8 to our foot.
Figure 3. Close-up of tying the Xiaomi Mi 8 to our foot.
Sensors 19 03228 g003
Figure 4. RTK performances in static mode. (a) The visible signals; (b) vertical positioning errors; (c) horizontal positioning errors (single frequency); (d) horizontal positioning errors (dual frequency).
Figure 4. RTK performances in static mode. (a) The visible signals; (b) vertical positioning errors; (c) horizontal positioning errors (single frequency); (d) horizontal positioning errors (dual frequency).
Sensors 19 03228 g004
Figure 5. View of the base station and the rover. (a) View of the M300 receiver; (b) view of the antenna on the roof; (c) view of the rover; (d) brief description of the rover.
Figure 5. View of the base station and the rover. (a) View of the M300 receiver; (b) view of the antenna on the roof; (c) view of the rover; (d) brief description of the rover.
Sensors 19 03228 g005
Figure 6. RTK performances based on the NovAtel receiver. (a) Visible signals and satellites; (b) number of different signals); (c) single-frequency RTK; (d) dual-frequency RTK.
Figure 6. RTK performances based on the NovAtel receiver. (a) Visible signals and satellites; (b) number of different signals); (c) single-frequency RTK; (d) dual-frequency RTK.
Sensors 19 03228 g006
Figure 7. Signals tracked by the Xiaomi Mi 8. (a) Visible signals and satellites; (b) number of signals.
Figure 7. Signals tracked by the Xiaomi Mi 8. (a) Visible signals and satellites; (b) number of signals.
Sensors 19 03228 g007
Figure 8. RTK performances on the sports ground. (a) GPS(L1); (b) GPS(L1 + L5); (c) GPS(L1) + Galileo(E1); (d) GPS(L1 + L5) + Galileo(E1 + E5a).
Figure 8. RTK performances on the sports ground. (a) GPS(L1); (b) GPS(L1 + L5); (c) GPS(L1) + Galileo(E1); (d) GPS(L1 + L5) + Galileo(E1 + E5a).
Sensors 19 03228 g008
Figure 9. RTK performances shown in Google Earth.
Figure 9. RTK performances shown in Google Earth.
Sensors 19 03228 g009
Figure 10. RTK performances on the basketball court. (a) GPS(L1) + Galileo(E1); (b) GPS(L1 + L5) + Galileo(E1 + E5a).
Figure 10. RTK performances on the basketball court. (a) GPS(L1) + Galileo(E1); (b) GPS(L1 + L5) + Galileo(E1 + E5a).
Sensors 19 03228 g010
Figure 11. The coordinate system used by the Android system.
Figure 11. The coordinate system used by the Android system.
Sensors 19 03228 g011
Figure 12. The performance of the Madgwick algorithm.
Figure 12. The performance of the Madgwick algorithm.
Sensors 19 03228 g012
Figure 13. The performance of the ZUPT aiding INS. (a) Place where we walked; (b) the estimated trajectory.
Figure 13. The performance of the ZUPT aiding INS. (a) Place where we walked; (b) the estimated trajectory.
Sensors 19 03228 g013
Figure 14. A narrow path with tall teaching buildings on both sides.
Figure 14. A narrow path with tall teaching buildings on both sides.
Sensors 19 03228 g014
Figure 15. Comparison between the performances of RTK without the assistance of an IMU-based pedestrian navigation algorithm and RTK with the assistance of an IMU-based pedestrian navigation algorithm. (a) The performance of RTK without the assistance of an IMU-based pedestrian navigation algorithm; (b) the performance of RTK with the assistance of an IMU-based pedestrian navigation algorithm.
Figure 15. Comparison between the performances of RTK without the assistance of an IMU-based pedestrian navigation algorithm and RTK with the assistance of an IMU-based pedestrian navigation algorithm. (a) The performance of RTK without the assistance of an IMU-based pedestrian navigation algorithm; (b) the performance of RTK with the assistance of an IMU-based pedestrian navigation algorithm.
Sensors 19 03228 g015
Figure 16. Trajectories in Google Earth.
Figure 16. Trajectories in Google Earth.
Sensors 19 03228 g016
Table 1. Statistics of positioning errors in the ECEFcoordinate (sports ground).
Table 1. Statistics of positioning errors in the ECEFcoordinate (sports ground).
ModesGPS(L1)GPS(L1/L5)GPS(L1) + Gal(E1)GPS(L1/L5) + Gal(E1/E5a)
X2.43951.38520.34240.0111
Mean (m)Y−5.2601−1.5211−1.54230.2136
Z−2.2977−1.1398−0.08150.1150
Norm6.23702.35201.58190.2428
X7.86443.34931.22870.5905
RMS (m)Y5.83253.71303.01190.9283
Z5.30581.94190.89350.4540
Norm11.13645.36433.37341.1902
Table 2. Statistics of positioning errors in the ECEF coordinate (basketball court).
Table 2. Statistics of positioning errors in the ECEF coordinate (basketball court).
ModesGPS(L1) + Gal(E1)GPS(L1/L5) + Gal(E1/E5a)
X0.21750.2002
Mean (m)Y−1.6638−1.1142
Z−0.4090−0.5422
Norm1.72711.2552
X0.71820.3727
RMS (m)Y1.86051.4237
Z1.96761.2460
Norm2.80151.9284

Share and Cite

MDPI and ACS Style

Niu, Z.; Nie, P.; Tao, L.; Sun, J.; Zhu, B. RTK with the Assistance of an IMU-Based Pedestrian Navigation Algorithm for Smartphones. Sensors 2019, 19, 3228. https://doi.org/10.3390/s19143228

AMA Style

Niu Z, Nie P, Tao L, Sun J, Zhu B. RTK with the Assistance of an IMU-Based Pedestrian Navigation Algorithm for Smartphones. Sensors. 2019; 19(14):3228. https://doi.org/10.3390/s19143228

Chicago/Turabian Style

Niu, Zun, Ping Nie, Lin Tao, Junren Sun, and Bocheng Zhu. 2019. "RTK with the Assistance of an IMU-Based Pedestrian Navigation Algorithm for Smartphones" Sensors 19, no. 14: 3228. https://doi.org/10.3390/s19143228

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop