Skip to content

20shaked20/GNSS-Raw-Measurements

Repository files navigation

GNSS-Raw-Measurements 📡

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.

Created By:

Overview 📌

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.

Check this -->

IMAGE ALT TEXT HERE

How To Run 🕹️

See at our wiki page How To Run

Features

The features that are part of Assignment 0:

  • 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.

The features that are addition as part of the Final Assignment:

  • 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. .

Modules: 🖥️

  1. gnss_to_csv Parses GNSS raw measurements from CSV files and preprocesses data for analysis.
  2. rms_positioning Computes the receiver's position using Root Mean Square (RMS) error minimization.
  3. gnss_processing Orchestrates data processing flow between gnss_to_csv and rms_positioning modules.
  4. gnss-data-viewer Web-based interface for visualizing GNSS data and KML files.
  5. 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


Visualization

Main Page

image

  • 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

Offline Processing mode example

  • When choosing the offline option you will get here: image
  • 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: image
  • Then the processed output will be displayed: image

Sat View Page

  • in this page you can observe the satellites view image

KML View Page

  • In this page you can see the calculated location on a map image

Example of our fixes kml:

image

  • 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.

Testing 🔍

To test the program, utilize the log files located in the "data" folder. These files were specifically chosen for testing purposes.

Topic Overview - for the main assignment of the course 🛸

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.

About

Ex0 in Autonomous Robotics course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •