Telefono

0825 1912258

Orario

Lun - Ven

9.00 - 18.00

Accedi Registrati
Menù GPS

GNSS Emlid

Menù Stazione totale

Stazione Totale

menu-iguide-planix-pro-rilievi

Rilievi di interni

Livella laser menu

Livelle laser

Costruire una stazione GNSS a basso costo – Parte B

Il presente articolo è la seconda ed ultima parte di un tutorial per la costruzione di una propria stazione permanente GNSS con strumentazione a basso costo. In particolare in questo articolo, dopo avere descritto la strumentazione e i tool necessari, si affronta il tema delle installazioni e configurazioni dei software onboard.

 

Banner-Emlid-Reach-RS2-plus-Blog-Strumenti

Installazione RTKLIB

Nella struttura della stazione permanente, descritta nell’articolo precedente, si è evidenziato come si possa utilizzare un microprocessore per gestire tutte le componenti SW. Tale soluzione viene realizzata nell’ottica di sviluppare una stazione che sia a basso costo, basso consumo e con un livello di autonomia più elevato. L’uso di un microprocessore di questo tipo, con il sistema operativo unix based, richiede di installare RTKLIB nella versione da linea di comando.

Nella pagina in cui si trovano gli installer, sul sito di RTKLIB, si trova il riferimento al repository github in cui risiede il codice da installare (Fig.1).

 

Screenshot-della-pagina-web-in-cui-si-trovano-gli-installer-di-RTKLIB

Fig.1 – Screenshot della pagina web in cui si trovano gli installer di RTKLIB

 

Scopri il GNSS multifrequenza e multicostellazione Emlid Reach RS2+

 

Dal repository github, si scarica il pacchetto contenente tutti i codici da utilizzare, accedendo al raspberry come indicato nell’articolo precedente, e lanciando da terminale il seguente comando:

git clone https://github.com/tomojitakasu/RTKLIB.git

 

Al termine dell’operazione, tutte le cartelle vengono scaricate.

Occorre, a questo punto, compilare singolarmente i moduli che compongono l’intera libreria RTKLIB. In linea di principio, è possibile compilare solo quelli strettamente necessari al funzionamento della stazione, che verranno descritti nel seguito.

In generale, in ogni caso, la compilazione avviene come riportato di seguito (ad esempio, per il modulo rtkrcv):

cd /RTKLIB/app/rtktcv/gcc

 

Si accede alla cartella gcc, interna ad ogni singola cartella di ogni singolo modulo:

make – make install

 

In questo modo, si compila il codice e viene generato il file eseguibile.

 

Banner-software-Topografo-blog-Strumenti-Topografici

 

RTKLIB da CUI

In figura 2, sono rappresentati i principali comandi utilizzati per la predisposizione della stazione permanente. In particolare, con riferimento alle icone che si trovano nella versione con Graphic User Interface, si riporta nell’immagine il nome del file eseguibile da lanciare da linea di comando.

 

Interfaccia-grafica-di-RTKLIB-nella-versione-windows-con-indicazione-dei-corrispettivi-moduli-da-lanciare-da-linea-di-comando-nella-versione-unix

Fig. 2 – Interfaccia grafica di RTKLIB nella versione windows, con indicazione dei corrispettivi moduli da lanciare da linea di comando nella versione unix.

 

Nello specifico, si descrivono nel dettaglio i due moduli più importanti:

RTKRCV

Si tratta del modulo che permette di effettuare un positioning in real time. Tutto è gestito da un file di configurazione che comprende tutti i parametri di input, output, opzioni di processing, inserimento di file accessori (es: effemeridi, modelli di antenna, clock, etc. etc.).

 

Schermata-del-terminale-in-ambiente-unix-al-lancio-del-modulo-rtkrcv-1024x289

Fig.3 – Schermata del terminale in ambiente unix, al lancio del modulo rtkrcv

 

Da linea di comando, si lancia il modulo mediante la sintassi seguente:

./rtkrcv

 

Dalla cartella in cui si è lanciato il modulo, e nella quale occorre avere cura che ci sia anche il file di configurazione, si lancia il medesimo file di configurazione con la sintassi seguente:

load file.conf

 

STRSVR

Si tratta dell’applicazione che consente di raccogliere le osservabili dal ricevitore e scrivere un file di dati grezzi sulla scheda SD. La sintassi del lancio del comando è la seguente:

Str2str -in stream[#…] -out stream [#…] [options]

 

Ricampionamento Files

I dati in formato RINEX, che vengono salvati sulla scheda di memoria, sono generalmente ad un rate di 1 secondo. Per l’utilizzo in Post processing, nell’ottica di un utente che richiede il download di tali dati grezzi, è certamente possibile rendere scaricabile il file stesso a 1 secondo, lasciando poi all’utente l’eventuale operazione di ricampionamento.

Nel caso, però, l’utente abbia necessità di dati grezzi con rate diverso, fino a 30 secondi, è certamente opportuno ricampionare i dati registrati in modo da produrre una serie di dataset pronti all’uso, e consentendo all’utente di scaricare solo quelli che abbiano il rate di acquisizione di suo interesse. È una questione certamente di comodità ma anche di opportunità, se si considera, ad esempio, che un file rinex a 30 secondi è circa 30 volte più leggero di un file ad 1 secondo. Nel caso in cui l’utente dovesse scaricare una grande mole di dati, questa differenza diventa sensibile.

Il tool GFZRNX è utilizzato, dunque, per ricampionare il DATASET ad un intervallo definito e unire o separare i dati grezzi in modo da comporre file orari o giornalieri e rendere disponibili i dati per il download in maniera agevole.

Unitamente a questo, il tool consente di effettuare una analisi di qualità dei dati ed eseguire una serie di analisi statistiche su file RINEX. Il tool può essere scaricato dal seguente link:

https://dataservices.gfz-potsdam.de/panmetaworks/showshort.php?id=escidoc:1577894

 

 Una volta scaricato e copiato in una cartella dedicata, lo si lancia da linea di comando con la seguente sintassi:

path/to/gfzrnx_lx -finp path/to/rinex_in.rnx -fout path/to/rinex_out/::RX3:: -smp 30

 

● I primi due campi identificano i percorsi in cui si trova il file eseguibile e il percorso in cui si scrive il file di output;

● Il campo RX3 indica che il file verrà riscritto in un formato RINEX3;

● Da ultimo, il campo -smp 30 definisce il rate di campionamento, che, in questo caso, è appunto 30 secondi.

 

Scarica la scheda tecnica del GNSS Emlid Reach RS2+

 

Automatizzazione dei processi

Il corretto funzionamento della stazione, composta con gli elementi hardware e software descritti in precedenza, necessita di una automatizzazione di alcuni processi, in modo da rendere tutto operativo senza l’intervento dell’operatore che, evidentemente, renderebbe poco fruibili le funzionalità.

I passaggi principali da automatizzare sono 3:

1. Avvio dell’acquisizione dei dati;

2. Interruzione dell’acquisizione dei dati e caricamento dei file rinex su server remoto;

3. Riorganizzazione dei file rinex in modo da renderli pronti all’uso e al download.

 

L’automatizzazione di tali processi può essere fatta in maniera del tutto custom a seconda delle proprie competenze. Un modo relativamente semplice e adatto all’infrastruttura descritta, è quello di predisporre 3 script in python che consentano di lanciare i vari processi necessari. Senza entrare nel dettaglio degli script stessi, si elencano, però, i passaggi che è necessario inserire all’interno di un processo di automatizzazione, in modo che l’operatore possa realizzarli nel modo che meglio si adatta alla propria soluzione.

 

1. Start acquisition:

a. Definire l’ora attuale secondo il formato: yyyy ggg MM hh mm;

b. Definire la cartella sul server dove il file verrà salvato;

c. Definire i parametri con cui verranno registrati i dati grezzi e creato il file rinex. Tipicamente tali parametri sono il tipo di ricevitore, il tipo di antenna e il percorso dove risiede il file eseguibile del tool STR2STR;

d. Lanciare in background il modulo STR2STR;

e. Salvare un file di log che contenga l’identificativo del processo STR2STR, il nome del file che in quel momento si sta scrivendo ed, eventualmente, altre info accessorie che si ritengano utili.

 

2. Stop acquisition

a. Leggere il file log, creato al passo precedente;

b. Terminare il processo STR2STR, identificando l’ID del processo dal file di log;

c. Convertire il file binario in 2 file RINEX (obs e nav);

d. Connettersi al server mediante protocollo ftp (ad esempio, usando ftplib);

e. Caricare i file RINEX sul server;

f. Cancellare i file relativi dalla memoria locale.

 

3. Preparare RINEX

a. Effettuare il download dal server dei 24 file rinex orari relativi al giorno precedente;

b. Ricampionare i file stessi a 30 secondi;

c. Unire i 24 file ricampionati in un unico file, cancellando i precedenti;

d. Caricare nuovamente sul server i RINEX ricampionati e rimuoverli dalla memoria locale.

 

Come detto, questi processi verranno realizzati mediante alcuni script che devono essere eseguiti autonomamente all’interno del processore locale. Indicativamente si deve prevedere il lancio di tali script ogni ora e, comunque, al riavvio della stazione qualora, per qualche motivo, ne venga interrotta l’operatività.

Solo il processo di creazione dei file giornalieri potrà essere eseguito una sola volta al giorno.

 

Conclusioni

I due articoli che compongono l’intero tutorial per la creazione di una stazione permanente forniscono una serie di indicazioni utili, a partire dalla tipologia di hardware da usare, fino ai software da installare e alle configurazioni da predisporre. Lo scopo non è entrare nel dettaglio, per cui servirebbe certamente maggiore approfondimento, ma piuttosto fornire tutte le indicazioni utili per rendere l’utente autonomo.

Siamo anche su Mepa

Logo Acquisti in rete MEPA
Prodotto aggiunto al carrello Vai al carrello