A Novel Satellite Selection Algorithm Using LSTM Neural Networks For
  Single-epoch Localization
This work presents a new approach for detection and exclusion (or
de-weighting) of pseudo-range measurements from the Global Navigation Satellite
System (GNSS) in order to improve the accuracy of single-epoch positioning,
which is an essential prerequisite for maintaining good navigation performance
in challenging operating contexts (e.g., under Non-Line of Sight and/or
multipath propagation). Beyond the usual preliminary hard decision stage, which
can mainly reject obvious outliers, our approach exploits machine learning to
optimize the relative contributions from all available satellites feeding the
positioning solver. For this, we construct a customized matrix of pseudorange
residuals that is used as an input to the proposed longshort term memory neural
network (LSTM NN) architecture. The latter is trained to predict several
quality indicators that roughly approximate the standard deviations of
pseudo-range errors, which are further integrated in the calculation of
weights. Our numerical evaluations on both synthetic and real data show that
the proposed solution is able to outperform conventional weighting and signal
selection strategies from the state-of-theart, while fairly approaching optimal
positioning accuracy.
Ibrahim Sbeity, Christophe Villien, Christophe Combettes, BenoÃ®t Denis, E Veronica Belmega, Marwa Chafii
# A Novel Satellite Selection Algorithm Using LSTM Neural Networks For Single-epoch Localization

###### Abstract

This work presents a new approach for detection and exclusion (or de-weighting) of pseudo-range measurements from the Global Navigation Satellite System (GNSS) in order to improve the accuracy of single-epoch positioning, which is an essential prerequisite for maintaining good navigation performance in challenging operating contexts (e.g., under Non-Line of Sight and/or multipath propagation). Beyond the usual preliminary hard decision stage, which can mainly reject obvious outliers, our approach exploits machine learning to optimize the relative contributions from all available satellites feeding the positioning solver. For this, we construct a customized matrix of pseudo-range residuals that is used as an input to the proposed long-short term memory neural network (LSTM NN) architecture. The latter is trained to predict several quality indicators that roughly approximate the standard deviations of pseudo-range errors, which are further integrated in the calculation of weights. Our numerical evaluations on both synthetic and real data show that the proposed solution is able to outperform conventional weighting and signal selection strategies from the state-of-the-art, while fairly approaching optimal positioning accuracy.

 Global Navigation Satellite System, Satellite Selection, Single-epoch Positioning, Machine (Deep) Learning, Long-Short Term Memory Neural Network

## I Introduction

Accurate and resilient positioning services based on the Global Navigation Satellite System (GNSS) have become essential into a variety of outdoor applications, such as autonomous vehicles and unmanned aerial vehicles, blueforce and first responders tracking, seamless end-to-end logistics and supply chains optimization, large-scale crowd-sensing, etc.

By itself, single-epoch GNSS localization is a key enabler that can provide tracking filters with input observations so as to refine further the mobile position and exploit its dynamics through hybrid data fusion (e.g., combining GNSS with other modalities from inertial sensors, odometers, etc.). Beyond, single-epoch localization is also and foremost typically used to initialize the navigation processor in charge of tracking the GNSS filtered solution [1].

The signals received from satellites can be severely affected by Non-Line of Sight (NLOS) and multipath (MP) propagation in harsh environments, such as urban canyons, hence leading to strongly biased pseudo-range measurements. In this context, selecting the most reliable and/or most informative measurements (while discarding the most harmful ones) is of primary importance to preserve the accuracy of this preliminary single-epoch positioning stage and, hence, of the overall navigation system. This down-selection step is even more critical and challenging as several tens of measurements are typically made available within modern GNSS receivers at each time epoch (i.e., while considering multiple satellites from different constellations), making exhaustive search computationally prohibitive. Most basic selection approaches mainly exploit signal features at single link level (e.g. carrier-to-noise power density ratio \(C/N_{0}\), elevation angle \(\theta\), etc.) so as to exclude - or mitigate the influence of - satellites that would presumably contribute to large positioning errors [2, 3].

For the remaining satellites fulfilling these basic single-link quality criteria, many selection techniques have been proposed such as, subset-testing [4], RANSAC [5], iterative reweighting [6], etc. These methods involve different tradeoffs between computational complexity and performance. However, because of the huge combinatorial complexity of testing all possible subsets of satellites, exhaustive search is not tractable and this selection problem remains an open issue to the best of our knowledge. For instance, most conventional selection approaches (e.g., [7]) rely on the spatial distribution of intermediary positioning results conditioned upon specific subsets of the available satellites to determine the most harmful contributions through posterior consensus. However, they mainly exclude satellites with strongly biased pseudo-ranges, which may still be insufficient to draw the best possible accuracy out of selected pseudo-ranges, given that their respective - and even joint - negative influence is not properly mitigated.

In this paper, we introduce a novel pre-processing approach suited to single-epoch stand-alone positioning, which aims at overcoming major drawbacks of conventional selection techniques. More specifically, we redefine the initial satellites selection problem as a weighting problem, where one first
originality lies in the application of machine learning (ML) into the domain/space of pseudo-range residuals (i.e., relying on intermediary positioning results conditioned on specific subsets of satellites) for determining the best satellite weights.

In order to fully exploit the potential of deep learning tools in harnessing hidden correlations between pseudo-range measurements, as well as possible joint effects from discarding several satellites at a time (on final positioning performance), we exploit a long-short term memory neural network (LSTM NN), which is fed with a customized pseudo-range residuals matrix (processed as a whole), representing a second originality of our contribution. This NN is trained to predict quality factors that account for the link-wise standard deviations of pseudo-range errors. These predictions are finally used to compute nearly-optimal satellite weights within a standard weighted least squares (WLS) positioning solver.

To sum up, our main contributions are two fold. First, we introduce a novel deep learning-based technique to solve the satellite selection problem dedicated to improve the accuracy of single-epoch positioning. The main ingredients of our approach are the LSTM NN architecture coupled with the new and customized pseudo-range residual matrix used as the NN input. Second, we improve the computation of the measurement weights in comparison with conventional parametric methods.

Finally, our approach is tested on both synthetic simulation data and real-field experimental data from extensive measurement campaigns, which were conducted with a dedicated test platform under typical vehicular mobility in a variety of scenarios and environments.

Note that our approach can be beneficial to both real-time location-based applications requiring accurate positioning information (e.g., autonomous vehicles, unmanned aerial vehicles...) and offline post-processing applications (e.g., aiming at correcting raw online GNSS trajectory a posteriori).

The rest of this paper is structured as follows. First, Section II introduces the system model and the general problem formulation. On this occasion, we also recall representative satellites selection techniques from the literature. Then, our construction of the residuals matrix, its use as an input to the LSTM NN, as well as the underlying machine learning model, are detailed in Section III. Finally, numerical results on both synthetic and real datasets are analyzed in Section IV.

## II Problem Formulation

We start by describing the problem under study and then we summarize the most representative existing work.

### _Single epoch solution_

For the sake of simplicity and without any loss of generality, we consider a set of \(N\) single band, single constellation, pseudo-ranges measurements \(\{\rho^{i}\}_{i=1...N}\) (the same formulation would apply for carrier phase, pseudo-range rates, etc.), while for the experimental validations reported in Sec. IV we will deal with multi-band and multi-constellation scenario. For those pseudo-range measurements, the appropriate compensations computed from ephemeris data (satellite vehicle (SV) clock bias, ionospheric and tropospheric delays, Sagnac correction etc.) have already been applied. In the absence of multi-path or any strong bias, the \(i\)-th SV measurement can be modeled as

\[\rho^{i}=\sqrt{(x-x^{i})^{2}+(y-y^{i})^{2}+(z-z^{i})^{2}}+c\ \delta+\eta^{i}, \tag{1}\]

where \(\rho^{i}\) is the pseudo-range between a receiver \(R\) and the \(i\)-th SV, and \((x^{i},y^{i},z^{i})\) and \((x,y,z)\) the coordinates for the \(i\)-th satellite and the receiver, respectively. The parameter \(c\) is the speed of light, and \(\delta\) is the clock bias between the receiver and the considered constellation; \(\eta^{i}\) is the observation noise which represents the receiver noise and residual errors from ionosphere and troposphere delays, etc. Although ionosphere and troposphere residual errors (i.e. after correction from navigation message) are highly correlated over time, they could be considered as independent and zero mean for single epoch processing. Hence, we can assume that the observation noise follows a centered Gaussian distribution \(\eta^{i}\sim\mathcal{N}(0,\,\sigma_{i}^{2})\).

Our aim is to estimate the vector \(\mathbf{X}=[x,y,z,\delta]^{\top}\) from the measurements \(\{\rho^{i}\}_{i=1...N}\). A widely used and efficient solution is provided by the maximum-likelihood estimator (MLE) [8], which simplifies to a weighted least-squares for our Gaussian noise model

\[\hat{\mathbf{X}}=\arg\min_{\mathbf{X}}\ \sum_{i=1}^{N}\omega^{i}(\rho^{i}-h^{i}( \mathbf{X}))^{2}, \tag{2}\]

with the observation function for satellite \(S_{i}\) defined as

\[h^{i}(\mathbf{X})=\sqrt{(x-x^{i})^{2}+(y-y^{i})^{2}+(z-z^{i})^{2}}+c\ \delta, \tag{3}\]

and the weights equal to

\[\omega^{i}=\frac{1}{(\sigma^{2})^{i}}. \tag{4}\]

The solution can be easily computed using an optimization algorithm such as Gauss-Newton or Levenberg-Marquardt [9].

### _GNSS Satellite Selection and Weighting Problems_

Generally, a first basic SV selection based on satellite elevation or \(C/N_{0}\) thresholds is performed to excluded presumably strongly biased measurements. Then, the standard deviation of the remaining measurements will be estimated using an empirical functions, for example, as the following,

\[(\sigma^{2})^{i}=\frac{1}{\sin^{2}{(\theta^{i})}}\left(\sigma_{\rho Z}^{2}+ \frac{\sigma_{\rho c}^{2}}{(C/N_{0})^{i}}+\sigma_{\rho a}^{2}(a^{2})^{i} \right), \tag{5}\]

where this functions mainly depends on satellite elevation \(\theta_{0}\), \(C/N_{0}\), acceleration \(a^{i}\), and other empirically calibrated coefficients (\(\sigma_{\rho Z}^{2},\sigma_{\rho c}^{2},\sigma_{\rho a}^{2}\)) that are hard to be tuned.

However, some measurements could be strongly biased by multi-path for instance, and violate the expected Gaussian model resulting in a significant degradation of the solution accuracy. It is thus of primary importance to exclude these measurements from the solution, either by discarding them
or by assigning them a zero weight, which is called de-weighting. Such measurements can be efficiently detected at the navigation processor stage based on innovation monitoring tests for instance [10], but this requires that the tracking filter has converged and that the predicted state (i.e., position, receiver clock offset, etc.) is accurate enough. Nevertheless, for single epoch processing, no predicted solution is available and SV selection relies on measurements only with very limited prior knowledge. This implies that the detection of \(k\) faults among \(N\) measurements could potentially results in a huge number of subsets, \(C_{k}^{N}\), to test in case of an exhaustive search, which may be intractable in real-time and even for post-processing. As an example, assuming at most 10 faults among 40 measurements would result in more than \(847\times 10^{6}\) subsets to test, which is computationally prohibitive.

### _Existing Works_

In GNSS, fault detection and exclusion (FDE) usually rely on statistical tests and consistency checks to identify and reject corrupted signals to improve the integrity of the navigation solution. Various FDE techniques already exist in the literature, such as classical FDE [11, 12], the brute force subset testing approach [13], ARAIM techniques [14, 15], and others that depend on the Range Consensus (RANCO) [7]. More recent works [16] have proposed a new FDE algorithm that is based on both a standalone FDE block making use of the residual test relying on WLS, and an FDE-based Extended Kalman Filter (EKF). This solution alternates between the two branches, based on a covariance matrix threshold. Typically, the EKF utilizing FDE is employed when the covariance matrix falls below a pre-defined threshold. If the covariance exceeds this limit, the FDE is used on its own. This algorithm was shown to provide significant performance gains in terms of accuracy compared to conventional state-of-the-art FDE algorithms. For this reason, we choose it as a reference for benchmark purposes in this paper. However, since we consider by definition a single-epoch localization application, we have configured this algorithm to use only its standalone FDE block.

## III Proposed System Architecture

As mentioned above, we herein consider a single-epoch stand-alone positioning framework based on pseudo-ranges, without performing differential corrections, where measurements are just pre-processed based on the ephemeris data (i.e., compensating for ionospheric, tropospheric, and Sagnac effects, as well as satellite clock errors). One main objective is hence to leverage the complex - and likely hidden - inter-dependencies and joint effects (over multiple links) through supervised deep machine learning, so as to efficiently weight (or de-weight) the contributions from all satellites.

Overcoming the difficulty of labeling the data per link on the one hand, while still observing the joint effects on positioning performance of multiple links from various standpoints (e.g., link quality, Geometric Dilution of Precision (GDoP), etc.) on the other hand, ML is thus applied directly into the space/domain of pseudo-range residuals. For this sake, our approach consists in constructing a matrix of such residuals, where the \(i\)-th row contains all the residuals computed from a solution while excluding the \(i\)-th measurement. Then, using this matrix as the input of a LSTM NN. The latter is trained to predict the weights \(\hat{\omega}^{i}\) related to the underlying distribution of pseudo-range errors according to (4) for valid measurements, noting that a single measurement is observed from each distribution \(\mathcal{N}(0,\,\sigma_{i}^{2})\). In addition, we expect that the algorithm will predict nearly null weights \(\hat{\omega}^{i}\approx 0\) for strongly biased satellites to exclude them. Accordingly, we turn the initial (hard) selection problem into a (soft) weighting problem. The overall system architecture of our proposed approach is illustrated in Fig. 1.

### _Residual Matrices Construction_

At each navigation epoch, we assume that multiple (\(N\)) satellite signals are received and a new matrix of positioning residuals \(\mathbf{M}\) is constructed, as follows. We generate \(N\) subsets \(S_{n}\) of \(N-1\) satellites, where we exclude one distinct satellite (i.e, \(n^{th}\) satellite) at a time.

\[S_{n}=\{\rho^{i}\},\ i=1\ldots N,\ i\neq n \tag{6}\]

For each subset \(S_{n}\), we calculate the corresponding solution \(X_{n}\) using (2). Then, for each of the \(N\) resulting positions \(\{\mathbf{X}_{1},...,\mathbf{X}_{N}\}\) we calculate the \(N-1\) pseudo-range residuals

\[\delta\rho_{X_{n}}^{i}=\rho^{i}-h^{i}(\mathbf{X}_{n}),\ \ i\neq n \tag{7}\]

Coefficient \([\mathbf{M}]_{n,i}\) (i.e. row \(n\), column \(i\)) of the residual matrix \(\mathbf{M}\) is simply given by the corresponding residual for non-diagonal coefficient, or by an arbitrary large value \(\gamma\) for the diagonal terms indicating that the satellite has been excluded (the pseudo-code for constructing the residual matrix is shown in Algorithm 1)

\[[\mathbf{M}]_{n,i}=\begin{cases}\delta\rho_{X_{n}}^{i},&i\neq n\\ \gamma,\ i=n\end{cases} \tag{8}\]

Each row \(n\) of the matrix will thus provides residuals associated with the exclusion of the \(n\)-th measurement. Although it assumes a single fault per subset (i.e., row), the motivation of building such a matrix is that it may be able to reveal hidden inter dependencies between the measurements and their effects on the computed solution, while being fed as a single input to the neural network.

### _Long-Short Term Memory Neural Network_

The overall structure of the proposed residual matrix and more particularly, the evolution of the pseudo-range residual patterns over the \(N\) subsets (i.e., over the matrix rows), both provide rich information about the sought inter-dependencies and their combined effects, which can be advantageously captured by machine learning tools. By analogy, the pseudo-range residuals matrix can be interpreted as a concatenation of \(N\) feature column vectors, each containing the feature values for \(N\) pseudo time steps. Each feature column vector thus corresponds to the set of pseudo-range residuals of one single satellite from each of the \(N\) subsets.
In this kind of problems, the LSTM NN algorithm, which is a type of recurrent neural network (RNN) [17], has the advantage of keeping memory over multiple (possibly distant) pseudo time steps. Hence, is also suited to exploit the correlations across the matrix rows in our case, even if we explicitly deal with a single-epoch problem. Similar applications of the LSTM NN to other time-invariant problems have already been considered. For instance, in [18], LSTM NN was used to process data with long-range interdependence (i.e., using geometric properties of the trajectory for unconstrained handwriting recognition).

## IV Numerical Results

Here, we analyse the performance of our proposed deep learning based approach obtained on synthetic and real data.

### _Synthetic Data_

In order to thoroughly test and validate the feasibility of our proposed approach in capturing the hidden inter-dependencies within the residual matrix, but also its ability to accurately approximate the standard deviations of pseudo-range errors, we first generate a dataset of synthetic simulation data mimicking the behavior of a real GNSS systems. This allows us to illustrate the main performance trends, as well as to validate our approach before applying it to real-world data (See Section IV-B).

This dataset consists of \(180,000\) epochs, each containing \(N=60\) pseudo-range measurements with respect to \(60\) different satellites. The random noise terms affecting those pseudo-ranges are supposed to be independent and identically distributed (i.i.d.), following a distribution obtained as a mixture of normal and exponential distributions. The latter shall indeed account for the possibility to experience either typical errors expected from so-called "good" satellites or much more harmful (and likely positively biased) outlier measurements from "bad" satellites

\[f(x)=\alpha\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}}+(1- \alpha)\lambda e^{-\lambda x}, \tag{9}\]

where \(\alpha\) is the mixture parameter, which represents the probability that the measurement error realization is drawn from the normal distribution of mean \(\mu\) and standard deviation \(\sigma\), and \(\lambda\) is the decay rate of the exponential distribution. All these parameters were fine-tuned so as to fit the empirical distribution of real pseudo-range measurements, which were collected along with a reference ground-truth system in various operating conditions. The latter will be used in Subsection IV-B for further performance assessment.

The generated synthetic data was then divided into three disjoint datasets: training, validation, and testing, with respective proportions of \(60\%\), \(20\%\), and \(20\%\)[19], in order to ensure a robust evaluation of the performance of our approach. The process of dividing the data into three sets is a common practice in machine learning, known as the train-validation-test split. The training dataset is used to train the neural network and learn the underlying patterns in the data. The validation dataset is used to evaluate the performance of the neural network during training, and fine-tune the hyperparameters based on its performance. The testing dataset is used as an independent measure to evaluate the generalization performance of the prediction, which is an indication of how well the neural network will perform on new unseen data. This technique helps to prevent from overfitting effects, which occur when a neural network fits too closely the training dataset but performs poorly on new unseen data.

Note that labelling in our decision problem is a very challenging task since finding the best satellites' set is not tractable due to prohibitive combinatorial complexity (even offline and knowing the reference). This is the reason why we decided to convert the initial decision problem into a weighting

Fig. 1: The complete architecture of our proposed approach.
problem. Following a supervised training, the data was hence labeled as:

\[\omega^{i}=1/(\rho^{i}-h(\mathbf{X}_{true}))^{2}, \tag{10}\]

where \(\mathbf{X}_{true}\) is the ground truth position. This intuitive choice is validated by our performance curves in Fig. 2 and 3.

Using this synthetic dataset, an empirical evaluation was first conducted on multiple neural network architectures, including convolutional neural networks (CNN), fully connected neural networks (FCNN), and various other types of recurrent neural networks (Simple-RNN, LSTM, Bi-LSTM and Gated recurrent units (GRU)). The simulation results then confirmed that the LSTM algorithm could provide the best WLS positioning performance (i.e., after applying the best weights out of NN predictions) in our problem. Its architecture was hence further optimized empirically during the training phase, based on real data. The best neural network consisted of one hidden LSTM layer containing \(512\) neurons followed by a dense layer containing \(60\) neurons with a ReLu activation function. On this occasion, the mean squared error (MSE) was used as loss function, and an early stopping callback was implemented to prevent overfitting. The used neural weights optimizer during training was _Adam_[20].

Finally, the WLS positioning performance based on our prediction method has been compared with theoretical bounds (i.e., Cramer Rao lower bound (CRLB)) [21], as well as two genie-aided solutions on the one hand, and a suboptimal unweighted strategy on the other hand (i.e., as a worst-case baseline solution with equally-weighted pseudo-ranges from all the satellites). More precisely, the first tested method, referred to as "Ground-truth Weights", utilizes weights as in (10) with the ground-truth position, before applying WLS positioning. The second method, named "Predicted weights", uses the proposed algorithm to predict link-wise quality factors which is used to compute weights as in (4) for WLS positioning. The third method, referred to as the "Genie-aided" solution, is based on the assumption that a prior knowledge of the biased satellites is available, and utilizes this information to completely exclude biased satellites from the localization solution. This method serves here as a first reference in our benchmark, accounting for the best performance that could be achieved with perfect detection and exclusion of biased satellites. Finally, in the fourth "Equal weights" method, all the satellite measurements are taken into account in WLS positioning (i.e., with the same relative importance, regardless of their actual errors). This somehow represents a worst-case assumption without any exclusion, and serves as another reference in our benchmark, accounting for the performance that can be achieved without any prior knowledge, neither of the biases themselves, nor of their respective statistics.

Fig. 2 and 3 show the empirical cumulative density function (CDF) of horizontal and vertical positioning errors obtained with the four weighting strategies above. Those methods were first applied on a dataset including \(9\%\) of strongly biased satellites (i.e., among the \(60\) available). When compared to the evenly weighted positioning solution, the proposed approach is then shown to yield a typical accuracy improvement in \(95\%\) of the tested epochs (i.e., CDF at the characteristic \(95\%\)-quantile) of about \(1.02\) m in terms of horizontal errors (See Fig. 2) and \(1.18\) m in terms of vertical errors (See Fig. 3). On the other hand, when compared with the "Genie-aided" approach, the difference in accuracy for \(95\%\) of the tested epochs is about \(0.59\) m in terms of horizontal error, and \(0.77\) m in terms of vertical error.

Fig. 4 presents the 1-\(\sigma\) confidence ellipse for various weighting approaches in comparison with the CRLB. The results are acquired through the execution of Monte Carlo trials for a specified satellite and receiver geometry. The "Genie-aided" weighting approach shows close agreement with the CRLB in terms of accuracy, while the evenly weighted approach demonstrates inferior accuracy. The "Predicted weights" extracted from our approach, exhibits accuracy that lies between the CRLB and the "Equal weights" with a tendency towards the CRLB. The "Ground-truth Weights" approach outperforms the CRLB since noise mitigation is based on a perfect knowledge

Fig. 3: Empirical CDF of vertical positioning error for various measurements weighting methods, based on synthetic data.

Fig. 2: Empirical CDF of horizontal positioning error for various measurements weighting methods, based on synthetic data.
of the exact bias, which would not be available to any real estimator.

Still based on synthetic data, a sensitivity study was also conducted to analyze the performance of our approach for different percentages of strongly biased satellites. A preliminary analysis of the real dataset revealed that concrete real-life cases could have up to \(9\%\) biased satellites (i.e., among all the available satellites per epoch). Accordingly, we generated different synthetic datasets, while varying the percentage of strongly-biased satellites (among the \(60\)).

Fig. 5 shows the evolution of the positioning error at \(95\%\) of the CDF (i.e., the \(95\%\)-percentile) as a function of this varying ratio. The results indicate that, as the proportion of biased satellites increases, the performance gain achieved with our approach in comparison with the equally weighted approach tends to grow more rapidly than the performance degradation observed in comparison with the idealized "Genie-aided weights" approach, remaining in the same order of magnitude (i.e., less than \(2\) m vs. more than \(2.6\) m with the "Equal weights" strategy). This allowed us to further validate the robustness of our approach (i.e., far beyond the toy case of one single biased satellite), before applying it to real-world data, as discussed in the next section.

### _Real Data_

Here, we present the most representative results obtained by extensive experimental testing and validation based on real-life data, which was collected from multiple measurement campaigns in a variety of operating conditions. These conditions included open skies, dense urban areas, and various mobility regimes. The data was collected using cutting-edge pieces of equipment and more specifically, an ulox ZED-F9P receiver, which is dual-band and endowed with Real-Time Kinematics (RTK) capabilities. A side cm-level ground-truth referencing system was also utilized to ensure the accuracy and integrity of the collected data, as well as to establish the ground-truth information. The tested GNSS receiver is capable of receiving up to \(N=60\) satellite signals from multiple GNSS constellations (i.e. GPS, GLONASS, GALILEO, etc.) over multiple frequencies (i.e. L1, L2, E1, and E5 bands). Overall, this testing phase consisted of \(56\) distinct sessions for a total of \(181,000\) epochs, providing a comprehensive, representative and diverse dataset for evaluation.

The number of satellites received during each epoch could fluctuate, depending on the operating conditions. In certain environments, such as crowded urban areas for instance, the number of available satellites could be significantly lower than in open sky conditions as illustrated in Fig. 6. The figure depicts the variation in satellite availability during navigation in two conditions: open sky and urban areas. During this session, the availability in open sky regions remains stable at approximately \(30\) satellites, whereas in narrow urban canyons such as the one depicted in Fig. 6, the availability drops to a minimum of \(9\) satellites, as indicated by color-coded fluctuations. It is worth noting that in other sessions, the number of available satellites may increase up to \(45\). This variability is also influenced by the position of the satellites at the time of navigation. As a result, the dimension of our residuals matrix could have significantly varied as well. To address this issue, we employed padding to resize all the residuals matrices to a common matrix size. Additionally, we leveraged the ability of LSTM networks to handle variable-length input sequences by masking the non-present steps of the sequence, represented by rows of the residuals matrix in our representation.

For the purpose of optimizing the neural network architecture with a minimal number of layers and neurons while

Fig. 4: Comparison of Positioning confidence ellipses for various approaches with the CRLB.

Fig. 5: \(95\%\)-quantile of positioning error for different measurements weighting methods, as a function of the ratio of biased satellites (among \(60\)), based on synthetic data.
preserving performance, we employed a technique known as grid search. This involved varying the number of hidden layers and the number of neurons per layer as hyperparameters. To prevent overfitting, we utilized an early stopping callback during the training process. The performance of each trained network was evaluated on an unseen test dataset. Through this process, we could determine that the optimal architecture consisted of \(2\) hidden layers with \(893\) neurons in each (See Fig. 1). Moreover, the neural network was trained using labels that were defined according to (10), where the \(\mathbf{X}_{true}\) stands for the ground truth position collected from the reference ground-truth system.

Similar to the tests performed on synthetic data, Fig. 7 and 8 show quite significant improvements in terms of both horizontal and vertical errors, in comparison with the state-of-the-art solution from [16] (See Subsec. II-C). Typically, our approach exhibits a performance gain of \(0.61\) m (resp. \(1.38\) m) in terms of horizontal error at \(68\)% (resp. \(95\)%) of the CDF. As for the vertical error, we also observe an improvement of \(0.66\) m (resp. \(1.43\) m) at \(68\)% (resp. \(95\)%) of the CDF. This consistent performance improvement across all data points and for the different problem dimensions illustrates again the robustness of our proposal in improving localization accuracy under various operating conditions.

As shown in Fig. 9, which depicts a segment of one navigation session in a particularly penalizing environment (urban canyon), our approach could provide reliable single-epoch positioning results all along the tested trajectory, whereas the state-of-the-art approach fails in several important portions. More generally, over all the tested sessions, the state-of-the-art approach was shown to fail in providing any solution in about 8% of the tested epochs (in average), while our approach could systematically provide a reliable positioning solution. Our proposal thus seems even more particularly suited to severe operating conditions and/or challenging environments.

Fig. 8: Empirical CDF of horizontal error for various measurements weighting/selection strategies (incl. [16]), based on real field data.

Fig. 6: Variation of satellite availability while navigating in different conditions (open sky vs urban area).

Fig. 7: Empirical CDF of horizontal error for various measurements weighting/selection strategies (incl. [16]), based on real field data.

Fig. 9: Example of positioning traces obtained for one of our field navigation sessions (urban canyon), for the proposed approach (green dots), the approach in [16] from recent state-of-the-art (red dots), and the ground-truth reference system (blue solid line).
## V Conclusions

In this paper, we have introduced a new pre-processing technique for single-epoch standalone GNSS positioning based on deep machine learning, which aims at optimally weighting the pseudo-range contributions from available satellites. In particular, we rely on an LSTM neural network architecture, which is fed by a customized matrix of conditional pseudo-range residuals. Performance assessment on both synthetic data and real data resulting from multiple navigation sessions show the high potential and relevance of our approach in challenging operating contexts, where conventional parametric satellites selection techniques would fail. Accordingly, this solution is suited to real-time applications requiring good continuity of the navigation service, as well to offline applications necessitating high-accuracy traces retrieval.

Future works could consider utilizing other satellite features/metrics (e.g., \(C/N_{0}\), elevation) as complementary information channels (i.e., besides the matrix of residuals currently in use) while feeding the learning process.
