This repository contains code for processing GNSS (Global Navigation Satellite System) raw measurements, developed as part of the final assignment of the course Autonomous Robots.
GNSS-Raw-Measurements is a Python-based project for processing and analyzing raw GNSS (Global Navigation Satellite System) data. It includes tools for reading, preprocessing, positioning, spoofing detection, and satellite position calculation.
See at our wiki page How To Run
- Data Processing: Processes raw GNSS measurements from GNSS logs, and creating CSV files which are used to create KML files.
- Positioning: Calculates satellite positions for GPS constellations.
- Spoofing Detection: Detects potential spoofing attempts using various algorithms.
- Spoofing Correction: Using Android cellular data to get the real positioning.
- Visualization: Visualizes satellite positions and measurement anomalies, KML viewer and the output CSV - all in web UI. .
gnss_to_csv
Parses GNSS raw measurements from CSV files and preprocesses data for analysis.rms_positioning
Computes the receiver's position using Root Mean Square (RMS) error minimization.gnss_processing
Orchestrates data processing flow betweengnss_to_csv
andrms_positioning
modules.gnss-data-viewer
Web-based interface for visualizing GNSS data and KML files.live_gnss_processing
Implements live processing of GNSS data from connected Android devices, providing real-time analysis and visualization of satellite data.
More Information at our Wiki
- In this page, you can choose which processing mode you would like to use: online \ offline.
- You can select constellations to filter.
- You can see the csv output table of the processed gnss log file.
- At the upper part of the page, you can navigate to our other pages: Sat view and KML view.
- The current page is Log File Selector
- When choosing the offline option you will get here:
- Now you can choose between the existed log files with "Select a file".
- After choosing a file and pressing on the processing button, this message will pop-up:
- Then the processed output will be displayed:
- What we see on land, the black square is fix by NLP from android's cellular reception, surrounded by our GNSS calculations.
- What is on the sea, is the GPS jamming.
To test the program, utilize the log files located in the "data" folder. These files were specifically chosen for testing purposes.
The project focuses on expanding an initial task to develop a robust navigation system based on raw Global Navigation Satellite System (GNSS) measurements. The primary goal is to calculate real-time positions using an efficient and accurate algorithm. This system will incorporate advanced functionalities such as satellite filtering by constellation and signal strength, identification of "false" satellites, and handling disruptions. The project will also implement a disturbance detection algorithm to manage and mitigate the effects of disruptions.