• Non ci sono risultati.

Implementazione del modello sulla piattaforma robotica umanoide iCub

7.1 Piattaforma iCub e ambiente di simulazione

Il modello è stato implementato su un robot umanoide denominato iCub [21-22]. Questo ha le dimensioni di un bambino di tre anni di età ed è stato progettato per essere capace di compiere i normali gesti di un bambino in fase di sviluppo: può camminare a quattro zampe e sedersi, le sue mani permettono la manipolazione, e ha testa ed occhi entrambi articolati. Possiede capacità visive, vestibolari, e aptiche . Essendo un sistema aperto, il progetto e la documentazione di tutto l'hardware e software possiede licenza Free Software Foundation GNU così che l'intero sistema possa essere riprodotto, utilizzato e modificato. Concordemente a questo principio è stato distribuito un software di simulazione che gestisce il robot in un ambiente simulato che riproduce le leggi fisiche ed è dunque possibile testare il modello presentato come se fosse implementato sul robot reale. In questo capitolo viene descritta la piattaforma robotica con particolare riferimento alle specifiche tecniche del sistema occhi-testa del robot (fig.7.1). Viene inoltre mostrato l'ambiente di sviluppo utilizzato per le prove sperimentali del modello proposto.

75

Figura 7.1: La piattaforma robotica iCub del progetto RobotCub ha le dimensioni e capacità motorie di un bambino di tre anni. A sinistra è mostrata la testa del robot che possiede 6 gradi di libertà.

Il progetto RobotCub consiste nella realizzazione di una piattaforma robotica umanoide, denominata iCub, per lo studio della cognizione umana. Gli obiettivi del progetto sono:

1) creare una piattaforma aperta e liberamente disponibile per la ricerca scientifica sulla cognizione e

2) l'avanzamento della comprensione dei sistemi cognitivi attraverso lo studio dello sviluppo di essi. Il sistema deve quindi essere capace di imparare come interagire con l'ambiente e come sviluppare le proprie capacità percettive, motorie e comunicative. La forma e la dimensione di iCub sono quelle di un bambino di tre anni, allo scopo di permettergli di sviluppare le sue capacità cognitive attraverso lo sviluppo ontogenetico relazionato all’ambiente in cui interagisce.

Questo robot possiede testa, torso, due braccia con mani e due gambe usate principalmente per camminare a quattro zampe. Nella versione attuale del progetto, l'iCub è alto circa 90 cm, pesa 23 Kg ed ha in totale 53 gradi di libertà distribuiti come segue: 7 per ogni braccio, 8 per ogni mano, 6 per la testa, 3 per il dorso e 7 per ogni gamba. Il sottosistema occhi-testa include primitive di processamento visivo di base, controllo di basso livello, sensori visivi, inerziali e propriocettivi. La maggior parte dei sistemi umanoidi esistenti hanno una struttura della testa semplificata con un ridotto numero di 6 gradi di libertà.

76

L’importanza riconosciuta dei movimenti oculari nello sviluppo giustifica la necessità di raggiungere una complessità maggiore, mantenendo stringenti le specifiche di progetto in termini di peso ed altezza. La progettazione meccanica finale è liberamente disponibile su web in quanto sottoposta a licenza pubblica (General Public License GPL) [23]. Per questo lavoro risulta di particolare importanza citare le specifiche di progettazione che riguardano la testa di iCub [24]. Questa pesa 1.5 Kg e le sue dimensioni sono 13.6 x 17 x 17.3 cm, mentre il collo è 7 x 9 cm. I 6 gradi di libertà della testa comprendono: pan (imbardata), tilt (beccheggio) e swing (rollio) della testa e pan (indipendente) e tilt (comune) degli occhi (fig. 7.2). La torsione degli occhi è stata ignorata perché non utile per il controllo dello sguardo. L'elevazione e l'abbassamento (tilt) degli occhi è sempre comune negli umani, nonostante l'esistenza di muscoli indipendenti, e un attuatore unico è usato per l'elevazione degli occhi di iCub. La vergenza degli occhi è invece assicurata da motori indipendenti. Nei movimenti di versione i due occhi si muovono nella stessa direzione sincronizzati da un controllore DSP. Per il movimento di vergenza gli occhi invece si muovono in verso opposto. Per le specifiche delle ampiezze di movimento dei gradi di libertà della testa sono stati usati come riferimenti i dati della testa umana adulta. I dati sono stati ridimensionati considerando che i bambini hanno velocità significativamente più basse e che le saccadi di piccola ampiezza sono molto simili al movimento di smooth pursuit. E' stato inoltre considerato un rapporto tra la velocità degli occhi e quella del collo compreso tra il 14% e 41% e per le accelerazioni, tra il 2% e il 4%. Usando queste informazioni e ipotizzando un profilo di movimento trapezoidale per ogni movimento degli occhi, sono stati definite le specifiche per ogni giunto. E' stata scelta la velocità massima di pan per gli occhi pari a 180°/s assumendo che il collo possa raggiungere la metà di questa velocità. Il 20% del tempo necessario per il movimento è usato per l'accelerazione mentre un altro 20% per la decelerazione. La rimanente parte della traiettoria è eseguita alla massima velocità. Il meccanismo degli occhi ha tre gradi di libertà, entrambi gli occhi possono eseguire il pan (indipendentemente) e tilt (simultaneamente) (fig. 7.3). Il movimento di pan è guidato attraverso un sistema a cinghia con il motore all'interno della palla dell'occhio. Il tilt è attuato attraverso un'altra cinghia posizionata in mezzo ai due occhi. Ogni sistema possiede un meccanismo di aggiustamento della tensione. In modo da garantire un facile assemblaggio e semplici procedure di manutenzione, l'architettura

77

meccanica è completamente modulare, in questo modo è possibile rimuovere e sostituire un modulo senza dover smontare l’intera struttura Per la visione sono state utilizzate due telecamere di tipo DragonFly [25] con risoluzione VGA e 30 fps di velocità. Queste telecamere sono particolarmente facili da installare in quanto il sensore CCD è montato su una testina remota connessa con il resto dell'elettronica attraverso un cavo flessibile. In questo modo, il sensore è montato nel globo oculare, mentre l'elettronica è fissata un una scheda non mobile nella parte posteriore della testa. La testa contiene sensori inerziali MTi che possono fornire la posizione del corpo. Sono stati inoltre installati diversi microfoni intorno alla testa per poter localizzare la provenienza del suono in tutta l'area circostante. Tutte le schede di controllo sono integrate all'interno della testa e sono connesse ad un computer remoto attraverso un bus CAN. Per misurare la posizione dei giunti della testa, i motori sono forniti di encoders magnetici.

Figura 7.2: Illustrazione dei gradi di libertà della testa. In totale possiede sei gradi di libertà, tre per il collo e tre per il sistema degli occhi.

78

Figura 7.3: Meccanismo che gestisce i tre gradi di libertà degli occhi. La cinghia centrale permette il tilt, mentre il movimento di pan è interno alla palla dell'occhio.

Tabella 7.1: Specifiche di velocità angolare ed accelerazione dei giunti, usate per la testa di iCub.

Per la fase di test sul robot è stato utilizzato un prototipo di simulatore di iCub che usa il motore grafico open-source Open Dynamics Engine (ODE)

79

Esso calcola la leggi fisiche e la dinamica dei motori e permette al robot simulato di considerare il ruolo dei vincoli fisici all'interno di un ambiente riprodotto. Inoltre può calcolare e risolvere forze che emergono attraverso l'interazione di oggetti. In questo modo è possibile calcolare le forze relative ai vincoli nei giunti. ODE include una interfaccia alle OpenGL che facilita la resa grafica degli oggetti nell'ambiente (sfera, scatola, etc.). Il modello simulato è una replica dell'attuale piattaforma iCub che utilizza dati e matrici di inerzia. La piattaforma e i dati stessi possono essere aggiornati e modificati per una migliore resa. Questo simulatore è stato sviluppato per gli utenti del progetto RoboCub come alternativa alla piattaforma fisica per poter sviluppare e testare rapidamente i prototipi studiati. L'obiettivo è rendere la simulazione più vicina possibile al reale robot iCub usando lo stesso tipo di interfaccia. Infatti attraverso la struttura software YARP è possibile controllare i dispositivi del robot simulato e le telecamere o gli attuatori della testa e delle braccia. I giunti del robot all’interno del simulaore hanno le stesse caratteristiche di quello reale in questo modo è possibile fare uso degli stessi comandi e degli stessi parametri. Perciò gli sviluppatori possono sperimentare lo stesso ambiente software con l'addizionale sicurezza dell'esecuzione in un mondo simulato con la possibilità di totale riuso del codice.

Per quanto riguarda il sistema di visione la simulazione dei dispositivi è stata implementata permettendo allo sviluppatore di poter ricevere i dati delle telecamere di entrambi gli occhi. Inoltre il simulatore permette di poter scegliere la vista,di visualizzare cioè un’immagine wide che mostri l’ambiente simulato contenente il robot oppure l’immagine (right)catturata dalla telecamera dell’occhio destro o sinistro(left)..

Nella versione del simulatore utilizzata, vengono riprodotte solo le braccia, il busto e la testa del robot (fig. 7.4).

80

Figura 7.4: Immagine estratta dal simulatore con vista wide.

Documenti correlati