Introduction

In the Global Satellite Navigation System (GNSS), there are many sources of error that affect its positioning accuracy, which can be broadly divided into three categories: satellite-related errors, receiver-related errors, and signal propagation-related errors. Satellite-related errors, including satellite clock errors and satellite calendar errors, can be obtained from navigation data. Errors related to receivers, including noise errors. Errors related to signal propagation, including ionospheric errors, tropospheric errors, and multipath errors, wherein ionospheric errors and tropospheric errors can be eliminated by modeling or differential technology, and multipath error is not only affected by the relative position of the receiver and satellite (Luo et al., 2020), but also by the surrounding environment where the receiver is located; especially in urban environments, its unpredictability is difficult to eliminate through modeling and other related technologies, so it is a focus to study how to mitigate multi-path errors.

Multipath effect means that when the GNSS antenna receives satellite signals, it not only receives direct signals (DS) on the direct path, but also signals from the indirect path reflected or diffracted by surrounding objects, as shown in Fig. 1.

Fig. 1
figure 1

Multipath effect

Traditional multipath suppression methods can be divided into three categories: the first category is to improve the receiver antenna, such as path suppressor, and choke, but it cannot suppress multipath in the actual environment; the second category is to modify the receiver tracking, the delay-locked loop structure in the loop, such as narrow correlation technology, strobe correlator, and high-resolution correlator technology, but it can only suppress medium and long delays, and cannot suppress short delays; the third type is signal processing methods, such as maximum likelihood estimation, multipath estimation delay-locked loop (MEDLL), MMT (multipath mitigation technique), and multipath suppression technology, but its computational complexity is high and cannot be processed in real time.

Antenna suppression multipath technology: antenna suppression multipath technology (Bao et al., 2012; Ke, 2018) can reduce the reception of multipath reflected directional signals by improving the antenna structure to align the main lobe of the pattern to the direction of the ranging signal. However, this method needs to know or estimate the angle information of the transmitting end, which has certain limitations.

The receiver processing and suppressing multipath technology can be divided into two types: parametric and nonparametric.

The parameter formula is to use estimation theory to estimate the parameters of the multipath signal, and then correct the receiving signal according to the estimated parameters to reduce the influence of the multipath signal. The current methods of using parameters are maximum likelihood estimation (Wu et al., 2019) which includes the use of multipath estimating delay-locked loop (MEDLL) (Blanco-Delgado & Nunes, 2012; Fan et al., 2019; van Nee et al., 1994), the multipath signal parameters in the received signal that can be obtained in the DLL, and then the use of signal parameters to suppress multipath interference, but the effect of short-delay multipath suppression is still not ideal. Multipath mitigation technique (MMT) (Gao et al., 2018) first estimates the parameters of the multipath signal and the direct signal, and then mitigates the multipath signal. The performance of the algorithm can be improved as the amount of processed data increases, but this method is highly complex and not suitable for complex electromagnetic environments. Yuan et al. (Yuan et al., 2014) proposed that a correlator whose local code phase is controlled by a Kalman filter can sample the correlation peaks of the received signal at variable intervals, which improved the estimation accuracy of multipath parameters. Jiwu et al. (2017) suggested that the direct signal is estimated by the maximum likelihood estimation method before the pseudo-code de-expansion is proposed, and then the optimal combination is made by the multi-channel coherent integral, and the best estimate of the code phase tracking error is obtained. Heliang et al. (2017) propose to use correlation curve deviation to separate navigation satellite multipath signals.

The nonparametric type is the design of special phase detector that are insensitive to multipath signals. Among them, for example, the narrow correlation technology (Dierendonck et al., 1992), by shortening the time width of the forward lag correlator, that is, reducing the delay of the lead-lag code relative to the instant code to reduce the range affected by the multipath component delay, the method can only handle long delay multipath signal, and it is not ideal for medium and short-delay multipath mitigation. The strobe correlator (Garin et al., 1996; Yuanfa et al., 2007) uses two sets of lead-lag correlators. Although this method further improves the multipath suppression capability of the narrow correlators, it is not enough to cope with short-delay multipath. The high-resolution correlator technology (Mc Graw, 1999) is similar to the narrow correlator technology, and it is a method to accomplish similar narrow correlation by changing the local code signal. However, this method not only needs to increase the number of correlators on the hardware, but also needs corresponding fast algorithm to deal with the large computational problems brought by multiple correlators. Such methods generally reduce the time width of the lead-lag correlator in the DLL to reduce the range affected by the delay of the multipath component (Mass et al., 2013). Although the scope of application of various improved methods is different, the time width of the lead-lag correlator cannot be infinite. Therefore, the suppression effect of this type of method on short-delay multipath is not ideal. In addition, using Bayes-based particle filtering methods (Closas et al., 2009; Liu et al., 2010), maximum likelihood estimation (Sahmoudi & Amin, 2008) and other algorithms to estimate multipath signal parameters can also get better performance.

In recent years, many literatures have used neural networks to suppress multipath, such as using a genetic algorithm to transform the multipath signal estimation problem into an optimal fitting problem multipath approximation method (Wang et al., 2009). Model and measure the influence of non-line-of-sight (NLOS) signals on GNSS pseudorange observations, and the use of the deviation caused by NLOS signal is identified and estimated by edge-like ratio (Cheng et al., 2016), thereby improving the positioning and navigation performance of GNSS receivers. The multipath hemispherical map is used to suppress the impact of multipath signals on the GNSS receiver (Dong et al., 2016).

The main structure of this paper is as follows: the second section describes the clustering algorithm and the k-means algorithm, and the third section introduces the use of a combination of least squares and autoregressive strategy to estimate the model coefficients of the code deviation, and uses a solution to construct the multipath delay, the fourth section conducts experimental verification, and the fifth section gives the conclusion.

K-means Clustering Algorithm

Clustering Algorithm

Clustering is based on the principle of similarity to divide data with higher similarity into one category, and divide data with higher differences into another category. Clustering algorithm is an algorithm for studying and analyzing classification problems. When processing data objects, it can be a training data set without any prior knowledge. Clustering algorithms in machine learning can generally be divided into five categories: including k-means clustering algorithm, mean shift clustering algorithm, DBSCAN (density-based spatial clustering of applications with noise) clustering algorithm (Cao et al., 2021), using Gaussian mixture model (GMM) expectation maximization (EM) clustering, and hierarchical clustering algorithm.

Mean shift clustering algorithm is an algorithm based on sliding window, which is used to find the area with the highest density of data points. The biggest disadvantage is the selection of the sliding window size r, which has a great influence on the result. DBSCAN is a density-based clustering algorithm. When clusters have different densities, the density threshold points and field radius of different categories will have great changes, so its performance is not as good as other clustering algorithms, and at the same time, it is not a small challenge to accurately estimate the domain radius in a high-dimensional space. There are two key points when using the Gaussian mixture model. First, the Gaussian mixture model is very flexible and can fit ellipses of any shape; secondly, this is a probability-based algorithm. Each point can have probabilities belonging to multiple classes and supports mixed attributes. However, the main disadvantage of this algorithm is not only to specify the initial class center, but also to set the covariance matrix and mixing weights. The hierarchical clustering algorithm does not need to specify the number of classes in advance, and is not sensitive to the distance measurement; the best application of this method is to restore the hierarchical structure of the data, but its computational complexity is relatively high.

The k-means mean value only needs to calculate the distance between the data point and the center of the drama, and its computational complexity is relatively small, so this paper chooses to use the k-means clustering method to classify GNSS signals. K-means algorithm is a kind of clustering algorithm; it is mainly divided by the distance between data objects, that is, the smaller the distance between data objects (Zhang et al., 2020), the higher their similarity, and then they are more likely to be in a cluster.

When using the k-means clustering algorithm in machine learning to classify GNSS signals, it is necessary to extract information from the observed raw data. In this paper, we mainly use carrier-to-noise ratio (C/N), pseudorange, and satellite correlation values to classify direct signals and multipath.

K-means Principle Analysis

The k-means algorithm is the most commonly used clustering algorithm. The main idea is, given K values and K initial cluster centers, classify each point (i.e., data record) to the nearest cluster in the cluster represented by the cluster center point; after all the points are allocated, the center point of the cluster is recalculated according to all the points in a cluster (take the average value) (Cui et al., 2021), and then iteratively carry out the steps of assigning points and updating the cluster center point until the cluster center point changes little or reaches the specified number of iterations.

Satellite signals received by GNSS receivers in complex environments are generally divided into two types: direct signal and multipath. Each type of signal has a certain internal relationship with carrier-to-noise ratio, pseudorange, and satellite correlation value. According to this feature, this paper uses the k-means algorithm to cluster signals, and when one of the samples is closest to the cluster center, it is classified into this category. For a given set of samples \(X = \left\{ {x_{1} ,x_{2} \ldots x_{n} } \right\}\), where \(x_{n} = \left\{ {r_{n} ,v_{n} ,e_{n} } \right\}\) is the eigenvector formed by multiplying the normalized carrier-to-noise ratio, pseudorange, and satellite correlation values by the corresponding weights, n is the number of samples, and the k-means algorithm divides it into k clusters \(C = \left\{ {C_{1} ,C_{2} \ldots C_{k} } \right\},\;1 < k \le n\), and calculates the distance between the sample and each mean vector, namely

$$d = \sqrt {\sum\limits_{i = 1}^{k} {\left( {x - \mu_{i} } \right)^{2} } }$$
(1)

where x represents the sample and is the mean vector of the cluster, and its expression is:

$$\mu_{i} = \frac{1}{{C_{i} }}\sum\limits_{{x \in C_{i} }} x$$
(2)

The k-means algorithm flow is as follows (Fig. 2):

Fig. 2
figure 2

K-means flowchart

  1. 1.

    First, the k-means method randomly selects K samples from the data set, and each point represents the initial cluster center;

  2. 2.

    Calculate the distance of each remaining sample to each cluster center, assign the value of each sample to the cluster center i that is closer to the ith cluster center, and calculate the distance separately;

  3. 3.

    Recalculate the value of each cluster center, divide the average of each value of K cluster centers, and use the average as the new cluster center;

  4. 4.

    Repeat steps (2) and (3) until the K cluster centers no longer change.

The classification diagram of the k-means algorithm is shown in Fig. 3:

Fig. 3
figure 3

K-means classification diagram

Multipath Model

In this article, the multipath signal is modeled as the superposition of multiple discrete paths, namely:

$$x\left( t \right) = \sum\limits_{l = o}^{L - 1} {a_{l} \left( t \right)c\left( {t - \tau_{l} \left( t \right)} \right)\cos \left( {2\pi ft + 2\pi f_{d} \left( t \right)t} \right)} + n\left( t \right)$$
(3)

Among them, \(a_{l} \left( t \right)\) and \(\tau_{l} \left( t \right)\), respectively, represent the complex weight and relative propagation delay of the \(l\)th path, \(c\left( t \right)\) represents the spreading code of GNSS, \(f\) represents the carrier frequency, \(f_{d} \left( t \right)\) represents the Doppler frequency, and \(n\left( t \right)\) represents Gaussian white noise.

This article uses dual frequency to calculate the multipath delay in pseudorange observations, as shown in Eq. (4):

$${\text{MP}}_{i} \left( {t_{k} } \right) = \rho_{i} \left( {t_{k} } \right) - m_{ij} \cdot \lambda_{i} \cdot \varphi_{i} \left( {t_{k} } \right) + \left( {m_{ij} - 1} \right) \cdot \lambda_{j} \cdot \varphi_{j} \left( {t_{k} } \right)$$
(4)
$$m_{ij} = \frac{{f_{i}^{2} + f_{j}^{2} }}{{f_{i}^{2} - f_{j}^{2} }}$$
(5)

where f and λ represent the frequency and wavelength of the signal, respectively; the subscripts i and j stand for two different frequencies; φ and ρ represent the phase observation value and the pseudorange observation value, respectively; \(t_{h}\) is the epoch time.

The output of Eq. (1) includes ambiguity, hardware delay, ionospheric delay, multipath delay and noise, and the ionospheric delay can be eliminated by Eq. (4). In the continuous tracking of satellites, we can assume that the ambiguity and hardware delay are constant terms, and then eliminate them by using several epochs of smoothness:

$$\overline{{{\text{MP}}_{i} }} \left( {t_{h} } \right) = {\text{MP}}_{i} \left( {t_{h} } \right) - {{\left( {\sum\limits_{{t_{b} - t_{a} }}^{{t_{a} + n}} {{\text{MP}}_{i} \left( {t_{b} } \right)} } \right)} \mathord{\left/ {\vphantom {{\left( {\sum\limits_{{t_{b} - t_{a} }}^{{t_{a} + n}} {{\text{MP}}_{i} \left( {t_{b} } \right)} } \right)} n}} \right. \kern-\nulldelimiterspace} n}$$
(6)

Among them, \(\overline{{{\text{MP}}_{i} }} \left( {t_{h} } \right)\) represents the residual of the combined observation, n represents the width of the epoch smoothness window, and \(t_{a}\) represents the starting epoch. Equation (6) does not eliminate the effect of noise on multipath. It outputs the multipath after epoch smoothing, so the noise needs to be removed.

The denoising sequence of formula (6) includes multipath delay and code offset. At present, most papers use two methods to solve these two problems, respectively. Therefore, this paper uses a method to solve the multipath delay and code offset problems. Equation (7) is expressed as a polynomial model of the h-th GNSS satellite code deviation sequence:

$$L_{h} \left( {e_{i} } \right) = c_{0}^{h} + c_{1}^{h} \cdot e_{i} + c_{2}^{h} \cdot e_{i}^{2} + \varepsilon_{h} \left( {e_{i} } \right)$$
(7)

In the formula, \(L_{h}\) is the result obtained by calculating formula (6); \(c_{0}\), \(c_{1}\), and \(c_{2}\) are the coefficients of this polynomial model; \(e_{i}\) represent the ith elevation of the GNSS satellite; \(\varepsilon_{h}\) is the model noise. For all observations, the error equation of Eq. (7) can be further written as

$$V_{h} \left( {e_{i} } \right) = \left[ {\begin{array}{*{20}c} 1 & {e_{i} } & {e_{i}^{2} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {c_{0}^{h} } \\ {c_{1}^{h} } \\ {c_{2}^{h} } \\ \end{array} } \right] - L_{h} \left( {e_{i} } \right)$$
(8)

When modeling multipath delay, AR model is usually used to describe the relationship between random sequence variables as

$$z_{h} \left( {e_{i} } \right) = \sum\limits_{k = 1}^{q} {\omega_{h}^{k} } z_{h} \left( {e_{i - 1} } \right) + v_{h} \left( {e_{i} } \right)$$
(9)

In the formula, \(z_{h}\) is the residual of formula (8); ω is the autoregressive coefficient obtained by the LS method; q is the order of the model, and ν is the Gaussian white noise. In formula (9), the model order is usually selected by using the Akaike information criterion (Hu et al., 2020), namely:

$${\text{AIC}}\left( p \right) = {\text{In}}\;\sigma_{p}^{2} + \frac{2p}{{N - 1}}$$
(10)

In formula (10), \(\sigma_{p}^{2}\) represents the mean square error of the model, and N is the number of observations. Theoretically speaking, the independent orders (8) and (9) of the equation can be summarized as a two-step strategy, and the optimal results of the model coefficients cannot be obtained. This paper constructs a one-step method to deal with code offset and multipath delay. Set the code deviation series to \(y_{h}\) to produce

$$L_{h} \left( {e_{i + 1} } \right) = y_{h} \left( {e_{i + 1} } \right) + z_{h} \left( {e_{i + 1} } \right) + \zeta_{h} \left( {e_{i} } \right) = A_{h} \left( {e_{i + 1} } \right) \cdot c_{h} + z_{h} \left( {e_{i + 1} } \right) + \zeta_{h} \left( {e_{i} } \right)$$
(11)
$$A\left( {e_{i} } \right) = \left[ {\begin{array}{*{20}c} 1 & {e_{i} } & {e_{i}^{2} } \\ \end{array} } \right]$$
(12)
$$c_{h} = \left[ {\begin{array}{*{20}c} {c_{0}^{h} } & {c_{1}^{h} } & {c_{2}^{h} } \\ \end{array} } \right]^{{^{T} }}$$
(13)
$$\begin{aligned} z_{h} \left( {e_{i + 1} } \right) & = L_{h} \left( {e_{i + 1} } \right) - A_{h} \left( {e_{i + 1} } \right) \cdot c_{h} + \zeta_{h} \left( {e_{i} } \right) = \sum\limits_{k = 1}^{q} {\omega_{h}^{k} } z_{h} \left( {e_{i + 1 - k} } \right) + \zeta_{h} \left( {e_{i} } \right) \\ & = \sum\limits_{k = 1}^{q} {\omega_{h}^{k} } \left[ {L_{h} \left( {e_{i + 1 - k} } \right) - A_{h} \left( {e_{i + 1 - k} } \right) \cdot c_{h} } \right] + \zeta_{h} \left( {e_{i} } \right) \\ \end{aligned}$$
(14)

According to formula (14), the solution of the model coefficients is obtained. In addition, the model coefficients are optimized by adjusting the weights of different observations.

Generally speaking, the height of a satellite can reduce the multipath effect. The greater the altitude of the satellite, the smaller the multipath of the satellite. Therefore, it is necessary to exclude satellites with low elevation angles to reduce the multipath effect. Normally, satellites with elevation angles below 5° are excluded before calculating the receiver position. However, we need to keep as many satellites as possible in the urban environment, so this paper does not exclude low-elevation satellites, but uses the following weighting function to reduce the impact of low-elevation satellites on multipath:

$$w_{2} \left( a \right) = \left\{ {\begin{array}{*{20}l} {\frac{{\sin^{2} \left( a \right)}}{{\sin^{2} \left( {5^\circ } \right)}}} \hfill & {a < 5^\circ } \hfill \\ 1 \hfill & {a \ge 5^\circ } \hfill \\ \end{array} } \right.$$
(15)

This is shown in Fig. 4

Fig. 4
figure 4

Elevation weighting function \(w_{2}\)

In this paper, the final weight for applying this method is the product of the first two functions of each satellite:

$$w\left[ {\left( {{\text{C}}/{\text{N}}} \right)_{j} ,e_{j} } \right] = w_{1} \left[ {\left( {{\text{C}}/{\text{N}}} \right)_{j} } \right]w_{2} \left( {e_{j} } \right)$$
(16)

where \(\left( {{\text{C}}/{\text{N}}} \right)_{j}\) and \(e_{j}\) are, respectively, the carrier-to-noise ratio and height associated with the jth satellite. In this paper, let the pseudorange and pseudorange rate weights of the same satellite be the same, resulting in, and the new weight is in the range of 0–1. Since both the carrier-to-noise ratio and the satellite altitude angle can be obtained after processing by the receiver, this formula is feasible.

Experiment

The experimental scenario is set as follows: there are trees and buildings around the experimental equipment; the multipath effect is more obvious, so the received satellite signals include line-of-sight signals and multipath signals, as shown in the figure. This experiment uses observational data. From September to December 2020, data were collected multiple times for experiments. Two consecutive days of data were selected for analysis. The sampling interval was 30 s. The experiment site was Taiyuan University of Technology Mingxiang Campus. By using the method used in this article, it can be clearly seen that this method can effectively suppress multipath, thereby improving the positioning accuracy.

Figure 5 shows the result of using the k-means algorithm to classify direct signals and multipath. In this paper, the k-means algorithm is used to classify the received satellite signals into two categories: direct signals and multipath signals. In Fig. 5, the direct signal is divided into one type, and the multipath signal is divided into two types. From Fig. 5, it can be seen that the k-means algorithm can distinguish the direct signal up to 96%, and the multipath signal can reach 85%. In summary, the classification accuracy of this algorithm can reach 90.5%, the classification accuracy of RBF and Liner for direct signals are 70% and 64%, respectively, and the classification accuracy of RBF and Liner for multipath signals are 25% and 35%, respectively. The classification accuracy of the k-means algorithm proposed in this paper is improved by 26% and 32% on the direct signal compared with the RBF and Liner methods, respectively, and by 60% and 50% on the multipath signal. The combined improvement is 43% and 41%, so this method has better classification accuracy, and can distinguish direct signals and multipath signals to a large extent.

Fig. 5
figure 5

Classification accuracy result gra

Figure 6 compares the k-means algorithm with the clustering algorithms of mean shift and DBSCAN, and the results show that the classification accuracy of the k-means algorithm is higher than that of the two clustering algorithms in the classification of direct and multi-path signals.

Fig. 6
figure 6

Classification accuracy

In this paper, two eigenvalues of carrier-to-noise ratio and pseudorange are used to determine whether the k-means algorithm can classify direct signals and multipath signals. Figure 7 shows the effect of pseudorange on multipath and direct signals. It can be seen from the figure that there is more overlap between the direct signal and the multipath signal, so the pseudorange can be used to distinguish part of the two, but they cannot be completely distinguished.

Fig. 7
figure 7

Effect of pseudorange on LOS and multipath

Figure 8 shows the effect of the carrier-to-noise ratio on the multipath and direct signals. It can be seen from the figure that because the probability density distributions of the two are obviously different, the use of the carrier-to-noise ratio can distinguish the direct signal and the multipath well. When the carrier-to-noise ratio is 20–40 dBHz, the multipath phenomenon is more obvious. When the carrier-to-noise ratio is 42–55 dBHz, the direct signal is more obvious, and the multipath interference is weak. There is almost no crossover between the two, and the carrier-to-noise ratio can be used to classify multipath signals and direct signals to reduce multipath errors. Comparing Figs. 7 and 8, it can be found that although the pseudorange can also distinguish between direct signal and multipath, there is no obvious difference in carrier-to-noise ratio. Therefore, this paper uses the two characteristic values of pseudorange and carrier-to-noise ratio to compare the direct signal and multipath signal. It perform classification, which greatly improves the accuracy of classification.

Fig. 8
figure 8

Influence of carrier-to-noise ratio on multipath and LOS

Figure 9 shows the MP PR deviation and estimate.

Fig. 9
figure 9

MP PR bias and estimated

Figures 10, 11, and 12 represent errors in the east, north, and up directions, and they can be seen from the figure that the methods proposed in this paper have obvious advantages in the east, north, and up directions, and the error range is much smaller than that of the other two methods.

Fig. 10
figure 10

Error in the east direction

Fig. 11
figure 11

Error in the north direction

Fig. 12
figure 12

Error in the up direction

As shown in Fig. 10, before 200 s, the error of these three methods is very small, all below 5 m, but after 200 s, the error of the no correction and robust Kalman methods increased dramatically; the former fluctuated around 45 m, the latter fluctuated around 50 m, and at about 320 s, the error of the two methods plummeted to about 5 m, and the method proposed in this paper did not change much over time; the error fluctuated in the range of 0–5. It can be obvious that the method of this paper is better than the first two methods; the error is smaller, and the positioning accuracy is higher.

Figure 11 shows the error in the north direction; this paper uses the methods of no correction and robust Kalman which are compared with the methods proposed, and it can be clearly seen from the figure that the maximum error of no correction can reach 78 m, while the maximum error of robust Kalman can reach 95 m, and the maximum error of the method proposed in this paper is 8 m. Compared with these two methods, the method proposed in this paper has higher positioning accuracy and better feasibility.

Figure 12 shows the error in the up direction, and it can be clearly seen that the method proposed in this paper is smaller and higher precision than the other two methods error. In summary, the proposed method can reduce the multipath error to a certain extent, improving the positioning accuracy.

Figure 13 shows the distance error of using REKF, Ublox, and the method proposed in this article. It can be seen from the figure that the fluctuations of the two methods of Ublox and REKF are large, and the distance error can even be as high as 80 m. The error is different and cannot be fixed within a certain numerical range, and the distance error of the method proposed in this paper basically fluctuates around 0, indicating that this method is more effective than the other two methods and has a certain positioning accuracy. Figure 14 shows the CDF corresponding to Fig. 13.

Fig. 13
figure 13

Distance error of REKF, Ublox, and the proposed method

Fig. 14
figure 14

CDF of distance errors

Conclusion

This paper proposes a method based on k-means clustering to detect direct signals and multipath. The signal received by the receiver is divided into two categories by using the k-means method, one is direct signal, and the other is multipath. Carrier-to-noise ratio and pseudorange are used to distinguish direct signal from multipath. Experiments show that although the pseudorange can also distinguish between direct signal and multipath, it is not as obvious as the C/N. Therefore, this paper uses the two characteristic values of pseudorange and C/N to classify the direct signal and multipath signal, which greatly improves the accuracy of classification. In addition, this paper also proposes a combination of least squares and autoregressive strategy to estimate the model coefficients of the code deviation, and uses a solution to construct the multipath delay for multipath mitigation. Experiments show that compared with the strategy based on REKF, the range of the distance error of the method in this paper is not large, and basically fluctuates in the range of 0–5, which greatly improves the positioning accuracy.