Drone-teams programming is rapidly expanding since it allows to automatically perform a lot of useful tasks. Existing systems are able to manage a group of drones and dispatching them in the environment. All these systems deal with outdoor applications, where medium/big sized drones collaboratively perform tasks making use of the Global Positioning System (GPS) to navigate in the space. We want to deal with the indoor context, and no one of the existing system is fully suitable for it. Indeed, the indoor context implies applications with different requirements compared to the outdoor ones: there is need for a small number of drones(5/10), each one performing a different action independently from the others, while in the outdoor environment generally there is need for a large number of drones to perform the same action. To address this problem, we propose the concept of Trip, that is nothing but a movement of a drone from a point A to a point B at the end of which an action (picture,measurement etc.) can be performed. No one of the existing programming systems provides the concept of Trip. Furthermore the second important goal is to make the system autonomous in the choice of the drone to allocate for each Trip. This means that the user does not need to take this important decision. We propose the Pluto programming framework as a solution to these problems. It consists of two main components: the Graphical Editor and the Main Application. With the former a programmer can build an application by simply connecting functional blocks. Each block implements a precise functionality, for example there is one that chooses the drones to assign to each sensing task, one that manages the priority of the sensing tasks etc. Then, through the "Generate code" command, the Pluto Graphical Editor generates the source code of the second main component, the Pluto Main Application. The final user uses this generated Pluto Main Application to define and execute the sensing tasks. The key strength of our programming framework is its scalable architecture, in which the central brain is independent from the particular navigation API, which means that the system manages the dispatching of drones and their failures independently of the specific navigation algorithm. We evaluated the Pluto programming framework by proposing its use to real testers and asking them for a feedback. Moreover we measured its software and hardware performance and also tried to implement some existing applications with it. After the evaluation we noticed that, even if with some limits, Pluto could really simplify the developing of drone-teams applications.

La programmazione di team di droni è in rapida espansione, in quanto permette di eseguire in maniera automatica un gran numero di azioni utili. I sistemi esistenti sono in grado di gestire un gruppo di droni e farli navigare nell'ambiente. Tutti questi sistemi trattano applicazioni outdoor, nelle quali droni di dimensione medio / grande collaborano insieme per svolgere varie azioni, utilizzando il sistema di posizionamento globale (GPS) per navigare nello spazio. Il nostro obbiettivo è quello di affrontare il contesto indoor, e nessuno dei sistemi esistenti è completamente adatto per esso. Infatti, il contesto indoor implica lo sviluppo di applicazioni con requisiti differenti rispetto a quello outdoor: c'è bisogno di un piccolo numero di droni (5/10), ciascuno che esegua un'azione diversa, indipendentemente da tutti gli altri, mentre in ambiente outdoor generalmente c'è bisogno di un gran numero di droni che eseguano la stessa azione. Per risolvere questo problema proponiamo il concetto di Trip, che non è altro che un movimento di un drone da un punto A ad un punto B al termine del quale viene eseguita un'azione (scatto di una foto, misurazione di una grandezza fisica ecc.). Nessuno dei modelli di programmazione esistenti fornisce il concetto di Trip. Inoltre, il secondo obiettivo importante è quello di rendere il sistema autonomo nella scelta del drone da assegnare ad ogni Trip. Ciò significa che l'utente non deve prendere questa importante decisione. Per rispondere a tutti questi problemi, abbiamo sviluppato il framework di programmazione Pluto. Pluto ha due componenti principali: il Graphical Editor e la Main Application. Con il primo, un programmatore può costruire un'applicazione semplicemente collegando dei blocchi funzionali. Ogni blocco implementa una funzionalità precisa, per esempio ce n'è uno che sceglie i droni da assegnare a ciascun Trip, un altro che gestisce la priorità dei Trip ecc. Quindi, grazie alla funzionalità di generazione del codice, il Pluto Graphical Editor genera il codice sorgente del secondo componente principale, la Pluto Main Application. L'utente finale utilizza questa Main Application per definire ed eseguire i compiti nell'ambiente. Il punto di forza del nostro framework è la sua architettura scalabile che lo rende indipendente dalle API di navigazione utilizzate. Ciò significa che il sistema è capace di gestire l'invio dei droni e i loro fallimenti indipendentemente dall'algoritmo di navigazione specifico. Abbiamo testato l'utilizzo del framework di programmazione Pluto, proponendone l'uso a dei tester reali e chiedendo loro un feedback. Inoltre abbiamo misurato le prestazioni software e hardware ed abbiamo cercato di implementare con esso alcune applicazioni realmente esistenti. Grazie alla fase di valutazione, abbiamo notato che, anche se è caratterizzato da alcuni limiti, Pluto risulta uno strumento utile al fine di semplificare lo sviluppo di applicazioni per team di droni.

Programming abstractions for nano-drone teams

BELGIOIOSO, MANUEL;CARDELLINI, ALBERTO
2014/2015

Abstract

Drone-teams programming is rapidly expanding since it allows to automatically perform a lot of useful tasks. Existing systems are able to manage a group of drones and dispatching them in the environment. All these systems deal with outdoor applications, where medium/big sized drones collaboratively perform tasks making use of the Global Positioning System (GPS) to navigate in the space. We want to deal with the indoor context, and no one of the existing system is fully suitable for it. Indeed, the indoor context implies applications with different requirements compared to the outdoor ones: there is need for a small number of drones(5/10), each one performing a different action independently from the others, while in the outdoor environment generally there is need for a large number of drones to perform the same action. To address this problem, we propose the concept of Trip, that is nothing but a movement of a drone from a point A to a point B at the end of which an action (picture,measurement etc.) can be performed. No one of the existing programming systems provides the concept of Trip. Furthermore the second important goal is to make the system autonomous in the choice of the drone to allocate for each Trip. This means that the user does not need to take this important decision. We propose the Pluto programming framework as a solution to these problems. It consists of two main components: the Graphical Editor and the Main Application. With the former a programmer can build an application by simply connecting functional blocks. Each block implements a precise functionality, for example there is one that chooses the drones to assign to each sensing task, one that manages the priority of the sensing tasks etc. Then, through the "Generate code" command, the Pluto Graphical Editor generates the source code of the second main component, the Pluto Main Application. The final user uses this generated Pluto Main Application to define and execute the sensing tasks. The key strength of our programming framework is its scalable architecture, in which the central brain is independent from the particular navigation API, which means that the system manages the dispatching of drones and their failures independently of the specific navigation algorithm. We evaluated the Pluto programming framework by proposing its use to real testers and asking them for a feedback. Moreover we measured its software and hardware performance and also tried to implement some existing applications with it. After the evaluation we noticed that, even if with some limits, Pluto could really simplify the developing of drone-teams applications.
AFANASOV, MIKHAIL
ING - Scuola di Ingegneria Industriale e dell'Informazione
29-apr-2015
2014/2015
La programmazione di team di droni è in rapida espansione, in quanto permette di eseguire in maniera automatica un gran numero di azioni utili. I sistemi esistenti sono in grado di gestire un gruppo di droni e farli navigare nell'ambiente. Tutti questi sistemi trattano applicazioni outdoor, nelle quali droni di dimensione medio / grande collaborano insieme per svolgere varie azioni, utilizzando il sistema di posizionamento globale (GPS) per navigare nello spazio. Il nostro obbiettivo è quello di affrontare il contesto indoor, e nessuno dei sistemi esistenti è completamente adatto per esso. Infatti, il contesto indoor implica lo sviluppo di applicazioni con requisiti differenti rispetto a quello outdoor: c'è bisogno di un piccolo numero di droni (5/10), ciascuno che esegua un'azione diversa, indipendentemente da tutti gli altri, mentre in ambiente outdoor generalmente c'è bisogno di un gran numero di droni che eseguano la stessa azione. Per risolvere questo problema proponiamo il concetto di Trip, che non è altro che un movimento di un drone da un punto A ad un punto B al termine del quale viene eseguita un'azione (scatto di una foto, misurazione di una grandezza fisica ecc.). Nessuno dei modelli di programmazione esistenti fornisce il concetto di Trip. Inoltre, il secondo obiettivo importante è quello di rendere il sistema autonomo nella scelta del drone da assegnare ad ogni Trip. Ciò significa che l'utente non deve prendere questa importante decisione. Per rispondere a tutti questi problemi, abbiamo sviluppato il framework di programmazione Pluto. Pluto ha due componenti principali: il Graphical Editor e la Main Application. Con il primo, un programmatore può costruire un'applicazione semplicemente collegando dei blocchi funzionali. Ogni blocco implementa una funzionalità precisa, per esempio ce n'è uno che sceglie i droni da assegnare a ciascun Trip, un altro che gestisce la priorità dei Trip ecc. Quindi, grazie alla funzionalità di generazione del codice, il Pluto Graphical Editor genera il codice sorgente del secondo componente principale, la Pluto Main Application. L'utente finale utilizza questa Main Application per definire ed eseguire i compiti nell'ambiente. Il punto di forza del nostro framework è la sua architettura scalabile che lo rende indipendente dalle API di navigazione utilizzate. Ciò significa che il sistema è capace di gestire l'invio dei droni e i loro fallimenti indipendentemente dall'algoritmo di navigazione specifico. Abbiamo testato l'utilizzo del framework di programmazione Pluto, proponendone l'uso a dei tester reali e chiedendo loro un feedback. Inoltre abbiamo misurato le prestazioni software e hardware ed abbiamo cercato di implementare con esso alcune applicazioni realmente esistenti. Grazie alla fase di valutazione, abbiamo notato che, anche se è caratterizzato da alcuni limiti, Pluto risulta uno strumento utile al fine di semplificare lo sviluppo di applicazioni per team di droni.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
Belgioioso_Cardellini_Master_Thesis.pdf

accessibile in internet per tutti

Descrizione: Documento di tesi
Dimensione 2.39 MB
Formato Adobe PDF
2.39 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/107085