Introduzione
4
INTRODUZIONE
Il presente lavoro di tesi si colloca nell’ambito di un progetto, svolto dal
Dipartimento di Ingegneria Elettrica Elettronica e Informatica (DIEEI)
dell’Università degli studi di Catania, sulla cooperazione tra un “UGV”
(Unmanned Ground Vehicle) e un “UAV” (Unmanned Aerial Vehicle) al fine
di localizzare un target in un ambiente non strutturato.
Con l’acronimo UAV si individuano tutti quegli aerei la cui peculiarità è quella
di eseguire una rotta senza l’ausilio di un pilota a bordo, avvalendosi di
un’elettronica di controllo che può renderli in tutto o parzialmente autonomi.
Ciò permette l’utilizzo di UAV delle dimensioni di un aeromodello, cioè da
alcune decine di centimetri a svariati metri, comportando un rilevante
risparmio in termini economici, e la possibilità di utilizzare il velivolo in tutte
quelle missioni che metterebbero a repentaglio la vita del pilota. Se questa
peculiarità rendeva qualche decennio fa gli UAV tipicamente adatti a missioni
di carattere militare, oggigiorno la tecnologia inerente questo settore sta
subendo un processo di “smilitarizzazione”. Grazie alla disponibilità di sensori
ed elettronica di controllo sempre più miniaturizzata e a basso costo, gli UAV
si rivelano uno strumento importante per l’esecuzione di missioni di carattere
civile o scientifico e ovunque si voglia salvaguardare le risorse umane. Esempi
tipici di tali missioni sono il pattugliamento del territorio e delle coste a scopo
di monitoraggio o rilievi fotografici, missioni di individuazione delle
coordinate di un oggetto a terra, analisi dell’atmosfera e dei composti chimici
in essa presenti, sorvolo aereo di monumenti o di manifestazioni
particolarmente a rischio.
La realizzazione da parte del DIEEI di un prototipo di velivolo completamente
autonomo [1] in grado di eseguire campionamenti dei gas dei fumi vulcanici,
ha suggerito l’idea di sviluppare un sistema basato su UAV e UGV. L’utilizzo
di veicoli terrestri mobili e piattaforme volanti costituisce un sistema di
monitoraggio dei vulcani estremamente avanzato. Gli UAV consentono non
solo di sorvegliare l’area sotto osservazione, comunicando il sopraggiungere o
Introduzione
5
il verificarsi di una situazione di emergenza, ma anche di segnalare
repentinamente, mediante, per esempio, l’uso di telecamere, variazioni della
morfologia del terreno. Ciò consente di riadattare le mappe e i percorsi dei
veicoli terrestri, i quali possono essere utilizzati per avvicinarsi il più possibile
ai punti di interesse per effettuare operazioni di campionamento e misura.
Figura 1: Cooperazione tra UAV (Volcan) e UGV (Robovolc).
La figura 1 rappresenta una possibile applicazione, ovvero la localizzazione di
un target terrestre mediante la fusione dei dati provenienti da UAV e UGV: le
informazioni fornite dalla telecamera a bordo dell’aereo saranno integrate con
l’esatta posizione del Rover ottenuta da un Differential GPS al fine di
migliorare la stima sulla posizione del target.
Oggetto di studio della tesi è la validazione sperimentale di un algoritmo che
permetta di geo-localizzare un target a terra e di stimare con precisione la
posizione e l’assetto dell’UAV a partire dalle misurazioni rumorose che
offrono i sensori di GPS e AHRS. In particolare, l’algoritmo è stato
implementato sulla base di una applicazione in Delphi, realizzata dal collega
Giuseppe Inzerilli [1], che si occupa di interfacciare l’hardware dell’UAV e
Introduzione
6
della visualizzazione delle immagini della Terra facendo uso del programma
Google Earth. Ciò ha permesso di utilizzare dati reali acquisiti dall’UAV per
collocare una telecamera virtuale su Google Earth con l’ovvio vantaggio di
poter eseguire prove al banco prima dell’implementazione di una telecamera
reale.
L’applicazione possiede numerose funzionalità, quali la visualizzazione in real-
time delle informazioni provenienti dall’UAV mediante l’impiego di
strumentazione virtuale, la visualizzazione dell’UAV tramite differenti
telecamere opportunamente impostate su Google Earth, ecc. In questo lavoro di
tesi, alcune di queste funzionalità non sono state utilizzate perché si concentra
l’attenzione sull’implementazione del filtro di Kalman esteso che è il cuore
dell’algoritmo di geo-localizzazione. Tale filtro è necessario per due motivi
fondamentali:
non essendo possibile ricostruire uno spazio a tre dimensioni a partire
da un’immagine a due dimensioni, l’algoritmo richiede la conoscenza
della profondità dell’immagine. Questa informazione è reperibile con
un’elevatissima incertezza che il filtro ha il compito di ridurre in modo
sensibile al fine di poter affermare con esattezza di aver geo-localizzato
il target a terra;
le informazioni che provengo dai sensori di localizzazione (GPS) e di
assetto (AHRS) dell’UAV, sono affette da rumore e quindi non sono
sempre affidabili. Il filtro di Kalman permette di ottenere una stima di
queste informazioni più precisa e conseguentemente una migliore stima
sulla posizione del target a terra.
La tesi è organizzata in quattro capitoli:
Il primo capitolo si propone di sintetizzare uno stato dell’arte nel
periodo attuale sull’argomento trattato e riguardo all’utilizzo dei più
avanzati simulatori di volo.
Introduzione
7
Il secondo capitolo introduce l’algoritmo utilizzato per geo-localizzare
il target a terra, facendo chiarezza sui sistemi di riferimento impostati e
sui metodi di calibrazione della telecamera utilizzata.
Nel terzo capitolo si parla dell’implementazione del filtro di Kalman
esteso, dopo una breve introduzione teorica.
Nel quarto capitolo sono raccolti tutti i risultati sperimentali delle
simulazioni effettuate.
Infine si termina con un Appendice che si propone di fornire una sorta di
manuale delle funzioni utilizzate nel codice Delphi.
Stato dell’Arte Capitolo 1
8
Capitolo 1
STATO DELL’ARTE
Il presente lavoro di tesi si colloca in particolare tra metodologie
frequentemente in uso nella robotica mobile come gli algoritmi per lo SLAM e
la Computer Vision. L’obiettivo di questo capitolo è di offrire una visione
abbastanza completa dei lavori attualmente svolti per quello che riguarda il
“Target Tracking”, cooperazione tra robot terrestri e aerei senza pilota,
ambienti di simulazione per il volo e per la robotica più in generale.
1.1 Lavori precedenti
Esistono numerosi articoli scientifici in cui si cercano e si propongono
soluzioni per problemi abbastanza comuni come il rilevamento di target
terrestri, il monitoraggio del traffico aereo, l’implementazione di sistemi di
sorveglianza. Il lavoro svolto nel reference [3] dimostra come la cooperazione
tra una squadra di UGV (Unmanned Ground Vehicles) e una squadra di UAV
(Unmanned Aerial Vehicle) risulta fondamentale per l’identificazione e la
localizzazione di un numero di target sconosciuto in un area predefinita. I
sensori utilizzati sono costituiti da semplici telecamere digitali montate a bordo
dei robot. La fusione dei dati provenienti da diverse posizioni è eseguita con un
procedimento equivalente al filtro di Kalman lineare. In tale articolo è
evidenziato come la covarianza sulle informazioni di posizione e assetto del
robot si propaghino sulla covarianza della funzione omografica. Si tracciano in
seguito le incertezze di osservazione del target ed è facile notare come si arriva
a una più rapida e sicura identificazione del target quando lo stesso è
inquadrato da prospettive differenti (figura 1.1).
Stato dell’Arte Capitolo 1
9
Figura1.1: Camera a bordo dell'UGV(a)e dell'UAV(b) [3]
È importante osservare che quest’ultimo progetto fa riferimento a un articolo
scientifico che offre una solida trattazione matematica del problema della
propagazione dell’incertezza nei parametri [4]. Tale articolo è stato molto
importante anche per lo svolgimento di questa tesi, poiché permette di
comprendere come è possibile propagare la covarianza in problemi di visione
artificiale. Nel caso in studio si vuole capire come un errore sui dati provenienti
dai sensori GPS e AHRS montati sul velivolo possa influire sull’immagine del
target proveniente dalla telecamera a bordo.
In alcune applicazioni in robotica si richiede la rappresentazione spaziale
dell’informazione stimata con la sua relativa incertezza. I metodi utilizzati per
raggiungere tale scopo sono studiati nell’articolo [7], in cui la mappa che ne
risulta viene chiamata mappa stocastica. Le procedure sono sviluppate in un
contesto di stima dello stato del sistema e di teoria del filtraggio, offrendo
solide basi per numerose applicazioni nell’ambiente della robotica. Le
relazioni spaziali tra oggetti sono intrinsecamente incerte per imperfezioni di
fabbricazione ed errori di misura cui i sensori, montati sul robot, sono
inevitabilmente affetti. Tali relazioni sono legate matematicamente a un vettore
di variabili spaziali che possono essere, ad esempio, le coordinate di posizione
e orientamento di un robot mobile. L’incertezza su queste variabili è
Stato dell’Arte Capitolo 1
10
rappresentata dalla matrice di covarianza che per definizione è il valore atteso
degli scostamenti al quadrato delle suddette variabili rispetto al loro valore
medio. Nella mappa stocastica, il valore medio del vettore di stato indica la
locazione nominale dell’oggetto rispetto al sistema di riferimento mondo e la
matrice di covarianza associata rappresenta l’incertezza di ogni punto e le
inter-dipendenze tra queste incertezze (termini di cross-varianza).
Figura1.2:Changing Map [7]
La figura 1.2 rappresenta il concetto chiave che è alla base della costruzione
della mappa stocastica. Le informazioni spaziali sono ottenute a momenti
discreti indicati dall’indice k. I cambiamenti nella mappa possono essere
causati dal movimento del robot, degli oggetti, dall’inserimento di nuovi
oggetti o dalla rimozione di vecchi oggetti. Qualsiasi di queste dinamiche è
sintetizzata nell’aggiornamento del vettore dei valori medi e della matrice di
covarianza associata, basandosi sui più recenti dati sensoriali.
È interessante notare che in questo articolo la procedura di costruzione della
mappa stocastica è integrata perfettamente nella teoria del filtraggio,
collegandosi direttamente al filtro di Kalman.
Nel reference [5] è interessante vedere come sia possibile compiere una stima
della posizione e conseguentemente del moto di uno o più UAV per mezzo di
Stato dell’Arte Capitolo 1
11
differenti omografie planari ciascuna relativa all’immagine prelevata da una
telecamera montata sul singolo UAV. L’algoritmo implementato per il
raggiungimento di tale obiettivo si basa sul matching di elementi comuni alle
diverse immagini, come è mostrato nella figura 1.3.
Figura1.3:Algoritmo per la stima del moto a partire da omografie planari [5]
Si può facilmente capire che l’algoritmo è fortemente dipendente da tutte
quelle tecniche di visione grazie alle quali è possibile eseguire l’estrazione di
features, il riconoscimento dei contorni e particolari aree di interesse per poi
passare al matching globale e a una stima del moto dell’UAV sempre più esatta
Stato dell’Arte Capitolo 1
12
step dopo step. È facile comprendere che questa tecnica permette una
ricostruzione simultanea dello spazio circostante in tre dimensioni, usando
l’omografia corrispondente a immagini riprese da differenti UAV.
Negli articoli [8] e [9] vengono presentate delle interessanti applicazioni della
teoria del filtraggio per la “Simultaneous Localisation And Mapping” (SLAM)
di velivoli UAV a partire da immagini aeree utilizzate come informazioni a
priori. In particolare nell’articolo [8] è possibile avere una simultanea
localizzazione del robot e una ricostruzione dell’ambiente circostante mediante
l’implementazione di un filtro di Kalman esteso. In modo differente,
nell’articolo [9], è applicato il metodo di localizzazione Monte Carlo che è una
variante del filtraggio particellare. In entrambi i lavori giocano un ruolo
fondamentale le immagini aeree dell’ambiente riprese dal velivolo e di
conseguenza gli algoritmi di visione necessari per il riconoscimento e la geo-
localizzazione di features importanti allo scopo finale del progetto.
L’articolo [2] è stato un pilastro fondamentale per lo svolgimento del lavoro di
questa tesi. L’articolo presenta un algoritmo in grado di ricostruire una
traiettoria in tre dimensioni di una telecamera (calibrata) che si muove in un
ambiente tra immagini sconosciute. Si tratta di un’applicazione dello SLAM in
Computer Vision. Si fa leva sul concetto chiave di avere una mappa
probabilistica basata su elementi distintivi della scena inquadrata e
rappresentante la stima corrente degli elementi di interesse con la relativa
incertezza. La mappa si inizializza allo start-up del sistema e il processo evolve
dinamicamente per mezzo dell’implementazione di un filtro di Kalman esteso.
La modellazione del moto della telecamera all’interno di un ambiente
sconosciuto è stata di fondamentale ispirazione per la scrittura dell’algoritmo
presentato nel capitolo terzo della tesi.
I progetti fino a qui citati sono solo una piccola parte di quello che fino adesso
è stato fatto sull’argomento, ma comunque danno un’idea di come il lavoro che
è oggetto di questa tesi si colloca nell’ambiente della ricerca.
Stato dell’Arte Capitolo 1
13
1.2 Ambienti di simulazione di volo e per
la robotica
Come è stato accennato nell’introduzione, l’algoritmo è implementato su
un’applicazione scritta in ambiente Delphi che si interfaccia con il software
Google Earth. Questa applicazione è a tutti gli effetti un simulatore di volo
creato ad – hoc per gli obiettivi progettuali.
Alla luce di queste considerazioni è importante fare dei piccoli accenni sui
simulatori di volo e più in generale ai simulatori per la robotica che esistono in
commercio.
Uno dei più potenti e utilizzati simulatori di volo è sicuramente X-Plane (figura
1.4 [6]).
Figura1.4: X-Plane[6]
Il funzionamento di X-Plane si basa sulla lettura della geometria dell’aereo
attraverso un processo chiamato “blade element theory” [6]: tale teoria implica
il frazionamento dell’aereo in tanti piccoli elementi per poi cercare le forze che
agiscono su ogni elemento molte volte al secondo. In seguito le forze vengono
Stato dell’Arte Capitolo 1
14
convertite in accelerazioni e, tramite successive integrazioni, in velocità e
posizioni.
Non meno importante è sicuramente il simulatore di volo della Microsoft
Flight Simulator [17] (figura 1.5).
Figura 1.5: Screenshot di Flight Simulator[17]
Questo simulatore di volo è stato adottato anche da alcune aereonautiche come
addestratore procedurale.
Esso offre un ambiente di simulazione molto realistico, mettendo a
disposizione dell’utente tutti i comandi della cabina di controllo e potendo
scegliere di cambiare punto di osservazione.
In Flight Simulator sono presenti tutti gli aeroporti e gli aeromobili fedelmente
riprodotti. È possibile volare con condizioni meteorologiche che sono
aggiornate online tramite previsioni reali e che influiscono sulla simulazione
del volo.
Stato dell’Arte Capitolo 1
15
Oltre questi ambienti di simulazione esistono simulatori per la robotica mobile
ampiamente utilizzati nell’ambito dell’automazione. Uno dei più validi è
Gazebo [18](figura 1.6).
Figura1.6:Screenshot di Gazebo[18]
Gazebo è un simulatore di robot ed è in grado di simulare una popolazione di
robot, di sensori e di oggetti in modo tridimensionale, offrendo una plausibile
interazione fisica tra gli oggetti. Le caratteristiche del software sono molto
interessanti:
Simulazione dei sensori più comuni nella robotica mobile tra cui il
sonar, il laser scanner, GPS, IMU, macchine fotografiche, ecc
Simulazione della fisica dei corpi rigidi: i robot possono spingere gli
oggetti, possono prenderli e in genere interagiscono con il mondo in
modo plausibile.
I robot e i sensori possono essere controllati attraverso interfacce
standard.