# Robust Statistics for GNSS Positioning under Harsh Conditions: A Useful Tool?
## 5 Test and Results
### Simulated Environment  
The performance of robust M-, S-, and MM-estimators, as well as classical LS for GNSS positioning, was compared based on a synthetic experimentation. Two simulation scenarios were considered: (i) a single-constellation case for which \(n=10\) satellite observations are available; and (ii) a multi-constellation case for which four constellation are assumed to provide a total of \(n=40\) observations. In the latter, each constellation is considered to have an independent clock offset and thus the dimension of the unknown parameter vector is seven (three for the positioning and four for the clock offsets). The combination of experiments also considers variability among the fraction of contaminated measurements \(\varepsilon\) and the magnitude \(\alpha\) of such corrupted observations, as indicated in Table 1. In total, there were 42 different experiments and the results for each of them were obtained over \(10^{4}\) Monte Carlo runs. The configuration for the robust estimators was as follows: (i) Huber-based M-estimator with \(a_{0.95}=1.345\); (ii) Tukey-based S-estimator with \(c_{0.95}=4.685,b=0.5\); and (iii) MM-estimator combining S-estimator for initial scale and unknown parameter estimates followed by a M-estimation (with the same parameters configuration). The simulation of the measurements was realized based on the simplified observation model in Equation (24), where atmospheric- and satellite-related effects (ionospheric, tropospheric, and ephemeris errors) were disregarded. The vector of observation errors \(\boldsymbol{\eta}\) stacks the errors for the inlier \(\boldsymbol{\eta}_{in}\) and outlier \(\boldsymbol{\eta}_{out}\) observations, which are distributed as follows  
\[\boldsymbol{\eta}=\left[\boldsymbol{\eta}_{in}^{\top},\boldsymbol{\eta}_{out }^{\top}\right]^{\top},\ \boldsymbol{\eta}_{in}\sim\mathcal{N}\left(0,\sigma^{2}\right),\ \boldsymbol{\eta}_{out}\sim\mathcal{N}\left(0, \alpha^{2}\sigma^{2}\right),\]  
where the variance \(\sigma\) of the healthy observations is 2 m. For each Monte Carlo run, the choice of the corrupted satellites was randomly sampled. For the single constellation scenario, the geometry of the satellites was based on the actual positions of GPS satellites, as shown in the sky plot of Figure 2, from a receiver located in Koblenz (Germany) in May 2017. For the multi-GNSS case, \(n=40\) observations were simulated across four constellations (with ten satellites each). The position of the satellites were artificially \"placed\" on the sky according to randomly sampling the azimuth, elevation, and distance between satellites and receiver (azimuth \(\sim\mathcal{U}\left(0,2\pi\right)\), elevation \(\sim\mathcal{U}\left(0,\pi/4\right)\), and distance \(\sim\mathcal{N}(20.200\left(\text{km}\right),2.000\left(\text{km}^{2}\right))\)) for each Monte Carlo instance. \begin{table}
\begin{tabular}{l l} \hline \multicolumn{2}{c}{**Simulation parameters**} \\ \hline Number of satellites \(n\) & [10,40] \\ Percentage of outliers \(\varepsilon\) & [0,10,30,40] \\ Outlier magnitude \(\alpha\) & [1,3,6,10,30,60,100] \\ Robust parameters & \(a=1.345,b=0.5,c=4.685\) \\ \hline \multicolumn{2}{c}{**Single-constellation scenario setup**} \\ \hline UTC time & \(15/05/2017\)\(09:30\) \\ Location & Koblenz, Germany \\  & (\(50^{\circ}21^{\prime}56^{\prime\prime}\) N, \(7^{\circ}35^{\prime}55^{\prime\prime}\) E) \\ PDOP & 1.72 \\ \hline \end{tabular}
\end{table} 
Table 1: Parameters configuration for the Monte Carlo simulation. Figure 2: Sky plot for the single constellation simulation \(n=10\). Figure 3 depicts the performance of the compared estimators, showing the positioning root mean squared error (RMSE) on the ordinate axis and the magnitude \(\alpha\) of the outliers on the ordinate axis. The first row of Figure 3 illustrates the single constellation case, while the second row shows the multi-constellation scenario.