SIMULATORI PER UAV COME TESTBED PER AGENTI
INTELLIGENTIJessica Di Labbio
Joint work with:Loris Pensierini - Informatica e Società Digitale (IES)
Emanuele Tonucci – Informatica e Società Digitale (IES)
DRONE
Un drone e ̀ un particolare dispositivo, con limitate capacita ̀ decisionali, in grado di sollevarsi in aria, che può essere comandato a distanza in remoto da un computer e/o direttamente da radiocomando, con funzioni di autostabilizzazione in volo. In generale un drone viene indicato con il termine “multirotore” in base al numero di rotori di cui e ̀ equipaggiato: tricottero (3), quadricottero (4), esacottero (6), ottocottero (8), ognuno dei quali ha una differente capacita ̀ di carico che può portare in volo.
Inizialmente utilizzati in contesto hobbistico, sono diventati in brevissimo tempo un importante strumento di lavoro e supporto. Oggi vengono impiegati maggiormente nella fotografia aerea e del rendering 3d ma sono diversi i campi di applicazione nei quali vengono utilizzati (militare, archeologico, edilizio, nel campo della sicurezza, nell’agricoltura, hobbistica, ecc..).
Principio di funzionamento
■ Bernoulli : la forma dell’elica costringe l’aria soprastante ad accelerare rispetto a quella sottostante riducendo creando una depressione al di sopra dell’ala ;
■ Effetto downwash : la spinta dell’aria verso il basso da parte di una superficie , elica, che le passa in mezzo con una certa angolazione ( pitch)
■ Effetto coanda : capacità dell’aria di aderire ad una superficie che passi in mezzo velocemente, o anche ad una superficie ferma se investita da un flusso d’aria che si muove velocemente rispetto ad essa.
Gradi di libertà
■ Spostamento traslazionale lungo l’asse x
■ Spostamento traslazionale lungo l’asse y
■ Spostamento traslazionale lungo l’asse z
■ Rotazione intorno all’asse x (roll)
■ Rotazione intorno all’asse y (pitch)
■ Rotazione intorno all’asse z (yaw)
Gradi di libertà
■ Traslazione lungo z : incremento di potenza su
tutti i rotori
■ Roll : aumento di potenza del rotore 1 rispetto al
rotore 3
■ Pitch : aumento di potenza del rotore 4 rispetto
al rotore 2
■ Yaw : incremento pari di potenza di due rotori
opposti e decremento pari dei restanti due
Sistemi di riferimento
■ Sistema NED (North East Down): sistema
mobile definito in riferimento al piano
tangente alla superficie terreste in un
qualsiasi punto.
Asse N : diretto verso il Polo Nord geografico
Asse E : diretto verso Est
Asse D : perpendicolare agli altri due e rivolto
verso il basso , verso il centro della terra
■ Sistema Assi Corpo (Body): sistema di
riferimento solidale con il veivolo
SISTEMA VOLANTE ( UAV )
Un Unmanned Aerial Vehicle (UAV)è un
velivolo caratterizzato dall’assenza del
pilota umano a bordo. Con questo termine
ci si riferisce a componenti hardware e
software in grado di essere pilotati in
remoto tramite supporti telemetrici e ,allo
stesso tempo, di autopilotarsi grazie a leggi
di controllo codificate all’interno del
software. Il sistema volante è caratterizzato
dai servizi di bordo e dai carichi paganti.
Servizi di bordo
I servizi di bordo sono costituiti da tutti quei componenti che consentono al mezzo di volare:
■ Frame: scheletro del multirotore su cui verranno collocati i componenti;
■ Esc: regolatori di velocità interposti tra la batteria ed i motori;
■ Motori : vengono scelti in base al carico che si vuole sollevare . La scelta , comunque , è orientata sui brushless per massimizzare le prestazioni;
■ Eliche: scelte in funzione delle caratteristiche del motore;
■ Flight Controller : autopilota open-source;
■ Batteria: in funzione dell’autonomia necessaria all’esecuzione dell’attività;
■ Telemetria: permette di ricevere ed inviare dei dati al multicoptero;
■ Gps: basandosi sulla latitudine e longitudine permette modalità di volo fluide e semplici.
Carichi paganti
I carichi paganti (payload) sono tutti gli strumenti che non servono direttamente a far
volare il drone ma sono utilizzati per compiere dei task per missioni specifiche:
■ Videocamera: utilizzata ,principalmente, per fotogrammetria e rendering 3d;
■ Camera termica: impiegata in individuazione di guasti , videosorveglianza ed
operazioni di soccorso ;
■ Sensori ambientali: adoperati , soprattutto , in casi di monitoraggio ambientale.
SISTEMA DI TERRA ( GCS )
Il sistema di terra è formato da sottosistemi di controllo (joypad,tastiera..) e di lettura e rappresentazioni dati .
Il termine Ground Control Station (GCS) indica una struttura hardware/software in grado di controllare gli UAV a distanza .
Con la stazione di terra è possibile configurare parametri di volo , pianificare missioni autonome , visualizzare in tempo reale i dati di volo ,pilotare droni da computer, tablet, smartphone , controllare i movimenti dei carichi paganti e registrare missioni. Tra i software forniti per questi supporti abbiamo MissionPlanner , APM planner e QGroundControl. Quest’ultimi , tra le varie funzionalità , permettono di effettuare la calibrazione iniziale e di caricare il firmware specifico all’interno del multicopter che stiamo utilizzando.
PROTOCOLLO DI COMUNICAZIONE
MAVLINK (Micro Air Vehicle Link) è un
protocollo di comunicazione,
caratterizzato da strutture in linguaggio
C, che permette tramite lo scambio di
pacchetti, l’interazione tra GCS e UAV .
Oltre ad essere opensource questo
protocollo consente la definizione di
nuovi messaggi attraverso file XML che
vengono convertiti in codice sorgente in
diversi linguaggi in base alle esigenze.
PROTOCOLLO DI COMUNICAZIONE
■ Lunghezza minima : 8 bytes
■ Lunghezza massima: 263 bytes
■ Tipologie di messaggi supportati : 256
I messaggi di maggior interesse :
■ Mavlink msg id heartbeat : sempre richiesto ed utilizzato per indicare che il sistema è presente ed
attivo. Il sistema, in caso di mancata ricezione d questo pacchetto , potrebbe ricevere un comando
di failsafe;
■ Mavlink msg id sys status : indica lo stato del sistema (locked, manual, guided…);
■ Set mode : specifica la modalità di volo da utilizzare ;
■ Mavlink msg id mission request list : comunica una serie di posizioni da raggiungere;
■ Mavlink msg id mission request: indica un’unica posizione da raggiungere;
■ Mavlink msg id param request read : richiesta inviata per ottenere la lettura di alcuni parametri
(altitudine, coordinate GPS, stato della batteria...);
■ Mavlink msg id param request list : richiesta inviata per ottenere indicazioni su tutti i parametri;
SITL
Il SITL (software in the Loop) è una build del codice di Ardupilot che permette di simulare un aereo , un drone o un rover senza alcun hardware. SITL è stato originariamente sviluppato su Linux ma può essere anche eseguito su Windows, Mac OSX e macchina virtuale.
Al fine di utilizzare questa tecnica sarà necessario installare ed eseguire tre componenti:
■ MAVProxy : console basata su GCS, viene comunemente utilizzata per il test e lo
sviluppo di Ardupilot
■ Cygwin : fornisce gli strumenti e le librerie che permettono di ricostruire Ardupilot su diverse piattaforme
■ Ardupilot : codice di sviluppo open-source .
SITL
Avviando il SITL si avrà:
■ un terminale dove digitare i comandi;
■ una console che mostrerà lo stato corrente del veicolo e i messaggi;
■ una mappa che indicherà la posizione corrente del veicolo e che potrà essere utilizzata per controllare i movimenti del veicolo e le missioni.
SITL
■ passare alla modalità guidata , armare i motori e decollare :
mode guided
arm throttle
takeoff 40
■ passare alla modalità CIRCLE (cerchio) impostando il raggio a 2000 cm
mode circle
param set circle_radius 2000
■ atterrare
mode rtl
TESTBED
Il sistema di simulazione progettato consente associare un agente intelligente ad un
UAV , utilizzando il mavlink , ed attivare delle specifiche capability per controllare i
dispositivi hardware del drone e, quindi, modificare il piano di volo in tempo reale.
Per ottenere questo risultato sono stati utilizzati:
■ Eclipse: ambiente di sviluppo multipiattaforma
■ APM Planner: software open-source con funzione di GCS;
■ Mavlink-master: codice di sviluppo open-source;
Mavlink-master
main.c
common
common.h mavlink_msg_heartbeat.h mavlink_msg_setmode.h ..... mavlink.h
.... ... test
Overview del codice
Mavlink-master
Mavlink-master
Nel header common.h vengono enumerati:
■ Le tipologie del mezzo ;
■ Gli stati ;
■ Gli id dei componenti ;
■ Le tipologie di comandi ;
■ I risultati delle missioni ;
■ ….
Permettendoci di :
■ definire in maniera univoca il messaggio da inviare ;
■ Comunicare con uno specifico sistema o componente hardware ;
■ Verificare il risultato dei comandi inviati ;
Mavlink-master Gli headers mavlink_msg_.h definiscono le strutture e le funzioni che possono essere utilizzate per il controllo e l’acquisizione di parametri.
Queste funzioni permettono di :
■ Settare lo stato del drone
■ Impostare la modalità di volo
■ Variare i parametri di volo
■ Pianificare e avviare delle missioni
■ ….
Utilizzando questi headers è,quindi, possibile interagire con il sistema di volo.
Test
SIMULATORI PER UAV COME TESTBED PER AGENTI
INTELLIGENTI
GRAZIE PER L’ASCOLTO