• Non ci sono risultati.

5. Architettura Software

N/A
N/A
Protected

Academic year: 2021

Condividi "5. Architettura Software"

Copied!
8
0
0

Testo completo

(1)

Per lo sviluppo del software ci siamo affidati a ROS il quale agisce come un aggregatore (Figura 5.1) per gli altri software usati. Gli algoritmi sviluppati in questa tesi sono stati testati sul robot youBot Kuka in ambiente simulato V-Rep. Il robot youBot viene però usato imponendo dei vincoli di anolonomia virtuali. In questo modo è possibile rendere lo youBot simile cinematicamente all macchina da lavoro in esame. Ed inoltre è possibile validare i nostri algoritmi sullo youbot reale, disponibile presso il laboratorio PERCRO, senza grossi cambiamenti.

Gli algoritmi sviluppati sfruttano il framework ROS per la comunicazione ed in particolare si utilizza lo stack di navigazione di ROS per la registrazione degli ostacoli basata su una mappa di tipo GridCells. Lo sviluppo dei moduli software è avvenuto principalmente in C++, viene usato il meccanismo di comunicazione asincrona basata sui topics per condividere i dati tra i vari software usati per implementare il resto degli algoritmi. ROS ha permesso l’astrazione dall’hardware specifico consentendo di generare codice riusabile.

Gli algoritmi di navigazione sono stati implementati su Matlab Simulink sfruttando il Robotic System Toolbox per l’integrazione con ROS.

Figura 5.1.: Panoramica sull’architettura: ROS consente la comunicazione tra le applicazioni

Per quanto riguarda la gestione dell’interfaccia è stata creata una classe FalconHaptic ed il nodo RosFalcon che si occupano di gestire la Novint Falcon con una frequenza almeno di 1 Khz. Per il calcolo del workspace e delle superfici di singolarità del manipolatore situato a bordo dello youBot sono stati usati sia il software Wolfram Mathematica [39] che il Symbolic toolbox per Matlab.

(2)

5.1. Ambiente di lavoro

La tesi è stata sviluppata su una macchina reale workstation Dell M4800 sulla quale è stata installata la versione di Ubuntu Precise Pangolin 12.04. La distribuzione di ROS maggior-mente utilizzata è la Fuerte ed il simulatore robotico scelto è V-Rep. Per garantire una completa compatibilità e affidabilità vengono utilizzate due versioni di ROS simultaneamen-te la Fuersimultaneamen-te e Hydro per sfruttare le nuove funzionalità di quest’ultima e al simultaneamen-tempo ssimultaneamen-tesso mantere la compatibilità con i software rilasciati dalla KUKA.

Figura 5.2.: Analisi del software rilassciato dalla KUKA

In Figura 5.2 si mostra lo studio preliminare dello stack di navigazione rilasciato dalla Kuka per il robot youBot, prima di procedere all’implementazione del sistema in esame in questo lavoro.

5.2. Strategia di comando dell’interfaccia aptica

La teleoperazione a workspace illimitato ovvero della teleoperazione di un veicolo mette in risalto le diversità a livello cinematico, dimensione del workspace e proprietà dinamiche tra l’interfaccia aptica ed il veicolo, si rende quindi necessaria una qualche strategia per mappare i comandi dell’utente in comandi per il robot; una analisi di queste metodologie viene affrontata in [40, 41]. Gli autori considerano la teleoperazione di un robot mobile ed il loro principale obiettivo è quello di confrontare le principali strategie di comandi. Le strategie di teleoperazione proposte sono:

• Posizione–Velocità: si associa alla posizione dell’interfaccia la velocità per il robot • Posizione – Posizione: si associa la distanza percorsa dal robot con la posizione

inter-faccia

• Hybrido: si combinano queste due strategie.

In questo lavoro, l’interfaccia aptica viene controllata mediante uno schema posizione-velocità. Infatti si converte la posizione dell’end-effector con la velocità di avanzamento e di imbardata per il veicolo anolonomo.

(3)

5.3. Progettazione del sistema

5.3.1. Implementazione su Matlab/Simulink

Gli algoritmi di assistenza aptica sono stati sviluppati su Simulink. In questo modo lo sviluppo è stato più semplice a fronte però di maggiore tempo per eseguire l’intero sistema. Nel mese di giugno è stato rilasciato il robotic system toolbox(RTS) beta per offrire un interfaccia tra Matlab/Simulink e ROS. Abbiamo quindi iniziato a studiare questo toolbox il quale offre alcune caratteristiche come:

• Consente la comunicazione con ROS • Supporta ROS messages

• Supporta ROS services

• Supporta Rosbags (ROS log files)

Al fine di sviluppare una struttura il più possibile performante, dopo una serie di test prelimi-nari, abbiamo deciso di sviluppare tutti gli algoritmi di assistenza su simulink (Figura 5.3), il quale si occupa di richiamare ad ogni passo di simulazione una serie di interpreted ma-tlab function create appositamente per permettere lo scambio di messaggi su ROS e la comunicazione con il resto del software.

Figura 5.3.: Schema a blocchi del software sviluppato relativo agli algoritmi di assistenza su Simulink

Si mostra nelle figure seguenti (Figura 5.4, Figura 5.5, Figura 5.6) gli schemi a blocchi degli algoritmi implementati.

(4)

Figura 5.4.: Schema a blocchi relativo alla gestione della comunicazione con ROS

(5)

Figura 5.6.: Schema a blocchi relativo al problema della “compensione del workspace”

Infine in Figura 5.7 si mostra la macchina a stati per realizzare gli stimoli relativi alla “comprensione del workspace”.

Figura 5.7.: Stateflow per la gestione dei segnali “relativi alla comprensione del workspace”

5.3.1.1. Implementazione su ROS

In ROS Fuerte è stato creato il package nav_brokk package. All’interno di questo package troviamo i file di configurazione ed il file di launch per avviare lo stack di navigazione. Inoltre è stato sviluppato il nodo map_clear che si occupa periodicamente di cancellare la mappa. Lo stack di navigazione di ROS si occupa principalmente di leggere i sensori di tipo laser e pointcloud per creare e tenere aggiornata la mappa degli ostacoli (Figura 5.8).

(6)

Figura 5.8.: Mappa degli ostacoli offerta dallo stack di navigazione di ROS

In Figura 5.9 e Figura 5.10 si illustra i nodi ed i topics sviluppati per la tra Simulink, V-Rep, la Novint Falcon. Abbiamo due istanze di Simulink una per gestire le strutture dati e le modalità di navigazione standard, costiera e ottima. Mentre un’altra istanza di Simulink per gestire gli stimoli relativi alla “compresnione del workspace”.

(7)

Figura 5.10.: Panoramica completa dei nodi e dei topics su ROS

Figura 5.11.: L’albero delle trasformazioni su ROS

Infine in Figura 5.11 si mostra l’albero delle trasformazioni dei sistemi di riferimento che consentono di effettuare il cambio di coordinate tra un frame ad un’altro.

(8)

Riferimenti

Documenti correlati

L’ultima parte del mio lavoro, verterà su un analisi di regressione su dati di tutti i paesi OCSE: l’obiettivo fondamentale sarà quello di verificare come variabili inerenti

Rather, what would be required of the Court is an assessment of the adequacy of the means used to reach a given end: was Community action really necessary to

Keywords: European regulation, public interventions in electricity prices, network tariffs, capacity mechanisms, network codes, EV charging infrastructure, electricity storage,

The authors have developed the argument that the 1267 regime continues to be in need of urgent major reform in order to solve these tensions within United Nations law.28 As long

Le difficoltà e le tensioni si accumulano le une sopra le altre e saranno infine insostenibili: Dario e Maura – nel momento decisivo, nel momento che avrebbe dovuto

Moreover, as transport capacity was tested using both an hydrophobic and an hydrophilic guest, it is possible to affirm that the CMS presented in this work exhibit the

Si è potuto constatare che, per quanto riguarda i blog multi autore, il lettore ne legge i contenuti principalmente per una questione legata al reperimento

The need for specialization is the most obvious reason why the three courses from which the following pages draw did not purport to make a general survey of their whole