GNSS Covariance Estimation using Multivariate Time Series-based Convolutional Neural Network
Sriramya Bhamidipati and Grace Xingxin Gao, University of Illinois at Urbana-Champaign
With the development of multiple GNSS constellations in addition to GPS, such as GLONASS, Galileo, BeiDou etc., there has been an increasing number of satellites available for navigation. However, multi-GNSS-based navigation in complex environments, such as urban canyons, overhead bridges and hilly terrains is still a challenging task due to multipath, satellite blockage, terrain masking and intentional/unintentional interference. Sensor fusion techniques, such as Kalman Filter (KF), Particle Filter and Bayesian Networks are being extensively studied to integrate multi-GNSS constellations. The performance of these techniques is dependent on the estimate of measurement noise covariance matrix. However, manually tuning these covariances for a large number of satellites is cumbersome, and may not be accurate. In addition, these noise covariances vary with time, location of the satellites and surrounding environments. Therefore, traditional sensor fusion techniques with fixed noise covariance are prone to induce large errors in the Position, Velocity and Time (PVT) solution.
We propose an innovative Multivariate Time Series-based Convolutional Neural Network (MTS-CNN) to adaptively estimate the measurement noise covariances in the KF for multi-GNSS. Our proposed multi-GNSS KF collectively processes the code (pseudorange) and Doppler measurements obtained from the satellites of GPS, GLONASS and GALILEO constellations. Unlike traditional KF approaches that manually tune these measurement noise covariance matrices, we design two independently trained MTS-CNN modules for code and Doppler covariances, respectively. Specifically, we execute code MTS-CNNs in parallel for all satellites-in-view. We take a similar approach to estimate the Doppler covariances in parallel for all satellites-in-view. These MTS-CNN estimated code and Doppler covariances are given as inputs to the measurement update step of our multi-GNSS KF.
The structure of our MTS-CNN architecture comprises of an input layer, 3 hidden layers and an output layer. The input sample consists of the most recent T measurements of the GNSS vector (1x4) that contains Signal-to-Noise Ratio (SNR), type of tracking loop i.e., Phase-Lock Loop (PLL) or Frequency Lock Loop (FLL), slip count of the carrier and code/Doppler residuals of a satellite. The input layer performs tanh-based normalization on the input samples to ensure equal contribution from all the above-mentioned elements of the GNSS vector. Each hidden layer consists of nodes that performs 2-dimensional convolution followed by a sigmoid-based activation function (a special case of logistic function). We consider 3 hidden layers and 100 nodes in each hidden layer to optimize our architecture and avoid underfitting and overfitting on our input samples. The output layer executes a ramp based activation function (known as ReLu) to estimate the code/Doppler covariance corresponding to the input samples of a satellite. The edges connecting the nodes of different layers are associated with weights that are estimated during the training phase. We formulate the cost function of our MTS-CNN as a mean squared error with adaptive optimizer (known as Adadelta) to update these weights.
We carry out the training phase in two stages: firstly, we compile exhaustive training and validation datasets from the GNSS data collected in different complex environments. These data collection experiments are conducted using a ground vehicle mounted with receivers for collecting GNSS measurements and a high grade IMU for ground truth. Based on the ground truth, we estimate the corresponding true code and Doppler covariances. In the second stage, we propagate forward the training samples in our MTS-CNN till the output layer. The estimates of covariances are compared with the true covariances and the weights are updated for the subsequent iteration. To ensure proper convergence of these weights, it is important to choose appropriate GNSS signal properties while constructing the training samples. In this regard, we perform statistical correlation of the true covariances with all the available GNSS signal properties such as SNR, elevation, azimuth, slip count, code/Doppler measurements, code-carrier filter count and code/Doppler residuals. Based on the maximum correlation observed, we selectively choose SNR, type of tracking loop (PLL or FLL), slip count and code/Doppler residuals to create a GNSS vector. Later, we append the most recent T measurements of the GNSS vectors representing the same satellite to form the input sample which is given to our MTS-CNN.
We utilize the training dataset consisting of 2 million samples to train our MTS-CNN architecture on a NVIDIA Jetson TX1 board with 256 CUDA cores. Simultaneously, we monitor the performance of our MTS-CNN module on our validation dataset containing 1 million samples. By analyzing the mean motion of the ground vehicles, we find that the most recent 20 measurements with a sampling rate of 0.2 s best captures the trend of noise covariances. Therefore, each of our training sample is a multivariate time series (20x4) consisting of the recent 20 GNSS vectors (T=20). At the end of training, we showcase a high accuracy of 96% on the training dataset and 94.2% on the validation dataset i.e., the error in the true covariance and the MTS-CNN estimated covariance is less than 1-sigma. Thereafter, we deploy our adaptive multi-GNSS KF using trained MTS-CNN on our C++ platform. During initialization, we tune scaling factors for GPS, GLONASS and GALILEO to account for the constellation-specific errors.
We conduct our experiments on a ground vehicle in complex environments that include downtown San Francisco, San Jose flea market, Santa Cruz mountains and open sky Interstate. In these environments, we demonstrate 72% improvement in PVT accuracy by implementing our MTS-CNN aided multi-GNSS KF as compared to a fixed-covariance based multi-GNSS KF.