Recentemente ha guadagnato le luci della ribalta una tecnica per il posizionamento denominata CO-GPS dove "CO" sta per Cloud-Offloaded. La tecnica, dei laboratori di ricerca Microsoft, promette di ridurre drasticamente i consumi il posizionamento arrivando a consumare cosi' poco da poter tracciare il device per 1,5 anni con due semplice batterie AA.
A prima vista sembrerebbe un risultato eccezionale, motivando cosi' il grande clamore che si e' scatenato in rete a proposito del CO-GPS (qualche esempio di articoli presi un po' a caso: Tomshw.it, webnews , pianetatech.it).
Cerchiamo di vedere piu' in dettaglio in cosa consiste questo CO-GPS e quanto sia il risparmio energetico effettiva comparato a un normale GPS.
Non mi addentrero' in tecnicismi approfonditi, per non complicare troppo la lettura, ma mi limitero' a dettagliare meglio il funzionamento della tecnica e delle sue condizioni di utilizzo fondamentali per capirne le caratteristiche e quali siano effettivamente i consumi comparati (i calcoli saranno ridotti allo stretto necessario).
L'articolo, dove e' spiegata in dettaglio la tecnica, si trova a questo indirizzo:
http://research.microsoft.com/apps/pubs/default.aspx?id=172624
Facciamo un brevissimo riassunto di come funziona il GPS e di come funziona il CO-GPS per capire meglio.
GPS - Sappiamo che il ricevitore deve ricevere segnale di piu' satelliti per calcolare la posizione e di ciascun satellite deve anche scaricare le effemeridi. Assumendo che il ricevitore sia stato appena acceso e non abbia effemeridi recenti, ci vorranno circa 30 secondi per avere il primo calcolo valido della posizione (con consumi notevoli).
CO-GPS - Questa tecnica non calcola la posizione a bordo del device, ma si limita a registrare piccole quantita' di dati che vengono analizzati attraverso il Cloud. In questo modo, si evita di dover effettuare tracking dei satelliti e grandi quantita' di calcoli per determinare la posizione.
Vediamo un po' piu' in dettaglio il confronto tra CO-GPS e GPS, considerando in particolare come e' stata fatta la comparazione dei consumi di cui si asserisce essere solo lo 0.04% rispetto alle normali soluzioni GPS.
L'introduzione dell'articolo indica i consumi di un GPS un ricevitore che al giorno d'oggi possiamo considerare antiquato: 460mW! I moderni ricevitore GPS consumano a 1Hz meno di 1/10 (es: u-blox NEO6 consuma solo 22mW con fix rate di 1Hz). Anche senza prendere come riferimento il u-blox, vediamo come i 460mW indicati non siano esattamente in linea con i consumi dei moderni ricevitori.
CO-GPS paragona il consumo del primo fix GPS a tutti i successivi. Considerando lo scenario «GPS sempre acceso» sappiamo pero' che una volta che le effemeridi sono state scaricate, il fix successivo richiedera' molto meno energia del primo. Potremmo quindi approssimare l'energia dei fix successivi a 1/30; in realta' i fix successivi sono ancora meno dispendiosi perche' durante la fase di start il ricevitore necessita di molta energia per fare la ricerca dei segnali dei satelliti, ma ne necessita di molta meno per fare tracking sui segnali stessi una volta che sono stati acquisiti.
(Sarebbe da considerare inoltre che usando opportune tecniche di A-GPS online e offline, e' possibile ridurre comunque il tempo del primo fix e quindi i relativi consumi)
Rifacciamo i calcoli. CO-GPS dichiara 0.497 mJ per 2ms di segnale (per avere accuratezza di 35m, servono 10ms quindi approssimiamo a 2,5mJ).
Consideriamo un moderno ricevitore che consuma circa 40mJ per lavorare a 1 fix al secondo, CO-GPS consuma il 6% rispetto al GPS. Sicuramente interessante, ma un po' lontano da quello 0.04% indicato genericamente in certi articoli.
Considerando invece il caso Cold start, un normale ricevitore GPS impiega 30 in autonomia e 6 secondi con assitenza consumando quindi rispettivamente 1,2J e 240mJ. Abbiamo quindi un consumo per CO-GPS che varia da 0.2% a 1.2% rispetto a GPS. Indubbiamente molto interessante, ma non si tratta del caso generale di 1 fix al secondo.
Lo 0.04% si ottiene solo nel caso in cui il GPS effettui un cold start autonomo, impiegando circa 30 secondi e che si utilizzi CO-GPS con soli 2ms di dati (con impatti negativi sull'accuratezza della localizzazione).
Lo 0.04% di energia confrontato al GPS che ha generato molto hype si riferisce quindi a uno scenario molto particolare e non usuale, se consideriamo che le tecniche di assistenza al GPS sono molto ormai diffuse ed efficienti e che nello scenario di un 1 fix al secondo i consumi totali del GPS sono molto minori del caso di singolo fix da Cold start.
Consideriamo un'altra cosa molto importante: i calcoli relativi all'energia utilizzata dal CO-GPS non considerano l'energia necessaria al trasferimento di tali dati attraverso il cloud, ma solo l'energia necessaria all'immagazzinamento dei dati che saranno poi processati.
Se dovessimo quindi tenere conto dei consumi dovuti al trasferimento, ovviamente questa proporzione varierebbe ancora e il vantaggio del CO-GPS rispetto al GPS tradizionale si ridurrebbe ulteriormente, in particolare per il caso di fix rate di 1Hz.
Dall'articolo originale si puo' vedere come si possa bilanciare l'accuratezza del calcolo della posizione con la quantita' di dati da immagazzinare. Per una accuratezza di 35 metri, servono circa 40Kbytes di dati (equivalenti a 10ms di dati grezzi di cui sopra).
Facciamo un rapido calcolo e vediamo cosa significhino i 18mesi di tracking.
365 giorno l'anno per 1,5 anni sono: 547,5 giorni, equivalenti a 47.304.000 di secondi. (547,5 * 24 * 3600)
Siccome sono necessari 40 Kbytes per ciscuna posizione, avere una posizione al secondo per 1,5 anni significa immagazzinare quasi 2 Terabyte di dati.
Ovviamente possiamo pensare di trasferire e calcolare attraverso il Cloud dati un po' alla volta, ma ricordiamoci che i consumi del CO-GPS sono calcolati senza contare l'energia necessaria a trasferire i dati al Could (e sappiamo bene quanto usare la rete dati consumi la batteria...)
La tecnica proposta da Microsoft e' comunque molto interessante, perche' propone varie tecniche per determinare la posizione basandosi su piccole osservazioni del segnale GPS ed e' ottimale per realizzare dei dispositivi di tracciamento a consumi ridottissimi (alimentabili ad esempio da piccole celle solari) con buona accuratezze , ma al momento non e' molto adeguata in altri ambiti. Un esempio e' proprio il tracciamento di animali selvatici, a cui la tecnica e' particolarmente adatta (e il nome CLEO del ricevitore CO-GPS ne indica l'affinita: Cultivating the Long tail in Environmental Observations)
In altri casi, come la navigazione con mappe, la tecnica non porterebbe gli stessi benefici (e introdurrebbe alcuni problemi, come per esempio la latenza dovuta al cloud).
Nota: ho volutamente approssimato vari calcoli e condizioni per evitare di complicare troppo la lettura, ma sono ben felice di approfondire se necessario. Usate i commenti per domande e approfondimenti.
Per maggiori dettagli sulle varie tecniche di A-GPS potete invece consultare un precedente articolo: GPS Assistito (Assisted GPS)
Grazie per l'articolo interessante e ben fatto. Una lettura piacevole.. anche se forse sarebbe stata più fruibile in Inglese :) Michele
RispondiEliminaGrazie a te Michele, fa piacere che qualcuno apprezzi (soprattuto se del campo, mi pare!) :)
EliminaPer quanto riguarda l'inglese, diciamo che ci ho pensato ma per motivi di tempo non riesco a gestire anche una versione inglese.
Considerato che in inglese le fonti sull'argomento GNSS sono molte, ho pensato che la versione italiana potrebbe essere piu' utile. Non che io pensi che il mio mio umile blog sia qualcosa di particolarmente divulgativo eh...pero' magari un piccolo contributo... :)