Galileo and Global Navigation Satellite Systems

The European Space Agency (ESA) operate the Galileo Global Navigation Satellite System (GNSS). Our work aims to help non-experts to understand the principals of GNSS by providing a simple comparison of performance between constellations. Users can upload RINEX files, which are preprocessed using TEQC to create permutations of included constellations (focusing on GPS, GLONASS, and Galileo) and processed into a position fix using RTKLIB. Users can also use an app to stream live raw GNSS observables to a Grafana database.

Post-Processing with TEQC and RTKLIB

The idea: To simplify the process for end users as much as possible, our system is designed to operate from a "complete" RINEX file. RINEX files can be generated from the Android app "GnssLogger", and by default contain observations from all constellations. The permutations currently tested are (G, R, E, G+R+E). RTKLIB is used to solve for position and time. From an output NMEA stream, our custom parser extracts PVT and quality information and stores the results in InfluxDB for display in Grafana. Roadblocks:

(1) It was difficult to use the GnssLogger RINEX files with RTKLIB as the Nav component was not formatted as expected. Instead, much of the development was performed using CORSnet reference station data available online.

(2) When solving for each of the defined permutations for the constellations, RTKLIB outputs identical PVT results. This is strange as the input RINEX files are changing in size as expected. Further investigation is required to ensure constellations are segmented properly.

App and backend

To use data from users, we adapted the initial app and added the function of uploading the collected data to a database for potential further use. For backend, we used Flask and MySQL and successfully used HTTP to upload the data from the user app to the database.

Built With

Share this project:

Updates