In today's technology-driven world, the demand for precise positioning services tailored to diverse applications continues to grow. From mapping and surveying to transportation logistics, emergency response or even recreational activities, reliable software capable of processing GNSS data is essential. When discussing GNSS software, we refer to a code framework that enables a wide range of operations dependent on accurate positioning, navigation, and timing data. This ability is provided by a numerous set of code components, that are well-versed in positioning techniques and their critical aspects. Together, these components must ensure efficiency and deliver trustworthy results. This thesis addresses the challenges associated with developing a usable library solution, focusing on specific operational domains. Individual elements of the library set should function independently and collaboratively within a larger framework, to achieve computational goals effectively with respect to existing applications. An optimized code library, leveraging the robustness of the C++ programming language, was developed. Implementation focuses on processing GNSS raw data and producing meaningful computations under high levels of reliability and efficiency. Drawing inspiration from the goGPS open-source software approach and implementation, a similar object-oriented solution was adopted, creating components with clear goals, able to communicate in a common environment. Different code components were implemented to handle operations within specific purposes with respect to GNSS operations. Besides a specific class devoted to match interoperability and display utility functions, it is possible to distinguish two groups of instances: 1. Elements that focus on atmospheric problems and estimate disturbances affecting satellite signals received by ground-based receivers. They implement optimized algorithms for Klobuchar and Saastamoinen models besides incorporating global mapping functions, for determining atmospheric factors. 2. Elements that process input data from standard format files and implement algorithms and coordinates interpolation operations over those observations, to provide solutions for extended time epochs. Separate classes handle elaborated precise ephemerides and broadcast ephemerides from navigational messages. Custom executable scripts were additionally designed to simulate the usage of higher-level software component classes, reproducing examples of specific operational scenarios and aligning with their intended purposes. Through scripts, numerous tests were performed to provide proofs of the library's validity and investigate its limitations. An important focus was placed on measuring computational speed in comparison to analogous goGPS processing approaches, ensuring that the outcomes meet standard requirements.

Oggigiorno, la domanda di servizi di posizionamento preciso su misura per diverse applicazioni continua a crescere. Dalla mappatura e il rilevamento alla logistica dei trasporti, alla risposta alle emergenze o persino alle attività ricreative, è essenziale un software affidabile in grado di elaborare i dati GNSS. Parlando di software GNSS, ci riferiamo a un framework di codice che consente una vasta gamma di operazioni da accurati dati di posizionamento, navigazione e tempo. Questa capacità è fornita da un numeroso insieme di componenti, che sono istruiti nelle tecniche di posizionamento e nei loro aspetti critici. Insieme, questi componenti devono garantire efficienza e fornire risultati affidabili. Questa tesi affronta le sfide associate allo sviluppo di una soluzione di libreria software, concentrata su specifiche operazioni. Gli elementi individuali della libreria devono funzionare in modo indipendente e collaborativo all'interno di un framework più ampio, per raggiungere obiettivi computazionali in modo efficace rispetto alle applicazioni esistenti. Sfruttando la robustezza del linguaggio di programmazione C++., è stata sviluppata una libreria di codice. Il cui sviluppo si è concentrato sull'elaborazione di dati GNSS grezzi, producendo calcoli con elevati livelli di affidabilità ed efficienza. Tramite l'approccio e l'implementazione open source di goGPS, è stata adottata una simile soluzione object-oriented, creando componenti con obiettivi predefiniti, in grado di comunicare in un ambiente comune. Diversi componenti di codice sono stati implementati per gestire operazioni all'interno di specifici scopi rispetto alle operazioni GNSS. Oltre a una classe specifica dedicata a garantire operabilità e fornire funzioni di utilità, è possibile distinguere due gruppi di istanze: 1. Elementi che si concentrano sui problemi atmosferici, stimando le interferenze che influenzano i segnali satellitari trasmessi ai ricevitori terrestri. Queste implementano algoritmi ottimizzati per i modelli di Klobuchar e Saastamoinen e incorporano funzioni di mappatura globale per determinare parametri atmosferici. 2. Elementi che elaborano dati da file di formato standard e implementano algoritmi e operazioni in di interpolazione delle coordinate, basati su quelle osservazioni, per fornire soluzioni in precise epoche temporali. Classi separate gestiscono effemeridi precise elaborate e effemeridi trasmesse tramite messaggi navigazionali. Sono stati inoltre progettati script personalizzati per simulare l'uso delle classi di componenti software in un framework più ampio. Riproducendo esempi relativi a scenari operativi specifici e allineandosi con i loro scopi previsti. Attraverso gli script, sono stati eseguiti numerosi test per fornire prove della validità della libreria e indagarne le limitazioni. È stata posta un'importante attenzione sulla misurazione della velocità di calcolo rispetto alle analoghe elaborazione goGPS, garantendo che i risultati soddisfino requisiti standard.

Implementation and testing of C++ libraries for GNSS positioning

COLLI, CARLO
2023/2024

Abstract

In today's technology-driven world, the demand for precise positioning services tailored to diverse applications continues to grow. From mapping and surveying to transportation logistics, emergency response or even recreational activities, reliable software capable of processing GNSS data is essential. When discussing GNSS software, we refer to a code framework that enables a wide range of operations dependent on accurate positioning, navigation, and timing data. This ability is provided by a numerous set of code components, that are well-versed in positioning techniques and their critical aspects. Together, these components must ensure efficiency and deliver trustworthy results. This thesis addresses the challenges associated with developing a usable library solution, focusing on specific operational domains. Individual elements of the library set should function independently and collaboratively within a larger framework, to achieve computational goals effectively with respect to existing applications. An optimized code library, leveraging the robustness of the C++ programming language, was developed. Implementation focuses on processing GNSS raw data and producing meaningful computations under high levels of reliability and efficiency. Drawing inspiration from the goGPS open-source software approach and implementation, a similar object-oriented solution was adopted, creating components with clear goals, able to communicate in a common environment. Different code components were implemented to handle operations within specific purposes with respect to GNSS operations. Besides a specific class devoted to match interoperability and display utility functions, it is possible to distinguish two groups of instances: 1. Elements that focus on atmospheric problems and estimate disturbances affecting satellite signals received by ground-based receivers. They implement optimized algorithms for Klobuchar and Saastamoinen models besides incorporating global mapping functions, for determining atmospheric factors. 2. Elements that process input data from standard format files and implement algorithms and coordinates interpolation operations over those observations, to provide solutions for extended time epochs. Separate classes handle elaborated precise ephemerides and broadcast ephemerides from navigational messages. Custom executable scripts were additionally designed to simulate the usage of higher-level software component classes, reproducing examples of specific operational scenarios and aligning with their intended purposes. Through scripts, numerous tests were performed to provide proofs of the library's validity and investigate its limitations. An important focus was placed on measuring computational speed in comparison to analogous goGPS processing approaches, ensuring that the outcomes meet standard requirements.
ALGHISI, MARIANNA
ING I - Scuola di Ingegneria Civile, Ambientale e Territoriale
9-apr-2024
2023/2024
Oggigiorno, la domanda di servizi di posizionamento preciso su misura per diverse applicazioni continua a crescere. Dalla mappatura e il rilevamento alla logistica dei trasporti, alla risposta alle emergenze o persino alle attività ricreative, è essenziale un software affidabile in grado di elaborare i dati GNSS. Parlando di software GNSS, ci riferiamo a un framework di codice che consente una vasta gamma di operazioni da accurati dati di posizionamento, navigazione e tempo. Questa capacità è fornita da un numeroso insieme di componenti, che sono istruiti nelle tecniche di posizionamento e nei loro aspetti critici. Insieme, questi componenti devono garantire efficienza e fornire risultati affidabili. Questa tesi affronta le sfide associate allo sviluppo di una soluzione di libreria software, concentrata su specifiche operazioni. Gli elementi individuali della libreria devono funzionare in modo indipendente e collaborativo all'interno di un framework più ampio, per raggiungere obiettivi computazionali in modo efficace rispetto alle applicazioni esistenti. Sfruttando la robustezza del linguaggio di programmazione C++., è stata sviluppata una libreria di codice. Il cui sviluppo si è concentrato sull'elaborazione di dati GNSS grezzi, producendo calcoli con elevati livelli di affidabilità ed efficienza. Tramite l'approccio e l'implementazione open source di goGPS, è stata adottata una simile soluzione object-oriented, creando componenti con obiettivi predefiniti, in grado di comunicare in un ambiente comune. Diversi componenti di codice sono stati implementati per gestire operazioni all'interno di specifici scopi rispetto alle operazioni GNSS. Oltre a una classe specifica dedicata a garantire operabilità e fornire funzioni di utilità, è possibile distinguere due gruppi di istanze: 1. Elementi che si concentrano sui problemi atmosferici, stimando le interferenze che influenzano i segnali satellitari trasmessi ai ricevitori terrestri. Queste implementano algoritmi ottimizzati per i modelli di Klobuchar e Saastamoinen e incorporano funzioni di mappatura globale per determinare parametri atmosferici. 2. Elementi che elaborano dati da file di formato standard e implementano algoritmi e operazioni in di interpolazione delle coordinate, basati su quelle osservazioni, per fornire soluzioni in precise epoche temporali. Classi separate gestiscono effemeridi precise elaborate e effemeridi trasmesse tramite messaggi navigazionali. Sono stati inoltre progettati script personalizzati per simulare l'uso delle classi di componenti software in un framework più ampio. Riproducendo esempi relativi a scenari operativi specifici e allineandosi con i loro scopi previsti. Attraverso gli script, sono stati eseguiti numerosi test per fornire prove della validità della libreria e indagarne le limitazioni. È stata posta un'importante attenzione sulla misurazione della velocità di calcolo rispetto alle analoghe elaborazione goGPS, garantendo che i risultati soddisfino requisiti standard.
File allegati
File Dimensione Formato  
Colli_Carlo2023-24.pdf

accessibile in internet per tutti

Descrizione: Elaborato finale
Dimensione 19.32 MB
Formato Adobe PDF
19.32 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/218123