Dipartimento di Matematica e Informatica
Corso di Laurea in Informatica
Progettazione e Realizzazione di un
Cruscotto Virtuale Geolocalizzato per
Android
Relatore:
Prof. Federico Bergenti
Correlatore:
Ing. Andrea Terzi
Candidato:
Morsia Erica
Matricola: 221401
Anno Accademico 2013/2014
Ai miei angeli
Indice
1 Introduzione
5
2 Tecnologie di geolocalizzazione
2.1 Analisi delle tecnologie utilizzabili
2.1.1 GPS . . . . . . . . . . . .
2.1.2 GLONASS . . . . . . . . .
2.1.3 GPS Assistito . . . . . . .
2.2 Tecnologie future . . . . . . . . .
2.2.1 Galileo . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
10
10
13
17
21
21
3 Un Applicazione di Tracking
24
3.1 Analisi e specifica dei requisiti . . . . . . . . . . . . . . . . . . 24
3.2 Progettazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4
Capitolo 1
Introduzione
Il progetto di questa tesi consiste nel creare un’applicazione per Android
che visualizzi un cruscotto, utilizzabile dal proprio smartphone o tablet, che
sfrutti le tecnologie di geolocalizzazione per fornire informazioni all’utente.
Un’applicazione di geolocalizzazione è un’applicazione che sfrutta la capacità
del dispositivo di rilevare la propria posizione geografica nel mondo reale per
dare all’utente informazioni o nuove funzionalità.
Il progetto dell’applicazione MotoSpeed è nato dall’idea di creare un cruscotto virtuale che sfrutta la geolocalizzazione per ottenere le informazioni;
pensato principalmente per i motoveicoli (motocicli, ...), ma utilizzabile con
qualsiasi veicolo oppure a piedi. L’applicazione è stata richiesta per la piattaforma Android, utilizzabile sia su tablet che su smartphone.
La funzione principale dell’applicazione consiste nel rintracciare, attraverso la geolocalizzazione, la posizione dell’utente in modo più preciso possibile
e, grazie alle informazioni del dispositivo, individuare coordinate geografiche, altitudine, velocità. Sfruttando i dati raccolti dal dispositivo possiamo
calcolare la distanza percorsa, la velocità media e quella massima. Inoltre è
previsto anche un allarme, impostabile dal cliente, sul chilometraggio. Questo allarme è nato come avviso per il conducente, per le motociclette non
previste di sensore per il rifornimento, in modo che possa essere impostato
con il chilometraggio che manca per il prossimo rifornimento. Attualmente
l’allarme è solo visivo. Non è necessario utilizzare tale allarme esclusivamente come notifica per il rifornimento, può anche essere usata, infatti, come
semplice avviso di superamento del limite di chilometraggio impostato. È
stata prevista anche l’opzione di ripetere la notifica visiva ogni 5 km dall’attivazione del primo allarme.
5
CAPITOLO 1. INTRODUZIONE
Per rendere l’applicazione ancora più interessante è stato previsto un tracking del percorso con il salvataggio del tracciato in 3 formati differenti: .csv
(formato compatibile con Microsoft Excel), .kml (formato compatibile con
Google Earth) e .gpx (formato compatibile con i navigatori satellitari). In
questi file viene salvato il percorso istante per istante in modo tale che: nel
primo (.csv) si abbia un diario di bordo dettagliato con tutte le informazioni visibili in quel momento sul cruscotto (data, orario, coordinate, velocità
attuale, velocità media, velocità massima, distanza percorsa fino a quel momento, ...); negli altri due file (.kml e .gpx) venga registrato il percorso in
modo tale che si possa visualizzare il tracciato attraverso altre applicazioni
o altri dispositivi.
Esistono attualmente altre applicazioni per i dispositivi Android che hanno utilizzi simili, ma non raggruppano tutte queste funzionalità insieme. La
funzione che caratterizza l’applicazione è la presenza dell’allarme per il rifornimento. Confrontiamo la nostra applicazione con altre facilmente reperibili
su Google Play con funzionalità simili:
• esistono applicazioni che mostrano il tracciato percorso, ma che non
salvano i file dove poterlo visualizzare in un secondo momento;
• altre permettono di vedere la velocità media, massima e attuale, la
distanza percorsa ma che non hanno la possibilità di salvataggio del
percorso.
La nostra applicazione è utilizzabile con ogni mezzo di trasporto. È possibile
utilizzarlo anche come conta chilometri da passeggio, esistono già applicazioni specifiche per le passeggiate, che si basano però sul moto ondulatorio
del passo, quindi meno precise nel calcolare i chilometri percorsi. Con Motospeed invece si può vedere quanta strada è stata percorsa: è possibile, inoltre,
visualizzare in un secondo momento il tracciato della passeggiata, utile anche per le escursioni a piedi o in bicicletta, in quanto traccia esattamente il
percorso non necessariamente sul manto stradale.
Questa applicazione non è nata come navigatore, ma si possono usare i file
creati per vedere l’itinerario percorso oppure, scaricati su appositi dispositivi,
usare il tragitto salvato in precedenza come tracciato per il navigatore.
Esistono poi applicazioni per la ricerca degli hotel o dei punti di interesse
nelle città, oppure degli autovelox. Motospeed, nella versione base attuale,
non implementa questa funzionalità. L’applicazione verrà interfacciata in un
secondo momento con un database contenente i principali punti di interesse
delle città: hotel, ristoranti, autovelox e stazioni di servizio. Quest’ultimo
6
CAPITOLO 1. INTRODUZIONE
punto in modo particolare dato il target dell’applicazione rivolto principalmente a conducenti di moto e automobili.Si aggiungerà, inoltre, la possibilità
di salvare, attraverso l’interfaccia, i nuovi punti di interesse o autovelox, condivisibili con altri utenti.
Attualmente l’applicazione è disponibile sul Google Play gratuitamente nella
versione di base, senza pubblicità ( dettagli in Fig.1 e Fig.2 ). Le funzionalità
future saranno abilitate nella versione a pagamento con anche la possibilità
di login con l’accesso ai propri dati e statistiche anche da pc attraverso un
portale in modo da poterli condividere con amici e altri utenti.
Per garantire una precisione adeguata per il salvataggio dei dati si sono
studiati le tecnologie di geolocalizzazione, vediamo in dettaglio.
7
CAPITOLO 1. INTRODUZIONE
Fig. 1: Ricerca di MotoSpeed in Google Play.
Fig. 2: Descrizione di MotoSpeed su Google Play.
8
Capitolo 2
Tecnologie di geolocalizzazione
La geolocalizzazione è l’identificazione della posizione geografica nel mondo
reale di un dato oggetto. Esistono attualmente varie tecnologie che permettono la localizzazione, tra le più conosciute e utilizzate possiamo elencare il
sistema GPS, il sistema GLONASS, la localizzazione tramite la rete telefonica e tramite Internet.
Le tecnologie di geolocalizzazione sono utilizzate in un ampia gamma di settori che spaziano dagli utilizzi militari (guida di missili intelligenti, tracciamento di traiettorie per azioni militari ...) a quelli civili. Negli ultimi decenni
la geolocalizzazione per scopi civili ha avuto un grande sviluppo, ampliando a dismisura i campi in cui è utilizzata. Possiamo infatti trovare aziende
specializzate in software per l’utilizzo della geolocalizzazione in molti settori.
Nell’agricoltura, ad esempio, la localizzazione satellitare viene utilizzata per
guidare trattori nei campi attraverso percorsi predefiniti calcolati in precedenza in modo da ottimizzare la coltura. Le industrie attraverso dispositivi
e software appositi possono tracciare i materiali spediti o da spedire in modo
da gestire le tempistiche e mantenere la tracciabilità dei prodotti.
In campo nautico e aeronautico vengono usate le tecnologie di geolocalizzazione per tracciare le rotte dei veicoli e monitorare il traffico. Inoltre ogni
veicolo contiene almeno una scatola nera che registra tutti i dati comprensivi
di coordinate geografiche ricavate da un dispositivo interno per la localizzazione.
Vengono utilizzate le tecnologie di geolocalizzazione anche dai soccorsi alpini
per rintracciare i dispersi sotto le valanghe o nei boschi, la guardia forestale
può usarli per scoprire e monitorare i percorsi e le migrazioni degli animali
per studiare il loro comportamento.
Agenzie di assicurazione hanno iniziato ad installare dispositivi di localizzazione sulle automobili e altri veicoli per poter rintracciare il mezzo in caso di
9
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
furto o incidente in modo da indicare alle autorità competenti la posizione
precisa.
La diffusione dei navigatori satellitari rende l’utilizzo delle tecnologie di geolocalizzazione un’abitudine di molte persone. Grazie alla diffusione degli
smartphone si è iniziato a creare applicazioni non solo per la la navigazione,
ma anche per trovare informazioni relative a punti di interesse vicino alla
propria posizione, sia per scopi turistici come gli hotel, ma anche quotidiani
come, ad esempio, le stazioni di servizio.
2.1
Analisi delle tecnologie utilizzabili
Per la nostra applicazione abbiamo studiato le tecnologie utilizzabili attraverso i dispositivi Android: localizzazione GPS e GLONASS, localizzazione
attraverso la rete cellulare e la localizzazione attraverso le reti WiFi.
Per poter sfruttare la localizzazione mentre si è in viaggio abbiamo scartato
la tecnologia di localizzazione tramite la rete WiFi, in quanto non esistono
reti WiFi estese su tutto il territorio.
Analizziamo quindi le tecnologie utilizzabili.
2.1.1
GPS
Il GPS (acronimo di Global Positioning System) è un sistema di posizionamento e navigazione satellitare che fornisce la posizione e l’orario ai ricevitori
GPS, questi possono essere dispositivi per la navigazione, ma anche pc, telefoni cellulari e smartphone. La localizzazione GPS è utilizzabile ovunque,
sia sulla terra che nelle immediate vicinanze, in cui vi sia un contatto con
almeno 4 satelliti del sistema GPS.
La localizzazione avviene tramite la trasmissione di un segnale radio da parte
di ciascun satellite e l’elaborazione dei valori ricevuti da parte del ricevitore.
Il sistema fornisce funzionalità militari e civili e viene gestito, mantenuto e
reso accessibile a tutti dal governo degli Stati Uniti d’America. Il servizio
fornito può essere utilizzato da chiunque abbia un dispositivo di ricezione
GPS.
10
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
Fig. 3: Ricostruzione orbite satelliti del sistema GPS.
È nato nel 1973 dal dipartimento di difesa degli Stati Uniti, il progetto
del GPS doveva infatti superare i limiti dei sistemi di navigazione precedentemente usati. Nel 1991 il servizio fino ad allora usato solo per scopi militari fu
reso disponibile anche per usi civili, i due tipi di utilizzo sono però separati:
PPS (Precision Position System) utilizzato dall’esercito statunitense e SPS
(Standard Position System) per usi civili, commerciali e scientifici.
Per mantenere separati questi utilizzi vengono usati due diversi canali di trasmissione. Nel canale dedicato agli usi civili il Selective Availability (SA)
introduceva errori intenzionali in modo da avere precisioni minori, errori di
circa 100 metri dalla posizione effettiva. Dal 2000 è stata aumentata la precisione per il servizio civile, ma sono stati introdotti dei limiti in modo che
non si riesca a monitorare le operazioni militari attraverso SPS.
Attualmente gli USA stanno lavorando alla nuova generazione di GPS (GPS
III) con tecnologie sempre più moderne e nuove funzionalità.
La struttura del GPS si divide in tre parti:
• Space Segment;
• Control Segment;
• User Segment.
Lo Space Segment è composto dai satelliti GPS. I satelliti del sistema GPS
sono nella fascia MEO (Medium Earth Orbit), attualmente ci sono 32 satelliti
GPS in orbita, il sistema iniziale prevedeva solo 24 satelliti divisi in 6 orbite
separate, all’aumentare dei satelliti, utili per la ridondanza delle informazioni
e per la precisione, si è abbandonato l’iniziale costellazione è stata modificata secondo uno schema non uniforme, mostrato in Fig.3, che si è dimostrato
maggiormente affidabile in caso di guasti contemporanei a più satelliti.
11
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
Il Control Segment è composto da:
• una stazione di controllo principale (Master Control Station);
• alcune antenne terrestri dedicate;
• stazioni di controllo dedicate.
La stazione di controllo principale accede a tutte le antenne e le stazioni dedicate al GPS e anche a certe antenne della rete satellitare dell’aeronautica
militare statunitense per ottenere capacità di controllo e comando aggiuntive.
Le stazioni di controllo dedicate, insieme ad altre stazioni della NGA (National Geospatial-Intelligence Agency) condivise con altri paesi del mondo, controllano le traiettorie dei satelliti. Le informazioni ricavate vengono inviate
alla stazione di controllo centrale che, grazie alle antenne terrestri, comunica
con i satelliti per i necessari aggiornamenti: sincronizzazione degli orologi
atomici a bordo dei satelliti e migliorare la traiettoria. Durante la fase di
comunicazione e di aggiornamento il satellite viene disattivato in modo che i
terminali degli utenti non possano ricevere informazioni distorte.
Il segmento utente (User Segment) è composto da tutti i ricevitori militari
che usano il servizio PPS e tutti i ricevitori civili, commerciali e scientifici
che usano il servizio SPS.
Il sistema GPS si basa su un sistema di posizionamento sferico, che parte
dalla misura del tempo impiegato dal segnale radio a percorrere la distanza
satellite-ricevitore.
Fig. 4: Posizionamento attraverso il sistema GPS.
12
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
Tutti i satelliti GPS al loro interno hanno un orologio atomico molto stabile e sincronizzato dalla stazione di controllo principale con tutto il resto del
sistema. I satelliti, quando attivi, continuano ad trasmettere in broadcast la
loro posizione e l’orario segnato dal loro orologio interno.
I ricevitori GPS, tutti i dispositivi sia di uso militare che civile, monitorano
più satelliti, almeno quattro, ricevono le informazioni dei segnali inviati per
trovare la propria posizione. Grazie alle informazioni captate il ricevitore
calcola attraverso algoritmi (chiamati Navigation Equations) la propria posizione in tre dimensioni convertita poi in coordinate geografiche (latitudine,
longitudine e altitudine). Queste coordinate sono misurate su un modello
elissoidale della Terra, in futuro sarà possibile calcolarle sul modello di un
geoide, molto più vicino alla realtà.
Sono necessari almeno quattro satelliti visibili dalla posizione dell’utente,
in quanto si devono ricavare le tre coordinate: latitudine, longitudine e altitudine, ma bisogna controllare anche il tempo, infatti il sistema GPS è
sincronizzato con orologi atomici di altissima precisione, i dispositivi che ricevono le informazioni però non hanno al loro interno orologi cosı̀ precisi.
Se i ricevitori GPS avessero al loro interno un orologio atomico come quelli
utilizzati dai satelliti GPS, per calcolare la posizione dell’utente basterebbero
solo tre satelliti visibili, ma il tipo di equipaggiamento richiesto aumenterebbe di troppo il costo e la complessità dei dispositivi dei clienti.
Le applicazioni più diffuse del sistema GPS in campo civile sono:
• navigatori satellitari (terrestri e nautici);
• applicazioni per emergenze e/o soccorso (segnalazione di incidenti, infortuni, incendi, ...);
• attività sportive all’aria aperta (trekking, alpinismo, cicloturismo, ...).
2.1.2
GLONASS
Un altro sistema di geolocalizzazione è GLONASS (GLObal NAvigation Satellite System), è un sistema satellitare di navigazione globale russo, controparte del sistema GPS americano. GLONASS è gestito e monitorato dall’esercito russo.
Il progetto di GLONASS nasce negli anni ’80 come sistema di localizzazione
per scopi militari. L’Unione Sovietica era impegnata nella guerra fredda in
quegli anni e il lancio dei primi satelliti fu mascherato come progetto per
determinare la posizione degli aeromobili per l’aviazione civile, dei trasporti
13
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
marittimi e pescherecci dell’Unione Sovietica.
Nel 1995 fu completato il lancio di tutti i satelliti previsti dal progetto iniziale. GLONASS era molto efficiente per il posizionamento dei terminali fermi
o in movimento molto lento, ma non era altrettanto affidabile sui dispositivi
mobili in quanto serviva molto tempo per riuscire ad acquisire il segnale, si
parla anche di ore, e quando si riusciva ad ottenere una connessione stabile
con il sistema la localizzazione era approssimata con scarti di centinaia di
metri.
La Russia negli anni successivi fu vittima di una grave crisi finanziaria che
portò all’accantonamento del progetto, non avevano fondi nemmeno per mantenerlo attivo, infatti nel 2002 era operativa solo una piccola parte, con molti
satelliti fuori uso e senza la possibilità di lanciarne altri. Negli anni successivi, grazie ad accordi economici con altri paesi e la fine della crisi economica
interna, si riprese a lavorare al GLONASS lanciando in orbita satelliti di nuova generazione. Nel 2006 venne messo a disposizione dei civili il GLONASS
con delle restrizioni di posizionamento: l’accuratezza per gli scopi militari
era di 10 metri, mentre per scopi civili aumentava a più di 20 metri. L’anno successivo venne liberalizzato il sistema GLONASS in modo che civili e
militari avessero lo stesso servizio, senza restrizioni di alcun tipo e in modo
gratuito. Qualche anno dopo, intorno al 2010 il sistema GLONASS tornò
pienamente operativo.
Il principale problema del sistema GLONASS era la diffusione dei ricevitori:
erano infatti molto costosi e poco reperibili, per questo intorno al 2011 si
iniziarono a fare i primi accordi con i produttori di ricevitori GPS in modo
da crearne dei nuovi compatibili anche con il sistema GLONASS. Il governo
russo pianificò anche l’utilizzo forzato del sistema GLONASS nei dispositivi
montati sulle automobili russe, ma anche in quelle di case automobilistiche
straniere con stabilimenti per la produzione in Russia.
Dal 2012 la compatibilità dei dispositivi di geolocalizzazione con il sistema
GLONASS è diventata una caratteristica comune grazie all’introduzione della
compatibilità del sistema nei chip maggiormente utilizzati per la produzione
di smartphone e tablet. Il supporto del sistema GLONASS è garantito da
produttori di smartphone come ad esempio Apple (iPhone), Samsung (principalmente la serie Galaxy) e Nokia (Lumia), anche se negli ultimi dispositivi
che montano come sistema operativo Android 4.4 (Kit Kat) sono stati rilevati
dei problemi nel supporto del sistema GLONASS al contrario dei precedenti.
Il sistema GLONASS è formato da 31 satelliti, di cui 24 operativi e altri
di scorta per i guasti, orbitanti nella fascia MEO ad un altitudine più bassa
di quelli del sistema GPS. I satelliti GLONASS sono disposti su tre piani
orbitali di 8 satelliti ognuno, in modo che da ogni punto siano visibili almeno
14
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
5 satelliti alla volta.
Attualmente la precisione di localizzazione del sistema GLONASS è più bassa di quella del sistema GPS, infatti lo scarto della posizione è di 5/10 metri
nel piano orizzontale e circa 15 metri nel piano verticale. GLONASS si caratterizza però per la sua precisione più accurata alle alte latitudini, vicino
ai poli, che è più affidabile e veritiero del sistema GPS.
Esistono attualmente altri progetti su GLONASS:
• ERA GLONASS:
(in russo con ERA si intende la reazione d’urgenza in caso di incidenti)
è un progetto per il monitorare e lanciare allarmi in caso di incidenti,
la prima fase di questo progetto è quella di equipaggiare tutte le automobili con ricevitori GLONASS e creare una tecnologia che consenta
di lanciare l’allarme in caso di incidente o situazione di pericolo, fornire
agli operatori del servizio di emergenza i dati relativi alla posizione in
modo da inviare i soccorsi sul posto. La seconda fase del progetto è
di equipaggiare con la stessa tecnologia anche i telefoni e creare dei
telefoni intelligenti che inviano le richieste d’aiuto in caso di pericolo.
• Social GLONASS: è un progetto per aiutare persone con disabilità, anziani e bambini. Questo progetto ha l’obiettivo di aiutare queste persone a viaggiare sicuri e monitorati in modo che non si possano smarrire.
Questo progetto è stato pensato principalmente per le persone affette
da alzaimer, che spesso non possono o non vogliono uscire di casa per
la paura di non ricordarsi dove sono diretti e perdersi, e per i bambini,
in Russia infatti molti bambini si sono persi e purtroppo il 10% non è
stato ritrovato. Con questo sistema ogni utente può essere monitorato
negli spostamenti in modo da non potersi smarrire e ritrovare la strada.
15
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
Analizziamo ora le differenze tra i sistemi GPS e GLONASS. I due sistemi sono simili, in quanto entrambi sono sistemi satellitari con una struttura
simile:
GPS
caratteristica
tipo orbita
numero orbite
altitudine
periodo di orbita
orologio atomico
a bordo
crittografia nei
segnali
GLONASS
circolare
6 da 4 satelliti l’una
fascia MEO (20.180 Km)
11h 58m
si
circolare
3 da 8 satelliti l’una
fascia MEO (19.140 Km)
11h 15m
si
si
no
In Fig.5 confrontiamo le orbite dei sistemi di navigazione satellitare GPS,
GLONASS, Galileo e Compass (Medium Earth Orbit) con le orbite di International Space Station (stazione spaziale internazionale) , Hubble Space
Telescope (telescopio spaziale Hubble) e Iridium constellation orbit(Low Earth Orbit, costellazione di satelliti per la telefonia satellitare), Geostationary
Earth Orbit, e la dimensione della Terra.
Fig. 5: Altitudine delle orbite dei satelliti a confronto.
16
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
L’utilizzo coordinato di entrambe le costellazioni ha dei vantaggi notevoli:
si possono osservare più satelliti contemporaneamente ottenendo precisioni
maggiori e risparmiando sui tempi di acquisizione.
La localizzazione sui dispositivi mobili è attualmente molto utilizzata. L’unico difetto, nonostante l’utilizzo coordinato di GPS e GLONASS, è la lentezza
con cui il terminale acquisisce la propria posizione al momento dell’accensione, in media infatti impiega 45-90 secondi. Questo ritardo è dovuto alla
necessità di ricevere i segnali dai satelliti in vista. Per questo motivo è nato
un sistema che integrasse il GPS+GLONASS in modo da avere una posizione anche approssimata in tempi più brevi, questo sistema si chiama GPS
Assistito.
L’utilizzo dei sistemi satellitari, nei dispositivi come smartphone e tablet,
è integrato e non viene indicato il sistema specifico dal quale si ricava la
localizzazione, si può quindi pensare che il dispositivo utilizzi solo uno dei
sistemi disponibili. Possiamo per questo motivo generalizzare utilizzando
d’ora in avanti come unico termine di paragone il sistema GPS, attualmente
più conosciuto e di maggiore compatibilità sui dispositivi più diffusi.
2.1.3
GPS Assistito
Il GPS Assistito (o Assisted GPS o A-GPS) è un sistema nato per abbattere i
tempi necessari alla prima localizzazione durante l’uso di un terminale GPS.
Mostra la sua utilità soprattutto nei centri urbani in cui è più difficile acquisire il segnale dei satelliti necessari per iniziare la localizzazione con il GPS.
Il GPS Assistito si è molto diffuso associato ai sistemi di localizzazione basati
sulla telefonia cellulare.
Lo scopo principale di questo sistema è quindi di assistere il ricevitore GPS
nel calcolo della posizione in modo approssimato ma veloce per poter sveltire
l’acquisizione del segnale dei satelliti GPS.
Il sistema si basa sulle reti telefoniche:
• dispositivo mobile che si può connettere alla rete cellulare e dotato di
sensore GPS;
• rete telefonica nazionale;
• Assistance Server.
17
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
Fig. 6: Funzionamento GPS Assistito.
In generale il funzionamento del GPS Assistito è il seguente: ogni cella di telefonia mobile sul territorio ha una posizione fissa, per implementare questo
sistema ogni cella ricava ad ogni istante quali satelliti del sistema GPS sono
visibili in quel momento dalla sua posizione.
Il terminale A-GPS, che vuole conoscere la propria posizione, si connette
attraverso la rete telefonica alla cella e da questa ad un Assistence Server,
al quale arrivano le informazioni sui satelliti GPS ricavate dalla cella. Dopo
aver elaborato tutte le informazioni ricevute dalla cella, relative sia ai satelliti
visibili da essa che la distanza dal terminale dalla cella, il Server invia all’utente, tramite la rete telefonica, una posizione approssimata e i dati relativi
ai satelliti visibili da quella zona.
È ragionevole assumere che il terminale A-GPS veda i medesimi satelliti che
sono visibili alla cella a cui è agganciato, infatti nella rete telefonica le celle
coprono aree che vanno da qualche centinaio di metri a più chilometri, grazie
alle informazioni scambiate tra le celle e i dispositivi (ad esempio attenuazione del segnale, scambio di cella, ...) si può capire approssimativamente la
posizione del dispositivo.
Il terminale, grazie le informazioni ricevute dal Server, sa quali satelliti cercare senza dover perdere tempo prezioso nell’interrogare i satelliti oltre la
linea dell’orizzonte. La localizzazione, quindi, inizia in modo più veloce del
solo utilizzo del GPS.
Ci sono due tipi di GPS Assistito attraverso la rete mobile:
• A-GPS MSB
• A-GPS MSA
18
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
A-GPS MSB
Nella modalità MSB (Mobile Station Based) il terminale è in grado di acquisire da Server informazioni sui satelliti (tempo e posizione) e sfruttare
questi dati per la ricezione GPS. In caso di assenza di connessione con la
rete telefonica, il terminale resta in grado di calcolare la propria posizione
funzionando come un normale ricevitore GPS.
Pressoché tutti gli smartphone moderni funzionano in questo modo.
A-GPS MSA
Nella modalità MSA (Mobile Station Assisted) il server fornisce al terminale
i dati di assistenza, attraverso i quali vengono acquisiti i segnali dai satelliti.
Tali segnali vengono fotografati e inviati in pacchetti al server che calcola la
posizione che viene trasmessa al terminale tramite la rete mobile. In caso
di assenza di connessione, il terminale non è in grado di funzionare in modo
autonomo come un normale terminale GPS. Non è possibile quindi calcolare
la posizione in assenza di connessione dati.
Non consideriamo questo caso di A-GPS in quanto, come prima accennato,
non è utilizzato negli smartphone.
19
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
Per scegliere quale tecnologia utilizzare per la nostra applicazione abbiamo confrontato tutte le caratteristiche dei due sistemi:GPS e A-GPS MSB
(che per semplicità chiameremo solo A-GPS o GPS assistito).
caratteristiche
GPS
A-GPS
Fonti delle infor- segnali radio dai satelliti segnali radio dai satelliti
mazioni per la GPS
e Assistance Server tramilocalizzazione
te la rete telefonica per le
comunicazioni cellulari.
Velocità
i terminali GPS possono im- i terminali A-GPS determipiegare anche qualche minu- nano la posizione più veloto per trovare la posizione, cemente perché hanno una
perché serve più tempo per connessione migliore con le
stabilizzare una connessione celle della rete telefoniche
con almeno quattro satelliti. piuttosto che con i satelliti, riuscendo comunque
a ricavare una posizione
approssimata.
Affidabilità
i terminali GPS possono de- la posizione determinata
terminare la posizione con tramite il GPS Assistito è
un accuratezza di un metro. meno accurata di quella calcolata dal GPS, in particolare all’inizio della localizzazione quando il server invia una posizione approssimata in base alla cella e alla
distanza da essa.
Costi
i terminali GPS comunica- l’utilizzo del sistema A-GPS
no direttamente con i satel- ha un costo, è infatti basato
liti del sistema GPS in mo- sul trasferimento dati nella
do gratuito, quindi non ha rete mobile, si deve quincosti aggiuntivi.
di pagare il costo della connessione per poter utilizzare
questo servizio.
Si è deciso di non utilizzare la tecnologia del GPS Assistito per la nostra
applicazione. Nonostante i vantaggi in termini di tempo all’inizio della localizzazione, la posizione inizialmente ricavata dal sistema A-GPS, essendo
20
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
approssimata, a volte non coincide con la localizzazione effettuata dal sistema GPS, l’errore di posizionamento sarebbe troppo elevato, nell’ordine delle
centinaia di metri. Questo comporterebbe un problema non solo nelle mappe
salvate, ma anche nel calcolo della velocità in quanto prima di trovare la giusta posizione le coordinate possono variare nel giro di pochi secondi di molti
metri, il dispositivo quindi calcola velocità molto elevate anche se l’utente è
fermo nello stesso punto. È stato, per questi motivi, preferito l’utilizzo del
solo GPS in quanto, pur mettendo più tempo nella ricezione del segnale, non
rileva variazioni di posizione cosı̀ grandi ed è preciso fin dalla prima localizzazione.
2.2
Tecnologie future
Abbiamo analizzato anche la possibilità di sfruttare nuove tecnologie in futuro, cercando di tenere l’applicazione il più possibile distaccata dalla tecnologia
di localizzazione utilizzata. Infatti attualmente si stanno sviluppando nuove
tecnologie di geolocalizzazione che a breve saranno operative, ad esempio il
progetto Galileo.
2.2.1
Galileo
È un GNSS (Global Navigation Satellite System), attualmente in fase di sviluppo da parte dell’Unione Europea e dell’Agenzia Spaziale Europea (ESA).
Uno degli obiettivi di Galileo è quello di fornire un sistema di geolocalizzazione molto preciso su cui l’Europa può fare affidamento, in modo da diventare
indipendente dai provider americani (GPS) e russi (GLONASS).
L’utilizzo di Galileo ad una bassa precisione sarà fornito gratuitamente, mentre l’alta precisione sarà disponibile per tutti gli utenti che pagheranno un
prezzo commerciale.
L’idea del progetto Galileo è nata nel 1999 con la creazione di un team di
ingegneri provenienti da Germania, Francia, Italia e Inghilterra. L’Unione
Europea ha reso ufficiale il progetto Galileo nel 2003 e si è iniziata la realizzazione. Galileo inizierà a fornire i primi servizi nel 2015, ma l’attivazione
completa è prevista per il 2020.
Il sistema di Galielo è composto da:
21
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
• 30 satelliti in orbita: 24 funzionanti e 6 di ricambio. Orbitanti su tre
diversi piani nella fascia MEO (Medium Earth Orbit).
• Controllo centrale, in Germania.
• Centro della missione, in Italia.
• Stazioni di traking e salvataggio.
Questo sistema è stato pensato principalmente per usi civili, al contrario
dei sistemi più military-oriented come GPS e GLONASS. Il sistema GPS, ad
esempio, è identificato come military-oriented in quanto il governo USA si
riserva il diritto di limitare la precisione immettendo nei dati forniti errori
intenzionali in modo da non fornire un servizio troppo accurato; inoltre, in
caso di necessità, l’esercito americano può spegnere le comunicazioni dei satelliti per gli usi civili e utilizzare solo la parte militare delle comunicazioni.
Galileo invece prevede lo spegnimento delle funzionalità solo in casi estremi
di conflitti mondiali, ma manterrà la stessa precisione sia per gli utilizzi civili
che militari.
Ci sono stati accordi tra Unione Europea e Stati Uniti in modo da garantire
la coesistenza di Galileo e GPS e la possibilità di un utilizzo combinato dei
due sistemi. Questo permetterà agli utenti già utilizzatori dei servizi GPS
di poter iniziare ad usufruire anche dei servizi offerti da Galileo senza dover
cambiare il dispositivo.
I principali servizi che Galileo si propone di implementare sono:
• Open Access Navigator: servizio di localizzazione disponibile senza
cambiare i dispositivi e con precisione al di sotto del metro.
• Commercial Navigation (criptato): servizio di localizzazione a pagamento con precisione fino al centimetro.
Galileo intende fornire una precisione orizzontale e verticale con errori al
massimo di un metro e migliorare il servizio di posizionamento alle alte latitudini rispetto ai sistemi esistenti.
• Safety of Life Navigation: servizio gratuito per applicazioni in cui la
precisione della posizione è essenziale.
• Public Regulated Navigation (criptato): disponibilità della localizzazione anche se i servizi degli altri provider non sono disponibili.
22
CAPITOLO 2. TECNOLOGIE DI GEOLOCALIZZAZIONE
• Search And Rescue: Galileo prevede di fornire una funzione di search
and rescue (SAR) globale, ovvero un servizio di soccorso utilizzabile
da tutti gli utenti di Galileo. Per garantire questo servizio i satelliti
saranno dotati di un transponder che riceverà segnali di soccorso dal
trasmettitore dell’utente e li invierà al Rescue Co-ordination Centre
che avvia le operazioni di salvataggio. Allo stesso tempo il sistema fornisce un segnale all’utente informandolo che la sua situazione è stata
rilevata e che stanno per arrivare i soccorsi. Quest’ultima funzionalità
è stata considerata un importante aggiornamento rispetto ai sistemi
già esistenti (come GPS); i quali possono essere utilizzati per indicare
situazioni di emergenza che necessitano soccorso, ma che non inviano
un feedback all’utente.
Naturalmente questa tecnologia essendo ancora in fase di sviluppo non è
al momento utilizzabile per la nostra applicazione, ma appena sarà operativa
si potrà decidere di integrare o sostituire l’attuale tecnologia utilizzata con
quella nuova.
23
Capitolo 3
Un Applicazione di Tracking
MotoSpeed è un cruscotto virtuale, pensato principalmente per i motoveicoli. È stato deciso di implementare le funzionalità di un cruscotto standard
(orario, velocità e distanza) e di fornire all’utente altre informazioni utili
sul tracciato (velocità media, velocità massima, coordinate geografiche). Attualmente l’applicazione base consente di effetuare il tracking del percorso
organizzando le informazioni in due file di diverse estensioni (.kml .gpx). Le
estensioni multiple dei file forniscono all’utente la possibilità di visualizzare
il percorso effettuato su più supporti (Google Earth o navigatori satellitari).
Inoltre è possibile salvare le informazioni visualizzate istante per istante in un
file .csv per recuperare informazioni sul tracciato in un momento successivo.
In futuro MotoSpeed permetterà di condividere, tramite login su una piattaforma web, i percorsi effettuati e di mantenere uno storico delle informazioni
dei tracciati.
3.1
Analisi e specifica dei requisiti
Durante la fase di analisi e specifica dei requisiti sono state individuate le
seguenti funzionalità da implementare:
• visualizzazione del cruscotto e informazioni aggiuntive: ora, velocità
attuale, distanza percorsa, coordinate geografiche, altitudine, velocità
massima e velocità media;
• salvataggio dei dati in file con possibilità di fermare e riattivare il
salvataggio;
• allarme per il rifornimento;
24
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
• ripetizione dell’allarme;
• cambio della lingua di visualizzazione.
Alcune di queste funzionalità sono attive di default, senza interazione da
parte dell’utente (visualizzazione del cruscotto, visualizzazione delle informazioni aggiuntive, salvataggio dei file), altre invece possono essere attivate
o disattivate dall’utente.
Analizziamo in dettaglio ogni funzionalità:
1. Visualizzazione del cruscotto e informazioni aggiuntive: vengono raccolti i dati necessari per la visualizzazione del cruscotto e vengono calcolate le informazioni aggiuntive come la distanza percorsa, la velocità
media e la velocità massima relativa.
2. Salvataggio dati nei file: All’apertura della schermata cruscotto si iniziano a salvare le informazioni raccolte in 3 file con nome “coordinate aaaaMMgg hhmmss” con estensioni .csv, .gpx e .kml. Alla ricezione
del primo segnale GPS viene effettuato il primo salvataggio in automatico. Da questo momento l’utente, dall’interfaccia cruscotto può
abilitare o disabilitare il salvataggio toccando sull’apposito pulsante.
Anche dopo lo stop del salvataggio i dati vengono salvati negli stessi
file fino alla fine della localizzazione corrente. I dati possono essere salvati su file separati fermando la registrazione e avviandone una nuova.
3. Allarme per il rifornimento: è possibile impostare un allarme visivo che
segnalerà all’utente la necessità di effettuare rifornimento in base ai chilometri percorsi durante la sessione di registrazione corrente. L’allarme
deve essere impostato prima dell’inizio della registrazione e rimane fisso per tutta la durata della registrazione. Questa impostazione rimane
in memoria anche all’avvio delle successive sessioni di utilizzo dell’applicazione. L’allarme può essere disattivato in qualsiasi momento della
registrazione toccando l’apposito pulsante.
4. Ripetizione dell’allarme: questa funzionalità può essere attivata o disattivata in qualsiasi momento dell’utilizzo. Dopo l’attivazione dell’allarme di rifornimento, tale allarme verrà notificato ogni 5 km in modo
da ricordare ripetutamente all’utente che il carburante sta per esaurire.
Toccando il pulsante di stop allarme rifornimento viene fermata anche
la ripetizione.
25
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
5. Cambio della lingua: è possibile cambiare la lingua in qualsiasi momento dell’utilizzo dell’applicazione. Tuttavia la modifica avverrà solamente al prossimo cambio di schermata. Attualmente sono supportate
le seguenti lingue: inglese e italiano.
Per la programmazione è stato utilizzato Android Developer Tool versione 22.3.0 che comprende Eclipse e vari tool per la programmazione Android.
È stata richiesta la compatibilità con i sistemi Android dalla versione 4.0 in
poi. Tale opzione viene impostata nel file AndroidManifest.xml. Il file AndroidManifest.xml contiene tutte le informazioni essenziali dell’applicazione
Android: tra cui la definizione del nome, della versione , dei permessi e delle
caratteristiche dell’applicazione.
L’attributo minSdkVersion indica il minimo API Level richiesto dall’applicazione per essere eseguita. Il valore indica quale API Level è supportato a
seconda della versione di Android compatibile con l’applicazione. Nel nostro
caso il valore 14 indica che la nostra applicazione è compatibile con la versione 4.0 (ice cream sandwitch) in poi.
L’attributo targetSdkVersion indica l’API Level massimo in cui viene garantito il corretto funzionamento dell’applicazione, nel nostro caso abbiamo scelto
la compatibilità fino all’ API Level 19, ovvero la versione 4.4 di Android.
Infine l’applicazione necessita dei seguenti permessi per poter implementare
tutte le funzionalità, anche essi indicati nell’AndroidManifest:
<uses-permission
android:name = \android.permission.ACCESS\_FINE\_LOCATION"
/>
<uses-permission
android:name = \android.permission.WRITE\_EXTERNAL\_STORAGE"
/>
<uses-permission
android:name = \android.permission.READ\_EXTERNAL\_STORAGE"
/>
Questi permessi vengono accettati dall’utente al momento del download dell’applicazione dal Play Store.
ACCESS FINE LOCATION consente l’accesso ad una localizzazione precisa
26
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
derivante dalle fonti di localizzazione come il GPS.
WRITE EXTERNAL STORAGE e READ EXTERNAL STORAGE consente la scrittura e la lettura della memoria del dispositivo in modo da poter
salvare i file creati dall’applicazione.
3.2
Progettazione
L’applicazione si compone di due activity (un menù principale nel quale si
scelgono le opzioni e il cruscotto virtuale) e un service che riceve le informazioni dal GPS e scrive i file. Nello schema seguente vediamo le interazioni
tra i componenti:
Fig 7: Architettura e relazioni dell’applicazione.
27
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
MainActivity
MainActivity estende la classe Activity. Usa costanti utili per i dialog del
menù e un oggetto di classe Global var.
Utilizza il seguente layout:
Fig. 8: Layout della prima activity (MainActivity).
MainActivity utilizza la classe Global var per impostare le opzioni dell’applicazione in modo che una volta salvate siano uguali per tutte le activity e
il service dell’applicazione. Fa in modo, inoltre, che tali opzioni rimangano
uguali ad ogni avvio dell’applicazione ma modificabili in qualsiasi momento.
Legge quindi le impostazioni preimpostate dall’utente se esistono; nel caso,
invece, in cui le preimpostazioni ancora non esistono ossia quando l’utente
sta effettuando il suo primo accesso, viene creata una directory MotoSpeed in
cui verranno salvati tutti i file generati dall’applicazione e vengono impostate
le opzioni con valori di default.
Si può scegliere tra le seguenti opzioni:
28
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
• lingua: attualmente solo italiano e inglese;
• limite di chilometraggio per il rifornimento: allo scadere quale verrà
attivato l’allarme visivo;
• attivazione/disattivazione dell’allarme di rifornimento;
• attivazione/disattivazione della ripetizione dell’allarme ogni 5 km dopo
il primo allarme, se attivo;
• visualizzazione del cruscotto: questa opzione è stata impostata in quanto l’applicazione può essere utilizzata anche in background. Ovvero se
non si desidera visualizzare il cruscotto è possibile disabilitarne la visualizzazione cosı̀ che l’applicazione parta e il video vada in standby,
in questo modo l’utente può mettere il dispositivo in tasca o dove ritiene opportuno e sfruttare le funzionalità del salvataggio del percorso
dell’applicazione. Ovviamente in questa modalità l’allarme visivo non
è visualizzato.
Ogni opzione è gestita visualizzando a video una finestra di dialogo che permette di scegliere il valore da impostare nell’opzione selezionata.
Quando si tocca il pulsante di start viene lanciato il service.
Guardiamo in dettaglio i metodi di questa activity:
onCreate
imposta il layout come in figura [fig. 8]
onResume
legge tramite Global var le opzioni salvate in precedenza o quelle di default nel caso sia il primo lancio
dell’applicazione e richiama la funzione setValue
setValue
imposta i valori nelle label a seconda della lingua e delle
opzioni lette dal file nella funzione onResume e gestisce
il touch dei pulsanti.
29
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
nome pulsante
start
comportamento
al touch del pulsante vengono salvate tutte le scelte fatte
nella pagina dall’utente attraverso un apposita funzione di Global var e viene lanciato il service che inizia la
localizzazione
lingua
alla selezione dell’opzione si visualizza una finestra di
dialogo con due scelte: ita/eng a seconda della scelta viene impostata la variabile tramite Global var della lingua
e vengono cambiate tutte le label dell’applicazione.
allarme riforni- alla selezione dell’opzione viene visualizzata una finemento
stra di dialogo con due scelte: on/off a seconda della
scelta viene impostata tramite Global var una variabile
che servirà per abilitare o disabilitare la visualizzazione
dell’allarme visivo nel cruscotto
ripeti
allarme alla selezione dell’opzione viene visualizzata una fineogni 5 km
stra di dialogo con due scelte: on/off a seconda della
scelta viene impostata tramite Global var una variabile che servirà per abilitare o disabilitare la ripetizione
dell’allarme ogni 5 km dopo la prima visualizzazione
visualizza
alla selezione dell’opzione viene visualizzata una finecruscotto
stra di dialogo con due scelte: on/off a seconda della scelta viene impostata tramite Global var una variabile che servirà per fare apparire la schermata del
cruscotto oppure spegnere lo schermo all’inizio della
visualizzazione.
30
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
BackgroundLocationService
BackgroundLocationService estende la classe Service, in modo che possa continuare il funzionamento in background; implementa inoltre la classe LocationListener, in quanto deve ricevere la localizzazione dal provider.
All’avvio del service viene lanciata l’activity di visualizzazione del cruscotto.
Il service poi richiede il provider grazie all’implementazione della classe LocationListener. La richiesta del provider è fatta utilizzando funzioni apposite
della classe LocationListener, se in un futuro si volesse cambiare il provider
utilizzato basterebbe modificare il valore della variabile che contiene l’id del
provider, nel nostro caso:
private String providerId = LocationManager. GPS PROVIDER ;
Se, ad esempio, si volesse usare la tecnologia 3G e WiFi per sfruttare il GPS
assistito, la variabile deve prendere come valore
LocationManager.NETWORK PROVIDER. Tale scrittura risulta possibile
grazie all’implementazione, nel nostro service, del LocationListener infatti
ha al suo interno il LocationManager che contiene tutte le macro che identificano i diversi provider.
Quando il service inizia a ricevere dati sulla localizzazione crea i file csv, kml
e gpx nei quali verranno salvati mano a mano tutti i dati relativi al tracciato
percorso e alle informazioni ricevute dal provider.
Quando il LocationListener trova un cambiamento di posizione lancia la funzione che raccoglie, calcola e comunica all’activity di mostrare a video tutti
i dati raccolti. Il service controlla, inoltre, l’eventuale notifica di allarme rifornimento e ripetizione di tale allarme ogni 5 km, questo esclusivamente se
una o entrambe le opzioni sono state precedentemente attivate dal pannello
opzioni; la disattivazione dell’allarme viene gestita nell’activity del cruscotto
grazie all’interazione con l’utente.
Il service utilizza un oggetto di classe Global var e delle variabili d’appoggio
per il calcolo delle informazioni relative alla localizzazione.
31
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
onCreate
Richiede il provider e chiama la LocationActivity dove
verrà visualizzato il cruscotto
onStartCommand Riceve la localizzazione, se è la prima localizzazione della registrazione, grazie alle apposite funzioni della classe
Global var, si impostano i nomi dei file e si richiama
la funzione updateLocationData. Alternativamente si richiamano le funzioni updateLocationData e refreshLocation. Richiede poi la localizzazione al provider ogni secondo in modo da avere una precisione sufficientemente
accurata sul tracciato percorso.
updateLocation
Legge inizialmente le opzioni generali dell’applicazione
Data
tramite Global var. Questa operazione è indispensabile poiché le opzioni generali possono variare in qualsiasi
momento tramite comandi da parte dell’utente. Imposta in Global var le variabili relative alla localizzazione
calcolando le informazioni necessarie: come la distanza,
la velocità media e quella massima. Se nelle opzioni generali è abilitata la scrittura, salva tramite Global var
i file relativi al tracciato(csv,kml e gpx). Controlla infine se necessario abilitare l’allarme per il rifornimento
chiamando l’apposita funzione checkFar.
checkFar
Controlla tramite Global var se l’allarme è attivo, se il
chilometraggio è arrivato al limite indicato nelle opzioni
impostate dall’utente viene notificato l’allarme. Nel caso
sia attiva anche la ripetizione viene notificato l’allarme
visivo ogni 5 km dopo la prima attivazione.
refreshLocation
Manda un messaggio di broadcast con tutte le informazioni utili per la visualizzazione. Questo messaggio
di broadcast è di tipo NEW LOCATION: questo tipo è
definito all’interno dell’applicazione.
onLocationChange Tutte le volte che riceve un cambiamento di location dal
provider richiama updateLocationData e refreshLocation
per visualizzare le nuove informazioni acquisite.
onDestroy
Molto importante quando fermiamo la localizzazione:
effettua il rilascio delle risorse allocate, in particolare
il provider.
32
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
LocationActivity
Utilizza il seguente layout:
Figura 9: Layout del cruscotto(LocationActivity).
Al lancio dell’activity vengono impostati tutti i valori a zero fino a che non
viene ricevuto dal service il broadcast contenente i dati aggiornati all’ultima
posizione.
I pulsanti presenti nel layout hanno le seguenti funzioni:
• pulsante stop:
Ferma la localizzazione (fermando il service e chiudendo il salvataggio
dei file) e riporta alla MainActivity senza chiedere conferme.
• pulsante di pausa/play:
pulsante quando la scrittura è abilitata
pulsante quando la scrittura è disabilitata
33
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
Al touch del pulsante si disabilita o abilita il salvataggio dei dati nei
file csv, kml e gpx. Di base il salvataggio è sempre attivo al lancio
dell’applicazione. Lo stato di pausa e play è indicato da un Toast che
appare al touch sul pulsante e tale pulsante cambia l’icona a seconda
dello stato.
• pulsante del rifornimento:
pulsante normale
pulsante con allarme inserito e attivo
Ad un tocco singolo del pulsante si disattiva l’allarme quando attivo.
Ad un tocco prolungato si azzera il contachilometri (denominato “distanza” nel cruscotto).
• pulsante autovelox e pulsante punti di interesse:
pulsante autovelox
pulsante punti di interesse
Questi pulsanti se toccati mostrano un Toast con scritto “funzione in
fase di sviluppo”. Infatti sono due funzionalità che permetteranno grazie ad un interfaccia con un database, di notificare un allarme visivo
(simile a quello attualmente usato per il rifornimento) di segnalare la
presenza di un autovelox nelle vicinanze o di un luogo di interesse. In
futuro sarà anche possibile inserire questi dati in un database in modo
da memorizzarli e condividerli con altri utenti.
34
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
Vengono gestiti anche i tasti fisici del telefono: il tasto “menù” del
dispositivo apre un menù in cui si possono modificare le opzioni come:
• lingua;
• attivazione/disattivazione dell’allarme rifornimento;
• attivazione/disattivazione della ripetizione dell’allarme;
• azzerare il contachilometri;
• fermare la localizzazione.
Tutte le scelte del menù vengono fatte attraverso delle finestre di dialogo con
l’utente.
Il tasto “back” del dispositivo chiede la conferma per l’arresto della localizzazione e se viene confermato si comporta come il pulsante stop.
LocationActivity utilizza come variabili:
• costanti per la gestione dei widget per la visualizzazione;
• un oggetto di classe Global var;
• una classe interna ActivityLocationTrackingReceiver.
ActivityLocationTrackingReceiver
Questa classe estende BroadcastReceiver. Sfruttiamo il metodo onReceive
che rimane in ascolto dei broadcast di tipo NEW LOCATION inviati dal
BackgroundLocationService. Quando riceve un broadcast, legge i dati all’interno di esso e lancia la funzione setTextView che scrive i dati raccolti dal
broadcast a video e, se l’allarme è attivo, cambia il colore del pulsante di
rifornimento in modo da attivare l’allarme visivo.
35
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
Tornando alla LocationActivity analizziamo in dettaglio i metodi:
onCreate
legge le opzioni attraverso Global var in modo da richiamare setValueLabel per impostare le label a seconda della lingua. Imposta tutti i valori a zero e imposta
i pulsanti.
setValueLabel
chiama la funzione di Global var che setta le funzioni a
seconda della lingua impostata dalle opzioni generali e
le scrive a video.
setTextView
imposta i dati ricevuti dal service nel cruscotto e gestisce
l’allarme visivo.
onBackPressed
gestisce la pressione del tasto fisico indietro del dispositivo, facendo apparire una finestra di dialogo che chiede
se si intende terminare la localizzazione.
onMenuPressed alla pressione del tasto fisico menu viene aperto un menu
con le voci per cambiare alcune impostazioni generali.
36
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
Global var
Global var è una classe che estende Application: è stato pensato di sfruttare
questa classe perché in futuro sarà possibile sfruttare override del metodo onCreate per fare le richieste di login al database. Grazie alla classe Application
infatti, il metodo on Create viene lanciato prima di ogni activity o service,
inoltre, nelle classi Application, si possono definire i singleton dell’applicazione; anche questa proprietà può essere sfruttata in futuro per implementare
nuove funzionalità.
Questa classe è utilizzata per il salvataggio dei file csv, kml e gpx, il salvataggio e la lettura delle opzioni. Gestisce l’interazione tra l’applicazione e i
file.
Contiene tutte le variabili per:
• le opzioni;
• la localizzazione;
• i file.
Le variabili delle opzioni vengono scritte e lette sull’apposito file quando richiesto dalle activity e dal service. Le variabili per la localizzazione vengono
modificate attraverso opportuni get e set dal service e dall’activity di localizzazione in modo da poter essere visualizzati adeguatamente nel cruscotto.
Queste variabili di localizzazione vengono inoltre salvate nei file di tracciamento del percorso e nel file di report del viaggio.
37
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
getFileStorageDir se non esiste, ovvero al primo lancio dell’applicazione,
crea la directory MotoSpeed dove verranno salvati i file
delle registrazioni e salva il path della cartella nell’apposita variabile, questa servirà ai metodi per salvare i
file in quella directory.
saveGlobalVar
salva le variabili relative alle opzioni nell’apposito file
con estensione xml della cartella MotoSpeed.
load
legge il file contenente le opzioni generali e salva i
dati letti nelle apposite variabili grazie alla funzione
setGlobalVar.
setGlobalVar
questo metodo ha due parametri: varName e varValue.
Imposta il valore varValue nella variabile varName in
modo che sia compatibile con il tipo di variabile e rispetti
gli standard previsti per quella variabile.
save
salva i dati raccolti dal service in una variabile per ogni
file in modo da scrivere ogni file rispettando le regole
di scrittura di ogni formato. Lancia poi la funzione stop
per salvare le informazioni cosı̀ formate nei rispettivi file.
stop
scrive i file csv, kml e gpx contenenti tutti i dati relativi
alla localizzazione.
changeLanguage cambia tutte le label a seconda della lingua impostata
dall’utente, di default la lingua è italiano.
getter e setter
tutti i getter e setter delle variabili in modo da poter
essere che lette o modificate dalle activity e dal service.
I file sono formati attraverso 3 fasi nel metodo stop:
• l’inizializzazione: crea l’intestazione del file che cambia a seconda dell’estensione;
• raccolta dati: raccoglie i dati passati dal service e salvati nelle variabili
in Global var;
• chiusura del file: crea la “chiusura” del file a seconda dell’estensione.
Infine, viene salvato nel file con estensione adeguata.
38
CAPITOLO 3. UN APPLICAZIONE DI TRACKING
I file creati possono essere visualizzati con apposite applicazioni sul dispositivo oppure trasferiti sul pc e aperti con altri programmi adibiti. È
possibile inoltre su altri dispositivi come il navigatore satellitare.
Da pc possiamo visualizzare il tracciato salvato nel file con estensione .kml
tramite Google Earth come in figura:
Figura 10: Visualizzazione di un percorso di prova tramite Google Earth.
39
Conclusioni
In questo progetto di analisi, progettazione e creazione dell’applicazione MotoSpeed si sono studiate le tecnologie di geolocalizzazione, in modo particolare le tecnologie utilizzabili da telefoni, smartphone e tablet: GPS, GLONASS
e GPS Assistito con anche uno sguardo al futuro studiando anche il progetto
Galileo come possibile integrazione di tecnologia di geolocalizzazione per il
futuro della nostra applicazione.
È stato scelto di utilizzare come tecnologia di geolocalizzazione il sistema
GPS con anche l’utilizzo, se previsto dal dispositivo, del sistema GLONASS,
in quanto forniscono un posizionamento preciso fin dalla prima localizzazione.
Sono state analizzate e studiate le specifiche per la creazione dell’applicazione di base, poi implementata e pubblicata nello store di Google Play.
Attualmente si sanno studiando le modifiche da implementare nel prossimo
futuro nella versione a pagamento di MotoSpeed.
Come anticipato, l’applicazione attualmente è una versione di base gratuita,
nelle prossime versioni si aggiungeranno:
• Interfaccia con database, contenente punti di interesse e autovelox, in
modo da creare un allarme visivo quando l’utente si trova nei pressi
dei suddetti punti. Possibilità di abilitare e disabilitare queste nuove
funzionalità.
• Login con username e password in modo da poter caricare nel database
i file creati dall’applicazione.
• Creazione di un interfaccia web in cui entrare grazie al login, come
nell’applicazione. Fornire all’utente la possibilità di visualizzare le statistiche di viaggio e i suoi tracciati, possibilità di confrontarsi con altri
utenti e condividere tracciati e statistiche.
40
Bibliografia
Galileo
http://en.wikipedia.org/wiki/Galileo %28satellite navigation%29
GLONASS
http://en.wikipedia.org/wiki/GLONASS
http://it.wikipedia.org/wiki/GLONASS
http://www.glonass.it
http://www.androidgalaxys.net
GPS
http://en.wikipedia.org/wiki/Global Positioning System#Predecessors
http://it.wikipedia.org/wiki/Sistema di Posizionamento Globale
GPS Assistito
http://it.wikipedia.org/wiki/GPS Assistito
http://en.wikipedia.org/wiki/Assisted GPS
http://gnss-info.blogspot.it/2012/02/gps-assistito-assisted-gps.html
http://www.diffen.com/difference/A-GPS vs GPS
41
Ringraziamenti
Ringrazio anzitutto il mio Correlatore Ing. Andrea Terzi per il supporto e
l’aiuto che mi ha dato in questi mesi e la possibilità di iniziare insieme la mia
esperienza lavorativa.
Un grazie particolare va ai miei genitori, a mia sorella e ad Alessandro che mi
hanno incoraggiato, supportato e sopportato, tra le mille difficoltà, in tutti
questi anni e hanno creduto in me in ogni momento.
Ringrazio anche i miei Amici che ci sono sempre stati, rinvigorendomi con il
loro affetto.
43
Scarica

Progettazione e Realizzazione di un Cruscotto Virtuale