🧪 Stanno arrivando nuovi tutorial — dal braccio robotico al sensore
Vai al contenuto

Jetson: posizionamento AGNSS ​

1. Obiettivi di apprendimento

In questa lezione impareremo principalmente a utilizzare il Jetson Orin, il modulo GPS e un server agnss per implementare la lettura e l'analisi delle informazioni di posizione in condizioni di segnale debole.

2. Descrizione di AGNSS

2.1. Perché usare AGNSS

• Le condizioni per il posizionamento di un ricevitore GNSS autonomo includono:

  • Acquisire e inseguire i segnali satellitari, risolvere il tempo

  • Ottenere il messaggio di navigazione dal satellite

• In un ambiente con segnale forte, un ricevitore GNSS autonomo può effettuare il posizionamento a freddo in circa 30 secondi; tuttavia, in un ambiente con segnale debole, un ricevitore senza assistenza esterna acquisisce i satelliti molto lentamente e difficilmente riesce a ottenere il messaggio di navigazione dai satelliti, per cui può impiegare molto tempo prima di posizionarsi o addirittura non riuscirci.

• AGNSS può fornire al ricevitore le informazioni di assistenza necessarie al posizionamento, come il messaggio di navigazione, la posizione approssimativa e il tempo. Sia in ambiente con segnale forte sia debole, queste informazioni possono ridurre notevolmente il tempo al primo fissaggio.

2.2. Soluzione AGNSS

• Il server AGNSS acquisisce e gestisce le informazioni di assistenza AGNSS da più fonti di dati GNSS. Il server è costantemente in ascolto e risponde alle richieste AGNSS dei client (sono richiesti nome utente e password).

• L'utente ottiene le informazioni di assistenza dal server AGNSS tramite il protocollo TCP/IP; le informazioni di assistenza ottenute possono essere trasmesse direttamente al ricevitore GNSS.

• L'utente può anche creare un proprio server proxy.

Immagine 1

2.3. Flusso AGNSS

• Connessione al server AGNSS

–L'indirizzo del server è 121.41.40.95 (dominio: www.gnss-aide.com)

–Il numero di porta è 2621

• Invio della richiesta AGNSS

–Istruzione di richiesta: (i campi nome utente e password sono obbligatori)

–user=pm@juxi.com;pwd=juxi;cmd=full;gnss=gps+bd;lat=60.0;lon=55.0;alt=0;

• Ottenimento delle informazioni di assistenza AGNSS

• Invio delle informazioni di assistenza AGNSS al ricevitore

2.4. Parametri della richiesta AGNSS

• Il client invia la richiesta al server AGNSS; il formato dell'istruzione di richiesta è il seguente

–L'istruzione di richiesta è una combinazione di più gruppi key=value;, ad esempio: key=value;key=value;

• Esempio: user=pm@juxi.com;pwd=juxi;cmd=full;gnss=gps+bd;lat=60.0;lon=55.0;alt=0;

• La definizione concreta di key e value è riportata nella tabella seguente

Parola chiave (Key)Valore (value)OpzionalitàNote
userStringaObbligatorioNome utente. Si consiglia vivamente di utilizzare come nome utente un indirizzo email valido; le importanti informazioni di manutenzione del server AGNSS verranno inviate a tale indirizzo email.
pwdStringaObbligatorioPassword utente
gnssStringaOpzionaleElenco di GNSS separati da virgole; attualmente supporta GPS. I valori validi sono: gps,bds,glo. "gnss=gps;" indica la richiesta delle informazioni di assistenza GPS; "gnss=gps,bds;" indica la richiesta delle informazioni di assistenza GPS e BDS;
cmdStringaOpzionalefull: tutte le informazioni, incluse effemeridi, tempo e posizione stimati. eph: fornisce solo le informazioni sulle effemeridi. aid: informazioni assistite su tempo e posizione. Se non viene compilato, il valore predefinito è full
latValore numericoOpzionaleValore stimato della latitudine della posizione dell'utente. Unità della latitudine: gradi. L'intervallo di valori è da -90 a 90 gradi. I formati di assistenza alla posizione sono due: formato latitudine, longitudine e altitudine e formato ECEF; se ne sceglie uno dei due. Il formato valido di assistenza alla posizione latitudine, longitudine e altitudine è "lat=30;lon=120.3;alt=100;"; i tre campi devono essere completi.
lonValore numericoOpzionaleValore stimato della longitudine della posizione dell'utente. Unità della longitudine: gradi. L'intervallo di valori è da -180 a 180 gradi.
altValore numericoOpzionaleValore stimato dell'altitudine della posizione dell'utente. Unità: metri.
xValore numericoOpzionaleValore stimato della posizione dell'utente (X, Y, Z nel sistema di coordinate ECEF). Unità: metri. Il formato valido di assistenza alla posizione ECEF è "x=30000;y=1111120.3;z=3345100;"; i tre campi devono essere completi.
yValore numericoOpzionaleValore stimato della posizione dell'utente (X, Y, Z nel sistema di coordinate ECEF). Unità: metri.
zValore numericoOpzionaleValore stimato della posizione dell'utente (X, Y, Z nel sistema di coordinate ECEF). Unità: metri.
paccValore numericoOpzionaleAccuratezza della posizione dell'utente. Unità: metri.

2.5. Informazioni restituite dal server

Immagine 2

• Esempio di dati restituiti dal server AGNSS: intestazione dei dati + contenuto dei dati di assistenza

• I dati binari sono i dati di assistenza necessari al ricevitore GNSS; questi dati binari includono già di per sé la verifica dei dati. Per il formato dei dati binari fare riferimento alla specifica di protocollo del ricevitore di 中科微.

• Se anche l'intestazione dei dati viene inviata al ricevitore GNSS, non produrrà alcun effetto sul ricevitore GNSS.

2.6. Confronto delle prestazioni di AGNSS

• Rispetto a un normale ricevitore GNSS autonomo, il ricevitore AGNSS presenta un miglioramento notevole nelle prestazioni TTFF, soprattutto in condizioni di segnale debole.

Immagine 3

2.7. Avvertenze

• L'assistenza alla posizione approssimativa deve essere ottenuta dal client in altro modo, ad esempio

–Moduli di comunicazione GSM/GPRS/3G: questi moduli possono ottenere la posizione approssimativa attuale tramite il CELL ID

–Moduli wireless come il WiFi, che possono anch'essi effettuare un posizionamento approssimativo

• La precisione della posizione approssimativa deve essere entro 15 km; un'assistenza alla posizione errata influisce sulle prestazioni del ricevitore

• Se non è possibile ottenere la posizione approssimativa, omettere i campi di posizione (lat,lon,alt,x,y,z) nell'istruzione di richiesta AGNSS; il ricevitore selezionerà automaticamente una posizione valida dallo storico di posizionamento

• Non è necessario utilizzare come posizione approssimativa la posizione prodotta dal ricevitore GNSS stesso

2.8. Quando è necessario AGNSS

• Non è necessario scaricare dal server a ogni accensione, risparmiando traffico

–Il chip di 中科微 dispone internamente di una SRAM con backup a batteria e di una FLASH di backup permanente, che possono salvare automaticamente i dati delle effemeridi ricevuti, ecc.

–Durante il normale funzionamento, il chip scarica continuamente dai satelliti i dati delle effemeridi più recenti

• Consultando lo stato del ricevitore si decide se è necessario scaricare i dati AGNSS dal server

–Il ricevitore può emettere l'istruzione di stato del messaggio (per impostazione predefinita non viene emessa; è necessario configurarla per emetterla)

2.9. Introduzione all'istruzione di stato del messaggio

Immagine 4

Immagine 5

• Questa istruzione emette il tempo interno attuale del ricevitore + lo stato del messaggio.

• È possibile inviare il comando $PCAS03,,,,,,,,,,,1*1F per emettere una volta al secondo l'istruzione di stato del messaggio

• È possibile inviare il comando $PCAS03,,,,,,,,,,,0*1E per interrompere l'emissione dell'istruzione di stato del messaggio

• Nota: ogni istruzione deve terminare con \r\n (0x0D,0x0A); l'istruzione contiene 11 virgole

• Se il flag di tempo è valido (diverso da 0) e il numero di effemeridi valide è elevato (maggiore di 8), non è necessario scaricare le effemeridi AGNSS.

3. Preparazione preliminare

3.1. Cablaggio

Il modulo GPS utilizza la comunicazione UART o la comunicazione USB. Qui si prende come esempio la comunicazione USB.

Immagine 6

Collegare il Jetson Orin e il modulo GPS con un cavo type-c; eseguire il comando ls /dev | grep 'ttyUSB' e si potrà vedere che il modulo GPS viene riconosciuto come USB0

Immagine 7

3.2. Richiesta della ak di Baidu Maps

Vedere il documento Tutorial per richiedere la api di Baidu Maps

4. Programma

Per il programma di questa lezione fare riferimento a: GPS-agnss.py

Inizializzare l'USB:

Immagine 8

Nei materiali è necessario inserire il valore di ak richiesto; in questo modo sarà possibile ottenere tramite Baidu Maps le informazioni approssimative di latitudine e longitudine attuali.

Immagine 9

Qui le informazioni approssimative di latitudine e longitudine ottenute tramite Baidu Maps vengono inviate al server; l'account di accesso che utilizziamo è l'account ufficiale di 钜犀. Una volta completata l'acquisizione, l'intero pacchetto viene inviato al modulo.

Immagine 10

Immagine 11

Funzione di acquisizione e analisi delle informazioni di posizione. Nella figura seguente, tra le informazioni di posizione vengono filtrati i messaggi che iniziano con GNGGA, quindi i dati vengono analizzati e memorizzati nelle varie variabili globali.

Immagine 12

Immagine 13

Con lo stesso metodo sono state acquisite e analizzate le informazioni di rotta di GNVTG.

Immagine 14

I dati analizzati vengono stampati ciclicamente

Immagine 15

5. Esecuzione del programma

Nel terminale digitare sudo python2 GPS-agnss.py per eseguire il programma.

6. Fenomeno sperimentale

Nota: nel posizionamento assistito il Jetson Orin deve essere connesso alla rete.

Dopo aver alimentato il modulo in condizioni di segnale debole, inizia l'inizializzazione dell'USB; se l'inizializzazione riesce viene visualizzato "GPS Serial Opened! Baudrate=9600", altrimenti viene visualizzato "GPS Serial Open Failed!". In caso di errore occorre controllare il cablaggio o la porta USB.

Successivamente viene visualizzato "GPS Agnss start" e inizia l'invio delle informazioni di posizionamento assistito al server; completato l'invio viene visualizzato "GPS Agnss success"

Se entro un certo tempo dall'invio non è ancora stato letto il segnale GPS, viene visualizzato "GPS no found" e vengono stampate le informazioni approssimative di latitudine e longitudine lette tramite Baidu Maps.

Immagine 16

Dopo un po' di tempo, una volta riconosciuto il GPS, vengono stampate ciclicamente le informazioni di posizione e di rotta.

Immagine 17

Premere Ctrl+C per uscire dalla lettura delle informazioni.