Implementazione di meccanismi per il positioning dei dispositivi

Transcript

Implementazione di meccanismi per il positioning dei dispositivi
UNIVERSITA’ DEGLI STUDI DI NAPOLI “FEDERICO II”
FACOLTA’ DI INGEGNERIA
Corso di Laurea in Ingegneria Informatica
Dipartimento di Informatica e Sistemistica
TESI DI LAUREA
Implementazione di meccanismi per il positioning dei
dispositivi mobili in infrastrutture di Nomadic
Computing
RELATORE
Prof. Ing. Stefano Russo
CORRELATORE
Ing. Massimo Ficco
Anno Accademico 2002/2003
CANDIDATO
Maurizio Piccirillo
Matr. 41/203
Ci siamo, sono ad un passo dal giorno che ho immaginato non poche
volte in questi anni di studi. Anni, caratterizzati da momenti sicuramente non
facili, ma superati con la forza e la tenacia di chi vuole giungere fino in fondo e
soprattutto con
la voglia di poter dire a me stesso “c’è l’ho fatta!”. Grazie,
dunque, a me, per averci creduto ed ai miei genitori che hanno avuto anche loro
modo di trepidare per ognuno degli esami di questo percorso di vita che, sono
certo, potrà darmi d’ora in avanti, quella spinta per affrontare una nuova realtà
che da un po’ di tempo mi aspetta.
Un pensiero particolare va alla mia famiglia, ai miei nipotini, Davide e
Riccardo che senza saperlo hanno contribuito non poco al raggiungimento del
mio traguardo, a tutti gli amici, e soprattutto a chi ha saputo starmi vicino e fatto
superare momenti difficili.
Un grazie al Prof. Stefano Russo
che mi ha dato la possibilità di
partecipare a questo lavoro, al mio correlatore Massimo che ha sempre creduto
in me , a Domenico, cui devo una scommessa.
2
Indice
Introduzione.......................................................................................i
Servizi di positioning in infrastrutture di nomadic computing........ 9
1.1 Introduzione ............................................................................................. 9
1.2 Distributed computing .............................................................................. 3
1.3 Nomadic Computing................................................................................. 7
1.3.1 Perché il nomadic computing ............................................................ 7
1.4 Caratteristiche di un sistema di pervasive computing ................................ 8
1.5 Esigenze di positioning per nomadic computing ....................................... 9
1.6 Scenario applicativo considerato ............................................................ 10
L'approccio considerato ................................................................. 12
2.1 Introduzione ........................................................................................... 12
2.2 Soluzioni per sistemi di positioning ........................................................ 13
2.2.1 Sisteme di localizzazione basato su radiofrequenza(RF)............... 13
2.2.2 Sistema di posizionamento indoor"DOLPHIN"............................ 14
2.2.3 Esperimento di localizzazione conBluetooth ................................ 15
2.3 L'
approccio proposto .............................................................................. 16
2.4 L'
architettura generale ............................................................................ 19
Analisi delle tecnologie per il positioning dei dispositivi mobili... 21
3.1 Introduzione ........................................................................................... 21
3.2 Sistemi di coordinate .............................................................................. 22
3.2.1 Coordinate relative ed assolute ....................................................... 23
3.3 Modellazione dell'
ambiente di interesse.................................................. 23
3.4 Triangolazione ....................................................................................... 25
3.4.1 Lateration....................................................................................... 25
3.4.2 Lateration....................................................................................... 26
3.5 Metodi di localizzazione......................................................................... 27
3.5.1 Una tassonomia dei sistemi di localizzazione.................................. 28
3.5.2 Proxynity ........................................................................................ 30
3.5.3 Time-of-Flight ................................................................................ 30
3
3.5.4 Time Difference Of Arrival ............................................................. 31
3.5.5 Angle-of-Arrival............................................................................. 32
3.5.6 Received Signal Strenght Indication................................................ 33
3.5.7 Scene Analisys ................................................................................ 34
3.5.8 Miglioramenti del sistema di localizzazione.................................... 35
3.6 Sistemi esistenti...................................................................................... 36
3.6.1 Enhanced 911................................................................................. 39
3.6.2 Active Badge................................................................................... 39
3.6.3 Active Bat ....................................................................................... 40
3.6.4 Cricket............................................................................................ 41
3.6.5 Easy Livig ...................................................................................... 42
3.6.6 CGI-TA .......................................................................................... 43
3.6.7 GPS,D-GPS,A-GPS........................................................................ 44
3.6.8 Sim-Toolkit .................................................................................... 47
3.6.9 RADAR.......................................................................................... 47
3.6.9.1 Modello dei dati .................................................................. 48
3.6.9.2 Fase di "OFF-line".............................................................. 49
3.6.9.3 Fase di "On-line .................................................................. 49
3.6.10 Localizzzione in reti Ad-hoc........................................................... 50
Progetto ed implementazione........................................................ 51
4.1 Introduzione ........................................................................................... 51
4.2 Il modello utilizzato................................................................................ 51
4.3 Definizione dell'
infrastruttura del sistema di localizzazione .................... 53
4.3.1 Scelta dello standard di comunicazione: Bluetooth.......................... 53
4.3.1.1 Lo stack protocollare Bluetooth........................................... 54
4.3.3.2 Campo di copertura Bluetooth............................................. 56
4.3.3.3 Le modalità di comunicazione............................................ 56
4.3.3.4 La frequenza di trasmissione .............................................. 58
4.3.2 Dispositivi utilizzati ............................................................................ 59
4.4 Dettagli architetturali.............................................................................. 59
4.4.1 Lo stack BlueZ ............................................................................... 60
4.4.2 BlueZ e Java: JblueZ ...................................................................... 62
4.4.3 Implementazione dell'architettura................................................... 63
4.4.3.1 Estensione JblueZ attraverso Java Native Interface(JNI) ... 64
4.5 Descrizione del meccanismo di positioning ............................................ 66
4.6 Limiti imposti dall'
hardware .................................................................. 69
Una implementazione delle JSR-179 mediante le API JSR-82 ...... 69
5.1 Introduzione ........................................................................................... 70
4
5.2 Descrizione delle JSR-179...................................................................... 70
5.2.1 Il modulo LocationProvider ......................................................... 72
5.2.2 La classe Landmark ..................................................................... 74
5.3 Le JSR-179 nel modello di positioning proposto..................................... 75
5.4 Implementazione del LocationEstimator................................................. 77
5.4.1 Le JSR-82...................................................................................... 77
5.4.1.1 Carattesistiche generali ........................................................ 77
5.4.2 Implementazione Software del LocationEstimator mediante JblueZ79
Test sperimentali ............................................................................ 82
6.1 Introduzione ........................................................................................... 82
6.2 Received Signal Strenght Indication (RSSI) ........................................... 83
6.3 Test sperimentali sull'
RSSI..................................................................... 84
6.4 Utilizzo dell'
RSSI in un meccanismo di positioning................................ 85
6.4.1 Test sperimentale............................................................................ 86
6.5 Link Quality ............................................................................................. 91
Conclusioni.................................................................................................... 94
Appendice ...................................................................................................... 96
Bibliografia ................................................................................... 104
5
Introduzione
Il personal computer, Internet, ed il World-Wide-Web hanno già
influenzato molti aspetti del business, e ci sono chiari segni di una maggiore
convergenza fra i media, l'
elettronica di consumo e di divertimento, le
telecomunicazioni e l'
informatica. Tuttavia, la nuova ondata della rivoluzione
tecnologica ci influenzerà in maniera incisiva, invadendo tutti
nostra
gli aspetti della
vita
quotidiana.
Dove ci stiamo dirigendo? Contrariamente alle precedenti predizioni popolari, il
XXI secolo sarà probabilmente caratterizzato non dagli insediamenti sulla luna,
da città subacquee o da automobili ad energia nucleare (tutte cose che richiedono
immensi investimenti nelle infrastrutture), ma da applicazioni basate su
tecnologie miniaturizzate e quindi quasi invisibili, come le biotecnologie, le
nanotecnologie e la microelettronica.
sinergie
si
Sarà quindi interessante vedere quali
svilupperanno
fra
queste
aree.
Ovviamente, i progressi della microelettronica non sono una novità. Al contrario,
per più di 30 anni la ben nota legge di Moore, che stabilisce il raddoppio della
potenza di calcolo ogni 18 mesi, ha confermato la sua validità. Siamo ora certi
che la tendenza odierna continuerà per i prossimi anni a venire, il che rende così
affascinante quest'
area di sviluppo. E'ora evidente come il prossimo futuro sarà
caratterizzato da dispositivi con processori minuscoli,
che, grazie alle loro
dimensioni esigue ed al costo limitato, saranno integrati in praticamente ogni
oggetto quotidiano.
Parallelamente, il crescente sviluppo delle tecnologie wireless su ampio e corto
raggio (UMTS, WI-FI e Bluetooth, ad esempio) sta contribuendo ad abbattere
6
alcuni limiti che caratterizzavano i tradizionali metodi di connessione, rendendo
possibile la comunicazione tra dispositivi in movimento (Mobile Computing) e
facilitando il collegamento degli utenti ad infrastrutture fisse come internet o
intranet aziendali.
Queste innovazioni hanno, dunque, portato ad affiancare alle infrastrutture di reti
classiche, nuove infrastrutture di reti ibride (wired e wireless) e totalmente
wireless (senza alcun core di rete fisso) dette rispettivamente di nomadic
computing e ad hoc computing.
Con il connubio tra gli apparati mobili dell’elettronica di consumo (Personal
Digital Assistano, smart phone,…) e le nuove infrastrutture di rete, non è
difficile pensare a scenari in cui le persone hanno wearable computer per
svolgere le loro attività quotidiane in assoluta libertà di movimento, oppure per
utilizzare i servizi informatici offerti dalle strutture pubbliche e private con cui
esse si trovano ad interagire (come shopping mall, aeroporti, musei, sedi
lavorative…).
In uno scenario in cui l’informatica sta assumendo sempre più carattere di
ubiquità i servizi offerti possono essere innumerevoli e differenziati in base al
contesto. Le applicazioni dovranno quindi essere in grado di cercare
dinamicamente i servizi e adattarsi a nuovi ambienti. Presupposto necessario a
ciò è la capacità di riconoscere il contesto stesso ed in particolar modo la
localizzazione di un dispositivo in un predeterminato spazio che sicuramente
rappresenta uno degli aspetti critici del context awareness.
Questo lavoro di tesi tenta di dare un contributo in merito alla possibilità di
localizzare un dispositivo mobile in ambienti indoor. Dopo una analisi di quelli
che sono i modelli studiati in numerose ricerche, viene posta l’enfasi sulla
semplicità dell’approccio proposto che mira alla individuazione della “zona” in
cui opera un dispositivo mobile. Questo tipo di approccio nasce dalla
considerazione che in molte applicazioni emergenti della vita quotidiana ciò che
conta, al fine di offrire il servizio giusto nel momento giusto, non è la
conoscenza esatta della posizione del terminale mobile in termini di coordinate
7
spaziali, ma bensì l’individuazione approssimativa dell’area in cui si sta
operando.
Il lavoro è strutturato come segue:
- Nel primo capitolo vengono introdotti i concetti di nomadic computing e di
context awareness. In particolare si pone l’attenzione sulle esigenze
di
localizzazione dei dispositivi mobili al fine di poter utilizzare le informazioni e/o
i servizi disponibili in aree definite.
-Nel
secondo capitolo si introduce un tipo di approccio innovativo per la
localizzazione dei dispositivi mobili. Lo si definisce approccio “zoning”. Non si
mira alla determinazione delle coordinate ma semplicemente alla individuazione
della zone in cui opera il dispositivo al fine di poter
utilizzare i servizi
disponibili in ciascuna di esse. Si introduce, infine l’architettura generale del
sistema.
- Nel terzo capitolo si fa una analisi di quelle che sono le tecniche e le tecnologie
utilizzate per il positioning dei dispositivi mobili.
-Nel quarto capitolo si entra nel dettaglio del progetto descrivendo
l’implementazione dal livello network fino a quello utente. In particolare dopo la
scelta di Bluetooth come tecnologia wireless, si introduce BlueZ che rappresenta
l’implementazione dello stack protocollare Bluetooth per linux.
-Nel quinto capitolo dopo una descrizione delle API per il positioning JSR-179 e
delle JSR-82 per lo sviluppo di applicazioni Bluetooth in Java, viene delineata
una strategia di utilizzo delle JSR-179 nel modello di positioning proposto.
Infine, viene definita
una possibile implementazione delle stesse JSR-179
mediante le JSR-82
- Nel sesto capitolo vengono presentati i risultati sperimentali dei test condotti
per la valutazione del meccanismo di positioning implementato.
8
Capitolo 1
Servizi di positioning in infrastrutture di nomadic
computing
1.1
Introduzione
I sistemi di comunicazione e di elaborazione dell’informazione hanno subito
negli ultimi anni una profonda evoluzione. Da quando un solo grande calcolatore
(il temuto mainframe) era il protagonista assoluto, molta strada è stata fatta.
Oggi, vedere una persona che disponga e usi normalmente un personal computer
non è più una novità e immaginare un futuro dove molti dispositivi intelligenti
saranno al servizio di un ognuno di noi non sembra più essere fantascienza.
Questo percorso evolutivo dal computing del centro di calcolo, che passa per il
computing personale fino a finire al computing ubiquo e pervasivo è stato
delineato già da tempo da uno dei ricercatori più citati nell’ambito di questi
One computer, many people
One person, one computer
One person, many computers
Figura 1.1 - L’evoluzione dei sistemi di elaborazione e comunicazione
argomenti, Mark Weiser [5] (la figura 1-1 illustra il suo modo di vedere tale
9
evoluzione). Weiser cosi definiva il concetto di Ubiquitous Computing: “In
principio c’erano gli elaboratori di dati: un solo computer al servizio di un gran
numero di persone. Poi è arrivata la rivoluzione dei PC: un computer al servizio
di una sola persona. Infine, molte piattaforme elettroniche a disposizione di una
unica persona, in qualsiasi luogo si trovi.”
I nuovi sistemi di elaborazione dell’informazione dovranno essere caratterizzati
da un grado di mobilità, dinamicità e flessibilità sempre maggiore: un individuo
ha bisogno di spostarsi portando con sé tutti gli strumenti che la tecnologia offre
a supporto del suo lavoro o dei suoi passatempi ludici. In questi movimenti, il
contesto che ci circonda varia nelle risorse e nelle condizioni: i nostri dispositivi
saranno veramente utili solo se sufficientemente flessibili da adattarsi a questa
dinamicità. La loro specializzazione aiuterà poi l’integrazione negli ambienti di
tutti i giorni (ufficio, casa,...), così da andare incontro alla “diffidenza” delle
persone più restie alle innovazioni.
E’ evidente come il contesto rappresenti un ruolo fondamentale in tutte quelle
situazioni in cui gli utenti sono mobili e i servizi si differenziano in funzione
degli scenari . In particolare, la possibilità di localizzare
un individuo con il
suo PDA, ad esempio, è sicuramente l’aspetto critico affiche si possa accedere
alle informazioni giuste nel momento giusto.
Nel seguito verranno descritti i concetti di base che caratterizzano il distribuited
computing emergente; successivamente viene introdotto
il concetto di
positioning ed il suo ruolo fondamentale in ambienti di Nomadic Computing.
10
1.2
Distributed computing
In via del tutto generale possiamo dire che un sistema distribuito consiste in
una collezione di componenti dislocati su vari computer connessi attraverso una
rete telematica [1]. Come già evidenziato, i sistemi distribuiti tradizionali sono
evoluti negli anni verso nuovi sistemi di elaborazione e comunicazione: mobile
computing, pervasive computing, ubiquitous computing, nomadic computing, ad
hoc computing. Anche se alcune similitudini possono essere individuate, ognuno
di essi ha un’identità ben definita se si guarda ai seguenti aspetti [1] [2]:
Device: per device si intende un nodo di rete dotato di capacità elaborativa; in
base alle sue proprietà di mobilità spaziale si può classificare in:
-
fisso: dispositivi generalmente potenti con grandi quantità di memoria e
processori veloci;
-
mobile: device tipicamente poveri di risorse e con problemi di alimentazione
che implicano la loro limitata disponibilità nel tempo.
Embeddedness: per embeddedness si intende il grado di specificità del
compito per cui viene progettato un device nonché il livello di integrazione
raggiunto nel costruire il dispositivo che assolve il determinato compito. In
base a questo criterio è possibile distinguere tra dispositivi:
-
general-purpose: un dispositivo è general-purpose quando è progettato per
non rispondere a compiti specifici (PDA, laptop, PC…);
-
special-purpose: un dispositivo è special-purpose quando è progettato per
rispondere a compiti specifici (microcontrollori, sensori, badges …).
Sulla base degli attributi elencati sopra i sistemi distribuiti possono essere
classificati in sistemi di:
Traditional distributed computing: sono una collezione di device fissi e
general-purpose connessi tra loro attraverso una connessione permanente le
cui applicazioni vivono in un contesto di esecuzione statico.
11
Nomadic computing: è definito in letteratura come un modello di
computazione distribuita in cui la comunicazione ha luogo su infrastrutture di
reti fortemente eterogenee. Tali infrastrutture sono composte di uno o più
domini wireless tenuti insieme da una infrastruttura fissa (the core network),
e forniscono sempre ed ovunque accesso ai dispositivi mobili.
Una infrastruttura di nomadic computing deve permettere di:
- localizzare gli utenti;
- fornire agli utenti il loro usuale ambiente di lavoro;
- proteggere le sessioni di lavoro quando ci si sposta tra computer;
- adattare dinamicamente le applicazioni e le comunicazioni all’ambiente
di calcolo.
Ad hoc mobile computing: i sistemi distribuiti ad hoc sono costituiti da un
insieme di dispositivi mobili, tipicamente general-purpose, connessi tra di
loro attraverso un collegamento intermittente e senza alcuna infrastruttura
fissa, dove le applicazioni vivono in un contesto di esecuzione fortemente
dinamico. Gli scenari di ad hoc computing possono essere numerosi; si può
pensare ad una scrivania con tanti dispositivi wireless che comunicano tra
loro (stampante, pda, cellulare) o ad un campo di battaglia dove dei tank
devono scambiarsi strategie di attacco.
Pervasive computing: si parla di pervasive computing quando il sistema
distribuito è composto da un insieme di dispositivi fissi special-purpose
(sensori, lettori di badges, microcontrollori, …) connessi tra loro attraverso
un collegamento tipicamente permanente le cui applicazioni vivono in un
contesto di esecuzione tipicamente statico soggetto solo talvolta a rapidi
cambiamenti. Con pervasive computing in pratica si intende la crescente
diffusione di dispositivi informatici intelligenti, facilmente accessibili e
12
specialpurpose
devices
embeddedness
ubiquitous
pervasive
ad hoc
generalpurpose
devices
nomadic
traditional
mobility
mobile device and
intermittent connection
Fixed device and
permanent connection
Figura 1.2 - Le varie forme di distributed computing caratterizzate dal punto
di vista della mobilità e della specializzazione dei dispositivi
talvolta invisibili, il cui uso semplifica lo svolgimento dei normali compiti di
tutti i giorni (si pensi alle idee e alle innovazioni per la domotica, la domus
robotica). Tali dispositivi sono spesso progettati per estendere le applicazioni
basate su standard aperti alla vita quotidiana e sono molto spesso incorporati
nell'
ambiente in cui operano (sensori di posizione, sensori di luminosità, …).
Ubiquitous computing: i sistemi di ubiquitous computing sono costituiti da
un insieme di dispositivi mobili, per la maggior parte special-purpose
connessi tra loro attraverso collegamenti intermittenti e le cui applicazioni
vivono in un contesto tipicamente dinamico. I sistemi di ubiquitous
computing nascono dall’evoluzione dei sistemi di pervasive computing data
dall’introduzione della mobilità dei dispositivi (per questo spesso i due
termini sono usati come sinonimi). Con l’ubiquitous computing i device
faranno parte dei nostri naturali movimenti ed interazioni con i normali
ambienti del prossimo futuro: tutto ciò che è possibile immaginare con i
computer e le telecomunicazioni, in movimento, fermi, in cielo, in terra o in
mare può essere considerato ubiquitous computing [3].
13
Si osservi che nomadic e ad hoc computing possono essere visti come due forme
diverse del concetto più generale di mobile computing. In realtà, come
rappresentato graficamente in figura 1.3, “isole” di ad hoc computing possono
coesistere nelle infrastrutture di nomadic computing.
Nella figura 1.2 si riporta una rappresentazione grafica della tassonomia
presentata e tratta da [2]. La mobility è funzione della mobilità dei dispositivi,
della tipologia di connessione di rete tra di essi e del contesto di esecuzione.
Come è facile intuire maggiore è il grado di mobilità e di embeddedness, più è
sentita la necessità di fornire alle applicazioni di questi ambienti soluzioni
efficaci per consentire agli utenti l’utilizzo dei servizi offerti dall’ambiente e dai
dispositivi in esso presenti [3]. Infatti:
l’elevata embeddedness implica (tipicamente) la povertà di risorse:
non si può pensare più allo sviluppo di applicazioni/soluzioni che
introducono un carico computazionale “pesante” in quanto la
presenza di dispositivi “leggeri” è più la regola che l’eccezione;
l’elevata mobilità dei dispositivi implica spesso che un servizio possa
non essere disponibile ad un certo istante (perché la connessione di
rete non è stabile, o perché il dispositivo sta migrando verso un altro
ambiente). Ciò non deve comportare un malfunzionamento: bisogna
pensare a soluzioni che tengano conto di queste eventualità.
Figura 1.3 - Una tipica infrastruttura di nomadic computing
14
.
1.3
Nomadic Computing
Abbiamo detto che i sistemi di nomadic computing rappresentano un
compromesso tra i sistemi totalmente fissi e totalmente mobili; rappresentano
quindi a nostro avviso un passo intermedio per evolvere verso i sistemi di
elaborazione completamente mobili. Questa idea di “migrazione” dai sistemi
fissi a quelli mobili è ben rappresentata dalla figura 1-4.
1.3.1 Perché il nomadic computing
L’attenzione di questa tesi è rivolta ai sistemi di nomadic computing perché
rappresentano oggi un paradigma di comunicazione che meglio si adatta al
nostro fare quotidiano: come indicato da Kleinrock, oggi viviamo in un
“disconnected world” dove il più delle volte viaggiamo da una postazione fissa
all’altra, ufficio, casa, aeroporti, hotel, portando con noi i nostri computer e i
dispositivi di comunicazione. La combinazione del mobile computing supportato
dalle telecomunicazioni emergenti, sta cambiando oggi il nostro modo di vedere
l’elaborazione delle informazioni. Si riconosce, giorno dopo giorno, la necessità
di accedere alle risorse anche quando si è in movimento e durante la migrazione
da un contesto ad un altro. Ovvero, come riportato in [5], anytime, anywhere
access.
D’altra parte, quando si pensa allo sviluppo di questi ambienti di
elaborazione distribuita, le infrastrutture di rete oggi disponibili rappresentano il
giusto compromesso tra carico computazionale e leggerezza dei dispositivi
mobili.
Pertanto gli scenari di nomadic computing nell’ambito dell’office
automation, nella domotica o in tutti quegli ambienti con nodi fissi in grado di
offrire servizi e capaci di ospitare dispositivi mobili (aeroporti, gallerie d’arte,
aerei, navi da crociera, strutture abitative…) diventeranno sempre più diffusi e
15
costituiranno il passo da compiere per raggiungere l’obiettivo all the time,
everywhere access dei futuri scenari di ubiquitous e pervasive computing [6].
Caratteristiche di un sistema di pervasive computing
1.4
In uno scenario di pervasive computing la computazione è altamente
dinamica e disaggregata: gli utenti sono mobili e i servizi sono forniti da una
serie di componenti distribuiti che collaborano tra loro. Inoltre l’accesso ai
servizi è permesso anche a dispositivi di uso quotidiano (ad esempio cellulari e
PDA). Le applicazioni necessarie per supportare queste nuove esigenze sono, da
un punto di vista architetturale, non monolitiche bensì costituite da moduli
allocati in numerosi nodi della rete. I servizi offerti possono inoltre cambiare a
seconda del luogo in cui ci si trova: in questo modo le applicazioni si adattano a
differenti scenari di utilizzo. Le applicazioni quindi devono essere in grado di
cercare dinamicamente i servizi e adattarsi a nuovi ambienti. Le caratteristiche
che deve possedere un sistema di pervasive computing sono:
•
trasparenza nell’interazione (interaction trasparency);
•
conoscenza del contesto (context awareness);
•
cattura automatica delle esperienze (automated capture of experiencies).
Con il termine interaction trasparency, si intende l’utilizzo di una interfaccia che
elimina il più possibile le barriere tra l’utente e il lavoro che vuole realizzare.
Questo obbiettivo si raggiunge adottando tecniche di interazione che vanno al di
là del semplice uso di mouse, tastiera e piccoli monitor, ma si basano su
interfaccie non convenzionali volte a migliorare il feeling di utilizzo. Fioriscono
così interfaccie che utilizzano tecniche di riconoscimento della scrittura, dei gesti
e della voce.
La “conoscenza del contesto” permette all’applicazione di sapere dove, quando e
perché un’azione è stata intrapresa e utilizzare questa conoscenza pregressa per
16
completare nuovi compiti. Questa caratteristica è fondamentale in un mondo in
cui la mobilità degli utenti e quindi i cambiamenti di contesto sono molto
frequenti.
Con il termine “cattura automatica delle esperienze” si intende la capacità di un
dispositivo di memorizzare, gestire e rivedere le esperienze che accadono
durante il suo utilizzo. Deve essere quindi possibile memorizzare suoni,
immagini e commenti per poi riutilizzarli in momenti successivi.
1.5
Esigenze di positioning per nomadic computing
In una infrastruttura di nomadic computing l’aspetto rilevante è costituito
dalla conoscenza del contesto (context aware) . Con il termine “contesto” si
intende un certo numero di
fattori come l’identità di un utente, posizione
fisica corrente, condizioni atmosferiche, ora del giorno, data , etc. L’obbiettivo
è quello di acquisire ed utilizzare informazioni riguardanti il contesto di un
dispositivo
al fine di fornire servizi appropriati per un determinato gruppo di
persone, luogo, evento, etc. Si pensi, ad esempio, ad un telefono cellulare che, se
fosse
in grado di riconoscere la propria posizione all’interno di un teatro,
dovrebbe vibrare e non squillare durante la rappresentazione teatrale per non
arrecare disturbo agli spettatori.
L’aspetto critico del context awareness è senza dubbio quello del location
awareness ossia la conoscenza della posizione corrente di un utente. Con il
termine “posizione” si
indica generalmente la capacità di localizzare la
posizione di un oggetto in un predeterminato spazio. Per esempio la posizione di
un
aeroplano nel cielo è data attraverso la sua latitudine, longitudine ed
altitudine, un veicolo in una certa regione è localizzato con una grande
accuratezza grazie alla tecnologia GPS(Global Position System).
17
Molti studi
sono stati realizzati per la definizione di un sistema per il
rilevamento automatico della posizione dei dispositivi mobili. Spesso si
utilizzano metodi che consentono di ricercare soluzioni al problema con le
migliori “performance” in termini di precisione, accuratezza e scalabilità.
Tuttavia, non tutte le situazioni della vita quotidiana richiedono la massima
accuratezza
conseguibile. Ci sono una serie di applicazioni emergenti che
forniscono tipi differenti di servizi a seconda della zona in cui sono situati i
dispositivi. Per tali applicazioni è importante conoscere ad esempio in quale
zona, di un edificio, un dispositivo mobile si trovi e non le sue coordinate x,y,z
dello spazio.
L’obbiettivo del lavoro di tesi è quello di presentare un nuovo approccio per la
per la localizzazione dei terminali mobili in una infrastruttura di nomadic
computing che tenga conto di queste nuove esigenze.
Si vuole delineare, pertanto, una architettura che consenta di caratterizzare la
posizione di un dispositivi mobile, non in termini di coordinate spaziali ma
semplicemente attraverso la zona in cui si sta operando. Ciò sarà sufficiente per
l’accesso ai servizi.
1.6
Scenario applicativo considerato
Per esporre l’approccio proposto faremo riferimento ad uno scenario
costituito da una visita guidata in un museo. Un generico turista è dotato di un
dispositivo mobile, ad esempio un PDA, grazie al quale ha la possibilità di
ottenere informazioni audio su ciò che incontra nel corso dei suoi spostamenti
nello spazio fisico costituito dalle varie stanze dell’ edificio.
E’ evidente che la descrizione audio illustrante le opere d’arte dovrà essere, nel
corso delle visita,
coerente con la posizione del visitatore fornendo
l’illustrazione audio appropriata a quanto esposto in
18
ciascuna sala del museo.
L’individuazione della posizione del visitatore ,munito del suo PDA, assume
rilevanza fondamentale affinché
egli possa ascoltare la descrizione
corrispondente a ciò che incontra durante il suo percorso. E’ uno scenario che
rientra in una di quelle situazioni della vita quotidiana in cui non è richiesta la
massima accuratezza in termini di coordinate dello spazio. Al fine di poter
ascoltare l’audio relativo alle opere presenti sarà sufficiente poter distinguere la
posizione della persona con la precisione di una singola stanza.
19
Capitolo 2
L’approccio proposto
2.1
Introduzione
La proliferazione dei dispositivi mobili e delle reti wireless ha nutrito un
crescente interesse per i servizi basati sulla conoscenza della posizione; le
informazioni ed i servizi di cui un utente può disporre possono dipendere
della sua posizione fisica. Tuttavia, l’accuratezza richiesta nella rilevazione
della posizione, al fine di poter utilizzare i servizi disponibili, varia a seconda
del tipo di applicazione. Per esempio, localizzare un libro in un una libreria
richiede una precisione maggiore rispetto a quella necessaria per distinguere
in quale stanza, di un dato edificio, si trovi un individuo munito di un PDA.
Molte sono le
situazione della vita quotidiana nelle quali avere una
informazione approssimativa sulla posizione, rispetto ad una area definita, è
sufficiente per poter utilizzare i servizi disponibili in tale area. Quest’ultima
osservazione assume rilevanza fondamentale ai fini della scelta del sistema
che dovrà rilevare in automatico la posizione; infatti, se da un lato si ricerca
una soluzione al problema
che consenta le migliori
termini di precisione, accuratezza e scalabilità,
“performance” in
dall’altro sono presenti
vincoli economici e strutturali da cui non si può prescindere.
Il presente capitolo descrive alcune delle soluzioni presentate in letteratura,
per sistemi di positioning, cercando di evidenziarne l’ inadeguatezza in
relazione allo scenario applicativo preso in considerazione (tour in un
museo) che, va sottolineato, è rappresentativo di una ampia gamma di
20
applicazioni .
Viene, infine, introdotto
l’approccio proposto con la
definizione dell’architettura generale dell’infrastruttura.
2.2
Suluzioni per sistemi di positioning
Descriviamo alcune delle soluzioni per la localizzazione di terminali
mobili prese in esame nel campo della ricerca.
2.2.1 Sistema di localizzazione basato su radio-frequenza (RF) [1]
E’ un sistema per la localizzazione degli utenti in un edificio basato su radiofrequenza . L’ esperimento è stato realizzato in un ambiente di dimensioni
43,5 x 22,5m in cui sono state dislocate tre stazioni basate su Pentium,
equipaggiate di adattatori wireless, ed un
host mobile. L’esperimento
prevede una prima fase di off-line in cui vengono memorizzate informazioni
sull’intensità del segnale ricevuto dall’host mobile per ciascuna stazione
base. In particolare vengono memorizzate tuple del tipo (x,y,d,ssi) dove x,y
rappresentano la posizione dell’host mobile fornite dall’utente cliccando su
una mappa del piano dell’edificio, d la direzione, e ssi l’intesità del segnale
ricevuto da ciascuna
stazione fissa a partire dalla posizione indicata
dall’utente. In pratica si definisce una griglia bidimensionale nel quale viene
suddiviso lo spazio. A seconda del numero di punti considerati si avrà una
griglia più o meno stretta.
Segue, poi, la fase di on-line in cui si
monitorizzano i dati real time del terminale in movimento. Dato un set di
misure dell’intensità del segnale, misurato da ciascuna stazioni base, viene
effettuata una
stima
della
posizione utilizzando
l’approccio
della
triangolazione (cfr 3.4). Nell’ultima fase si confronta la posizione stimata
con i dati precedentemente memorizzati. Il problema si sposta, quindi, nella
scelta dell’algoritmo da utilizzare al fine di avere il miglior risultato in
termini di “match” dell’esatta posizione con quella stimata. In tal caso viene
calcolata la distanza tra i dati real time e ciascuna tupla dei dati off-line. Il
risultato dell’algoritmo sarà dato dal valore che minimizza la distanza.
21
2.2.2 Sistema di posizionamento indoor “DOLPHIN” [2]
Il progetto “DOLPHIN” (Distribuited Object Locating System for
Physical-space Internetworking) nasce dall’osservazione che, generalmente,
i sistemi di posizionamento, in ambiente indoor, basati su segnali ad
ultrasuono o radio-frequenza, richiedono delle pre-configurazioni di tipo
manuale relative alle posizioni di riferimento delle stazioni, al fine di
determinare la posizione degli oggetti con precisione. Ciò comporta dei costi
di setup e di gestione che potrebbero essere inaccettabili in caso di larga scala
come ad esempio un edificio di uffici. Nel sistema
“DOLPHIN”
la
posizione degli oggetti è determinata considerando soltanto un piccolo
numero di stazioni di riferimento.
L’algoritmo alla base del sistema è di tipo iterativo ed è incentrato su un
meccanismo che consente di individuare la posizione dei vari nodi passo
dopo passo. Per esempio, in figura 2.1, il nodo D può determinare la propria
posizione ricevendo segnali ad ultrasuono dai nodi di riferimento A, B e C
(sono nodi la cui posizione è fissa e predeterminata). I nodi E ed F non
possono ricevere i segnali ad ultrasuono da tutti i nodi di riferimento per la
presenza di un ostacolo (nel caso dell’esempio c’è la presenza di un muro).
Una volta nota la posizione di D, ed il nodo E riceve il segnale da D, E potrà
calcolare la sua posizione usando le distanze tra i nodi B,C e D. In maniera
iterativa, note le posizioni di D ed E si potrà determinare la posizione di F
utilizzando i nodi C,D ed E.
Ci sono due principali vantaggi in tale meccanismo. Primo, per determinare
la posizione di tutti gli altri nodi il sistema richiede la conoscenza iniziale di
soli pochi nodi (minimo tre). Secondo, i nodi possono determinare la propria
posizione anche se non possono ricevere direttamente dai nodi di riferimento
il segnale ad ultrasuono.
22
Figura 2.1- Il sistema “DOLPHIN”
2.2.3 Esperimento di localizzazione con Bluetooth [3]
In questo esperimento è utilizzato lo standard Bluetooth come tecnologia
wireless per il positioning. L’idea è quella di localizzare i dispositivi mobili
sulla base della potenza ricevuta a partire da stazioni fisse Bluetooth. Ciò
viene supportato dalla possibilità di misurare il livello di potenza ricevuto, in
maniera indiretta, attraverso la lettura del valore di RSSI (Received Signal
Strength Indication) memorizzato in un registro hardware. Il livello di
potenza ricevuto può essere a sua volta utilizzato per ottenere una stima
della distanza utilizzando un modello di propagazione di onde radio come
mostrato nella (1)
d = 10^
PTX − PRX + GTX + G RX − X a +
20 log(λ ) − 20 log(4π )
23
/(10n)
(1)
dove PRX (dBm) e PTX (dBm) sono i livelli di potenza del ricevente e del
trasmittente
GTX (dBi) e G RX (dBi) sono
i
guadagni
di
antenna
rispettivamente del trasmittente e del rivenente, λ (m) è la lunghezza d’onda
e d è la distanza tra trasmittente e ricevente. L’esponente n denota l’influenza
di muri o altri ostacoli. L’errore viene incluso in X a che è una variabile
aleatoria normale con a deviazione standard.
Viene utilizzato, inoltre, una estensione del filtro di Kalman (EKF) per
calcolare la posizione a partire dalle stime delle distanze valutate secondo la
(1). Tele filtro consente di stabilire la posizione attuale “stimata”, per poi
effettuare un predizione su posizione future.
2.3
L’approccio proposto
Generalmente, in molti lavori presenti in letteratura (come anche per
alcuni di quelli precedentemente illustrati) , per determinare la posizione di
un terminale mobile, si adotta un approccio basato sulla triangolazione di
misure ottenute mediante una delle possibili tecniche di localizzazione (cap
3).
Nello scenario ipotizzato un approccio di questo tipo è inadeguato per i
seguenti motivi:
•
non è robusto nei confronti di interferenze dovute alla presenza di
ostacoli, come ad esempio muri, o di segnali di frequenza simile;
•
la presenza di molti dispositivi per realizzare il positioning
e/o
di
modelli di stima molto complessi determinano un aumento dei costi
dell’intera infrastruttura;
24
•
vi è la presenza di errori di misura che sono linearmente dipendenti
dall’intensità del segnale ricevuto dal dispositivo mobile.
Come già evidenziato, sono molte le applicazioni emergenti che forniscono
servizi differenti in funzione delle aree in cui sono situati i terminali mobili. In
un tale contesto, la massima accuratezza conseguibile, nella determinazione
della posizione di tali dispositivi, non rappresenta un vincolo da cui non poter
prescindere. L’accesso ai servizi, può essere garantito anche attraverso una
semplice stima approssimata
delle zone in cui sono dislocati i terminali mobili.
Si può delineare, quindi, una architettura che ci consenta di caratterizzare la
posizione di un dispositivo mobile, non in termini di coordinate spaziali ma
semplicemente attraverso l’identificazione della zona in cui si sta operando.
Pertanto, nello scenario ipotizzato, consideriamo la possibilità di accedere
alla informazioni attraverso una tecnologia wireless. I dispositivi mobili,
PDA, laptop o smartphone, potranno connettersi, ad esempio, alla
infrastruttura di rete presente nel museo attraverso i sensori dislocati nelle
diverse sale, come illustrato in figura 2.2. Le informazioni audio, sulle opere
presenti in ciascuna di esse, devono poter essere attivate dall’utente ogni qual
volta si entra in una nuova sala.
Sensori
Figura 2.2 - Sale del museo con i sensori per ciascuna di esse ed utente
munito di dispositivo mobile.
25
E’ evidente che l’identificazione della posizione di un dispositivo mobile, è
equivalente alla individuazione della stanza in cui il dispositivo stesso sta
operando. Ciò garantirà la possibilità, da parte del visitatore, di attivare il
corretto contenuto audio nel giusto momento.
Possiamo, pertanto, definire il nostro approccio di localizzazione come “zoning”,
inteso come l’individuazione in ciascun momento delle
stanze occupate
durante tutto il percorso della visita.
La soluzione si basa sulla possibilità di valutare la potenza del segnale ricevuto,
dal dispositivo mobile, da ciascun sensore presente nel range d’azione e
connesso al terminale stesso. In pratica il dispositivo mobile acquisisce
informazioni sulla intensità di tutti i segnali rilevabili. Tali intensità
sono
evidentemente funzione della distanza tra dispositivo mobile e sensori
raggiungibili; al crescere della distanza diminuisce l’intensità del segnale. La
sola informazione sulla potenza ci consente di determinare la sala nel quale il
dispositivo sta operando; infatti una semplice comparazione dei livelli di potenza
consente di stabilire il valore massimo e di conseguenza il sensore prossimo
alla unità mobile. Individuata la zona (intesa come sala del museo), viene data la
possibilità al visitatore di attivare il servizio audio disponibile per sala oggetto
della visita.
Questo tipo di soluzione è avvalorata dai seguenti motivi:
•
la presenza di un sensore per ciascuna sala consente una riduzione degli
effetti dovuti alla presenza di ostacoli come, ad esempio, i muri, e degli
errori di misura
che spesso caratterizzano le soluzioni basate sulla
triangolazione. Infatti, se la triangolazione, per la presenza muri spessi e
di forti interferenze, richiede sensori sofisticati e/o più di tre acces point
per migliorare l’accuratezza con conseguente aumento dei costi
dell’infrastruttura, la soluzione proposta, data la presenza stessa di muri
che tendono ad attenuare segnali provenienti dai sensori posti nelle sale
adiacenti (cfr 3.3), facilita l’individuazione della zona in cui è presente il
terminale mobile;
26
•
La presenza di ostacoli tendono a ridurre anche le interferenze dovute
alla possibile presenza di segnali radio della stessa frequenza . Per di più,
non essendo
interessati alla esatta posizione del dispositivo mobile,
l’approccio adottato presenta una maggiore tolleranza agli errori e non
richiede pesanti attività computazionali.
•
2.4
L’architettura generale
L’architettura proposta è stata progettata in modo da fornire un servizio di
positioning che sia indipendente dai dispositivi utilizzati e dalla tecnologia di
comunicazione wireless. Per la sua implementazione e sperimentazione , il cui
dettaglio verrà definito nel cap. IV, si è fatto riferimento ad una infrastruttura
basata sullo standard Bluetooth.
La figura 2.3 illustra il modello concettuale della architettura proposta.
User Layer
Zoning Layer
Network Layer
Measurement Layer
Connettivity Layer
Bluetooth
Figura 2.3 - Modello architetturale della soluzione proposta
27
Il livello più basso è il livello rete (Network Layer), costituito da due sottolivelli.
Il primo è rappresentato dal livello connessione (Connectivity Layer), contenente
le funzionalità specifiche disponibili in Bluetooth per la ricerca e la creazione di
una connessione con tutti i sensori Bluetooth raggiungibili.
Un dispositivo
raggiungibile dal terminale mobile rappresenta un qualsiasi sensore di rete
situato nel range radio del dispositivo mobile e che sia in grado di accettare la
richiesta di connessione.
Il secondo sottolivello consente di leggere l’intensità dei segnali ricevuti da tutti i
sensori posti nelle vicinanze (Measurement Layer); il livello della potenza del
segnale ricevuto può essere stimato in maniera indiretta attraverso la lettura del
Received Signal Strength Indication (RSSI)(cfr 3.5.6).
Il livello “zona” (Zoning Layer), attraverso una comparazione dei diversi valori
di intensità ricevuti dai vari sensori, consente di trasformare le informazioni
disponibili al livello Measurement in una indicazione sulla posizione occupata
dal dispositivo mobile .
Il livello superiore è il livello utente (User Layer); in questo livello viene fornita
all’utente l’indicazione sulla sala è oggetto della visita con i relativi servizi di cui
può disporre.
28
Capitolo 3
Analisi delle tecnologie per il positioning dei
dispositivi mobili
3.1
Introduzione
Con il crescente sviluppo delle reti wireless e dei dispositivi mobili che
hanno
portato ad affiancare alle infrastrutture di reti classiche nuove
infrastrutture di reti ibride, definite di Nomadic Computing, affiora subito il
concetto di “mobilità”, assenza di un luogo fisico e fisso da cui avere accesso al
mondo digitale.
Viene spontaneo allora il pensiero della possibilità di fornire servizi
basati sulla posizione dell’utente all’interno di un ambiente più o meno vasto.
Ecco quindi sorgere la necessità di strumenti che permettano la localizzazione di
un utente; o meglio, del terminale mobile che lo accompagna. In tal modo si apre
un vasto scenario di Location Based Services (LBS) ad alto valore aggiunto, sia
per l’utente che per il fornitore stesso del servizio.
Scopo di questo capitolo è descrivere i principi sui quali si basa la
localizzazione di un terminale mobile, le tecniche possibili ed alcune
applicazioni che ne fanno uso.
3.2
Sistemi di coordinate
29
Come è noto dalle classiche conoscenze di geometria, ogni posizione
deve essere riferita ad un particolare sistema di riferimento [1]. Ad esempio è
possibile affermare che la posizione di un oggetto è data dalle coordinate x,y,z
rispetto ad una origine prefissata, oppure che è a x,y,z rispetto ad un altro
oggetto. Nei sistemi di localizzazione questo problema deve essere affrontato in
modo sistematico ogni qualvolta ci si trova nella situazione di dover determinare
(e/o comunicare) la posizione di un oggetto. Sinteticamente i metodi usati ed
utilizzabili sono due:
•
coordinate locali: ossia un sistema di coordinate scelto a priori
localmente rispetto all’ambiente nel quale si opera e mediante il quale
si identificano tutti gli oggetti di interesse;
•
coordinate geografiche: in tal caso il sistema di riferimento si basa
sulla Terra, e la posizione individuata è univoca su tutto il pianeta. Di
conseguenza, in tal caso, c’è possibilità di comprensione tra i più
disparati interlocutori, in quanto un sistema di tal genere è condiviso
ovunque.
La preferenza ad uno od all’altro avviene in base all’infrastruttura esistente e
agli strumenti utilizzati, ai dati disponibili,
ai vincoli dati da precedenti
decisioni. Ad esempio, se si utilizza il GPS (cfr. 3.6.7) non è possibile scegliere
un qualsiasi sistema di coordinate, in quanto tale sistema prevede l’utilizzo di
ricevitori che forniscono la posizione in termini geografici; sarà quindi
obbligatorio, nell’implementazione di un sistema di tal genere, utilizzare
coordinate di tipo geografico, congruentemente con le informazioni fornite dal
ricevitore.
3.2.1 Coordinate Relative ed Assolute
Oltre alla distinzione geografiche/locali, i sistemi di coordinate possono
essere suddivisi nelle seguenti due categorie:
30
•
coordinate relative: ogni oggetto possiede il proprio sistema di
riferimento, non valido per gli altri;
•
coordinate assolute: si ha un unico sistema di riferimento
condiviso e interpretabile da tutti gli oggetti dello spazio di
interesse;
3.3 Modellazione dell’ambiente di interesse
In tutti i casi in cui si vuole localizzare un oggetto all’interno di un ambiente
più o meno vasto, è necessario avere di quest’ultimo una descrizione anche
sommaria, in modo da considerare aspetti critici nella definizione della
tecnologia da utilizzare. I problemi che nascono nell’affrontare lo sviluppo di un
sistema di localizzazione, infatti, sono in parte dovuti allo specifico ambito in cui
ci si muove.
Si vedranno, nel proseguo del capitolo, metodi che derivano, in diversi modi,
la posizione da caratteristiche fisiche dei segnali misurati. Importanza
fondamentale nella localizzazione di un terminale mobile è quindi l’ambiente nel
quale ci si muove e come questo viene modellato in termini, ad esempio, di
propagazione di un segnale elettromagnetico in presenza di ostacoli.
Gli errori che sorgono da tale misura indiretta sono da ricercarsi nei seguenti
tre aspetti:
→ errori dovuti alla precisione e sensibilità del sistema di rilevamento
dei segnali da misurare;
→ errori dovuti alla conversione di queste misure in caratteristiche
geometriche, dovuti a modellazione dell’ambiente in modo più o
meno preciso;
→ errori dovuti all’algoritmo vero e proprio in termini di accuratezza,
precisione: ad esempio nel caso della soluzione di equazioni non
lineari mediante approssimazioni.
31
Un problema molto importante di cui tener conto
è quello del cosiddetto
“Multipath Fading” [14], ossia la presenza di cammini multipli del segnale dal
trasmettitore al ricevitore. Esso altera in maniera sensibile
il segnale al
ricevitore, dando parecchi problemi in fase di rilevamento della potenza
effettivamente ricevuta attraverso il cosiddetto “Direct-Line-Of-Sight” (DLOS),
ossia il contatto diretto che vi è fra trasmettitore e ricevitore. Tale segnale esiste
sempre, ma può essere così debole da non essere rilevabile. Al contrario le altre
vie di comunicazione sono dette “Non-Direct-Line-Of-Sight” (NDLOS). Per
alcuni sistemi il problema del Multipath non è rilevante, in quanto il segnale
DLOS è disturbato solo in minima parte dagli altri segnali “spuri”. Questo
avviene, ad esempio, nei sistemi outdoor con una copertura adeguata. Nei
sistemi indoor, viceversa, questo è un fenomeno sempre presente e di esso
bisogna tenere conto.
Se pensiamo sempre ad ambienti Indoor nasce quindi il problema della
modellazione degli “ostacoli” che il segnale deve attraversare, tipicamente i muri
tra le varie stanze.
3.4 Triangolazione
In molti sistemi, l’opera di localizzazione è basata sulla cosiddetta
“triangolazione” di informazioni provenienti da terminali dell’infrastruttura. La
triangolazione usa proprietà geometriche e si presenta sotto due forme, chiamate
“Lateration” e “Angulation”. Tali sistemi possono essere utilizzati, nel caso più
generale, in spazi n-dimensionali.
32
3.4.1
Lateration
La localizzazione del punto incognito X si basa sull’utilizzo di distanze
relative rispetto a punti noti e non allineati. In ambito 3-dimensionale, i punti
necessari saranno 4. In figura la semplice descrizione di tale tecnica:
Figura 3.2 – Lateration bidimensionale
Vincoli dipendenti dallo specifico dominio applicativo potrebbero in alcuni casi
determinare una riduzione dei punti da considerare. Ad esempio se i punti noti
sono sempre “sopra” al punto incognito, ad esempio sul soffitto di una stanza
come nel sistema Active-Bat (cfr 3.6.3), sono necessarie solo 3 distanze relative
per effettuare la lateration e non 4. In tutti i casi, comunque, il problema è
stabilire le distanze relative; ciò può avvenire in modo diretto od indiretto. Il
modo diretto è ovviamente riconducibile alla misura classica di distanze, ma
risulta essere impraticabile in un sistema automatico di rilevazione. Il metodo
indiretto, invece, sfrutta fenomeni fisici mediante i quali è possibile, con l’uso di
modelli, determinare la distanza relativa; ad esempio (cfr. 3.5.6) l’attenuazione
della potenza del segnale o il suo time-of-flight (ToF) (cfr. 3.5.3). La figura 3.2 si
riferisce a casi teorici, nei quali le misure sono esattamente determinabili e non
affette da errori di sorta. Nelle applicazioni pratiche, al contrario, ci si scontra
con errori di diverso tipo e natura che portano ad avere un “range” spaziale nel
quale il punto incognito può trovarsi (come mostrato in Figura 3.3).
33
Figura 3.3 – Lateration bidimensionale con dati spuri
3.4.2
Angulation
L’Angulation è simile alla Lateration, eccettuato il fatto che utilizza angoli al
posto di distanze. In generale, nel caso bidimensionale, è necessario
conoscere una distanza (ad esempio quella fra gli oggetti dell’infrastruttura) e
due angoli, come mostrato in figura:
Figura 3.4 – Angulation bidimensionale
In tal caso quindi il problema si sposta alla misura degli angoli. Un esempio può
essere un sistema basato su più antenne, poste a distanza nota l’una dall’altra,
che captano il segnale e riescono a calcolare l’angolo di arrivo del segnale stesso.
In caso 3-dimensionale servono, in generale, una lunghezza, due angoli e una
misura di azimuth (ovvero altezza sopra l’orizzonte). Anche in tal caso, come
34
nella Lateration, ci si trova in generale di fronte a stime non precise degli angoli,
il che porta alla seguente situazione:
Figura 3.5 – Angulation bidimensionale con dati spuri
3.5 Metodi di Localizzazione
Definiti i tipi di rappresentazione delle coordinate su un piano
bidimensionale, occupiamoci di come le coordinate incognite di un oggetto
possano essere rilevate in modo automatico da un sistema informatico[7].
Nei sistemi di localizzazione che verranno analizzati saranno sempre presenti i
seguenti componenti:
•
un sistema di riferimento, condiviso da tutti gli attori presenti nel
sistema;
•
un’infrastruttura composta da terminali dalla posizione nota
all’interno del sistema di riferimento prescelto;
•
uno o più terminali mobili da localizzare;
•
un sistema di comunicazione, tipicamente wireless
•
un algoritmo che effettua l’operazione vera e propria di
localizzazione.
Queste caratteristiche non permettono di modellare un sistema di tipo “ad-hoc
network”, ossia dove tutte le entità risultano essere mobili e con posizione
35
ignota. Moltissima letteratura è presente in questo vasto ed attuale campo; nel
seguito si vedrà un algoritmo di base di queste tecniche (cfr. 3.6.10).
3.5.1 Una tassonomia dei sistemi di localizzazione
Nel seguito del capitolo ci si soffermerà sulle varie metodologie che è
possibile utilizzare per implementare un algoritmo di localizzazione.
Nella letteratura, tipicamente, si suddividono i sistemi di localizzazione
sulla base dell’entità che effettua il posizionamento [5], [6]. Si introduce quindi
la seguente classificazione:
•
sistemi di localizzazione “Network-based”, ove è l’infrastruttura che
calcola e conosce la posizione del terminale mobile, comunicandola
successivamente a quest’ultimo;
•
sistemi di localizzazione “Handset-based”, ove, viceversa, è il
sistema mobile stesso che riesce a calcolare la propria posizione
mediante le informazioni inviategli dai terminali componenti
l’infrastruttura.
Come apparirà chiaro durante la descrizione dei vari sistemi di localizzazione,
però, tale suddivisione non è sempre possibile, dipendendo molte volte più dalla
specifica implementazione che dal sistema teorico utilizzato. Inoltre non sono
mutuamente esclusive, ma possono coesistere in soluzioni ove sono applicati più
metodi di localizzazione.
Un’altra caratteristica è l’ambito di applicazione della tecnologia:
•
outdoor: tecnologie che permettono la localizzazione nell’ambito di
ambienti aperti;
•
indoor: tecnologie che, viceversa, permettono la localizzazione in
ambienti chiusi;
36
Un’ultima, importante, distinzione è come l’apparato di localizzazione
interagisce con la struttura esistente: si hanno quindi sistemi “overlay”, ossia
“costruiti sopra” una rete già esistente, o tecniche “integrated”, ovvero che
utilizzano in modo massiccio le caratteristiche delle rete con la quale sono state
costruite e pensate.
Oltre quelli già visti, altri e svariati parametri definiscono un sistema di
localizzazione; di seguito un breve elenco dei più importanti:
•
accuratezza del sistema, ossia il massimo dettaglio in termini di
posizione ottenibile dal sistema;
•
precisione,
ossia
quante
volte
il
sistema
risponde
con
quell’accuratezza; ad esempio, il sistema “Active Bat” (cfr.3.6.3)
ha un’accuratezza di 9 cm ed una precisione del 95%;
•
scalabilità: il numero di “elementi” localizzabili e quante risorse
sono necessarie a tal fine;
•
costi in termini di tempo, spazio occupato dall’infrastruttura e di
capitali impiegati;
•
limiti della tecnologia impiegata;
•
adattabilità a condizioni inattese (robustezza del sistema).
Nel seguito si prenderanno in considerazione quelle tecnologie di
“Location Sensing” che permettono di misurare indirettamente la posizione
incognita del terminale.
3.5.2 Proxymity
37
Il sistema di localizzazione prevede di determinare la posizione di un oggetto
mediante la sua “prossimità”, “vicinanza” rispetto a locazioni note. La
presenza dell’oggetto deve essere percepita dal sistema mediante fenomeni
fisici dalla portata limitata. I possibili approcci sono 3:
•
contatto fisico: in tal caso l’infrastruttura può essere costituita da
sensori a contatto come pulsanti, touch screen ecc…;
•
monitoraggio dei punti di accesso al sistema: in tal caso si ha a
che fare con un infrastruttura composta da terminali ai quali
l’oggetto si “connette” in base alla vicinanza. Se la connessione è
individuata, allora si può stabilire in prima approssimazione la
“zona” in cui si trova l’oggetto;
•
utilizzo di informazioni possedute dall’oggetto: in quest’ultimo
caso l’oggetto comunica nei modi più svariati informazioni sul
proprio stato all’infrastruttura. Ad esempio terminali pubblici,
bancomat, ma anche il “tele-pass” autostradale ecc…
3.5.3 Time-of-Flight
Il sistema “Time-of-Flight” (ToF) spesso chiamato anche “Time-ofArrival” (ToA) si basa sul tempo che impiega il segnale a percorrere la distanza
che separa trasmettitore e ricevitore, di cui uno abbia posizione nota.
Conoscendo la velocità V del segnale è ovviamente possibile ricondursi alla
distanza D = V*ToF. Il segnale può essere di ogni genere, dalle onde sonore ad
ultrasuoni, a segnali radio. In tale situazione i “clock” di trasmettitori e ricevitori
devono essere tutti perfettamente sincronizzati (problema non banale) ed in più
ad alta risoluzione, in quanto le onde elettromagnetiche “viaggiano” alla velocità
della luce C (pari a circa 299.792,5 km/sec ). Se, come tipicamente avviene, le
distanze non sono molto grandi, il tempo da misurare è estremamente basso
(dell’ordine dei nS).
Nell’utilizzo di questo metodo è necessario altresì tener conto di molti
fenomeni quali riflessione e rifrazione e quindi del fenomeno già descritto del
Multipath. Considerando poi più punti e più segnali, è possibile triangolare le
38
informazione per ottenere la posizione incognita. E’ tipicamente un sistema di
tipo “Netwok-”, ossia la computazione avviene nelle “stazioni fisse”. Di
conseguenza risulta essere economico in quanto non necessita della reingegnerizzazione dei terminali mobili.
3.5.4
Time Difference Of Arrival
Estremamente simile al metodo precedente, TDOA è basato sempre sulla
misura del Time-of-flight e risulta essere una tecnologia Network-based. Il
funzionamento, illustrato in figura [3.25], si basa sulla differenza fra i tempi
misurati dal terminale mobile relativi ai segnali provenienti, anche in tal caso, da
tre diverse stazioni. Calcolate due “differenze” mediante i Time-og-flight dei tre
segnali disponibili, e note le coordinate dei trasmettitori, è possibile ottenere due
curve iperboliche con i fuochi nelle rispettive stazioni fisse di origine, la cui
intersezione fornisce le coordinate del terminale.
Figura 3.6 – Lateration iperbolica
Il vantaggio principale di una soluzione di questo tipo rispetto al ToA è che
diviene necessario sincronizzare unicamente i clock delle stazioni fisse, e non
quello del terminale mobile. In questo caso, come è possibile notare, avviene una
lateration “particolare”, non tra sfere ma tra iperbole; anche in tal caso,
comunque, la misura è in generale affetta da errori. Anche questo tipo di tecnica
di localizzazione soffre dei problemi già descritti di Multipath.
39
3.5.5
Angle-of-Arrival
In tal caso (AoA) quello che viene misurato è l’angolo di arrivo del
segnale per poi effettuare la già citata angulation. E’ necessario quindi avere
informazioni su due stazioni. Un modo per realizzare questo metodo, tipicamente
Network-based, è quello di dotare le antenne di un “array” di ricevitori, in modo
da capire quale di questi ha ricevuto il segnale migliore e calcolare quindi
l’angolo di arrivo dello stesso. Il network, conoscendo le distanze relative fra le
postazioni fisse riesce quindi a calcolare la posizione del terminale. Ovviamente
in questo caso la precisione del sistema si basa sull’accuratezza con cui viene
calcolato l’angolo di arrivo, e , di conseguenza, sul numero di elementi presenti
negli array delle antenne.
Figura 3.7 – Metodo di funzionamento AoA
3.5.6
Received Signal Strenght Indication
L’intensità di un segnale, come noto, decresce all’aumentare della
distanza
dalla
sorgente
emittente
[26],
dando
luogo
al
fenomeno
dell’attenuazione. Dato un modello che leghi attenuazione A e distanza D e nota
40
la potenza P di partenza, è quindi possibile stabilire la distanza relativa, ad
esempio, fra un elemento noto e l’oggetto mobile. Avendo a disposizione più
elementi noti, mediante triangolazione (lateration), sarà poi possibile determinare
l’esatta posizione dell’oggetto. Questo è il metodo RSSI, nel quale si assume di
avere a disposizione un modello nel quale potenza_ricevuta = f(distanza). Ad
esempio, per un segnale radio emesso in un ambiente libero da ostacoli e da
rumore è attenuato di un fattore 1/D2 [26] vale la relazione:
P(d )[dBm] = P(d 0 )[dBm] − 20 log(
d
)
d0
Ovviamente questo caso è una semplificazione notevole di un ambiente
indoor, cosa che porta inevitabilmente ad un peggioramento delle performance,
a meno di raffinamenti del modello di descrizione dell’ambiente. Problemi come
il “Multipath Fading” e l’attenuazione dovuta ad ostacoli dovrebbero infatti
essere tenuti in debita considerazione.
Nelle sperimentazioni pratiche questo sistema ha comunque dimostrato una
intrinseca fragilità rispetto ai problemi summenzionati, con particolare
riferimento al rumore che si “somma” al segnale. Sarebbe necessaria, infatti,
un’attenta analisi dell’ambiente, cosa non sempre possibile. Un metodo per
ovviare a tale inconveniente è quello di affiancare a tale metodo la scene analisys
(cfr. 3.5.7) come avviene nel metodo RADAR (cfr. 3.6.9). Oppure utilizzare
strumenti di calibrazione e “profiling” dell’ambiente, solitamente basati sul
“filtro di Kalman” [23] [27].
3.5.7 Scene Analisys
La presente tecnica, chiamata anche con il nome di “Finger-Print”, si
prefigge di collocare l’oggetto nella sua esatta posizione, considerando una serie
di caratteristiche (“feature”) dell’ambiente di riferimento prese in punti prefissati
41
durante una fase detta di “off-line”, ossia staticamente determinate mediante
un’ispezione dell’ambiente stesso. Tali features non fanno altro che semplificare
l’ambiente per la successiva fase “on-line”. In tale fase si effettua il
monitoraggio istantaneo delle features dell’oggetto mobile e le si confrontano
con i dati “off-line”. Mediante un modello che descrive l’ambiente nel quale ci
troviamo, ed un algoritmo che lega dati off-line ed on-line si può arrivare a
determinare la posizione stimata del terminale. Il metodo più banale, comunque
applicabile ed applicato, risulta essere una semplice ricerca esaustiva, mediante
la quale si può arrivare a determinare a quale dei punti prefissati è più vicino
l’oggetto in questione mediante algoritmi cosiddetti di Pattern Matching.
Figura 3.8 – sistema di “Scene Analisys”: fase “On-line”
In tal caso, quindi, si ha una discretizzazione dello spazio, nel quale la precisione
dipende da quanto la “griglia” di punti considerati è “fine”. Numerose varianti
sono comunque presenti, al fine di migliorarne le prestazioni.
Un esempio di questo metodo di scene analisys è la ricerca in base ad
immagini dell’ambiente; avendo a disposizione una telecamera montata su un
veicolo, si potrebbero, nella prima fase, memorizzare foto in particolari punti e,
nella seconda fase, confrontare una foto ottenuta “dinamicamente” con l’intero
Database di immagini, scegliendo la “più simile”.
Il vantaggio di un sistema di tal genere è che è possibile arrivare alla
determinazione della posizione senza considerare misure indirette di angoli e
distanze, cosa che può comportare la costruzione di un modello matematico
complesso (ad esempio come la potenza ricevuta
42
varia al variare della
distanza in ambienti con ostacoli rilevanti e/o rumore casuale). Il metodo può
essere applicato in modalità sia Network-based che Handset-based. La prima
soluzione è comunque preferibile in quanto si ha la necessità di avere a
disposizione dati, modelli e potenza di calcolo che su un terminale
potrebbero non essere ottenibili con facilità. Uno svantaggio è che la
calibrazione off-line va ripetuta in caso di cambio dell’ambiente di
riferimento o delle condizioni globali del sistema.
3.5.8
Miglioramenti del sistema di localizzazione
Visti i sistemi base di localizzazione è opportuno notare come tali sistemi
siano solo il principio di un apparato di localizzazione che voglia avere
performance di precisione accettabili. Alcuni metodi di miglioramento sono i
seguenti, anche se a volte possono risultare inapplicabili:
•
utilizzo di un numero maggiore di stazioni fisse delle minime
necessarie (rispetto ad un metodo di copertura minima della
superficie), in modo da avere un maggior numero di misure
attraverso le quali effettuare la triangolazione, ossia la citata
Multilateration (cfr. 3.4);
•
utilizzo di diversi metodi e comparazione, anche in tal caso, dei
vari risultati; ovviamente più i metodi sono indipendenti tra loro,
più la successiva comparazione potrà diminuire il livello di
imprecisione di ciascun metodo preso singolarmente; infatti ogni
tecnologia ha la sua tipologia di distribuzione statistica degli
errori [10]. Ad esempio sono applicabili (e applicate) soluzioni
AoA + RSSI, AoA + TDOA, EOTD + AGPS…;
•
utilizzo di algoritmi “History Based”, ove si tiene traccia di N
posizioni precedenti, effettuando l’aggiornamento della posizione
anche sulla base delle informazioni correnti. In tal caso si ha
necessità
di
memorizzare
un
data-set
di
informazioni,
aggiornandolo ad ogni passo. Ad esempio, semplicemente sulla
43
base della posizione precedente, si potrebbe calcolare un range
massimo
di
variazione
(dipendente
dall’intervallo
di
campionamento), eliminando così eventuali risultati ambigui. Tale
pratica è ad esempio utilizzata nei sistemi di “Scene Analisys”;
•
nel caso di un sistema di localizzazione basato su un legame
segnale distanza, poiché il modello è difficilmente ottenibile in
modo preciso, si corre il rischio che il rumore “sovrasti”
l’informazione, dando luogo a risultati decisamente erronei nella
maggioranza delle misure .
Per ovviare a tale problema, un metodo è quello di tenere traccia
dei campioni precedenti, filtrando il segnale in real-time e
consentendo di stabilire posizione e velocità attuali “stimati”, per
poi effettuare una predizione su posizione e velocità future [22].
Questo lavoro può essere effettuato, ad esempio, dal filtro di
Kalman [23]; Il problema che sorge è un “ritardo” nella
predizione della posizione corrente:
3.6 Sistemi esistenti
I recenti sviluppi della tecnologia “mobile” hanno fatto sì che si creassero
le condizioni per la nascita dei cosiddetti “Location Based Services” (LBS),
ossia servizi forniti a utenti mobili e basati sulla loro posizione. Di seguito una
tabella riassuntiva delle diverse tecnologie di localizzazione presenti attualmente
[10]; di questi, alcuni saranno brevemente descritti nel presente paragrafo.
In questa tabella sono presenti alcune indicazioni che è opportuno spiegare
brevemente:
•
phisycal / symbolic: indica se le coordinate fornite sono date in
termini di grandezze misurabili (Phisycal) come, ad esempio,
44
latitudine e longitudine, oppure se sono indicazioni di tipo simbolico
(Symbolic) mediante le quali si da un idea di dove si trova l’utente:
“vicino a…”, ”in… ” ;
•
absolute/relative: in tal caso si differenziano le coordinate in base al
fatto se sono condivise da tutti gli attori del sistema (Absolute), non
importa se locali o geografiche, oppure se ogni attore possiede un
proprio sistema di riferimento (Relative);
•
localized location computation: indica se la computazione avviene
direttamente sul terminale (ossia se è un sistema “Handset-based”);
•
recognition: indica se il sistema è in grado di “riconoscere” il
terminale (o solo alcune caratteristiche di questo) che deve essere
localizzato.
45
Figura 3.9 – Sistemi di localizzazione esistenti
46
3.6.1 Enhanced 911
Un’ulteriore motivazione che ha portato all’implementazione pratica di
sistemi LBS è stata la decisione, presa dalla statunitense “Federal
Communication Commission”(FCC) di emanare la “Phase II” della direttiva
cosiddetta “Enhanced 911” (E911) [8].
In tale direttiva si richiede espressamente che i gestori di telefonia mobile
mettano a disposizione infrastrutture (anche in collaborazione con i venditori di
dispositivi mobili) che permettano di localizzare una chiamata al servizio di
emergenza americano (numero telefonico: 911) con i seguenti parametri:
•
il 95% della chiamate effettuate da dispositivi mobili sia
localizzabile nell’arco di 150 metri;
•
il 67% della chiamate effettuate da dispositivi mobili sia
localizzabile nell’arco di 50 metri;
•
la localizzazione sia effettuata entro 30 secondi dall’inizio della
chiamata.
Analizzando vari sistemi, si può notare, da analisi sperimentali effettuate dagli
enti coinvolti, come la CGI-TA (cfr. 3.6.6) non sia sufficiente a raggiungere
questi obiettivi, mentre le tecniche utilizzate [9] sono sostanzialmente due: EOTD e A-GPS.
Ovviamente i requisiti dati dalla FCC, di obbligatoria applicazione, fanno sì che
questi sistemi siano utilizzabili anche per molti altri scopi. Ciò ha contribuito
fortemente all’interesse che si ha al giorno d’oggi sui suddetti LBS.
3.6.2 Active Badge
Primo prototipo di un sistema di localizzazione, l’Active badge [17], fu
sviluppato inizialmente dai “Olivetti Research Laboratory” e successivamente
dalla “AT&T Cambrige” [18]. Basato su tecnologia a raggi infrarossi IR,
consiste in una griglia di ricevitori posti all’interno dell’area di interesse
(tipicamente uno per stanza), e dei sensori indossati dagli utenti. Ogni sensore
trasmette un impulso (beacon) ogni 10 secondi contenente un identificativo
47
unico del sensore; questo viene intercettato da un ricevitore e quindi dal sistema
centrale (mediante polling su tutti i ricevitori) che ne determina la posizione in
base alla tecnica di prossimità. Nel caso specifico, infatti, viene considerato
unicamente il ricevitore che cattura il beacon. Ovvio problema di questo metodo
è l’uso dei raggi infrarossi, bloccati da ostacoli opachi e inadatti all’uso in
ambienti sottoposti alla luce diretta del sole o in presenza di luci fluorescenti.
Inoltre la granularità sia in termini di tempo (1 dato ogni 10 secondi per sensore)
sia in termini di spazio risultano essere mediocri per un sistema di
localizzazione.
Altro sistema basato sulla tecnologia IR è quello utilizzato intensivamente
nella “computer animation”, nella quale i sensori sono collocati sulle parti
mobili del corpo umano e i ricevitori ne “seguono i movimenti”. I limiti sono
sempre quelli descritti precedentemente, ma comunque questa risulta una valida
soluzione per il particolare campo applicativo.
3.6.3 Active Bat
Più recente rispetto all’Active Badge, l’Active Bat [19], sviluppato sempre
dai laboratori AT&T, utilizza come infrastruttura sensori a ultrasuoni, mentre
come tecnica di localizzazione la Lateration mediante Time-Of-Flight. Anche in
questo caso gli utenti indossano dei trasmettitori che emettono impulsi ad una
griglia di sensori posti sul soffitto. Tali sensori sono connessi al network fisso e
tra di loro mediante una rete “wired”. Il sistema centrale provvede a
sincronizzare i ricevitori mediante un segnale a radio-frequenza di reset; inoltre
lo stesso segnale è inviato contemporaneamente anche ai trasmettitori che
impostano ti. Ricevuto il segnale di reset, i trasmettitori emettono un segnale ad
ultrasuoni catturato da tutti i ricevitori mobili, che sono quindi in grado di
calcolare i vari ToF essendo a conoscenza di ti. Calcolate quindi localmente le
varie distanze, queste vengono mandate al sistema centrale che elabora i dati e
fornisce la posizione stimata del terminale.
48
Figura 3.10 – sistema Active Bat
Da notare che la posizione fornita è in termini di x,y,z (ossia
tridimensionale), sono necessari solo 3 sensori (cfr. 3.4.1). Sperimentalmente si è
ottenuta una precisione di 3 cm nel 95 % delle misure.
3.6.4 Cricket
Complementare al precedente Active Bat, il sistema Cricket Location
Support System [20] utilizza emettitori di ultrasuoni come infrastruttura montata
sul soffitto, mentre il ricevitore è indossato dall’utente. In tal modo si passa dal
sistema “Network-based” precedente ad uno “Handset-based”, dove il ricevitore
ha tutte le informazioni per rivelare la propria posizione sempre mediante
triangolazione dei segnali ricevuti (più precisamente dei loro ToF). Al fine di
sincronizzare i trasmettitori viene anche in questo caso utilizzato un sistema di
segnalazione basato su segnali a radio-frequenza. Anche se attualmente il
sistema risulta meno preciso dell’Active Bat, concettualmente non vi è alcuna
differenza; ciò porta a immaginare future implementazione più accurate. Al
momento attuale il sistema riesce a discriminare regioni di 4 piedi2 (meno di 1
metro2). Punti di forza del sistema sono la privacy, in quanto la posizione è
calcolata in modo decentralizzato, la scalabilità, in quanto non necessità di
49
potenza di calcolo su computer centrali, la possibilità di integrare il Cricket sopra
ogni rete esistente, essendo da questa indipendente. Infine il sistema riesce a
tollerare anche situazioni nelle quali si ha unicamente una informazione di
distanza. In tal caso, non essendo possibile altro metodo, la posizione è data in
base alla tecnica di “prossimità”, considerando l’unico segnale ricevuto.
3.6.5 Easy Living
Molti centri di ricerca stanno sperimentando sistemi di localizzazione basati
sulla tecnologia della “visione artificiale”. Un progetto degno di nota è l’Easy
Living [21] della Microsoft Research, che utilizza fotocamere 3D a colori
montate sui muri esterni dell’ambiente di interesse, per “catturare” frame
dell’ambiente ed effettuare il posizionamento. La visione stereo delle fotocamere
permette di effettuare la localizzazione, mentre le immagini a colori permettono
di mantenere l’identità delle persone in movimento mediante gli istogrammi di
colore. Gli obiettivi di questo progetto sono i seguenti:
•
mantenere la posizione e l’identità dei soggetti di interesse;
•
avere prestazioni che permettano un refresh della posizione ad
intervalli temporali non troppo lunghi; il sistema in questione
(composto da 3 computer) riesce a lavorare ad una frequenza di
3.5 Hz;
•
lavorare con più persone contemporaneamente; Easy Living
riesce a monitorare fino a 3 persone;
•
monitorare persone che entrano ed escono dalla stanza in modo
automatico;
•
lavorare con un numero non prefissato di fotocamere, al fine di
“coprire” ogni angolo dell’ambiente;
•
mantenere la localizzazione anche nel caso di persone seminascoste da ostacoli, tavoli e oggetti.
50
3.6.6 CGI – TA
La tecnologia “Cell Global Identity” (CGI),
basata sulla tecnica di
prossimità, è utilizzata in sistemi formati da un network di stazioni che coprono
l’area nella quale si trova il terminale dividendola in celle contigue e
parzialmente sovrapposte. In sistemi di questo tipo il terminale si “aggancia” ad
una di queste stazioni (tipicamente la più vicina, ove il segnale è migliore). Il
sistema quindi riesce a catturare questa informazione e a determinare l’area in
cui il terminale è situato. Tipicamente usato nei sistemi GSM di telefonia mobile,
è di basso costo, ma anche di scarsa precisione. Inoltre la precisione a cui si può
arrivare dipende fortemente dalla zona nella quale si opera: in aree densamente
popolate, dove la copertura è decisamente maggiore, si può arrivare a valori
dell’ordine di poche centinaia di metri, mentre in zone scarsamente coperte si
può arrivare anche a parecchi chilometri.
Figura 3.11 – sistema base CGI
Una prima ottimizzazione può essere ottenuta nel caso in cui le antenne
riescano a distinguere più “settori” all’interno della cella; in tal caso si può
identificare quello dal quale proviene il segnale.
Figura 3.12 – sistema CGI + Cell Sector
51
Oppure, un altro tipo di ottimizzazione può essere ottenuta mediante la
misura del tempo di accesso alla rete, proporzionale alla distanza radiale del
terminale dall’antenna. In tal caso si è di fronte alla tecnologia “Timing
Advance” (CGI-TA), non comunque di molto migliore rispetto alla tecnica
“standard”.
Figura 3.13– sistema CGI - TA
3.6.7 GPS, D-GPS, A-GPS
Tecnologia disponibile dai primi anni ’80, il “Global Positioning System”
(GPS) [11] è una tecnologia Terminal-Based ed è formata da una rete mondiale
di 24 satelliti orbitanti a 6 diverse quote attorno ai 20000 km dalla terra.
Figura 3.14 – costellazione dei satelliti GPS
a. GPS
Sviluppato dal DoD, permette alle sue massime potenzialità (“Precise
Positioning Service”: PPS) di localizzare con i seguenti parametri:
52
o
22 meter Horizontal accuracy;
o
27.7 meter vertical accuracy;
o
200 nanosecond time (UTC) accuracy.
Liberamente usabile anche da comuni cittadini, semplicemente
acquistando un ricevitore, alcune limitazioni erano state imposte
(chiamate con il nome di Selective Availability: SA) in modo da non dare
la possibilità di sviluppare, ad esempio, sistemi di puntamento di missili.
I parametri di tale sistema (“Standard Positioning Service”: SPS) sono i
seguenti:
o
100 meter horizontal accuracy;
o
156 meter vertical accuracy
o
340 nanoseconds time accuracy.
Attualmente comunque, a partire dal Primo Maggio 2000, tale restrizione è
stata eliminata, aumentando la precisione del SPS portandola ai livelli del
PPS. Come metodo di localizzazione è utilizzato un sistema simile al ToA,
ove, al fine di ottenere le 3 coordinate geodetiche (altitudine, longitudine,
altezza geodetiche sul Datum WGS-84) ed il tempo T di rilevazione, sono
necessari i segnali di almeno 4 satelliti. I satelliti sono sempre sincronizzati
fra di loro mediante orologi atomici, e nel segnale emesso è presente anche
l’indicazione del tempo di emissione. In tal modo il ricevitore può calcolare
il Time-of-Arrival ed effettuare la triangolazione (più precisamente
lateration) . Poiché i satelliti sono posti sempre al di sopra del ricevitore
sarebbero necessari solo 3 satelliti per calcolare la posizione tridimensionale
dell’oggetto. Questo però solo se tutte le entità coinvolte fossero
sincronizzate. Poiché però il ricevitore non è sincronizzato con i satelliti, è
necessario un quarto satellite al fine di eliminare questo dissincronismo,
sincronizzando ad ogni lettura questo clock “comune” a quello del ricevitore
[12].
53
Al fine di migliorare le prestazioni del GPS, avvicinandosi ad un sistema
PPS, è stata introdotta una variante che, a fronte di maggiori costi, offre una
soluzione molto più precisa: il “Differential GPS” (D-GPS).
b. D-GPS
Il “Differential-GPS” (D-GPS) si prefigge di rendere il sistema basato su
tecnologia GPS più accurato, e fu inizialmente studiano in modo da
compensare l’errore dovuto alla modalità di funzionamento SPS. Molto
semplicemente, avendo a disposizione, oltre al ricevitore mobile MS, una
stazione GPS fissa e dalle coordinate note FS, è possibile stabilire l’errore
commesso
in
quell’area
dai
satelliti
visibili,
comunicandola
periodicamente al MS. Quest’ultimo provvede a correggere di
conseguenza la propria posizione stimata. Si può arrivare ad
un’accuratezza fino a 2 metri per il 65 % delle misure [34].
Problema fondamentale del GPS è che, a causa dell’uso dei satelliti, è
utilizzabile solamente in situazioni Outdoor, ove cioè si ha la “visibilità” degli
stessi. In contesti Indoor, dove l’ambiente blocca di fatto i segnali satellitari, altre
soluzioni sono necessarie. Una soluzione integrata è altresì possibile, in modo da
poter utilizzare il GPS quando possibile e altre tecnologie quando il sistema
satellitare è inusabile. Tale tecnologia è chiamata “Assisted GPS”.
c. A-GPS
In tale sistema, “Assisted-GPS” (A-GPS), si fa uso, oltre che della
tecnologia GPS, del network fisso delle reti GSM (che deve essere quindi
presente) mediante il quale si possono effettuare due distinte operazioni:
→ effettuare le correzioni GPS mediante ricevitori fissi e
comunicarle ai cellulari, facendo diventare quindi il sistema un
D-GPS;
54
→ effettuare delle misure di posizione indipendenti dai segnali
GPS, e comunicarle ai terminali in caso di copertura satellitare
assente.
Avendo a disposizione in special modo la seconda possibilità, si arriva quindi ad
avere un sistema integrato di posizionamento Indoor/Outdoor.
3.6.8 Sim-Toolkit
Il sistema [13] si basa su reti GSM e schede SIM (Subscribe Identifier
Module) di nuova concezione, nelle quali risiedono strumenti software atti a
localizzare il terminale mobile. Chiaramente Handset-based, il sistema fornisce,
ad applicativi appositamente realizzati, un’API di interfaccia in modo da
utilizzare le informazioni di posizione disponibili. Come si nota, il sistema non
fornisce esplicitamente un metodo di localizzazione, ma questo è lasciato alla
specifica implementazione.
3.6.9 RADAR
Il sistema, realizzato dai ricercatori P.Bahl e V.N.Padmanabhan della
Microsoft Corporation [14], si prefigge come scopo la localizzazione di terminali
mobili in ambienti Indoor utilizzando un meccanismo di “Scene Analisys”
considerando come “features” caratteristiche di ogni locazione la potenza
ricevuta (RSSI) del segnale proveniente da stazioni fisse. L’infrastruttura
considerata è una WLAN, basata sullo standard 802.11b. Le stazioni fisse e di
posizione nota sono quindi gli Access Point (AP), mentre i terminali mobili
(WT) sono dotati di una scheda WLAN.
55
Figura 3.15 – infrastruttura di riferimento RADAR
Questo sistema differisce da altri allo studio o già implementati in quanto si
prefigge di essere “non invasivo” rispetto all’infrastruttura di comunicazione. In
altre parole, non vi deve essere necessità di una strutturazione dell’ambiente
confacente alle sue necessità, bensì deve essere adattabile al luogo nel quale si
trova a lavorare. Basandosi, ad esempio, su una rete di tipo 802.11, ed essendo
disponibili, per la maggior parte di questi dispositivi, informazioni riguardanti la
potenza ricevuta dai vari WT, ci si può basare su un modello di funzionamento
del tipo “scene analisys” basato su “features” di potenza ricevuta.
3.6.9.1 Modello dei dati
Da quanto detto, pare quindi logico modellare il database con entry del tipo
xi,yi
APij , potenza_ricevutaij
dove:
i ∈ {1…N}, ossia le locazioni di interesse della griglia
formata;
j ∈ {1…M}, ossia il numero di potenze ricevute dal WT,
essendo quindi M il numero di AP presenti nel sistema;
xi,yi le coordinate del punto di interesse in una qualche
unità di misura che “mappa” la griglia;
APij , ad esempio, l’indirizzo MAC dell’AP;
potenza_ricevutaij la potenza ricevuta da WT nel punto i
dall’AP j;
56
3.6.9.2 Fase di “Off-line”
Passo preliminare alla fase “off-line” è la definizione della griglia
bidimensionale nella quale suddividere lo spazio:
→ più la griglia si compone di maglie “larghe”, più la sensibilità calerà;
→ più la griglia si compone di maglie “strette”, più vi saranno punti
indistinguibili e quindi situazioni con risultati erronei;
Successivamente, durante tale fase “off-line” vera e propria, si memorizzano i
dati nel database “statico”, se possibile considerando più campioni (L) per lo
stesso xi,yi ed effettuando una media di questi. In tal modo si possono attenuare
componenti di rumore sempre presenti.
3.6.9.3
Fase di “On-line”
In tale fase, come in tutti i sistemi di “scene analisys”, si monitorizzano i dati
“real-time” di un terminale in movimento e si confrontano questi con le “feature”
memorizzate del DB statico mediante il già citato “Pattern Matching Algorithm”.
Il problema si sposta quindi all’algoritmo da utilizzare al fine di avere il miglior
risultato in termini di “match” dell’esatta posizione con quella stimata.
Ad esmpio, si può scandire il DB e calcolare una “distanza” tra i dati “real-time”
e ciascuna “tupla” dei dati “off-line”.
3.6.10 Localizzazione in reti Ad-hoc
57
Come già accennato, tutti i metodi visti finora si basano su un infrastruttura
che consente di calcolare la posizione dei terminali mobili sia che l’infrastruttura
sia fissa, sia che, viceversa, sia mobile (come il GPS).
Un caso particolarmente interessante, e che viene in questo contesto
brevemente accennato, è quello della localizzazione in ambito di reti “Ad-Hoc”
(cfr. Capitolo 1), nel quale non esiste un’infrastruttura di appoggio e tutte le
entità coinvolte diventano mobili e quindi di posizione ignota. Ciò comporta
problemi (e soluzioni) totalmente nuovi rispetto ai casi precedenti; ad esempio
che non tutti i terminali sono visibili l’un l’altro. In tal caso si deve fare uso di
strumenti diversi, come algoritmi “collaborativi” e totalmente o parzialmente
distribuiti, richiedendo un’interazione notevole fra i terminali. Un esempio può
essere l’algoritmo “Assumption Based Coordinates” (ABC) nel quale,
brevemente, si considerano le coordinate di un terminale pari a (0,0,0) e si
determinano iterativamente quelle degli altri mediante distanze relative
determinate, ad esempio, tramite misure di potenza (metodo RSSI). In tal modo
non solo si “scopre” l’intera rete di terminali, ma, successivamente, si può
migliorare la precisione del risultato ripetendo l’algoritmo. Ovviamente, si ha a
che fare con un sistema di coordinate relativo, in cui sono note le distanze tra i
vari terminali. Se, però, alcuni terminali occupano posizioni note (ne sono
necessari almeno 4 in uno spazio tridimensionale), è possibile passare dalle
misure relative ad un sistema di riferimento “assoluto” (nel senso di condiviso da
tutti gli oggetti e “immutabile”).
Attualmente un algoritmo di questo tipo è implementato dal sistema SpotON
[30].
58
Capitolo 4
Progetto ed Implementazione
4.1
Introduzione
I capitoli precedenti hanno avuto il compito di gettare le basi teoriche di un
sistema di localizzazione nei suoi tratti generali (cfr. Capitolo 2).
Nel presente capitolo, quindi, si comincerà ad occuparsi del sistema di
localizzazione nel suo complesso, con la definizione dei dettagli architetturali
del meccanismo di localizzazione, scopo del progetto.
4.2
Il modello utilizzato
In molti lavori condotti sulla possibilità di localizzare terminali mobili in un
definito ambiente, spesso si adotta un approccio basato sulla triangolazione
dei valori delle distanze tra il dispositivo mobile e le stazioni fisse presenti in
tale ambiente. La stima delle distanze è ottenute con una delle tecniche di
localizzazione descritte nel capitolo precedente.
Nello scenario di
riferimento un tale approccio è inadeguato per il seguenti motivo:
59
•
non è robusto nei confronti di interferenze dovute alla presenza di
ostacoli come ad esempio muri, e per effetto della possibile presenza di
segnali con frequenze simili;
•
la presenza di molti dispositivi per realizzare il positioning e/o di
modelli di stima molto complessi determinano un aumento dei costi
dell’intera infrastruttura.
Nell’approccio proposto (cfr Capitolo 2), per l’identificazione della
posizione del dispositivo mobile,
si è evidenziato il fatto di voler
determinare la posizione del dispositivo non in termini di coordinate ma
semplicemente attraverso una stima
supposto
della zona, intesa come sala di un
edificio, in cui il dispositivo stesso
è situato. Assumendo la
presenza di un sensore per ogni sala come illustrato in figura 4.1,
l’individuazione della zona caratterizzata dalla presenza del dispositivo,
equivale alla scoperta della sala in cui è situato.
Sensori
Figura 4.1 - Sale del museo con sensori
La soluzione si basa sulla tecnica di localizzazione definita RSSI (Receiver
Signal Strength Indicator)(cfr 3.5.6). Il dispositivo mobile acquisisce
60
informazioni sulla intensità
sensori. Tali valori
di tutti i segnali rilevabili, provenienti dai
sono funzione della distanza che intercorre tra
dispositivo mobile ed i sensori posti nel range di azione; al crescere della
distanza diminuisce l’intensità del segnale. La sola informazione sulla
potenza ci consente di determinare la sala nel quale il dispositivo mobile sta
operando. Infatti, la comparazione dei livelli di potenza rilevati per ciascuna
connessione, consente di stabilire il valore massimo e di conseguenza il
sensore più prossimo alla unità mobile.
Ad avvalorare una scelta di questo tipo, anziché un più complesso e costoso
modello di localizzazione, c’è da considerare che con la presenza di un sensore
per ciascuna sala si ha una riduzione degli effetti dovuti alla presenza di ostacoli
come i muri, ad esempio, e degli errori di misura che spesso caratterizzano le
soluzioni basate sulla triangolazione. Infatti la stessa presenza di muri consente
di smorzare i segnali provenienti dai sensori dislocati nelle sale adiacenti a quella
in cui e presente il dispositivo mobile, facilitando il compito di localizzazione
secondo il metodo proposto. Per di più, non essendo interessati alla esatta
posizione del dispositivo, la soluzione adottata è più tollerante agli errori e non
richiede pesanti attività computazionali.
Non va dimenticato, inoltre, che se si adottasse una soluzione basata sulla
triangolazione, per migliorare l’accuratezza sarebbe necessario l’utilizzo di
sensori sofisticati e/o più di tre acces point. Tutto ciò comporterebbe un aumento
dei costi dell’infrastruttura per la realizzazione del positioning.
4.3
Definizione dell’infrastruttura del sistema di localizzazione
Una volta definita l’architettura generale (cfr. Capitolo 2), il passo successivo
è costituito dalla scelta della infrastruttura
comunicazione fra i vari dispositivi impiegati.
61
di basso livello che gestisca la
4.3.1 Scelta dello Standard di Comunicazione: Bluetooth
Il progetto in esame si basa su un sistema informatico nel quale sono presenti
terminali mobili che devono interagire con dei sensori dislocati nelle sale di un
edificio; questi ultimi forniscono le informazioni
e/o servizi utilizzati
dall’utente. Riguardo al sistema di localizzazione, quindi, questo è un aspetto che
pone vincoli all’infrastruttura al quale il sistema deve sottostare.
Da questa breve descrizione nasce, infatti, la considerazione che deve essere
presente un’infrastruttura che permetta una comunicazione di tipo wireless.
Ecco, quindi, la scelta dello standard 802.15: Bluetooth.. Questo tipo di
soluzione consente di adottare la tecnica di localizzazione per ambienti indoor
basata sull’RSSI (cfr. 3.5.6). Infatti, anche se in maniera indiretta, lo standard
Bluetooth consente di monitorare l’intensità dei segnali ricevuti dal dispositivo
mobile attraverso una implementazione dell’RSSI disponibile in un registro
hardware a cui si può accedere mediante le funzionalità del driver HCI [metti rif
da articolo massimo] . Vediamo una breve descrizione dello stack Bluetooth.
4.3.1.1
Lo Stack Protocollare Bluetooth
Lo stack protocollare Bluetooth [1], come evidenzia la figura 4.2, è
costituito dai seguenti livelli:
•
Radio: è il livello fisico di Bluetooth (RF), il più basso; definisce i
requisiti del transceiver Bluetooth che opera su una banda di 2.4
GHz.
•
Baseband Layer: è il livello MAC e, ovviamente, si colloca sopra al
livello Radio; gestisce l’accesso al mezzo, le comunicazioni sincrone
ed asincrone tra i peer e, quindi, le procedure di paging ed inquiry per
l’accesso ai dispositvi Bluetooth presenti nell’area.
•
Link Manager Protocol: si occupa della creazione, configurazione e
del management delle comunicazioni oltre che dell’autenticazione. A
questo livello sono implementate anche alcune funzioni di sicurezza,
62
ed il controllo di potenza che, tra l’altro, permette ai dispositivi
Bluetooth di aumentare o diminuire la potenza di trasmissione.
•
Logical Link Control and Adaption Protocol (L2CAP): è il link layer;
fornisce servizi connection-oriented e connectionless per i livelli
superiori dello stack Bluetooth.
•
Host Controller Interface (HCI): è l’interfaccia tra l’hardware ed i
livelli superiori dello stack Bluetooth. Esso è stato progettato per
fornire un set standard di comandi per accedere all’hardware e
controllare i registri.
•
RFCOMM: è un semplice protocollo di trasporto basato sullo
standard ETSI TS 07.101 [2]. Esso definisce dei metodi per emulare
una connessione RS-232.
•
OBEX: specifica un protocollo che permette lo scambio di oggetti e
strutture dati tra dispositivi remoti.
•
SDP: è un protocollo per il discovery dei dispositivi al fine di scoprire
i servizi disponibili su una connessione Bluetooth e definirne le
caratteristiche.
1
Questo standard è anche chiamato TS 101 369
63
Figura 4.2 - Lo Stack Protocollare Bluetooth
4.3.1.2 Campo di copertura Bluetooth
Bluetooth opera all’interno di un range massimo che è di 10 metri [3], ma
tale limite può essere portato a 100 metri facendo uso di antenne amplificate
oppure creando delle scatternet, ossia delle collezioni di piconet. Ogni piconet è
costituita da un master (un host o un bridge) ed al più 7 slave. Le piconet
possono essere collegate tra loro tramite dispositivi Bluetooth (host di entrambi
le reti), che possono fungere da ponte tra le due piconet. Tali host vanno
configurati come Slave/Slave o Master/Slave delle piconet.
Per definizione, il master è il dispositivo Bluetooth che avvia le connessioni con
gli altri dispositivi che sono detti slave.
4.3.1.3 Le modalità di comunicazione
Bluetooth è un protocollo ad-hoc che fornisce sia una connessione pointto-point che point-to-multipoint. Il massimo data rate è 732.2 Kbps. In una
piconet la comunicazione viene gestita dal master secondo una politica Time-
64
Division-Multiplex che prevede la divisione della comunicazione stessa in slot di
625 µs (625 bit per slot). Tutte le comunicazioni passano attraverso il master
della piconet; la banda, pertanto, va divisa tra gli slave e, quindi, nel caso
peggiore, in cui tutti i 7 slave vogliono comunicare, la banda disponibile per
ognuno risulta 732.2/7 Kbps. Nonostante la banda ridotta, la connessione
Bluetooth consente accesso ad internet, stampa, streaming video molto
compressi, collaboration work, etc.
La comunicazione può essere sincrona2 (SCO) e asincrona (ACL) [4]; mentre la
prima costituisce un collegamento simmetrico punto-punto tra un master ed uno
slave all’interno di una piconet ed è a commutazione di circuito, la seconda,
invece, è a commutazione di pacchetto ed è mantenuta tra il master e tutti gli
slave attivi attraverso un ACL (Asynchronous Connectionless Link). Un solo
master può supportare al più tre collegamenti SCO con uno slave o un solo
collegamento SCO per un massimo di tre slave. Gli slave, comunque, possono
supportare un massimo di due collegamenti SCO (Synchronous Connection
Oriented Link) se questo è fatto con due master differenti.
Per trasmettere voce real-time, un’applicazione deve riservare uno slot in
entrambe le direzioni ad intervalli di tempo regolari; è necessaria, pertanto, una
connessione sincrona SCO ed un collegamento di tipo circuit switch con
prenotazione di slot ad intervalli regolari. Uno speech coder, infatti, genera 10
byte ogni 1,25ms; essendo possibile trasportare 30 byte per ogni slot, è
sufficiente un solo slot, in ogni direzione, ogni 3,75 ms.
Per la comunicazione tra master e slave, invece, è utilizzata una comunicazione
asincrona, in cui gli slot di comunicazione sono riservati su richiesta e della loro
distribuzione è responsabile il master, che evita collisioni. Gli slot asincroni
hanno priorità inferiore rispetto a quelli sincroni.
2
Dire che la trasmissione è simmetrica significa che sia il master che lo slave stanno utilizzando
lo stesso tipo di pacchetto. Si può far riferimento alle specifiche [1] per spiegazioni dettagliate sul
differente uso dei pacchetti.
65
4.3.1.4 La frequenza di trasmissione
Bluetooth utilizza la modulazione GFSK (Gaussian Frequency Shift Keying). La
frequenza di trasmissione, come evidenzia la tabella 4.2, è compresa tra 2,40 e
2,483 GHz ed il segnale è full-duplex con una frequenza di salto di 1600 hops
per secondo. La sequenza di hope è fissata; il segnale, infatti, salta 79 differenti
frequenze ad intervallo di 1 MHz, per cui quando uno slave entra in una piconet
si sincronizza con la sequenza di hope dettata dal master e così possono essere
stabilite e mantenute fino a 7 connessioni simultaneamente. Il numero elevato di
hope per secondo gli permette di operare anche in aree rumorose.
Tabella 4.3: Range di frequenza Bluetooth
Di fatto, però, la convivenza di reti Bluetooth e 802.11 nella stessa “area”, può
generare interferenze e perdite di prestazioni [5], [6], [7]. Ciò è dovuto al fatto
che entrambi le reti trasmettono alla stessa frequenza, ma con una frequenza di
salto differente (utilizzano un sistema di multiplexing time division). In presenza
di interferenza, le stazioni di entrambi le reti trasmettono i pacchetti
“danneggiati”, ciò provoca riduzioni di prestazioni [8].
La potenza dell’antenna Bluetooth è divisa in tre classi di potenza con un output
massimo di 100 mW, 2,5 mW e 1 mW rispettivamente per i dispositivi di classe
1, 2 e 3. Di seguito si riporta la relativa tabella.
Tabella 4.4 - Classi di potenza Bluetooth
66
4.3.2 Dispositivi utilizzati
Come supporto all’architettura del progetto è stato utilizzato, come
dispositivo mobile, un iPAQ 3970 con modulo Bluetooth. Il sistema operativo
sul quale è stata sviluppata l’architettura è Linux Familiar 0.7.0. I sensori
wireless, invece, sono stazionari e sono stati configurati per accettare
connessioni dal dispositivo mobile. Nel nostro scenario sono stati utilizzati gli
adattatori Bluetooth USB della ANYCOM [11].
Figura 4.6 - Adattatore BT USB Anycom
Figura 4.5 - iPAQ 3970
4.4
Dettagli Architetturali
Il modello architetturarale presentato (cfr Capitolo 2) e rappresentato in
figura
4.7
è
stato
sviluppato
utilizzando
BlueZ
che
rappresenta
l’implementazione ufficiale dello stack dei protocolli Bluetooth per Linux. Per
la realizzazione in Java è stato, inoltre, utilizzato il package Java JblueZ che si
interfaccia con lo stack protocollare BlueZ, e che consente di utilizzare e
aggiungere funzionalità Bluetooth alla applicazioni sviluppate nel linguaggio
Java.
67
Prima di entrare nei dettagli architetturali diamo una breve descrizione dello
stack Bluez e di JblueZ.
User Layer
Zoning Layer
Network Layer
Measurement Layer
Connettivity Layer
Bluetooth
Figura 4.7 – Architettura del sistema di localizzazione
4.4.1 Lo stack BlueZ
Lo stack protocollare BlueZ, fornisce un supporto per i livelli e i protocolli
del core Bluetooth. Esso è composto da:
•
HCI (Host Controller Interface) core
•
Driver HCI UART, USB, PCMCIA e VHCI (Virtual HCI)
68
•
Protocollo RFCOMM3, BNEP e CMTP
•
Protocollo L2CAP (Logical Link Control and Adaptation Protocol) che
fa le veci del protocollo UDP
•
Utility per configurazione e testing
•
Strumenti di analisi e protocolli di decodifica
Figura 4.8 - Lo Stack Protocollare BlueZ
Dalla figura 4.8, oltre alla forte modularità dello stack, si evince che BlueZ
consiste di 4 parti: i driver HCI, il core BlueZ, l’interfaccia socket e il livello
applicazione. Il core BlueZ è responsabile di connettere i protocolli
dell’interfaccia socket e l’interfaccia driver HCI. Quest’ultima è composta dalle
tre interfacce VHCI, USB, UART. Essa, pertanto, si occupa di inviare al core
BlueZ i dati che provengono dall’HCI attraverso il modulo Bluetooth RF (Radio
Frequency). L’interfaccia socket è, invece, responsabile della processazione dei
3
In precedenza lo stack BlueZ non offriva un supporto completo per lo standard RFCOMM,
adesso, invece, ce ne è un’implementazione che fa uso di USSP (User Space Serial Ports) e che è
stato appositamente proggettato perchè possa lavorare con l’interfaccia socket del livello L2CAP
69
dati che provengono dal core BlueZ. Per assolvere a questo ruolo fa uso delle
Berkley socket interface4. Il livello applicazione, infine, fornisce vari servizi, in
particolare servizi web, che possono essere utilizzati dai moduli sottostanti.
4.4.2
BlueZ e Java: JblueZ
SUN ha rilasciato le specifiche JSR-82 per J2ME. Tali specifiche
descrivono le API di comunicazione per lo stack protocollare Bluetooth5. Esse
sono state adottate da diversi produttori di software per dispositivi Bluetooth. Tra
queste c’è JblueZ [9], che ha implementato le API JSR-82 appoggiandosi proprio
allo stack protocollare BlueZ.
JblueZ, originariamente, è stato sviluppato da Appliance Studio [10], poi è
diventato in un progetto Open Source.
É un package Java che si interfaccia con lo stack protocollare BlueZ e che
consente di aggiungere funzionalità Bluetooth alle applicazioni Java.
Esso è stato progettato per fornire un supporto Bluetooth (Open Source) per
J2SE e J2EE.
Lo sviluppo di JblueZ è dovuto alla necessità di fornire un semplice set completo
di API Java per Bluetooth che funzionasse sotto il sistema operativo Linux.
Al momento JblueZ consiste principalmente in una libreria java per l’accesso ad
alcune funzionalità HCI di BlueZ, tra cui:
•
lettura dei parametri
•
impostazione del dispositivo Bluetooth locale
•
funzionalità per la ricerca di dispositivi remoti
4
Interfaccia standard Linux
5
Sono disponibili anche delle API C. Al riguardo, però, non c’è una documentazione dettagliata.
Si tratta, in effetti, della documentazione di alcune librerie tipo HCI.h e di alcuni file sorgenti
Bluetooth.c. Oltre ai prototipi delle funzioni sono indicati anche le caratteristiche dei parametri e
a cosa serva il metodo
70
•
funzionalità per la creare ed eliminare le connessioni
•
acquisizione di informazioni relativamente al dispositivo remoto
Altre funzionalità, come ad esempio quelle relative al delivery dei servizi, non
sono state implementate. Si sta, però, lavorando per allargare il range delle
funzionalità BlueZ messe a disposizione dei programmatori Java. In aggiunta ci
sono anche altri intenti come quello di includere un supporto per i livelli più alti
dello stack protocollare Bluetooth come L2CAP, RFCOMM e SDP e
implementare il multithread e la sincronizzazione di accesso ai dispostivi HCI.
4.4.3
Implementazione dell’architettura
Il livello rete è stato sviluppato utilizzando lo stack BlueZ. Questo livello
si compone di due sottolivelli Connectivity e Measurement.
- Connectivity Layer
Questo livello è incaricato di scoprire e creare le connessioni con i sensori vicini.
In particolare, il Connectivity Layer, consente di stabilire una connesione di dipo
ACL creando un piconet, nella quale il dispositivo mobile assume il ruolo di
master ed i sensori quello di slave.
Il discovery e la creazione di connessioni con gli access point Bluetooth è
realizzato rispettivamente mediante i metodi hciInquiry e hciCreateConnection
disponibili nella classe Bluez del package com.appliancestudio.jbluez di JblueZ.
Va sottolineato che tutti i metodi nativi definiti nelle classi di JbluZ sono
implementati, via Java Native Interface (JNI) in C. JblueZ è fornito in forma
binaria e può essere utilizzato senza compilazione, tuttavia, essendo incluso
71
anche il codice sorgente, è possibile aggiungere funzionalità o, comunque,
apportare modifiche.
- SS_Measurement Layer
Consente di effettuare la lettura del valore del parametro RSSI memorizzato
all’interno di un registro hardware. Tele parametro rappresenta l’elemento chiave
sul quale è
fondato l’approccio di positioning proposto. Esso ci da una
indicazione del livello di potenza ricevuto dal dispositivo mobile ed è funzione
della distanza che intercorre tra dispositivo e sensore. Sebbene non possa essere
considerato per effettuare una stima accurata della distanza, con la presenza di
un sensore per ciascuna zona, la lettura dell’RSSI per ciascuna delle connessioni
attive, consente di individuare la zona occupata dal dispositivo mobile.
Mentre in BlueZ è presente un metodo per accedere al valore dell’RSSI , con
JblueZ non è possibile effettuare il rilevamento di tale parametro da una
applicazione scritta in Java. Di qui, la necessita di aggiungere una nuova
funzionalità al package JblueZ che consentisse la lettura di tale parametro e
poterne quindi farne uso nell’algoritmo di positionig implementato in Java.
- Zoning Layer
Il livello “zona” (Zoning Layer), attraverso una comparazione dei diversi valori
di RSSI
ricevuti dai vari sensori, consente di trasformare le informazioni
disponibili al livello SS_Measurement in una indicazione sulla posizione
occupata dal dispositivo mobile sulla base del maggiore dei valori tra quelli
rilevati
- User Layer
Il livello superiore è il livello utente (User Layer); si occupa di
fornire
all’utente, attraverso una interfaccia grafica, l’indicazione della sala oggetto
della visita con i relativi servizi di cui può disporre.
72
4.4.3.1 Estensione JblueZ attraverso Java Native Interface(JNI)
Come già messo in evidenza, tutti i metodi nativi definiti nelle classi di JbluZ
sono implementati, via Java Native Interface (JNI) in C. Per implementare il
metodo che ci dia la possibilità di leggere il valore di RSSI bisogna seguire la
procedura classica per la definizione ed implementazione attraverso JNI. Di
seguito vengono descritti i passi per l’implementazione del metodo hciGetRssi
attraverso JNI.
1
- Definizione del metodo in BlueZ.java:
package com.appliancestudio.jbluez
public class bluez
{
static {System.loadLibrary(“jbluez”); }
……………….
public native int hciGetRssi(String bdaddr);
……………….
}
2
- Implementazione del sorgente in C nel file BlueZ.c:
…………………….
JNIEXPORT jint JNICALL
Java_com_appliancestudio_jbluez_BlueZ_hciGetRssi
(JNIEnv *env, jobject obj, jstring bdaddr_jstr)
{
// lettura RSSI mediante la funzione dell’HCI driver di BlueZ “ return
HCI_Read_RSSI
}
………………………….
3
- Esecuzione di un makefile per la creazione dell’archivio jbluez.jar;
4
- Esecuzione di un makefile per la creazione della libreria dinamica
libjbluez.so usata dal codice Java attraverso JNI.
73
4.5
Descrizione del meccanismo di positioning
Analizziamo la sequenza logica delle operazioni eseguite per identificare la
zona occupata dall’utente in possesso del dispositivo mobile. L’interazione tra il
dispositivo mobile ed i sensori avviene secondo le seguenti fasi:
A. l’utente con il terminale entra in una delle sale del museo;
B. vengono individuati mediante procedura di Inqury i sensori presenti nel
range d’azione del dispositivo mobile;
C. viene creata una connessione con ciascun sensore individuato;
D. viene rilevato il valore di RSSI per ciascuna connessione attiva;
E. si individua il sensore più vicino al terminale;
F. vengono visualizzati i servizi disponibili nella sala individuata;
G. tutte le attività suddette, a partire dalla fase C vengono ripetute per tutta
la durata della visita.
Più nel dettaglio, analizziamo i vari punti, visualizzati nel diagramma di flusso
mostrato in figura 4.9 , che compongono le suddette fasi:
1. viene effettuata la procedura di Inquiry;
2. si attiva la connessione per ogni sensore individuato;
3. per ciascuna connessione attivata viene letto il valore di RSSI mediante il
metodo implementato hciGetRssi;
4. si confrontano i valori di RSSI e si individua la connessione cui
corrisponde il valore massimo di RSSI rilevato;
5. sulla base del valore massimo si individua la sala oggetto della visita;
6. vengono visualizzati i servizi disponibili per la sala individuata;
7. vengono testati i valori di RSSI relativi alle stanze adiacenti alla sala
oggetto della visita (si suppone nota una mappa del museo) con
connessione attiva;
8. si ritorna ad eseguire il punto 4.
74
La localizzazione dovrà essere realizzata dinamicamente durante
tutto il
percorso della visita, pertanto bisognerà, periodicamente (ogni x secondi),
tentare di stabilire
la connessione con i sensori che saranno situati nelle sale
adiacenti (secondo una mappa dell’edificio) a quella correntemente occupata dal
visitatore. Vi è, quindi, la necessità di attivare un processo daemon
che
parallelamente svolga tale compito.
Inquiry
CREAZIONE
CONNESSIONE per ogni
Daemon
Per ogni connessione
attiva GetRssi
Verifica stato
connessioni sale
adiacentiogni x
secondi
Determinazione Sala
con MAX_RSSI
Non conesso
GetRssi per le sale adiacenti
alla sala corrente con
connessioni attive
Tenta di stabilire
la connessione
Figura 4.9 – Diagramma di flusso dell’algoritmo di localizzazione
75
Connesso
4.6
Limiti imposti dall’hardwre
L’algoritmo di localizzazione si basa sulla possibilità di stabilire connessioni
contemporanee tra il dispositivo mobile ed i sensori dislocati in sale adiacenti .
Nel fare ciò il dispositivo mobile assume il ruolo di master, mentre i sensori a
cui si è connessi quello di slave. In questo modo il dispositivo master ed i sensori
slave costituiscono una piconet -figura 4.10. Immaginando
lo scenario
applicativo affiora l’esigenza di poter configurare un sensore in modo che possa
accettare connessioni da più di un dispositivo mobile per effetto della presenza
contemporanea dei visitatori nelle varie zone dell’edificio. In pratica un sensore
deve poter essere configurato come multi-slave in modo che possa accettare
connessioni da più dispositivi mobili con ruolo di master. Si realizza in questo
modo una scatternet, ossia una sorta di collezioni di piconet in cui l’host che
funge da ponte è configurato come slave per entrambe le piconet. Si suol dire, in
tal caso, che l’host di entrambe le reti è configurato in modalità slave/slave. E’
possibile configurare l’host anche in modo che funga da master per una rete e
slave per l’altra piconet. Le due configurazioni sono mostrate in figura 4.11.
Piconet
master
slave
Figura 4.10 : Piconet costituita da un master e più slave
76
slave/slave
master/slave
Figura – Scatternet con host in configurazione slave/slave e master/slave
Nella sperimentazione del meccanismo implementato sono stati utilizzati dei
sensori che non consento la creazione di una scatternet. In pratica il sensore può
accettare una sola connessione da un master.
Questa limitazione è dovuta esclusivamente al firmware montato sul chipset
Bluetooth dell’adattatore Anycom che non prevede la funzionalità multi-slave.
Con l’aggiornamento del firmware è possibile superare questo tipo di problema.
In ogni caso rimane comunque limitato il numero di master che possono
connettersi contemporaneamente ad un sensore multi-slave.
Per ottenere una soluzione che sia scalabile si può immaginare un tipo di
configurazione a “grappolo”, inteso come un insieme di sensori posizionati nella
medesima posizione. In questo modo ciascun sensore dell’insieme potrà essere
utilizzato per stabilire una connessione con i diversi dispositivi mobile che
possono essere presenti nell’area del grappoli stesso. Combinando, infine, la
possibilità di un sensore di poter essere configurato come multi-slave con la
soluzione a grappoli si moltiplica il numero di dispositivi che possono
connettersi contemporaneamente all’insieme di sensori. Questa soluzione
presenta dei vantaggi anche in termini di tolleranza ai guasti.
77
Capitolo 5
Una implementazione delle JSR-179 mediante le
API JSR-82
5.1
Introduzione
Java Community Process (JCP) ha di recente definito due documenti di
specifiche al fine di coprire alcuni aspetti emergenti strettamente connessi allo
svilupparsi
di infrastrutture di nomadic computing e ad-hoc network.
In
particolare sono state sviluppate delle specifiche che consentissero di ottenere
informazioni sulla posizione geografica dei dispositivi mobili (JSR-179)[2] ed
altre relative alla comunicazione tra dispositivi Bluetooth (JSR-82)[3].
In questo capitolo, dopo aver illustrato gli aspetti fondamentali di
ciascuna delle specifiche, si cerca di dare un contributo su una loro possibile
integrazione. L’idea guida è quella di estendere la JSR-82, in modo da fornire
alle JSR-179, le informazioni di cui necessitano, per determinare la posizione di
un dispositivo mobile. Si considererà, in ultimo, una implementazione software
della estensione suddetta mediante JblueZ[1].
5.2
Descrizione delle JSR-179
Le JSR-179 rappresentano un package opzionale per J2ME che
consentono, attraverso una applicazione Java, di ottenere informazioni relative
alla posizione geografica di un dispositivo mobile. Si tratta di API generiche
78
rispetto al metodo di positioning utilizzato e consentono, tra l’altro, di poter
accedere ad un database di “punti di riferimento” memorizzato nel terminale
mobile; ciascun “punto di riferimento” è inteso come una posizione geografica
nota a cui è associato un nome. Analizziamo nel seguente paragrafo alcuni dei
componenti fondamentali illustrati nel class diagram:
Location
AddressInfo
address: AddressInfo
coordinates: Coordinates
horizontalAccuracy:int
verticalAccuracy:int
Coordinates
getAddressInfo(): AddressInfo
getExtraInfo () : String
getQualifiedCoordinates():Qualified
Coordinate
BUILDING_FLOOR : int
BUILDING_NAME : int
BUILDING_ROOM :int
BUILDING_ZONE : int
CITY : int
COUNTRY : int
COUNTRY_CODE : int
DISTRICT : int
STATE : int
STREET : ont
URL : int
AddressInfo () : void
getField () : String
setField (): void
Criteria
AVIABLE : int
OUT_OF_SERVICE : int
TEMPORARILY_UNAVAILABLE : int
LocationP
rovider
addProximityListener(): void
getInstance(): LocationProvider
getLocation( ): Location
getLastKnowLocation():Location
removeProximityListener(): void
reset() : void
setLocationListener () :void
Landmark
getAddressInfo() :AddressInfo
getDescription() :String
getName (): String
getQualifiedCoordinates() : QualifiedCoord
Landmark() :void
setAddressInfo() : void
setDescription() :void
setName (): void
ProximityListener
QualifiedCoordin
ates
LandmarkStore
DB
Figura 5.1 – Class Diagram delle JSR-179
79
5.2.1 Il modulo Location Provider
La classe LocatioProvider rappresenta il modulo fondamentale del
package. E’ il punto di partenza per le applicazioni che fanno utilizzo di tali API
al fine di poter rilevare informazioni sulla posizione dei terminali mobili. La sua
implementazione può essere realizzata utilizzando uno qualsiasi dei metodi di
localizzazione noti, per esempio, metodi basati sui satelliti come il GPS, metodi
basati sulle reti di telefonia mobile, oppure metodi su corto raggio che utilizzino
tecnologie wireless come, ad esempio, Bluetooth. L’implementazione può anche
combinare più di una tecnica in modo da ottenere il miglio risultato possibile.
Un aspetto strettamente connesso al LocationProvider è rappresentato dal modo
in cui può esso stesso essere selezionato. Esiste, infatti, la classe Criteria che
consente di definire un insieme di parametri che rappresentino un criterio di
selezione del LocationProvider. I parametri che possono essere settati sono i
seguenti:
-
horizzontal accuracy ;
-
vertical accuracy;
-
preferred respons time;
-
power consumption;
-
cost allowed;
-
speed required;
-
altitude requeired;
-
address info required.
In tabella sono indicati i valori assunti di default :
Criteria Field
Default value
Horizzontal accuracy
NO_REQUIREMENT
Vertical accuracy
NO_REQUIREMENT
Preferred response time
NO_REQUIREMENT
80
Power consumption
NO_REQUIREMENT
Cost allosew
Tue (allowed to cost)
Speed required
False (not required)
Altitude required
False (not requred)
Address info required
False (not required)
Non esiste alcun tipo di priorità per i campi suddetti. Una volta definito il criterio
verrà selezionato il LocationProvider che si sposa meglio con esso. Tuttavia, il
campo relativo ai costi (costi da sostenere da parte dell’utente finale) viene
considerato in modo diverso rispetto agli altri. Se, infatti, il campo è settato in
modo tale che non è consentita la possibilità di attribuire dei costi all’utente
finale, l’implementazione dovrà garantire la selezione del LocationProvider in
modo da non gravare alcun costo. Nella classe Criteria sono presenti i metodi
per impostare e leggere i valori di ciascun campo.
Ottenuto il LocationProvider, l’applicazione può richiedere l’oggetto Location
contenente le informazioni sulla posizione del terminale mobile al momento in
cui è stata fatta la richiesta. E’ possibile
effettuare una singola richiesta per
volta dell’oggetto Location, oppure fare un in modo che l’applicazione sia
aggiornata
periodicamente
con
nuove
informazioni
sulla
posizione
implementando un LocationListener. L’oggetto Location contiene le seguenti
informazioni:
-
coordinate e loro accuratezza;
-
velocità e direzione (se disponibili);
-
timestamp (che indica il momento in cui è fatta la misura);
-
informazioni sul metodo di localizzazione utilizzato (Angle-ofArrival,
Satellite, Short-Range,Time-of-Arrival….)
Per alcuni metodi di positioning, l’oggetto Location può anche contenere un
oggetto AddressInfo che contenga informazioni di tipo testuale sulla posizione.
Tali informazioni sono suddivise nei seguenti campi:
-
strada;
81
-
codice postale;
-
città;
-
nazione;
-
distretto;
-
nome edificio;
-
piano edificio;
-
stanza edificio.
Alle informazioni dell’oggetto Location si può accedere attraverso i metodi
messi a disposizione come ad esempio getAddressInfo(), getLocationMethod(),
getQualifiedCoordinates().
5.2.2 La classe Landmark
Un altro modulo fondamentale del
package è costituito dalla classe
Landmark che rappresenta un contenitore di punti di riferimento. Ciascuno di
essi è inteso come un luogo a cui è associato un nome, una descrizione testuale,
delle coordinate ed un AddressInfo (opzionale). Possono essere utilizzati per
rappresentare luoghi frequentemente utilizzati (casa, ufficio ristoranti,…) ed
essere raggruppati in categorie.
I metodi per memorizzare, cancellare e recuperare questi punti di riferimento dal
database sono presenti nella classe LandmarkStore.
Vediamo un semplice esempio di codice che illustri i passi da eseguire per
ottenere la posizione corrente del terminale mobile:
// viene creato un oggetto Criteria che consente di definire il criterio di selezione
//del LocationProvider
Criteria cr = new Criteria();
// Si specifica, ad esempio, una accuratezza orizzontale di 500 metri
cr.setHorizontalAccuracy(500);
82
LocationProvider lp = LocationProvider.getIstance(cr);
// si ottiene la posizione con timeout pari ad 1 minuto
// (per timeout si intende il tempo massimo che può intercorrere tra
// la richiesta di localizzazione ed la risposta ad essa)
Location l = lp.getLocation(60);
Coordinates c = l.getQualifiedCoordinates();
Double lat = c.getLatitide() ;
Double lon = c.getLongitude() ;
5.3
Le JSR-179 nel modello di positioning proposto
E’ già stato messo in evidenza il fatto che
le JSR-179 sono API
generiche rispetto al metodo ed alla tecnologia di positioning utilizzata. Si è
visto, inoltre, che consentono di accedere ad una database di “punti di
riferimento” ciascun dei quali è inteso come una posizione geografica nota
(espressa in termini di coordinate) a cui è associato un nome.
Riferendoci all’architettura del sistema di positioning realizzato, un punto di
riferimento noto a priori coincide con il sensore che sarà situato in un edificio x,
al piano y e nella stanza z. Si può quindi supporre di memorizzare, nel database
del dispositivo mobile, ciascun sensore come “punto noto” caratterizzato da
coordinate
geografiche e un nome; le coordinate, nel caso specifico, sono
espresse in termini di edificio, piano e stanza in cui è situato il sensore.
Pertanto possiamo immaginare che le informazioni nel database siano del tipo
riportate nella seguente tabella:
83
NOME
COORDINATE
Descrizione
(sensore)
(sensore)
Testuale
“ Giallo”
Edificio x, Piano y, Sala gialla
“Verde”
Edificio x, Piano y, Sala verde
Tabella 5.2 – Database in cui sono memorizzati i Landmark
Pertanto l’informazione chiave, nel contesto applicativo considerato, è
rappresentata dal nome del sensore prossimo al terminale mobile. Questa
informazione dovrà essere fornita al LocationProvider da un oggetto
opportunamente definito che chiameremo “LocationEstimator”. Una volta noto il
nome del sensore sarà possibile risalire alla posizione nell’ambito dell’edificio.
Viene riportati di seguito il sequence diagram della richiesta di localizzazione:
: Form
:LocationEstimator
:LocationProvider
1: Richiesta di localizzazione
2: GetLocation ( )
3: Nome Sensore
4: Connect
5: Query
6: Edificio x, Piano y,
Sala z
Figura 5.3 – Sequence Diagram di una richiesta di localizzazione
84
:Landmark
DB
Bisogna, pertanto, definire l’implementazione dell’oggetto LocationEstimator
il cui ruolo sia quello di fornire tutte le informazioni necessarie per costruire
l’oggetto Location della classe LocationProvider .
5.4
Implementazione del LocationEsimator
L’idea base è quella di considerare il componente LocationEstimator
come estensione delle JSR-82. Queste ultime sono state sviluppate con l’intento
di fornire un supporto per lo sviluppo di applicazioni Java su dispositivi
Bluetooth. Le principali funzionalità sono relative al discovery, alla gestione ed
alla comunicazione tra dispositivi Bluetooth.
Prima di entrare nei dettagli implementativi del LocationEstimator vediamo
alcuni aspetti essenziali delle JSR-82.
5.4.1 Le JSR-82
All’aumentare del numero dei dispositivi abilitati alla tecnologia
Bluetooth si è resa necessaria la presenza di uno standard che permettesse di
sviluppare applicazioni basate su questa tecnologia di comunicazione.
Il documento di specifiche rispondente alla Java Specification Request 82 (JSR82) e rilasciato nel mese di Marzo 2002. è il primo standard non proprietario
basato sul linguaggio di programmazione Java. Esso definisce l’architettura e le
API associate richieste per sviluppare una applicazione.
Queste specifiche sono rivolte principalmente a dispositivi conformi al profilo
MIDP. Le API Bluetooth e le API MIDP possono coesistere in un dispositivo
MIDP + Bluetooth, ma restano indipendenti fra loro.
Le specifiche Bluetooth definiscono protocolli e profili, ma non definiscono
alcuna API applicativa. Il documento di specifiche JSR-82 definisce delle API
per mezzo delle quali si possono utilizzare determinati protocolli e profili
Bluetooth definiti nel documento di specifiche ufficiali Bluetooth.
85
5.4.1.1 Caratteristiche generali
Le API sono pensate per dare la possibilità di:
•
registrare servizi;
•
scoprire dispositivi e servizi;
•
stabilire connessioni RFCOMM, L2CAP e OBEX;
•
condurre queste attività in modalità sicura.
Device Discovery
Una applicazione client Bluetooth deve poter essere in grado di scoprire
altri dispositivi che siano nelle sue vicinanze. Questo processo viene definito
device discovery. L’applicazione client potrà poi interrogare ciascun device per
verificare quali sono i servizi offerti. Le classi necessarie per poter effettuare il
discovery si trovano nel package javax.bluetooth.
Per eseguire un device inquiry bisogna eseguire i seguenti passi:
•
ottenere un DiscoveryAgent;
•
implementare il DiscoveryListener interface;
•
utilizzare il DiscoveryAgent per iniziare la ricerca, fornendo il listener
che riceverà la notifica dei dispositivi scoperti.
Creating Services
Un server Bluetooth deve pubblicare i dettagli dei servizi offerti al fine di
permettere ai potenziali client di trovarli ed utilizzarli. Per fare ciò, un server
deve creare un service record per il servizio fornito. Il service record è
memorizzato nel Service Discovery Database(SDDB) del server. Quest’ultimo
deve anche poter aggiornare il service record se il servizio disponibile cambia, e
rimuoverlo dal SDDB quando il servizio non è più disponibile.
Un service record descrive le caratteristiche del servizio e fornisce le
informazioni necessarie per accedervi. E’ strutturato da un insieme di attributi.
Ciascun attributo ha:
86
-
ID , è un 16 bit unsigned integre;
-
valore di tipo javax.bluetooth.DataElement.
Una lista completa di tutti gli attributi è presente nel documento Bluettoth
Assigned Numbers [4].
Per la creazione di un service record, il server invoca il metodo
javax.microedition.io.Connector.open(). In questo modo viene creato un notifier
che il client potrà utilizzare per connettersi al server. A tale metodo viene
passato una String URL che include tutte le informazioni necessarie alla
creazione del servizio.
Il service record è pubblicato quando il server indica che è pronto ad accettare
connessioni al servizio. Ciò viene fatto invocando sul notifier il metodo
acceptAndOpen(). Il service record rimarrà memorizzato nel SDDB fino a
quando il server invocherà il metodo close().
Accessing Services
Una
volta che è stato completato il discovery dei dispositivi, il client può
interrogare ciascun device per verificare la presenza di un servizio richiesto.
Questo processo viene chiamato service discovery. Ogni device che soddisfa
l’interrogazione fatta dal client ritorna ad esso un service record che contiene
tutte le informazioni necessarie per accedere al servizio.
Il processo di service discovery è simile a quello di device discovery e segue i
seguenti passi:
-
ottenere un DiscoveryAgent;
-
implementare un interfaccia del DiscoveryListener;
-
utilizzare il DiscoveryAgent per iniziare la ricerca, fornendo
una istanza del listener che riceverà la notifica degli eventi;
-
utilizzare un serviceRecord per connettersi al servizio.
87
5.4.2 Implementazione software del LocationEstimator mediante
JblueZ
Della descrizione delle JSR-82 emerge che esse non forniscono alcun
supporto per la localizzazione dei dispositivi mobili.
Con l’estensione delle JSR-82 si vuole, quindi, da un lato aggiungere nuove
funzionalità alle JSR-82 ed allo stesso tempo realizzare quel componente che
funga da bridge con le JSR-179.
Ricordiamo che il LocationEstimator ha il ruolo di fornire al LocationProvider
una indicazione sul sensore prossimo alla unità mobile in modo da poter risalire,
mediante consultazione del database, alla posizione corrente del dispositivo
mobile stesso.
Si rende necessario, pertanto, la definizione di metodi del
componente LocationEstimator, che consentano di stimare la distanza che
intercorre tra dispositivo
mobile ed i sensori posti nel suo raggio di azione.
Ciò permetterà di definire l’informazione da restituire al LocationProvider ossia
il sensore più vicino al terminale mobile.
La definizione dei metodi deve passare attraverso una valutazione di quelle che
sono le funzionalità di più basso livello utilizzabili mediante il driver HCI dello
stack BlueZ che è l’implementazione ufficiale del protocollo Bluetooth per
Linux. A tal proposito, nel realizzare il sistema di positioning illustrato nei
capitoli precedenti, si è potuto constatare che lo standard Bluetooth consente di
disporre di una stima della distanza tra due unità Bluetooth
attraverso il
monitoraggio dell’intensità dei segnali ricevuti dal dispositivo mobile. Infatti,
una delle funzionalità dell’HCI driver consente proprio l’accesso ad un registro
hardware contenente informazioni sul Received Signal Strenght Indication
(RSSI).
I metodi di LocationEsimator dovranno essenzialmente poter accedere a questa
informazione al fine di restituire al LocationProvider l’indicazione sul sensore
più vicino al dispositivo mobile. Un altro parametro che può ritornare utile è il
Link Quality (cfr 6.4) che ci da una indicazione sulla “qualità” della
connessione; anch’esso è disponibile attraverso una funzione dell’HCI driver
Pertanto si possono definire i seguenti metodi:
88
-
GetRSSI
restituisce il valore di RSSI rilevato in una connessione tra due
dispositivi Bluetooth;
-
GetLink
restituisce il valore del LinkQuality relativo ad una connessione
tra due unità bluetooth.
Dalla elaborazione degli RSSI rilevati per ciascuna connessione attiva, verrà
individuato il sensore prossimo al dispositivo mobile.
L’unico punto da definire è rappresentato dal modo in cui colmare il gap tra
l’implementazione in C dei metodi dell’HCI driver di BlueZ per la lettura
dell’RSSI e del Link Quality,
ed i metodi Java corrispondenti getRSSI e
getLinkQuality di LocationEstimator.
Ciò può essere realizzato mediante l’utilizzo del packege JblueZ (cfr capitolo 4)
che
consente l’implementazione dei
metodo in C attraverso Java Native
Interface (JNI). La procedura è già stata presentata nel capitolo 4.
Il seguente sequence diagram illustra l’interazione tra i vari componenti al fine
di ottenere la posizione del terminale mobile:
89
: Form
:LocationProvid
er
:LocationEstimator
or
:Landmark
DB
:Jbluez
:BlueZ
1: Richiesta di localizzazione
2: GetLocation ( )
3: GetRssi ( )
4
5
6
6: Nome Sensore
7: Connect
8: Query
8: Edificio x, Piano y,
Sala z
Figura 5.3 – Sequence Diagram di una richiesta di localizzazione
90
Capitolo 6
Test sperimentali
6.1 Introduzione
La possibilità di sviluppare
una applicazione che consentisse
di
realizzare il servizio di positioning illustrato nei capitoli precedenti è stata presa
in considerazione solo dopo aver potuto constatare, mediante dei test preliminari,
che l’utilizzo del parametro RSSI relativo alla intensità dei segnali in gioco,
disponibile attraverso una funzione dell’HCI dello stack Bluetooth, avrebbe
consentito di ottenere un livello accuratezza più che soddisfacente in relazione
al tipo di applicazione prefigurato.
Nel corso del capitolo, quindi, verrà
illustrato
ciò che è emerso dai test sui
valori di RSSI in funzione della distanza tra sensori e dispositivo mobile,
successivamente sono presentati i risultati dei test relativi al meccanismo di
positioning implementato. Viene infine definito Link Quality,un indicatore sulla
qualità della connessione tra due unità Bluetooth.Tutti gli esperimenti sono stati
effettuati presso il laboratorio ITEM del CINI di Napoli.
91
6.2
Received Signal Strenght Indication (RSSI)
Nel corso della descrizione del sistema di positioning, è stato messo in
evidenza come la sua realizzazione fosse strettamente connessa alla stima
indiretta delle distanze, tra dispositivo mobile e gli acces point, mediante un
parametro che fosse legato in qualche modo al livello di potenza del segnale
ricevuto dal terminale mobile, da ciascuno dei sensori distribuiti in un area
definita; l’intensità di un segnale, come noto, decresce all’aumentare della
distanza
dalla
sorgente
emittente
[26],
dando
luogo
al
fenomeno
dell’attenuazione.
I dispositivi Bluetooth consentono di misurare il livello di potenza ricevuto in
maniera indiretta attraverso l’RSSI (cfr 3.5.6), memorizzato
in un registro
hardware ed accessibile attraverso il comando HCI HCI_Read_RSSI.
Ovviamente sul dispositivo ricevente deve essere definito un Golden Receiver
range. Questo range compreso tra una soglia minima e massima è indicato in dB
e varia a seconda dei dipositivi utilizzati. Un esempio di conversione del valore
di RSSI nel livello di potenza RX relativo all’adattatore Bluetooth USB 100
della ANYCOM è rappresentato nel grafico 6.1.
HCI_Read_RSSI
30
20
10
0
-10
-90
-80
-70
-60
-50
-40
-30
-20
Received Power Level
Grafico 6.1 - RSSI in funzione dei livelli di potenza ricevuti
92
-10
0
Un valore di RSSI maggiore di zero indica che il livello di potenza RX è
maggiore della soglia massima del GRPR. Un valore negativo di sta ad indicare
che il livello di potenza RX è inferiore alla soglia minima del GRPR. Infine, un
RSSI pari a zero significa che il livello di potenza è compreso tra la soglia
minima e massima del GRPR.
6.3 Test sperimentale sull’RSSI
La valutazione sperimentale sull’RSSI è stata realizzata considerando come
dispositivo mobile un iPAQ 3970 con modulo Bluetooth e Sistema Operativo
Linux Familiar 0.7.0 sul quale è stato installato lo stack BlueZ. Il sensore (fisso)
è costituito da un adattatore Bluetooth USB 100 della ANYCOM montato su un
PC con SO Linux Mandrake 9.1, figura 6.2. La lettura dell’RSSI sul terminale
mobile viene effettuata attraverso il comando HCI HCI_Read_RSSI solo dopo
aver stabilito una connessione tra le due unità.
1 cm
1400 cm
Figura 6.2: Valutazione sperimentale dell’RSSI
La lettura dell’RSSI viene ripetuta per distanze cha vanno da 1 cm fino a 1400
cm. I risultati dell’esperimento vengono riportati nel grafico che segue:
93
Grafico 6.3 – Andamento dell’RSSI con la distanza
Questo grafico non è universale in quanto ogni dispositivo utilizza diversi livelli
di potenza, ma approssima bene il funzionamento di tutti i dispositivi in
generale.
L’RSSI, come già detto in precedenza, assume sia valori positivi che negativi. I
valori positivi sono assunti sempre quando i dispositivi sono molto vicini tra
loro, proprio ad indicare che la potenza utilizzata è superiore a quella necessaria
ed in questo breve tratto si nota che i valori decrescono esponenzialmente.
Quando, però, la distanza comincia ad aumentare, il valore dell’RSSI si assesta
al valore costante zero. Questo è un aspetto negativo in quanto non è possibile
dare una precisa stima della distanza tra il dispositivo ed il sensore; nel momento
in cui si rileva un RSSI pari a 0 non è possibile stabilire se il dispositivo dista
dall’access point 50 cm o 2 mt. Dopo questo tratto costante i valori decrescono
linearmente fino ad assestarsi al valore costante –10, per cui si ripresenta il
problema precedentemente illustrato.
94
6.4
Utilizzo del RSSI in un meccanismo di Positioning
La curva dell’RSSI in funzione della distanza tra le due unità Bluetooth
pone in evidenzia che non esiste una relazione biunivoca tra valori della distanza
e valori dell’RSSI. Ciò nonostante, l’utilizzo di questo indicatore ha mostrato,
nei test condotti sul meccanismo di positioning implementato , la sua efficacia
sulla possibilità di poter distinguere le diverse aree coperte dagli acces point
Bluetooth.
6.4.1 Test Sperimentale
Il test è stato condotto nel laboratorio ITEM del C.I.N.I.. La piantina del
laboratorio e le dimensioni delle sale oggetto dell’esperimento sono riportate in
figura 6.4 . I sensori sono stati posizionati nel centro del soffitto di ciascuna
stanza.
15 m
10,5 m
6m
6m
6m
6m
Figura 6.4 – Pianta del laboratorio con sensori Bluetooth disposti al centro del
soffitto di ciascuna sala.
95
Nella figura che segue, viene invece segnato uno dei percorsi eseguiti all’interno
del laboratorio durante il quale sono stati monitorati i valori dell’RSSI per
ciascuna delle connessioni attive tra terminale mobile e sensore.
“Stanza ROSSA”
-10
0
-10
-2
-9
0
-10
-8
-4
“Stanza BLU”
-10
-7
-5
-10
-3
-8
-10
-1
-8
-10
-2
-9
-9
-2
-10
-9
0
-10
“Stanza VERDE”
-10
0
-10
-8
-2
-6
-3
-5
-4
-6
-5
-1
-8
1
-9 0
-10
Figura 6.5 – Valori di RSSI rilevati in un percorso dalla stanza verde alla
stanza rossa
In particolare lungo il percorso vengono tratteggiato in figura sono riportate
alcune delle rilevazioni eseguite durante l’esperimento; sono indicati i valori di
RSSI relativi a ciascuna delle connessioni attive. Il colore del valore sta ad
indicare il sensore da cui proviene il segnale.
L’esperimento ha inizio nella sala verde mediante la procedura di Inquiry che
consente di rilevare i sensori posizionati nel raggio d’azione del dispositivo
96
mobile. Viene creata la connessione con i sensori “verde” e “blu”. A tal punto
comincia il monitoraggio.
Dalla osservazione della figura, tralasciando per il momento le zone cerchiate
che meritano una analisi specifica, si evince che le rilevazione dell’RSSI
consente di individuare correttamente la sala in cui è posizionato il dispositivo
mobile; infatti, il valore massimo di RSSI in ogni momento del percorso è
sempre quello relativo alla connessione con il sensore posto nella sala oggetto
della presenza del dispositivo mobile.
Analizziamo i valori riscontrati nelle zone evidenziate dai cerchi:
-
nella zona cerchiata tra la sala verde e la blu si riscontra poco prima di
uscire
dalla sala verde la seguente coppia di valori di RSSI: (-6,-5). Il
sistema di positioning, quindi, indicherà che la zona occupata coincide
con la sala blue anche se siamo ancora al limite di quella verde. Tra
l’altro in tale posizione la distanza dal sensore blue è maggiore rispetto a
quella dal verde.
Ciò è dovuto al fatto che uscendo dalla stanze verde, nelle zona al limite
tra le due stanze, si ha un duplice effetto. Da un lato, con la diminuzione
della potenza del segnale proveniente dal sensore verde si amplifica
l’effetto di attenuazione determinata dal corpo umano che si interpone
tra palmare e sensore, dall’altro, avvicinandoci al limite delle due sale,
svanisce l’effetto di attenuazione del segnale proveniente dal sensore blue
determinato dalle mura di separazione.
-
nell’angolo basso della stanza blu è cerchiata una zona in cui la terna di
valori di RSSI rilevata è data da (-3, -10 ,-8). Sebbene la distanza minima
si registra rispetto al sensore rosso, il massimo valore di RSSI si ha nella
connessione instaurato con il sensore blu. Evidentemente ciò va a tuttu
vantaggio del meccanismo di positioning che consente di rilevare la
corretta posizione del terminale mobile.
97
Anche in tal caso l’“anomalia” riscontrata rispetto al legame distanzaRSSI,, è spiegata dalla presenza della parete che separa i due ambienti e
che si interpone tra sensore rosso e palmare.
-
infine nella zona al limite tra la stanza rossa e quella blu (-7,-10,-5), si
riscontra lo stesso fenomeno rilevato al limite tra la stanza blu e verde.
Nella tabella 6.6 che segue vengono trascritti i valori di RSSI riscontrati nel
corso dell’esperimento sopra visualizzato, riportando
per ciascun punto di
rilevamento, nel percorso che va dalla stanza verde a quella rossa, la distanza da
ognuno dei sensori a cui si è connessi.
RSSI
Distanza dal
Distanza dal
Distanza dal
(v,b,r)
sensore ROSSO
sensore BLU
sensore VERDE
(0,-10)
-
13 m
2m
(1,-9)
-
12 m
1m
(-1,-8)
-
11 m
2m
(-6,-5)
-
10 m
3m
(-5,-4)
-
9m
4m
(-6,-3)
-
7m
6m
(-8,-2)
-
6m
9m
(-10,0,-10)
16 m
4m
12 m
(-10,-2,-9)
10 m
6m
16 m
(-10,-3,-8)
6m
7m
18 m
(-10,-1,-8)
9m
3m
17 m
(-9,0,-10)
10 m
1m
15 m
(-9,-2,-10)
16 m
4m
8m
(-10,-7,-5)
5m
7m
17 m
(-10,-8,-4)
3m
9m
19 m
(-9,0)
1m
11 m
-
98
(-10,0)
1m
12 m
-
Tabella 6.6 – Valori RSSI rilevati
Consideriamo una rappresentazione grafica (Grafico 6.7) dei valori di RSSI
raccolti; in particolare vengono rappresentate le curve dei valori di RSSI
riscontrati durante lo spostamento che va dal centro della stanza verde fino
all’uscita della stanza. Le due curve rappresentano i valori di RSSI relative alle
connessioni con i sensori verde e blu.
RSSI
3m
-0
1m
Zona Ideterminata
2m
-5
-10
Grafico 6.7 – RSSI relativi ai sensori verde e blu nello spostamento dal centro
della stanza verde verso l’uscita.
Dai risultati sperimentali si può affermare che il meccanismo di positionig
implementato consente la corretta individuazione della zona in cui opera il
dispositivo mobile. Il sistema, quindi, è efficiente rispetto ad un potenziale
utilizzo di informazioni e/o servizi disponibili nell’aree
coperte da ciascun
sensore. Le uniche incertezze evidenziate sono state rilevate nelle situazioni
99
limite di passaggio ad una nuova zona coperta da un nuovo sensore. Tuttavia
tali zone di indecisione non influenzano il funzionamento dell’applicazione.
6.5
Link Quality
Il link quality è un parametro che fornisce una stima della qualità della
connessione tra due unità Bluetooth. Esso è memorizzato all’interno di un
registro
hardware
e
può
essere
letto
utilizzando
il
comando
HCI
Get_Link_Quality.
Sebbene non sia un parametro di interesse primario per la implementazione del
servizio di positioning, ci consente di valutare quali effetti potrebbero aversi
sulla qualità di una connesione, in presenza di interferenze generate da
dispositivi che utilizzano la stessa gamma di frequenza dello standard Bluetooth.
Un valore elevato assunto dal link qualità non è significativo, ma un valore basso
sta ad indicare una forte interferenza. In tal caso le misure sull’RSSI non sono
attendibili.
6.5.1 Link Quality ed Bit Error Rate(BER)
In generale la qualità di un segnale ricevuto in un sistema è ben
rappresentato dal rapporto segnale rumore, ossia il rapporto tra la potenza del
segnale utile e la potenza del rumore di fondo. Un metodo per valutare il
rapporto segnale rumore è stimare il Bit Error Rate (BER) lato receiver dal
momento che vale la seguente relazione:
BER = (1 / 2)e − SNR / 2
Da questa relazione si evince che all’auentare del BER diminuisce il SNR
e quindi diminuisce anche la qualità del segnale in quanto aumenta il rumore e
100
tutto ciò a svantaggio della comunicazione. Il Link Quality, in effetti, misura
una media del BER sui pacchetti ricevuti. Più precisamente viene fatta una
statistica sui pacchetti che non sono stati ricevuti correttamente e che pertanto
devono essere ritrasmessi. Viene calcolato, cioè, il numero di pacchetti che non
sono stati ricevuti correttamente e, in riferimento a tutti i pacchetti inviati, si
calcola il valore in percentuale. Questo valore, quindi, indicherà la percentuale di
errore sui pacchetti ricevuti. Una volta calcolato il valore percentuale, esso viene
riportato su di una scala che va da 0 a 255 rappresentante il Link Quality.
In funzione del valore letto, quindi, è possibile risalire alla percentuale di errore
sui pacchetti ricevuti.
I valori che può assumere il Link Quality variano a seconda dei dispositivi
utilizzati e sono suddivisibili in tre fasce. In linea di massima i range rispettano
le tabelle di seguito riportate.
•
Tra 0xff e 0xd7 ogni valore rappresenta 0.0025% BER. Pertanto:
Valore
BER
0xff=255
0.0
0xfe
0.0025%
0xfd
0.0050%
0xfc
0.0075%
etc., until
0xd7
0.1%
Tabella 6.8: Valori assunti dal BER nel range 0xff e 0xd7
101
•
Tra 0xd6 e 0x5a ogni valore rappresenta 0.08% BER. Pertanto:
Valore
BER
0xd7
0.1%
0xd6
0.18%
0xd5
0.26%
etc.
Tabella 6.9 - Valori assunti dal BER nel range 0xd6 e 0x5a
•
Tra 0x59 e 0x00 ogni valore rappresenta 0.64% BER.
In definitiva, un collegamento con un BER che oscilla nel range 0 - 0.1% è
accettabile.
Nel momento in cui il BER raggiunge un valore pari all’1% si hanno scarsi
risultati nel momento in cui si cerca di trasmettere. Per valori superiori si può
dire che è impossibile trasmettere. Di seguito, il grafico 4.6 mostra come
all’aumentare del Bit Error Rate diminuisce il Link Quality.
Grafico 6.10 - Andamento del Link Quality in funzione del BER
102
6.5
Conclusioni
Il presente lavoro di tesi, che si colloca nell’ambito dell’affiorante
modello di computazione distribuita indicato col nome di nomadic computing,
ha avuto come obiettivo quello di proporre un approccio innovativo per la
localizzazione dei dispositivi mobili in ambienti indoor. La possibilità di
individuare la posizione di un terminale mobile rappresenta un degli argomenti
di ricerca di crescente interesse soprattutto in virtù del vasto scenario
di
Location Based Services che si sta aprendo, ad alto valore aggiunto sia per
l’utente che per il fornitore dei servizi.
Nella implementazione del meccanismo di positioning è stata
utilizzata la
tecnologia wireless Bluetooth dai bassi costi e sempre più diffusa sui terminali
mobili. L’approccio ha mostrato, nei test effettuati, di essere efficiente in
relazione al tipo di scenario considerato. Per l’implementazione in Java si è
resa necessaria un estensione delle API JSR-82 che
pur consentendo di
realizzare il discovery ed il delivery dei servizi su dispositivi Bluetooth non
presentano funzionalità per il positionig. E’ stata infine valutata una possibile
implementazione delle API per il positioning JSR 79 mediante l’estensione delle
JSR-82 suddetta.
Tutto ciò costituisce una buona premessa per un futuro lavoro che potrebbe
consistere
in un miglioramento del sistema di localizzazione mediante, ad
esempio , una modellazione accurata dell’ambiente di riferimento.
103
APPENDICE
Hardware Bluetooth che supportano BlueZ
Bluetooth PCMCIA and Compact Flash cards
Device
Chipset
Spec. Driver
State
Tester
Nokia Card
DTL-1
Nokia
1.0b dtl1_cs
working Marcel
Holtmann
Nokia Card
DTL-4
Nokia
1.1
dtl1_cs
working Kim Heino
Socket
Nokia
Compact Flash
Card
1.1
dtl1_cs
working Jussi Utunen
Socket Card
2.5
CSR
1.1
hci_uart
working Justin Hensley
Blue Monkey
CF Card
Ericsson/VLSI 1.1
bluecard_cs
working Marcel
Holtmann
Anycom
Ericsson/VLSI 1.0b bluecard_cs
PCMCIA Card
working Marcel
Holtmann
Anycom
Ericsson/VLSI 1.0b bluecard_cs
Compact Flash
Card
working Marcel
Holtmann
Sunderland
BLUEcard
Ericsson/VLSI 1.0b bluecard_cs
working S.W. Lei
Sunderland
BLUEflash
Ericsson/VLSI 1.0b bluecard_cs
working
Armadillo
Ericsson/VLSI 1.0b bluecard_cs
Bluetooth Card
working Sedat Gormus
Sphinx PICO
Card
Ericsson
1.0b btuart_cs /
hci_uart
working Marcel
Holtmann
H-Soft
blue+Card
Ericsson
1.0b btuart_cs /
hci_uart
working Marcel
Holtmann
Xircom
CreditCard
CBT
CSR
1.0b btuart_cs /
hci_uart
working Maksim
Krasnyanskiy
Xircom
RealPort2
R2BT
CSR
1.0b btuart_cs /
hci_uart
working Maksim
Krasnyanskiy
Brain Boxes
CSR
1.1
working Jean Tourrilhes
hci_uart
104
BL-620
Brain Boxes
BL-631
CSR
1.1
hci_uart
working
Brain Boxes
BL-500 (H4)
CSR
1.1
hci_uart
working Porlin Kang
Brain Boxes
BL-500
(BCSP)
CSR
1.1
hci_uart
should
work
Brain Boxes
BL-565
(BCSP)
CSR
1.1
hci_uart
working Ulrich Clanget
COM1
CSR
Platinum Card
1.1
hci_uart
working Marcel
Holtmann
HP Card
CSR
1.1
bt3c_cs
working Marcel
Holtmann
3Com Card
(Version 2.0)
CSR
1.1
bt3c_cs
working José Orlando
Pereira
3Com Card
(Version 3.0)
CSR
1.1
hci_uart
working David Riiber
Cyber-blue
BLUE CF01
CSR
1.1
btuart_cs
working David
Woodhouse
Mavin
CSR
Compact Flash
Card
1.1
btuart_cs
working Szelei Gabor
Billionton
CSR
Bluetooth Card
1.1
AmbiCom
BT2000
Ericsson
1.1
bt950_cs
working Troy A.
Griffitts
Pretec
CompactBT
Card
Ericsson
1.1
bt950_cs
working Marcel
Holtmann
Digianswer
Card
Digianswer
1.0b
not
working
Motorola Card Digianswer
1.0b
not
working
Toshiba Card
Digianswer
1.0b
not
working
IBM Card
Digianswer
1.0b
not
working
not
Richard
working Gaywood
105
IBM Card II
CSR
1.1
in
progress
TDK Card
CSR
1.1
in
progress
Acer Bluetooth
Shuttle
1.1
not
tested
TROY
WindPort Card
1.1
not
tested
Philips PC
Card
not
tested
BlueTake
BT100
not
tested
Bluetooth USB adapters
Device
Chipset
Spec. Driver
State
Ericsson
Ericsson
Application Toolkit
1.0b hci_usb
working Maksim
Krasnyanskiy
Ericsson
Development Kits
Ericsson
1.0b hci_usb
working Maksim
Krasnyanskiy
Broadcom
BCM2033
Broadcom
1.1
Zeevo TC2000
Development Kit
Zeevo
hci_usb
working Muthu Kumar
Bluefrog
Development Kits
Silicon
Wave
hci_usb
working Martin Leopold
Minikits based on
STLC2410
ST
1.1
hci_usb
working Naresh Gupta
Minikits based on
STLC2415
ST
1.1
hci_usb
working Naresh Gupta
CSR Casira USB
Adapter
CSR
1.1
hci_usb
working Fabrizio
Gennari
CSR Microsira
USB Dongle
CSR
1.1
hci_usb
working Felipe Gil
Castiñeira
TDK USB Adaptor CSR
1.1
hci_usb
working Tom Obermayr
3Com USB Dongle CSR
1.1
hci_usb
working Roman
Weissgaerber
Brain Boxes BL554
1.1
hci_usb
working Jean Tourrilhes
CSR
Tester
hci_usb + working Maksim
bluefw
Krasnyanskiy
106
COM1 USB
Module
CSR
1.1
hci_usb
working Marcel
Holtmann
Anycom USB
Adapter
CSR
1.1
hci_usb
working Marcel
Holtmann
Anycom USB-100 CSR
1.1
hci_usb
working Marcel
Holtmann
Intel USB Adapter CSR
hci_usb
working Maksim
Krasnyanskiy
SuperBT SBT-100 Ericsson
hci_usb
working Ilguiz Latypov
Siemens USB
Adapter
1.0b
not
tested
Motorola USB
Adapter
1.0b
not
tested
ALPS USB Module CSR
1.0b
not
tested
NSM USB Dongle NSC
not
tested
Digianswer USB
Dongle
Digianswer
not
Greg Kroahworking Hartman
Digianswer USB
Development Kit
Motorola
1.1
hci_usb
working Jan J. Jessen
AVM BlueFRITZ! AVM
USB
1.1
bfusb
working Marcel
Holtmann
Teledat C120data
1.1
bfusb
working Marcel
Holtmann
ELSA Vianect blue CSR
USB
1.1
hci_usb
working Marcel
Holtmann
Mitsumi USB
Adapter
CSR
1.1
hci_usb
working Takashi Sasai
BlueGear USB
Adapter
CSR
1.1
hci_usb
working Joseph Wu
Acer USB Adapter CSR
1.1
hci_usb
working Jörg
Hilsebecher
Silicon Wave USB Silicon
Module
Wave
hci_usb
working Ilguiz Latypov
Taiyo Youden USB Silicon
Module
Wave
hci_usb
working Ilguiz Latypov
Tecom BT3030
AVM
Broadcom
1.1
hci_usb + working Johannes Erdfelt
107
bluefw
W-Link WBT-3020 Broadcom
1.1
hci_usb + working Lars Haack
bluefw
D-Link DWB120M
Broadcom
1.1
hci_usb + working Andrew Radke
bluefw
D-Link DBT-120
(Rev A1)
Broadcom
1.1
hci_usb + working Edd Dumbill
bluefw
D-Link DBT-120
(Rev A2)
Broadcom
1.1
hci_usb + working Curtis Lehman
bluefw
D-Link DBT-120
(Rev B1)
CSR
1.1
hci_usb
working Noli Sicad
Gigabyte GNBTD01
CSR
1.1
hci_usb
working Jim Lomas
EPoX BT-DG02
CSR
1.1
hci_usb
working Robert Fox
EPoX BT-DG03
CSR
1.1
hci_usb
working Raimonds
Cicans
MSI MS-6967
CSR
1.1
hci_usb
working Dave Beckett
MSI MS-6968
CSR
1.1
hci_usb
working Kjell M.
Myksvoll
MSI MS-6970
CSR
1.1
hci_usb
working Stephen Crane
Gericom Adapter
CSR
1.1
hci_usb
working Michael
Kaufmann
SCM Bluetooth Zio CSR
1.1
hci_usb
working Andreas
Pfaffeneder
EIO WaveLinker
CSR
1.1
hci_usb
working Chris St.John
Microsoft Wireless CSR
Transceiver
1.1
hci_usb
working Ralf Ackermann
Sony PCGA-BA1
CSR
1.1
hci_usb
working Alain Volmat
Digicom Palladio
USB Dongle
CSR
1.1
hci_usb
working Luca Gibelli
BlueTake USB
Dongle BT007S
CSR
1.1
hci_usb
working Pawel
Pierscionek
BlueTake USB
Dongle BT009S
CSR
1.1
hci_usb
working Tymoteusz
Rogalewski
BlueTake USB
Dongle BT009V
CSR
1.1
hci_usb
working Rafal Bielinski
EPoX BT-MD01
108
i-Tec Bluetooth
USB Dongle
CSR
1.1
hci_usb
working Zdzislaw A.
Kaleta
Sitecom USB
Dongle
CSR
1.1
hci_usb
working Jelmer Vernooij
IVT USB Dongle
CSR
1.1
hci_usb
working Jens Wiessner
AboCom USB
Dongle
CSR
1.1
hci_usb
working Jens Wiessner
Samsung USB
Dongle
CSR
1.1
hci_usb
working Jens Wiessner
CCnC USB Dongle CSR
1.1
hci_usb
working Jens Wiessner
Windigo USB
Dongle
CSR
1.1
hci_usb
working Jens Wiessner
Billionton USB
Dongle
CSR
1.1
hci_usb
working Jens Wiessner
GlobalLink USB
Dongle
Broadcom
1.1
hci_usb + working Jens Wiessner
bluefw
WNi BlueLink
USB Dongle
Broadcom
1.1
hci_usb + working Michal Semler
bluefw
PheeNet BT-222
USB Dongle
Broadcom
1.1
hci_usb + working Marcel
bluefw
Holtmann
Allnet ALL1570
USB Dongle
Broadcom
1.1
hci_usb + working Matthias
bluefw
Thomae
Allnet ALL1575
USB Dongle
CSR
1.1
hci_usb
freeControl USB
Adapter
Broadcom
1.1
hci_usb + working Christoph
bluefw
Rieder
IOGEAR GBU301 Broadcom
USB Adapter
1.1
hci_usb + working J Robert Ray
bluefw
IOGEAR GBU302 Broadcom
USB Adapter
1.1
hci_usb + working J Robert Ray
bluefw
Belkin F8T001
USB Adapter
Broadcom
1.1
hci_usb + working Misha Pavlov
bluefw
Keyspan BT-2A
USB Adapter
Broadcom
1.1
hci_usb + working Andre N.
bluefw
Klingsheim
Belkin F8T003
USB Adapter
CSR
1.1
hci_usb
working Nayib Kiuhan
Trust BT120 USB
Adapter
Transilica
1.1
hci_usb
working Simon de
Hartog
109
working Sancho
Dauskardt
AIPTEK Instant
Blue USB
Transilica
1.1
hci_usb
working Chris Day
DSE XH4104 USB Transilica
Adapter
1.1
hci_usb
working Chris Day
Bluetooth serial dongles
Device
Chipset
Spec. Driver State
Ericcson
Development Kits
Ericsson
hci_uart working
Maksim
Krasnyanskiy
Silicon Wave Kits
Silicon
Wave
hci_uart working
Thomas Moser
Minikits based on
STLC2410
ST
1.1
hci_uart working
Naresh Gupta
Minikits based on
STLC2415
ST
1.1
hci_uart working
Naresh Gupta
Inventel BlueBird
Module
Inventel
1.1
hci_uart working
Alaattin Caliskan
Infineon PMB8760 Infineon
v1.1
1.1
hci_uart working
Jean-Yves
Bitterlich
Digianswer Serial
Dongle
Digianswer
hci_uart working
CSR Casira Serial
Adapter
CSR
hci_uart working
Brain Boxes BL642
CSR
hci_uart working
Brain Boxes BL510 (BCSP)
CSR
hci_uart working
Sphinx PICO Plug
Ericsson
not
working
Philips Truebaby
Module
Tester
Marcel Holtmann
not tested
Other Bluetooth devices
Device
Chipset
Spec. Driver
Sony Picture Book
C1VFK
CSR
hci_usb +
sonypi
working Timothy
Murphy
Sony Picture Book
CSR
hci_usb +
not
110
State
Tester
C1VSX
sonypi
tested
Sony Picture Book
C1VRX
CSR
hci_usb +
sonypi
working Takashi Sasai
Sony Picture Book
C1VRK
CSR
hci_usb +
sonypi
working Takashi Sasai
Sony Picture Book
C1MRX
CSR
hci_usb +
sonypi
not
tested
Sony Picture Book
C1MGP
CSR
hci_usb +
sonypi
working Kai Engert
Sony Picture Book
C1MV
CSR
hci_usb +
sonypi
not
tested
Sony Picture Book
C1MHP
CSR
hci_usb +
sonypi
working Florian Lohoff
Sony Notebook
SR31K
CSR
hci_usb +
sonypi
not
tested
Sony Notebook
SR9G
CSR
hci_usb +
sonypi
working Takashi Sasai
Sony Notebook
SR9K
CSR
hci_usb +
sonypi
working Takashi Sasai
Sony Notebook
SRX7
CSR
hci_usb +
sonypi
working Takashi Sasai
Sony Notebook
SRX7E
CSR
hci_usb +
sonypi
working Takashi Sasai
Sony Notebook
SRX7P
CSR
hci_usb +
sonypi
working Takashi Sasai
Sony Notebook
SRK41P
CSR
hci_usb +
sonypi
working Iain Allan
Sony Notebook
SRX41P
CSR
hci_usb +
sonypi
working
Sony Notebook
SRX51P
CSR
hci_usb +
sonypi
working
Sony Notebook
SRX51P/A
CSR
hci_usb +
sonypi
working Mike Bremford
Sony Bluetooth
Infostick
1.1
Compaq iPAQ
H3970
CSR
1.1
hci_uart
working Marcel
Holtmann
Compaq iPAQ
CSR
1.1
hci_uart
working Jan Beutel
111
H3870
Compaq iPAQ
Bluetooth Sleeve
CSR
1.1
hci_uart
working Muthu Kumar
Compaq Multiport
Bluetooth
CSR
1.1
hci_usb
working Metod Kozelj
IBM Ultraport
Bluetooth
CSR
1.1
hci_usb
working Dirk
Husemann
IBM Notebook
A30p (TV066GE)
CSR
1.1
hci_usb
working Tobias Engel
IBM ThinkPad T30
(2366 92G)
CSR
1.1
hci_usb
working Anders Johan
Jamtli
Toshiba Portégé
4000
Silicon
Wave
1.1
hci_usb +
toshiba
working Martin Dietl
Toshiba Portégé
4100
Silicon
Wave
1.1
hci_usb +
toshiba
working Martin Dietl
Toshiba Satellite
5100
Silicon
Wave
1.1
hci_usb +
toshiba
not
tested
Toshiba Satellite Pro Silicon
6000
Wave
1.1
hci_usb +
toshiba
not
tested
Toshiba Satellite Pro Silicon
6100
Wave
1.1
hci_usb +
toshiba
not
tested
Toshiba Satellite
S5200-801
Silicon
Wave
1.1
hci_usb +
toshiba
working
Toshiba Tecra 9000 Silicon
Wave
1.1
hci_usb +
toshiba
working Martin Dietl
Toshiba Tecra 9100 Silicon
Wave
1.1
hci_usb +
toshiba
working Martin Dietl
Fujitsu Lifebook B2547
Fujitsu Lifebook B2548
Fujitsu Lifebook E7010
Fujitsu Lifebook E7110
Fujitsu Lifebook S6010
CSR
1.1
hci_usb
working Tobias
Rundström
Fujitsu Lifebook S-
CSR
1.1
hci_usb
working Gabor
112
6120
Halaszvari
TDK BluePaq
MSI 845E Max2BLR
CSR
1.1
hci_usb
working Alexandros
Karypidis
Sphinx PICO PCI
CSR
1.1
picopci
in
Marcel
progress Holtmann
Bibliografia
Capitolo 1
[1]
[2]
[3]
[4]
[5]
Mascolo, Capra, Emmerich. Mobile Computing Middleware. Dept. of
computer Science, University College London. 2002
Lyytinen, Yoo. Issues and challenges in Ubiquitous Computing.
Communication of ACM. 2002
Kindberg, Fox. System software for Ubiquitous Computing. IEEE
computer society press. 2002
Henricksen, Indulska, Rakotonirainy. Infrastructure for pervasive
computing: Challenges. School of computer Science, University of
Queensland. 2000
M. Weiser, “Some Computer Science Issues in Ubiquitous Computint”,
Comm ACM, Vol. 36, No. 7, pp 720-84, July 1993
Capitolo 2
[1]
http://www.ieee.com
[2]
http://www.ieee.com
[3]
Antti Kotanen, Marko Hannikainen, Helena
Timo
113
Leppakoski,
Hamailainen
“Experiments
on
Local
Positioning
with
Bluetooth”Internatio
nal Conference on Information Technology: Coding and
Computing (ITC
C 2003)
Capitolo 3
[1]
“Coordinate
Systems
Overview”
–
P.H.Dana
http://www.colorado.edu/geography/gcraft/notes/coordsys/
[2] “La Georeferenziazione nella gestione delle Informazioni
Geografiche Digitali” – Raffaele Gargiulo
http://www.analisidifesa.it/numero17/do-geo.htm
[3] “Map
Projection
Overview”
–
P.H.Dana
http://www.colorado.edu/geography/gcraft/notes/mapproj/
[4] “Geodetic
Datum
Overview”
–
P.H.Dana
http://www.colorado.edu/geography/gcraft/notes/datum/
[5] “In rete con la comunicazione geografica”, AA.VV., pag. 266
[6] “A Framework for Indoor Geolocation using an Intelligent System” –
Chahé
Nerguizian,
Charles
Despins,
Sofiène
Affes
http://www.wlan01.wpi.edu/proceedings/wlan44d.pdf
[7] “Location Sensing Tecniques” – J.Hightower, G.Borriello
[8] http://www.fcc.gov/911/enhanced/
[9] http://www.fcc.gov/Bureaus/Wireless/News_Releases/2001/nwl0127
a.pdf
[10] “Location Systems for Ubiquitous Computing” – J.Hightower,
G.Borriello
www.cs.washington.edu/homes/jeffro/pubs/hightower2001location
[11] “Global Positioning System Overview” – P.H. Dana
http://www.colorado.edu/geography/gcraft/notes/gps/
[12] http://www.trimble.com/gps/clockerrors1.html
[13] http://www.mobilein.com/mobile_positioning.htm
[14] “Radio propagation modelling for indoor geolocation applications” –
P. Krishnamurthy, K. Pahlavan, J. Beneat
[15] “RADAR: An In-Building RF-based User Location and Tracking
System“ –
P.Bahl, V.N. Padmanabhan
http://research.microsoft.com/~bahl/MS_Projects/projects.html
[16] “The Viterbi Algorithm” – G.D.Foney, Proc. of IEEE vol.61 , 1973
[17] “The Active Badge Location System” – R.Want, A.Hopper, V.Falcao,
J.Gibbons
http://www.uk.research.att.com/pub/docs/att/tr.92.1.pdf
[18] http://www.uk.research.att.com/
114
[19] “Active Bat” – http://www.uk.research.att.com/bat/
[20] “Cricket” – http://nms.lcs.mit.edu/papers/cricket.pdf
[21] “Easy Living” – http://research.microsoft.com/easyliving/
[22] “Towards a Location-Based Context-Aware Sensor Infrastructure” –
Scott Klemmer, Sarah Waterson, and Kamin Whitehouse
[23] http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf
[24] “Indoor Super Resolution TOA Measurement in Frequency-Domain”
– X. Li, K. Pahlavan
http://www.wlan01.wpi.edu/proceedings/wlan55d.pdf
[25] “914 MHz path loss prediction Model for Indoor Wireless
Communications in Multi-floored buildings” – S. Y. Seidel, T. S.
Rapport, IEEE Trans. on Antennas & Propagation, Feb. 1992
[26] “Principles and Applications of Radiowave Propagation in Mobile
Environments”– V. Mark Nishanian,
http://ece.gmu.edu/~pceperle/projs513/Nishanian/RadioP.htm
[27] “Using Calibration in RSSI-based Location Tracking System” –
M.Helen, J.Latvala, H.Ikonen, J.Niittylahti
[28] “Localized Algorithms In Wireless Ad-Hoc Networks:
Location Discovery And Sensor Exposure” –
S.Meguerdichian, S.Slijepcevic, V.Karayan, M.Potkonjak
[29] “Locationing In Distribuited Ad-Hoc Wireless Sensor Network” –
C.Savarese, J.M.RabaeyJan Beutel
[30] “Design and Calibration of the SpotON Ad-Hoc Location Sensing
System” – J.Hightower,C.Vakili1,G.Borriello, R.Want
[31] “Measurement Analysis of Spatial and Temporal Correlation in
Wideband Radio Channels with Adaptive Antenna Array” –
P.Karttunen,K.Kalliola,T.Laakso,P.Vainikainen
[32] “A Multipath Channel Estimation Algorithm using a Kalman filter” –
Rupul Safaya
[33] “Geolocation in a PicoRadio Enviroment” – J.Beutel
[34] “Management Of Geographic Information In Mobile Environment” –
Garmash Artem
Capitolo 4
[1] BTSIG, Specification of Bluetooth System, v1.1, volume 1, CORE, 2001,
http://www.bluetooth.com/pdf/Bluetooth_11_ Specifications_Book.pdf
115
[2] ETSI Telecom Standard, http://www.etsi.org/
[3] Pravin Bhagwat, “Bluetooth: Tecnology for Short-Range Wireless Apps”,
IEEE Internet Computing online, pp. 96 – 103 (IEEE 2001)
[4] PaloWireless, Wireless Resource Center, http://www.palowireless.com/
[5] Jaap C. Haartsen and Stefan Zurbes, “Bluetooth voice and data performance
in 802.11 DS WLAN environment”, Technical report, Ericsson Mobile
Communication, 1999
[6] HomeRF, “Interference immunity of 2.4 GHz wireless LANs”, Technical
report, http://www.homerf.org, 2001
[7] Mobilian, “Wi – Fi (802.11b) and Bluetooth simultaneous operation:
Characterizing the problem”, Technical report, http://www.mobilian.com,
200
[8] Handing of Bluetooth, - http://www106.ibm.com/developerworks/wireless/library/wi-handblue/
[9] JblueZ, http://jbluez.sourceforge.net/
[10] Appliance Studio, http://www.appliancestudio.com/
[11]
http://www.anycom.com
Capitolo 5
[1] JblueZ, http://jbluez.sourceforge.net/
[2] JSR-179, http://www.jcp.org/en/jsr/detail?id=179
[3] JSR-82, http://www.jcp.org/en/jsr/detail?id=182
[4] http://www.bluetooth.org/assigned-numbers/sdp.htm
116
117