Prove ed esperimenti sul Gps con Arduino.
In questo post descrivo quanto ho sperimentato e letto a proposito dei sistemi Gps.
Questo lavoro nasce da una domanda che da tempo avevo nella testa:
E' possibile ottenere risultati paragonabili a quelli raggiungibili con costosi ricevitori Gps professionali, utilizzando ricevitori di basso costo alla portata di tutti?
Note :
Quando scrivo Gps intendo genericamente sistemi di posizionamento tramite satellite, utilizzando questa sigla per semplicità e brevità.
Questo post come tutto il blog, è in continuo aggiornamento e correzione, grazie anche al contributo dei lettori.
Accennerò agli aspetti di base, del sistema Gps che ritengo utili ad introdurre la parte successiva del progetto.
La trattazione dell'argomento sarà impostata con
prevalenza agli aspetti pratici.
Su internet si trovano molti articoli e
pubblicazioni sul funzionamento del Gps e quindi avrei potuto omettere queste note riassuntive sul sistema Gps, le riporto al solo fine di rendere più agevole al lettore trovare le basi in un'unico articolo.
Per approfondimenti e spiegazioni più rigorose ricorrete alla bibliografia indicata in fondo all'articolo.
Ringraziamenti:
Un ringraziamento particolare al Prof. Sigfrido
Leschiutta “il Signore dell’ora esatta”, senza le sue lezioni
non sarei riuscito ad avvicinarmi al sistema Gps. (Consiglio la visione di alcune sue lezioni che si trovano su YouTube).
A mio figlio Adriano che mi sostiene con il software.
All'Ing. Marco Pierozzi per il sostegno ed i consigli.
Al collega ed amico Geom. Maurizio d'Ettorre, per gli aiuti e l'incoraggiamento.
Ai Geom. Stefano Nicolodi,
Paolo Zeroni, per l'aiuto nelle prove di funzionamento e test.
All'Ing. Michele Bavaro per il materiale e per l'assistenza che mi ha fornito.
A Tomoji Takasu un grazie particolare per la fantastica libreria "RTKLIB", senza la quale tutto sarebbe molto più complicato.
A tutti gli autori dei testi nella bibliografia sotto riportata, dai quali ho attinto dati, formule, immagini, citati nell'articolo.
A Tomoji Takasu un grazie particolare per la fantastica libreria "RTKLIB", senza la quale tutto sarebbe molto più complicato.
A tutti gli autori dei testi nella bibliografia sotto riportata, dai quali ho attinto dati, formule, immagini, citati nell'articolo.
Quanto fatto non ha pretesa di essere esaustivo
dell'argomento, chi notasse errori o mancanze può segnalarlo con un gradito commento, correggerò ed integrerò il post.
***************
Descrizione
del sistema di navigazione satellitare GNSS.
La sigla GNSS si riferisce ai sistemi satellitari
globali di navigazione (in lingua inglese global navigation satellite
system) con riferimento ai sistemi di geo-localizzazione e
navigazione marittima, terrestre, aerea, che utilizzano una rete di
satelliti artificiali in orbita.
Oggi ci sono più costellazioni di satelliti : GPS, GLONASS, GALILEO, ed altre.
Descriverò in maniera più approfondita il sistema GPS, in ogni caso i concetti di base di funzionamento rimangono validi per tutti i sistemi attualmente in uso.
Oggi ci sono più costellazioni di satelliti : GPS, GLONASS, GALILEO, ed altre.
Descriverò in maniera più approfondita il sistema GPS, in ogni caso i concetti di base di funzionamento rimangono validi per tutti i sistemi attualmente in uso.
GLONASS
Sistema di posizionamento globale Russo (GLObal NAvigation Satellite System)
Queste le caratteristiche:
Il segmento spaziale è composto da 24 satelliti, sono distribuiti su 3 piani orbitali circolari inclinati di 64,8° rispetto all'equatore.(8 satelliti per piano)
La distanza dei satelliti dalla superficie è di circa 19100 Km.
I segnali vengono trasmessi su due frequenze L1 = (1602Mhz + n*0,5625Mhz)
ed L2 = (1246 Mhz + n*0,4375 Mhz). ( n = numero canale )
I satelliti vengono individuati in base al canale di trasmissione a differenza del sistema Americano dove vengono distinti dal messaggio trasmesso nel codice.
Il sistema utilizza 2 codici SP di libero accesso, HP criptato.
Altra differenza con il sistema Gps è il DATUM utilizzato anziché WGS84 il Glonass utilizza il Datum PZL90
Sistema di posizionamento globale Russo (GLObal NAvigation Satellite System)
Queste le caratteristiche:
Il segmento spaziale è composto da 24 satelliti, sono distribuiti su 3 piani orbitali circolari inclinati di 64,8° rispetto all'equatore.(8 satelliti per piano)
La distanza dei satelliti dalla superficie è di circa 19100 Km.
I segnali vengono trasmessi su due frequenze L1 = (1602Mhz + n*0,5625Mhz)
ed L2 = (1246 Mhz + n*0,4375 Mhz). ( n = numero canale )
I satelliti vengono individuati in base al canale di trasmissione a differenza del sistema Americano dove vengono distinti dal messaggio trasmesso nel codice.
Il sistema utilizza 2 codici SP di libero accesso, HP criptato.
Altra differenza con il sistema Gps è il DATUM utilizzato anziché WGS84 il Glonass utilizza il Datum PZL90
GALILEO
Il sistema Europeo nasce per uso civile commerciale, con servizi gratuiti e a pagamento.
Ancora in fase di costruzione, è stato progettato con caratteristiche avanzate rispetto a GPS e GLONASS.
Nel progetto si è pensato a garantire interoperabilità con i sistemi esistenti ( soprattutto GPS).
Quando la costellazione di satelliti sarà completa ci saranno 30 satelliti ad un'altezza di 23200 Km, distribuiti su tre piani orbitali inclinati di 56°.
Servizi disponibili:
Open Service gratuito, frequeze E1, E5, codice libero, prestazioni simili al GPS con codice C/A.
Commercial Service a pagamento, accesso ai segnali E6 ( terza freq), accuratezza PP a 1 metro.
Altri servizi speciali:
Safety of Life Service (SoL)
Public Regulated Service (PRS)
segnali crittografati, riservati a utenti che richiedono elevata continuità del servizio ed accesso controllato.
Search and Rescue Service (SAR)
servizio specifico per utenti del soccorso e della protezione civile in tutto il mondo.
GPS
GPS ( Global Positioning System). Sistema di
posizionamento globale creato e gestito dal Ministero della Difesa
Americano, è nato per esigenze militari.
Il primo satellite fu lanciato nel 1978 e il sistema fu
ultimato nel 1994, viene continuamente aggiornato ed integrato.
Sviluppato anche per esigenze civili ( con limitazioni),
è basato su una costellazione di satelliti appartenenti alla rete GPS (NAVIGATION SATELLITE TIME AND RANGING GLOBAL POSITIONING SYSTEM) .
Oltre alle applicazioni militari per cui è nato, trova
impiego in molte attività civili:
Navigazione marittima, aerea e terrestre, anche
avvalendosi di mappe georeferenziate.
Consente il controllo della posizione di automezzi.
Con particolari ricevitori e programmi è utilizzato per
eseguire misure geodetiche, cartografiche e topografiche.
La rete GPS fornisce i dati con i quali i ricevitori
possono determinare la propria posizione.
Il sistema adottato ( ad una via) presenta due
caratteristiche fondamentali:
_ E' in grado di servire un numero illimitato di utenti,
i satelliti trasmettono solamente.
_ Gli utenti non devono trasmettere.
Queste caratteristiche rendono il sistema di facile uso
per l'utenza ma molto complesso e costoso da realizzare e da gestire.
Il sistema è costituito da tre segmenti:
_ Segmento spaziale.
_ Segmento di controllo.
_ Segmento utenza.
Segmento
spaziale.
Il
segmento spaziale è costituito da 24 satelliti + 5 di scorta, sono
distribuiti su 6 orbite “circolari” ugualmente
spaziati in longitudine di 60 gradi.
Le orbite hanno un raggio di 26560Km e sono inclinate
rispetto al piano dell'equatore di 55 gradi.
Il periodo di rivoluzione dei satelliti è di 12 ore
siderali.
In ogni satellite ci sono orologi atomici al Cesio, e al
Rubidio.
Pannelli solari, batterie, carburante e razzi per
correzioni dell'orbita.
Tutta la componentistica elettronica per trasmettere i
segnali e ricevere comandi dal controllo a terra.
Pesano circa 800 Kg.
Il satellite ha una vita media di 7 anni.
Il
compito del satellite è quello di trasmettere la propria posizione
ed il tempo GPS.
Segmento
di controllo.
Il segmento di controllo è costituito da 5 stazioni a
terra distribuite in modo uniforme lungo la circonferenza terrestre
in prossimità dell'equatore.
Di ogni stazione si conosce la posizione con precisione.
Quattro svolgono la funzione di Monitor Station,
ricevono in continuo i segnali dai satelliti e misurano i parametri
atmosferici, inviano questi dati alla Master Control Station (MSC),
situata a Colorado Springs.
Qui vengono eseguiti tutti i calcoli per correggere gli
errori degli orologi e ricalcolare effemeridi aggiornate.
I dati corretti vengono inviati ai satelliti avendo cura
di sincronizzare tutti gli orologi con precisione, in quanto è di
fondamentale importanza che gli orologi dei satelliti siano
sincronizzati su di un unico tempo ( Tempo GPS).
Dalla (MCS) vengono
inviati anche i comandi per correggere le orbite dei satelliti.
Segmento
utenza.
Questa sezione è
costituita da tutti gli utenti ( civili e militari) che con apposito
ricevitore sono in grado di captare e decodificare i segnali
trasmessi dai satelliti.
La determinazione
della posizione viene effettuata dal ricevitore o successivamente con
opportuni calcoli.
Il numero degli
utenti non è limitato, e rimangono anonimi.
Occorre che almeno
quattro satelliti siano visibili contemporaneamente al ricevitore.
In funzione dell'uso
e della precisione richiesta si utilizzano ricevitori e tecniche di
calcolo diverse.
I segnali trasmessi dai satelliti.
Come abbiamo visto sopra:
Il compito del satellite è quello di trasmettere la propria posizione ed il tempo GPS.
I segnali sono controllati tutti dalla f0 = 10,23 Mhz originata dagli orologi atomici.
Vengono utilizzate due frequenze portanti:
L1 = (f0*154)=1575,42 Mhz λ = 19,029 cm.
L2 = (f0*120) = 1227,60 Mhz λ = 24,421 cm.
Ora hanno aggiunto anche una terza portante: L5. (si veda l'ultimo testo di Alberto Cina "Dal GPS al GNSS (Global Navigation Satellite System)" .
Le portanti sono modulate in fase PSK (Phase Shift Keying) da i seguenti segnali:
L1 modulata dal codice P e dal codice C/A. ( Coarse/Acquisition)
L2 modulata con il codice P. ( Precise code )
Entrambi i segnali vengono modulati anche dal codice D (50 Hz), che contiene i dati di navigazione, l'orario di trasmissione del messaggio, le correzioni orologio, le effemeridi, lo stato di salute del satellite ed altre informazioni.
Il Codice P, precise code (10,23 Mhz) (è riservato per usi militari)
Il codice C/A, Coarse/Acquisition (1,023 Mhz) è composto da 1023 bit ed ha un periodo di 1 ms, quindi un singolo bit 1/1023 ms. Questo codice è pubblico.
Analogamente alla terza portante che è stata aggiunta alla L1 e alla L2, è ora presente anche un altro codice pseudo-random denominato L2C e trasmesso sulla sola portante L2 dai satelliti GPS del blocco II-RM.
I codici trasmessi vengono chiamati “Pseudo Random” (PR), il codice trasmesso da ogni satellite è diverso, in questo modo il ricevitore potrà distinguere il codice di un satellite da quello di un altro satellite vicino.
Come
funziona la determinazione della posizione.
La determinazione
avviene utilizzando la trilaterazione:
Con tre distanze da punti noti si può determinare il punto incognito.
Il sistema Europeo nasce per uso civile commerciale, con servizi gratuiti e a pagamento.
Ancora in fase di costruzione, è stato progettato con caratteristiche avanzate rispetto a GPS e GLONASS.
Nel progetto si è pensato a garantire interoperabilità con i sistemi esistenti ( soprattutto GPS).
Quando la costellazione di satelliti sarà completa ci saranno 30 satelliti ad un'altezza di 23200 Km, distribuiti su tre piani orbitali inclinati di 56°.
Servizi disponibili:
Open Service gratuito, frequeze E1, E5, codice libero, prestazioni simili al GPS con codice C/A.
Commercial Service a pagamento, accesso ai segnali E6 ( terza freq), accuratezza PP a 1 metro.
Altri servizi speciali:
Safety of Life Service (SoL)
Public Regulated Service (PRS)
segnali crittografati, riservati a utenti che richiedono elevata continuità del servizio ed accesso controllato.
Search and Rescue Service (SAR)
servizio specifico per utenti del soccorso e della protezione civile in tutto il mondo.
GPS
I segnali trasmessi dai satelliti.
Come abbiamo visto sopra:
Il compito del satellite è quello di trasmettere la propria posizione ed il tempo GPS.
I segnali sono controllati tutti dalla f0 = 10,23 Mhz originata dagli orologi atomici.
Vengono utilizzate due frequenze portanti:
L1 = (f0*154)=1575,42 Mhz λ = 19,029 cm.
L2 = (f0*120) = 1227,60 Mhz λ = 24,421 cm.
Le portanti sono modulate in fase PSK (Phase Shift Keying) da i seguenti segnali:
L1 modulata dal codice P e dal codice C/A. ( Coarse/Acquisition)
L2 modulata con il codice P. ( Precise code )
Entrambi i segnali vengono modulati anche dal codice D (50 Hz), che contiene i dati di navigazione, l'orario di trasmissione del messaggio, le correzioni orologio, le effemeridi, lo stato di salute del satellite ed altre informazioni.
Il Codice P, precise code (10,23 Mhz) (è riservato per usi militari)
Il codice C/A, Coarse/Acquisition (1,023 Mhz) è composto da 1023 bit ed ha un periodo di 1 ms, quindi un singolo bit 1/1023 ms. Questo codice è pubblico.
I codici trasmessi vengono chiamati “Pseudo Random” (PR), il codice trasmesso da ogni satellite è diverso, in questo modo il ricevitore potrà distinguere il codice di un satellite da quello di un altro satellite vicino.
Con tre distanze da punti noti si può determinare il punto incognito.
Conoscendo la distanza da tre punti noti (satelliti che trasmettono le coordinate della loro posizione istantanea),
si riesce a determinare la posizione del punto incognito (ricevitore).
si riesce a determinare la posizione del punto incognito (ricevitore).
La distanza R1 individua la posizione del ricevitore sulla superficie della sfera centrata sul satellite S1
La distanza R2 determina un'intersezione con la prima sfera ed individua un cerchio; il ricevitore si troverà su questo cerchio.
la distanza R3 interseca le altre sfere individuando sul cerchio due punti, dei due punti si considera il più vicino alla superficie della terra, oppure quello con il raggio orbitale più prossimo a quello dei satelliti GPS oppure quello compatibile con una stima approssimata (eventualmente disponibile)della posizione del ricevitore.
Come
si misurano i raggi delle sfere di posizione.
Per misurare la
distanza satellite (S) ricevitore (R) si utilizzano:
Misure di codice,
si utilizza il codice C/A o il codice P se abilitato.
La misura si basa
sul “tempo di volo” correlando il segnale ricevuto dal
satellite (S) con quello generato dal ricevitore (R).
Il ricevitore
confronta il codice in arrivo con quello generato localmente facendo
scorrere
i due codici fino a quando si sovrappongono perfettamente e
misurando quindi lo sfasamento o scorrimento in termini di tempo, questo è appunto, tempo di percorrenza del segnale a meno
dell'offset degli orologi.
c = 300.000.000 m/s ( velocità di propagazione onde elettromagnetiche nel vuoto.
Quindi con tre distanze da tre satelliti di cui si conoscono le effemeridi, potremmo
scrivere tre equazioni di questo tipo:
= coordinate effemeridi satellite NOTE
= coordinate ricevitore INCOGNITE
La distanza R2 determina un'intersezione con la prima sfera ed individua un cerchio; il ricevitore si troverà su questo cerchio.
la distanza R3 interseca le altre sfere individuando sul cerchio due punti, dei due punti si considera il più vicino alla superficie della terra, oppure quello con il raggio orbitale più prossimo a quello dei satelliti GPS oppure quello compatibile con una stima approssimata (eventualmente disponibile)della posizione del ricevitore.
Come
si misurano i raggi delle sfere di posizione.
Per misurare la
distanza satellite (S) ricevitore (R) si utilizzano:
Misure di codice,
si utilizza il codice C/A o il codice P se abilitato.
La misura si basa
sul “tempo di volo” correlando il segnale ricevuto dal
satellite (S) con quello generato dal ricevitore (R).
Il ricevitore
confronta il codice in arrivo con quello generato localmente facendo
scorrere
i due codici fino a quando si sovrappongono perfettamente e misurando quindi lo sfasamento o scorrimento in termini di tempo, questo è appunto, tempo di percorrenza del segnale a meno dell'offset degli orologi.
i due codici fino a quando si sovrappongono perfettamente e misurando quindi lo sfasamento o scorrimento in termini di tempo, questo è appunto, tempo di percorrenza del segnale a meno dell'offset degli orologi.
c = 300.000.000 m/s ( velocità di propagazione onde elettromagnetiche nel vuoto.
Quindi con tre distanze da tre satelliti di cui si conoscono le effemeridi, potremmo
scrivere tre equazioni di questo tipo:
= coordinate effemeridi satellite NOTE
= coordinate ricevitore INCOGNITE
(1*)
Misurate così le tre distanze Ricevitore-Satellite è possibile determinare la posizione del ricevitore in singola epoca ( un solo periodo di misura).
Le cose purtroppo
non sono così semplici per una serie di fattori e di errori e/o di
disturbi, che vedremo nel prossimo paragrafo.
Inoltre esiste
una quarta incognita molto importante ed è la differenza di offset
fra l'orologio del satellite e l'orologio del ricevitore, per evitare questo i due orologi dovrebbero essere sincronizzati fra loro, e con la stessa precisione e stabilità.
Gli orologi nei satelliti vengono sincronizzati e corretti dal (MSC) e sono come abbiamo visto orologi molto complessi, l'orologio nel ricevitore è invece un semplice orologio al quarzo e non è sincronizzato con il tempo GPS.
Esiste comunque una soluzione anche a questo problema.
Più sopra ho
scritto “tempo di volo” , è più preciso dire che si tratta di
differenza fra l'ora di invio del codice dal satellite, e l'ora di
arrivo del codice al ricevitore.
Dove
= Tempo orologio satellite.
I due orologi sono
entrambi soggetti ad un offset e quindi sarà:
dove δ = indica gli offset degli orologi ( satellite , ricevitore).
La cosa che ci interessa è conoscere la differenza fra i due offset. ( si presume che nel brevissimo tempo della misura i due errori rimangano costanti).
Questa differenza di offset degli orologi è quindi la quarta incognita del problema.
Per questo sono necessari dati da almeno quattro satelliti per ottenere le equazioni sufficienti a determinare la posizione, in una sola epoca.
Ci sono inoltre errori dovuti al percorso del segnale dal satellite al ricevitore (errore Ionosferico ed errore Troposferico).
L'equazione (1*) vista sopra diventa quindi:
******************
Misure utilizzando le portanti
Per determinare la distanza (Pseudoranges) Sr si utilizzano le portanti dei segnali, L1 o (L1+L2).
(1*)
Le cose purtroppo
non sono così semplici per una serie di fattori e di errori e/o di
disturbi, che vedremo nel prossimo paragrafo.
Inoltre esiste
una quarta incognita molto importante ed è la differenza di offset
fra l'orologio del satellite e l'orologio del ricevitore, per evitare questo i due orologi dovrebbero essere sincronizzati fra loro, e con la stessa precisione e stabilità.
Gli orologi nei satelliti vengono sincronizzati e corretti dal (MSC) e sono come abbiamo visto orologi molto complessi, l'orologio nel ricevitore è invece un semplice orologio al quarzo e non è sincronizzato con il tempo GPS.
Esiste comunque una soluzione anche a questo problema.
= Tempo orologio satellite.
Gli orologi nei satelliti vengono sincronizzati e corretti dal (MSC) e sono come abbiamo visto orologi molto complessi, l'orologio nel ricevitore è invece un semplice orologio al quarzo e non è sincronizzato con il tempo GPS.
Esiste comunque una soluzione anche a questo problema.
Più sopra ho
scritto “tempo di volo” , è più preciso dire che si tratta di
differenza fra l'ora di invio del codice dal satellite, e l'ora di
arrivo del codice al ricevitore.
Dove
I due orologi sono
entrambi soggetti ad un offset e quindi sarà:
dove δ = indica gli offset degli orologi ( satellite , ricevitore).
La cosa che ci interessa è conoscere la differenza fra i due offset. ( si presume che nel brevissimo tempo della misura i due errori rimangano costanti).
Questa differenza di offset degli orologi è quindi la quarta incognita del problema.
Per questo sono necessari dati da almeno quattro satelliti per ottenere le equazioni sufficienti a determinare la posizione, in una sola epoca.
Ci sono inoltre errori dovuti al percorso del segnale dal satellite al ricevitore (errore Ionosferico ed errore Troposferico).
L'equazione (1*) vista sopra diventa quindi:
Ci sono inoltre errori dovuti al percorso del segnale dal satellite al ricevitore (errore Ionosferico ed errore Troposferico).
L'equazione (1*) vista sopra diventa quindi:
******************
Misure utilizzando le portanti
Per determinare la distanza (Pseudoranges) Sr si utilizzano le portanti dei segnali, L1 o (L1+L2).
La misura si basa sulla differenza di fase tra il segnale emesso dal satellite ed il segnale generato nel ricevitore, in modo simile a quanto già visto per il codice, ma con maggior precisione in quanto la lunghezza dell'onda della (F1 = 1575,42 Mhz) è 19,023 cm, aumentando quindi la risoluzione sulla determinazione della distanza di molte volte rispetto alla risoluzione del codice C/A ( 1,023 Mhz).
Per eseguire queste
misure occorrono ricevitori più complessi e costosi, con hardware e
software più sofisticati.
Se fosse possibile conoscere il numero dei cicli interi dell'onda partita dal satellite basterebbe osservare il delta della fase per avere la distanza satellite ricevitore con notevole precisione.
L’ambiguità
intera N
L'incognita (N) rappresenta il numero intero di cicli compresi fra il satellite e il ricevitore, e si definisce ambiguità iniziale.
(N) non è misurabile né desumibile.
La (N) è dipendente dal satellite ( è il satellite che si muove).
Per eseguire le
misure di fase occorre che il ricevitore segua il satellite per
più epoche.
Come per il codice
abbiamo 4 incognite dipendenti dal ricevitore, alle quali si aggiunge
una quinta incognita (N ) dipendente dal satellite e quindi non è
possibile la soluzione in singola epoca.
Dove n(t1,t2) sono
il numero dei cicli interi che variano in dipendenza della distanza
satellite ricevitore. ( vedi figura sopra)
n(t1,t2) è una
quantità intera misurabile dal ricevitore, purché non perda il
contatto con il satellite.
L'ambiguità
iniziale (N) rimane costante, fino all'interruzione del conteggio da
parte del ricevitore ( ostacoli, o altri disturbi), questa
interruzione prende il nome di Cicle slip.
Le operazioni descritte sia per il codice che per la fase vengono elaborate dal microprocessore interno del ricevitore e rese disponibili in uscita sotto forma di codici ASCII o codice binario proprietario del costruttore.
Il
ricevitore GPS
I ricevitori con le
nuove tecnologie sono diventati sempre più complessi e veloci, si
trovano ricevitori da 30 – 40 euro, fino a cifre superiori ai 9.000 euro.
Descriverò quindi
il funzionamento di un ricevitore essenziale, così composto:
-
Uno stadio
ricevente a RF accordato su 1575,42 Mhz.
-
Un microprocessore.
-
Un modulo RTC molto
stabile.
-
Una memoria con i
dati dei satelliti delle costellazioni da utilizzare.
-
Una o più porte di
comunicazione.
Si distinguono due
fasi di lavoro:
-
Acquisizione.
-
Tracking.
L'acquisizione.
Nella fase iniziale
il ricevitore abbassa la sensibilità e cerca per prima cosa i
segnali dei satelliti più robusti, trovato il segnale stabile e
utilizzabile di almeno tre satelliti il ricevitore passa alla fase
successiva, questa fase prende il nome di avvio a freddo (Cold
Start) e richiede circa un minuto.
Tracking.
In questa fase di
tracciamento il ricevitore utilizza i segnali ricevuti, ed esegue la
decifrazione dei codici ricavando le distanze dai satelliti.
Il calcolo della
posizione che si svolge in questa fase è chiamato Fix.
Vediamo qui sotto
quanto riportato nel data-sheet di un ricevitore (solo alcuni
parametri):
Receiver type
50-channel ( numero dei canali )
GPS L1 C/A code
(Costellazioni, frequenze ricevute e codici riconosciuti)
SBAS: WAAS, EGNOS
( Sistemi per l'aumento della precisione)
Time-To-First-Fix1
Cold Start 29 s ( tempo per il Fix dall'accensione)
Sensitivity Tracking
& Navigation -162 dBm -158 dBm
(Le precisioni
previste)
Horizontal position
accuracy 2.5 m ( precisione SPS )
SBAS
2.0 m ( precisione con i servizi per l'aumento della
precisione).
Velocity accuracy
0.1 m/s ( precisione sul calcolo della velocità)
( limiti operativi)
Operational Limits
Dynamics 4 g
Altitude 50000 m
Velocity 500 m/s
Troverete indicate
le porte di comunicazione ( seriali, USB ….) e troverete indicati i
protocolli usati per input/output.
Protocollo
NMEA0183
I dati in arrivo dal
satellite vengono composti in stringhe.
I messaggi iniziano
con $GP … terminano con il checksum di controllo e (CR Carriage
Return) ed un Line Feed .
Qui sotto alcune
“sentences” del protocollo NMEA0183 .
$GPGGA = dati fissi
sul sistema
$GPGLL =
Latitudine, Longitudine
$GPGSA = Dop e
satelliti attivi
$GPGSV = Satelliti
acquisiti
$GPRMC
= ( Recommended Minimum Specific Gnss Data)
Questa sentenza è
quella che contiene i dati essenziali, se non occorrono ulteriori
elaborazioni è possibile leggere anche questa sola stringa.
Ecco alcuni esempi
di sentences:
$GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
$GPGGA,092751.000,5321.6802,N,00630.3371,W,1,8,1.03,61.7,M,55.3,M,,*75
$GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,*43
Il contenuto della
stringa $GPRMC nell'esempio:
092750.000 =
Informazione di tempo UTC ( ore, minuti, secondi, millesimi)
A = Dati validi se
V = Dati non validi
5321.6802,N, =
Latitudine ( Nord o Sud )
00630.3372,W, =
Longitudine ( Est o West)
0.02 = velocità al
suolo ( knot)
31.66, = gradi
sessagesimali rispetto al meridiano 0.
280511 = Data UTC
nel formato ggmmaa
seguono altri campi
che possono anche essere vuoti ed infine
*43 = il codice di
controllo preceduto da asterisco.
Nella manualistica
si possono trovare tutti i dettagli delle sentenze usate.
Sistema
di riferimento WGS 84
Il sistema di
riferimento per il GPS è denominato WGS84.
Le “coordinate
geocentriche” fanno riferimento ad una terna cartesiana,
X, Y, Z con origine nel centro di massa della terra.
L'asse Z è diretto
verso il polo Nord, l'asse X è l'intersezione del piano meridiano di Greenwich con il piano equatoriale passante per il
centro di massa della terra, ed l'asse Y completa la terna ortogonale destrorsa .
A questo sistema è
associato un ellissoide WGS84 con i seguenti parametri geometrici:
Nell'ellissoide:
a
= semiasse maggiore o
equatoriale.
In
funzione dei semiassi:
Dato un sistema di
riferimento con associato un ellissoide si definiscono le
coordinate geodetiche del punto S.
ed il piano
equatoriale (X;Y).
ed il piano meridiano di Greenwich origine.
dell'ellissoide ed il punto S.
Le relazioni fra
coordinate geodetiche e cartesiane di S sono:
Ho verificato questi passaggi realizzando un foglio elettronico con OpenOffice,
e controllato con il programma "Gps To Dat" di Alessio Mazzetti.
Il passaggio inverso
da cartesiane a geodetiche è più complesso, qui riporto una
soluzione ma in alcuni casi vengono adottate altre soluzioni.
Per applicazioni
topografiche resta il problema di passare dalle coordinate
geocentriche WGS84 alle coordinate sulle quali dobbiamo rappresentare il rilievo.
Questi calcoli possono comportare anche il cambio di Datum, sono effettuabili con software specialistico, Cartlab e Verto ( Igmi) sono due software utilizzabili per i sistemi Italiani.
Errori
del Sistema GPS
Nel calcolo della
pseudodistanza ( Sr) abbiamo utilizzato la la costante “c” = velocità della luce nel vuoto, ma una parte del percorso del segnale non viaggia nel vuoto.
Vi sono poi altri errori
da considerare.
Analizziamo meglio i
principali errori del sistema:
-
Errori nei
satelliti: Effemeridi trasmesse con errori.
-
Orologi dei
satelliti con errori.
Questi errori
vengono corretti dal controllo a terra ma ci sono sempre alcuni
momenti nei quali la trasmissione è affetta da errore.
-
Errori
nei ricevitori: Nei ricevitori
si formano errori dovuti al rumore interno ed/o ritardi dovuti al
software e all'elettronica.
-
Errori
nella propagazione del segnale: Il
segnale viaggia per gran parte nel vuoto, ma nella parte finale del
percorso incontra l'atmosfera, e questo ha effetti diversi sulla
propagazione del segnale.
-
-
L'errore
ionosferico: fra 1000 Km e 100
Km di quota, la presenza di ioni ed elettroni liberi influenzano la
propagazione del segnale GPS.
Il centro di
controllo trasmette ai satelliti la stima di questi errori calcolati secondo modelli matematici.
A loro volta i
satelliti inviano queste informazioni al ricevitore nei messaggi di
navigazione.
-
-
Errore
troposferico: Questo disturbo
è dovuto agli strati più vicini compresi fra 40 Km di quota ed il
suolo, nei primi 10 Km abbiamo anche la presenza di vapore d'acqua,
nella stima di questo disturbo si considera la pressione, l'umidità
relativa e la temperatura, si dovrà considerare anche l'elevazione
dei satelliti. ( un satellite con elevazione di 10 gradi ha un
disturbo 5 volte maggiore di un satellite allo zenit.)
-
Errori
dovuti alla riflessione del
segnale su ostacoli, questo
errore è particolarmente insidioso nelle zone urbane. ( percorsi
multipli o "multipath")
DOP
L'Accuratezza della
posizione calcolata dipende dalla correzione o attenuazione degli
errori visti sopra.
La
geometria determinata dalla posizione dei satelliti produce una
“diluizione”
della precisione. (Precision Diluition).
Si definiscono:
GDOP = La
degradazione Globale della precisione dovuta alla geometria dei
satelliti.
PDOP = La
degradazione nella determinazione della posizione.
TDOP = Degradazione
nel tempo.
HDOP e VDOP = Le
degradazioni orizzontali e verticali della posizione.
EDOP e NDOP = la
degradazione Est e Nord.
L'entità del DOP è
dovuta alla geometria (buona o cattiva)
della costellazione di satelliti visibili nel momento della
misura.
Se interessati alla
spiegazione analitica per il calcolo del DOP potrete trovarla su
“I fondamentali
del GPS” di Ludovico Biagi.
Una spiegazione
intuitiva si ha considerando che la determinazione della posizione è
data dall'intersezione di sfere, se queste fossero delle figure
puramente matematiche non avremmo questo fenomeno.
Il raggio della
sfera nel nostro caso è una misura che ha una tolleranza (+ o –)
intorno alla misura calcolata, questo conferisce alla sfera uno
spessore ( paragonatelo alla buccia di un'arancia) e quindi quando si
ha l'intersezione le due sfere anziché dare origine ad un punto si
forma un volume.
Se consideriamo il
solo piano avremo un'area.
La superficie di
questa area è minore quando l'angolo d'intersezione è di 90°,
quando l'angolo si fa più acuto la superficie aumenta.
Il DOP rappresenta
la grandezza di questa superficie.
Il PDOP è il
valore della degradazione geometrica della precisione nel calcolo
della posizione, ed è espresso con un numero.
L'errore nella
misura si determina moltiplicando il valore intrinseco per questo
parametro.
Il DOP è
prevedibile, in fase di progetto si può consultare gli almanacchi e
verificare la configurazione della costellazione visibile, dal
ricevitore all'orario della misura.
Esistono programmi
che visualizzano la posizione dei satelliti nei giorni e nelle ore
previste per le misure.
Con questo link
potrete visualizzare la visibilità dei satelliti ed il DOP previsto
per il giorno e l'ora della misura.
Per misure di
precisione si cercheranno configurazioni favorevoli con GDOP più
piccoli possibile.
Per eseguire queste
misure occorrono ricevitori più complessi e costosi, con hardware e
software più sofisticati.
Se fosse possibile conoscere il numero dei cicli interi dell'onda partita dal satellite basterebbe osservare il delta della fase per avere la distanza satellite ricevitore con notevole precisione.
L’ambiguità
intera N
L'incognita (N) rappresenta il numero intero di cicli compresi fra il satellite e il ricevitore, e si definisce ambiguità iniziale.
(N) non è misurabile né desumibile.
La (N) è dipendente dal satellite ( è il satellite che si muove).
Per eseguire le
misure di fase occorre che il ricevitore segua il satellite per
più epoche.
Come per il codice
abbiamo 4 incognite dipendenti dal ricevitore, alle quali si aggiunge
una quinta incognita (N ) dipendente dal satellite e quindi non è
possibile la soluzione in singola epoca.
Dove n(t1,t2) sono
il numero dei cicli interi che variano in dipendenza della distanza
satellite ricevitore. ( vedi figura sopra)
n(t1,t2) è una
quantità intera misurabile dal ricevitore, purché non perda il
contatto con il satellite.
L'ambiguità
iniziale (N) rimane costante, fino all'interruzione del conteggio da
parte del ricevitore ( ostacoli, o altri disturbi), questa
interruzione prende il nome di Cicle slip.
Le operazioni descritte sia per il codice che per la fase vengono elaborate dal microprocessore interno del ricevitore e rese disponibili in uscita sotto forma di codici ASCII o codice binario proprietario del costruttore.
Le operazioni descritte sia per il codice che per la fase vengono elaborate dal microprocessore interno del ricevitore e rese disponibili in uscita sotto forma di codici ASCII o codice binario proprietario del costruttore.
Il
ricevitore GPS
I ricevitori con le
nuove tecnologie sono diventati sempre più complessi e veloci, si
trovano ricevitori da 30 – 40 euro, fino a cifre superiori ai 9.000 euro.
Descriverò quindi
il funzionamento di un ricevitore essenziale, così composto:
- Uno stadio ricevente a RF accordato su 1575,42 Mhz.
- Un microprocessore.
- Un modulo RTC molto stabile.
- Una memoria con i dati dei satelliti delle costellazioni da utilizzare.
- Una o più porte di comunicazione.
Si distinguono due
fasi di lavoro:
- Acquisizione.
- Tracking.
L'acquisizione.
Nella fase iniziale
il ricevitore abbassa la sensibilità e cerca per prima cosa i
segnali dei satelliti più robusti, trovato il segnale stabile e
utilizzabile di almeno tre satelliti il ricevitore passa alla fase
successiva, questa fase prende il nome di avvio a freddo (Cold
Start) e richiede circa un minuto.
Tracking.
In questa fase di
tracciamento il ricevitore utilizza i segnali ricevuti, ed esegue la
decifrazione dei codici ricavando le distanze dai satelliti.
Il calcolo della
posizione che si svolge in questa fase è chiamato Fix.
Vediamo qui sotto
quanto riportato nel data-sheet di un ricevitore (solo alcuni
parametri):
Receiver type
50-channel ( numero dei canali )
GPS L1 C/A code
(Costellazioni, frequenze ricevute e codici riconosciuti)
SBAS: WAAS, EGNOS
( Sistemi per l'aumento della precisione)
Time-To-First-Fix1
Cold Start 29 s ( tempo per il Fix dall'accensione)
Sensitivity Tracking
& Navigation -162 dBm -158 dBm
(Le precisioni
previste)
Horizontal position
accuracy 2.5 m ( precisione SPS )
SBAS
2.0 m ( precisione con i servizi per l'aumento della
precisione).
Velocity accuracy
0.1 m/s ( precisione sul calcolo della velocità)
( limiti operativi)
Operational Limits
Dynamics 4 g
Altitude 50000 m
Velocity 500 m/s
Troverete indicate
le porte di comunicazione ( seriali, USB ….) e troverete indicati i
protocolli usati per input/output.
Protocollo
NMEA0183
I dati in arrivo dal
satellite vengono composti in stringhe.
I messaggi iniziano
con $GP … terminano con il checksum di controllo e (CR Carriage
Return) ed un Line Feed .
Qui sotto alcune
“sentences” del protocollo NMEA0183 .
$GPGGA = dati fissi
sul sistema
$GPGLL =
Latitudine, Longitudine
$GPGSA = Dop e
satelliti attivi
$GPGSV = Satelliti
acquisiti
$GPRMC
= ( Recommended Minimum Specific Gnss Data)
Questa sentenza è
quella che contiene i dati essenziali, se non occorrono ulteriori
elaborazioni è possibile leggere anche questa sola stringa.
Ecco alcuni esempi
di sentences:
$GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76 $GPGGA,092751.000,5321.6802,N,00630.3371,W,1,8,1.03,61.7,M,55.3,M,,*75 $GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,*43
Il contenuto della
stringa $GPRMC nell'esempio:
092750.000 =
Informazione di tempo UTC ( ore, minuti, secondi, millesimi)
A = Dati validi se
V = Dati non validi
5321.6802,N, =
Latitudine ( Nord o Sud )
00630.3372,W, =
Longitudine ( Est o West)
0.02 = velocità al
suolo ( knot)
31.66, = gradi
sessagesimali rispetto al meridiano 0.
280511 = Data UTC
nel formato ggmmaa
seguono altri campi
che possono anche essere vuoti ed infine
*43 = il codice di
controllo preceduto da asterisco.
Nella manualistica
si possono trovare tutti i dettagli delle sentenze usate.
Sistema
di riferimento WGS 84
Il sistema di
riferimento per il GPS è denominato WGS84.
Le “coordinate
geocentriche” fanno riferimento ad una terna cartesiana,
X, Y, Z con origine nel centro di massa della terra.
L'asse Z è diretto
verso il polo Nord, l'asse X è l'intersezione del piano meridiano di Greenwich con il piano equatoriale passante per il
centro di massa della terra, ed l'asse Y completa la terna ortogonale destrorsa .
A questo sistema è
associato un ellissoide WGS84 con i seguenti parametri geometrici:
Nell'ellissoide:
a
= semiasse maggiore o
equatoriale.
In
funzione dei semiassi:
Dato un sistema di
riferimento con associato un ellissoide si definiscono le
coordinate geodetiche del punto S.
ed il piano
equatoriale (X;Y).
ed il piano meridiano di Greenwich origine.
dell'ellissoide ed il punto S.
Le relazioni fra
coordinate geodetiche e cartesiane di S sono:
Ho verificato questi passaggi realizzando un foglio elettronico con OpenOffice,
e controllato con il programma "Gps To Dat" di Alessio Mazzetti.
e controllato con il programma "Gps To Dat" di Alessio Mazzetti.
Il passaggio inverso
da cartesiane a geodetiche è più complesso, qui riporto una
soluzione ma in alcuni casi vengono adottate altre soluzioni.
Per applicazioni
topografiche resta il problema di passare dalle coordinate
geocentriche WGS84 alle coordinate sulle quali dobbiamo rappresentare il rilievo.
Questi calcoli possono comportare anche il cambio di Datum, sono effettuabili con software specialistico, Cartlab e Verto ( Igmi) sono due software utilizzabili per i sistemi Italiani.
Questi calcoli possono comportare anche il cambio di Datum, sono effettuabili con software specialistico, Cartlab e Verto ( Igmi) sono due software utilizzabili per i sistemi Italiani.
Errori
del Sistema GPS
Nel calcolo della
pseudodistanza ( Sr) abbiamo utilizzato la la costante “c” = velocità della luce nel vuoto, ma una parte del percorso del segnale non viaggia nel vuoto.
Vi sono poi altri errori da considerare.
Vi sono poi altri errori da considerare.
Analizziamo meglio i
principali errori del sistema:
- Errori nei satelliti: Effemeridi trasmesse con errori.
- Orologi dei satelliti con errori.
Questi errori
vengono corretti dal controllo a terra ma ci sono sempre alcuni
momenti nei quali la trasmissione è affetta da errore.
- Errori nei ricevitori: Nei ricevitori si formano errori dovuti al rumore interno ed/o ritardi dovuti al software e all'elettronica.
- Errori nella propagazione del segnale: Il segnale viaggia per gran parte nel vuoto, ma nella parte finale del percorso incontra l'atmosfera, e questo ha effetti diversi sulla propagazione del segnale.
- L'errore ionosferico: fra 1000 Km e 100 Km di quota, la presenza di ioni ed elettroni liberi influenzano la propagazione del segnale GPS.Il centro di controllo trasmette ai satelliti la stima di questi errori calcolati secondo modelli matematici.A loro volta i satelliti inviano queste informazioni al ricevitore nei messaggi di navigazione.
- Errore troposferico: Questo disturbo è dovuto agli strati più vicini compresi fra 40 Km di quota ed il suolo, nei primi 10 Km abbiamo anche la presenza di vapore d'acqua, nella stima di questo disturbo si considera la pressione, l'umidità relativa e la temperatura, si dovrà considerare anche l'elevazione dei satelliti. ( un satellite con elevazione di 10 gradi ha un disturbo 5 volte maggiore di un satellite allo zenit.)
- Errori dovuti alla riflessione del segnale su ostacoli, questo errore è particolarmente insidioso nelle zone urbane. ( percorsi multipli o "multipath")
DOP
L'Accuratezza della
posizione calcolata dipende dalla correzione o attenuazione degli
errori visti sopra.
La
geometria determinata dalla posizione dei satelliti produce una
“diluizione”
della precisione. (Precision Diluition).
Si definiscono:
GDOP = La
degradazione Globale della precisione dovuta alla geometria dei
satelliti.
PDOP = La
degradazione nella determinazione della posizione.
TDOP = Degradazione
nel tempo.
HDOP e VDOP = Le
degradazioni orizzontali e verticali della posizione.
EDOP e NDOP = la
degradazione Est e Nord.
L'entità del DOP è
dovuta alla geometria (buona o cattiva)
della costellazione di satelliti visibili nel momento della
misura.
Se interessati alla
spiegazione analitica per il calcolo del DOP potrete trovarla su
“I fondamentali
del GPS” di Ludovico Biagi.
Una spiegazione
intuitiva si ha considerando che la determinazione della posizione è
data dall'intersezione di sfere, se queste fossero delle figure
puramente matematiche non avremmo questo fenomeno.
Il raggio della
sfera nel nostro caso è una misura che ha una tolleranza (+ o –)
intorno alla misura calcolata, questo conferisce alla sfera uno
spessore ( paragonatelo alla buccia di un'arancia) e quindi quando si
ha l'intersezione le due sfere anziché dare origine ad un punto si
forma un volume.
Se consideriamo il
solo piano avremo un'area.
La superficie di
questa area è minore quando l'angolo d'intersezione è di 90°,
quando l'angolo si fa più acuto la superficie aumenta.
Il DOP rappresenta
la grandezza di questa superficie.
Il PDOP è il
valore della degradazione geometrica della precisione nel calcolo
della posizione, ed è espresso con un numero.
L'errore nella
misura si determina moltiplicando il valore intrinseco per questo
parametro.
Il DOP è
prevedibile, in fase di progetto si può consultare gli almanacchi e
verificare la configurazione della costellazione visibile, dal
ricevitore all'orario della misura.
Esistono programmi
che visualizzano la posizione dei satelliti nei giorni e nelle ore
previste per le misure.
Con questo link
potrete visualizzare la visibilità dei satelliti ed il DOP previsto
per il giorno e l'ora della misura.
Per misure di
precisione si cercheranno configurazioni favorevoli con GDOP più
piccoli possibile.
Tecniche di misura con il GPS
Le
misure “GPS” coinvolgono molti aspetti e caratteristiche diverse:
Coordinate
assolute o relative, distanze, percorsi, precisione, tempo di misura.
Combinando
opportunamente le molte opzioni disponibili si sceglie la modalità
di misura più adatta per la nostra applicazione.
Qui
sotto le opzioni disponibili da combinare.
Misure
effettuate sulle osservabili : Codice, Fase con L1, Fase L1+L2.
Posizionamento
: Assoluto, Relativo, Differenziale.
Ricevitore
in modalità : Statica o Cinematica.
Calcolo
ed elaborazione : Tempo reale o Post – elaborazione.
Costellazioni
utilizzate: Gps, Glonass, Galileo
Vediamo alcune di
queste combinazioni:
Posizionamento
Assoluto Real-time con misure di Codice.
Si usa un solo
ricevitore.
Si effettua il
calcolo delle coordinate mediante le sole osservazioni ai satelliti.
( In realtà il
calcolo viene eseguito all'interno del ricevitore dal processore che
elabora i dati ricevuti e li rende disponibili in formato NMEA o in
formato proprietario del costruttore).
La soluzione avviene
in singola epoca con la soluzione delle 4 incognite,
osservando almeno 4 satelliti, si utilizzano le sole misure di codice
C/A oppure P.
E' utilizzabile
anche con ricevitore in movimento “Cinematico”.
Accuratezza circa
5-10 m.
Utilizzato per
Rilievi in piccola scala, Trekking, Navigazione, Gis, ed in altre
applicazioni dove è sufficiente la precisione raggiungibile.
Si può effettuare
con ricevitori economici.
Posizionamento
Assoluto Statico con misure di Codice e Fase.
Si usa un solo
ricevitore.
Precise Point
Positioning (PPP)
Utilizzato in
Geodesia e Geofisica.
Le osservazioni
devono prolungarsi per più epoche.
Il tempo di
stazionamento può variare da un minimo di 30 minuti, fino ad alcune
ore.
Precisione
dipendente dal tipo di ricevitore ( mono o doppia freq.)
Calcolo con
Post-elaborazione.
Accuratezza
raggiungibile 1-2 cm.
Questo metodo non è
attualmente molto utilizzato.
Posizionamento
Relativo, misure di Codice o Fase con Post-elaborazione.
Il Posizionamento
relativo si esegue con 2 o più ricevitori, si
determina la posizione relativa fra i due ricevitori per differenza
di coordinate ( baseline).
Si possono
utilizzare ricevitori con Codice , Fase L1 o meglio con L1 + L2.
Occorre che i
ricevitori vedano gli stessi satelliti.
Sessioni di misura
dai 15 minuti ad oltre 60 minuti.
Viene eseguito il
calcolo con Doppie Differenze (DD) (per approfondimento consultare“I fondamentali del gps" di Ludovico Biagi.)
Statico
per basi maggiori di 20Km.
Statico
Rapido per basi minori di 20 Km.
Accuratezza circa 1
cm. ( con fasi )
Utilizzato per
Cartografia, Catasto, Reti, monitoraggio movimenti franosi.
E' possibile anche
l'utilizzo cinematico con un ricevitore fisso ed uno mobile.
Posizionamento
Differenziale.
Il posizionamento
differenziale si effettua con Un ricevitore mobile ( rover)
che oltre a ricevere i segnali dalla costellazione di satelliti
riceve un messaggio di correzione da una stazione fissa (base)
posta in posizione di coordinate note con precisione.
Sono possibili:
Rover che utilizza
il solo Codice + la correzione dalla base.
In questo caso
abbiamo: Tempo reale, possibilità cinematica.
Accuratezza migliore di 1m.
Si può utilizzare
per rilievi a piccola e media scala, per GIS, navigazione di
precisione.
Oppure:
Rover che utilizza
Codice + Fasi (L1+L2)
Si utilizza per Topografia, Catasto, tracciamento, rilievi di dettaglio.
Accuratezza migliore di 5 cm.
Si utilizza per Topografia, Catasto, tracciamento, rilievi di dettaglio.
Accuratezza migliore di 5 cm.
RTK
utilizzando base che trasmette al rover i messaggi di correzione , in tempo reale.
utilizzando base che trasmette al rover i messaggi di correzione , in tempo reale.
Preferibilmente per
il posizionamento differenziale RTK si utilizza una coppia di
ricevitori geodetici
a doppia frequenza ( L1+L2), collegati tra di loro mediante
radio-modem.
NRTK quando
la correzione viene trasmessa da una rete, tempo reale.
Nel caso di NRTK si
usa un ricevitore geodetico a doppia frequenza,
utilizzato come
rover, e un modem telefonico GSM/GPRS, che invia alla rete la
posizione in formato NMEA ed acquisisce la correzione dalla rete in
formato RTCM.
Oppure si utilizza
un collegamento internet le correzioni in questo caso vengono fornite
con il protocollo (NTRIP) con il quale vengono inviati i messaggi
RTCM di correzione.
Un'ulteriore possibilità è quella di utilizzare il sistema di Posizionamento differenziale utilizzando ricevitori con Codice + Fase ( in questo caso L1), la precisione è minore ed i tempi per ottenere la posizione sono maggiori.
(Vedremo un'applicazione di questo caso ).
Per una trattazione teorica dei posizionamenti Relativi e Differenziali occorre far riferimento a quanto pubblicato sull'argomento, vedi bibliografia.Un'ulteriore possibilità è quella di utilizzare il sistema di Posizionamento differenziale utilizzando ricevitori con Codice + Fase ( in questo caso L1), la precisione è minore ed i tempi per ottenere la posizione sono maggiori.
(Vedremo un'applicazione di questo caso ).
Interoperabilità
E' la possibilità di un ricevitore di elaborare i segnali provenienti da più costellazioni.
Questa caratteristica renderà sempre più precisa e veloce la determinazione del punto misurato.
Il solo Gps rende disponibili in ogni parte del globo più di 4 satelliti visibili, il sistema Glonass ne rende disponibili almeno 5, il sistema Galileo renderà visibili almeno altri 5 satelliti.
Questa caratteristica renderà sempre più precisa e veloce la determinazione del punto misurato.
Il solo Gps rende disponibili in ogni parte del globo più di 4 satelliti visibili, il sistema Glonass ne rende disponibili almeno 5, il sistema Galileo renderà visibili almeno altri 5 satelliti.
Le frequenze disponibili aumentano, ed aumentano i codici trasmessi.
I nuovi ricevitori dovranno quindi avere molti canali ed essere predisposti per utilizzare i codici delle diverse costellazioni.Il GPS e Galileo saranno più facilmente integrabili in quanto utilizzano lo stesso DATUM e le scelte progettuali di Galileo sono state fatte pensando all'integrazione con il GPS.
Il sistema Galileo inoltre rende disponibili segnali ed allarmi alla utenza nel caso che l'accuratezza della posizione sia inferiore alle specifiche (integrity), questa funzione permette usi civili altrimenti non realizzabili.
Reti
e stazioni permanenti
Le reti GNSS
statiche o “passive” sono reti geodetiche simili a quelle
tradizionali, sono costituite
da punti
materializzati, con la differenza che i punti sono scelti in funzione
dell’accessibilità strumento gps e visibilità dei satelliti.
La rete statica GNSS
fondamentale in Italia è la IGM95.
Le monografie dei
vertici riportano le coordinate φ, ω, h nel datum ETRF89,
praticamente coincidente con il WGS84, e nel precedente datum
nazionale Roma 40.
A questa rete si
sono agganciate reti regionali di raffittimento, Lombardia, Umbria ed
altre regioni Italiane.
Con l'ausilio di
queste reti statiche si effettua il posizionamento con il metodo
relativo e post-elaborazione In
questo caso si utilizzano due ricevitori determinando le baselines di
collegamento alla rete.
Accuratezza
raggiungibile circa 2-3 cm.
Le reti statiche si
possono utilizzare in tempo reale con la tecnica di posizionamento
RTK ( base + rover) con due ricevitori collegati via modem o GSM.
Il posizionamento
Differenziale risulta molto produttivo ed adatto per
rilievi topografici, Catasto, ecc...
La problematica
principale è quella di dover utilizzare due ricevitori ( base e
rover) che devono comunicare fra loro, con maggiori costi iniziali e
la necessità di due operatori.
Per ovviare a questi
problemi, si sono diffusi sul territorio servizi che forniscono dati
da utilizzare in sostituzione della base.
Con l'acquisto di un
solo rover ed un abbonamento al servizio che fornisce i dati è
possibile effettuare posizionamento differenziale con
costi inferiori ed eventualmente con un solo operatore.
Il rover dovrà
essere in grado di collegarsi con il servizio che fornisce i dati.
Reti
GNSS dinamiche.
Le Reti Dinamiche
sono costituite da Stazioni GNSS Permanenti.
La stazione tipo è
composta da antenna geodetica, ricevitore GNSS in grado di ricevere
più costellazioni e L1+L2, un server con collegamento di rete,
eventuale stazione meteo, la stazione rimane in funzione 24 h al
giorno per tutto l'anno.
I dati acquisiti da
ogni stazione vengono inviati ad un centro di controllo archiviati, e
resi disponibili all'utenza, in varie modalità:
Per
post-elaborazione :
Files RINEX
(compattati, e con diverse opzioni di campionamento)
Vengono resi
disponibili anche file di navigazione, ed altro.
Spesso sono
disponibili le coordinate delle stazioni su datum diversi .
Tempo
reale:
- Correzioni DGPS
(solo codice)
- Correzioni NRTK
(codice + fase) con collegamento GSM o Internet (Ntrip).
Prove pratiche con ricevitori "GPS"
Dopo gli accenni al funzionamento teorico del sistema, procediamo con alcune prove ed esperimenti.
Vediamo di realizzare "Il nostro primo Gps".
Vediamo di realizzare "Il nostro primo Gps".
Inizio con il più semplice progetto:
Gps posizionamento assoluto con misure di codice.
Materiale occorrente:
_ Arduino UNO
_ Display LCD io ho usato 20x2 (si può utilizzare anche un 16 x 2 o altro).
_ ricevitore gps ublox 6M ( io ho utilizzato un GY-GPS6MV2 con antenna )
_ materiale vario.
Con questo progetto si visualizzano le coordinate del punto, che vengono aggiornate ogni tre secondi.
Ho montato il ricevitore su basetta, realizzando qualcosa di simile ad uno shield, il display LCD utilizza i pin da D2 a D7 e si lasciano liberi i due D0 e D1 della porta seriale per eventuali altri usi.
Si utilizzano i pin digitali D8 = RX, e D9 = TX, per la softserial, questi verranno utilizzati per la comunicazione dei dati NMEA dal ricevitore ad Arduino.
Ho inserito un partitore sul pin digitale che da Arduino invia i segnale al ricevitore, questo per proteggere il ricevitore.
Questa disposizione del display (D2-D7), servirà poi per avere disponibili i pin per la SD shield, che useremo nel prossimo progettino.
Ecco il semplice schema di collegamento:
Si possono utilizzare anche altri ricevitori simili la cosa da tenere in attenzione sono le tensioni di lavoro ( 5 V o 3,3 V), ed anche il valore dei livelli logici.
Particolare attenzione a quanto si invia al pin RX del ricevitore.
Vi ricordo che il pin TX del GPS si collegherà al pin RX di Arduino, e il pin RX del GPS riceverà il segnale dal TX di Arduino.
ecco qui sotto lo sketch per Arduino, i commenti dovrebbero spiegare tutti i passaggi.
[code]
/*
************************************************
***** Sergio & Adriano Prenleloup *****
************************************************
***** GPS CON LCD UBLOX NEO 6M *****
***** Versione CON “TinyGPSPlus” *****
***** LIBRERIA DI Mikal Hart *****
***** nome file = gps-plus-009
*****
***** ------ ver. 1.09 DEL 20/6/2015 *****
************************************************
** ********************************************* ***
** Versione semplice solo coordinate ***
** SUL BLOG http://avventurarduino.blogspot.it
/*
/* Circuito lcd -> Arduino
* LCD GND -1- -> GND
* LCD VCC -2- -> 5V
* LCD V0 -3- -> CENTRALE TRIMMER 20K
* LCD RS -4- -> D2 marrone Pin 2
* LCD R/W -5- -> GND
* LCD En -6- -> D3 rosso Pin 3
* LCD DB0 ( nc )
* LCD DB1 ( nc )
* LCD DB2 ( nc )
* LCD DB3 ( nc )
* LCD DB4 -11- -> D4 arancio Pin 4
* LCD DB5 -12- -> D5 giallo Pin 5
* LCD DB6 -13- -> D6 verde Pin 6
* LCD DB7 -14- -> D7 blu Pin 7
* LCD LED+ -15- -> 5V
* LCD LED- -16- -> GND
*
*/
/*
Il pin RX Arduino va collegato al pin TX GPS.
Il pin TX Arduino va collegato al pin RX GPS.
(Ho inserito partitore resistivo )
*/
// LIBRERIE
// LiquidCrystal.h - libreria Arduino per lcd
// SoftwareSerial.h - libreria Arduino per seriale software
// TinyGPS++.h - libreria che intrpreta le stringhe NMEA
// questa è l'evoluzione della TinyGPS - vedi il sito:
// http://arduiniana.org/libraries/tinygpsplus/
//------------------------------------------------------
#include "LiquidCrystal.h"
#include "TinyGPS++.h "
#include "SoftwareSerial.h"
// pin digitali utilizzati per il display LCD
// questa disposizione lascia liberi i pin per la SD
// da implementare in altra versione
// rimangono liberi anche i pin 1 e 0 porta seriale
//--------------------------------------------------
#define LCD_RS_PIN 2
#define LCD_EN_PIN 3
#define LCD_D4_PIN 4
#define LCD_D5_PIN 5
#define LCD_D6_PIN 6
#define LCD_D7_PIN 7
float latitudine = 0;
float longitudine = 0;
long int lastTimeDisplay = 0; // per controllo tempo di aggiornamento display
// Inizializa la libreria per la gestione dell'LCD
// LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(LCD_RS_PIN, LCD_EN_PIN, LCD_D4_PIN, LCD_D5_PIN, LCD_D6_PIN, LCD_D7_PIN);
static const int RXPin = 8, TXPin = 9; // questi sono i pin della soft serial
static const uint32_t GPSBaud = 9600; // modificato da 4800 per ublok 6m
// The TinyGPS++ object // istanza a TinyGPS++
TinyGPSPlus gps;
// pin utilizzati dalla Soft-Serial
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
ss.begin(GPSBaud);
lcd.begin(20, 2);
lcd.clear();
lcd.print("Ricerca satelliti ");
delay (2000);
lastTimeDisplay = millis();
}
void loop()
{
// Lo sketch legge le sentenze NMEA e se valide mostra le coordinate.
// la struttura è predisposta per leggere e/o mostrare
// anche altri dati messi a disposizione dalla libreria vedi il link.
//------------------------------------------------------------------
while (ss.available() > 0)
{
//---- continua a leggere ed aggiornare i dati ricevuti
if (gps.encode(ss.read()))
{
raccoltaDati();
}
//---- mostra le coordinate aggiornate ogni tre secondi
if (millis() - lastTimeDisplay > 3000)
{
displayInfo();
lastTimeDisplay = millis();
}
}
//----- se non riceve dati invia messaggio e si blocca
if (millis() > 5000 && gps.charsProcessed() < 10)
{
lcd.print("No GPS detected: check wiring.");
while(true);
}
}
//*******************************
// END - loop -
//********************************
void raccoltaDati()
// se ci sono dati validi vengono sostituiti nelle variabili
{
if (gps.location.isValid())
{
latitudine = (gps.location.lat());
longitudine = (gps.location.lng());
}
}
// fine raccolta dati
//-----------------------------
void displayInfo()
{
// vengono mostrati sul display i dati aggiornati
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Lat = ");
lcd.print (latitudine,6);
lcd.setCursor(0, 1);
lcd.print("Long = ");
lcd.print(longitudine,6);
}
// fine display
[/code]
La libreria utilizzata è la TinyGPS++ più semplice da usare della TinyGPS, in ogni caso con pochissime modifiche è possibile cambiarla.
Il Gps nella scatola!
Con questo progetto si visualizzano le coordinate del punto, che vengono aggiornate ogni tre secondi.
Ho montato il ricevitore su basetta, realizzando qualcosa di simile ad uno shield, il display LCD utilizza i pin da D2 a D7 e si lasciano liberi i due D0 e D1 della porta seriale per eventuali altri usi.
Si utilizzano i pin digitali D8 = RX, e D9 = TX, per la softserial, questi verranno utilizzati per la comunicazione dei dati NMEA dal ricevitore ad Arduino.
Ho inserito un partitore sul pin digitale che da Arduino invia i segnale al ricevitore, questo per proteggere il ricevitore.
Questa disposizione del display (D2-D7), servirà poi per avere disponibili i pin per la SD shield, che useremo nel prossimo progettino.
Ecco il semplice schema di collegamento:
Si possono utilizzare anche altri ricevitori simili la cosa da tenere in attenzione sono le tensioni di lavoro ( 5 V o 3,3 V), ed anche il valore dei livelli logici.
Particolare attenzione a quanto si invia al pin RX del ricevitore.
Vi ricordo che il pin TX del GPS si collegherà al pin RX di Arduino, e il pin RX del GPS riceverà il segnale dal TX di Arduino.
ecco qui sotto lo sketch per Arduino, i commenti dovrebbero spiegare tutti i passaggi.
[code]
/*
************************************************
***** Sergio & Adriano Prenleloup *****
************************************************
***** GPS CON LCD UBLOX NEO 6M *****
***** Versione CON “TinyGPSPlus” *****
***** LIBRERIA DI Mikal Hart *****
***** nome file = gps-plus-009
*****
***** ------ ver. 1.09 DEL 20/6/2015 *****
************************************************
** ********************************************* ***
** Versione semplice solo coordinate ***
** SUL BLOG http://avventurarduino.blogspot.it
/*
/* Circuito lcd -> Arduino
* LCD GND -1- -> GND
* LCD VCC -2- -> 5V
* LCD V0 -3- -> CENTRALE TRIMMER 20K
* LCD RS -4- -> D2 marrone Pin 2
* LCD R/W -5- -> GND
* LCD En -6- -> D3 rosso Pin 3
* LCD DB0 ( nc )
* LCD DB1 ( nc )
* LCD DB2 ( nc )
* LCD DB3 ( nc )
* LCD DB4 -11- -> D4 arancio Pin 4
* LCD DB5 -12- -> D5 giallo Pin 5
* LCD DB6 -13- -> D6 verde Pin 6
* LCD DB7 -14- -> D7 blu Pin 7
* LCD LED+ -15- -> 5V
* LCD LED- -16- -> GND
*
*/
/*
Il pin RX Arduino va collegato al pin TX GPS.
Il pin TX Arduino va collegato al pin RX GPS.
(Ho inserito partitore resistivo )
*/
// LIBRERIE
// LiquidCrystal.h - libreria Arduino per lcd
// SoftwareSerial.h - libreria Arduino per seriale software
// TinyGPS++.h - libreria che intrpreta le stringhe NMEA
// questa è l'evoluzione della TinyGPS - vedi il sito:
// http://arduiniana.org/libraries/tinygpsplus/
//------------------------------------------------------
#include "LiquidCrystal.h"
#include "TinyGPS++.h "
#include "SoftwareSerial.h"
// pin digitali utilizzati per il display LCD
// questa disposizione lascia liberi i pin per la SD
// da implementare in altra versione
// rimangono liberi anche i pin 1 e 0 porta seriale
//--------------------------------------------------
#define LCD_RS_PIN 2
#define LCD_EN_PIN 3
#define LCD_D4_PIN 4
#define LCD_D5_PIN 5
#define LCD_D6_PIN 6
#define LCD_D7_PIN 7
float latitudine = 0;
float longitudine = 0;
long int lastTimeDisplay = 0; // per controllo tempo di aggiornamento display
// Inizializa la libreria per la gestione dell'LCD
// LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(LCD_RS_PIN, LCD_EN_PIN, LCD_D4_PIN, LCD_D5_PIN, LCD_D6_PIN, LCD_D7_PIN);
static const int RXPin = 8, TXPin = 9; // questi sono i pin della soft serial
static const uint32_t GPSBaud = 9600; // modificato da 4800 per ublok 6m
// The TinyGPS++ object // istanza a TinyGPS++
TinyGPSPlus gps;
// pin utilizzati dalla Soft-Serial
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
ss.begin(GPSBaud);
lcd.begin(20, 2);
lcd.clear();
lcd.print("Ricerca satelliti ");
delay (2000);
lastTimeDisplay = millis();
}
void loop()
{
// Lo sketch legge le sentenze NMEA e se valide mostra le coordinate.
// la struttura è predisposta per leggere e/o mostrare
// anche altri dati messi a disposizione dalla libreria vedi il link.
//------------------------------------------------------------------
while (ss.available() > 0)
{
//---- continua a leggere ed aggiornare i dati ricevuti
if (gps.encode(ss.read()))
{
raccoltaDati();
}
//---- mostra le coordinate aggiornate ogni tre secondi
if (millis() - lastTimeDisplay > 3000)
{
displayInfo();
lastTimeDisplay = millis();
}
}
//----- se non riceve dati invia messaggio e si blocca
if (millis() > 5000 && gps.charsProcessed() < 10)
{
lcd.print("No GPS detected: check wiring.");
while(true);
}
}
//*******************************
// END - loop -
//********************************
void raccoltaDati()
// se ci sono dati validi vengono sostituiti nelle variabili
{
if (gps.location.isValid())
{
latitudine = (gps.location.lat());
longitudine = (gps.location.lng());
}
}
// fine raccolta dati
//-----------------------------
void displayInfo()
{
// vengono mostrati sul display i dati aggiornati
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Lat = ");
lcd.print (latitudine,6);
lcd.setCursor(0, 1);
lcd.print("Long = ");
lcd.print(longitudine,6);
}
// fine display
[/code]
La libreria utilizzata è la TinyGPS++ più semplice da usare della TinyGPS, in ogni caso con pochissime modifiche è possibile cambiarla.
Il Gps nella scatola!
Questo semplicissimo progetto è alla portata di tutti ma per la verità non ha molte applicazioni pratiche.
Nei prossimi progetti in corso di studio vedrò di realizzare un oggetto più utile.
2° Progetto GPS
Utilizzerò parte del materiale già visto ma cercando di realizzare un ricevitore più completo.
Gps posizionamento assoluto con misure di codice con registrazione su SD card delle coordinate calcolate.
Materiale occorrente:
_ Arduino UNO
_ Display LCD io ho usato 20x2 (si può utilizzare anche un 16 x 2 o altro apportando le opportune modifiche).
_ ricevitore gps ublox 6M ( io ho utilizzato un GY-GPS6MV2 con antenna )
_ SD Shield (Itead Studio) con sd card.
_ 2 Pulsanti
_ Materiale vario ( vedi schema)
_ SD Shield (Itead Studio) con sd card.
_ 2 Pulsanti
_ Materiale vario ( vedi schema)
Con questo progetto si visualizzano le coordinate del punto, che vengono aggiornate ogni tre secondi e visualizzate sul display ( esattamente come il precedente progetto), le coordinate vengono scritte sul file della SD card.
E' possibile mettere in pausa la registrazione, e proseguirla in altro momento.
Al momento dell'accensione viene inizializzata la SD card e quindi il display propone la scelta fra leggere il gps e registrare le coordinate sulla SD, oppure trasferire le coordinate già registrate sul file sul PC.
La scelta è effettuata attraverso la pressione dei tasti aggiunti ( a Sinistra LCD, a Destra LCD).
Ho montato il ricevitore su basetta, realizzando qualcosa di simile ad uno shield, il display LCD utilizza i pin da D2 a D7 e si lasciano liberi i due D0 e D1 della porta seriale per eventuali altri usi.
Si utilizzano i pin digitali D8 = RX, e D9 = TX, per la softserial, questi verranno utilizzati per la comunicazione dei dati NMEA dal ricevitore ad Arduino.
Ho inserito un partitore sul pin digitale che da Arduino invia i segnale al ricevitore, questo per proteggere il ricevitore.
Questa disposizione del display (D2-D7).
La Shield SD utilizza i pin :
static const int chipSelect = 10; // pin in output CS
//Pin Arduino --> Pin SD Shield
// 5 V --> 3,3 V
// GND --> GND
// D13 --> SD_CLK
// D12 --> SD_OUT
// D11 --> SD_IM
// D10 --> SD_CS (chipSelect)
//-------------------------------------------------------
I pin digitali sono quindi tutti utilizzati ( lascio volutamente non utilizzati il pin 0, e pin 1 della seriale), per i pulsanti quindi utilizzo in modo digitale A0 ed A1 ( 14 e 15).
Lo schema è quello del precedente esperimento, con l'aggiunta di due pulsanti e relative resistenze da 10k, e la SD Shield per memorizzare i dati ricevuti.
Dopo l'inizializzazione della SD sul display appare la richiesta di scelta :
SD-READ...GPS-WRITE
Premendo il tasto Destro START si attiva il (GPS-WRITE) che scriverà leletture sul file.
Sul display appaiono le coordinate che si aggiornano ogni 3 secondi e vengono scritte nella SD.
Quando si desidera si può sospendere la registrazione con la pressione del tasto Destro.
Con nuova pressione del tasto destro si riprende la registrazione.... così via fino a fine lavoro.
Finita la registrazione con Arduino spento si collega la USB e si torna al menù inziale in questo caso si sceglie ( SD-READ ) tasto sinistro, e si scaricano i dati dalla SD.
Finita la lettura è possibile cancellare il file o conservarlo.
Un successivo lavoro si accoda.
Lo sketch proposto pur essendo molto semplice utilizza quasi tutte le risorse di memoria di Arduino.
In fase di compilazione si ha questo messaggio di avviso:
"Low memory available, stability problems may occur."Non ho riscontrato problemi ma la cosa impedisce di aggiungere migliorie o altro.
Il fatto probabilmente è dovuto all'uso delle librerie che si richiamano all'inizio dello sketch.
Come abbiamo visto in questa configurazione Arduino raggiunge i suoi limiti sia come Pin utilizzati, sia come Memoria utilizzata.
Riporto solo la parte centrale dello sketch, con la quale si seleziona tramite la pressione del relativo pulsante la funzione desiderata.
void loop()
{
//("SD-READ...GPS-WRITE");
menu_Inizio(); // si propone la scelta se lettura/scrittura gps
// oppure lettura sd e trasferimento su pc
attesaPulsante(); // si attende la scelta
if (stato_switch[0]==1)//scelta gps-write //tasto Destro
{
while (true)//rimane qui
{
//************************************************
GPS_Mio(); //legge gps e scrive su sd
//************************************************
stato_bottoni[0]= 0;
stato_switch[0]=0; // rimetto a 0 lo stato pulsante
controllaPulsante(); // si controlla il tasto Destro
// se premuto va in pausa/stop
if (stato_switch[0]==1)//pausa/stop
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("PAUSA / STOP");
lcd.setCursor(0, 1);
lcd.print("CONTINUA premi -->");
stato_bottoni[0]= 0;
stato_switch[0]=0; // rimetto a 0 lo stato pulsante
attesaPulsante(); // rimane in attesa pulsante
} // se premuto un pulsante riparte
// legge gps e scrive su sd
}//while (loop)
}// if scelta iniziale
// attesaPulsante(); // si attende scelta
else if (stato_switch[1]==1)
{
//*******************************************
// Trasferimento su Pc di quanto contenuto nella SD
//*******************************************
sdRead(); // si è scelto lettura sd e trasferimento su pc
deleteFile(); //si potrà scegliere se cancellare il file sulla sd
}// else if
} //end loop
//********************************
Lo sketch è ampiamente commentato.
Qui per scaricare lo sketch.
Qui sotto uno stralcio dei dati registrati sulla SD ( Latitudine , Longitudine)
*** *** *** ***
43.852455 11.524364
43.852417 11.524331
43.852379 11.524309
43.852345 11.524283
43.852314 11.524264
43.852310 11.524259
43.852310 11.524255
43.852291 11.524247
*** *** *** ***
Con opportune modifiche si possono registrare altri dati e/o cambiare il formato di presentazione.
Io ho registrato la coppia di coordinate ogni 3 secondi, ma si può variare la cadenza di registrazione.
Questo secondo progetto è sicuramente più completo del primo, ma ancora da migliorare.
****************
****************
****************
Prova del ricevitore U-blox Neo 7P
Con questa prova cerco di verificare la possibilità di utilizzare un ricevitore relativamente economico per ottenere dati paragonabili a ricevitori professionali.
Materiale utilizzato:
Ricevitore U-blox Neo 7P .
Io ho utilizzato un modulo USB con NEO7P.
E' un modulo economico molto utile per valutare il ricevitore della Ublox. (Fornito da Michele Bavaro.)
E' un modulo economico molto utile per valutare il ricevitore della Ublox. (Fornito da Michele Bavaro.)
Un'antenna economica con un supporto autocostruito
Un cavalletto con supporto di base per strumento.
Un PC portatile con connessione internet.
La prima cosa da fare è scaricare e installare RTKLIB sul pc ( vedi link nella bibliografia).
Collegare antenna e ricevitore USB al pc.
Controllare che vi sia il collegamento alla rete per ricevere le correzioni RTCM.
Per utilizzare questa modalità occorre avere l'accesso ad un server della propria zona.
Si dovranno immettere l'indirizzo internet del provider, username e password di accesso al servizio.
In particolar modo vi consiglio di leggere i paragrafi da 3.1 fino a 3.8.
Nella appendice E del manuale troverete approfondimenti teorici sui metodi di calcolo utilizzati nella libreria.
********************
Predisposto il ricevitore ed il pc possiamo procedere.
Lanciare RTKNAVI , premere su "I" e inserire le modalità di input.
Selezionate Rover e Base Station, su Opt indicare la porta seriale ed il bit rate.
Poi premendo su "O" indicare il file su cui si scriveranno i dati calcolati.
Premendo su "L" si indica il file per il log.
Definiti input e output si dovranno scegliere alcune opzioni sulla modalità di rilievo che vogliamo eseguire.
In questo caso si esegue un rilievo statico, il Rover in pratica rimane in posizione fino a quando non si ottiene il FIX.
Prima dello Start premere su "Option" poi su Setting 1 selezionate :
Static
L1
Elevation Mask (10 o 15 )
Spuntare GPS e RAIM
Continuos
nel Min Ratio lasciate inizialmente il valore di default (3), successivamente potrete valutare di aumentarlo.
Il programma si avvia e vedrete le colonnine del segnale dei satelliti prima del Rover poi della Base.
In prima istanza vedrete la posizione "SINGLE"
Successivamente vedrete che diventa "FLOT"
In questa fase il programma elabora i dati rilevati dal Rover e Base alla ricerca del "FIX"
Nell'immagine qui sotto si vedono alcune delle finestre prodotte da RTKNAVI che fa parte della libreria RTKLIB.
Nella finestra più grande in alto si vede:
A sinistra la "soluzione ottenuta" FIX .
Sotto le coordinate Latitudine, N, Longitudine E, Quota.
Nei due riquadri si possono vedere le colonnine che rappresentano il segnale ricevuto dai satelliti, Rover in alto e Base in basso.
I satelliti utili sono 7 ( in comune fra base e rover)
Nella finestra in basso a sinistra si vede il monitor delle correzioni RTCM inviate dalla base tramite il collegamento internet (NTRIP).
Nella finestra in basso a destra viene visualizzato graficamente la posizione delle coordinate calcolate, si può notare che il reticolo è con una griglia con quadrati di 5 cm.
Il programma genera inoltre i files di output per successive analisi ed / o elaborazioni.
L'esito positivo di questa prima prova mi spinge a continuare nella sperimentazione e nell'approfondimento di questo studio.
Aggiornerò questo post dedicato al GPS via via che procedo nelle prove.
Sono in attesa di nuovo materiale da utilizzare..... continua.
***************
***************
***************
Questo post è in costruzione, se interessati ritornate per leggere ulteriori sviluppi, oppure registratevi per ricevere notifica automatica degli aggiornamenti.
Sono graditi commenti e correzioni.
E' possibile lasciare commenti anche senza registrazione Vi chiedo solo di lasciare almeno un nome di riferimento.
Grazie!
****************
****************
****************
Bibliografia
_ Ludovico Biagi, "I fondamentali del GPS", Como, Politecnico di Milano.
Volume disponibile in formato digitale all’indirizzo
Volume disponibile in formato digitale all’indirizzo
http://geomatica.como.polimi.it/workbooks/n8/list.php
_ Alberto Cina, "Dal GPS al GNSS (Global Navigation Satellite System)", Celid.
_ Alberto Cina, "GPS Principi, modalità e tecniche di posizionamento", Celid.
_ Davide Scullino, "Tecnologia e apparati GPS" ( ElettronicaIn )
_ Francesco Paolo Pacillo CRISEL S.R.L. " Il GPS per il mapping GIS" Roma, Crisel.
Volume disponibile anche in formato digitale all'indirizzo:
http://www.trafficlab.eu/index.php
_ RTKLIB Libreria per utilizzare i dati gps, vedi il link: http://www.rtklib.com/
_ Programma "Gps To Dat" di Alessio Mazzetti http://www.studiomazzetti.com/
Trovo molto interessante l'esperimento! Ti scrivo in privato anche perchè sto raccogliendo altri dati per un articolo che avevo predisposto la primavera scorsa per GalileoNet che tratta la precisione centimetrica con GPS contenuti negli smarthphone ed una ricerca fatta dagli scienziati dell'Università del Texas che hanno realizzato il prototipo per ottenere misurazione con precisioni dell'ordine centimetrico con hardware low-cost. A presto Sergio!!
RispondiEliminaBene aspetto tue notizie.
EliminaSergio
scusi avrei bisogno di un gps precisione centimetrica low cost.
Eliminaa chi mi devo rivolgere????
L'articolo cerca di esaminare la possibilità di avere precisioni notevoli utilizzando "GPS-economici".
EliminaPer ottenere precisione centimetrica attualmente vengono utilizzati gps professionali con doppia frequenza di note marche ( TRIMBLE TOPCON LEICA ecc...) che li vendono a prezzi che possono arrivare anche a 15000 euro.
Tutto dipende dalla configurazione che si acquista (base + rover ) o solo il rover.
Chiaramente con solo il rover si dovrà stipulare un abbonamento per utilizzare le correzioni dalla rete di nostro interesse....
Attualmente non mi risultano in commercio gps con precisione centimetrica con costi contenuti.
Importante sarebbe capire in che modo e per quale scopo devi utilizzare il gps.
Se per esempio ti occorre verificare una distanza fra due posizioni con la rtklib potresti utilizzare il sistema della post elaborazione utilizzando due gps posti agli estremi con tempi di rilievo medio-lunghi si possono ottenere precisioni centimetriche anche con apparecchi mono-frequenza.
Scrivi dettagliando meglio l'utilizzo del gps e cercherò di consigliarti per quanto posso.
Saluti Sergio
Ottimo articolo, ben documentato!
RispondiEliminaTi ringrazio per il commento, presto aggiungerò altre prove.
EliminaSergio
Ciao Sergio bell'avventura ...
RispondiEliminae bel esperimento ti saluto con un poesia...
Bianco & Nero
Scacchi
Ajedrez
di Jorge Luis Borges
I
Nell'angolo severo i giocatori
muovono i lenti pezzi. La scacchiera
li avvince fino all'alba al duro campo
dove si stanno odiando due colori.
Su di esso irradiano rigori magici
le forme: torre omerica, regina
armata, estremo re, cavallo lieve,
pedoni battaglieri, obliquo alfiere.
Quando si lasceranno i due rivali,
quando il tempo oramai li avrà finiti,
il rito certo non sarà concluso.
In Oriente si accese questa guerra
che adesso ha il mondo intero per teatro.
Come l'altro, è infinito questo gioco.
II
Debole re, pedone scaltro, indomita
regina, sghembo alfiere, torre eretta
sul bianco e nero del tracciato cercano
e sferrano la loro lotta ramata.
Non sanno che il fortuito giocatore
che li muove ne domina la sorte,
non sanno che un rigore adamantino
ne soggioga l'arbitrio e la fortuna.
Ma il giocatore è anch'esso prigioniero
(Omar lo dice) d'una sua scacchiera
fatta di nere notti e bianchi giorni.
Dio muove il giocatore, e questi il pezzo.
Che dio dietro di Dio la trama inizia
di tempo e sogno e polvere e agonie?
Ciao! Grazie per la poesia.
RispondiEliminaI commenti vengono pubblicati solo dopo che li ho letti, e li leggo prima possibile ma a volte passano alcuni giorni...
Un saluto a tutti Voi.
Sergio
Salve
RispondiEliminaInanzitutto complimenti per il lavoro svolto e il blog!
Sto cercando di sviluppare anche io una soluzione simile per rapidi controlli topografici. Ha avuto modo di contrlare la precisione del punto rilevato confrontandolo con le coordinate fornite da un gps topografico "commerciale" o con le coordinate di un punto fiduciale?
Grazie per il commento.
EliminaSi ho avuto modo di controllare un punto determinato con Gps doppia freq, facendo stazione sul chiodo lasciato, i risultati sono stati interessanti ma non ho pubblicato perchè vorrei controllare anche altri punti.
In questo mese penso di aver tempo per effettuare altre misure, nel frattempo ho determinato con attrezzatura gps professionale Leica due punti ai quali ho comodità di accesso e sui quali effettuerò prove ulteriori.
Nel frattempo mi è arrivato altro materiale gps e farò le prove anche con quello.
Credo che tra circa un mese sarò in grado di pubblicare un'aggiornamento.
Cordiali saluti
Sergio
Ciao mi chiamo Francesco e penso che questo sia davvero uno studio all'altezza delle più complete tesi di laurea. Molti docenti universitari avranno appreso tanto dalla lettura di questo articolo. Complimenti
RispondiEliminaSergio non riesco ad iscrivermi. Vorrei contattarti in privato per illustrarti una mia idea. Come posso fare?
RispondiEliminaGrazie per i commenti, il blog è basato su quanto offerto da google puoi diventare lettore fisso e credo che tu riceverai da google avviso su nuovi post.
EliminaPuoi anche mettere la spunta su Inviami notifiche sotto ai messaggi.
Saluti
Per quanto riguarda i contatti privati non so dirti. Ho provato a chiedere sul forum di assistenza ma non sono riuscito a risolvere.
EliminaL'unico modo e che tu pubblichi un commento dove mi dai una tua email e li ti posso contattare ( magari puoi usare una mail per questo uso ).
Io non trovo altro mezzo su questa piattaforma, potrei trovare con altre piattaforme dove potrei inserire un modulo per i contatti, ma qui non ci sono riuscito.
In ogni caso proverò a cercare di rendere possibile questa possibilità in quanto ci sono state più richieste di contatto privato.
Un saluto Sergio
Ottimo articolo. Anchio avrei necessità di contattarti. Come possso fare? Grazie Angelo
RispondiEliminaGrazie per il commento.
EliminaPer quanto riguarda i contatti privati non so dirti. Ho provato a chiedere sul forum di assistenza ma non sono riuscito a risolvere.
L'unico modo e che tu pubblichi un commento dove mi dai una tua email e li ti posso contattare ( magari puoi usare una mail per questo uso ).
Io non trovo altro mezzo su questa piattaforma, potrei trovare con altre piattaforme dove potrei inserire un modulo per i contatti, ma qui non ci sono riuscito.
In ogni caso proverò a cercare di rendere possibile questa possibilità in quanto ci sono state più richieste di contatto privato.
Un saluto Sergio
Credo che prenderò spunto per realizzare il mio ricevitore. Come ti contatto?
RispondiEliminaGrazie per il commento.
EliminaPer quanto riguarda i contatti privati non so dirti. Ho provato a chiedere sul forum di assistenza ma non sono riuscito a risolvere.
L'unico modo e che tu pubblichi un commento dove mi dai una tua email e li ti posso contattare ( magari puoi usare una mail per questo uso ).
Io non trovo altro mezzo su questa piattaforma, potrei trovare con altre piattaforme dove potrei inserire un modulo per i contatti, ma qui non ci sono riuscito.
In ogni caso proverò a cercare di rendere possibile questa possibilità in quanto ci sono state più richieste di contatto privato.
Un saluto Sergio
Ciao Sergio
RispondiEliminanell'uso della RTKLIB hai menzionato la necessita' della correzione RTCM ma nella configurazione dell'Input (Rover+Base Station) non hai menzionato (3) Correction.
Per avere una precisione centimetrica serve la Correction ? Grazie
Giorgio
Grazie per il commento.
RispondiEliminaHo utilizzato per la prova una configurazione Base - Rover ma in realtà la Base è solo virtuale ed rappresentata dai dati RTCM inviati con il collegamento internet ( in questo caso si parla di NTRIP).
Come pui vedere si tratta della determinazione di un punto in modo differenziale un ricevitore posto su coordinate note (Base) ed il rover che riceve i satelliti, i dati vengono inviati alla libreria RTKLIB che esegue i calcoli fino a trovare il FIX del rover. La base è su coordinate note e precise e quindi si ha anche sul rover la determinazione di un punto fisso di precisione centimetrica.
Questo dipende dalla rete alla quale ci si collega nel mio caso il server della rete che raccoglie i dati di molte stazioni base su punti noti elabora una stazione fittizia e quindi mi invia i dati dei satelliti.
Puoi infatti vedere nella schermata che ci sono in comune i satelliti 16,18,21,22,26,27,29 mentre il mio rover riceve il segnale anche da 8 e 31 che in questo caso vengono esclusi dal calcolo (colore grigio).
Si selezione 3 correction quando si ha a disposizione le sole correzioni.
Questa modalità essendo piu rapida è utilizzata per il rilievo dinamico o veloce.
preferibilmente occorre avere altra strumentazione
Rover che utilizza Codice + Fasi (L1+L2)
Si utilizza per Topografia, Catasto, tracciamento, rilievi di dettaglio.
Accuratezza migliore di 5 cm.
RTK
utilizzando base che trasmette al rover i messaggi di correzione , in tempo reale.
Preferibilmente per il posizionamento differenziale RTK si utilizza una coppia di
ricevitori geodetici a doppia frequenza ( L1+L2), collegati tra di loro mediante radio-modem.
Spero di aver chiarito il problema proverò a fare altre prove non ho in questo momento attivo il collegamento con la rete e quindi...
Ti ringrazio e ti saluto cordialmente.
Sergio
Ciao Sergio,
RispondiEliminaComplimenti per il blog e per il lavoro certosino che hai fatto in quest'articolo. Io sono un agricoltore e spesso ho pensato se Arduino potesse aiutarmi a realizzare un sistema low cost di base per la guida parallela con precisione nell'ordine dei 5-10 cm...per ora pensavo ad un semplice sistema con barra a led che mi indicasse il mantenimento della giusta direzione. Mi sono recato da vari rivenditori ma i prezzi sono inaccessibili...specialmente per me che sono interessato, per ora, alla sola guida parallela. Potresti suggerirmi qualche sistema low cost già disponibile o in alternativa se sia possibile realizzarlo con i componenti disponibili di Arduino?
Grazie mille.
Nazareno
Grazie per il commento.
EliminaFarò ricerche su questo. Mi sapresti indicare la grandezza dell'appezzamento che ti interessa lavorare?
Si potrebbe studiare un meccanismo basato su sensori inerziali.
A tutti quelli che ci leggono, se avete idee o conoscete sistemi low cost lasciate un commento.
Grazie
Sergio
Buona sera signor Sergio,
RispondiEliminasono anche io un agricoltore interessato ad un sistema gps rtk "economico". Un agricoltore canadese, che ha un canale youtube FarmerBryanTee, ha creato un software chiamato Agopengps che permette la guida autonoma del trattore, banalmente seguire una linea retta e svoltare a fine campo. Commentando un suo video, lo youtuber mi ha risposto e consigliato di utilizzare un gps economico il simpleRTK2B, basato sul chip ublox m8p, dal costo veramente contenuto, circa 228 euro per ricevitore e antenna da esterno. Per capirci un po' di più ho voluto comunque provare ad acquistare un ublox 6, come quello da lei utilizzato. Ho ottenuto i dati di accesso alla rete gps veneto, che in teoria dovrebbe consentirmi di ricevere i dati per il miglioramento della precisione. Volevo sapere secondo lei è possibile utilizzare lo ublox 6 collegato al pc attraverso l'applicazione ublox center ed ottenere aggiustamenti della posizione in tempo reale? ho visto un video su youtube in cui era possibile farlo in maniera piuttosto semplice, ma utilizzavano il modello u-blox neo m8p.
https://www.youtube.com/watch?v=zcoSOAH-S5Y questo è il link del video
la ringrazio
Gianluca R.
Ciao!
EliminaBenvenuto sul blog.
Grazie per il commento.
Economico si ma con ublox 6 non sono disponibili i dati grezzi, la libreria RTKLIB, l'unica a mia conoscenza disponibile in open source.
Ha bisogno dei dati grezzi. Se guardi infatti io ho utilizzato ublox Neo 7P, sicuramente più costoso del 6, ma anche con quello ho potuto realizzare un punto RTK,
in modo più vicino allo statico, ci sono voluti alcuni minuti prima del FIX.
Inoltre io ho utilizzato un pc con i dati NTRIP (da rete).
Quindi credo poco proponibile da portare il tutto su trattore...
Ti consiglio di visitare il sito di questi ragazzi https://emlid.com
Mi sembra che facciano cose adatte al tuo scopo.
Ti sarei grato se vai avanti con il tuo progetto di contattarmi anche sul blog.
Per sapere se e come procede il progetto.
Credo che attualmente il modello neo m8p sia il successore più aggiornato del 7P che avevo utilizzato io.
Fammi sapere anche se non riesci.
Probabilmente finiti i lavori che mi stanno impegnando riprenderò in mano la questione... ( ma non so darti o darmi un'idea di quando lo potrò fare).
Un saluto
Sergio
Buonasera signor Sergio,
RispondiEliminail progetto sta andando avanti e diciamo che la parte hardware, che consiste in un motore di trapano elettrico comandato da arduino e della sensoristica per misurare angolo di sterzata del trattore, funziona alla grande. Seguendo le indicazioni che ho trovato nel blog di AgopenGPS, ho acquistato da un negozio USA il ricevitore gps u-blox neo M8T che in teoria dovrebbe darmi i dati grezzi che mi servono. Ora non sono sicuro che funzionerà, appena mi arrivano tutti i componenti procederò con l'assemblaggio e verificherò se riesco ad usare correttamente l'NTRIP fornito dalla rete gps Veneto. Spulciando qua e la nel web ho trovato chi è riuscito nell'impresa ma ho veramente poche conoscenze dell'argomento gps RAW data eccetera. Sto procedendo a tentativi quanto più possibile ragionati.
Cordiali saluti
Gianluca R.
Ottimo!
EliminaIL neo M8T dovrebbe essere utilizzabile dalla RTKLIB.
Per utilizzarla segui le indicazioni di questo blog o meglio quanto dice Agopen.
Credo che ci siano altri lettori interessati al tuo progetto.
Saluti
Sergio.
Buonasera signor Sergio,
RispondiEliminami è arrivato il gps e sto facendo dei tentativi per impostarlo come ha fatto lei per l'ublox 7p, purtroppo impostando rtknavi come ha fatto lei non riesco ad ottenere alcuna coordinata. Rtknavi mi mostra l'istogramma che si vede nelle foto che ha messo nella pagina del blog, ma la maschera riassuntiva di sinistra mostra coordinate fisse a zero e nessun tipo di Solution. Devo cambiare qualche impostazione? tramite Ublox center riesco ad ottenere le coordinate ed ho pure impostato il gps per i dati raw.
cordiali saluti
Gianluca R.
Buona sera.
EliminaHo controllato nella lista dei ricevitori che possono essere utilizzati con RTKLIB e si vede chiaramente compreso anche M8T ( qui sotto estratto lista)
Supported receivers
Receiver overview
Brand Device Supported frequencies
SkyTraq S1315F Single frequency GPS
SkyTraq NS-RAW Single frequency GPS
SkyTraq NS-HP Single frequency GPS
NVS NV08C BINR Single frequency GPS
U-blox LEA-6T Single frequency GPS
U-blox LEA-5T Single frequency GPS
U-blox LEA-4T Single frequency GPS
U-blox NEO-6T Single frequency GPS
U-blox NEO-6P Single frequency GPS
U-blox EVK-6P Single frequency GPS
U-blox EVK-7P Single frequency GPS
U-blox EVK-M8T Single frequency GPS
NovAtel OEM4/V/6, OEM3, OEMStar and Superstar
Controlla:
Su RTK NAVI ti appaiono gli istogrammi dei satelliti visti dalla rete e visti dal tuo ricevitore?
Devono apparire tutti e due.
Vedi scorrere i quadretti verdi in alto a sinistra?
Apri anche RTK monito e RTK plot per avere maggiori informazioni e capire dove può essere il problema.
Fai queste prove e fammi sapere o invia le scheramate.
Sul blog clicca sopra le immagini le vedrai con più dettaglio.
Non so cosa altro consigliarti.
A presto
Sergio.
Opps quadretti verdi in alto a destra.
EliminaBuonasera signor Sergio
RispondiEliminasono riuscito ad ottenere il fix con successo, sia in modalità statica che cinematica. Questa dovrebbe essermi utile mentre uso AGopenGPS. Ho scaricato la versione rtklib 2.4.3 b29e e utilizzato i file di configurazione presenti per il mio ublox m8t, in particolare ho scelto il file m8t 5hz usb. tramite poi Rtknavi ho impostato correttamente l'ntrip riportando anche le coordinate del mountpoint. Infine nei settings sono partito da quelli che ha usato lei per poi cambiare alcuni parametri, dopo una ricerca in internet. Ora credo di essere sulla buona strada per ottenere la precisione che mi serve, infatti ho effettuato alcune prove montando l'anntenna gps sulla macchina e girando un po' per la mia zona. Ho collegato il pc all'hotspot del mio telefono per ricevere le correzioni, devo dire che il risultato è un po troppo instabile, infatti non sono riuscito ad ottenere percentuali di fix superiori al 30%. Nel sito rtkexplorer hanno eseguito dei test con lo stesso chip e hanno ottenuto risultati nettamente superiori, qualcosa nell'ordine del 95% fix! Ora ho collegato il segnale corretto proveniente da rtknavi al software AGOPENGPS sfruttando la connettività udp presente nel programma, ho fatto si che rtknavi mi creasse un file di ouput con dati NMEA che poi ho trasferito alla porta UDP del programma tramite l'applicazione di rtklib chiamata STRSVR. In realtà non avrei voluto creare un file ma piuttosto una sorta di server virtuale, purtroppo però non ci sono riuscito, mi dava sempre errore per un conflitto di indirizzi.
Tirando le somme però, direi che ci sono quasi, vorrei dedicarci molto più tempo e soprattutto mi sono reso conto che se non utilizzo un sistema di sterzata autonoma sul trattore tanto vale continuare a basarsi sulla classica guida a vista.
cordiali saluti
Gianluca R.
Buongiorno.
EliminaSono molto contento dei risultati che hai ottenuto.
Questo mi conferma che avevo visto giusto sulla possibilità di ottenere precisione di misura con costi raggiungibili.
I costi elevati di apparecchiature professionali si giustificano solo per impieghi specialistici in cartografia, o controllo di strutture.
Ti ringrazio del tuo contributo che pubblico molto volentieri.
Credo che sarà utile anche ad altri utenti che visitano questo post.
Scrivi se vuoi ulteriori sviluppi e risultati.
Cordiali saluti
Sergio
Buongiorno Sergio,
RispondiEliminaho letto il tuo articolo e mi complimento con te.
vorrei chiederti un aiuto per costruire un
ricevitore GNSS low-cost.
Penserei di usare Modulo EVAL ricevitore GNSS ZED-F9P, ma ho bisogno di aiuto per capire come completare l'attrezzatura.
Potresti aiutarmi e dedicarmi un po' del tuo tempo.
Lo scopo di questa mia esigenza è il rilevamento dei punti a terra GCP per la fotogrammetria.
Attendo tua gentile risposta.
Cordiali Saluti
Alessandro
Ciao Alessandro, hai per caso portato a compimento il tuo progetto? potresti condividere la tua esperienza qui sul blog di Sergio (grandissimo....attendo con anzia tuoi aggiornamenti). grazie. Fausto
EliminaBuongiorno. Grazie per il commento. In questo periodo non posso seguire molto il blog, ma cercherò di rispondere a tutti.
RispondiEliminaLo ZED-F9P è molto interessante ed anche relativamente economico. Non capisco bene cosa intendi per EVAL; forse un kit per la valutazione tipo quello venduto da digikey?
Di quale "attrezzatura " stai parlando?
Devi determinare punti a terra GCP per un piccolo rilevo da fare con droni oppure si tratta di fotogrammetria per ampie zone?
Fammi sapere
Buongiorno, lavoro davvero interessante.
RispondiEliminaStò cercando di realizzare (per scopo personale), una bussola che punta non al nord, ma ad un oggetto. Una vera e propria bussola stile jack Sparrow.
Ci vorrà quindi un sistema GPS in cui inserire le coordinate da seguire, e un qualcosa che riesca a ruotare la bussola nella giusta direzione; immagino un semplice motorino.
Non avendo molta esperienza con questo tipo di cose, chiedo se sia possibile e come realizzare questo progetto! Grazie.
Scusatemi tutti ma ho perso molti mesi e solo ora torno ad aggiornare questo blog.
EliminaPer quanto riguarda il tuo progetto mi sembra molto interessante.
Non so se io ho le capacità di portarlo avanti, ma se c'è qualcuno che ci legge e pensa di poterlo realizzare lasci un commento a questo post.
Buonasera, mi complimento per il blog, lo trovato molto interessante.
RispondiEliminaVolevo chiedere un informazione in merito al test con l'Ublox 6M, in particolare volevo chiedere la precisione che sei riuscito a raggiungere.
Mi collego poi all'ultimo commento che è stato fatto, sto preparando una tesi che sfrutta dei modelli 3D fatti con un drone, e vorrei trovare un modo per ottenere le coordinate dei target GCP posizionati a terra, sfruttando Arduino.
La precisione che mi serve è centimetrica, vorrei capire se questi progetti sono adatti al mio scopo.
Grazie in anticipo
Pietro
Scusami ma solo ora leggo questo commento in ogni caso la precisione che si può ottenere con la libreria RTKLIB è dell'ordine dei 5 centimetri
RispondiElimina