In recent years, robotic applications have surged and the popularity of robotics has increased both in academia and industry. Researchers of different fields are imagining new ways to intertwine their expertise with robotics, creating challenging and remarkable applications. Companies are developing a new generation of service robots targeted to the general public and meant to be part of our everyday life. Robotics is evolving from its mechatronics roots, more focused on the development of the ideal hardware platform, to explore the advanced functionalities offered by complex applications. We are entering a new software age for robotics. Unfortunately, the tools available to developers are not on par with the expectations. Nowadays, developing an application for a robot is more similar to craftsmanship than engineering. An all-around robotic expert with a combined knowledge about the application, the capabilities of the platform, and the underlying framework is necessary to guide the design and development process. The objective of this thesis is to provide a collection of methodologies, techniques and tools to support all the actors involved in the development process of a robotic system. Our contribution is threefold, with each part targeted to a specific development role. For the system designer, we provide a modelling approach to design, build and analyse the robot architecture, without worrying about the underlying framework. For the component developer, we created a code generation toolchain, which removes the burden of implementing framework-related boilerplate and let the developer focus on the component functionalities. For the application developer, we designed an abstraction layer on top of the robotic platform, it decouples the robot from its capabilities, creating the equivalent of robot APIs. All these contributions are built for a single purpose but using self-contained technologies, hence they are, at the same time, independent and part of a continuous design and development process.

Negli ultimi anni, le applicazioni robotiche sono esplose e la popolarità della robotica è aumentata sia nell'industria che nell'accademia. Ricercatori di campi diversi immaginano nuovi modi per intrecciare le loro competenze con la robotica, creando applicazioni interessanti e stimolanti. Le aziende stanno sviluppando una nuova generazione di robotica di servizio pensata per il grande pubblico e per essere parte della vita di tutti i giorni. La robotica si sta evolvendo dalle sue radici meccatroniche, più incentrata sullo sviluppo della perfetta piattaforma hardware, per esplorare funzionalità avanzate offerte da applicazioni complesse. Sta iniziando una nuova era del software per la robotica. Purtroppo, gli strumenti a disposizione degli sviluppatori non sono all'altezza delle aspettative. Attualmente, sviluppare un'applicazione robotica è un'attività più simile all'artigianato che all'ingegneria. Un robotico esperto con una conoscenza completa dell'applicazione, delle capacità della piattaforma, e del framework sottostante è necessario per coordinare il processo di design e sviluppo. L'obiettivo di questa tesi è di fornire una collezione di metodologie, tecniche e strumenti per supportare tutti gli attori coinvolti nello sviluppo di un sistema robotico. Il nostro contributo è triplo, con ogni parte mirata a uno specifico ruolo dello sviluppo. Per il designer di sistemi, forniamo un approccio basato sui modelli per progettare, sviluppare e analizzare l'architettura del robot, senza preoccuparsi del framework sottostante. Per lo sviluppatore di componenti, abbiamo creato una toolchain per la generazione del codice, allo scopo di rimuovere il carico associato all'implementazione di codice ricorrente e permettere allo sviluppatore di concentrarsi sulle funzionalità del componente. Per lo sviluppatore di applicazioni, abbiamo ideato un livello di astrazione per separare la piattaforma hardware dalle capacità del robot, creando l'equivalente di API robotiche. Tutti questi contributi sono stati creati con un fine comune ma usando tecnologie autocontenute, perciò sono, allo stesso tempo, indipendenti e parte di un processo di design e sviluppo continuo.

Models, code generation, and abstraction: a triple approach to enhance robot software development

BARDARO, GIANLUCA

Abstract

In recent years, robotic applications have surged and the popularity of robotics has increased both in academia and industry. Researchers of different fields are imagining new ways to intertwine their expertise with robotics, creating challenging and remarkable applications. Companies are developing a new generation of service robots targeted to the general public and meant to be part of our everyday life. Robotics is evolving from its mechatronics roots, more focused on the development of the ideal hardware platform, to explore the advanced functionalities offered by complex applications. We are entering a new software age for robotics. Unfortunately, the tools available to developers are not on par with the expectations. Nowadays, developing an application for a robot is more similar to craftsmanship than engineering. An all-around robotic expert with a combined knowledge about the application, the capabilities of the platform, and the underlying framework is necessary to guide the design and development process. The objective of this thesis is to provide a collection of methodologies, techniques and tools to support all the actors involved in the development process of a robotic system. Our contribution is threefold, with each part targeted to a specific development role. For the system designer, we provide a modelling approach to design, build and analyse the robot architecture, without worrying about the underlying framework. For the component developer, we created a code generation toolchain, which removes the burden of implementing framework-related boilerplate and let the developer focus on the component functionalities. For the application developer, we designed an abstraction layer on top of the robotic platform, it decouples the robot from its capabilities, creating the equivalent of robot APIs. All these contributions are built for a single purpose but using self-contained technologies, hence they are, at the same time, independent and part of a continuous design and development process.
PERNICI, BARBARA
DANIEL, FLORIAN
13-mar-2020
Negli ultimi anni, le applicazioni robotiche sono esplose e la popolarità della robotica è aumentata sia nell'industria che nell'accademia. Ricercatori di campi diversi immaginano nuovi modi per intrecciare le loro competenze con la robotica, creando applicazioni interessanti e stimolanti. Le aziende stanno sviluppando una nuova generazione di robotica di servizio pensata per il grande pubblico e per essere parte della vita di tutti i giorni. La robotica si sta evolvendo dalle sue radici meccatroniche, più incentrata sullo sviluppo della perfetta piattaforma hardware, per esplorare funzionalità avanzate offerte da applicazioni complesse. Sta iniziando una nuova era del software per la robotica. Purtroppo, gli strumenti a disposizione degli sviluppatori non sono all'altezza delle aspettative. Attualmente, sviluppare un'applicazione robotica è un'attività più simile all'artigianato che all'ingegneria. Un robotico esperto con una conoscenza completa dell'applicazione, delle capacità della piattaforma, e del framework sottostante è necessario per coordinare il processo di design e sviluppo. L'obiettivo di questa tesi è di fornire una collezione di metodologie, tecniche e strumenti per supportare tutti gli attori coinvolti nello sviluppo di un sistema robotico. Il nostro contributo è triplo, con ogni parte mirata a uno specifico ruolo dello sviluppo. Per il designer di sistemi, forniamo un approccio basato sui modelli per progettare, sviluppare e analizzare l'architettura del robot, senza preoccuparsi del framework sottostante. Per lo sviluppatore di componenti, abbiamo creato una toolchain per la generazione del codice, allo scopo di rimuovere il carico associato all'implementazione di codice ricorrente e permettere allo sviluppatore di concentrarsi sulle funzionalità del componente. Per lo sviluppatore di applicazioni, abbiamo ideato un livello di astrazione per separare la piattaforma hardware dalle capacità del robot, creando l'equivalente di API robotiche. Tutti questi contributi sono stati creati con un fine comune ma usando tecnologie autocontenute, perciò sono, allo stesso tempo, indipendenti e parte di un processo di design e sviluppo continuo.
Tesi di dottorato
File allegati
File Dimensione Formato  
2020_03_PhD_Bardaro.pdf

accessibile in internet per tutti

Descrizione: thesis
Dimensione 7.54 MB
Formato Adobe PDF
7.54 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/153317