Home

Visualizza/apri - POLITesi

image

Contents

1. B 4 Esecuzione applicazione gioco Questa applicazione fornisce le informazioni di gioco e i suoni necessari a far capire in che fase ci si trova Per eseguire l applicazione necessario cd cartella _dove_sono stati estratti_i suoni rosrun quadgame game B 5 Esecuzione applicazione comandi 115 B 5 Esecuzione applicazione comandi Lo scopo di questa applicazione stato essenzialmente quello di testare al cuni fasi di gioco Per avviare l applicazione aprire il terminale e eseguire rosrun quademd commander Successivamente possibile inserire nello stesso terminale i vari comandi disponibili Ricordiamo che tali messaggi possono essere e land il drone atterra e laser il drone accende il puntatore laser enable il drone attiva la gestione ostacoli e disable il drone disabilita la gestione ostacoli e h seguito da un valore serve a cambiare l altezza del drone 116 Appendice B Manuale Utente Appendice C Manuale operatore C 1 Radiocomando Il radiocomando utilizzato mette a disposizione 6 canali indipendenti di cui 4 utilizzati per il volo e 2 per il gioco Come mostrato in Figura C 1 la leva sulla sinistra collegata orizzontalmen te al canale di roll e verticalmente a quello di throttle La leva sulla destra collegata orizzontalmente al canale di yaw e verticalmente a quello di pitch THROTTLE PITCH ROLL YAW Figura C 1 Comandi
2. a WiiCam pin b Schema circuitale c Scheda prodotta Figura 4 20 WiiCam scheda e circuito 45 Capitolo 4 46 Due resistenze di pull up sulla linea I2C permettono il corretto funzio namento della linea stessa Un altro componente fondamentale del circuito l oscillatore al quarzo ne cessario al sensore Questo oscillatore pu essere da 24 o 25 MHz In Figura 4 20 sono riportati i pin del sensore a lo schema circuitale completo b e la scheda prodotta c 4 5 4 Laser Per poter realizzare un laser game necessario avere a bordo un puntatore laser Figura 4 21 Il modulo laser utilizzato Il modulo scelto per questo compito il Modulo Laser 650 nm Figura 4 21 che opera a 5 V e pertanto completamente compatibile con Arduino Per farlo accendere necessario solamente portare un pin a livello di tensio ne alto Il puntatore laser montato sul frame del drone nella parte anteriore sotto alla WiiCam e alla webcam In questo modo possibile colpire l avversario quando in posizione favorevole Per poter segnalare al giocatore umano la zona di atterraggio durante la fase di ricarica abbiamo montato un secondo modulo laser anch esso nella parte anteriore del drone Esso puntato verso il terreno e indica il punto centrale della zona di atterraggio In Figura 4 22 sono visualizzati i due moduli laser montati sul drone 4 5 5 Led Per poter avere un riscontro immediato e chiaro di
3. destra o EH proximity davanti E iL proximi O Figura 4 24 Schema collegamenti arduino sensori le caratteristiche descritte che giustificano i prezzi leggermente pi elevati rispetto alle litio ione Le LiPo sono composte da pi celle in serie o in parallelo per aumentarne la durata oppure il voltaggio Ogni cella ha un valore di tensione nominale di 3 7 V e pu andare da un minimo di 2 7 V da scarica ad un massimo di 4 23 V a piena carica Scendere sotto il limite minimo pu compromettere seriamente la funziona 49 Capitolo 4 50 lita della batteria Il valore di soglia sotto cui non si dovrebbe scendere di 3 V per cella Per evitare che ci accada vengono utilizzati dei segnalatori acustici che emettono un allarme appena una cella scende sotto un valore soglia prestabilito a Batteria per il volo b Batteria per Odroid ed elettronica Figura 4 25 Le batterie utilizzate A bordo del drone sono presenti due batterie LiPo diverse La prima batteria Figura 4 25a serve per alimentare i motori e la scheda di volo ed dunque utilizzata solo per volare La batteria scelta tra la vastissima gamma presente in commercio la Tur nigy nano tech 3300 mah 40 80C da 11 1 V 3 celle Questa batteria ci permette di produrre i 120 A che possono richiedere al massimo i motori del drone ha un peso di soli 264 g e garantisce una durata di circa 7 minuti in volo La seconda batt
4. In particolare pensando di muovere una delle due mani il quadricottero an dr da quella parte pensando di avvicinare allontare entrambe le mani questo aumenter diminuir l altezza Il movimento in avanti invece costante 19 Stato dell arte Figura 2 7 Pilotaggio attraverso il pensiero 2 1 3 Giochi con quadricottero Un altro genere di applicazione deriva dalla semplificazione nel pilotaggio dei quadricotteri La compagnia francese Parrot ha infatti sviluppato dei quadricotteri ARDrone estremamente facili da guidare con costi molto accessibili 1 Gli ARDrone nascono quindi con lo scopo di divertire l utenza In partico lare sono state sviluppate applicazioni che sfruttano la telecamera di bordo per creare una realt aumentata Specialmente con AR Rescue 3 possibile attraverso il telefono o tablet sul la quale installata l applicazione eseguire alcune missioni come sparare o raccogliere oggetti virtuali Figura 2 8 Figura 2 8 Giocatore immerso nella realt aumentata di AR Rescue Un altra applicazione AR FlyingAce 2 dove viene simulata una bat taglia con un altro ARDrone Attraverso due dispositivi possibile in 11 Capitolo 2 12 fatti vedere il proprio quadricottero sparare con lo scopo di distruggere virtualmente l altro 2 1 4 Regolamento italiano L ENAC Vente nazionale per l aviazione civile ha recentemente pubblicato una circolare che regolarizza il vol
5. IMPOSTAZIONI DI VOLO sce LIMITE DI ALTITUDINE 3 ss 1 3m MASSIMA VELOCITA VERTICALE 700 mm s VELOCITA DI ROTAZIONE MAX 40 s ANGOLO DI INCLINAZIONE MAX CI _ 14 CARENA PER VOLO ALL ESTERNO CE VOLO ALL ESTERNO FL Figura 3 3 Settaggio delle impostazioni di volo Il drone autonomo utilizza due metodi per individuare e seguire il drone telecomandato Il primo metodo consiste nel riconoscimento della forma e del colore il drone autonomo in grado di identificare i rettangoli rossi con fattore di forma orizzontale Per questo motivo abbiamo rivestito la scocca con un cartoncino di colore rosso alto circa 8 cm Questa modifica stata fatta in modo tale da non creare asimmetrie sul drone che altrimenti avrebbero influito sulla dinamica di volo Il secondo metodo consiste invece nel riconoscimento di sorgenti ad infraros si Abbiamo dunque posizionato due gruppi composti da tre led infrarossi ciascuno su ognuno dei quattro lati della scocca I due gruppi sullo stesso lato sono distanti 20 cm I raggruppamenti servono solamente a potenziare l effetto dei led che in questo modo possono essere individuati a una distanza maggiore e da diver se inclinazioni Il risultato finale riportato in Figura 3 4 I led infrarossi vengono alimen Figura 3 4 La scocca dell ARDrone modificata tati dalla stessa batteria che alimenta i motori che pertanto sacrificher ad essi una parte dell autonomia Essi consumano u
6. 21 A2 D8 11 024 O 20 A1 D9 12 ox BW 20 19 A0 D10 13 OZ USA 2088 4 18 AREF D11 14 ozm lll mzo 17 3v3 D12 15 03 2 20 16 D13 O E mo c Pinout Figura 4 12 Arduino Nano La scelta ricaduta su questo tipo di Arduino per le sue dimensioni molto ridotte appena 2x4 cm e per la presenza di otto ingressi analogici contro i sei normalmente presenti sugli altri modelli Gli ingressi analogici sono molto importanti poich permettono di ricevere input da tutti i sensori presenti sul drone 40 Architettura hardware 4 5 1 Sensori di prossimita Il drone dotato di quattro sensori di prossimit ad infrarossi posti agli estremi delle direzioni dei due assi di movimento di pitch e roll Figura 4 13 Sharp GP2Y0A02 Grazie alla presenza di questi sensori abbiamo potuto implementare un sistema utile ad evitare gli ostacoli Il numero di sensori per non in grado di rilevare qualunque ostacolo potenzialmente pericoloso per il drone Sa rebbe infatti opportuno avere due o tre sensori in ogni lato per poter coprire una superficie maggiore Tale numero non per gestibile con l Arduino Nano Il sensore scelto nell ambito del nostro lavoro il sensore di prossimit Sharp GP2Y0A02 Figura 4 13 Questo sensore permette di rilevare oggetti da una distanza minima di 20 cm fino ad una distanza massima di 150 cm con un angolo mostrato in Figura 4 14 Il sensore opera ad una tens
7. Capitolo 3 24 Capitolo 4 Architettura hardware Mai far fare ad un essere umano il lavoro che dovrebbe fare una macchina Matrix La progettazione e la realizzazione del drone utilizzato per il nostro gioco sono state una parte molto significativa di questa tesi La varieta di componenti esistenti e di soluzioni possibili ha dato luogo ad una ricerca che ha avuto come obiettivo quello di costruire un drone affida bile robusto espandibile semplice da utilizzare e con un prezzo contenuto Tra i componenti scelti alcuni sono strettamente collegati al gioco creato mentre la maggior parte sono generici e si possono adattare molto bene a tantissimi altri scopi La scelta pi importante effettuata stata quella di mettere tutta la potenza di calcolo a bordo del drone Esso infatti non necessita di alcun calcolatore esterno per poter volare in autonomia Non richiede inoltre alcun sensore che non sia gi montato a bordo In questo modo il drone risulta essere un oggetto a s completamente indipendente facile da spostare e utilizzare ovunque si voglia 4 1 Struttura base La struttura base del drone stata realizzata utilizzando un kit commerciale ARTF Almost Ready To Fly prodotto dall azienda DJI Il kit in questione il DJI F450 Flame Wheel Multi Rotor Quadcopter ARTF Kit che comprende e il frame del drone composto da quattro braccia colorate e due piastre di collegamento Figura 4 1 Capitolo 4 Fi
8. lontano e riparato possibile dalle eliche Il miglior posto sotto al drone vicino il centro del frame Per quanto riguarda il problema elettrico invece la soluzione quella di creare un filtro della tensione di ingresso con un condensatore da 100 uF e una resistenza da 10 2 come mostrato in Figura 4 17 Come i sensori di prossimit anche questo sensore lavora ad una tensione di 5 V e fornisce un uscita analogica in tensione proporzionale alla distanza dell oggetto rilevato Il sonar ha un range di rilevazione che va dai 20 cm ai 765 cm con una frequenza di lettura di 10 Hz Oltre al filtro sulla tensione di ingresso stato implementato un filtro soft ware sui valori letti Architettura hardware 130 7 120 110 100 70 130 120 110 100 90 80 gt 70 60 a Con il condensatore b Senza il condensatore Figura 4 15 Confronto lettura dati dal sensore di prossimita Figura 4 16 Sonar MaxBotix MB1340 43 Capitolo 4 44 Input Power Figura 4 17 Filtro per tensione di ingresso 4 5 3 WiiCam La WiiCam Figura 4 18 un sensore molto performante che permette di tracciare fino a quattro sorgenti infrarosse contemporaneamente ad una frequenza fino a 100 Hz e con una risoluzione di 1024x768 Tale sensore proviene dal WiiMote il controller della nota console Nintendo Wii Figura 4 18 WiiCam Per il nostro lavoro abbiamo utilizzato qu
9. tornare utile anche durante il gioco In figura 5 4 riportato il diagramma delle classi di questo modulo GameControl CommandVariables ServerReader iniziato bool inizio_gioco timeb pubblicare bool msg string ricarica bool tempo_atterraggio int flightValues FlightValues arduinoControl ArduinoControl proximity Proximity gameControl GameControl CommandVariables void getinstance CommandVariables setAtterraggio bool atterraggio void setSensor bool sensor void shootLaser void setHoverHeight short int height void GameControl void getinstance GameControl getPassato int atterraggioRicarica bool F getters amp setters mA Y FlightValues arduino ArduinoControl 1 int height short int 1 old_zone short int hover_throttle short int ArduinoControl Proximity FlightValues void getinstance FlightValues getters amp setters Figura 5 4 Diagramma delle classi del modulo ServerReader 5 1 5 VideoManagement Il modulo di VideoManagement si interfaccia con la webcam al fine di ac quisire ed elaborare le immagini ricevute E dunque il responsabile di tutta la parte di visione del drone Le immagini vengono acquisite ad una risoluzione di 640x480 pixel Questo ci permette di elaborarle ad una velocita di 13 fps e allo stesso tempo di rilevare il drone avversario fi
10. INDICE II 4 3 6 Sistema operativo osoo 39 AAs Webcam ania tio x ey eh be Bee ee ae den 39 4 5 Arduino 4 3 e dee dale Oi Beh ee a aa 40 4 5 1 Sensori di prossimita 41 4 52 SSONEE a e oo e e as wih Y doe 42 45590 WIGAN e e passio Akar ee 44 Amp A A es Bidone solaio ehh oe A dew 46 ABDI e oe ir ey not Se tet aks ag iy Sin RN 46 40 03 Schema yan o Bice grec Sie ho ae oases 48 ANG Batterie ig ia ae Sh re Heck sew e eae bee et he eo 48 4 7 Radiocomando a a a E a E 51 4 8 Interconnessioni e risultato finale 52 Architettura software 55 5 1 Applicazione a bordo del drone 56 5 1 1 BoardManagement 0 00 56 5 1 2 SensorManagemet e 59 5 1 3 ServerConnection 0 a ee ee 61 5 1 4 ServerReader 0 0 eee ee 64 5 1 5 VideoManagement 204 65 5 1 6 FlightManagement 66 5 2 Applicazioni esterne 66 5 2 1 Monitoraggio volo 66 5 2 2 Monitoraggio radiocomando 68 5 2 3 Invio comandi LL 68 5 2 4 Applicazione di interfaccia del gioco 68 5 3 Diagramma ROS LL 69 Logica di gioco 71 6 1 Controllore di quota 22 72 6 1 1 Controllore PID 73 6 1 2 DecollO ect id ate Ari 75 6 1 3 Atterraggio o e e 76 6 2 Gestione ostacoli o ee 76 6 2 1 Casi di rilevazione LL 77 6 2 2 Implementazione 77 6 3 Ricerca dell avversario 2 a
11. La ricerca la prima fase ad essere eseguita dopo il decollo del drone au tonomo Il suo scopo quello di muoversi all interno di un ambiente non conosciuto al fine di individuare il drone telecomandato Questa esplorazione utilizza solo i canali di yaw e di pitch Lo yaw viene utilizzato poich permette di vedere il pi velocemente possibi le tutto l ambiente circostante Il pitch serve per muoversi nella direzione in cui posizionata la webcam in modo tale da diminuire l eventuale distanza tra i due droni In questa fase il movimento sull asse di roll non fornisce un informazione aggiuntiva per la ricerca dell altro drone e pertanto non viene utilizzato La strategia di ricerca molto semplice ma ottimale per quanto riguarda l ambiente in cui si trova il drone autonomo compie una rotazione attorno al proprio asse e una volta effettuata procede in avanti per un determinato 79 Capitolo 6 80 tempo per poi ricominciare Per quanto riguarda la rotazione viene dato un valore costante di yaw fino a quando il drone non compie un angolo giro pit un angolo casuale tra 0 e 100 Con l angolo giro viene visualizzato in un tempo molto limitato tutto Vambiente circostante I successivo angolo serve in combinazione con il pitch a far avanzare il drone in una direzione casuale Per verificare la corretta rotazione si fa uso del magnetometro presente sulla scheda di volo La rotazione attorno al proprio as
12. La scelta della modalit di volo automatica o manuale non propria del Multiwii ma stata aggiunta nell ambito del nostro lavoro per poter inter venire tempestivamente in caso di pericolo In particolare quando l interruttore dell AUX1 posto verso il pilota la modalit scelta quella manuale In questo caso la scheda di volo legge regolarmente i comandi provenienti dal radiocomando Se l interruttore invece posto nel verso opposto al pilota nella posizione che si pu vedere in Figura C 2 la modalit scelta quella automatica In questo caso la scheda di volo legge i comandi dalla seriale e scarta automaticamente quelli proveniente dal radiocomando C 2 2 Gioco Le combinazioni seguenti sono utilizzate all interno del gioco Contrariamen te a quelle mostrate in precedenza queste sono rilevate dal nostro software e non dalla scheda di volo Inizio partita Per poter cominciare una nuova partita occorre posizionare il comando di throttle al minimo verso il basso e portare l interruttore della modalit su C 2 Combinazioni comandi per il radiocomando 121 automatico In questo modo se attivo il software il bordo verranno calibrati gli acce lerometri armati i motori e iniziato il decollo Attenzione assicurarsi che sia attiva la modalit manuale quando si avvia Vapplicazione di bordo per evitare che il drone parta inaspettatamente Atterraggio Il comando di atterraggio si pu fornir
13. e Capitolo 2 Stato dell arte viene illustrato il funzionamento dei qua dricotteri e i loro utilizzi Inoltre vengono presentati gli ultimi sviluppi nell ambito dei robogame Introduzione Capitolo 3 Struttura del gioco vengono presentate le regole del gioco e gli agenti coinvolti Capitolo 4 Architettura hardware vengono spiegati i componenti hardware utilizzati per la realizzazione del quadricottero autonomo e le scelte concettuali compiute per lo sviluppo del gioco Capitolo 5 Architettura software viene trattata la struttura software del progetto in particolare la comunicazione HW SW Capitolo 6 Logica di gioco vengono esposti gli algoritmi per il volo autonomo e per le varie fasi di gioco Capitolo 7 Prove sperimentali viene qui analizzato il funzionamento delle varie fasi di volo e del gioco con test specifici Capitolo 8 Conclusioni riporta i risultati finali ottenuti e illustra i possibili sviluppi futuri Capitolo 1 Capitolo 2 Stato dell arte La scienza di oggi e la tecnologia di domani Edward Teller Lo sviluppo tecnologico ha portato negli ultimi anni ad avere una note vole crescita nell ambito della robotica e dell intelligenza artificiale E sempre pi comune l utilizzo di robot per migliorare lo stile di vita ap plicando queste scienze in svariati campi come quello civile industriale o medico Specialmente grazie alla riduzione dei costi e a tecnologie pi sicu re la robo
14. velocemente si rischierebbe una caduta troppo violenta con possibilit di pericolosi rimbalzi a terra Terminato l atterraggio per motivi di sicurezza viene disarmata la scheda di volo 6 2 Gestione ostacoli La gestione degli ostacoli una fase molto importante per quanto riguarda la sicurezza del drone e dell ambiente nel quale si svolge il gioco Essa viene attuata a partire dai dati forniti dai quattro sensori di prossimit presenti sul drone autonomo I sensori sono posti alle estremit degli assi di movimento di pitch e roll ed appunto su questi due canali che lavora la gestione ostacoli L idea di base quella di mantenere sempre una distanza di almeno 150 cm da qualunque oggetto rilevato Questo valore stato scelto poich il Logica di gioco massimo rilevabile dai sensori utilizzati e allo stesso tempo fornisce una buona distanza di sicurezza In ogni momento del volo viene controllato lo stato dei sensori e se almeno uno rileva un ostacolo al di sotto dei 150 cm viene attivata immediatamente questa parte di gestione ostacoli La fase in questione ha infatti priorita maggiore rispetto a tutte quelle di gioco tranne la ricarica in cui il drone e fermo a terra 6 2 1 Casi di rilevazione Avendo a disposizione quattro sensori ci sono 15 diverse possibilit di let tura Il caso in cui tutti i sensori rilevano un oggetto non stato implementato poich non realistico all interno del nostro
15. Tuttavia l uso di questa difesa limitata in quanto richiede energia e viene perci impiegato solo in caso di estrema necessit Il robot autonomo una versione modificata con degli appositi sensori del robot commerciale della Meccano chiamato Spykee Figura 2 9 Sono stati aggiunti sonar per il rivelamento degli ostacoli led per segna Figura 2 9 Versione di Spykee modificata lare l energia restante al giocatore e dei led infrarossi per renderlo visibile al WiiMote Il WiiMote viene utilizzato dal giocatore con il quale attraverso delle ge sture pu sparare cambiare arma e ricaricare L intero sistema funziona con una comunicazione Wi Fi tra Spykee e un pc esterno che decide movimenti e velocit Le informazione del WiiMote sono invece inviate al pc tramite bluetooth Spike Game In questo gioco si utilizzano due robot della Lego uno autonomo e uno telecomandato Quello autonomo rappresenta la preda dotato di alcuni sonar utili per schivare gli ostacoli ed in grado di seguire alcune tipologie di strategie per fuggire Il robot telecomandato Spike rappresenta il predatore Stato dell arte e viene comandato tramite gesti rilevati da un WiiMote Lo scopo del giocatore quello di colpire tramite la coda di Spike il robot autonomo Jedi Trainer Game Questo gioco si ispira alla saga cinematografica di Guerre Stellari in parti colare alla scena in cui Luke Skywalker impara a usare la spada
16. comportamento spiegato Algoritmo 6 Gestione Fuoco Require x y d if allineato ADistanza x y d then fuocoLaser frame ritaglialmmagine filtroBlur frame scalagrigi frame colpito ricercaCerchio if colpito then inviaScon fittaGiocatore fine true end if end if 6 6 Ricarica Questa fase di gioco utilizza alcuni stati precedentemente descritti in ma niera diversa per creare una nuova dinamica all interno del gioco Logica di gioco Il drone autonomo dopo un tempo casuale tra i 2 e i 3 minuti di gioco atterra e disarma la scheda di volo A questo punto viene attivato il laser di segnalazione del drone che indica la zona di atterraggio in cui il drone telecomandato deve atterrare il pit presto possibile Per controllare la corretta posizione in cui il drone telecomandato atterra viene utilizzata ancora una volta la WiiCam In questo modo stato possibile calcolare in maniera analoga a quanto de scritto precedentemente la distanza del drone e il suo allineamento con esso stato fornito un intervallo di tolleranza in cui possibile individuarlo In particolare la distanza deve essere compresa tra 120 e 170 cm e i droni de vono essere allineati Se il drone telecomandato rispetta questi vincoli il drone autonomo invia all applicazione di gioco un segnale che determina la vittoria del giocatore Dopo 30 secondi dall avvenuto atterraggio il drone autonomo se non ha riconosciuto il
17. di bordo in modo tale da colpire la scocca dell avversario Per attivare il laser il drone avversario deve essere ad una distanza com presa tra 220 e 280 cm da quello autonomo ed allineato con esso In questo modo il laser ha una buona probabilit di colpire la scocca del drone avatar 85 Capitolo 6 86 Algoritmo 5 Inseguimento basato su infrarossi Require wii if wii then x ottienixmedia wit y ottieniymedia wit d trovaDistanza wit h trovaAltezzaRelativa y PIDroll setxAttuale x PIDpitch gt setdAttuale d PIDh gt setH altezzaAttuale h pitch PIDpitch calcola pitch Base roll PIDroll calcola roll Base gestioneFuoco x y d end if Per stabilire se il drone autonomo abbia colpito o meno l avversario vie ne analizzata l immagine proveniente dalla webcam durante il periodo di attivazione del laser ossia 1 secondo L immagine viene ritagliata in corri spondenza di dove si trova il drone avatar in modo tale da analizzare solo ed esclusivamente la parte della scocca Il laser che riflette sul cartoncino rosso crea un cerchio pertanto viene ana lizzata l immagine alla ricerca di cerchi Per distinguerli meglio all interno dell immagine questa viene portata in scala di grigi e si applica un filtro di sfocatura Se il riscontro del laser positivo il drone autonomo atterra e segnala la vittoria all applicazione di gioco esterna L Algoritmo 6 descrive il
18. di segnalazione sulla scheda di volo si spengono i motori sono disarmati Figura C 4 Combinazione per disarmare i motori Calibrare gli accelerometri La calibrazione degli accelerometri un operazione che bisogna svolgere ogni volta che si parte per un nuovo volo Durante l operazione il drone deve es sere disarmato e posto perfettamente in piano Come mostrato in Figura C 5 per calibrare gli accelerometri occorre posi zionare il comando di throttle al massimo verso l alto il comando di pitch al minimo verso il basso ed il comando di yaw al minimo verso sinistra Una volta calibrati gli accelerometri i led di segnalazione sulla scheda di volo lampeggiano per qualche secondo per poi spegnersi Figura C 5 Combinazione per calibrare gli accelerometri 120 Appendice C Manuale operatore Calibrare il magnetometro La calibrazione del magnetometro si compie una sola volta dopo aver mon tato il drone L operazione consiste nel ruotare manualmente il drone lungo i tre assi di roll pitch e yaw per 30 secondi Come mostrato in Figura C 6 per iniziare la calibrazione occorre posizionare il comando di throttle al massimo verso l alto il comando di pitch al minimo verso il basso ed il comando di yaw al massimo verso destra I led di segnalazione sulla scheda di volo lampeggiano per 30 secondi per poi spegnersi a calibrazione terminata Figura C 6 Combinazione per calibrare il magnetometro Scegliere modalit
19. drone nemico nella zona delimitata decolla nuovamente rico minciando la sua ricerca L Algoritmo 7 spiega tale procedimento Algoritmo 7 Ricarica Require tempoRicarica if tempoDiGioco tempoRicarica then atterra if wit then x ottienirmedia w i y ottieniymedia wii d trovaDistanza wii if atterraggioCorretto a y d then inviaVittoriaGiocatore fine true end if end if end if if tempoDiGioco tempoRicarica tempo ADisposizioneAtterraggio then decolla end if 6 7 Contromossa La contromossa non un vero e proprio stato di gioco Il suo unico scopo infatti quello di stabilizzare il pi possibile il drone autonomo permetten dogli di frenare Senza eseguire una contromossa ossia una mossa di verso opposto a quello 87 Capitolo 6 88 precedente il drone continuerebbe a muoversi per molto pi tempo del vo luto in tale verso Il suo movimento infatti non pu terminare fino a quando l attrito dell aria non contrasta la forza applicata fino a quel momento Questo stato dunque indispensabile per una corretta esecuzione del gioco La contromossa viene evocata alla fine di ogni azione sugli assi di pitch e roll Il canale di yaw non necessit di contromosse poich non muove il drone ma lo ruota e basta La contromossa deve tenere conto della forza e del tempo per cui stata eseguita In questo modo possibile contrastare il lavoro eseguito e fermare dunque
20. gruppo di led formato da due led posti uno alla destra ed uno alla sinistra del sensore di prossimit sul retro del drone Questi due led servono a capire se il drone sta volando alla quota desiderata Il led alla sinistra del sensore di colore verde viene acceso quando il drone vola ad una quota inferiore a quella indicata Il led alla destra invece di colore blu e viene acceso quando il drone vola ad una quota superiore Vengono accesi entrambi quando il drone vola alla giusta distanza dal suolo 4 5 6 Schema I collegamenti tra tutte le parti descritte ed Arduino sono riportati in Figura 4 24 4 6 Batterie Le batterie utilizzate nell ambito del nostro lavoro sono di tipo litio polimero pi comunemente indicate come LiPo o Li Poly Questo tipo di batterie pre sentano numerosi vantaggi rispetto alle loro predecessori le batterie litio ione In primo luogo le LiPo sono pi leggere e sagomate poich non necessitano di alcun contenitore metallico Inoltre sempre per lo stesso motivo e per la mancanza di spazi tra le celle la densit energetica delle LiPo maggiore pi del 20 rispetto alle litio ione In questo modo possibile avere batterie piccole e leggere con una grandissima capacit di scarica Vengono largamente utilizzate nell ambito dell aeromodellismo proprio per Architettura hardware puntatore f y puntatore laser J laser ricarica sparo en DO e az E M
21. il drone In particolare abbiamo trovato una corrispondenza numerica tra la massima forza data e la forza della frenata Allo stesso modo esiste una corrispon denza tra la durata della forza applicata e quella necessaria per la frenata 6 8 Funzionamento globale Tutti questi stati vengono attivati secondo una certa priorit in modo tale da attivare solo quello pi utile ai fini del gioco e della sicurezza Tralasciando il controllore di quota che come detto precedentemente sempre attivo in tutte le fasi di gioco e la contromossa necessaria per stabilizzare il drone autonomo stato dato il seguente ordine di priorit 1 Ricarica 2 Gestione ostacoli 3 Inseguimento basato su infrarossi 4 Inseguimento basato sul colore 5 Ricerca dell avversario Il funzionamento facilmente schematizzabile con una macchina a stati riportata in Figura 6 5 L Algoritmo 8 riporta il funzionamento globale della logica di gioco Logica di gioco sconfitta giocatore colpito vittoria giocatore tempo scaduto Fine partita vittoria giocatore atterraggio corretto tempo ricarica tempo ricarica proximity Gestione ostacoli Inseguimento basato su infrarossi Inseguimento basato sul colore no proximity KA gt fine tempo ricarica Figura 6 5 Macchina a stati 89 Capitolo 6 Algoritmo 8 Funzionamento globale if comandoAutomatico then ottieniV aloriSensori
22. int middle_point int iLimit int dLimit bool invert void compute short int i getters amp setters integral float derivative float throttle int decollo bool atterraggio bool fine_atterraggio bool PIDController void getinstance PIDController computeThrottle int getters amp setters Figura 5 6 Diagramma delle classi del modulo FlightManagement Per realizzarla ci siamo basati sul pacchetto ROS Rat che in grado di rac chiudere in un unica finestra pi applicazioni tra cui quelle di altri pacchetti ROS In particolare abbiamo usufruito dei pacchetti RViz e Image View RViz uno strumento di visualizzazione 3D in grado di ricevere diversi tipi di messaggi Tramite esso visualizziamo in tempo reale il modello del drone autonomo il suo orientamento e i dati provenienti dai sensori Con Image View invece vengono ricevute le immagini trasmesse dal drone autonomo stesso L applicazione ascolta i topic range imu infrared e camera image In Figura 5 7 mostrata la visuale fornita dall applicazione di monitoraggio del volo 67 Capitolo 5 Image View DE _ ox Rviz DEQ _ 0 camera image compressed E hy Interact s Move Camera T Select lt Focus Camera m Measure Figura 5 7 Interfaccia di monitoraggio sviluppata 5 2 2 Monitoraggio radiocomando L applicazione considerata utilizzata piu in fase
23. occupa di attuare la decisione presa gestendo il canale di throttle del quadricottero Questa parte utilizza il sonar per stabilire la propria altezza la quale stata filtrata per eliminare possibili errori di lettura Un valore letto non pu avere una differenza maggiore di 40 cm da quello letto precedentemente altrimen ti viene scartato mantenendo l ultimo valore valido Poich la lettura del sonar avviene ad una frequenza di 10 Hz una differenza di quota di 40 cm tra due letture consecutive corrisponde ad una velocit verticale di 4 m s Questa velocit non realistica all interno del gioco e pertanto rappresenta un errore Tuttavia se tale errore persiste per 10 valori consecutivi l ultimo valore letto diventa valido Questo perch una variazione di lettura per pi di un secondo consecutivo rappresenta un dislivello nel terreno Questa possibi lit non dovrebbe mai verificarsi nell ambiente di gioco designato ma stata comunque gestita per sviluppi futuri Per effettuare il controllo di quota stato implementato un controllore di tipo PID Logica di gioco 6 1 1 Controllore PID Il controllore PID un sistema di controllo con retroazione negativa usa to ampiamente nel settore industriale Come tutti i sistemi a retroazione negativa questo controllore in grado di rendere stabile un sistema che al trimenti non lo sarebbe Il motivo principale della sua diffusione la sua robustezza che gli permette di
24. pubblicazione del tempo rimanente per giocare la partita I suoi messaggi sono ascoltati dalla stessa applicazione che ascolta quelli del topic gioco Il messaggio utilizzato di tipo std_msgs String msg ed il formato della stringa inviata minuti secondi 5 1 4 ServerReader Questo modulo completa la parte di comunicazione con le applicazioni ester ne di cui fa parte anche ServerConnection Esso sempre basato su ROS ed ascolta i messaggi pubblicati dal topic remotecommand Questi messaggi sono prodotti da un applicazione creata appositamente che gira sul computer remoto Il messaggio utilizzato di tipo std_msgs String msg Le stringhe che possibile inviare sono e land atterraggio Alla ricezione di questo comando il drone automa tico atterra immediatamente e laser viene mandato ad Arduino il comando di accendere il puntatore laser e enable viene abilitata la lettura dei sensori di prossimit e disable viene disabilitata la lettura dei sensori di prossimit Architettura software e h viene modificata la quota di volo del drone In particolare il co mando h deve essere seguito da un numero che rappresenta la nuova altezza in cm da mantenere Il modulo ascolta costantemente i messaggi e in base al comando con tenuto delega il metodo corretto all esecuzione di tale comando I comandi sconosciuti vengono direttamente scartati Questo modulo stato utilizzato molto in fase di debug ma pu
25. secondo tipo di messaggio contiene le informazioni fornite dalla WiiCam In particolare fornisce le coordinate x y delle quattro sorgenti infrarosse che 59 Capitolo 5 pu rilevare la WiiCam Il formato del messaggio il seguente i x1 yl x2 y2 x3 y3 x4 y4 Questo messaggio viene inviato con una frequenza di circa 50 Hz Il modulo considerato resta sempre in ascolto di nuovi messaggi sulla se riale e una volta capito che tipo di messaggio stato ricevuto manda le informazioni alle classi dedicate che memorizzano correttamente i dati rice vuti Qualunque altro tipo di messaggio viene automaticamente scartato Messaggi ricevuti Arduino pu ricevere alcuni comandi dall elaboratore di bordo in modo tale da compiere determinate azioni In questo caso la comunicazione si basa semplicemente sulla ricezione di un singolo carattere I messaggi possibili sono 60 SPARA quando viene ricevuto questo comando viene azionato il laser per un secondo TROVATO_ROSSO si accendono per un secondo i led di segnala zione del rosso Questo significa che la webcam ha rilevato il drone avversario LASER_RICARICA viene acceso per 30 secondi il laser anteriore di ricarica che mostra al giocatore il centro dell area in cui far atterrare il drone telecomandato SONO_VIVO questo messaggio viene inviato dal nostro programma ogni secondo Se per 3 secondi non viene ricevuto supponiamo che la comunicazione tra Arduino
26. 4 10 prodotto dalla Digicom e permette di aggiunge re quattro porte USB Viene collegato all Odroid tramite un cavo mini USB La cosa pi importante stata alimentare l hub a 5 V poich mantenendo l hub autoalimentato esso non era in grado di fornire la corrente necessaria a far funzionare tutti i dispositivi collegati Abbiamo dunque alimentato l hub tramite il BEC che alimenta anche l Odroid stesso Per eliminare del peso inutile abbiamo smontato l hub togliendo il conteni tore plastico 4 3 4 Montaggio Abbiamo montato l Odroid al di sotto della struttura del drone completo di dissipatore Per fissarlo abbiamo utilizzate delle L metalliche Al di sotto del dissipatore abbiamo posto l hub USB collegato poi all Odroid Per proteggere queste parti delicate in caso di caduta abbiamo aggiunto una gomma al di sotto dell hub Questa gomma ed il dissipatore forniscono un adeguata protezione alla scheda dell Odroid che la parte pi delicata ed importante dell intero sistema 4 3 5 Problematiche Nel corso della tesi abbiamo avuto molteplici problemi riguardanti l Odroid e le periferiche a lui connesse In particolare i problemi pi gravi riguar davano il riavvio improvviso dell Odroid e la mancata risposta ai comandi Entrambi i problemi poi risolti erano dovuti alle forti vibrazioni a cui sottoposto il drone durante il volo Queste vibrazioni provocavano la mancata alimentazione della scheda pe
27. 5 III INDICE C Manuale operatore 117 C 1 Radiocomando sose sora pa p UAS 0 000002 ee eee 117 C 2 Combinazioni comandi per il radiocomando 118 EL IMalbiWll 2 ste eA gle SI Re A CA 118 G 2 2 GIOCO su Da SS Rade a ee ee we 120 IV Sommario L innovazione delle tecnologie informatiche e dell intelligenza artificiale han no permesso negli ultimi anni enormi progressi nell ambito dell interazione tra uomo e robot In particolare l interazione arrivata a un livello di pre cisione tale da proporre giochi robotici i cosiddetti Robogame Dopo un analisi dei giochi esistenti abbiamo ideato un laser game che pre vede l utilizzo di un drone volante autonomo e uno telecomandato da un uomo Il drone autonomo stato interamente costruito nell ambito di que sto lavoro ai fini di creare una macchina robusta anche per applicazioni future L intera tecnologia stata studiata per effettuare le operazioni nel modo migliore per i fini proposti con la particolarit di essere completamente a bordo del drone Nessun sensore esterno fondamentale per il funziona mento autonomo I risultati finali mostrano come l utilizzo di sensori adeguati a bordo di un drone unito allo studio delle dinamiche di volo abbiano permesso di realizzare un drone adatto a creare un gioco particolarmente dinamico e di vertente Parole chiave Quadricottero Drone Autonomo Robogame Sommario VI Abstract During th
28. 79 6 4 Inseguimento basato sul colore 0 80 6 4 1 Risposta del drone 0 0004 83 6 5 Inseguimento basato su infrarossi ooo oa a a 84 INDICE 6 6 6 7 6 8 6 5 1 Fuoco Ricarica Contromossa Funzionamento globale 7 Prove sperimentali 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 Controllore di quota Gestione ostacoli Ricerca dell avversario Inseguimento basato sul colore Inseguimento basato su infrarossi 7 5 1 Fuoco Ricarica As fs ao al es ees Contromossa Funzionamento globale 8 Conclusioni 8 1 Conclusioni 8 2 Sviluppi futuri Bibliografia A Configurazione A l A 2 A 3 A 4 Configurazione Odroid ALL ROS saro fig eer pia A 1 2 OpenCV A 1 3 Cvblob Configurazione pc remoto Configurazione scheda di volo Configurazione Arduino B Manuale Utente B 1 B 2 B 3 B 4 B 5 Esecuzione applicazione di bordo Esecuzione applicazioni del pc remoto B 2 1 Esecuzione applicazione monitoraggio volo Esecuzione applicazione monitoraggio radiocomando Esecuzione applicazione gioco Esecuzione applicazione comandi 85 86 87 88 91 91 94 95 95 97 97 98 99 99 101 101 102 105 107 107 107 108 109 110 110 111 113 113 113 114 114 114 11
29. ART e Micro USB 4 2 1 Installazione L installazione della scheda di volo sulla struttura del drone deve tenere conto delle pesanti vibrazioni a cui viene sottoposta durante il volo Queste vibrazioni devono essere smorzate in modo tale da non essere propagate alla scheda che in caso contrario non potrebbe fare correttamente il suo lavoro Le vibrazioni sono attenuate sia fisicamente che lato software Fisicamente occorre montare la scheda senza fissarla direttamente al frame utilizzando dei distanziali in plastica fissati tramite viti dello stesso materiale oppure in collando la scheda ad un pezzo di gomma a sua volta incollato al frame Un altro modo pu essere quello di utilizzare un dispositivo anti vibrazioni for mato da due piastre plastiche collegate tra loro da speciali gommini smorza vibrazioni Figura 4 4 Figura 4 4 Gommino anti vibrazioni Poich le vibrazioni con il tipo di frame scelto sono molte abbiamo op tato per utilizzare sia la gomma che il dispositivo anti vibrazioni insieme Lato software abbiamo introdotto un filtro ad una certa frequenza sui dati letti dai sensori presenti sulla scheda L insieme di queste soluzioni ha reso il drone completamente esente da vibrazioni 29 Capitolo 4 30 Un altra problematica di cui tenere conto durante l installazione della sche da e l interferenza sul magnetometro provocata dai cavi di alimentazione Le forti correnti che passano attraverso gli ESC per ali
30. POLITECNICO DI MILANO Scuola di Ingegneria Industriale e dell Informazione Dipartimento di Elettronica Informazione e Bioingegneria Corso di Laurea Magistrale in Ingegneria Informatica Sviluppo di un Drone Autonomo per Robogame AI amp R Lab Laboratorio di Intelligenza Artificiale e Robotica del Politecnico di Milano Relatore Prof Andrea Bonarini Tesi di Laurea di Alberto Vettolani Matr 780838 Marco Visconti Matr 782993 Anno Accademico 2012 2013 Alla mia famiglia perche ci siete sempre per me Il primo ringraziamento va ai miei genitori e a mia sorella che mi hanno sempre sostenuto ed incoraggiato durante tutto il periodo di studio univer sitario Durante la tesi non si sono mai tirati indietro alle mie richieste di aiuto Grazie Insieme a loro ringrazio i nonni gli zii le cugine e gli amici di famiglia per essersi sempre interessati a me e al mio lavoro Un ringraziamento agli amici di sempre che mi sono stati vicini durante la tes e con cui mi diverto ogni volta In particolare ringrazio Fuma e Colo per il grandissimo aiuto durante le prove finali del gioco e per il tempo che ci hanno dedicato Ringrazio inoltre tutti gli amici dell universit con cui mi trovo benissimo per i momenti felici e le difficolt superate insieme durante gli studi Vorrei poi ringraziare tutte le persone che durante questo periodo mi hanno chiesto Vetto ma allora vola Ho apprezzato molto il vostro appoggio
31. Un ringraziamento speciale al mio compagno di tesi e amico Visco con cui ho condiviso l ultimo anno di lavoro nelle mille difficolt e nei momenti di gioia Ringrazio inoltre l Oratorio di Merate e l OSGB Merate che ci hanno per messo di utilizzare liberamente la palestra per le prove del gioco Un ringraziamento va poi al professor Bonarini per i consigli e l aiuto che hanno reso possibile questo lavoro e per avermi avvicinato al mondo dei dro ni In ultimo un ringraziamento a tutti i ragazzi dell AirLab per l aiuto e per i bei momenti passati insieme Alberto A mio papa sarai per sempre il mio punto di riferimento Un grazie ai miei genitori per avermi dato la possibilita di intraprendere questi studi Grazie mamma per quest ultimo anno sei una persona buona e ti sei dimo strata pi forte di tutti quanti Un grazie a mia sorella per la pazienza e il supporto dimostrato durante tutti questi anni Ringrazio il mio amico e compagno di avventure Vetto con cui ho affrontato le gioie e i dolori di questo lavoro Un grazie di cuore va a tutte le persone che ho conosciuto qui dentro siete dei veri amici e mi avete dato pi di quanto possiate mai immaginare Un grazie particolare a tutte quelle persone che durante quest ultimo anno mi sono state vicino e che mi hanno aiutato nel momento pi difficile di sempre Non lo dimenticher mai Infine un doveroso ringraziamento va al professor Andrea Bonarini e a tu
32. _msgs Imu BoardRPY void getinstance BoardRpy getters amp setters RC m_rc short int 8 Rpy m_rc_read short int 8 rc_msg quadricoptermt Rc roll short int P pitch short int ACQ void o yaw short int getinstance RC getters amp setters getters amp setters BoardControl re RC BoardControl void getinstance BoardControl readData char buf int dim char code bool checksum uint8_t msg uint8_tlen uint8_t sendRC void iinitSerialCrius bool requestiMU char buf bool requestAttitude char buf bool requestAltitude char buf bool requestMotor char buf bool requestRC char buf bool Motor m_motor short int 4 1 Motor void getinstance Motor getters amp setters Figura 5 1 Diagramma delle classi del modulo BoardManagement Multiwii Serial Protocol Il Multiwii Serial Protocol permette di inviare richieste o comandi alla scheda e di ricevere risposte I messaggi diretti alla scheda sono strutturati come e Tre byte contenti i caratteri M lt e Un byte che rappresenta il numero N di byte aggiuntivi da inviare e Un byte con il codice del comando e N byte di dati da inviare e Un byte di checksum Tre byte contenti i caratteri M gt e Un byte con il codice del comando messaggi provenienti dalla scheda sono invece strutturati come e Un byte
33. ades E Rogin and B He Quadcopter control in three dimensional space using a noninvasive motor imagery based brain computer interface Journal of Neural Engineering 10 2013 20 P J Bristeau F Callou D Vissire N Petit The navigation and control technology inside the ar drone micro uav 18th IFAC World Congress pages 1477 1484 2011 Appendice A Configurazione A 1 Configurazione Odroid Sul computer di bordo stato installato il sistema operativo Ubuntu Linaro versione 12 11 L utente principale linaro con password linaro Di seguito vengono riportati tutti i pacchetti software e le configurazioni necessarie per il funzionamento della nostra applicazione Viene comunque fornita l immagine del sistema completamente funzionante A 1 1 ROS La versione ROS utilizzata quella ros groovy ros base la quale contiene tuttii pacchetti base necessari per la comunicazione Il comando da eseguire nel terminale il seguente sudo apt get install ros groovy ros base Prima di utilizzare ROS necessario installare anche rosdep sudo apt get install python rosdep sudo rosdep init rosdep update Infine per avere automaticamente le variabili di ambiente ogni volta che si apre il terminale va eseguito questo comando echo source opt ros groovy setup bash gt gt bashre source bashre 108 Appendice A Configurazione Dopo aver installato ROS si proc
34. are tramite valori HSV il colore rosso dall immagine video catturata frame In questo modo stato possi bile isolare il colore del drone telecomandato dal resto dell immagine stato scelto questo colore perch poco diffuso rispetto ad altri A causa di come OpenCV ottiene i valori HSV stato necessario unire due differen ti filtri di colore In questo modo abbiamo ottenuto un buon intervallo di tonalit saturazione e valore con cui siamo riusciti a individuare la scocca del drone telecomandato anche sotto diverse condizioni di luce Per sempli ficare il tracciamento del colore rosso stata utilizzata la libreria cvBlob 5 che fornisce facili strumenti per l analisi della forma di colore riconosciuta Per eliminare il pi possibile falsi sono stati infatti utilizzati due filtri uno sulla forma e uno sull area Il filtro sulla forma serve a determinare solo gli oggetti rettangolari corri spondenti alla scocca del drone telecomandato Il filtro dell area serve invece a determinare la sua grandezza limitando ul teriormente i falsi Grazie a questa analisi delle immagini riusciamo ad ottenere tutti i rettango li rossi che si trovano dai 4 ai 12 metri di distanza Abbiamo filtrato questi rettangoli al di sotto dei 4 metri perch sotto questa distanza interviene l inseguimento basato su infrarossi Poich il drone telecomandato uno solo se sono presenti pi rettangoli con quelle caratteristiche blob viene scelt
35. are di dotare il sistema di una mappa Al mo mento infatti il drone si muove in un ambiente completamente sconosciuto che rimane tale per tutta la partita Con un sistema di posizionamento si potrebbe costruire una mappa dell ambiente a partire dalle immagine ana lizzate dalla webcam e dai sensori di prossimit Questo porterebbe ad un notevole miglioramento della strategia di ricerca e della gestione degli osta Conclusioni coli all interno del gioco Nel gioco vero e proprio si potrebbero pensare ulteriori strategie per la ricerca del drone avversario utilizzando sempre tutti e quattro i canali di roll pitch yaw e throttle disponibili che danno una notevole liberta di mo vimento Si potrebbero prevedere alcuni livelli di difficolt da impostare prima dell ini zio della partita in base all esperienza del giocatore umano oppure nel corso della stessa in base alla risposta del giocatore Le difficolta si potrebbero basare sull aggressivit della ricerca e sulla precisione dell inseguimento che diventa sempre migliore con l aumentare del livello L ultimo aspetto da considerare potrebbe essere quello di trasformare il gio co singolo in un gioco a squadre con la presenza di pi droni avatar e pit droni autonomi che collaborano intelligentemente al fine di creare una vera e propria battaglia laser 103 Capitolo 8 104 Bibliografia 10 11 12 13 14 15 ARDrone 2 0 Parrot Web
36. ati da altri moduli per raggiungere il loro scopo L unico comando che inviamo alla scheda il comando di MSP_SET_RAW_RC Esso serve per settare i valori degli otto canali del radiocomando in modo tale da simularlo In questo modo possiamo fornire i comandi via seriale alla scheda di volo che li processa come se arrivassero dal radiocomando vero e proprio Per ogni canale dobbiamo inviare due byte che rappresentano il suo valore Dopo aver ricevuto il messaggio il Multiwii risponde inviando una conferma Poich il comando di settaggio del radiocomando viene mandato in ma niera asincrona rispetto alle richieste abbiamo utilizzato un lock per evitare interferenze nei messaggi In particolare una risorsa che intende inviare un comando o una richiesta alla scheda acquisisce il lock prima dell invio attende il suo messaggio di risposta e poi rilascia il lock Architettura software 5 1 2 SensorManagement La comunicazione tra Arduino e l elaboratore avviene come nel caso della scheda di volo in maniera seriale su bus USB I due componenti sono infatti collegati tramite un cavo mini USB Il protocollo di comunicazione per differente rispetto al precedente In particolare Arduino non aspetta nessun messaggio di richiesta ma invia immediatamente i dati appena sono disponibili e rimane sempre in attesa di comandi da parte dell Odroid In figura 5 2 riportato il diagramma delle classi di questo modulo Wiiln
37. ccessivamente la rete i dati sono pubblicati con frequenza pari a 6 Hz In figura 5 3 e riportato il diagramma delle classi di questo modulo Wiilnfrared Proximity BoardRPY ServerConnection GameControl RC Cameralmage Figura 5 3 Diagramma delle classi del modulo ServerConnection Topic range Il topic range si occupa della pubblicazione dei dati riguardanti i sensori di prossimit e il sonar Per ogni sensore viene utilizzato il messaggio sensor_msgs Range msg 13 61 Capitolo 5 62 fornito da ROS e definito come segue uint8 radiation_type float32 field_of_view float32 min_range float32 max_range float32 range Topic imu Il topic imu si occupa della pubblicazione dei dati provenienti dalla IMU Il messaggio utilizzato di tipo sensor_msgs Imu msg 11 fornito da ROS e definito come segue geometry_msgs Quaternion orientation geometry_msgs Vector3 angular_velocity geometry_msgs Vector3 linear_acceleration Poich i dati forniti dalla nostra IMU sono in un formato differente abbiamo provveduto a convertirli per poterli pubblicare correttamente Topic infrared Il topic infrared si occupa della pubblicazione di marcatori che segnalano se e dove sono state viste sorgenti infrarosse Si occupa inoltre di pubblicare un marcatore che segnala l individuazione del rosso da parte della webcam Sono presenti quattro marcatori per gli infrarossi circolari di color
38. che rappresenta il numero N di byte inviati dalla scheda e N byte di dati inviati e Un byte di checksum Il checksum viene calcolato come lor esclusivo bit a bit delle varie componenti del messaggio esclusi i primi tre byte 57 Capitolo 5 58 Messaggi scambiati Nell ambito del nostro lavoro abbiamo utilizzato tre messaggi di richiesta ed un messaggio di comando In questo modo possiamo controllare tutti gli aspetti che interessanti del volo ed inviare i comandi alla scheda Le richieste utilizzate sono e MSP_RAW_IMU vengono richiesti alla scheda tutti i dati prove nienti dalla IMU In particolare otteniamo come risposta nove byte che rappresentano i valori di accelerometro giroscopio e magnetometro per ognuno dei tre assi sui quali lavorano e MSP_ATTITUDE vengono richiesti gli angoli di inclinazione del drone Otteniamo come risposta due byte per ogni angolo che rap presentano quanto piegato sugli assi di roll e pitch e dove orientato rispetto al nord Questi valori vengono calcolati direttamente dalla scheda a partire dai dati rilevati dalla IMU e MSP_RC viene richiesto lo stato del radiocomando Otteniamo co me risposta due byte per ognuno degli otto canali del radiocomando Grazie a questa richiesta possiamo controllare se l interruttore fisico impostato su manuale o automatico ed agire di conseguenza I valori ricevuti dalla varie richieste vengono salvati in classi specifiche e sono utilizz
39. co Caratteristica principale del robot autonomo non solo il saper reagire alle mosse del giocatore ma anche dimostrare di essere intelligente elaborando tattiche e strategie Il fattore divertimento legato anche alla difficolt del gioco stesso Un gioco troppo facile in cui il robot autonomo non sufficientemente competi tivo non d stimoli Viceversa se troppo difficile pu spazientire il giocatore indispensabile trovare il giusto equilibrio per creare un livello di sfida ot timale Come in ogni gioco esistono delle regole da rispettare che devono essere definite a priori Queste regole devono essere rispettate sia dal giocatore umano sia dal robot autonomo I ricercatori dell AIRLAB del Politecnico di Milano hanno sviluppato in siame agli studenti alcuni giochi con robot autonomi classificabili come Robogame Shooter Game Questo gioco nasce come l evoluzione dei classici videogame sparatutto Il robot autonomo ha l obiettivo di portare un messaggio alla base principale mentre il giocatore umano ha l obiettivo di contrastarlo utilizzando delle armi Queste armi danneggiano il robot autonomo fino a immobilizzarlo Se feri to il robot pu raggiungere delle basi amiche sparse sul percorso in cui ha 13 Capitolo 2 14 la possibilit di ripararsi restando immune dai colpi dei giocatori Inoltre gli consentito utilizzare un raggio che disabilita le armi dei giocatori per un certo lasso di tempo
40. colo d impatto il giocatore deve far atterrare il drone telecomandato Il gioco riparte riportando i due droni al punto di partenza e Il drone autonomo necessita di un pilota il quale deve intervenire attraverso il telecomando solo in caso di pericolo riportandolo in una posizione sicura Durante questa fase il drone non pu sparare 18 Struttura del gioco e Durante la partita sia il giocatore sia il pilota devono stare sul campo di gioco senza interferire con lo svolgimento del gioco stesso e Il tempo di gioco di 5 minuti dovuti alla limitata autonomia ener getica dei droni e Il drone autonomo spara attivando il laser solo quando il drone tele comandato allineato con esso e distante tra i 220 cm e i 280 cm Se viene colpito il giocatore perde e il gioco termina e Il drone autonomo deve atterrare una sola volta tra i 2 e i 3 minuti di gioco per 30 secondi In questa fase se il drone telecomandato atterra di fronte a lui orientato nello stesso modo e tra i 120 e i 170 cm di distanza segnalata da un laser il giocatore vince e il gioco termina Altrimenti viene emesso un segnale audio per indicare la ripartenza del drone autonomo Quando viene emesso questo suono il drone telecomandato deve allontarsi dal drone autonomo e il gioco riprende e Terminato il tempo di gioco se il drone autonomo non ha colpito quello telecomandato il giocatore vince 3 2 Agenti x Come gi introdotto precedentemente il
41. cosa percepisce il drone in ogni momento abbiamo deciso di installare alcuni led di segnalazione Architettura hardware Figura 4 22 laser anteriori montati sul drone I led sono montati sul retro del drone in modo tale da essere sempre ben visibili alla persona che controlla il corretto funzionamento del drone in au tonomia In questo modo infatti la persona in questione pu sempre sapere se il drone in una situazione di pericolo ed intervenire tempestivamente senza aver bisogno di guardare un pc Figura 4 23 led posteriori presenti AT Capitolo 4 48 I led presenti Figura 4 23 sono divisi in due gruppi Il primo gruppo e composto da quattro led rossi di cui tre allineati ed uno centrato sotto di essi I tre led allineati forniscono un informazione su cosa il drone stia vedendo I due led sui lati vengono accesi quando la webcam riconosce il drone avver sario Il led centrale della stessa fila invece viene acceso quando la WiiCam per cepisce delle sorgenti infrarosse nel suo raggio di azione Il led sotto di essi il pi importante di tutti in termini di sicurezza poich viene acceso quando Arduino non comunica pi con il software a bordo di Odroid In questa situazione occorre uscire immediatamente dalla modalit automatica ed atterrare manualmente poich il sistema di controllo del dro ne non ha pi a disposizione nessun sensore che gli permetta di capire cos ha intorno a s Il secondo
42. d ed aprire l interfaccia di Arduino Tramite il menu Strumenti A 4 Configurazione Arduino 111 Tipo di Arduino bisogna selezionare Arduino Mega 2560 or Mega ADK A questo punto si puo caricare lo sketch fornito nella cartella MultiwiiSketch A 4 Configurazione Arduino Tramite l interfaccia di Arduino aperta dall Odroid scegliere Arduino Nano w ATmega 168 dal menu Strumenti Tipo di Arduino A questo punto si pu caricare lo sketch fornito nella cartella ArduinoSketch 112 Appendice A Configurazione Appendice B Manuale Utente B 1 Esecuzione applicazione di bordo I seguenti comandi vengono svolti sull Odroid Il metodo per collegarsi al computer di bordo lasciato al lettore Nel nostro caso sono stati utilizzati sia un desktop remoto che il protocollo ssh Per accedere tramite il desktop remoto bisogna connettersi tramite protocollo vnc all indirizzo IP dell O droid La password per accedere vutesi Prima di far partire il gioco necessario eseguire roscore cio l applicazione centrale del sistema ROS Da un terminale roscore Per avviare l applicazione di bordo sufficiente eseguire da un altro ter minale il seguente comando rosrun quadricoptermt server Per interrompere il programma premere 0 e il tasto Invio dallo stesso terminale in cui in esecuzione l applicazione Attenzione se il programma viene terminato durante il volo si spengono i mot
43. di debug permette di vi sualizzare agilmente lo stato del radiocomando in modalit automatica In particolare visualizza a schermo i valori che l applicazione principale ha cal colato per i canali di roll pitch yaw e throttle che permettono il volo au tonomo del drone Il nodo ROS presente il nodo listener che ascolta il topic rc 5 2 3 Invio comandi Questa applicazione permette di trasmettere al drone autonomo alcuni co mandi che verranno poi eseguiti dal software di bordo Il nodo ROS dell applicazione il nodo commander che pubblica i dati sul topic remotecommand I comandi possibili sono stati trattati nel dettaglio precedentemente 5 2 4 Applicazione di interfaccia del gioco L applicazione di interfaccia del gioco si presenta con una finestra che mostra un timer e con segnalazioni sonore relative ai vari eventi Figura 5 8 Il giocatore essendo concentrato nel pilotaggio del drone non pu seguire costantemente uno schermo che mostra lo stato del gioco e quindi abbiamo predisposto alcuni suoni che gli facciano capire che cosa stia succedendo In particolare vengono riprodotti dei suoni nelle seguenti situazioni e Inizio del gioco e Fine del gioco 68 Architettura software e Il drone autonomo spara il laser e Il drone autonomo colpisce quello telecomandato e Il drone autonomo sta per atterrare perch ha terminato l energia di gioco e Il drone autonomo sta per decollare Il nodo ROS presen
44. do l altezza relativa H tra drone autonomo e telecomandato L altezza relativa H viene calcolata utilizzando la lunghezza focale f la distanza Z la coordinata verticale obiettivo h e quella attuale h La coordinata obiettivo h rappresenta la coordinata relativa all asse ver ticale in cui il drone colpisce il centro della scocca avversaria a 250 cm di distanza nel sistema di riferimento della WiiCam h invece il valore medio delle coordinate relative all asse verticale delle sorgenti infrarosse individua te dalla WiiCam Al controllore di quota verr quindi settata una nuova altezza pari a quella attuale rilevata dal sonar sommata all altezza relativa H calcolata Per far funzionare entrambi i PID sono necessarie esattamente due fonti infrarosse altrimenti la lettura non viene considerata valida e si rientra in uno degli altri stati del gioco Con una sola fonte infrarossa non possibile stabilire la distanza alla quale si trova il drone e nemmeno la sua altezza relativa Il caso in cui si rilevano tre o quattro fonti viene interpretato come un erro re poich non possibile vederle contemporaneamente sul drone avversario L Algoritmo 5 mostra il funzionamento sopra descritto 6 5 1 Fuoco Questa fase viene attivata solamente quando il drone autonomo si trova alla distanza corretta da quello telecomandato Portatosi ai giusti valori grazie all inseguimento con infrarossi il drone deve attivare il laser
45. e il drone lungo la direzione dell ultima mossa eseguita Resta comunque insufficiente a fermarlo completamente in quanto vi sono dei movimenti incontrollabili che non possono essere individuati e quindi controbilanciati dal drone stesso 7 8 Funzionamento globale Per quanto riguarda il funzionamento globale sono stati effettuati sia test che verificano il giusto flusso logico per il funzionamento del drone autonomo che test per misurare il divertimento da parte del giocatore I test eseguiti sul flusso logico non fanno emergere problemi per quanto ri guarda i cambiamenti di stati Ogni stato si comporta correttamente e viene chiamato in causa al momento opportuno L unico problema presente che il drone autonomo esegue dei movimenti impossibili da rilevare con i sensori montati a bordo e quindi impossibili da compensare Sono movimenti minimi ma che con l avanzare del tempo fanno acquisire una certa velocit molto difficile da frenare autonomamente In quasi tutti i test risultato almeno un intervento da parte dell operatore specializzato proprio per questo motivo Per quanto concerne il divertimento del giocatore si notata una diffi colt nella vittoria soprattutto per giocatori che provano il gioco le prime volte Quando il giocatore prende abbastanza dimestichezza con i comandi 99 Capitolo 7 100 del drone telecomandato e quando capisce i movimenti che effettua il drone autonomo per inseguirlo o per cercar
46. e il nostro sofware si sia interrotta per qualche motivo In questo caso si accende un led di segnalazione CAMBIO ALTEZZA quando viene ricevuto un byte il cui valore compreso tra 1 e 50 significa che cambiata la quota di volo che il drone deve mantenere La nuova quota in centimetri viene trovata moltiplicando il valore ricevuto per 10 Questa indicazione ci permette di accendere adeguatamente i led di segnalazione dell altezza per poter capire molto intuitivamente se il drone sta volando alla giusta quota Architettura software Il led per la segnalazione degli infrarossi viene invece gestito direttamente da Arduino senza passare per il software principale Questo led infatti viene acceso automaticamente quando la WiiCam rileva almeno una sorgente infrarossa valida 5 1 3 ServerConnection La comunicazione con le applicazioni esterne avviene tramite ROS Il nodo ROS presente nell applicazione il nodo server Lo scopo di questo modulo quello di pubblicare periodicamente tutti i dati di telemetria visualizzati tramite un PC remoto per controllare il corretto svolgimento del volo e del gioco I dati che vengono pubblicati sono precaricati in strutture dati specifiche prima di essere inviati I dati pubblicati vengono ricevuti da alcune applicazioni presenti sul PC remoto che restano in ascolto dei topic interessati I topic utilizzati sono range imu infrared rc camera image gioco e tempo Per non sovraccaricare e
47. e last years information technologies and artificial intelligence in novation has allowed huge progress in the interaction between humans and robots Especially the interaction is now so precise that it is possible to offer the so called Robogame We examined the existing games and then we designed a laser game which consists in using a flying autonomous drone and a remote controlled one We built the whole autonomous drone in order to create a solid machine which could also be used for future applications The whole technology has been worked out in order to fulfil procedures in the best way it has a peculiarity it is situated on the drone No external sensor is essential for the autonomous functioning Final outcomes show how using suitable sensors on the drone together with the study of flight dynamics allowed us to build a drone suitable to create a really dynamic and funny game Keywords Quadcopter Drone Autonomous Robogame Capitolo 1 Introduzione La novita ha per noi un fascino al quale difficilmente possiamo resistere Charles de Saint Evremond Scopo di questo lavoro lo sviluppo di un drone autonomo in grado di realizzare un gioco robotico Robogame 17 Il gioco consiste in una rivisitazione dell ormai classico laser game in cui un giocatore umano controlla un drone telecomandato il quale deve fuggire dal drone autonomo costruito L area dei robogame quella parte della Robotica che studia l int
48. e quando il drone in modalit au tomatica ed attivo il software di bordo Per cominciare l atterraggio occorre semplicemente tirare verso di s l inter ruttore di AUX2 e rilasciarlo subito dopo
49. e un assistenza in tempo reale 34 Architettura hardware 4 3 2 Piattaforme concorrenti Sul mercato sono presenti piattaforme analoghe a quella scelta ma che si differenziano per alcune caratteristiche che le rendono meno adatte o meno performanti Le principali concorrenti al momento della scelta della piattaforma erano Odroid X2 Raspberry Pi e pcDuino Odroid X2 Il primo concorrente prodotto dalla stessa Hardkernel e si differenzia prin cipalmente per la presenza di sei porte USB contro le due dell U2 Presenta poi una scheda grande quasi quattro volte l altra e un prezzo pi alto del 50 Nonostante le porte USB in pi costituissero un buon motivo per sce gliere questa versione i 50 di differenza sono esagerati e non corrispondono ad un aumento effettivo delle prestazioni mentre le dimensioni avrebbero creato problemi a bordo Raspberry Pi Tra i prodotti concorrenti dell Odroid il Raspberry Pi il pi famoso e dif fuso Il suo punto di forza sta nel prezzo bassissimo appena 35 e nella comunit che lo segue La documentazione presente online infatti molto sviluppata ed accompagnata da innumerevoli esempi di utilizzo e progetti svolti Il principale svantaggio rispetto all Odroid sta nella configurazione hard ware Il Raspberry infatti monta un processore ARM1176JZF S single core famiglia ARM11 a 700 MHz e un processore grafico Broadcom VideoCore IV La memoria ram disponibile d
50. e verde Il marcatore del rosso invece quadrato e di colore rosso Il loro posizionamento stato studiato in modo tale da rendere immediata l idea di dove si trovino rispetto alla prua del drone automatico Il messaggio utilizzato di tipo visualization msgs Marker msg 12 fornito da ROS e definito come segue int32 type geometry_msgs Pose pose geometry_msgs Vector3 scale std msgs ColorRGBA color duration lifetime Architettura software Topic rc Il topic re si occupa della pubblicazione dei valori di roll pitch yaw e th rottle calcolati Questi sono i valori che vengono forniti alla scheda di volo per permettere il corretto svolgimento del gioco A differenza degli altri messaggi questi non sono ascoltati da Rqt ma da un applicazione che abbiamo creato ad hoc Grazie a questa applicazione possiamo monitorare agilmente i comandi ed agire tempestivamente in caso di errori Il messaggio utilizzato di tipo Rc msg che abbiamo creato appositamente poich non ne esisteva uno adeguato fornito da ROS Il messaggio definito come segue uint16 roll uint16 pitch uint16 yaw uint16 throttle Topic camera image Il topic camera image si occupa della pubblicazione delle immagini prove nienti dalla webcam Esso basato sull utilizzo di image transport 10 la cui parte fondamentale la matrice contenente l immagine da pubblicare Topic gioco Il topic gioco si occu
51. ed essere sufficientemente maneggevole Con questo tipo di configurazione possibile far volare il drone con un peso complessivo di 1700 g 4 2 Scheda di volo La scheda di volo il componente fondamentale per quanto riguarda tutta la gestione dei motori e del volo Tramite il software al suo interno ha infatti il compito di gestire adeguatamente i comandi ricevuti dal radiocomando e di fornire la giusta potenza ad ogni motore Grazie ai sensori di bordo tra cui accelerometri giroscopi e magnetometro in grado di stabilizzare il volo del drone e di controllare la corretta esecu zione dei comandi L accelerometro misura le accelerazioni sui 3 assi x y e z e grazie a questi valori il controllore in grado di calcolare gli angoli di inclinazione relativi agli assi di pitch e roll Il giroscopio misura invece la velocit angolare sui 3 assi Il magnetometro misura l intensit del campo magnetico sempre sui 3 assi e a partire da questi valori il controllore calcola l angolo relativo all asse di yaw In commercio c una grandissima varieta di schede di volo le quali si diffe renziano per il loro prezzo il software installabile e per la quantita e qualita 27 Capitolo 4 28 dei sensori presenti I software open source pi utilizzati sono il Multiwii e l Arducopter Questi software hanno molte caratteristiche in comune ed entrambi hanno una buona documentazione presente sul web e un buon seguito di svilu
52. ede creando la cartella di workspace mkdir p workspace sre cd workspace sre catkin_init_workspace All interno del workspace necessario copiare il contenuto della cartella OdroidSW Successivamente per compilare il codice si utilizza il seguente comando cd workspace catkin_make Per quanto riguarda la comunicazione di rete vanno svolti questi coman di echo export ROS_IP proprio_indirizzo gt gt bashre echo export ROS_MASTER_URI http proprio_indirizzo 11311 gt gt bashre A 1 2 OpenCV Per installare le OpenCV dobbiamo prima di tutto configurare il sistema installando alcune dipendenze sudo apt get update sudo apt get y install build essential cmake pkg config sudo apt get y install libjpeg62 dev sudo apt get y install libtiff4 dev libjasper dev sudo apt get y install libgtk2 0 dev sudo apt get y install libavcodec dev libavformat dev libswscale dev libv4l dev sudo apt get y install libdc1394 22 dev sudo apt get y install libxine dev libgstreamer0 10 dev libgstreamer plugins base0 10 dev sudo apt get y install python dev python numpy sudo apt get y install libtbb dev sudo apt get y install libgt4 dev Si passa poi al download vero e proprio della versione di OpenCV voluta nel nostro caso la versione 2 4 4 A 1 Configurazione Odroid 109 mkdir opencv cd opencv wget http so
53. ente per portare al centro il blob trovato poich la webcam non stabilizzata Infatti muo vendosi in avanti l inclinazione della webcam non permette di vedere il blob nella sua corretta posizione Per quanto riguarda il centro nell asse y inve ce questa fase si occupa di incrementare o diminuire il setpoint del gestore della quota solamente quando il blob si trova nella prima o ultima riga della griglia L Algoritmo 4 descrive quanto spiegato Algoritmo 4 Inseguimento basato sul colore Require blob if blob then x ottieniGriglia_x blob y ottieniGriglia_y blob if y limiteSuperioreGriglia y limiteInferioreGriglia then PIDh gt setH altezzaAttuale cambiamentoAltezza end if yaw yaw Base calcolaForzaYaw x if x centroGriglia then pitch pitchBase forzaPitchAvanzamento end if ultima_x x else if blob amp amp tempoTrascorsoUltimoBlob lt limiteTempoScomparsaBlob then if ultima_x limiteDestroGriglia ultima_x limiteSinistroGriglia then yaw yawBase forzaY aw end if end if 83 Capitolo 6 84 6 5 Inseguimento basato su infrarossi Questa fase avviene quando il drone autonomo individua delle sorgenti in frarosse che si assume siano i led posti sul drone telecomandato Scopo della fase quello di allinearsi perfettamente con il drone avatar a una de terminata distanza Viene utilizzata la WiiCam che con la sua velocit riesce a segu
54. erano praticamente inesistenti Architettura hardware In seguito sono uscite altre schede Intel Galileo Arduino YUM YU DOO ecc che rimangono comunque a prestazioni inferiori a Odroid 4 3 3 Componenti aggiuntivi Per poter lavorare correttamente Odroid ha bisogno di alcuni componenti aggiuntivi che ne aumentino le funzionalit Scheda microSD Il sistema operativo di Odroid deve essere installato su una scheda micro SD poi riposta nell apposito slot Abbiamo scelto di utilizzare una scheda microSD da 16 GB classe 10 per avere uno spazio disponibile considerevole ed una buona velocit di lettura e scrittura Modulo Wi Fi Il modulo Wi Fi esterno un componente molto importante del sistema Odroid infatti non dotato di un modulo Wi Fi integrato ed quindi fondamentale aggiungergli questa caratteristica con un modulo esterno Il modulo scelto Figura 4 9 basato sul chip Realtek RTL8191SU ed completamente compatibile con Odroid Grazie ad esso possibile sfruttare la connessione Wi Fi che ci permette di monitorare il gioco da remoto a Figura 4 9 Modulo Wi Fi Hub USB Poich l Odroid dispone solo di due porte USB stato necessario aggiun gere un hub USB per incrementare fino a cinque il numero totale di porte utilizzabili In tutto abbiamo quattro dispositivi connessi all Odroid tramite porta USB 37 Capitolo 4 38 Figura 4 10 Hub USB Digicom L hub scelto Figura
55. erazio ne tra persone e robot autonomi in attivit ludiche In questo ambito alle problematiche tipiche della robotica autonoma in particolare mobile si ag giungono quelle dell interazione persona robot Human Robot Interaction HRI in cui il robot per svolgere il suo compito deve coinvolgere la persona in un attivit interessante e divertente Questo compito richiede particolare attenzione alle modalit di interazione Nei robogame il giocatore pu interagire direttamente oppure attraverso un avatar come nel caso che abbiamo trattato molto importante che il robot abbia una risposta tempestiva e intelligente per rendere il gioco interessante I multirotori cio velivoli dotati di almeno tre motori stanno assumen do sempre pi importanza soprattutto nell ambito delle riprese in volo ma anche per l esplorazione e per il semplice divertimento nel pilotarli Tra i multirotori esistenti abbiamo scelto di sviluppare ex novo un drone dotato di quattro motori quadricottero che garantisca un buon rapporto Capitolo 1 qualita prezzo in termini di stabilit e capacita di carico ed offra buone ca pacita di calcolo per elaborare dati dai sensori e dalla camera e guadagnare una piena autonomia Il robogame che abbiamo sviluppato consiste in un drone autonomo che insegue e spara colpi laser a uno telecomandato il quale deve evitare di essere colpito Ideato per ambienti chiusi questo gioco particolarmente adatt
56. ere installato ROS la cui versione per ros groovy desktop full In questo modo sono presenti tutti i pacchetti utili per gli scopi del pe remoto e molti altri non indispensabili Per installare que sta versione eseguire il comando da terminale sudo apt get install ros groovy desktop full Eseguire poi la stessa procedura usata per l installazione di ROS su Odroid con l unica differenza di copiare nel workspace il contenuto della cartella RemoteSW Andare poi nella cartella opt ros groovy stacks robot_model_tutorials urdf_tutorial e copiare al suo interno il contenuto della cartella ModelQuadri Per quanto riguarda la comunicazione via rete vanno svolti questi comandi echo export ROS_IP proprio_indirizzo gt gt bashre echo export ROS_MASTER_URI Hhttp indirizzo_Odroid 11311 gt gt bashre Come ultima cosa necessario copiare il contenuto della cartella Sounds e quello della cartella RVizConfiguration A 3 Configurazione scheda di volo Sulla scheda di volo occorre caricare il software di volo scelto ovvero il Mul tiwii La versione che abbiamo utilizzato e modificato nel nostro lavoro la 2 2 scaricabile dall indirizzo http code google com p multiwii downloads list Poich la scheda utilizzata ha a bordo un microcontrollore ATMega2560 il software si carica attraverso l interfaccia di Arduino Collegare quindi la scheda di volo ad un pc oppure farlo direttamente dal POdroi
57. eria Figura 4 25b invece serve per alimentare 1 Odroid e tutta l elettronica presente La scelta ricaduta sulla Turnigy nano tech 1000 mah 20 40C da 7 4 V 2 celle soprattutto per il suo peso di 51 g Poich l Odroid lavora a 5 V abbiamo utilizzato un BEC per trasformare i 7 4 V nominali della batteria in 5 V stabili Oltre all Odroid questa batteria alimenta l hub usb Arduino e tutti i sensori presenti Con tutti i compo nenti connessi e funzionanti la batteria ha una durata di circa 45 minuti I connettori utilizzati sul drone e sulle batterie sono di tipo TRX Figura 4 26 Questi connettori sono risultati i migliori tra quelli testati poich Architettura hardware a TRX Maschio b TRX Femmina Figura 4 26 Connettori TRX garantiscono un ottima tenuta contrariamente ad esempio ai connettori mini tamiya 4 7 Radiocomando Il radiocomando un dispositivo che permette di comandare a distanza il drone utilizzando le onde radio come mezzo di trasmissione Nell ambito del nostro lavoro viene utilizzato per fornire il comando di decollo e di atterraggio al drone autonomo e per ragioni di sicurezza In qualunque momento infatti possibile passare alla modalit manuale con uno specifico interruttore presente sul radiocomando stesso potendo cos pilotare manualmente il drone Figura 4 27 Radiocomando Spektrum DX5e Il trasmettitore scelto lo Spektrum DX5e Modo 2 Figura 4 27 poich possiede i
58. esto tipo di sensore per poter tracciare e seguire correttamente un altro drone con a bordo dei led infra rossi La velocit del sensore infatti permette di rilevare anche il minimo spostamento potendo cos reagire tempestivamente con il drone autonomo Davanti alla WiiCam abbiamo montato un pezzo di plastica scura prove niente dallo stesso WiiMote Questo non permette ai raggi infrarossi pi deboli di filtrare all interno del sensore e di venire riconosciuti come fonti infrarosse In questo modo ad esempio i raggi solari non interferiscono con il funzionamento della WiiCam Il sensore stato montato su due servo in cascata Figura 4 19 che costituiscono un sistema di gimbal I servo collegati alla scheda di volo permettono di mantenere sempre il giusto allineamento del sensore che non risente dunque dell inclinazione del drone Architettura hardware Figura 4 19 La WiiCam montata sui servo Circuito per Arduino Il sensore dispone di un interfaccia I2C che pu essere letta facilmente da un microcontrollore nel nostro caso Arduino Contrariamente al sonar e ai sensori di prossimit la WiiCam un disposi tivo che opera alla tensione di 3 3 V E quindi necessaria una conversione dai 5 V di Arduino ai 3 3 V del sensore Per fare questo occorrono due diodi in serie che trasformano i 5 V in circa 3 6 V da dove il sensore prende la sua alimentazione Davanti CLK SCL GND 3 3V ddd RESET SDA N C GND
59. frared ArduinoControl SensorManagement points InfraredPoint 4 wii Wiilnfrared n_valid short int Fproximity Proximity valid bool minPoint InfraredPoint ArduinoControl void maxPoint InfraredPoint getinstance ArduinoControl m_distance int decodeArduinoMessage string void m_height_rel int writeToArduino uint8_t msg bool shootLaser void Wiilnfrared void findRed void getinstance Wiilnfrared landLed void Proximity computeDistance void getters amp setters distance int 4 sonar int distance_alert bool 4 alert bool InfraredPoint sonar_trend int proximity_enable bool m_x int ros_distance sensor_msgs Range 4 m_y int ros_sonar sensor_msgs Range m_valid bool Proximity void getinstance Proximity getters amp setters marker visualization_msgs Marker getters amp setters Figura 5 2 Diagramma delle classi del modulo SensorManagement Messaggi inviati I messaggi che vengono inviati da Arduino sono messaggi di testo e possono essere di due tipi distanza ed infrarossi Il primo tipo di messaggio contiene tutte le distanze lette dai quattro sensori di prossimit e dal sonar Il formato del messaggio il seguente p distanzal distanza2 distanza3 distanza4 distanza_sonar Questo messaggio viene inviato con una frequenza di circa 25 Hz Il
60. gioco composto da due agenti robotici un drone autonomo e un drone telecomandato 3 2 1 Drone autonomo Il drone autonomo stato costruito interamente nell ambito della nostra tesi Tutte le scelte HW SW sono state effettuate per seguire le specifiche del gioco e sono descritte nel dettaglio nei prossimi capitoli Il drone autonomo deve essere in grado di compiere le seguenti macro azioni e Decollo il drone decolla autonomamente portandosi ad una quota determinata e Ricerca il drone inizia la ricerca dell avversario all interno di un am biente di gioco non conosciuto e Gestione ostacoli il drone evita gli ostacoli portandosi a una distanza di sicurezza e Inseguimento il drone si avvicina all avversario allineandosi con esso 19 Capitolo 3 e Fuoco il drone attiva il laser e riconosce se ha colpito o meno l avver sario e Atterraggio il drone atterra autonomamente e spegne i motori 3 2 2 Drone telecomandato Il drone telecomandato scelto per il nostro gioco l ARDrone 2 0 dell azien da francese Parrot Figura 3 1 20 Figura 3 1 AR Drone 2 0 Parrot stato scelto questo drone per la sua estrema facilit di utilizzo Basta provarlo pochi minuti per apprendere le tecniche di volo basilari per il gioco Le sue caratteristiche sono e Dimensioni 51 5 x 51 5 cm con scocca e Peso 436 g con scocca e Velocit massima 18 Km h e Quota massima 50 m Le caratteristic
61. gioco I casi trattati sono schematizzati in Figura 6 2 Le azioni intraprese dal drone sono suddivise in base al numero di rile vazioni contemporanee e 1 ostacolo casi 1 2 3 4 il drone autonomo si sposta lungo la stessa direzione dell ostacolo rilevato ma nel verso opposto e 2 ostacoli su assi diversi casi 5 6 7 8 il drone si comporta come nel caso di un singolo ostacolo Essendo infatti i canali di pitch e roll indipendenti il drone si muove contemporaneamente nelle due direzioni seguendo il verso opposto agli ostacoli rilevati e 2 ostacoli sullo stesso asse casi 9 10 non potendo muoversi nel la stessa direzione degli ostacoli poich presente un altro ogget to il drone si muove nell altra direzione seguendo un verso scelto casualmente e 3 ostacoli casi 11 12 13 14 il drone si muove nell unico verso libero da ostacoli Procedendo da quella parte infatti esso si libera dell o stacolo nel verso opposto e successivamente si liberer dei due rimasti rientrando nella gestione dei casi a 2 ostacoli sullo stesso asse La gestione degli ostacoli stata studiata appositamente per l ambiente in cui si svolge il gioco 6 2 2 Implementazione Nei casi in cui il drone deve allontanarsi da un ostacolo percorrendo la sua stessa direzione il controllore che implementa le azioni descritte di tipo TT Capitolo 6 78 O Ostacolo rilevato gt Direzione da prendere Figura 6 2 Diagramma della gestio
62. gioco Gli stati che formano l interna applicazione sono e Controllore di quota stato necessario per il decollo l atterraggio il mantenimento e i cambi di quota e Gestione ostacoli stato necessario per evitare prontamente gli even tuali ostacoli e Ricerca dell avversario stato necessario per esplorare l ambiente di gioco alla ricerca del drone telecomandato Capitolo 6 72 e Inseguimento basato sul colore stato necessario per l individua zione e l inseguimento dell altro drone su lunghe distanze e Inseguimento basato su infrarossi stato necessario per l indivi duazione e l inseguimento dell altro drone su brevi distanze e Ricarica stato in cui viene simulata la ricarica di energia del drone che da la possibilit al giocatore di vincere il gioco e Contromossa stato necessario alla stabilizzazione del drone 6 1 Controllore di quota Un aspetto molto importante relativo alla gestione della quota di volo dato che abbiamo deciso che il drone autonomo deve mantenere sempre una determinata altezza il pi possibile costante Il gestore dell altezza risulta quindi essere sempre attivo in tutte le fasi di volo e lavora ad una frequenza di 10 Hz Il suo compito quello di portare il drone a un valore calcolato il pi velocemente possibile e in modo tale che sia stabile Infatti mentre gli altri stati si occupano di stabilire a che altezza il drone deve volare questo componente software si
63. gura 4 1 Frame e quattro motori brushless da 920 Kv Figura 4 2a e quattro ESC OPTO da 30 Amp re Figura 4 2b e quattro eliche 10x4 5 Figura 4 2c AU a E po N po N o a ESC b Motori c Eliche Figura 4 2 Parti principali della struttura Un ESC Electronic Speed Controller un circuito elettronico che per mette di variare la velocit di un motore elettrico la sua direzione e di agire come freno Un ESC per motori brushless pilota il motore trifase inviando una sequenza di segnali per la sua rotazione Essi possono fornire al massimo una data corrente al motore che nel nostro 26 Architettura hardware caso di 30 A per un totale di 120 A Gli ESC utilizzati sono di tipo OPTO ovvero non contengono al loro interno un BEC integrato Un BEC Battery Eliminator Circuit un circuito che permette di sta bilizzare la tensione d ingresso proveniente dalla batteria ad un valore utile ad alimentare correttamente un altro circuito Sono utilizzati nell ambito dei droni per alimentare la scheda di volo utiliz zando la batteria che alimenta anche i motori Non avendo a disposizione un BEC integrato stato necessario utilizzarne uno esterno da 3 A per poter alimentare la scheda di volo La struttura ha una diagonale lunga 45 cm a cui va aggiunta la lunghezza delle eliche per arrivare ad un totale di circa 65 cm Questa dimensione fa s che il drone possa muoversi bene in ambienti chiusi
64. gura 7 1 possibile notare che il drone mantiene il setpoint in maniera stabile Le oscillazioni sono brevi e limitate a pochi cm un valore del tutto soddisfacente ai fini del gioco Sono stati effettuati test anche per quanto riguarda i cambiamenti di altezza che il drone affronta per le altre varie fasi di gioco In particolare per testare questi cambiamenti di quota stata utilizzata lap plicazione esterna per l invio di comandi di cambiamento d altezza La Figura 7 2 rappresenta la risposta del controllore PID a un gradino di 20 Capitolo 7 92 170 165 155 150 145 135 130 135 7 9 11 13 15 17 19 21 23 25 27 9 31 3 35 37 39 41 4 45 Altezza reale Setpoint Figura 7 1 Mantenimento di una quota di volo costante cm in discesa e uno di 30 cm in salita 1 15 29 43 57 71 85 99 113 127 141 155 169 183 197 211 225 239 253 267 Altezza reale Setpoint Figura 7 2 Risposta del controllore ad un gradino in discesa e uno in salita Sull asse X di questo grafico e dei successivi viene rappresentato il tempo in decimi di secondo Come si pu vedere la risposta del drone rapida e senza oscillazioni eccessive Cambiamenti di altezza di entit maggiore portano ad oscillazioni maggiori e di conseguenza a un maggior tempo necessario per stabilizzarsi Tuttavia i cambiamenti all interno del gioco non possono essere troppo re pentini e non differiscono mai pi di 50 cm rispetto al valore precedente In questo modo si
65. he hardware del drone sono 20 Struttura del gioco Processore ARM Cortex A8 da 1GHz 32bit Video 800 MHz DSP TMS320DMC64x RAM DDR2 da 1GB a 200 MHz Giroscopio a 3 assi per una precisione fino a 2000 sec Accelerometro a 3 assi per una precisione fino a 50 mg Magnetometro a 3 assi per una precisione fino a 6 Sensore di pressione a 3 assi per una precisione fino a 10 Pa Motori 4 brushless a rotore interno Potenza motori 14 5 W e 28500 rpm in volo statico Telecamera verticale QVGA a 60 fps Telecamera orizzontale HD 720p a 30 fps Wi Fi b g n Batterie LiPo ricaribabili da 1000 mA h o 1500 mA h Il drone pu essere comandato tramite tablet o smartphone In particolare disponibile l applicazione AR FreeFlight che interfaccia l utente ai comandi del drone Figura 3 2 Figura 3 2 Interfaccia di AR FreeFlight Tramite essa possibile decollare muoversi atterrare e monitorare le prin cipali informazioni di volo come il livello di batteria l altitudine e la velocit raggiunta Inoltre possibile stabilire i valori massimi e minimi di velocit e di quota raggiungibili Figura 3 3 Modifiche L aspetto del drone telecomandato stato modificato appositamente per il nostro gioco In particolare abbiamo modificato la scocca per interni in mo do tale da renderlo maggiormente riconoscibile da parte dell altro drone 21 Capitolo 3 22
66. i 512 MB condivisa tra cpu e gpu Con queste caratteristiche non possibile avvicinarsi alle performance dell Odroid U2 e non possibile gestire in tempo utile tutti i sensori In particolare il Raspberry Pi non in grado di processare le immagini prove niente dalla webcam con la stessa velocit dell Odroid In Figura 4 8 riportato un grafico diffuso dall Hardkernel che mette a confronto le performance del Raspberry Pi e dell Odroid U3 L Odroid U3 il naturale successore dell Odroid U2 che al momento della scelta non era ancora in produzione Le componenti hardware dell U3 sono identiche a quelle dell U2 e pertanto anche le prestazioni totali 35 Capitolo 4 36 MODROID U3 WE Raspberry Pi 2500 0 gt 2000 0 1500 0 1000 0 500 0 Figura 4 8 Prestazioni a confronto fra Odroid U3 e Raspberry Pi pcDuino Il pcDuino un mini computer che pu montare un sistema operativo basato su Linux oppure Android 4 x La sua principale caratteristica quella di avere un interfaccia hardware compatibile con Arduino integrata Esso ha a bordo un processore ARM Cortex A8 da 1 Ghz 1 GB di memoria ram ed un processore grafico Mali 400 Oltre ad un prezzo pari a quello dell Odroid U2 con una cpu molto meno potente il motivo principale per cui abbiamo scartato questa scheda stato il fatto che essendo stata appena rilasciata al momento della scelta la documentazione e la comunit
67. i gli altri L as senza o la presenza di tutti e 3 i valori forma rispettivamente il nero e il bianco Figura 6 3 L intensit di ogni colore primario varia da O a 255 Figura 6 3 Funzionamento tramite RGB Il modello HSV dall inglese Hue Saturation Value tonalit saturazione e valore definisce una rappresentazione in coordinate cilindriche del colore Figura 6 4 anjen Figura 6 4 Modello cilindrico HSV Con il valore di Hue possibile muoversi sull angolo della sezione circo lare del cilindro I colori primari si trovano rispettivamente a 0 con il rosso 120 con il verde e 240 con il blu 81 Capitolo 6 82 La Saturation rappresenta la distanza dall asse del cilindro che vale 0 nel suo centro e 1 in corrispondenza della superficie Questo valore indica l intensit e la purezza del colore che con 0 risulta essere neutrale mentre con 1 appare puro Infine Value indica la luminosita del colore e corrisponde all altezza del cilindro Nell ambito della nostra tesi abbiamo utilizzato il modello HSV che con la sua proprieta di separare l intensit dal colore fornisce un sistema robu sto al cambio di luce Il riconoscimento del colore avviene utilizzando la webcam in particolare l immagine catturata viene analizzata tramite la libreria OpenCV 8 OpenCV un efficace framework per la gestione dei dati provenienti da un dispositivo video Questa libreria stata utilizzata per filtr
68. ich serve solo a migliorare la prestazione del sistema di controllo Il suo utilizzo fornisce una grande velocit di risposta Anche in questo caso se il guadagno elevato pu causare instabilit nel sistema Inoltre necessaria cautela se il setpoint dovesse cambiare in maniera rapida e con valori ele vati in quanto potrebbe far crescere l azione derivativa in maniera eccessiva Come mostrato in Figura 6 1 i valori calcolati vengono successivamente som mati tra loro contribuendo a far convergere l errore a 0 I K e t dt Output 0 Figura 6 1 Controllore PID I guadagni Kp Kr e Kp vengono scelti per ottenere un sistema stabile al setpoint Esistono metodi di calcolo che permettono di individuare questi valori ma necessitano una modellizzazione del sistema Tuttavia per quanto riguarda il nostro lavoro una modellizzazione del si stema sarebbe risultata troppo complessa per i fini imposti Logica di gioco Abbiamo perci trovato sperimentalmente questi valori che hanno fornito un risultato pi che soddisfacente L algoritmo che implementa il PID stato modificato in modo tale da limi tare l azione integrale e quella derivativa Algoritmo 1 L azione integrale stata limitata per impedire un eccessivo aumento del l accumulo di errori che potrebbe portare a problemi d instabilit L azione derivativa invece stata limitata a causa dei possibili errori di let tura dei sensori che
69. if primoV oltaComandoAutomatico then decolla tempoRicarica rand 60 120 inizioT empoDiGioco end if if tempoDiGioco tempoRicarica then ricarica else if proximity then gestioneOstacoli else if wii then inseguimentoBasatoSuInfrarossi else if blob then inseguimentoBasatoSulColore else ricerca end if throttle PIDh calcola throttleBase if tempoDiGioco tempoT otaleDiGioco then fine true end if if fine true then atterra end if end if end loop 90 Capitolo 7 Prove sperimentali Il principio cardine della scienza quasi la sua definizione e che la verifica di tutta la conoscenza l esperimento L esperimento il solo giudice della lt verit gt scientifica Richard Feynman Data la gestione del gioco in stati indipendenti tra loro stato possibile testare separatamente ogni singola fase di gioco In questo modo abbiamo cercato un risultato ottimale per ogni fase isolata per poi testare l insieme nella prova finale di gioco Per questo motivo il seguente capitolo mantiene la stessa struttura del precedente 7 1 Controllore di quota Il controllore di quota nella fattispecie il controllore PID che regola l altez za stato progettato per dare una risposta rapida e precisa ai cambiamenti di quota I test seguenti puntano a verificare tali aspetti Per prima cosa abbiamo testato il mantenimento di una quota fissata In Fi
70. imboleggiare una ricarica d energia In questa fase se il drone telecomandato capace di atterrare da vanti ad esso ad una determinata distanza segnalata da un laser impedisce il rifornimento d energia vincendo direttamente il gioco Se invece fallisce il gioco riprende con il decollo del drone autonomo In questo caso il drone avatar dovr scappare nuovamente dal drone auto nomo fino al termine del gioco Se il giocatore riesce a non far colpire il proprio drone durante tutto il tempo di gioco ottiene la vittoria Se invece viene colpito il giocatore perde L ARDrone viene comandato tramite l applicazione proprietaria AR FreeF light installata su uno smartphone o un tablet 3 1 1 Regole e linee guida Oltre alle regole di gioco utili a renderlo pi vivace sono state inserite anche alcune linee guida soprattutto legate a motivi di sicurezza in presenza di un drone autonomo e Prima di cominciare il gioco necessaria una fase di training per il giocatore che deve prendere dimestichezza con il drone telecomandato e I droni decollano simultaneamente da due punti distanti almeno 8 metri e Il drone telecomandato non pu passare sotto o sorvolare l altro drone e Il drone telecomandato deve mantenere una distanza di sicurezza sia dagli ostacoli sia dal drone autonomo e Il drone telecomandato non pu superare i 3 metri di altezza e Il drone telecomandato non pu superare l inclinazione di 15 e In caso di peri
71. ione di 5 V e genera un uscita in tensione proporzionale alla distanza rilevata Questo valore viene facilmente letto da Arduino e trasformato in centimetri Per stabilizzare la tensione in ingresso ai sensori abbiamo aggiunto per ognuno di loro un condensatore da 22 uF tra Vcc e GND Come mostra il grafico riportato in Figura 4 15 impossibile ottenere delle letture coerenti e stabili senza l ausilio del condensatore soprattutto quando non viene rilevato nessun oggetto I dati mostrati sono stati appunto rilevati senza alcun oggetto nel campo di visibilit del sensore 41 Capitolo 4 42 Object Object Point of Reflection A Figura 4 14 Angolo di rilevazione degli oggetti 4 5 2 Sonar Il sonar un componente molto importante del nostro progetto Montato al di sotto del drone permette di conoscere in ogni momento la sua esatta altezza dal suolo consentendoci di lavorare sul comando di throttle per mantenere una determinata quota di volo Il sonar scelto nell ambito della nostra tesi il MaxBotix MB1340 Fi gura 4 16 L utilizzo di questo sensore raccomandato sui multirotori per le sue caratteristiche di estrema precisione e tolleranza ai rumori Il montaggio di un sonar su un quadricottero deve tener conto di alcune problematiche quali turbolenze d aria disturbo acustico delle eliche e ru more sul segnale elettrico La soluzione ai primi due problemi quella di montare il sonar il pi
72. ire tempe stivamente i cambi di direzione del drone avatar Per fare questo sono stati implementati 2 controllori PID uno per quanto riguarda la distanza che utilizza il canale di pitch e l altro per portarsi in centro utilizzando il canale di roll La distanza reale tra drone autonomo e telecomandato viene calcolata grazie alla lunghezza focale della WiiCam Dati la distanza reale D tra le due fonti infrarosse poste sulla scocca nota e fissa 20 cm e la loro distanza d calcolata dalla WiiCam a vari intervalli Z si pu risalire alla lunghezza focale f Z Varie sperimentazioni hanno portato a una lunghezza focale pari a 1350 la cui unit di misura la stessa del sistema di riferimento della WiiCam utilizzata Con questa grandezza possibile ricavare la distanza reale Z tra i due droni avendo come unico dato la distanza ottenuta dalla WiiCam tra le due fonti infrarossi d i Z D 7 La distanza calcolata viene successivamente utilizzata dal controllore PID che opera sul pitch con lo scopo di mantenere il drone autonomo a 250 cm da quello telecomandato L allineamento orizzontale tra i due droni avviene in modo tale da portare Logica di gioco il punto medio delle due fonti infrarosse in corrispondenza del fascio laser alla distanza di 250 cm Anche questo processo avviene utilizzando un controllore PID che per agi sce sul canale di roll L allineamento verticale viene elaborato utilizzan
73. l laser l avversario sia stato colpito La webcam scelta la Logitech c270 Figura 4 11 per la possibilit di rice vere fotogrammi ad una risoluzione massima di 1280x 960 e con una velocit di 30 frame al secondo Inoltre ha un ottimo rapporto qualit prezzo Per diminuirne il peso totale stata rimossa la parte posteriore che era adibita al fissaggio della webcam stessa 39 Capitolo 4 Poich le vibrazioni hanno un notevole impatto anche sulla webcam essa stata montata sulla struttura utilizzando una gomma anti vibrazioni 4 5 Arduino Arduino una piattaforma elettronica open source per la prototipazione basata su hardware e software flessibili e semplici da utilizzare Nell ambito del nostro lavoro stato utilizzato per gestire tutti i sensori pre senti a bordo del drone Per la sua semplicit d uso infatti particolarmente indicato per ricevere input provenienti dall esterno e fornire risposte control lando luci ed altri attuatori Tra la grande variet di Arduino presenti sul mercato abbiamo scelto di utilizzare l Arduino Nano con microcontrollore Atmel ATmegal68 Figura 4 12 a Fronte b Retro D1 TX 1 O O O 50 30 vin DO RX 2 OZ ARDUINO m ZO 29 GND RESET 3 O 03 2 amp 20 28 RESET GND 4 On ax ry KO 27 5V D2 5 OSE F EO 26 A7 D3 6 OS zZ gt ast 20 25 A6 D4 7 e o 24 A5 D5 8 O84 0 O 23 A4 D6 9 OS 20 22 A3 D7 10 Os 40
74. l numero minimo di canali 6 utili al nostro lavoro ed ha un 51 Capitolo 4 52 ottimo rapporto qualita prezzo Questo specifico radiocomando lavora alla frequenza di 2 4 Ghz ed ha un raggio d azione maggiore di 1 km Modo 2 significa che il radiocomando in questione ha il comando del gas throttle sulla sinistra 4 8 Interconnessioni e risultato finale Lo schema in Figura 4 29 riporta le connessioni tra tutti i componenti spie gati nel capitolo corrente In Figura 4 28 viene mostrato il drone autonomo costruito Figura 4 28 Drone autonomo completo Architettura hardware ODROID U2 USB 5V MODULO WI FI HUB USB sv USB USB Figura 4 29 Interconnessioni di tutto il sistema 53 Capitolo 4 54 Capitolo 5 Architettura software I computer sono incredibilmente veloci accurati e stupidi Gli uomini sono incredibilmente lenti inaccurati e intelligenti Insieme sono una potenza che supera l immaginazione Albert Einstein La progettazione di un software per applicazioni robotiche deve tenere conto dell implicazione di molte parti diverse tra loro che interagiscono per concorrere allo scopo finale dunque utile utilizzare un approccio modu lare che consiste nella realizzazione di programmi suddivisi in moduli che svolgono una determinata funzione Ogni modulo il pi possibile indipendente dagli altri facilitando cos la scrittura del codice in team poich rid
75. laser tipica dei cavalieri Jedi utilizzando la spada schiva e devia i colpi laser sparategli addosso da un drone Allo stesso modo viene utilizzato un ARDrone Parrot il quale tenta di col pire il giocatore umano I colpi laser vengono simulati attraverso un suono emesso dal drone il quale colpisce solo nel caso in cui il petto del giocatore si trovi al centro della telecamera frontale posta su di esso e che non vi sia la spada a difesa Il giocatore dispone di un tubo rosso che rappresenta la spada laser attraverso la quale puo difendersi ponendola tra il proprio petto e l ARDrone Il punteggio viene annunciato in tempo reale da un computer esterno sul quale implementata tutta la logica del drone autonomo che comunica con esso tramite Wi Fi inviandogli le immagini della camera interna e ricevendo i comandi Il drone cerca di allinearsi dunque con il petto del giocatore umano indivi duato grazie a una tunica blu che indossa ma compir anche movimenti ca suali e aggressivi che portano il giocatore a muoversi maggiormente durante il gioco Figura 2 10 Figura 2 10 Visione da una camera esterna dall ARDrone e l elaborazione dell immagine effettuata in Jedi Trainer 15 Capitolo 2 16 Capitolo 3 Struttura del gioco Il gioco bello quando dura poco Proverbio Il gioco che abbiamo realizzato presenta tutte le caratteristiche necessa rie per essere considerato un Robogame Si tratta di un gioco coinvo
76. leve radiocomando I due interruttori posti sopra al radiocomando sono invece collegati ai canali di AUX1 e AUX2 come mostrato in Figura C 2 L interruttore collegato ad AUX2 un interruttore a scatto che ritorna automaticamente alla sua posizione naturale dopo averlo rilasciato 118 Appendice C Manuale operatore Figura C 2 Interruttori radiocomando C 2 Combinazioni comandi per il radiocomando Tramite particolari combinazioni del radiocomando possibile inviare co mandi specifici alla scheda di volo Essi servono in particolari situazioni come ad esempio per armare il drone o per calibrare gli accelerometri C 2 1 Multiwii Le seguenti combinazioni sono proprie del software di volo utilizzato ovvero il Multiwii Armare i motori Come mostrato in Figura C 3 per armare i motori occorre posizionare il comando di throttle al minimo verso il basso ed il comando di yaw al massimo verso destra Quando i led di segnalazione sulla scheda di volo si accendono in maniera fissa i motori sono armati Per ragioni di sicurezza se la scheda inclinata con un angolo maggiore di 25 gradi non si possono armare i motori Disarmare i motori Come mostrato in Figura C 4 per disarmare i motori occorre posizionare il comando di throttle al minimo verso il basso ed il comando di yaw al minimo verso sinista C 2 Combinazioni comandi per il radiocomando 119 Figura C 3 Combinazione per armare i motori Quando i led
77. lgente e vivace in grado di divertire il giocatore sia per le dinamiche del gioco sia per il pilotaggio di un robot volante Il gioco costituito da due agenti robotici un drone autonomo e uno teleco mandato Per motivi di sicurezza il drone autonomo pu essere comandato anche attra verso un radiocomando che deve essere affidato a un operatore specializzato in grado di pilotarlo in caso di necessit Un gioco tra elementi volanti un elemento innovativo nel campo dei Ro bogame che lo rende unico nel suo genere Oltre a questo ci sono elementi tecnici e ingegneristici innovativi che restano invisibili agli occhi del giocatore che resta focalizzato sul gioco nel quale completamente immerso 3 1 Specifiche del gioco Il Robogame da noi sviluppato la rivisitazione di un gioco conosciuto il laser game in cui i protagonisti sono robot nello specifico droni In particolare il drone telecomandato ARDrone deve fuggire dal drone au tonomo il quale dopo averlo individuato lo insegue cercando di colpirlo con il proprio laser Il gioco deve necessariamente svolgersi in un ambiente chiu so e delimitato che permetta al drone autonomo di vedere il drone avatar e non permetta a questi di portarsi fuori portata Il giocatore umano deve Capitolo 3 mostrare la sua abilita nello sfuggire al drone autonomo Per rendere il gioco pit dinamico abbiamo deciso di fare atterrare il drone autonomo una volta durante il tempo di gioco a s
78. lo il gioco diventa pi competitivo Di particolare interesse risultata la parte di ricarica unica fase in cui il giocatore assume un ruolo attivo e non solo reattivo all interno del gioco che richiede una certa abilit Le fasi di gioco sono ben capite dal giocatore soprattutto grazie ai suoni che vengono emessi non solo quelli dall applicazione del gioco ma anche per il rumore stesso del drone autonomo Viene subito percepita la necessit di scappare da esso In generale si pu affermare che il gioco diverta sia vivace e di una com plessit tale da non stancare o spazientire un giocatore medio Capitolo 8 Conclusioni Y difficile che la scienza e la tecnologia nelle loro linee genera li superino la fantascienza Ma in molti piccoli e inattesi partico lari vi saranno sempre delle sorprese assolute a cui gli scrittori di fantascienza non hanno mai pensato Isaac Asimov 8 1 Conclusioni Lo scopo della tesi stato quello di sviluppare un drone autonomo capace di svolgere un robogame Il robogame creato consiste in un giocatore umano che pilotando un drone avatar sfida il drone autonomo in un laser game La particolarit del drone autonomo consiste nell avere tutta la potenza di calcolo a bordo Nessun sensore esterno necessario per la corretta esecu zione dei comandi di volo Lo sviluppo del drone stato studiato in modo tale da renderlo facilmente estendibile ed utilizzabile per moltissimi a
79. ltri scopi Esso risultato parti colarmente robusto e adatto al gioco che ci eravamo prefissati Il fatto di avere a bordo tutta la tecnologia necessaria a farlo volare autono mamente lo rende un oggetto molto interessante e utile in tutte situazioni in cui la velocit di reazione fondamentale Infatti poich la scheda di volo direttamente collegata all elaboratore di bordo non c alcun tempo di latenza tra la disponibilit del comando e l attuazione dello stesso Per tutte le operazioni principali di volo necessaria solamente la presenza di un radiocomando mentre per il monitoraggio e le applicazioni di gioco utile una rete Wi Fi dedicata comunque non indispensabile per il volo autonomo Capitolo 8 102 Come emerso dai test effettuati il gioco nel suo complesso risulta divertente soprattutto perch il giocatore vi completamente immerso Per pilotare il drone avatar infatti egli deve prestare costantemente attenzione al gioco lasciandosi trasportare dalle sue dinamiche Maggiore l esperienza del gio catore nel pilotaggio e migliore sar il risultato finale Dai test sono risultati alcuni problemi In particolare non ancora possibile terminare una partita completa senza l intervento dell operatore che control la il drone autonomo Questo dovuto soprattutto ai movimenti involontari del drone che al momento non sono controllabili automaticamente L ambiente di gioco deve rispettare preci
80. mentare i motori che nel nostro caso arrivano fino a 30 A per ogni motore potrebbero compro mettere le funzionalit fondamentali del magnetometro influenzando cosi la stabilit del volo Per evitare che tutto ci accada occorre arrotolare su stessi tutti i cavi di alimentazione proveniente dalla batteria e dagli ESC ed allontanarli il pi possibile dalla scheda 4 2 2 Software Nell ambito di questa tesi abbiamo optato per il sistema open source Multi wii che per la sua conformazione e il migliore in termini di semplicit d uso e di personalizzazione Inoltre il software in questione gestisce al meglio tutte le funzionalit di cui abbiamo avuto bisogno Il software stato modificato per poter avere sul radiocomando un interrut tore fisico che permetta di passare velocemente dalla modalita automatica a quella manuale Per ragioni di sicurezza abbiamo infatti deciso che questo era il metodo pit sicuro per evitare incidenti ed intervenire tempestivamente in caso di com portamento anomalo del drone Il software stato strutturato in modo tale da poter ricevere i comandi o dal radiocomando o dalla porta seriale la quale viene utilizzata per il volo auto nomo La nostra modifica consiste nel leggere sempre un canale AUX1 del radiocomando anche in modalit automatica Un analoga modifica stata effettuata anche su un secondo canale AUX2 per poter dare il comando di atterraggio durante il volo in automatico Questa co
81. n totale di circa 250 mA Struttura del gioco Il peso totale del drone risulta di conseguenza superiore al valore iniziale Questo pu causare problemi di stabilit al drone ma abbiamo verificato che questo avviene solamente quando la batteria ormai scarica circa 10 3 3 Ambiente L ambiente di gioco deve presentare alcune caratteristiche necessarie sia per un corretto funzionamento del gioco sia per un maggior coinvolgimento del giocatore Data la dinamica del gioco indispensabile una stanza chiusa di dimensioni non inferiori ai 10 x 10 m In questo modo i droni hanno sufficiente libert di movimento e non vengono influenzati dai fattori climatici che condizionano la qualit del volo L altezza deve essere almeno di 3 m e non devono essere presenti ostacoli o dislivelli significativi all interno del campo Un altra caratteristica fondamentale l assenza di rosso nella stanza che anche se viene filtrata dal drone autonomo attraverso il riconoscimento della forma pu comunque causare falsi Allo stesso modo non si devono avere finestre con luce diretta poich la luce del sole proveniente da esse potrebbe causare false letture ai sensori a infrarossi Occorre inoltre ricordare che dato che il rilevamento di ostacoli fatto con tecniche visive i vetri non vengono rilevati come ostacoli In Figura 3 5 mostrato l ambiente utilizzato per le nostre prove di gioco Figura 3 5 L ambiente di gioco 23
82. ne 33 Capitolo 4 4 3 1 Caratteristiche Nel nostro progetto abbiamo scelto di utilizzare l Odroid U2 Figura 4 7 le cui caratteristiche principali sono e Processore Samsung Exynos4412 Prime Cortex A9 Quad Core 1 7 Ghz con 1 MB di cache L2 e 2 GB di memoria ram LP DDR2 e Processore grafico Mali 400 Quad Core 440 MHz con acceleratore 3D e Supporto video fino a 1080p con cavo HDMI H 264 A AC e Uscita video con connettore micro HDMI e Una porta lan 10 100 Mbps con connettore RJ 45 e Due porte USB ad alta velocit e Una porta micro USB per ADB e Uno slot per scheda microSD per poter installare il sistema operativo e Alimentazione a 5 V con un consumo massimo di 2 A e Case di alluminio per protezione e raffreddamento e Dimensioni contenute solo scheda 48x52 mm e Possibilit di installare una distribuzione Linux con kernel 3 0 x oppure Android 4 x e Prezzo contenuto 89 Il performante processore quad core e l avanzato processore grafico ren dono l Odroid un prodotto dalle prestazioni incredibili e quindi assoluta mente adatto in un contesto in cui la velocit di reazione ai cambiamenti dell ambiente circostante fondamentale La documentazione di questo prodotto disponibile sul sito web ufficiale 7 dove altres presente un forum 6 in cui vengono analizzate e discusse nu merose possibilit software ed espansioni hardware per la scheda Questo permette di avere sempre numerosi aggiornamenti
83. ne degli ostacoli proporzionale integrale Viene infatti fornita al drone una forza proporzio nale alla distanza dall ostacolo rilevato ma di verso opposto in modo tale da allontanarsi da esso Se la forza fornita non sufficiente a muoverlo nel verso desiderato verr incrementata nelle successive letture dall azione integrale Nel caso in cui si procede lungo l altra direzione viene invece fornita sempli cemente una forza costante L Algoritmo 2 descrive come stata implementata questa fase Logica di gioco Algoritmo 2 Gestione ostacoli Require ostacolo distanzaOstacolo morePitch 0 moreRoll 0 if ostacolo destra amp amp ostacolo sinistra then if ostacolo davanti ostacolo dietro then morePitch forza distanzaOstacolo else morePitch forzaCostante end if else if ostacolo davanti amp amp ostacolo dietro then if ostacolo destra ostacolo sinistra then moreRoll forza distanzaOstacolo else moreRoll forzaCostante end if else if ostacolo davanti ostacolo dietro then morePitch forza distanzaOstacolo else moreRoll forza distanzaOstacolo end if end if if rollOld lt moreRoll then moreRoll moreRoll rollOld x K I end if if pitchOld lt morePitch then morePitch morePitch pitchOld x K I end if roll rollBase more Roll pitch pitchBase morePitch rollOld more Roll pitchOld morePitch 6 3 Ricerca dell avversario
84. nfigurazione permette di essere completamente indipendenti da un computer di terra potendo prendere tutte le decisioni tramite il radiocoman do 4 2 3 Messa a punto Dopo aver installato il software si passa alla messa a punto di tutti i para metri propri del volo utilizzando l interfaccia software fornita dal Multiwii Figura 4 5 Prima di fare ci per si devono calibrare il magnetometro e gli accelerometri per poi verificare che il cablaggio non interferisca con il Architettura hardware magnetometro 800 MultiWiiConf AUX1 AUX2 AUX3 ALMA THROT LOW MID HIGH L MoH LO MOH OL M OH PITCH 9 0 0 010 100 4 0 0 50 THROT 1000 1000 FRONT_L FRONT_R RESET CALIB_ MAG CALIB ACC WRITE SELECT SETTING START STOP CyrleTime 3216 12C error 0 Figura 4 5 Interfaccia Multiwii Per calibrare il magnetometro si fa ruotare manualmente il drone lungo i tre assi di roll pitch e yaw per 30 secondi La calibrazione degli accelerome tri invece si effettua semplicemente mettendo il drone in piano ed attivando una particolare sequenza con il radiocomando Appendice C Questa pro cedura per gli accelerometri da effettuare tutte le volte prima di un volo Per verificare che il cablaggio non influenzi il magnetometro occorre col legare la scheda di volo ad un PC ed aprire il software in dotazione Bisogna quindi accendere i motori del drone al massimo senza le eliche collegate e verificare che il valore dell angolo di p
85. no di controllare la potenza dei singoli rotori Proprio per questi motivi i qua dricotteri si sono diffusi in molti ambiti L utilizzo maggiore riguarda le riprese a video Aggiungendo una telecamera possibile infatti raggiungere punti di vista ed effetti altrimenti impossibili Vengono impiegati anche nel controllo dell ordine pubblico per esempio du rante le manifestazioni in cui la situazione pu diventare critica molto velo cemente e sorvolando la zona di interesse possono essere raccolte importanti informazioni per le forze dell ordine Figura 2 3 Figura 2 3 Poliziotto che comanda un quadricottero Stato dell arte Un altro ambito interessa le riprese durante i matrimoni Molte sono le coppie che decidono di ricordare il giorno del loro matrimonio attraverso le riprese suggestive che un quadicottero in grado di dare Figura 2 4 Figura 2 4 Quadricottero che riprende un matrimonio Anche in caso di incendi o calamit naturali i quadricotteri forniscono una risposta ottimale a queste emergenze svolgendo un ruolo chiave per valutare Vimpiego delle risorse e le necessit Applicando una telecamera termica sar inoltre possibile aumentare la possibilit di individuare eventuali per sone intrappolate negli edifici Le riprese vengono sfruttate anche dalle recenti olimpiadi di Sochi dove si sono visti molteplici quadricotteri riprendere gli atleti nelle varie attivit sportive Figura 2 5 Figu
86. no ad una distanza di 12 m L analisi delle immagini non viene effettuata quando il drone rileva delle sorgenti infrarosse valide poich in quel caso le decisioni di volo vengono prese a partire dagli infrarossi stessi 65 Capitolo 5 66 Il funzionamento e le motivazioni dell elaborazione verranno trattate detta gliatamente nel prossimo capitolo In figura 5 5 e riportato il diagramma delle classi di questo modulo Cameralmage VideoManagement arduinoControl ArduinoControl cameraFrame Mat frame_mat Mat m_x_index short int m_y_index short int m_index short int m_found bool marker visualization_msgs Marker ArduinoControl Wiilnfrared Cameralmage void getinstance Cameralmage sendBestBlob CvBlobs CvBlobs findLaser bool getters amp setters Figura 5 5 Diagramma delle classi del modulo VideoManagement 5 1 6 FlightManagement Il FlightManagement il modulo principale del software che abbiamo svi luppato Esso ha infatti il compito di calcolare i valori di roll pitch yaw e throttle che vengono forniti alla Crius in modo tale da permettere il corretto svolgimento del gioco e del volo Per fare ci utilizza tutti i dati predisposti dagli altri moduli Contiene inol tre la logica del gioco Il suo funzionamento spiegato dettagliatamente nel prossimo capitolo In figura 5 6 riportato il diagramma delle classi di questo m
87. nto del decollo 160 150 140 130 120 110 100 90 80 70 50 30 20 10 1 13 25 37 49 61 73 85 97 109 121 133 145 Altezza reale Setpoint Figura 7 5 Risposta del drone ad un decollo con batteria scarica 7 2 Gestione ostacoli Come gi detto pi volte solo 4 sensori di prossimit non sono sufficienti a evitare qualsiasi tipo di ostacolo Come si evince dalle prove effettuate il drone autonomo non in grado di rilevare ostacoli che non siano precisa mente disposti sul suo asse di pitch e roll Un numero di sensori superiore non era tuttavia gestibile dal punto di vista hardware La gestione degli ostacoli comunque accettabile considerato il limite di Prove sperimentali sensori e l ambiente utilizzato il drone che individua un ostacolo deve al lontanarsi da esso In Figura 7 6 riportato un grafico che rappresenta la sequenza di distanze lette da un sensore dal momento della prima rilevazione dell ostacolo al suo allontanamento 160 150 140 130 120 110 100 90 70 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 Distanza Figura 7 6 Sequenza di letture di un sensore al rilevamento di un ostacolo E possibile osservare che il drone autonomo riesce ad allontanarsi dall o stacolo abbastanza velocimente evitando cos l impatto con esso Sull asse X sempre riportato il tempo in decimi di secondo 7 3 Ricerca dell avversario La ricerca dell avversario stata ottimizzata pe
88. nto del marca tore laser sulla scocca del drone telecomandato 97 Capitolo 7 I test dimostrano che il puntatore laser viene identificato correttamente so pra la scocca del drone nella grande maggioranza dei casi In Figura 7 10 si possono vedere l immagine reale e l immagine ritagliata e lavorata per il riconoscimento del laser Figura 7 10 Puntatore laser individuato sulla scocca del drone avversario Esiste per la possibilit di avere falsi positivi specialmente nel caso in cui il drone autonomo spari colpendo un vicino muro In Figura 7 11 si pu vedere una fase di gioco in cui il drone autonomo spara mancando l obiettivo Figura 7 11 Fase di gioco 7 6 Ricarica I test di questo stato servono a verificare che il drone atterri e decolli nei momenti opportuni e che il riconoscimento del giusto atterraggio da parte del drone telecomandato avvenga nella maniera corretta In nessun test risultato un malfunzionamento di questa fase La Figura 7 12 mostra un tentativo fallito da parte del giocatore di impedire la ricarica Si noti il puntatore laser che segnala il centro della zona corretta di atterraggio 98 Prove sperimentali Figura 7 12 Tentativo di atterraggio fallito dal giocatore 7 7 Contromossa La contromossa stata testata per verificare se effettivamente riesce a con trobilanciare una forza applicata I vari test eseguiti hanno mostrato che la contromossa serve effettivamente a frenar
89. o di droni a pilotaggio remoto 9 la prima autorit europea ad emettere una norma in questo ambito Vengono definiti due principali classi di droni alle quali vengono applicate regole diverse e Aereomodello dispositivo aereo a pilotaggio remoto senza persone a bordo impiegato esclusivamente per scopi ricreativi e sportivi non do tato di equipaggiamenti che ne permettano un volo autonomo e che vo la sotto il controllo visivo diretto e costante dell aeromodellista senza l ausilio di aiuti visivi e Aeromobile a Pilotaggio Remoto APR mezzo aereo a pilotaggio re moto senza persone a bordo non utilizzato per fini ricreativi e sporti vi L attivit degli APR con peso inferiore ai 25 kg deve essere autorizzata dall ENAC nei casi di criticit delle operazioni altrimenti possibile l auto certificazione APR e base di terra devono aver una targhetta che identifichi il pilota inoltre necessario un manuale di volo o un documento equiva lente Gli APR con peso uguale a superiore ai 25 Kg vengono registrati mediante l iscrizione nel Registro degli Aeromobili a Pilotaggio Remoto Il loro pilotaggio permesso solo tramite un permesso di volo rilasciato dal VENAC Il pilota di et minima di 18 anni deve conoscere le regole di volo dimostrate tramite licenza di volo e deve avere seguito un programma di addestramento per l APR specifico Gli aereomodelli invece non necessitano di alcuna autorizza
90. o il primo trovato Questo perch impossibile fare ulteriori discriminazioni che sprecherebbero solo tempo e risorse Grazie alla libreria cvBlob possibile estrarre molto semplicemente il centro del blob trovato Logica di gioco 6 4 1 Risposta del drone Il drone autonomo una volta ottenuto il centro del miglior blob ha lo scopo di avvicinarsi ad esso portandolo il pi possibile al centro dell immagine Per fare ci abbiamo diviso il frame in una griglia 5x5 In questo modo possibile determinare quale direzione indicativa deve prendere il drone Non rilevante infatti dove sia precisamente l avversario poich questa fase utilizzata solo su grandi distanze Vengono utilizzati due canali durante questo stato yaw e pitch Il canale yaw ha lo scopo di portare al centro dell asse x il blob selezionato A seconda della sua posizione all interno della griglia il drone autonomo gira attorno al proprio asse pi o meno velocemente fino a quando l avversario non visto al centro Il drone gira velocemente anche nel caso in cui il blob viene perso dopo es sere stato individuato sulla prima o sull ultima colonna della griglia Il canale pitch ha lo scopo di avvicinarsi una volta che il drone avatar risul ta al centro dell immagine In questa fase il drone va avanti per un tempo prefissato Questo avanzamento a scatti dovuto al fatto che risulta proble matico utilizzare i canali di pitch e yaw contemporaneam
91. o muoversi su ruote cingoli oppure gambe I robot d acqua sono barche di vario tipo I robot volanti autonomi rientrano nella categoria dei droni In particolare stiamo assistendo a un enorme diffusione dei multirotori nello specifico di quadri cotteri che con la loro facilita di utilizzo attraggono molto sia hobbiysti sia professionisti in svariati settori dalle riprese video al monitoraggio al trattamento agricolo L intento di questa tesi stato quello di sviluppare un Robogame capace di divertire il giocatore non solo grazie alle dinamiche del gioco ma anche attraverso il pilotaggio di un robot volante Il tutto inserendo elementi d in novazione come lo sviluppo ex novo di un quadricottero con tecnologia a bordo in grado senza alcun strumento esterno di volare autonomamente e reagire correttamente alle fasi di un gioco 2 1 Quadricottero Il quadricottero un multirotore dotato di quattro motori posti alle estre mit delle braccia che vanno a formare una croce I motori adiacenti ruotano nella direzione opposta Si tratta di un sistema robotico senza pilota a decol lo e atterraggio verticale Utilizzano un sistema di controllo che si basa sulla lettura dei dati provenienti dalla IMU Inertial Measurement Unit grazie al quale possibile un volo stabilizzato Nella Figura 2 1 sono rappresentate le configurazioni possibili per un quadricottero cio a X o a RD 5 IND x 9 Y Y a QuadX b Quad Fig
92. o non riesce a raggiungere la quota base avendo un margine ridotto di potenza Per eliminare questo problema viene calcolato l andamento del drone a par tire dai valori letti dal sonar In fase di decollo l andamento calcolato deve indicare un aumento di quota Quando questo non avviene significa che il margine di potenza necessario a salire non sufficiente e pertanto viene incrementato L incremento avviene assegnando al valore base la somma tra Vultima uscita del PID calcolato e il vecchio valore base Inoltre l azione integrale viene resettata 6 1 3 Atterraggio L atterraggio cos come il decollo una fase che utilizza il PID per il con trollo di quota in modo tale da far giungere a terra senza danni il drone autonomo Anche in questo caso il PID viene gestito diversamente cambiando gra dualmente il setpoint Si passa dall attuale altezza di volo fino a un altezza minima dove possibile spegnere i motori senza causare danni al velivolo Ogni 400 ms si controlla che il nuovo setpoint sia stato raggiunto corretta mente e in caso positivo la quota di volo viene abbassata di 30 cm Il tempo e il valore di abbassamento della quota sono stati studiati appo sitamente in modo tale da far lavorare in condizioni ottimali il controllore sviluppato In questo tempo infatti il drone riesce a portarsi alla nuova quota di volo senza oscillazioni che comprometterebbero il funzionamento dell atterraggio Se il setpoint variasse pi
93. o per spazi abbastanza ampi al fine di sfruttare al meglio la velocit di volo dei droni L interfaccia utente un telefono su cui installata un applicazione per il controllo del drone telecomandato Per gestire il drone autonomo viene uti lizzato un software modulare completamente residente a bordo Il drone autonomo interamente costruito nell ambito della nostra tesi collegato a un PC a terra il cui unico scopo quello di ricevere le infor mazioni necessarie per il monitoraggio del volo inoltre possibile inviare alcuni comandi da PC al drone per la gestione del gioco In questo lavoro abbiamo ideato un gioco in cui le dinamiche di volo le metodologie hardware adottate e le strategie comportamentali del drone au tonomo hanno lo scopo di coinvolgere e di far divertire il pi possibile il giocatore In particolare stato necessario creare una struttura HW SW in grado di analizzare in tempo reale numerosi dati provenienti da svariati sensori tra cui una telecamera IR WiiCam un sonar una webcam un magnetometro e alcuni sensori di prossimit I risultati ottenuti mostrano come sia possibile permettere ad un drone au tonomo di seguire le regole di un gioco altamente dinamico qual un laser game attraverso l integrazione di una grande quantit di dati ed elaborati dal computer di bordo 1 1 Struttura tesi Di seguito riportata una breve descrizione del contenuto di ciascun capitolo della tesi
94. odulo 5 2 Applicazioni esterne Le applicazione esterne che abbiamo sviluppato sono state scritte in C ed utilizzano la piattaforma ROS per la comunicazione con l applicazione principale posta a bordo del drone Esse non sono fondamentali per il funzionamento del sistema ma molto utili per capire lo stato del drone autonomo 5 2 1 Monitoraggio volo Questa applicazione comunica costantemente con il drone autonomo rice vendo le principali informazioni di volo utili a monitorare il suo stato Architettura software Wiilnfrared 1 L Proximity Il 1 Q Q FlightManagement 1 ArduinoControl let GameControl Il Il J J gt 1 RC 1 Cameralmage J J lt gt 1 BoardControl 1 CommandVariables 1 1 gt 1 BoardRPY 1 FlightValues Il Il lt gt 1 gt Q Q 2 2 1 Q Contromossa PID PIDController m_potenzalniziale short int P 1 D float proximity Proximity inizioContromossa bool dt int flightValues FlightValues verso int previousError int dt int contromossaCalcolata short int error int previousError int tempoCalcolato int integral float error int Contromossa void iniziaContromossa void getContromossa short int fineContromossa bool modalitaAngle bool getters amp setters derivative float pid_value short int setpoint int measure int i_limit d_limit int PiD float p float i float d int setPoint
95. operare in diverse condizioni in maniera ef ficace inoltre piuttosto semplice dal punto di vista funzionale La sigla PID si riferisce alle azioni Proporzionale Integrale Derivativa che intervengono in modo tale da portare l errore tra il valore attuale di una grandezza osservata variabile e il valore desiderato setpoint vicino allo 0 L azione proporzionale basata sulla differenza tra setpoint e variabile che prende il nome di errore e Il guadagno Kp come dice il nome stesso proporzionale all errore up Kpxe L azione proporzionale serve a velocizzare la risposta del sistema tutta via se troppo alta pu causare oscillazioni sempre pi ampie che causano instabilit L azione integrale dipende da tutti gli errori commessi nel corso del tempo Il guadagno K7 tiene perci conto di tutti gli errori anche infinitesimali calcolati fino a quel momento t r Kr e T dr 0 L azione integrale non aumenta quando l errore nullo tuttavia pu essere diversa da 0 a causa degli errori precedenti Se il guadagno eccessivo pu causare problemi d instabilit fenomeno di windup 73 Capitolo 6 74 L azione derivativa si basa sulla velocit con cui cambia l errore Il guadagno Kp ha la funzione di prevedere quindi l andamento dell errore limitandone l effetto de t dt Up Kp L azione derivativa per la maggior parte delle volte non necessaria po
96. ori causando la caduta del drone B 2 Esecuzione applicazioni del pc remoto Queste applicazioni vengono eseguite dal pc remoto Per essere avviate necessitano roscore e l applicazione di bordo spiegata precedentemente in esecuzione sull Odroid 114 Appendice B Manuale Utente B 2 1 Esecuzione applicazione monitoraggio volo Questa applicazione ha la funzione di mostrare le principali informazioni di volo ottenute dai sensori e dalla webcam Prima di eseguire l applicazione necessario caricare il modello del drone roscd urdf tutorial roslaunch urdf_tutorial display2 launch model quadricopter urdf Per questa applicazione stato utilizzato il pacchetto ROS rqt esegui bile dal comando rqt Dalla finestra aperta necessario aggiungere due plugin Image View e RViz Nella finestra di Image View necessario selezionare il topic camera image compressed Se la procedura stata svolta correttamente all interno della finestra com parir lo streaming video della webcam di bordo Per quanto riguarda RViz bisogna caricare la configurazione estratta nella posizione scelta durante la configurazione del pc remoto B 3 Esecuzione applicazione monitoraggio radio comando L applicazione serve a monitorare i comandi del radiocomando che vengono calcolati e quindi fatti eseguire dal software di bordo del drone autonomo Per essere eseguita digitare rosrun quadricoptermt listener
97. otta l interazione tra i programma tori Per ogni modulo risultano semplificate anche le operazioni di manu tenzione e di test I moduli scritti possono essere poi riutilizzati in altri progetti diminuendo il tempo di sviluppo Essi comunicano tra loro creando un architettura complessa ma allo stesso tempo flessibile per la gestione del comportamento del drone Nell ambito del nostro lavoro abbiamo realizzato un applicazione funzionan te sul computer di bordo del drone e quattro applicazioni esterne utilizzabili da un PC remoto L applicazione a bordo gestisce tutta la logica del volo e del gioco ed indispensabile per il funzionamento del drone autonomo Le applicazioni esterne servono invece per monitorare lo stato in cui si trova il drone e nessuna di esse essenziale per il suo funzionamento Il collegamento tra PC e drone avviene tramite una rete Wi Fi dedicata La comunicazione utilizza la piattaforma Robot Operating System ROS 15 la quale fornisce librerie e strumenti che aiutano lo sviluppo di applicazioni Capitolo 5 56 robotiche Il sistema si basa su pacchetti costituiti da uno o pi processi nodi i quali si scambiano messaggi strutture dati pubblicati su topic 5 1 Applicazione a bordo del drone L applicazione che abbiamo sviluppato stata scritta in C utilizzando l editor Code Blocks 4 un applicazione modulare basata su pthread messi a disposizione dal linguaggio I moduli pre
98. pa della pubblicazione di messaggi riguardanti la partita in corso tra il drone autonomo e quello telecomandato I messaggi pubblicati vengono ascoltati da un applicazione creata ad hoc che ha lo scopo di informare il giocatore umano circa lo stato della partita Il messaggio utilizzato di tipo std_msgs String msg 14 fornito da ROS e definito semplicemente come una stringa di testo Le stringhe inviate da questo topic sono e inizio segnala l inizio della partita ed inviato appena il drone au tonomo accende i motori Dal momento della sua ricezione il drone telecomandato pu decollare e sparo segnala che il drone autonomo sta sparando il laser per colpire il suo avversario e preso segnala che il drone autonomo ha colpito l avversario 63 Capitolo 5 64 e atterra segnala che il drone autonomo sta per iniziare l atterraggio poich ha terminato l energia Dal momento della sua ricezione il dro ne telecomandato ha 30 secondi a disposizione per impedire la ricarica di energia e vincere la partita e decolla segnala che il drone autonomo sta ripartendo dopo la fase di ricarica e vinto segnala la fine della partita Il giocatore umano ha vinto Al momento della sua ricezione il drone telecomandato deve atterrare e perso segnala la fine della partita Il giocatore umano ha perso Al momento della sua ricezione il drone telecomandato deve atterrare Topic tempo Il topic tempo si occupa della
99. possono far aumentare enormemente il suo valore I valori calcolati delle azioni proporzionale integrale e derivativa necessarie a eliminare l errore dal setpoint vengono poi sommati ad un valore base Esso rappresenta il valore centrale da fornire al processo per ottenere lo scopo desiderato Algoritmo 1 Controllore PID Require setpoint errore setpoint misura derivata errore errorePrecedente dt integrale errore x dt if integrale gt limite_integrale then integrale limite_integrale end if if integrale lt limite_integrale then integrale limite_integrale end if p calc P x errore i_cale I x integrale d_calc D x derivata if d_calc gt d_limite then d_calc d_limite end if if d_calc lt d_limite then d_cale d_limite end if errorePrecedente errore pidvalue p_calc i_calc d_calc valore Base 6 1 2 Decollo La fase di decollo la prima fase del gioco necessaria al drone autonomo per mettersi in moto e raggiungere la quota base di 150 cm La prima cosa ad essere eseguita durante questa fase la calibrazione degli accelerometri e l armamento della scheda di volo Il PID per il controllo quota in caso di decollo stato implementato in modo tale da eliminare il limite massimo del valore integrale necessario durante il mantenimento della quota Infatti soprattutto a batteria scarica il drone 75 Capitolo 6 76 autonom
100. ppa tori che li mantengono sempre aggiornati E molto importante che il software di volo sia open source poich necessa rio modificarlo come mostrato in seguito per poter aggiungere o cambiare alcune funzionalit utili al nostro lavoro Tra le schede presenti in commercio abbiamo scelto la Crius All In One Pro Flight Controller V2 Figura 4 3 e utilizzato il software Multiwii Que sta scheda una delle pi economiche e versatili presenti poich possibile installarvi sia il Multiwii che una versione modificata dell Arducopter chia mata MegaPirateNG Quest ultima caratteristica stata determinante nella scelta insieme al fatto che la qualit dei sensori presenti al suo interno paragonabile a quello delle schede direttamente concorrenti Figura 4 3 Crius AII In One Pro Flight Controller V2 La Crius presenta le seguenti caratteristiche e Controllo fino ad un massimo di 8 motori e 8 canali di ingresso per le riceventi pi canale PPM SUM e 2 uscite per il sistema di gimbal su due assi e 4 porte seriali per i moduli di debug Bluetooth OSD GPS telemetria e 8 porte analogiche per sensori di velocit corrente voltaggio led e porta I2C a 5 V Architettura hardware e memoria dedicata per la registrazione dei dati e microcontrollore ATMega 2560 16AU e MPU6050 giroscopio accelerometro a sei assi e HMC5883L magnetometro digitale a tre assi e MS5611 01BA03 altimetro di precisione e porte FT232RQ USB U
101. r Architettura hardware un brevissimo lasso di tempo comunque sufficiente a far riavviare l Odroid e conseguentemente a far cadere il drone La mancata risposta ai comandi era sempre causata dalle vibrazioni ma agenti sulle prese USB collegate al Phub o direttamente all Odroid Quest ultima problematica non causava la caduta del drone ma l impossibilit di continuare il volo autonomo Abbiamo risolto i problemi fissando tutti i collegamenti USB e le alimen tazioni tra i vari dispositivi utilizzati con la colla a caldo In questo modo nessun componente pi influenzato dalle vibrazioni ed comunque semplice togliere la colla per modifiche future 4 3 6 Sistema operativo Come sistema operativo possibile utilizzare una distribuzione Linux oppure Android Abbiamo scelto di installare una distribuzione Linux per avere una maggiore disponibilit di software utilizzabile e per sfruttare al massimo la velocit e le prestazioni dell Odroid In particolare abbiamo utilizzato una versione di Ubuntu sviluppata dall azienda no profit Linaro che si occupa di software specifico per piattaforme ARM La versione del kernel la 3 0 62 4 4 Webcam La webcam una videocamera che invia immagini in tempo reale ad un computer collegato generalmente tramite USB PE CA Logitech Figura 4 11 Webcam Logitech c270 Nel nostro progetto stata utilizzata per cercare il drone avversario e per stabilire se una volta sparato i
102. r funzionare all interno di un ambiente con delle precise caratteristiche gi elencate nei capitoli preceden ti Non risultano prove in cui il drone avatar non viene mai individuato al l interno della partita purch questo rispetti le regole comportamentali di sicurezza in particolare quella di non stare sopra o sotto il drone autonomo 7 4 Inseguimento basato sul colore I test effettuati per quanto riguarda questa fase mirano a verificare il corretto funzionamento sia dell individuazione del drone sia della risposta attuata La calibrazione dei valori HSV ha portato a dei risultati che permettono di 95 Capitolo 7 individuare correttamente il colore rosso Figura 7 7 anche in condizioni di luce differenti Alcuni falsi vengono rilevati soprattutto rispetto al il colore marrone Figura 7 7 Individuazione del rosso immagine reale e immagine filtrata Il filtro applicato sulle forme ha permesso di eliminare ulteriori falsi e i test effettuati dimostrano che vengono effettivamente selezionati solo i ret tangoli orizzontali rossi In Figura 7 8 viene rappresentato come il drone autonomo individua corret tamente la scocca del drone telecomandato all interno di un ambiente con diverse forme color rosso Figura 7 8 Individuazione del drone avversario Esiste comunque la possibilit che il drone veda dei falsi positivi anche 96 Prove sperimentali se le probabilita sono ridotte Varie prove hanno dimostra
103. ra 2 5 Quadricottero che riprende un atleta Capitolo 2 10 2 1 2 Ricerca Il volo autonomo l area di ricerca in cui i quadricotteri vengono maggior mente usati L obiettivo quello di farlo volare senza l intervento umano gestendo tutte le informazioni di volo e agendo di conseguenza autonoma mente Esistono vari progetti di questo genere L Universit della Pennsylvania ha sviluppato delle tecniche di volo che permettono a un quadricottero di seguire la traiettoria migliore per rag giungere una posizione desiderata La posizione del quadricottero calcolato attravero il sistema di traccia mento Vicon 16 Questo sistema permette attraverso delle telecamere a infrarossi poste all interno di un ambiente di catturare i raggi IR emessi da alcuni marcatori collocati a bordo del quadricottero Figura 2 6 Questi quadricotteri sono in grado di compiere manovre molto aggressi a Telecamera b Marcatori Figura 2 6 Telecamera e marcatori Vicon ve come passare attraverso spiragli grazie a un solido modello dinamico che tiene conto dei possibili errori dei sensori di bordo e del posizionamento calcolato 18 Un altro progetto proveniente dall Universit del Minnesota mostra come sia possibile pilotare un quadricottero attraverso il pensiero Attraverso un cappello dotato di elettrodi sono stati analizzati gli impulsi elettrici del cer vello consentendo al pilota di comandare il quadricottero Figura 2 7
104. riesce a mantenere le oscillazioni a un valore accettabile Infine sono stati testati il decollo e l atterraggio Come spiegato nel capitolo precedente essi fanno parte del controllore di quota ma con alcune modifi che Le Figure 7 3 e 7 4 mostrano rispettivamente il funzionamento del decollo e dell atterraggio Durante il decollo il drone raggiunge velocemente la quota prefissata senza eccessive oscillazioni Prove sperimentali 180 170 160 150 140 130 120 110 100 3388 50 30 20 10 1 13 25 37 49 61 73 85 97 109 121 133 145 157 169 181 Altezza reale Setpoint Figura 7 3 Risposta del drone ad un decollo 180 170 160 150 140 130 120 110 100 80 85883 30 20 10 0 _ 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 Altezza reale Setpoint Figura 7 4 Risposta del drone ad un atterraggio 93 Capitolo 7 94 Allo stesso modo la discesa dolce e non permette pericolosi rimbalzi al suolo In Figura 7 5 riportato il grafico di un decollo con batteria scarica Come si puo vedere con la stessa potenza con cui prima raggiungeva e superava ampiamente il setpoint adesso il drone non riesce pi a salire Non appena il controllore si accorge di questa situazione viene aumentato il margine di potenza utilizzabile cosi da permettere il completame
105. roppo basso il drone diventa molto instabile e aumentare la I aumenta la capacita di mantenere una posizione e di ridurre gli sbandamenti ma allo stesso tempo aumenta il tempo di ritorno alla posizione di partenza Diminuisce l importanza della P e diminuire la I migliora la reazione ai cambiamenti ma aumenta gli sbandamenti e aumentare la D aumenta la velocit con cui gli errori vengono recuperati Un valore troppo alto introduce oscillazioni Aumenta l importanza della P e diminuire la D riduce le oscillazioni quando si torna nella posizione iniziale dopo un errore Questo recupero diventa pero pit lento I valori che abbiamo ottenuto dopo molte prove pratiche sono mostrati in Figura 4 6 4 3 Odroid L Odroid una piattaforma di sviluppo commercializzata dall azienda sud coreana Hardkernel che si basa su architettura ARM ed stata selezionata come elaboratore principale di bordo Architettura hardware TO a RATE TPA ROLL FITCH 0 018 o M M TA ALT Pos Posk Mawr LEVEL MAG MID 050 THROT EXPO RATE EXPO Figura 4 6 Valori ottenuti per i PID a Odroid U2 senza dissipatore b Odroid U2 con dissipatore Figura 4 7 Odroid U2 Esso rappresenta il cuore del nostro lavoro Tutti i componenti utilizzati infatti sono collegati all Odroid che grazie al software sviluppato gestisce il flusso di informazioni e prende le decisioni utili a far volare autonomamente il dro
106. rua visualizzato non cambi Nello stesso tempo si pu verificare che le vibrazioni introdotte dalla rotazione dei motori non influenzino il comportamento degli accelerometri Anche in questo caso basta verificare che i valori degli accelerometri rimangano co stanti La stessa procedura si pu effettuare anche con le eliche collegate prestando molta attenzione alla forza che si d ai motori Se queste operazioni hanno dato un esito negativo inutile continuare perch il drone non voler mai correttamente 31 Capitolo 4 32 La messa a punto vera e propria della scheda riguarda i parametri dei controllori PID ampiamente spiegati in seguito presenti nel software che hanno lo scopo di far reagire correttamente il quadricottero a seguito di un comando ricevuto Questi parametri dipendono strettamente dalla forma e dalla struttura del drone Per trovare i valori corretti per ogni asse su cui opera il drone sia mo partiti dai valori standard proposti dal software Multiwii andandoli a modificare uno ad uno fino a raggiungere la stabilit ed il comportamento desiderati Modificando i valori dei PID il modo di agire del drone si trasforma in questo modo e aumentare la P aumenta la stabilta e la solidita Si nota una grossa resistenza ad ogni tentativo di muovere il drone Quando tale valore troppo alto il drone inizia ad oscillare e perdere il controllo e diminuire la P diminuisce la resistenza ai movimenti Se e t
107. samente le specifiche date poich la presenza di rosso o infrarossi indesiderati pu compromettere il funziona mento del gioco Tale ambiente non semplice da creare o trovare Il costo del gioco ancora troppo elevato rispetto al prezzo di una console per videogame termine di paragone per quanto riguarda i robogame Que sto dovuto soprattutto alla presenza di due agenti robotici e alla tecnologia montata a bordo del drone autonomo 8 2 Sviluppi futuri Considerando il lavoro svolto in questa tesi ci sono alcuni aspetti che pos sono essere rivisti e migliorati Per quanto riguarda il drone per prima cosa si potrebbe aggiungere un sen sore per l analisi del flusso ottico Tale sensore funziona come una camera con una risoluzione molto bassa ed una velocit elevata In questo modo montando il sensore vicino al sonar rivolto verso il terreno possibile sta bilizzare il drone eliminando tutti gli slittamenti e i movimenti involontari che al momento non sono sotto al nostro controllo Come detto pi volte all interno della tesi il numero di sensori di prossimit presenti non sono sufficienti a garantire una sicurezza totale Si potrebbe quindi pensare di aumentare il loro numero e migliorarne la gestione Un ulteriore sviluppo potrebbe consistere nell alleggerire complessivamente il drone togliendo ad esempio il dissipatore dell Odroid Un drone pi leg gero risulta essere pi manovrabile Si potrebbe inoltre pens
108. se avviene a scatti di 30 poich un suo utilizzo troppo prolungato causa instabilit del mezzo La direzione della rotazione casuale Yaw e pitch non vengono dunque utilizzati contemporaneamente Se in qualsiasi momento viene rilevato l altro drone questa fase si conclude passando ad un altro stato specifico L Algoritmo 3 descrive questa fase di gioco Algoritmo 3 Ricerca angoloCompiutoTotale 0 angoloC ompiutoScatti 0 angoloCasuale random 100 if angoloCompiutoT otale lt 360 angoloCasuale then angoloCompiuto calcola Angolo controllo AngoloScattit angoloCompiuto angoloCompiutoT otale angoloCompiuto if controlloAngoloScatti lt 30 then yaw yawBase forzaY aw else controlloAngoloScatti 0 end if else pitch pitchBase forzaPitchAvanzamento end if 6 4 Inseguimento basato sul colore Questa fase del gioco avviene quando il drone autonomo individua quello telecomandato tramite il riconoscimento del colore della sua scocca L obiettivo di questo stato quello di avvicinarsi al drone telecomandato fino al momento in cui non vengono individuati i led infrarossi posti sotto di esso Nello specifico per rappresentare i colori abbiamo considerato due modelli RGB e HSV Il modello RGB Red Blue Green utilizza l intensit luminosa dei colori pri mari per l appunto rosso blu e verde Logica di gioco Combinando questi colori possibile infatti individuare tutt
109. senti sono e BoardManagement si occupa della gestione della comunicazione con la scheda di volo e SensorManagement si occupa della gestione della comunicazione con Arduino e i relativi sensori e ServerConnection si occupa dell invio dei dati per monitorare il volo e il gioco e ServerReader si occupa della ricezioni di comandi da terra e VideoManagement si occupa dell acquisizione delle immagini dalla webcam e della loro elaborazione e FlightManagement si occupa della gestione del volo ed utilizza i dati provenienti da tutti gli altri moduli Ogni modulo utilizza delle classi di supporto in cui vengono memorizzati e successivamente letti i valori provenienti dai vari sensori 5 1 1 BoardManagement La comunicazione tra la scheda di volo e l elaboratore di bordo avviene in maniera seriale su bus USB La scheda di volo infatti dotata di una porta micro USB che collegata all Odroid Il software Multiwii installato come controllore sulla scheda di volo mette a disposizione un protocollo chiamato MSP Multiwii Serial Protocol che permette di comunicare con la scheda Il modulo in questione richiede cicli camente alla scheda i dati necessari e li processa In figura 5 1 riportato il diagramma delle classi di questo modulo Architettura software BoardRPY BoardManagement accelerometer Rpy gyroscope Rpy magnetometer Rpy angx short int angyx short int headx short int imu sensor
110. site http ardrone2 parrot com AR FlyingRace http blog parrot com 2011 04 27 ar flyingace free app available on the app store AR Rescue http blog parrot com 2012 01 04 rescue Code Blocks Website http www codeblocks org cvBlob Website http code google com p cvblob Forum Odroid http forum odroid com Odroid U2 Website http www hardkernel com main products prdt_info php g_code G135341370451 OpenCV Website http opencv org Regolamento ENAC http www enac gov it repository ContentManagement information N122671512 Regolamento_APR_ ed 1 pdf ROS imagetransport http wiki ros org image_transport ROS Imu msg docs ros org api sensor_msgs html msg Imu html ROS Marker msg http docs ros org api visualization_msgs html msg Marker html ROS Range msg http docs ros org api sensor_msgs html nsg Range html ROS String msg http docs ros org api std_msgs html msg String html ROS Website http wiki ros org 106 BIBLIOGRAFIA 16 Vicon Website http www vicon com 17 D Calandriello D Martinoia A Bonarini Physically interactive ro bogames Definition and design guidelines Robotics and Autonomous Systems 61 739 748 2013 18 D Mellinger N Michael V Kumar Trajectory generation and control for precise aggressive maneuvers with quadrotors International Journal of Robotics Research 31 664 674 2012 19 K LaFleur K Cassady A Doud K Sh
111. te nell applicazione il nodo game che in ascolto dei topic gioco e tempo Figura 5 8 Applicazione di interfaccia del gioco 5 3 Diagramma ROS Lo schema in Figura 5 9 riporta le relazioni tra le varie applicazioni spiegate nel capitolo corrente server Figura 5 9 Diagramma delle relazioni tra nodi e topic ROS 69 Capitolo 5 70 Capitolo 6 Logica di gioco Parte della disumanita del computer sta nel fatto che una volta programmato e messo in funzione si comporta in maniera perfetta mente onesta Isaac Asimov La complessa gestione del gioco viene suddivisa in pi stati ognuno dei quali agisce per raggiungere un determinato obiettivo Una divisione di questo tipo ha permesso di sviluppare le singole fasi di gio co separatamente permettendo di testare stato per stato l intera logica del gioco In questo modo non risulta nemmeno complesso inserire un nuovo stato di gioco oltre quelli gi presenti dando estendibilit al software Il modulo di FlightManagement utilizza i dati provenienti da tutti gli altri moduli per determinare quale stato eseguire Lo stato evocato compie diverse analisi dei dati per poi far svolgere al drone autonomo delle azioni per avvicinarlo al suo scopo In questo capitolo vengono illustrati i vari stati che compongono la logi ca di gioco necessari a far svolgere al drone autonomo diverse azioni che gli permettono di volare autonomamente e di rispettare le regole del
112. tica sta muovendo i suoi primi passi anche all interno delle case perfino per quanto riguarda il semplice divertimento Una delle nuove frontiere della robotica infatti l interazione uomo robot con scopo di intrattenimento Telecomandare robot stato uno dei primi metodi per interagire con essi pilotando piccole auto aerei o elicotteri Un altro tipo di interazione ludica con strumenti tecnologici si sviluppata attraverso i videogiochi In questo caso si gioca contro una macchina attra verso l utilizzo di uno schermo e di opportune interfacce La fusione di questi due tipi di gioco ha dato vita a quelli che vengono definiti con il termine Robogame I Robogame non sono altro che giochi in cui vi una partecipazione fisica del giocatore non pi attraverso lo schermo ma con un oggetto reale mediante l impiego di uno o pi robot La partecipazione al gioco pu avvenire in due modi utilizzando un robot telecomandato avatar oppure partecipando direttamente In entrambi i casi sia giocatore umano sia robot autonomo dovranno rispettare le regole del gioco quindi necessario che il gioco sia stimolante e divertente e che il robot autonomo si comporti nella maniera pi adeguata possibile per creare un interesse che pu essere attivato da un certo livello di sfida Capitolo 2 Possono essere utilizzati diversi tipi di robot distinguibili essenzialmente in robot di terra d acqua e volanti I robot di terra posson
113. to che il drone riesce a individuare la scocca dell avversario a partire dai 12 m di distanza Figura 7 9 Figura 7 9 Individuazione del drone avversario dalla lunga distanza La risposta del drone risulta tempestiva ed efficiente riuscendo ad avvi cinarsi in brevissimo tempo al drone telecomandato Manovre rapide da parte del drone telecomandato specialmente se ai bordi della visione della webcam del drone autonomo riescono comunque a far perdere momentaneamente la sua traccia In questo caso come spiegato nel capitolo 6 la strategia prevede che il drone ruoti dalla parte in cui lo ha individuato l ultima volta e a meno che il giocatore non sia particolarmente abile nel fuggire pu riagganciarlo 7 5 Inseguimento basato su infrarossi I test dell inseguimento basato su infrarossi hanno verificato la prontezza del drone autonomo a seguire quello telecomandato quando questi vicino Si verificato che la distanza massima in cui possibile individuare i led infrarossi posti sulla scocca di circa 5 m I controllori PID risultano efficaci per seguire costantemente un giocatore con abilit media Alcuni problemi nascono quando non vengono rilevate le due fonti infrarossi per via dell angolazione tra i due droni o semplicemente per la troppa lontananza In questo caso il drone non riesce ad allinearsi correttamente con quello telecomandato 7 5 1 Fuoco Per quanto riguarda questa fase stato testato il riconoscime
114. tti i ragazzi dell AirLab per le loro indicazioni e i consigli che sono stati di ottimo aiuto durante la realizzazione di questo lavoro e a tutte le persone che hanno in qualche modo contribuito a tutto questo Marco Indice Introduzione LAD Str ttura tedi ui Soin aan le Pek aE ee A eg as Stato dell arte 21 Quadricottero y a sig kas a e ee ee a o Pe DAD Utilizzi sae aed ae to nda GE Ge a 2512 RICE CAS y ara a AG wie Ag Rei Bhs 2 1 3 Giochi con quadricottero 2 1 4 Regolamento italiano 2 2 Robogame sai fo a death edt oR ats A we a Struttura del gioco 3 1 Specifiche del gioco o e 220202020048 3 1 1 Regole e linee guida o did CAPONE eat Ra A as e e 3 2 1 Drone autonomo 2 000 eee ee 3 2 2 Drone telecomandato 2008 319 Ambiente rA peak a oe Wg eee SO Da Secs A Architettura hardware AT Struttura Dase ur ese ie ake Snes kee dee fade Bd 42 Seheda di volo resosi Li lie RA a ADA Installazione face it E Get eg ta AD Sottw re st csi Line la ee A cea soe Bs Bed Se 4 2 3 Messa a punto 0 00000 00 ABs drad seed oe Fee oo HA bas Ms Bede apa he oho 4 3 1 Caratteristiche 4 3 2 Piattaforme concorrenti 00 4 4 3 3 Componenti aggiuntivi 4 34 Montaggio a ie sao e Se ae eS 4 3 5 Problematiche 10 11 12 13 17 17 18 19 19 20 23
115. ura 2 1 Configurazioni quadricottero Il sistema di controllo si basa su quattro canali throttle pitch roll e yaw Stato dell arte Figura 2 2 4 iA do Throttle 4 Pitch Roll sa Figura 2 2 roll pitch yaw e throttle Consideriamo wy1 W2 w3 e w4 come le velocit angolari di ciascun moto re nel caso della configurazione a X Figura 2 1 a Il throttle aumenta Ar R o diminuisce A4 R7 le velocit di tutti e quattro i motori causando la salita o la discesa del quadricottero wi w1 A wo w2 An w3 w3 AA wi w4 An Il pitch permette al quadricottero di andare in avanti A4 Ag R o indietro A4 Ag RI aumentando o diminuendo la velocit dei motori posteriori rispetto a quelli anteriori wy w1 Ap w2 w2 AB w3 w3 A wi w4 Ag Allo stesso modo funziona il roll in cui per ci si muove a destra Ax Ap Rt e sinistra A4 Ap RT cambiando la velocit dei motori laterali Capitolo 2 w w AA we w3 Ap w3 w3 Ap wa w4 AA Lo yaw invece determina la direzione di volo modificando la velocit di ro tazione dei motori opposti A destra con 4 g R a sinistra con A As ABER wy w AA wr wo Ap w3 w3 A wa w4 Ap 2 1 1 Utilizzi Il principale vantaggio dei quadricotteri la loro semplicit di utilizzo L o peratore infatti non deve preoccuparsi di stabilizzare il velivolo n tantome
116. urceforge net projects opencvlibrary files opencv unix 2 4 4 0penCV 2 4 4a tar bz2 download tar xvf OpenCV 2 4 4a tar bz2 E infine alla compilazione e installazione cd OpenCV 2 4 4a mkdir build cd build cmake D CMAKE BUILD TYPE RELEASE D CMA KE_INSTALL_PREFIX usr local D WITH_TBB ON D BUILD_NEW_PYTHON_SUPPORT ON D WITH_V4L ON D INSTALL_C_EXAMPLES ON D BUILD EXAMPLES ON D WITH_QT ON D WITH _OPENGL ON make sudo make install A 1 3 Cvblob Per prima cosa necessario scaricare dal sito http code google com p cvblob downloads list la versione 0 10 4 di cvblob e scompattarlo nella cartella CVBLOB Per compilare eseguire questi comandi cd CVBLOB cmake DOpenCV_DIR indirizzo_OpenCv make Successivamente cvblob viene installato con il seguente comando sudo make install Una volta installato necessario modificare il file culabel cpp Nello spe cifico vanno modificate le linee 34 e 40 portandole da const char movesE const char moves a const signed char movesE 110 Appendice A Configurazione const signed char moves A 2 Configurazione pc remoto Il pc remoto non indispensabile per il volo autonomo del drone tuttavia puo essere utile per monitorare le informazioni di base del quadricottero e del gioco stesso Il sistema operativo del pc utilizzato Ubuntu 12 10 Anche sul pc remoto deve ess
117. zione L aereo modellista ha l obbligo di avere un continuo contatto visivo diretto con l ae reomodello senza l utilizzo di apparecchiature Il volo permesso di giorno in aree non abitate e non devono essere superati i 70 m di altezza e i 200 m di raggio da dove si trova il pilota Nel caso che l aeromodello superi i 25 kg richiesta un et minima di 18 anni In ogni caso l operatore dovr assumere la responsabilit di segnalare gli eventuali incidenti causati Stato dell arte 2 2 Robogame Con il termine Robogame intendiamo quel tipo di interazione tra uomo e robot ai fini di riprodurre un gioco Nel gioco partecipano due o pi agenti con il vincolo che ci sia almeno un robot autonomo e una persona la quale pu partecipare direttamente oppure utilizzando un altro robot telecoman dato avatar I Robogame sono stati ideati come l evoluzione dei videogiochi in cui la par tecipazione del giocatore diventa fisica molto importante pertanto creare un interazione in grado di divertire mantenendo il costo il pi possibile ac cessibile Il robot autonomo deve essere in grado di fornire un esperienza piacevole e coinvolgente per il giocatore attraverso il movimento segnali audio o visivi Deve inoltre essere in grado di inserirsi in un ambiente dinamico risponden do in modo efficace ai cambiamenti Il robot si trova infatti in un ambiente a lui sconosciuto in grado di cam biare durante il gio

Download Pdf Manuals

image

Related Search

Related Contents

K127取扱説明書を見る  NEW HOLLAND CR  Type D5001 Type D0901  観象) ・大きくガタガタしている。 は し ご兼 一脚立  User`s Manual  Sostituzione variatore  レーザー溶接機 - 株式会社ユーボン  Alliance Laundry Systems 000 BTU Clothes Dryer User Manual  BSP HCMC Branch Internet Banking Personal Purpose Account  イ - 神戸夙川学院大学 観光文化学部 観光文化学科  

Copyright © All rights reserved.
Failed to retrieve file