UrbanRTK-INS-OutlierOpt is an open-source framework that integrates Real-Time Kinematic (RTK) Global Navigation Satellite Systems (GNSS) with Inertial Navigation Systems (INS), utilizing a diagonal-form of Risk-Averse Performance-Specified (RAPS) Optimization approach. The diagonal-form RAPS is an efficient (solved in polynomial time complexity) and elegant method, well-suited for real-time navigation. This repository is designed to provide robust outlier accommodation in urban environments, where GNSS signals are often compromised due to obstacles like buildings and bridges.
W. Hu, Y. Hu, M. Stas, and J. A. Farrell. "Optimization-Based Outlier Accommodation for Tightly Coupled RTK-Aided Inertial Navigation Systems in Urban Environments". Accepted by IEEE Intl. Conf. on Intelligent Transportation Systems, Edmonton, Canada, 2024.
- IMU nonlinear time propagation using Quaternion. see
imu/insTimePropagation.m
. - Parser to Observation and Ephemeris RINEX files, see
parser/parserGnssObs.m
andparser/parserGnssEph.m
. For more information refer to RINEX 3.03 - Implementation of Precise Point Positioning (PPP) corrections, such as the IGGtrop model (
corr/IGGtropSH_bl.m
, provided by IGGtrop paper author Dr. Wei Li, [email protected]) and SSR VTEC model (corr/ssrVtecComputation.m
)
MATLAB (tested in version R2023a, certain toolboxes, such as Optimization Toolbox, may be required.)
Python (tested in Python 3.9. For generating KML file using results/createTrajKml.py
)
Uncompress data\univOfTexas\univOfTexas.7z
.
The main file to run is titled multiGnssMain.m
.
The default setting is to perform GNSS-RTK-Aided INS using RAPS for outlier recommendation.
To switch between RTK and DGNSS (code measurement-based): p.post_mode = p.mode_rtkfloat;
for RTK float; p.post_mode = p.mode_dgnss;
for DGNSS.
To change estimation mode: p.est_mode = p.raps_ned_est;
for RAPS; p.est_mode = p.map_est;
for Extended Kalman Filter (EKF); p.est_mode = p.td_est;
for Threshold Decision (TD).
The results for EKF-INS-RTK, TD-INS-RTK, and RAPS-INS-RTK were previously computed and saved in results/
. To see the analysis of the results, run results/figure_plot_dgnss.m
.
Google Earth 3D View uses a KML file generated by results/createTrajKml.py
where it reads the experimental results from MATLAB .mat
data file.
Detailed Solution to RAPS Optimization (Sec. 6 Solutions to DiagRAPS)
The open-source TEX-CUP dataset (2019May09) is used. The experimental route traversing areas within the west campus of The University of Texas at Austin and downtown Austin, contains viaducts, high-rise buildings, and dense foliage. Results are estimated through forward (real-time) processing.
The RTK-GNSS/INS integration utilizes single-frequency measurements from a Septentrio receiver GPS L1, GLONASS L1, GALILEO E1, and Beidou B1. The inertial measurements are provided by the smartphone-grade Bosch BMX055 IMU with a sampling rate of 150 Hz.
The figure below shows positioning errors versus STDs. The left (right) plot shows the actual horizontal (vertical) positioning error versus the posterior error standard deviation predicted by the estimator. The black line in each plot represents the line of consistency along which the actual position-ing performance equals the predicted estimation accuracy. Consequently, the plots are divided into distinct regions:
-
Over-confident region: The region above the line of consistency represents a risky and unsafe estimation scenario. In this region, the estimator is overconfident because its actual estimation error is greater than the estimator's theoretical characterization of its estimation error.
-
Conservative region: The region above the line of consistency represents a conservative estimation scenario. In this region, the estimator achieves an actual accuracy that is better than it predicts.
Vertical: EKF Conservative Rate: 67.11%; TD Conservative Rate: 68.11%; RAPS Conservative Rate: 82.69%
Left panels: near the Dell Medical School buildings.
Right panels: near Sailboat Building (multiple skyscrapers surround the site)
Some results (red points) present positioning errors over 100 meters.
3D View from Google Earth (For the right panel above)