Upload
doankhanh
View
214
Download
0
Embed Size (px)
Citation preview
UNIVERSITA DEGLI STUDI DI ROMA
TOR VERGATA
FACOLTA DI INGEGNERIA
CORSO DI LAUREA IN INGEGNERIA
DELL’AUTOMAZIONE
Tesi di Laurea
SVILUPPO DI UN SISTEMA 3D TRACKING AD
INFRAROSSI E MODELLIZZAZIONE DELLA DINAMICA
DI VOLO DI UN QUADROTOR
RELATORE CANDIDATO
Ing. Daniele Carnevale Davide Bossi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CORRELATORE
Ing. Giulia Franchi
. . . . . . . . . . . . . . . . . . . . . . . .
A.A. 2010/2011
Indice
Ringraziamenti 1
Introduzione 2
1 AR.DRONE Parrot 6
1.1 Presentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Descrizione meccanica ed elettronica . . . . . . . . . . . . . . . . . . 9
1.3 Applicazioni attuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Acquisizione dati 13
2.1 Stereovisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.1 Wiimote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.2 Struttura del sistema . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3 Acquisizione Calibrazione e Triangolazione . . . . . . . . . . . 21
2.2 Software Development Kit . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.1 Comando tramite Joystick . . . . . . . . . . . . . . . . . . . . 26
2.2.2 Strutture dati e salvataggio . . . . . . . . . . . . . . . . . . . 27
2.3 Prime analisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3 Identificazione 30
3.1 Sistemi e modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
INDICE I
INDICE
3.1.1 Principali funzioni . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Osservazioni ed Elaborazione dati . . . . . . . . . . . . . . . . . . . . 33
3.3 Identificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.1 Dinamica del Throttle . . . . . . . . . . . . . . . . . . . . . . 37
3.3.2 Dinamica dello Yaw . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.3 Dinamica del Roll e del Pitch . . . . . . . . . . . . . . . . . . 41
4 Progetto di Controllore 45
4.1 Dinamica da controllare . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Processo e Controllore . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Conclusioni e sviluppi futuri 52
Elenco delle figure 54
Elenco delle tabelle 55
Elenco dei codici 56
Bibliografia 57
INDICE II
Ringraziamenti
Desidero innanzitutto ringraziare l’Ing. Daniele Carnevale per la sua disponibilita,
per il prezioso supporto sia didattico che morale, per la sua instancabile voglia di
fare per raggiungere i migliori risultati possibili e soprattutto per la sua simpatia e
semplicita.
Ringrazio inoltre la Endes Innovation S.r.l. e l’Ing. Giulia Franchi per avermi offerto
l’occasione di effettuare questo lavoro di tesi.
Tutti gli amici dell’Universita, in particolare “Nando” con il quale ho passato gli ul-
timi due anni a studiare e non e per il quale ormai sono il “MisterGoogle”.
Il mio coinquilino nerd ed i residenti del CampusX, Alan, Emiliano, Giuseppe e Lam-
berto.... che mi hanno ospitato quando avevo il frigorifero vuoto.
I fantastici riders e skiers con i quali ho passato delle bellissime giornate di neve.
Per ultimi ma piu importanti di tutti, ringrazio la mia famiglia per il sostegno e
per tutto l’aiuto che mi hanno dato fino ad oggi, mio fratello, il CA...rissimo ormai
lontano (solo di residenza) e Francesca, punto di riferimento che riesce ogni giorno a
sopportarmi.
Ringraziamenti 1
Introduzione
“Trovo, se questo strumento a vite sara ben fatto, cioe fatto di tela lina,stopata i suoi pori con amido, e svoltata con prestezza, che detta vite sifa la femmina nell’aria e montera in alto”
Leonardo Da Vinci, Manoscritto B, foglio 83 v., 1483-1486
Figura 1: Foglio d’appunti e schizzo dell’invenzione.
La prima idea di una macchina che potesse librarsi in volo e stata del celebre
Leonardo Da Vinci. Il grande inventore infatti aveva compreso come un congegno
potesse reperire la portanza necessaria per mantenersi in volo grazie ad una spirale,
chiamata vite aerea, che doveva essere tenuta in moto circolare continuo. Con tale
progetto Leonardo arrivava ad ipotizzare e formulare in anticipo di secoli l’efficacia
dell’elica[1].
Circa 400 anni dopo, E. Forlanini, Ingegnere aeronautico italiano, riuscı, tramite
un piccolo motore a vapore, a sollevare il primo elicottero a 13 metri di altezza.
Successivamente, con l’evoluzione della tecnologia e con l’impegno di vari studiosi dalle
Introduzione 2
Introduzione
notevoli capacita, i numerosi perfezionamenti apportati hanno fatto dell’elicottero un
aeromobile di grande versatilita.
“L’elicottero e una macchina volante originale e straordinaria. . . . I vo-latili, ad esempio, hanno suggerito all’uomo l’aeroplano. L’elica da cuie nato l’elicottero puo ritenersi, come la ruota, una pura creazione del-l’ingegno umano. E una macchina straordinaria per le sue prestazioni divolo: e capace infatti non soltanto di atterrare e decollare verticalmente,e di traslare con moto rettilineo, ma di librarsi, di galleggiare sur place inalta quota come a pochi palmi dal suolo; e capace di ruotare in aria, suse stesso, di oscillare con moto pendolare, di volare di lato e all’indietro.Nemmeno gli eroi e i semi-dei della mitologia erano in grado di compieretante prodezze.”
Igino Mencarelli, I Padri dell’ala rotante, Aeronautica Militare UfficioStorico 1969
Lo sviluppo tecnologico ha portato alla nascita di velivoli dalle notevoli capacita
in grado di gestire autonomamente il volo. Tale categoria, nota come UAV1 (Un-
manned Aerial Vehicle, veicoli che volano senza pilota), porta con se i vantaggi della
drastica riduzione dei costi operativi rispetto a velivoli convenzionali con pilota, della
possibilita di operare in ambienti inadatti alla presenza umana e di essere impiegati
tempestivamente per il rilevamento dall’alto, ad esempio, di calamita naturali. Inizial-
mente utilizzati esclusivamente in ambito militare, in missioni dull (di sorveglianza e
ricognizione monotone e di lunga durata), in missioni dirty (pericolose per l’incolu-
mita dei piloti) e in missioni dangerous (rischiose per la vita dei piloti) rappresentano
oggi il futuro dell’aereonautica moderna.
Esempio recente di utilizzo degli UAV e quello degli aeromobili americani Global
Hawk che hanno sorvolato la Centrale nucleare di Fukushima Dai-ichi, in Giappone,
addentrandosi nella zona vietata (“no go zone”), col fine di monitorare i reattori a
seguito delle esplosioni causate dal terremoto del Tohoku del 2011, fotografando la
zona con sensori a infrarossi.
1Talvolta viene usato impropriamente il termine “droni”, italianizzando la parola inglese droneche significa “ronzio” per via del rumore prodotto.
Introduzione 3
Introduzione
Le enormi potenzialita, i successi avuti nelle missioni militari ed i progressi fatti nel
campo delle micro e nano-tecnologie stanno spingendo sia le industrie sia le universita
a sviluppare numerosi sistemi UAS (Unmanned Aerial System) sempre piu moderni,
affidabili e in grado di essere utilizzati in un ampio spettro di missioni civili e militari.
In questo contesto, il presente lavoro di tesi concentra l’attenzione sull’uso della
tecnologia e dei metodi matematici per ottenere la “modellazione del sistema”, di
fondamentale importanza per sviluppare un controllo stabile ed efficiente del velivolo
garantendone cosı affidabilita e buone prestazioni. A tal fine si ricorre all’utilizzo di
due sistemi per l’acquisizione di differenti tipi di dati: un sistema di stereovisione
rapida, capace di determinare le coordinate spaziali e la posa di un oggetto, ed un
software sviluppato tramite l’SDK (Software Development Kit) in grado di scambiare
informazioni con l’aerogiro considerato. In ultima analisi viene proposto il progetto
di un controllore atto a migliorare e rendere piu affidabile la dinamica riferita al moto
di Yaw.
Per una lettura piu agevole viene riportata la struttura della tesi.
Capitolo 1 viene presentato l’AR.Drone, descrivendo la struttura dell’aerogiro e le
possibilita di utilizzo. Sono descritte inoltre alcune convenzioni aeronautiche
per sistemi multirotore, applicate poi nel presente progetto.
Capitolo 2 vengono definiti i metodi utilizzati per l’acquisizione dei dati. In par-
ticolare viene descritto lo sviluppo del sistema di tracking 3D ad infrarosso e
la scrittura, tramite il Software Development Kit, di un software in grado di
acquisire i comandi imposti dal joystick ed i dati di volo dell’aerogiro.
Capitolo 3 viene inizialmente descritta l’importanza generale del processo di identi-
ficazione e concentrando successivamente l’attenzione sulle funzioni e sui metodi
Introduzione 4
Introduzione
usati per l’esecuzione del processo di identificazione.
Capitolo 4 viene proposto il primo progetto, in riferimento alla sola dinamica di
Yaw, di un possibile controllore per migliorare le prestazioni di volo ed analizzati,
tramite un software di simulazione 3D, i risultati ottenuti del sistema controllato.
Introduzione 5
CAPITOLO 1
AR.DRONE Parrot
AR.Drone rappresenta la punta di diamante di una azienda leader nel settoredella tecnologia senza fili, la Parrot, che lavora da quindici anni nella ricercae sviluppo di nuovi dispositivi.
1.1 Presentazione
L’AR.DRONE e un quadricottero, ossia un aerogiro costituito da piu rotori, in grado
di essere pilotato con dispositivi Apple quali Iphone, IPod Touch o IPad.
Figura 1.1: AR.Drone Parrot.
Un aeromobile monorotore, l’elicottero, e costituito da un unico apparato (insieme
di rotore e pale), che ne consentono il volo. La caratteristica principale di una pala
6
Cap. 1 AR.DRONE Parrot §1.1 Presentazione
del rotore (a in Figura 1.2(a)) e quella di poter ruotare attorno al proprio asse longi-
tudinale b, variando in tal modo l’angolo di calettamento o angolo di passo (angolo α
tra la corda del profilo della pala e il piano ortogonale all’asse del rotore) allo scopo
di aumentare o diminuire l’incidenza della pala stessa. Ad ogni variazione dell’angolo
di passo corrisponde una variazione di portanza1: se la portanza aumenta, l’elicottero
sale di quota; l’inverso se diminuisce.
La trazione necessaria all’elicottero per spostarsi orizzontalmente viene ottenuta
inclinando il rotore nella direzione desiderata. In tal modo la forza aerodinamica
sostentatrice, che nel volo stazionario e diretta verticalmente (−→P in Figura 1.2(b),
che equilibra il peso−→Q dell’elicottero), si inclina nella stessa direzione dando origine
a una componente disposta nel piano orizzontale (−→T ; Figura 1.2(c)) che permette la
traslazione dell’elicottero equilibrando la resistenza aerodinamica−→R [2].
(a)
(b)
(c)
Figura 1.2: Sistema rotore-pale elicottero.
Un aerogiro caratterizzato da piu sistemi rotore-pala viene definito multirotore.
1Spesso abbreviata con la lettera L, dalla lingua inglese lift, e la componente perpendicolare almoto della forza aerodinamica che agisce su un corpo immerso in un fluido (come ad esempio unaeromobile in volo nell’aria).
7
Cap. 1 AR.DRONE Parrot §1.1 Presentazione
Ognuno di questi e caratterizzato da un proprio verso e da una propria velocita di
rotazione e le diverse combinazioni di moto relativo consentono determinati sposta-
menti. In particolare, rotori opposti ruotano nello stesso verso (una coppia in senso
orario e l’altra in senso antiorario); la definizione degli assi spaziali X, Y e Z e indicata
in Figura 1.1[3].
Figura 1.3: Modi di rotazione ed assi cartesiani di riferimento.
Le possibili relazioni fra le velocita di ogni rotore definiscono quattro movimenti
fondamentali, corrispondenti ai quattro “angoli di comando” (Figura 1.4) cosı che,
ad esempio, la rotazione alla stessa velocita di tutti i rotori comporti un movimento
ascensionale uniforme.
(a) Throttle. (b) Roll.
(c) Pitch. (d) Yaw.
Figura 1.4: Convenzione movimenti modello a 4 rotori.
La scelta della Parrot di utilizzare quattro rotori, anziche tre o un numero superio-
re, rappresenta un giusto compromesso tra peso e potenza ed e una buona soluzione
8
Cap. 1 AR.DRONE Parrot §1.2 Descrizione meccanica ed elettronica
per garantire facilita nel controllo e una forte stabilita.
1.2 Descrizione meccanica ed elettronica
Il Drone presenta una struttura a croce in fibra di carbonio e plastica PA66 ad alta
resistenza, 4 motori brushless ed un corpo centrale che racchiude la telecamera an-
teriore, la scheda di navigazione e la scheda madre e che costituisce il “cuore” ed il
“cervello” dell’aerogiro.
I motori hanno una potenza di 15 W ciascuno lavorano a 28.000 rpm in volo
stazionario, corrispondenti a 3.300 rpm dell’elica. Ognuno di questi e fissato al proprio
regolatore elettronico e la velocita, che puo variare da 10.350 rpm a 41.400 rpm, viene
controllata da un microcontroller a bassa potenza a 8 bit e da un ADC (Analog to
Digital Converter) a 10 bit.
Figura 1.5: Componenti del Drone.
Il corpo del drone e realizzato con un particolare tipo di polimero, denominato
PPE (Polifeniletere), molto leggero ed altamente resistente; al suo interno e incluso il
9
Cap. 1 AR.DRONE Parrot §1.2 Descrizione meccanica ed elettronica
vano batteria fissato alla struttura per mezzo di una schiuma in grado di assorbire le
vibrazioni dei motori.
L’alimentazione e fornita da una batteria LiPo ricaricabile 3 celle, nota come ac-
cumulatore litio-polimero o piu raramente litio-ione-polimero, che fornendo 11,1 V
e 1000 mAh, garantisce circa 12 minuti di volo. La batteria e posta verso il re-
tro dell’apparecchio in modo da mantenere il baricentro dell’AR.Drone nel centro
geometrico.
La telecamera anteriore grandangolare con una risoluzione di 640 x 480 pixel
(VGA, Video Graphics Array) e 15 fps, viene usata per lo streaming in diretta delle
immagini sul dispositivo di comando.
La scheda di navigazione e costituita da un sensore ad ultrasuoni con frequenza di
emissione di 40 kHz ed un raggio di azione di circa 6 metri, un accelerometro MEMS2
a 3 assi, un giroscopio MEMS a 2 assi ed un giroscopio piezoelettrico di precisione ad
1 asse.
La scheda madre presenta il processore basato su chip P6 che include una CPU
ARM926EJ Risc da 468 MHz, il chipset Wi-Fi Atheros per la creazione e la comuni-
cazione tramite rete ad-hoc ed una telecamera verticale 60 fps con risoluzione video
di 176 x 144 pixel che, combinata agli accelerometri, fornisce la velocita orizzontale
del dispositivo.
Nel corso di tale lavoro sono stati pero individuati alcuni “punti deboli”, sia dal
punto di vista strutturale, come ad esempio la posizione dei motori troppo esposti ad
urti, sia elettronico: la ridotta capacita della batteria ed il poco range di comando
limitano le potenzialita del dispositivo. Ulteriore problematica software, che ha co-
2Micro Electro-Mechanical Systems. Viene usato per indicare quello che la tecnologia delmicroscopico ha prodotto.
10
Cap. 1 AR.DRONE Parrot §1.3 Applicazioni attuali
stretto la ripetuta sostituzione del drone, e stata la difficolta di comunicazione con il
dispositivo causata dai limiti della scheda madre.
1.3 Applicazioni attuali
L’AR.Drone rappresenta un “ibrido” tra un elicottero da modellismo a 4 eliche (qua-
dricottero) ed un semplice giocattolo. L’interfaccia grafica del software di control-
lo, riportata in Figura 1.6, mostra all’utente le immagini riprese dalla videocamera,
due joystick per il pilotaggio (o in alternativa un joystick ed un pulsante per atti-
vare l’uso degli accelerometri del dispositivo di comando), l’informazione sulla carica
rimanente della batteria, un pulsante per l’atterraggio/decollo, un pulsante per l’in-
terruzione dei motori in caso di emergenza e due icone: una per l’accesso nel menu di
personalizzazione e una per l’aggiornamento/cambio di visuale della videocamera.
Figura 1.6: AR.Freeflight.
Grazie all’utilizzo della Realta Aumentata, cioe la sovrapposizione di livelli in-
formativi che permette di aggiungere dati multimediali alla realta, e possibile, ol-
11
Cap. 1 AR.DRONE Parrot §1.3 Applicazioni attuali
tre al semplice pilotaggio, eseguire dei “combattimenti” tra utenti (Figura 1.7(a)) o
gareggiare attraverso un percorso (Figura 1.7(b)).
(a) AR.Pursuit (b) AR.Race
Figura 1.7: Applicazioni disponibili.
Gli utilizzi attuali quindi, vista la natura ed il prezzo del dispositivo, consistono
nel semplice svago ed intrattenimento con la possibilita pero, grazie alla distribuzione
gratuita da parte della Parrot del pacchetto di sviluppo (SDK), di sviluppare nuove
applicazioni da parte dell’utente.
In questo contesto, al fine di creare un modello di base che possa rappresentare
il punto di partenza per lo sviluppo di sistemi UAV piu complessi e utili a scopi
civili e militari, il presente lavoro propone metodi di acquisizione dati, i cui risultati
sono poi utilizzati in uno studio di modellizzazione attraverso il software MATLAB.
Il progetto e stato portato avanti lavorando sul quadricottero fornito dalla “Endes
Innovation SRL”, Azienda che ha lo scopo di promuovere e diffondere tecnologie ed
applicazioni innovative attraverso i suoi servizi integrati su sistemi complessi.
12
CAPITOLO 2
Acquisizione dati
In un progetto sperimentale, l’importanza dell’acquisizione dati e la loro ve-ridicita e fondamentale per lo svolgimento del lavoro. Mediante la visionestereoscopica, che permette di fondere insieme l’informazione proveniente dadue “telecamere” per ricostruire le coordinate spaziali del target e attraversol’utilizzo del Software Development Kit, per lo sviluppo di applicazioni in gradodi interfacciare l’utente con un dispositivo, e possibile ottenere un set di datiutilizzabili nella successiva modellizzazione del sistema.
Il sistema analizzato, rappresentato in Figura 2.1, e studiato come un modello con in
ingresso il dispositivo di comando, la black-box rappresentata dal drone e in uscita il
movimento nello spazio.
Figura 2.1: Schema Iphone - AR.Drone.
13
Cap. 2 Acquisizione dati §2.1 Stereovisione
Per l’identificazione del sistema e stata modificata la struttura in modo da avere
a disposizione da un lato, i dati relativi ai comandi inviati al dispositivo e dall’altro i
valori di uscita. Riguardo quest’ultimi, si identificano due rami (Figura 2.2) principali
corrispondenti ai due metodi di acquisizione delle caratteristiche del velivolo durante
il volo: ramo 1 - calcolo delle coordinate spaziali di 4 punti posti solidalmente al drone
tramite stereovisione; ramo 2 - acquisizione di alcuni dati di volo tramite l’uso del Software Develop-
ment Kit.
Figura 2.2: Schema collegamento PC-AR.Drone.
2.1 Stereovisione
La stereopsi (da stereo che significa solido e opsis che significa sguardo) e la capacita
naturale di molti animali di percepire la distanza e la struttura tridimensionale di un
oggetto a partire dalla disparita di posizione che quest’ultimo ha nelle due immagini
acquisite dai due occhi. E proprio grazie a questa capacita che l’occhio umano e in
14
Cap. 2 Acquisizione dati §2.1 Stereovisione
grado di avere una visione tridimensionale del mondo esterno. Nonostante il principio
di funzionamento della stereopsi sia conosciuto da tempo, solo negli ultimi quindici
anni si e potuto iniziare a sfruttare la visione stereoscopica anche nella tecnologia a
causa della grandissima quantita di calcoli real-time necessari.
La caratterizzazione di un sistema di visione stereoscopica, come per il caso della
vista umana, viene effettuata in funzione di differenti elementi. In riferimento alla
Figura 2.3, osservando la similitudine esistente dei triangoliOsFOd, e FsFFd e tenendo
Figura 2.3: Parametri caratteristici di un sistema di visione stereoscopica.
conto che la lunghezza dei segmenti deve essere sempre positiva, si ottiene:
xs − xd
zs − zobs=
b/2− (−b/2)
zobs(2.1.1)
15
Cap. 2 Acquisizione dati §2.1 Stereovisione
che, risolta evidenziando la distanza zobs tra punto ed osservatore, da la seguente
espressione:
zobs = zsb
b+ xs + xd
(2.1.2)
avendo indicato con: zobs la distanza tra osservatore e punto di fissazione percepito F, coincidente con
la coordinata Z del punto stesso; zs la distanza tra osservatore e le immagini posizionate sul piano S; xs e xd le ascisse dei punti proiettati Fs,d; b la distanza tra i centri di rotazione degli assi ottici che non differisce sostan-
zialmente dalla distanza interpupillare.
La distanza percepita zobs del punto apparente dall’osservatore e proporzionale alla
distanza zs tra osservatore e immagini ed e quindi circa inversamente proporzionale
alla distanza tra i punti proiettati xs e xd e dipende in modo piu complesso dalla
distanza interpupillare b.
Nel presente lavoro, come in generale per tutti i processi che utilizzano la stereo-
visione, risulta possibile ricostruire le coordinate tridimensionali del target rispetto a
un sistema di riferimento definito, attraverso l’acquisizione delle informazioni di due
“telecamere” e la loro fusione. Tale operazione non e stata effettuata tramite l’uso di
videocamere e image processing, ma utilizzando un sistema piu veloce e abbastanza
preciso che ricorre all’uso di LED ad infrarossi individuabili con dispositivi di uso
comune come il Wiimote.
16
Cap. 2 Acquisizione dati §2.1 Stereovisione
2.1.1 Wiimote
Il Wii Remote Controller, abbreviato in Wiimote, e il dispositivo di input della con-
sole Nintendo Wii usato come interfaccia principale per l’interazione tra l’uomo e il
sistema, grazie alla capacita di rilevare punti e movimenti attraverso sensori ottici e
accelerometrici.
I Wiimotes comunicano con la console Wii via Bluetooth attraverso l’interfaccia
HID (Human Interface Device); i dati inviati non sono criptati ed e quindi possi-
bile sfruttare appieno le funzionalita su ogni computer che disponga dell’interfaccia
bluetooth, tramite la semplice installazione di alcune librerie (LibCwiid in Linux).
(a) (b)
Figura 2.4: Wii Controller e particolare della camera IR.
Nel controller il sensore camera IR, prodotto dalla PixArt Imaging (Figura 2.4(b)),
contiene un chip con un motore integrato per il multiobject tracking (MOT), che
offre alta risoluzione e alta velocita di monitoraggio di sorgenti luminose IR (fino ad
massimo di 4 contemporaneamente).
Le specifiche del sensore, non ufficialmente pubblicate, sembrano fornire dati di
posizionamento con una risoluzione di 128 x 96 pixel che, sfruttando l’analisi subpixel
8x, raggiungono una risoluzione di 1024 x 768 pixel virtuali. Un refresh rate di 100
17
Cap. 2 Acquisizione dati §2.1 Stereovisione
Hz offre un’altissima velocita di risposta mentre il campo di vista orizzontale di circa
41 e quello verticale di circa 31 forniscono un discreto spazio operativo.
Queste caratteristiche superano le normali webcam, che generalmente fornisco-
no una risoluzione di 640 x 480 pixel con un refresh rate di 30 Hz, ma non le piu
specializzate fotocamera IR, che pero hanno un prezzo significativamente piu alto[4].
Le prime prove effettuate per stabilire l’accuratezza della camera IR del Wiimote,
hanno evidenziato come la precisione di tale sensore abbia una forte correlazione con
la distanza e di come la luce solare, diretta o riflessa, influenzi fortemente la rilevazione
di un LED IR.
2.1.2 Struttura del sistema
La necessita di realizzare un sistema di acquisizione stereoscopico dal costo contenuto
e dalle buone prestazioni, sia in accuratezza che in velocita di risposta, ha portato
allo sviluppo di un metodo composto da due Controller della Wii e da un pattern con
4 LED ad infrarosso (IR).
La scelta nel posizionamento delle due camere (Wiimotes) e stata condizionata dal
problema della limitata diffusione luminosa dei LED utilizzati. Questi infatti, essendo
quasi direzionali (l’angolo di emissione della luce molto basso), non permettono la loro
rilevazione nel caso di inclinazione eccessiva rispetto all’asse passante per i centri delle
camere (Figura 2.5).
Effettuando numerose prove per determinare la piu corretta configurazione del si-
stema, e stato deciso di posizionare il primo controller perpendicolarmente al suolo e
il secondo controller inclinato di qualche grado in direzione del primo (Figura 2.6(d)).
Utilizzando una struttura a braccio, disponibile nel Laboratorio di Robotica Pesante
dell’Universita di Tor Vergata, e cercando di ottenere un maggiore spazio di lavoro pos-
18
Cap. 2 Acquisizione dati §2.1 Stereovisione
(a) (b)
Figura 2.5: Inclinazione del LED rilevabile (a) e non (b) da parte del controller.
(a) (b)
(c) (d)
Figura 2.6: Possibili posizionamenti delle camera e area di lavoro disponibile.
sibile senza allontanarsi troppo dalle condizioni ottimali di operativita dei controller,
questi sono stati posizionati ad un’altezza di circa 3 metri rispetto al suolo.
19
Cap. 2 Acquisizione dati §2.1 Stereovisione
Il pattern utilizzato inizialmente, costituito dal parallelo di 4 LED IR alimentati
da una batteria da 1,2 V (tensione reale di 1,3 V), presentava un grande problema
nella rilevazione dei LED a causa, come gia detto, del limitato angolo di diffusione
della luce.
Per ovviare a tale problematica e stata modificata la struttura del pattern ag-
giungendo una batteria ed un resistore (Figura 2.7(a)) cosi da fornire, mantenendo la
quantita di corrente su ogni LED pari a 20 mA, al parallelo dei LED una tensione di
alimentazione maggiore e pari a:
tensioneLED = tensionebatterie − resistenza · corrente4LED =
= 2, 6V − R · 0, 080A = 2, 6− 10Ω · 0, 080A = 1, 8V(2.1.3)
Ulteriore modifica apportata ad ogni LED e stato aggiungere una componente che
permettesse di aumentare il cono di diffusione della luce. Questa semplice struttura
(Figura 2.7(b)) ha portato un guadagno di qualche grado nella massima inclinazione
possibile dei LED rispetto alle camere, permettendo quindi di aumentare la robustezza
del sistema di acquisizione.
(a) Schema elettrico. (b) Led.
Figura 2.7: Particolari del pattern.
La struttura cosi ottenuta, della quale e mostrata in Figura 2.8 il modello 3D,
presenta i LED posti agli estremi di una croce con una distanza fra diodi adiacenti
pari a 18 cm.
20
Cap. 2 Acquisizione dati §2.1 Stereovisione
Figura 2.8: Soluzione finale del pattern.
2.1.3 Acquisizione Calibrazione e Triangolazione
Per concludere lo sviluppo di un sistema 3D tracking ad infrarosso e stata utilizzata la
libreria Wiiuse e il pacchetto WmGui, disponibile per Ubuntu, che permette il colle-
gamento e la lettura dei dati dei controller Wii restituendo direttamente le coordinate
2D dei punti visibili con ciascuna camera. Questi valori sono stati salvati, grazie ad
una procedura scritta in linguaggio C, per poi essere utilizzati nella triangolazione.
void* s t ampa f i l e ( void* msg)
FILE * coord inate = fopen ( "../ toolbox /coordinate .txt " , "a+" ) ;t imeval s tar t , i n te rmed iate , end ;gett imeofday (&star t , &end , &intermed iate ) ;whi l e (1)
coord * coord 1 = ( ( par t *) msg )−>point1 ;coord * coord 2 = ( ( par t *) msg )−>point2 ;gett imeofday (&intermed iate , NULL) ;us l eep (20000 − ( i ntermed iate . t v u s e c − end . tv u s e c ) ;gett imeofday (&star t , NULL) ;f p r i n t f ( coordinate , "%ld .%03ld -[%d %d %d %d %d %d %d %d %d %d %d %d %d %d
%d %d]\n" , ( s t a r t . t v s e c ) , ( s t a r t . t v u s e c ) /1000 , (* coord 1 ) . x , (*coord 1 ) . y , (* coord 2 ) . x , (* coord 2 ) . y , (* ( coord 1 + 1) ) . x , (* (coord 1 + 1) ) . y , (* ( coord 2 + 1) ) . x , (* ( coord 2 + 1) ) . y , (* ( coord 1+ 2) ) . x , (* ( coord 1 + 2) ) . y , (* ( coord 2 + 2) ) . x , (* ( coord 2 + 2) ) .
y , (* ( coord 1 + 3) ) . x , (* ( coord 1 + 3) ) . y , (* ( coord 2 + 3) ) . x , (* (coord 2 + 3) ) . y ) ;
gett imeofday (&end , NULL) ;
Codice 2.1: Procedura di salvataggio coordinate.
21
Cap. 2 Acquisizione dati §2.1 Stereovisione
Prima di procedere con la registrazione delle coordinate si prepara l’allineamento:
si assegnano delle etichette (colori) ad ogni LED IR del pattern, cosı da garantire un
riscontro visivo chiaro sull’interfaccia grafica come visibile in Figura 2.9.
Come visibile nel Codice 2.1 l’output di questo passaggio e un file, coordinate.txt,
che, con un tempo di campionamento di 20 ms, riporta le coordinate dei LED per
entrambi i controller.
1310392915.018 −[165 422 190 389 200 309 229 277 314 342 343 317 278 455 306 426 ]1310392915.038 −[166 421 190 389 200 309 229 277 315 341 343 317 279 455 305 426 ]1310392915.058 −[168 420 189 388 200 309 229 277 315 341 343 317 280 455 304 425 ]1310392915.078 −[168 420 188 388 200 308 228 277 315 341 343 317 280 454 303 425 ]1310392915.098 −[168 420 188 387 200 307 227 276 315 341 342 315 281 453 303 424 ]1310392915.118 −[169 420 187 387 200 306 227 276 316 340 339 314 280 452 302 424 ]1310392915.138 −[169 420 186 387 200 306 227 276 316 340 339 315 280 452 301 424 ]1310392915.158 −[169 419 186 387 201 306 226 275 315 340 338 315 280 452 300 423 ]1310392915.178 −[169 418 184 385 202 306 224 274 315 340 337 315 281 451 299 423 ]1310392915.198 −[169 417 183 385 202 306 223 273 315 340 335 314 280 450 298 422 ]1310392915.218 −[169 417 182 385 202 306 222 274 315 340 334 314 280 450 296 421 ]1310392915.238 −[169 417 181 385 202 306 222 274 315 340 333 315 280 450 296 421 ]
Codice 2.2: Esempio file di uscita del sistema di acquisizione.
Nel Codice 2.2 e possibile osservare il metodo di salvataggio e la disposizione delle
variabili: il primo numero rappresenta il tempo assoluto1 (utilizzato per comodita di
elaborazione); le 16 variabili successive (8 per ogni Wiimote) rappresentano invece le coordinate
di ogni LED prima viste dal controller di sinistra (x1left y1left) e poi da quello
di destra (x1right y1right).
Successivamente, il processo di calibrazione, utile per la determinazione di parame-
tri caratterizzanti le camere e necessario per la triangolazione, e stato effettuato utiliz-
zando il Camera Calibration Toolbox di MATLAB. L’utilizzo del software con sistemi
1La funzione gettimeofday() in C restituisce il tempo in secondi dal 1 Gennaio 1970.
22
Cap. 2 Acquisizione dati §2.1 Stereovisione
stereoscopici costituiti da webcam risulta molto preciso ma alquanto lento, infatti, la
procedura per la singola calibrazione di una webcam e la successiva stereo-calibrazione
richiedono la ripetizione di molti step, da svolgere manualmente.
Il processo di calibrazione per il sistema sviluppato invece, e descrivibile tramite i
seguenti passi:
1. si collegano i due Wiimote (sinistro e destro) definendo i file di uscita (per
comodita nominati remoteleft.m e remoteright.m);
2. si effettua per ogni controller l’operazione di align che identifica i punti omologhi
tra le due camere;
(a) Corretta. (b) Errata.
Figura 2.9: Interfaccia grafica e visualizzazione punti.
3. muovendo il pattern da una posizione ad un’altra non complanare ed effettuando
la registrazione si salvano le coordinate dei 4 punti in entrambi i file;
4. completate le registrazioni (20-30 misure) si avviano in MATLAB i due file .m
ottenuti (di cui si riporta un esempio nel Codice 2.3) cosı da permettere il calcolo
automatico dei dati caratteristici delle due camere;
5. richiamando la funzione stereo gui() e caricando i due file .mat ottenuti dallo
step precedente, si ottiene la matrice caratterizzante l’intero sistema.
23
Cap. 2 Acquisizione dati §2.1 Stereovisione
c l e a r ;nx = 1024;ny = 768 ;
Np = 4 ;e s t a l pha = 0 ;
X 1 = [ 0 180 180 0 ; 0 0 180 180;0 0 0 0 ] ;x 1 = [204 346 276 134;288 356 503 4 3 4 ] ;X 2 = [ 0 180 180 0 ; 0 0 180 180;0 0 0 0 ] ;x 2 = [220 353 281 151;279 360 492 4 1 3 ] ;X 3 = [ 0 180 180 0 ; 0 0 180 180;0 0 0 0 ] ;. . .X 44 = [ 0 180 180 0 ; 0 0 180 180;0 0 0 0 ] ;x 44 = [246 398 384 224;230 207 382 4 0 0 ] ;
n ima = 44
% Avvia l a procedura d i c a l i b r a z i o n e p r i n c i p a l ego ca l i b op t im ;
% Mostra i parametr i e s t r i n s e c h ie x t c a l i b ;
% Salva i l r i s u l t a t o in un f i l e nominato Ca l i b Resu l t s . mat :s a v i n g c a l i b ;
Codice 2.3: Esempio file remoteleft.m.
Il risultato della corretta stereo-calibrazione effettuata e mostrato in Figura 2.10 dove
e possibile controllare la distanza tra i due Wiimote e la posizione spaziale degli stessi.
Figura 2.10: Risultato della stereo calibrazione.
24
Cap. 2 Acquisizione dati §2.2 Software Development Kit
Il sistema quindi, vista la capacita di acquisire correttamente le coordinate 2D
e grazie alla disponibilita della matrice caratterizzante il sistema di stereovisione,
permette di ottenere le coordinate 3D dei punti semplicemente richiamando la funzione
stereo triangulation.m, inclusa nel toolbox di MATLAB, definita come:
f unc t i on [XL,XR] = s t e r e o t r i a n g u l a t i o n (xL , xR, om, T,
f c l e f t , c c l e f t , k c l e f t , a l p h a c l e f t ,f c r i g h t , c c r i gh t , k c r i gh t , a l p h a c r i g h t )
Codice 2.4: Definizione della funzione stereo triangulation.
Come visibile nel Codice 2.4 i risultati della funzione di triangolazione sono le coor-
dinate spaziali assolute riferite alle due camere. La scelta di utilizzare il riferimento
rispetto al controller di sinistra, e dovuto alla piu comoda posizione del controller
stesso essendo questo perpendicolare al pavimento.
2.2 Software Development Kit
In tale lavoro e stato necessario l’uso del Software Development Kit, o SDK, rilasciato
ufficialmente dalla casa produttrice dell’AR.Drone per riuscire a determinare varie
caratteristiche sia di ingresso che di uscita, utili ai fini dell’identificazione dell’oggetto.
Il pacchetto scaricabile dalla rete contiene al suo interno sia librerie per l’acquisizione
e la traduzione dei comandi, sia alcuni esempi, per varie piattaforme, di software di
comando.
La scelta di Linux come ambiente di sviluppo, ha permesso la programmazione di
un software che permettesse di soddisfare due requisiti fondamentali: pilotare il “Drone” tramite un joystick collegato al pc; analizzare e salvare dati di volo restituiti direttamente dall’AR.Drone.
25
Cap. 2 Acquisizione dati §2.2 Software Development Kit
2.2.1 Comando tramite Joystick
Successivamente al collegamento dell’AR.Drone con il software, e stata concentrata
l’attenzione sulle caratteristiche di comando tramite joystick (USB Thrustmaster,
Cloche a 4 assi e 12 pulsanti).
Figura 2.11: Schema collegamento PC - AR.Drone.
Il sistema operativo interpreta i movimenti assiali del joystick come un numero
intero compreso in un dato intervallo che viene, per comodita, rappportato come
riportato nell’Equazione 2.2.1.
−32767 ≤ x ≤ 32767 ⇐⇒ −1 ≤ x ≤ 1 (2.2.1)
E stata poi eseguita una mappatura (Tabella 2.1) che sfruttando 4 assi e 3 pulsanti
permette un pieno controllo del dispositivo.
Tabella 2.1: Mappatura Joystick.
ASSE/PULSANTE MOVIMENTO
asse 1 rollasse 2 pitchasse 3 yawasse 4 throttle
pulsante 1 decollo/atterraggiopulsante 2 emergenza blocco motori
26
Cap. 2 Acquisizione dati §2.2 Software Development Kit
Alcuni movimenti dell’AR.Drone (per esempio il decollo o l’atterraggio) non cor-
rispondono ad una variazione degli “angoli” di comando (ad esempio variazione del
Throttle) ma a moti prestabiliti che portano la variazione di una struttura dati, pre-
sente nel SDK, nominata “Control State” (verra trattata piu specificatamente nel
Capitolo 2.2.2).
2.2.2 Strutture dati e salvataggio
Delle varie strutture dati disponibili, presenti nell’SDK, si e deciso di utilizzare quelle
piu caratteristiche, che fossero cioe piu descrittive dello stato del sistema. La scelta
quindi, sia per gli ingressi (comandi del joystick) sia per le uscite (strutture dati
presenti nell’SDK), ha portato alla scrittura di software multithread che, rispettando
il tempo di campionamento scelto pari a 20 ms, salvasse in un file di uscita .txt i
comandi imposti dal movimento del joystick ed i dati utili.
1310134049.546 CS=196608 29 83 cm Gy=[+3.97 +3.82 −1.81] Ac=[−0.01 +0.00 −0.97] PWM=[159 188
152 214] Rol l =0.0 Pi tch=0.0 Yaw=0.0 Throt t l e=0.01310134049.566 CS=196608 29 83 cm Gy=[+9.01 +4.22 −0.35] Ac=[−0.00 +0.02 −0.96] PWM=[157 187
155 209] Rol l =−0.206 Pitch=0.0 Yaw=0.0 Throt t l e=0.01310134049.586 CS=196608 29 83 cm Gy=[+7.42 +9.46 +0.92] Ac=[−0.00 +0.03 −0.98] PWM=[144 200
176 194] Rol l =−0.206 Pitch=0.0 Yaw=0.0 Throt t l e=0.01310134049.606 CS=196608 29 83 cm Gy=[+7.42 +9.46 +0.92] Ac=[−0.00 +0.03 −0.95] PWM=[144 200
176 194] Rol l =−0.227 Pitch=0.0 Yaw=0.0 Throt t l e=0.01310134049.626 CS=196608 29 83 cm Gy=[−33.92 +5.22 +0.78] Ac=[−0.01 +0.08 −0.97] PWM=[155 190
165 204] Rol l =−0.227 Pitch=0.0 Yaw=0.0 Throt t l e=0.01310134049.646 CS=196608 29 83 cm Gy=[−33.92 +5.22 +0.78] Ac=[−0.01 +0.08 −0.98] PWM=[155 190
165 204] Rol l =0.0 Pi tch=0.0 Yaw=0.0 Throt t l e=0.01310134049.666 CS=196608 29 84 cm Gy=[−0.93 −5.59 +0.68] Ac=[−0.01 −0.02 −0.96] PWM=[168 176
148 209] Rol l =0.0 Pi tch=0.0 Yaw=0.0 Throt t l e=0.01310134049.686 CS=196608 29 83 cm Gy=[−0.66 +1.27 −1.96] Ac=[−0.01 −0.01 −0.95] PWM=[163 180
145 217] Rol l =0.0 Pi tch=0.0 Yaw=0.0 Throt t l e=0.0
Codice 2.5: Esempio file di uscita dei dati di volo.txt
Nel file in uscita dal processo, di cui e mostrato in Codice 2.5 un esempio, e
possibile vedere la struttura dei dati utili ai fini dell’identificazione del modello: il tempo indicato per comodita in maniera assoluta (come gia indicato nel
Capitolo 2.1.3);
27
Cap. 2 Acquisizione dati §2.3 Prime analisi un numero “Control State” rappresentante lo stato del Drone (Hovering, Lan-
ding, Emergency...); la carica rimanente della batteria; l’altezza misurata dal sensore ad ultrasuoni2; i valori del giroscopio biassiale e del giroscopio a 1 asse; i valori dell’accelerometro triassiale; i segnali PWM dei quattro motori; il valore dei comandi imposti (Roll, Pitch, Yaw e Throttle).
2.3 Prime analisi
Terminata la procedura di preparazione all’acquisizione dei dati, sono state condotte
alcune prove per la verifica di correttezza e di determinazione delle prestazioni del-
l’intero sistema (stereovisione + sensoristica AR.Drone). Dalle prime stime si sono
osservate alcune importanti caratteristiche: la scelta del tempo di campionamento corretta (abbassando di troppo il tempo
di campionamento si otterrebbe una piu ampia quantita di dati, ma ripetuti); una buona risposta del sistema a piccole variazioni; i dati acquisiti, sottoposti ad errori in quanto sistemi reali, necessitano di una
operazione di pre-filtraggio prima di essere utilizzati.
2Il range di funzionamento del sensore e compreso tra 21 cm e 6 m.
28
Cap. 2 Acquisizione dati §2.3 Prime analisi
Riguardo il sistema di stereovisione ad infrarosso si e riscontrato qualche problema
nel calcolo delle coordinate Z tramite la triangolazione. Infatti, impostando un inter-
vallo possibile di lavoro, compreso tra 0 cm (pavimento) e 180 cm (altezza massima
dove i LED sono osservabili da entrambi i controller) si e notato come le altezze Z
ricavate presentino una precisione variabile e dipendente dall’altezza. In particolare si
ottiene maggiore precisione lavorando nel range in cui sono state effettuate il maggior
numero di prove in fase di calibrazione e per questo quindi lo svolgimento dei test
viene eseguito cercando di limitare l’altezza nell’intervallo migliore.
29
CAPITOLO 3
Identificazione
Nell’ambito dei controlli automatici, il processo di identificazione consiste nelricavare i parametri che definiscono un modello matematico del sistema dina-mico in esame. I dati sono solitamente ottenuti tramite un campionamento delsegnale (o segnali) di ingresso ed uscita dell’impianto e l’elaborazione avvienetramite determinati algoritmi numerici.
3.1 Sistemi e modelli
Un sistema e un oggetto in cui le variabili di diverso tipo interagiscono fra loro e
producono dei segnali osservabili, da cui parte il processo di identificazione. Il sistema
inoltre e influenzato da alcuni stimoli esterni: quelli che possono essere manipolati, ovvero gli ingressi; quelli fuori controllo dello sperimentatore (comunemente etichettato come “ru-
more”), che possono essere misurati o individuati solo valutando l’influenza che
hanno sul sistema.
30
Cap. 3 Identificazione §3.1 Sistemi e modelli
Conoscere la funzione di trasferimento di un sistema da controllare risulta importante
ed alquanto complesso. I metodi di identificazione, ossia le procedure che determinano
i parametri caratterizzanti il comportamento del sistema stesso, risultano di grande
interesse per la risoluzione di tale obiettivo.
Un problema di identificazione inizia dopo aver progettato un set significativo di
prove sperimentali ed aver raccolto una serie di dati dal sistema in esame. L’importan-
za del processo risulta elevata nei piu diversi ambiti, infatti, conoscendo le dinamiche
di un fenomeno indipendentemente dalle sue caratteristiche fisiche, si ha la possibilita
di: comprendere meglio la qualita del processo, effettuando il confronto delle pre-
dizioni con la realta e quindi valutando in quali aspetti il modello sia sbagliato
o incompleto e come sia possibile migliorarlo; progettare esperimenti validi, cioe realmente influenti; predire in differenti situazioni le dinamiche del sistema sottoposto a varie solle-
citazioni; ottimizzare un processo effettuando un numero ridotto di esperimenti riducendo
quindi il tempo necessario ed il costo.
Al fine di scegliere il modello piu adatto, cioe che meglio approssimi l’andamen-
to del fenomeno osservato, si puo definire un “algoritmo” che regola il processo di
identificazione nelle sue diverse fasi, schematizzabile come in Figura 3.1.
Per lo svolgimento di tale lavoro e risultato di fondamentale importanza la di-
sponibilita e la capacita di utilizzo del software MATLAB, ambiente per il calcolo
numerico e l’analisi statistica. Per il processo di identificazione infatti, il software
31
Cap. 3 Identificazione §3.1 Sistemi e modelli
Figura 3.1: Algoritmo generico di identificazione[8].
prodotto dalla MathWorks mette a disposizione un toolbox, il System Identification
Toolbox, in grado di stimare modelli matematici di sistemi dinamici partendo da mi-
sure di ingresso e di uscita, validando tramite un sottoinsieme di dati non utilizzato
nel processo di identificazione, il modello ottenuto.
3.1.1 Principali funzioni
Durante i primi tentativi di identificazione, usando il toolbox grafico offerto da MA-
TLAB, si e notato come i modelli ricavati raggiungessero fitting elevati. La successiva
verifica pero non ha confermato la bonta di tali modelli.
Per questo motivo si e deciso di ricorrere alle stesse funzioni utilizzate dal System
Identification Toolbox ma richiamandole all’interno di un file MATLAB, potendo cosı
specificare in maniera adeguata i diversi parametri richiesti.
32
Cap. 3 Identificazione §3.2 Osservazioni ed Elaborazione dati
Le due principali funzioni utilizzate sono: pem (Prediction Error Method) metodo di stima parametrica di un modello che
suppone nota la struttura e cerca di identificare i parametri partendo da dati
sperimentali (misurati) sulle uscite ottenute a partire dagli ingressi scelti per
eccitare il sistema. Il PEM stima i parametri cercati minimizzando gli errori
di predizione, ovvero minimizzando un funzionale di costo dipendente da questi
errori che a loro volta sono funzione dei parametri incogniti e delle misure; n4sid metodo di stima dei modelli nella forma di spazio di stato restituendo un
oggetto IDSS, ossia nella struttura di spazio di stato comprendente l’ingresso di
errore.
3.2 Osservazioni ed Elaborazione dati
Per il raggiungimento di un modello affidabile e accurato, e stata necessaria una
prima elaborazione dei dati, cercando di filtrare rumori e disturbi presenti nei segnali
acquisiti. In Figura 3.2 e riportato un esempio in cui, sul segnale acquisito (l’altezza
del baricentro misurata tramite la stereovisione) e riportato in rosso, viene applicato
un filtro
FILTRO =1
as+ 1(3.2.1)
ed effettuata una interpolazione per renderlo pulito e valido (segnale in blu). Il proble-
ma della momentanea assenza di uno (o piu) LED da una delle due camere comporta
un calcolo errato della triangolazione e quindi alla determinazione di coordinate spa-
ziali non corrette. La presenza di picchi rispetto all’andamento “normale” del segnale
misurato evidenzia proprio l’occorrenza di tale fenomeno che viene risolto tramite le
operazioni di filtraggio e interpolazione.
33
Cap. 3 Identificazione §3.2 Osservazioni ed Elaborazione dati
0 5 10 15 20 25 300
50
100
150
200
250
300
TIME
Z−
FIN
AL
Z−FINAL − TIME
Segnale Filtrato
Segnale Acquisito
Figura 3.2: Operazione di filtraggio e pulizia dell’altezza del baricentro IR.
Ogni test svolto, che comprende due file principali (ottenuti tramite il processo di
stereovisione e il software sviluppato tramite l’SDK, Capitolo 2), e stato analizzato per
osservare la bonta dei dati e la loro distribuzione. Da tale analisi infatti, come si vede
dal plot dei valori acquisiti in due differenti prove (Figura 3.3 e Figura 3.4), e possibile
determinare i comandi imposti ed il comportamento dell’AR.Drone. Successivamente
si decide se tale prova puo risultare utile ai fini della determinazione di una dinamica
del sistema.
34
Cap. 3 Identificazione §3.2 Osservazioni ed Elaborazione dati
Figura
3.3:
Esempio
digrafi
ciottenutidaunaprimaprova.
35
Cap. 3 Identificazione §3.2 Osservazioni ed Elaborazione dati
Figura
3.4:
Esempio
digrafi
ciottenutidaunasecondaprova.
36
Cap. 3 Identificazione §3.3 Identificazione
3.3 Identificazione
La grande quantita di dati disponibili e alcuni problemi riguardanti l’acquisizione delle
coordinate dei LED tramite stereovisione, causati dallo spazio di lavoro troppo ridotto
per un oggetto a 6 gradi di liberta, ha reso necessario effettuare delle stime del modello
in prove di lunghezza ridotta. Inoltre, per comodita, il processo di identificazione e
stato frammentato in quattro differenti dinamiche caratterizzanti i moti del drone: Throttle; Yaw; Roll; Pitch.
La caratterizzazione e stata eseguita cercando di impostare, per ogni singola prova,
il solo comando di interesse. Per i moti di Throttle e Yaw non sono stati incontrati
importanti problemi e la modellizzazione ottenuta e risultata alquanto accurata. Al
contrario, per i moti di Roll e Pitch, si e deciso di effettuare un unico test a causa
delle difficolta incontrate nell’effettuare prove valide cercando di mantenere il drone
nel cono di visibilita dei controllers Wii.
3.3.1 Dinamica del Throttle
La prima analisi eseguita riguarda la dinamica del Throttle. La relazione tra elevatore
(ingresso) e altezza dell’AR.Drone (uscita), calcolata come la media delle altezze dei
quattro LED, e osservabile in Figura 3.5.
Le difficolta incontrate nell’ottenere prove valide sono state causate principalmente
dal comportamento non ideale dell’AR.Drone che, ad un comando imposto, non ri-
37
Cap. 3 Identificazione §3.3 Identificazione
sponde solamente effettuando il moto stabilito. Questo infatti, nel caso in esame, non
eseguendo il solo movimento di salita/discesa ideale porta ad un’uscita dallo spazio
di lavoro con conseguente annullamento della prova.
0 2 4 6 8 10 12 14 16 18 20−80
−60
−40
−20
0
20
40
60
80
IngressoUscita
Figura 3.5: Relazione tra throttle e altezza misurata.
Il modello tempo discreto ottenuto utilizzando la funzione pem, riportato in forma
di IDPOLY, ossia:
A(q) · y(t) = B(q) · u(t) +K(q) · e(t) t ∈ N (3.3.1)
con il termine rappresentante l’errore (e(t)) imposto pari a zero, risulta essere pari a:
y(t) =0.005225 · q−22
1− q−1· u(t) (3.3.2)
Simulando linearmente il modello ottenuto mediante la funzione lsim si puo osser-
vare come l’uscita simulata ben approssimi i dati misurati (Figura 3.6).
38
Cap. 3 Identificazione §3.3 Identificazione
0 2 4 6 8 10 12 14 16 18 20−80
−60
−40
−20
0
20
40
60
80
Ingresso
Uscita
Uscita simulata
Ingresso filtrato
Figura 3.6: Fitting tra uscita simulata e uscita reale.
Discretizzando il filtro e riscrivendo il sistema filtro-modello si ottiene il modello
finale, espresso come funzione di trasferimento:
THROTTLEmodel =0.0004975
z23 − 1.905 · z22 + 0.905 · z21(3.3.3)
dove il massimo esponente del denominatore e dovuto al ritardo imposto nella fase di
modellizzazione che tiene conto dello sfasamento esistente tra l’invio del comando e
l’effettiva risposta dell’AR.Drone.
3.3.2 Dinamica dello Yaw
In riferimento all’analisi della dinamica di rotazione intorno all’asse verticale, ossia il
movimento di Yaw, e stata eseguita una prova considerando come uscita gli angoli dei
quattro LED riferiti al baricentro. Il procedimento per il calcolo di tali angoli, espresso
per maggiore semplicita su un piano bidimensionale, e stato condotto considerando:
39
Cap. 3 Identificazione §3.3 Identificazione le coordinate dei 4 LED (x1, y1, x2, y2, . . . ); le coordinate del baricentro (xb, yb)
dalle quali e possibile determinare la distanza di ogni LED dal baricentro
distLED−b =√
(xb − xLED)2 + (yb − yLED)2 (3.3.4)
Quindi, note le coordinate di ogni LED, del baricentro e le distanze di ogni LED
dal baricentro, attraverso la trigonometria, e facilmente calcolabile l’angolo ϑ come:
ϑ = arccos
(
xLED − xb
distLED−b
)
(3.3.5)
La simmetria del movimento angolare dei quattro LED, osservabile in Figura 3.7,
consente di trattare l’uscita come il moto di un solo LED. La periodicita delle funzioni
0 2 4 6 8 10 120
50
100
150
200
TIME
AN
GLE
4 LED ANGLE − TIME
0 2 4 6 8 10 120
100
200
300
400
TIME
AN
GLE
1 LED ANGLE − TIME
Figura 3.7: Andamento dei 4 LED e del singolo adattato.
arcsin e arccos consente di modificare l’andamento capovolgendo il segnale rispetto a
180 per ottenere quindi la misura di un angolo assoluto.
40
Cap. 3 Identificazione §3.3 Identificazione
La modellizzazione ottenuta, filtrando il segnale di ingresso con un integratore
(FILTRO = 1/s) ed utilizzando la funzione pem presenta un ottimo fitting.
0 2 4 6 8 10 12−50
0
50
100
150
200
250
300
350
400
IngressoIngresso filtratoUscitaUscita simulata
Figura 3.8: Risultato simulazione modello.
Il modello tempo discreto cosı ottenuto si esprime nella forma:
Y AWmodel =0.0001807
z11 − 1.994 · z10 + 0.9942 · z9(3.3.6)
Osservando il modello ottenuto, il cui comportamento risulta fortemente non
lineare, il progetto di un controllore e stato eseguito proprio su tale dinamica.
3.3.3 Dinamica del Roll e del Pitch
Come gia accennato nel Capitolo 3.3, i problemi riscontrati nell’acquisizione di dati
validi del solo moto di interesse, ha portato alla decisione di effettuare un’unica mo-
dellizzazione per la dinamica del Roll e del Pitch. Svolgendo il merge di due differenti
test, nei quali vengono imposti entrambi i comandi, e utilizzando un filtro sia per
41
Cap. 3 Identificazione §3.3 Identificazione
l’ingresso sia per l’uscita per migliorare lo step della modellizzazione, si ottengono i
grafici riportati in Figura 3.9.
0 1 2 3 4 5 6 7−40
−30
−20
−10
0
10
20
30
40Roll
IngressoUscita
0 1 2 3 4 5 6 7−30
−20
−10
0
10
20
30Roll
Ingresso filtratoUscita filtrata
0 1 2 3 4 5 6 7−5
0
5
10
15Pitch
IngressoUscita
0 1 2 3 4 5 6 7−4
−2
0
2
4
6Pitch
Ingresso filtratoUscita filtrata
(a) Primo test.
0 1 2 3 4 5 6 7 8−20
−10
0
10
20
30
40Roll
IngressoUscita
0 1 2 3 4 5 6 7 8−20
−10
0
10
20
30
40Roll
Ingresso filtratoUscita filtrata
0 1 2 3 4 5 6 7 8−40
−30
−20
−10
0
10
20
30
40Pitch
IngressoUscita
0 1 2 3 4 5 6 7 8−40
−30
−20
−10
0
10
20
30Pitch
Ingresso filtratoUscita filtrata
(b) Secondo test.
Figura 3.9: Grafici dei segnali in-out acquisiti e dei segnali in-out filtrati.
42
Cap. 3 Identificazione §3.3 Identificazione
La funzione pem con ordine del sistema pari a 4, produce il modello espresso in
forma di spazio:
x(t + Ts) = Ax(t) +Bu(t) +Ke(t)
y(t) = Cx(t) +Du(t) + e(t).(3.3.7)
Tale sistema presenta una matrice K che moltiplica il segnale di errore e(t). Risultan-
do tale segnale non noto, viene impostato nullo ottenendo quindi il semplice sistema
in spazio di stato:
x(t+ Ts) = Ax(t) +Bu(t)
y(t) = Cx(t) +Du(t)(3.3.8)
caratterizzato dalle seguenti matrici:
A =
0.97282 −0.025726 −0.13921 0.0846240.042088 0.91982 −0.10778 0.0929090.14806 0.041073 0.91444 0.37019
−0.093362 −0.027825 0.069851 0.73558
(3.3.9a)
B =
−0.00014462 0.00026791−7.6339e−5 −0.00059758−0.0012908 −0.000136460.00085132 6.5491e−5
(3.3.9b)
C =
[
84.677 77.284 −5.3183 3.429766.902 −71.21 −0.52076 3.1836
]
(3.3.9c)
D =
[
0 00 0
]
(3.3.9d)
Il modello cosı ottenuto bene approssima le uscite misurate come e possibile osser-
vare dal compare in Figura 3.10. Il risultato osservabile riferito al primo test, in cui
il fitting ottenuto tra modello e uscite reali e pari ad un valore negativo, puo essere
motivato osservando la scala utilizzata in fase di modellizzazione. Infatti, mentre per
gli altri plot le variazioni dei segnali sono consistenti, il segnale (in Figura 3.10(a)
secondo plot) presenta un andamento compreso nell’intervallo [−2, 2], quindi molto
meno ampio rispetto a quelli per cui il fitting risulta accettabile.
43
Cap. 3 Identificazione §3.3 Identificazione
1 2 3 4 5 6−10
−5
0
5
10
15
y1. (sim)
y1
data; measuredmymodel; fit: 73.67%
1 2 3 4 5 6
−2
−1
0
1
2
3y2. (sim)
y2
data; measuredmymodel; fit: −20.45%
(a) Primo test.
1 2 3 4 5 6 7
−5
0
5
10
15
y1. (sim)
y1
data; measuredmymodel; fit: 40.69%
1 2 3 4 5 6 7−20
−10
0
10
y2. (sim)
y2
data; measuredmymodel; fit: 54.43%
(b) Secondo test.
Figura 3.10: Fitting ottenuto tra uscita reale e modello.
44
CAPITOLO 4
Progetto di Controllore
Conclusa la fase di modellizzazione del sistema dinamico viene esegui-to un primo progetto di controllo con il fine di migliorare le prestazionidell’AR.Drone.
4.1 Dinamica da controllare
Osservando gli andamenti tra ingressi ed uscite ed i fitting ottenuti tra le uscite
simulate e le uscite reali, la scelta della dinamica sulla quale eseguire il progetto di
controllore e ricaduta sul moto di Yaw.
In tale test infatti, come e possibile notare dalla Figura 4.1, la dinamica di rotazione
dell’AR.Drone intorno al proprio asse Z non ha un buon comportamento. Osservando
l’ingresso (comando imposto) e l’uscita (variazioni della velocita angolare misurate dal
giroscopio presente sul drone) si nota come al termine del comando non corrisponda
il termine della rotazione.
Sia per il segnale di ingresso che per quello di uscita e stato effettuato un filtraggio,
45
Cap. 4 Progetto di Controllore §4.1 Dinamica da controllare
Figura 4.1: Andamento dell’ingresso e dell’uscita.
essendo presenti rumori e disturbi, tramite un filtro del tipo:
FILTRO =1
0.5s+ 1(4.1.1)
La scelta di impostare il parametro della funzione pem nk = [20], dovuto all’effet-
tivo ritardo nell’esecuzione della rotazione e la scelta dell’ordine del modello pari a 2,
porta il calcolo del modello tempo discreto caratterizzato dalle matrici:
A =
[
0.9984 0.01808−0.01286 0.9385
]
(4.1.2a)
B =
[
2.587E−5
−3.517E−5
]
(4.1.2b)
C =[
496.6 3.15]
(4.1.2c)
D =[
0]
(4.1.2d)
La simulazione di tale modello con l’ingresso definito, osservabile in Figura 4.2,
presenta un fitting non troppo elevato (circa pari al 36%) e questo risultato e stato il
punto di partenza per il progetto del controllore.
46
Cap. 4 Progetto di Controllore §4.2 Processo e Controllore
Figura 4.2: Andamento ingresso-uscita simulata.
4.2 Processo e Controllore
L’analisi del processo da controllare, ottenuto dalla moltiplicazione (della discretizza-
zione) del filtro e del modello ottenuto ed uguale a
P =0.4994z − 0.04808
z3 − 2.898z2 + 2.798z − 0.9005(4.2.1)
ha mostrato come l’aggiunta di un semplice controllore
C = 3 ·(z − 0.85)2
z2(4.2.2)
costituito quindi da due zeri abbastanza lontani dal cerchio unitario, migliora le pre-
stazioni del sistema. Osservando infatti il diagramma di Bode in Figura 4.3 si nota
come si ottiene un buon margine di guadagno (17.5 dB rispetto al 2.26 dB del solo
processo) e margine di fase (86.7 deg rispetto al 3.91 deg del solo processo). Dal luogo
delle radici della catena diretta (C ·P ), in Figura 4.4, si osserva come la presenza dei
poli vicino il cerchio unitario rappresentano la dinamica lenta dell’intero sistema, che
quindi governera l’evoluzione di quest’ultimo.
47
Cap. 4 Progetto di Controllore §4.2 Processo e Controllore
Figura 4.3: Diagrammi di Bode del Processo e della catena Controllore-Processo.
Figura 4.4: Luogo delle radici della catena Controllore-Processo.
Simulando ed osservando il comportamento dell’intero sistema a controreazione uni-
taria sottoposto ad un ingresso a gradino, si puo facilmente osservare (Figura 4.5)
come l’uscita abbia un buon andamento con un tempo di assestamento di circa 1.5 s.
48
Cap. 4 Progetto di Controllore §4.2 Processo e Controllore
0 0.5 1 1.5 2 2.5 30
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Step Response
Time (sec)
Am
plitu
de
Figura 4.5: Uscita del sistema a controreazione unitaria con ingresso a gradino.
Nell’ultima simulazione, sottoponendo quindi l’intero sistema agli ingressi considerati,
si osserva come l’uscita segua bene l’ingresso imposto, discostandosi parecchio dalla
situazione di sistema non controllato.
0 2 4 6 8 10 12−10
0
10
20
30
40
50
60
70
ControlledUncontrolledReference
Figura 4.6: Grafico del sistema non controllato e controllato.
49
Cap. 4 Progetto di Controllore §4.2 Processo e Controllore
Utilizzando il software 3D (del quale viene riportato il diagramma a blocchi in
Figura 4.7(a)), sviluppato da Alessandro Nicolosi in ambiente MATLAB/Simulink,
si e analizzato il comportamento del sistema non controllato ed osservati i reali
miglioramenti apportati con il controllo progettato.
(a) Diagramma a blocchi simulink.
(b) Istantanea. (c) Istantanea.
Figura 4.7: Software 3D di simulazione.
In conclusione e stato osservato il differente comportamento dell’AR.Drone in volo.
Sottoponendo quindi il sistema ad un comando di Yaw si e evidenziato come il sistema
50
Cap. 4 Progetto di Controllore §4.2 Processo e Controllore
controllato presenti netti miglioramenti rispetto a quello non controllato. Infatti,
mentre la dinamica di yaw non controllata viene eseguita nonostante il termine del
comando, con quella controllata, al termine del comando imposto, corrisponde il reale
blocco della rotazione.
Si e cosı mostrato come un semplice controllore progettato per la singola dinamica
di Yaw migliori abbondantemente le prestazioni e l’affidabilita.
51
Conclusioni e sviluppi futuri
Il presente lavoro di tesi ha quindi coperto differenti campi come l’analisi della mo-
dellizzazione di un sistema dinamico, ossia i metodi ed i problemi che si possono
incontrare nel processo, con particolare attenzione all’elaborazione dei segnali e dei
dati disponibili. Sono stati studiati diversi linguaggi di programmazione per lo svi-
luppo della specifica applicazione utilizzando un Software Development Kit per il
codice scritto in linguaggio C. Infine e stato affrontato il problema di progettare un
controllore di processo per il raggiungimento di un sistema stabile ed affidabile.
L’analisi dell’AR.Drone ha permesso di individuarne gli aspetti positivi e nega-
tivi. I possibili miglioramenti dal lato hardware e software sono tanti. Un esempio
riguarda la comunicazione wireless che avviene punto-punto tra l’AR.Drone e il di-
spositivo di comando (sia esso Iphone, Ipod o Personal Computer) ma un possibile
sviluppo potrebbe essere la realizzazione di una rete multi-punto con quindi la possi-
bilita di effettuare voli in remoto. Un’altra ancora in fase di studio presso i laboratori
di robotica e quello di valutare la possibilita di rendere il velivolo energeticamente
autonomo, almeno parzialmente, mediante l’uso di celle solari al silicio policristallino,
estremamente leggero.
E stato realizzato, attraverso l’utilizzo di hardware facilmente reperibile come LED
ad infrarosso e controller della Wii, un sistema di tracking 3D a basso costo e dal-
la buona affidabilita. Nonostante l’utilizzo di tale sistema sia stato utile e adatto
per il fine ultimo di tale lavoro, si e osservato come alcune limitazioni, ad esempio il
52
Cap. 4 Progetto di Controllore §4.2 Processo e Controllore
numero massimo di LED individuabili dal controller della Wii, non sono facilmente
sormontabili se non con l’utilizzo di apparecchiature piu specifiche. Alcune difficolta
incontrate invece, come ad esempio il limitato range di funzionamento o la precisione
nella triangolazione, con un approfondimento del lavoro sono facilmente superabili.
Il possibile utilizzo di LED IR con un cono di emissione della luce piu ampio ed una
analisi piu accurata dei processi di calibrazione e di triangolazione, possono sicura-
mente migliorare l’intero funzionamento del sistema.
Sarebbe altresı possibile usare dei marker riflettenti IR ed un illuminatore estero per
eliminare il problema del cono dei led ed il peso delle batterie.
Riguardo la modellizzazione della dinamica di volo, il modello ottenuto puo risul-
tare utile sia per osservare i controlli gia implementati nell’AR.Drone sia per capire in
che modo agire sul sistema se il comportamento non risulta soddisfacente. L’analisi
dei risultati mostra come il moto di Throttle, cosı come per quelli di Pitch e di Roll
risulta essere eseguito discretamente ed il risultato e alquanto accurato.
Il primo progetto teorico di controllo, effettuato sul moto di Yaw, ha mostrato come
vi siano ampi margini di miglioramento. Un’elaborazione dei dati acquisiti di ulteriore
prove, cercando di legare anche i dati di accelerometri e giroscopi, puo rappresentare
una valida scelta da eseguire per il raggiungimento di un modello completo, valido ed
affidabile. Tale obiettivo e stato raggiunto per la dinamica di Yaw: l’implementazione
di un controllo per la rotazione lungo l’asse Z mostra evidenti miglioramenti nella
dinamica.
53
Elenco delle figure
1 Foglio d’appunti e schizzo dell’invenzione. . . . . . . . . . . . . . . . . 2
1.1 AR.Drone Parrot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Sistema rotore-pale elicottero. . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Modi di rotazione ed assi cartesiani di riferimento. . . . . . . . . . . . 8
1.4 Convenzione movimenti modello a 4 rotori. . . . . . . . . . . . . . . . 8
1.5 Componenti del Drone. . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6 AR.Freeflight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Applicazioni disponibili. . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Schema Iphone - AR.Drone. . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Schema collegamento PC-AR.Drone. . . . . . . . . . . . . . . . . . . 14
2.3 Parametri caratteristici di un sistema di visione stereoscopica. . . . . 15
2.4 Wii Controller e particolare della camera IR. . . . . . . . . . . . . . . 17
2.5 Inclinazione del LED rilevabile (a) e non (b) da parte del controller. . 19
2.6 Possibili posizionamenti delle camera e area di lavoro disponibile. . . 19
2.7 Particolari del pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8 Soluzione finale del pattern. . . . . . . . . . . . . . . . . . . . . . . . 21
2.9 Interfaccia grafica e visualizzazione punti. . . . . . . . . . . . . . . . . 23
2.10 Risultato della stereo calibrazione. . . . . . . . . . . . . . . . . . . . . 24
2.11 Schema collegamento PC - AR.Drone. . . . . . . . . . . . . . . . . . 26
54
ELENCO DELLE FIGURE ELENCO DELLE FIGURE
3.1 Algoritmo generico di identificazione[8]. . . . . . . . . . . . . . . . . . 32
3.2 Operazione di filtraggio e pulizia dell’altezza del baricentro IR. . . . . 34
3.3 Esempio di grafici ottenuti da una prima prova. . . . . . . . . . . . . 35
3.4 Esempio di grafici ottenuti da una seconda prova. . . . . . . . . . . . 36
3.5 Relazione tra throttle e altezza misurata. . . . . . . . . . . . . . . . . 38
3.6 Fitting tra uscita simulata e uscita reale. . . . . . . . . . . . . . . . . 39
3.7 Andamento dei 4 LED e del singolo adattato. . . . . . . . . . . . . . 40
3.8 Risultato simulazione modello. . . . . . . . . . . . . . . . . . . . . . . 41
3.9 Grafici dei segnali in-out acquisiti e dei segnali in-out filtrati. . . . . . 42
3.10 Fitting ottenuto tra uscita reale e modello. . . . . . . . . . . . . . . . 44
4.1 Andamento dell’ingresso e dell’uscita. . . . . . . . . . . . . . . . . . . 46
4.2 Andamento ingresso-uscita simulata. . . . . . . . . . . . . . . . . . . 47
4.3 Diagrammi di Bode del Processo e della catena Controllore-Processo. 48
4.4 Luogo delle radici della catena Controllore-Processo. . . . . . . . . . . 48
4.5 Uscita del sistema a controreazione unitaria con ingresso a gradino. . 49
4.6 Grafico del sistema non controllato e controllato. . . . . . . . . . . . . 49
4.7 Software 3D di simulazione. . . . . . . . . . . . . . . . . . . . . . . . 50
55
Elenco delle tabelle
2.1 Mappatura Joystick. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
56
Elenco dei codici
2.1 Procedura di salvataggio coordinate. . . . . . . . . . . . . . . . . . . 21
2.2 Esempio file di uscita del sistema di acquisizione. . . . . . . . . . . . 22
2.3 Esempio file remoteleft.m. . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4 Definizione della funzione stereo triangulation. . . . . . . . . . . . . . 25
2.5 Esempio file di uscita dei dati di volo.txt . . . . . . . . . . . . . . . . 27
57
Bibliografia
[1] Museo Nazionale della Scienza e della Tecnologia Leonardo Da Vinci,
http://www.museoscienza.org/, 2011.
[2] Enciclopedia Treccani, Voce “Elicottero”, 2011.
[3] Stephane Piskorski, Nicolas Brulez, “AR.Drone Developer Guide”, Revision 1.6,
Parrot, February 2011.
[4] Johnny Chung Lee, Carnegie Mellon University, “Hacking the Nintendo Wii
Remote”, IEEE Pervasive Computing (vol. 7 no. 3), July-September 2008.
[5] T. Cuypers, T.V. Eede, S. Ligot, Y. Francken, C. Hermans, F. Arickx, P. Bekaert,
“StereoWiision: Stereo Vision with Wiimotes”, International 3D Stereo Film and
Technology Festival (3D Stereo MEDIA), 2009.
[6] Andrea Zoli, “Miglioramento della fase d’acquisizione in un sistema di Fast
Reverse Engineering”, Universita di Bologna, 2010.
[7] S. Hay. “Optical tracking using commodity hardware”, September 2008.
[8] L. Ljung, System Identification – Theory for the User, Prentice Hall, 1999
58