Simulatori per uav come testbed per agenti intelligenti › images › TTP › seminario...

Post on 05-Jul-2020

1 views 0 download

Transcript of Simulatori per uav come testbed per agenti intelligenti › images › TTP › seminario...

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