Introduzione
Il termine navigazione, nella sua pi` u ampia accezione, ` e l’arte o la scienza
di governare la condotta di una qualche entit` a mobile lungo una traiettoria
prestabilita. Alla base di tale obiettivo vi ` e sicuramente la scelta di un op-
portuno sistema di riferimento e l’espletamento di determinate operazioni,
quali ad esempio: la determinazione dello stato attuale, il confronto di que-
st’ultimo con la situazione programmata, il calcolo delle correzioni idonee a
portare la situazione attuale in prossimit` a di quella programmata e infine la
trasformazione di tali correzioni in termini di comandi per un certo sistema
di guida, atto al controllo dell’entit` a mobile. E’ di particolare interesse per
questa trattazione far notare che, gi` a dagli anni ’40, anche se per scopi quasi
esclusivamente militari, si sono sviluppati apparati in grado di fornire dati
di posizione e navigazione senza alcun riferimento esterno; in altre parole,
la determinazione della posizione e dei comandi per il controllo della traiet-
toria, si basava unicamente sull’elaborazione di misure effettuate ‘a bordo’
della sovracitata entit` a mobile.
Quella che oggi indichiamo col termine di dead reckoning, non ` e altro che
quel tipo di navigazione che prevede la determinazione della posizione cor-
rente di un target mobile esclusivamente sulla base della conoscenza degli
elementi del moto, come la velocit` a e la direzione, e della loro variazione,
senza alcun riferimento esterno. Ora, gli unici sistemi di riferimento rispet-
Introduzione 8
to ai quali questa autonomia assoluta ` e possibile, sono quelli inerziali, che
hanno bisogno soltanto della conoscenza del campo gravitazionale esterno,
funzione ben nota del luogo in cui ci troviamo e non soggetta a modificazioni
repentine. Come sappiamo, il termine inerziale nasce dal fatto che le leggi di
Newton sono valide soltanto per un sistema di riferimento solidale alle stelle
fisse, detto appunto terna inerziale. Evitando di dilungarci troppo sui van-
taggiapportatiallanavigazionenell’utilizzareunsistemadiriferimentocome
questo, possiamo definire un sistema di navigazione inerziale (o INS, Inertial
Navigation System) come un’architettura in grado di tracciare la posizione,
l’orientamento e la velocit` a di un target mobile, unicamente sulla base dei
dati restituiti dai sensori di moto, senza la necessit` a di riferimenti esterni.
Ci` o premesso, lo scopo di questo lavoro riguarder` a la sintesi di una soluzione
algoritmica, basata sul filtraggio alla Kalman, da affiancare a piattaforme
di navigazione inerziale. L’esigenza di sfruttare la teoria dei controlli, ed in
particolare il filtro di Kalman, come ausilio alla navigazione inerziale, deri-
va dal fatto che ogni sistema di navigazione inerziale soffre della cosiddetta
deriva di integrazione: ossia, piccoli errori nelle misurazioni di accelerazione
(o di velocit` a angolare), vengono integrati e resi progressivamente maggiori
nel calcolo della velocit` a e ancor pi` u aggravati in errori ancora maggiori nel
calcolo della posizione. Questo ` e un problema inerente a tutte le soluzioni
di controllo in anello aperto, al quale si pu` o ovviare con un algoritmo di
filtraggio alla Kalman, che si presenter` a come un potente strumento per la
combinazione delle informazioni provenienti dai sensori, in alternativa alla
pura doppia integrazione.
La seconda e non meno importante motivazione all’uso di un algoritmo di
filtraggio deriva dall’ambiente in cui vogliamo perseguire la nostra stima di
posizione. Infatti, per la navigazione in ambienti esterni si hanno gi` a soluzio-
Introduzione 9
ni convalidate: esse sono basate sull’integrazione delle misure derivanti dai
sensori di moto, con le informazioni ottenute da sistemi di posizionamento
satellitare GPS, utilizzate per ridurre le derive dei sensori inerziali che si ori-
ginano a fronte di acquisizioni dati a medio e lungo termine. Spostandoci,
invece, in ambienti indoor (ad esempio all’interno di edifici), viene meno il
supporto del segnale GPS e al contempo si necessita di una maggiore pre-
cisione poich´ e anche un solo errore di pochi metri pu` o spostare la posizione
stimata del target in zone completamente diverse.
Stima di posizione tramite doppia integrazione
Prima di passare al vaglio gli argomenti trattati nei vari capitoli a seguire,
conviene descrivere in modo pi` u dettagliato una delle tecniche pi` u note per
la navigazione inerziale: la doppia integrazione. Chiariamo innanzitutto che
in un qualunque INS si fa uso di almeno due sistemi di riferimento: il primo
` e una terna inerziale, considerata ‘fissa’ e, ad esempio, solidale alla Terra
1
;
il secondo ` e una terna non inerziale, considerata ‘mobile’ e solidale al target
in movimento, di cui si vuole stimare nel tempo la posizione. Detto ci` o,
si ha poi che ogni INS ` e caratterizzato da una unit` a di misura inerziale
(IMU, Inertial Measurement Unit), in genere costituita da un accelerometro
triassiale, una bussola magnetica ed un giroscopio, la quale fornisce le misure
in terna mobile per la stima di posizione. E’ quindi questo il caso in cui
i sensori di moto sono solidali al target mobile, e sottoposti a tutte le sue
accelerazioni e rotazioni (Strapdown INS). Detto ci` o, il tracking di posizione
` e effettuato proiettando le misure di accelerazione in terna fissa, utilizzando
1
In realt` a, la Terra non ` e un vero e proprio sistema di riferimento inerziale, a causa dei
suoi movimenti di rivoluzione e di rotazione. In particolare, il moto di rotazione sottopone
gli oggetti sulla sua superficie, che sono lontani dai poli, a una piccola forza centrifuga.
Introduzione 10
per la rotazione l’orientazione restituita, istante per istante, dalla bussola
magnetica o dall’integrazione delle misure giroscopiche. A questo punto,
si rimuove la componente in continua (data dalla gravit` a) dalle misure di
accelerazione e si effettua una doppia integrazione, ottenendo la posizione
nel sistema di riferimento inerziale. Ora, come accennato in precedenza,
questoapproccio, seppureteoricamentecorretto, portanellapraticaadavere
un errore di stima non accettabile gi` a dopo pochi secondi. Infatti, ogni
integrale rappresenta in un certo intervallo temporale una somma di tante
misure affette da un errore a media non nulla, generando un risultato in cui
la ripercussione di tale errore ` e aumentata notevolmente. Essendo due gli
integrali necessari a valutare la posizione, tale errore cresce sempre di pi` u
col passare del tempo e addirittura in maniera quadratica. Per completezza,
si riporta a seguire il formalismo matematico che descrive i vari passaggi, al
tempo t, che si effettuano per la stima di posizione s
inertial
(t), a partire dalla
misura di accelerazione a
body
(t)
2
.
a
body
(t) = [a
body,x
(t),a
body,y
(t),a
body,z
(t)]
T
a
inertial
(t) =R
inertial
body
(t)a
body
(t)
v
inertial
(t) =v
inertial
(0)+
t
0
[a
inertial
(t)−g
inertial
]dt
s
inertial
(t) =s
inertial
(0)+
t
0
v
inertial
(t)dt
dovev
inertial
(0)es
inertial
(0)sonorispettivamentelavelocit` aelaposizioneini-
ziali del target, note esattamente a-priori, g
inertial
` e l’accelerazione di gravit` a
in terna fissa e R
inertial
body
(t) la matrice di rotazione 3x3, che proietta la misura
di accelerazione dalla terna mobile in quella fissa. Si rimanda al Capitolo 1
la costruzione e la descrizione della struttura di tale matrice. In figura 1 si
da infine uno schema a blocchi per un algoritmo di navigazione inerziale a
2
Il pedice ‘inertial’ riferisce la misura alla ternafissa, mentre il pedice ‘body’ la riferisce
alla terna mobile.
Introduzione 11
doppia integrazione, di tipo strapdown.
Figura 1: Sistema di navigazione inerziale strapdown a doppia integrazione
La trattazione si sviluppa quindi nel seguente modo:
• NelCapitolo1concentriamolanostraattenzionesullanavigazioneiner-
ziale in ambienti chiusi, cominciando col prendere in considerazione i
sistemi di riferimento utilizzati nel progetto. In particolare, si fa uso di
tre sistemi di riferimento, i primi due dei quali sono considerati iner-
ziali. Rispettivamente, si ha che il primo ` e solidale alla planimetria
dell’edificio ed ` e indicato come terna fissa indoor, il secondo ` e solidale
alla Terra ed ` e indicato come terna fissa outdoor ed il terzo ` e solidale
al target in movimento all’interno dell’edificio ed` e indicato come terna
mobile body-fixed. L’obiettivo di questa sezione sar` a quindi quello di
trasformare una misura espressa in terna mobile in una misura espres-
sa in una terna fissa, e viceversa; ci` o si traduce nell’obiettivo di ruotare
un vettore da un sistema di riferimento ad un altro. Infine, si fornisce
uno schema elementare che riassume la filosofia della soluzione algorit-
mica proposta per la stima di posizione indoor, insieme all’analisi delle
ipotesi di progetto avanzate durante l’implementazione.
Introduzione 12
• Nel Capitolo 2 si fornisce un algoritmo iterativo per generare, sistema-
ticamente e per punti, i percorsi lungo i quali si desidera stimare la
posizione del target in moto; tali percorsi possono schematizzare, ad
esempio, i corridoi dell’edificio all’interno del quale il target si muove.
Unitamenteaci` o, sicostruisceapartiredalpercorsoideale, unmodello
matematico per la generazione della traiettoria virtuale seguita da un
generico pedone in movimento lungo quel percorso. Nella realt` a, dal
momento che il pedone, lungo il tragitto, raccoglie tutta una serie di
misure attraverso sensori di moto solidali alla sua persona, in questa
sezione si genera altres` ı un set di misure virtuali a cui si addizionano
rumori di misura opportunamente modellati sulla base degli strumenti
utilizzati. Infine, si procede a simulare la traiettoria seguita da un pe-
done virtuale nel percorrere un cammino assegnato, sovrapponendo a
quest’ultima la stima di posizione indoor effettuata tramite la tecnica
della doppia integrazione. Noteremo come tale stima degeneri dopo
pochi secondi, offrendo scarse prestazioni a causa degli errori di deriva,
chesipropaganoinmanieraquadraticarispettoaltemponelcasodella
posizione.
• Nel Capitolo 3 si espone la struttura del filtro di Kalman standard
tempo-discreto e si introduce la teoria riguardante lo Switching Kal-
man Filter utilizzato in questo progetto, come caso particolare del KF
a modelli multipli dinamici (Dynamic Multiple Model KF). Infatti, nel
nostro caso, non abbiamo un approccio bayesiano al calcolo delle pro-
babilit` a associate ai modelli, le quali non sono restituite ad ogni passo
da una catena di Markov, ma calcolate deterministicamente sulla base
della stima attuale e del percorso seguito dal target.
Introduzione 13
• Nel Capitolo 4 si presentano due possibili modelli di stima (tempo
continui) su cui basare il filtraggio alla Kalman; tali modelli devono
descrivere nel modo pi` u semplice e fedele possibile, il moto del pedone
che percorre il path assegnato. Il primo modello scelto ` e chiamato a
doppio integratore
3
; il secondo` e un classico WPA (Wiener Process Ac-
celeration), chiamato anche ‘modello ad accelerazione quasi costante’
per il quale la derivata dell’accelerazione` e modellata come un disturbo
additivo bianco. A seguire, se ne deriva la versione discretizzata secon-
do metodi opportuni. Inoltre, al fine di migliorare le prestazioni del
filtro si introducono per entrambi i modelli un vincolo di moto piano,
perfezionando la descrizione del moto tenendo di conto che il pedone si
muovedimotopianonelpiano‘xy’dellaternafissaindoor,eunvincolo
di direzione, imposto sulla base della direzione del moto rispetto alla
stessa terna.
• Nel Capitolo 5 si procede ad una descrizione dettagliata dell’algoritmo
di filtraggio alla Kalman con filosofia di tipo soft-switch, focalizzando
l’attenzione sulla funzione dedita al calcolo deterministico delle proba-
bilit` a. Sidainfineunoschemadiprincipiodell’algoritmoesidiscutono
i valori da associare ai parametri dello stesso.
• Nel Capitolo 6 si verifica il funzionamento della soluzione proposta
con l’intento di tracciare la posizione, artificialmente costruita e nota,
di un pedone virtuale che si muove su di un percorso assegnato. In
questotipodisimulazione,lemisurepreseiningressodalSoft-Switching
KF sono anch’esse virtuali e ricavate attraverso il modello descritto
nel Capitolo 2. Nel fare ci` o si utilizzano entrambi i modelli di stima
3
Da qui in avanti ci riferiremo ad esso con la sigla dI.
Introduzione 14
suggeriti,notandounasostanzialeuguaglianzanelleprestazioni. Infine,
si conduceunaseriediproveMontecarlo, con lo scopo distudiarecome
evolvel’errore,suposizionestimataevelocit` astimata,rigenerandoogni
volta la traiettoria virtuale del pedone e le misure virtuali dallo stesso
raccolte, mantenendo ovviamente invariato il tragitto indoor percorso.
• NelCapitolo7sipresentanoirisultatidiunaseriediprovesperimentali,
dove si sono utilizzati set di misure reali raccolti seguendo un percor-
so prestabilito esistente. Va ad ogni modo specificato che per questa
applicazione ` e stato necessario implementare a fianco dell’algoritmo di
filtraggio anche un conta-passi, per la rilevazione dell’effettiva velocit` a
del target in moto; tale necessit` a deriva dal fatto che non possiamo
supporre, come avviene in simulazione, che il pedone reale mantenga
necessariamente una velocit` a costante durante tutto il tragitto. Anche
in questo caso i modelli di stima si comportano pressoch` e allo stes-
so modo. Infine, concludiamo la trattazione fornendo delle indicazioni
circa l’impostazione dei parametri dell’algoritmo nel caso reale e osser-
vando l’incremento delle prestazioni fornito dal Soft-Switching KF alla
navigazione indoor rispetto al KF Standard.
Capitolo 1
Navigazione inerziale indoor
Come abbiamo gi` a intuito, il sistema di navigazione pi` u utilizzato al mondo,
il GPS, non permette di navigare all’interno di edifici. Tuttavia, l’esigenza
di orientarsi anche in ambienti chiusi si sta facendo sempre pi` u importante
ed ha spinto a studiare soluzioni per la navigazione indoor basate necessaria-
mente sulle sole unit` a di misura inerziali. Come anticipato, questi dispositivi
permettonodiutilizzaretecnichedidead-reckoning, egraziealprogressotec-
nologico degli ultimi anni, e alla progressiva riduzione di peso e ingombro di
tali dispositivi, abbiamo a disposizione sui moderni smartphone tutta una
serie di applicazioni in grado di sfruttare la vasta gamma di sensori inerziali
integrati nell’apparecchio. Questo lavoro ` e quindi orientato alla creazione di
un sistema di localizzazione indoor a basso costo, che sfrutta esclusivamente
la teoria del filtro di Kalman e la sensoristica e le funzionalist` a del Sam-
sung Galaxy S: quest’ultimo, dotato di sistema operativo Android, mette a
disposizione un accelerometro triassiale ed una bussola magnetica. Va per` o
specificato che l’obiettivo di questo progetto non ` e prettamente rivolto allo
sviluppo di un software di navigazione per lo smartphone scelto, ma bens` ı
alla ricerca di una soluzione algoritmica, in ambiente Matlab, per la stima di
Capitolo 1. Navigazione inerziale indoor 16
posizione di un target mobile a partire dalle informazioni fornite dai sensori
inerziali di questo cellulare. Solo in un secondo momento sar` a possibile la
traduzione di questo progetto in linguaggio Java per l’effettiva implementa-
zione di un applicazione smarthphone, funzionante in real-time.
La pretesa di realizzare un navigatore di questo tipo, studiato per ambienti
interni, ` e quella di non fare uso di alcuna ulteriore tecnologia, come UWB,
RFID,WiFioBluetooth, cheprevedel’installazionediinfrastrutturededica-
te con costi talvolta non trascurabili. Inoltre, queste installazioni non garan-
tiscono sempre una precisione sufficiente e non sono utilizzabili in situazioni
particolari o di pericolo (incendi o allagamenti).
1.1 Sistemi di riferimento in terna fissa ed in
terna mobile
Al fine di poter utilizzare instante per istante le misure fornite dai sensori
a bordo dello smartphone, ` e necessario poter effettuare delle trasformazioni
trai vari sistemi di riferimento suddetti. In particolare, occorre ruotare ogni
misura dalla terna mobile body-fixed, solidale al dispositivo, nella terna fissa
indoor. Di seguito viene quindi formalizzata la notazione impiegata per ca-
ratterizzare i tre diversi sistemi di riferimento utilizzati.
Generalmente, inletteratura, ilproblemadiaffrontarelarotazionediunvet-
tore espresso in una terna fissa, ossia inerziale, in un vettore espresso in una
terna mobile BODY, prevede di considerare come sistema di riferimento fisso
la cosiddetta terna NED, solidale alla Terra, i cui assi sono scelti con l’orien-
tazione descritta nella figura 1.1: l’assex
NED
punta verso il Nord magnetico,
l’asse y
NED
punta verso Est e l’asse z
NED
punta verso il centro della Terra.
Ci` o premesso, per ruotare un vettore 3x1 dalla terna NED alla terna BODY
Capitolo 1. Navigazione inerziale indoor 17
si sfruttano tre rotazioni successive, ognuna intorno ai diversi assi della terna
fissa
1
. Gli angoli associati a tali rotazioni sono detti angoli di Eulero e la
composizione di queste tre rotazioni ` e matematicamente formalizzata in una
matrice 3x3 quadrata e ortogonale, chiamata appunto matrice di rotazione,
che nel nostro caso possiamo indicare con R
BODY
NED
.
Figura 1.1: Sistema di riferimento inerziale NED.
Se i pianio(x
NED
,y
NED
) eo(x
BODY
,y
BODY
) sono distinti, essi si intersecano
in una retta, detta linea dei nodi; se, invece, i piani coincidono la linea dei
nodi` e definita come l’assex
BODY
. Allora i tre angoli di Eulero si definiscono
nel seguente modo:
1
Si supponga, per semplicit` a, che la terna fissa e quella mobile abbiano l’origine in
comune.
Capitolo 1. Navigazione inerziale indoor 18
• γ ` e l’angolo tra l’asse x
NED
e la linea dei nodi; esso ` e chiamato angolo
di precessione oppure angolo di yaw (imbardata).
• θ ` e l’angolo tra gli assi z
NED
e z
BODY
; esso ` e chiamato angolo di
nutazione oppure angolo di pitch (beccheggio).
• ρ` e l’angolo tra la linea dei nodi e l’assex
BODY
; esso` e chiamato angolo
di rotazione propria oppure angolo di roll (rollio).
Specifichiamo che nelle applicazioni di aeronautica e robotica, si ` e soliti rife-
rirci agli angoli di Eulero come agli angoli di rollio, beccheggio e imbardata
(o RPY, Roll-Pitch-Yaw). Specifichiamo che i fenomeni di rollio, beccheggio
e imbardata sono sempre gli stessi: il rollio descrive sempre la rotazione del-
l’oggetto in moto attorno al proprio asse longitudinale; il beccheggio descrive
sempre la rotazione attorno, invece, al proprio asse trasversale; infine, l’im-
bardata ` e sempre data dalla rotazione dell’oggetto in moto attorno all’asse
verticale passante per il suo baricentro. In tal caso, per una terna di tipo
NED, il rollio avviene intorno all’asse x
NED
, il beccheggio intorno all’asse
y
NED
e l’imbardata intorno all’asse z
NED
.
In definitiva, la matrice di rotazione R
BODY
NED
si compone a partire dalle
seguenti rotazioni, da effettuarsi nell’ordine fornito:
• Rotazione di un angolo di yaw γ intorno all’asse z
NED
.
• Rotazione di un angolo di pitch θ intorno all’asse y
NED
.
• Rotazione di un angolo di roll ρ intorno all’asse x
NED
.
Capitolo 1. Navigazione inerziale indoor 19
Queste tre rotazioni possono essere espresse matematicamente come tre ma-
trici separate di ‘coseni direttori’; rispettivamente, si ha quindi che:
C
γ
=
cos(γ) sin(γ) 0
−sin(γ) cos(γ) 0
0 0 1
C
θ
=
cos(θ) 0 −sin(θ)
0 1 0
sin(θ) 0 cos(θ)
C
ρ
=
1 0 0
0 cos(ρ) sin(ρ)
0 −sin(ρ) cos(ρ)
da cui si ottiene:
R
BODY
NED
=C
ρ
C
θ
C
γ
Dal momento che all’atto pratico occorrer` a ruotare le misure dalla terna
mobile, solidale allo smartphone, nella terna fissa, solidale alla Terra, ` e pi` u
utile concentrarci sulla struttura della matrice di rotazione inversa, R
NED
BODY
.
Quest’ultima, per le note propriet` a di ortogonalit` a delle matrici di rotazione,
si esprime come:
R
NED
BODY
= (R
BODY
NED
)
T
=C
T
γ
C
T
θ
C
T
ρ
=
=
cos(γ) −sin(γ) 0
sin(γ) cos(γ) 0
0 0 1
cos(θ) 0 sin(θ)
0 1 0
−sin(θ) 0 cos(θ)
1 0 0
0 cos(ρ) −sin(ρ)
0 sin(ρ) cos(ρ)
=
=
c
γ
c
θ
−s
γ
c
ρ
+c
γ
s
θ
s
ρ
s
γ
s
ρ
+c
γ
c
ρ
s
θ
s
ρ
c
θ
c
γ
c
ρ
+s
γ
s
θ
s
ρ
−c
γ
s
ρ
+s
γ
c
ρ
s
θ
−s
θ
s
ρ
c
θ
c
ρ
c
θ
Capitolo 1. Navigazione inerziale indoor 20
dove, per compattezza di notazione, si considera: c
α
= cos(α) e s
α
= sin(α).
Detto ci` o, occorre specificare che la terna fissa outdoor utilizzata in que-
sto lavoro, e che indicheremo cono(x
e
,y
e
,z
e
), non` e di tipo NED; infatti, per
come ` e stata scelta la disposizione dei suoi assi, si indica con la sigla ENU.
Un sistema di riferimento fisso ENU, descritto in figura 1.2, ` e cos` ı definito:
l’assex
ENU
punta verso Est ed` e tangente al terreno rispetto all’attuale posi-
zione del dispositivo; l’asse y
ENU
punta verso il Nord magnetico ed ` e ancora
tangente al terreno rispetto alla stessa posizione; infine, l’asse z
ENU
punta,
in direzione perpendicolare al terreno, verso il cielo.
Figura 1.2: Sistema di riferimento inerziale ENU.
E’ subito chiaro che la matrice di rotazione di cui sopra, calcolata rispetto
a questa nuova terna, risulter` a leggermente diversa. Specifichiamo poi che
anche la terna fissa indoor, che indicheremo come o(x
i
,y
i
,z
i
) ` e di tipo ENU,