1.4 Stato dell’Arte
1.4.3 Robot Sociali utilizzati in ricerca e terapie riabilitative
L’interesse della ricerca negli ultimi anni si è spostato fortemente verso nuove possibilità di utilizzo dei robot sociali. L’applicazione più ricorrente è l’educazione e la terapia riabilitativa per soggetti affetti da disturbi neuro-psichiatrici. Questo da quando si è riscontrato sperimentalmente da parte di queste persone un approccio entusiasmante verso i Robot Umanoidi, persino in confronto alle normali terapie con tutor umani. Ad esempio è stato visto come un robot possa aumentare la capacità di attenzione di un bambino affetto da DSA, semplicemente risultando più coinvolgente e meno minaccioso di un essere umano. Inoltre il robot è in grado di mimare il
1.4. STATO DELL’ARTE 11
bambino e viceversa, rappresentando sia uno stimolo che una ricompensa per le azioni del soggetto [BD99].
L’utilizzo di una piattaforma robotica in questo settore non è altro che il tentativo di costruire un ponte e ricucire il divario che separa l’ambiente stabile, prevedibile e sicuro di un semplice giocattolo dal mondo potenzialmente imprevedibile del contatto e del comportamento umano.
Si deve in ogni caso ammettere che il comportamento sociale umano può essere estremamente difficile da determinare, e di conseguenza da riprodurre. D’altra parte, come afferma la Dott.ssa Kerstin Dautenhahn nei suoi studi che vedono l’utilizzo dei robot come strumento per la terapia dei bambini autistici, si può pensare di creare un ambiente semplificato e allo stesso tempo aumentare gradualmente la complessità dell’interazione in accordo con le abilità e il coinvolgimento individuali dell’interlocutore [DW02].
In base a quanto precedentemente espresso è evidente che per questa particolare categoria di robot si dovrà impostare un approccio completamente diverso, dove l’interazione e la comunicazione diventa il servizio principale che l’automa deve fornire.
Alcune caratteristiche fondamentali da sviluppare saranno:
• Una spiccata capacità sensoriale in grado di estrarre informazioni emotiva- mente rilevanti nei soggetti analizzati dal robot (ad es. espressione, postura, gestualità).
• Un sistema cognitivo in grado di elaborare questa grande quantità di dati estratti in modo veloce, efficace e flessibile.
• Un sistema di attuazione in grado di riprodurre un’espressività molto più fine e precisa rispetto agli esempi visti in precedenza (ad es. un cotrollo fine per la gestione di un numero maggiore di motori in grado di muovere un’espressione facciale).
Si riportano di seguito alcuni esempi significativi riscontrati in letteratura. AURORA Project. Il progetto AURORA (AUtonomous RObotic platform as a
Remedaial for children with Autism)8 rappresenta il primo studio sistematico sulla
Robot Therapy. All’interno di questo progetto, che fa capo alla precedentemente
12 CAPITOLO 1. IL ROBOT SOCIALE
menzionata Dott.ssa K. Dautenhahn, i soggetti affetti da autismo sono invitati ad interagire con i robot e l’ambiente attraverso azioni sociali sincronizzate e coordinate.
Robota. Uno dei robot utilizzati all’interno del progetto AURORA è Robota, una bambola robotica alta 50 cm e dal peso di appena 500 g. Robota è il nome di una serie di mini-robot umanoidi a forma di bambola sviluppati in un progetto di Aude Billard. Il primo prototipo era costituito da componenti della LEGO per il corpo e componenti in plastica di una bambola commerciale per le braccia e la testa. Il robot disponeva di cinque sensori al tatto posizionati sotto i piedi, nelle mani e sulla bocca, un sensore di tilt per misurare l’inclinazione verticale del corpo e quattro rivelatori a infrarossi. Ognuno di questi rivelatori funzionava sia da emettitore che da ricevitore. Il sistema di comunicazione era molto semplice, costituito da una tastiera e un altoparlante. Il controllo del robot era gestito da un micro-controllore 512 kbyte EPROM e una RAM statica da 128 kbyte. Per la CPU era stato utilizzato un processore Philips 93C100 che lavora a 30Mhz. Tutti i circuiti elettrici si trovavano al di fuori del robot mentre i sensori e i motori erano connessi tramite fili esterni [DB02].
Robota II. Il secondo prototipo, Robota II, aveva caratteristiche molto simili al primo, solo che ogni modulo era stato reso molto più sofisticato. Oltre a muovere le braccia e la testa, il secondo Robota era in grado di camminare in avanti e indietro grazie a dei piccoli passi. Il corpo del robot era sempre quello della bambola commerciale e conteneva le schede elettroniche (PIC16F870, 4 MHz e 16F84, 16 MHz) e i motori che guidavano braccia, testa e gambe, tutti ad un grado di libertà. In più possedeva un numero maggiore di sensori: switch sulle mani, testa, bocca, e gambe, sensore di inclinazione, sensori di prossimità ad infrarossi, e persino un sensore piroelettrico per avvertire i movimenti umani.
Così come il primo prototipo anche questo secondo robot poteva essere connesso a dei dispositivi esterni, tra cui una tastiera che conteneva un set di otto tasti, un altoparlante e un joystick. Tutto veniva controllato da un chip (PIC). La tastiera veniva precedentemente programmata per riprodurre una nota della scala musicale per ciascuno degli otto tasti. Ne usciva il suono di uno xylofono elettronico. Il robot aveva anche un microfono all’interno del corpo che gli permetteva di ripetere i suoni con la sua voce. Il joystick invece controllava il movimento delle braccia e della testa. Robota II si interfacciava a un PC attraverso un connessione seriale RS232
1.4. STATO DELL’ARTE 13
per usare un programma di sintesi vocale (ELAN), un software di speech processing (Conversay, IBM Viavoice) e per processare i dati video di una telecamera Quick-Cam (CMOS, 640 x 480, 30 fr/sec). La telecamera Quickcam era quella che permetteva al robot di rilevare soggetti nella scena utilizzando un algoritmo in grado di calcolare colori e movimenti. Utilizzando questo sistema di motion tracking il robot riusciva a mimare i movimenti delle braccia dei soggetti e i movimenti laterali della testa dell’utente. Perché questo potesse avvenire il soggetto si doveva trovare seduto molto vicino al robot, guardare precisamente verso di lui, ed essere coinvolto in un gioco di imitazione che prevedeva turni e tempi da rispettare.
Il riconoscimento vocale era fornito da un software commerciale di speech proces-
sing capace di estrarre le parole dalle frasi e assegnare ad esse un significato utile nei
termini della percezione del robot. L’algoritmo di apprendimento consisteva in una rete neurale artificiale chiamata DRAMA (Dynamic Recurrent Associative Memory
Architecture). Finita la fase di apprendimento del linguaggio il robot poteva parlare
con l’utente attraverso lo speaker del PC.
L’algoritmo di apprendimento DRAMA permetteva inoltre al robot di imparare melodie suonate sulla tastiera dall’utente, e inscenare piccoli balletti in base alle melodie, associando sequenze di movimenti a sequenze di note. In più il robot poteva far partire spontaneamente file musicali e iniziare a ballare (ad es. muovendosi avanti e indietro ed effettuando movimenti con le braccia e la testa). Poteva anche emettere suoni simili a quelli emessi da un bambino, come piangere o ridere, a seconda del suo “umore”. Il codice è stato scritto in C e C++ e poteva funzionare su Linux e Windows 95/98. E’ stato testato su un portatile HP4100, Pentium II, 266 MHz, e si è dimostrato funzionare correttamente in real-time [Bil03].
Diversamente, attraverso l’osservazione dello sviluppo del sistema cognitivo umano, specialmente di neonati e bambini, e la relativa modellizzazione nei sistemi robotici, Hideki Kozima e l’Istituto Nazionale giapponese della Tecnologia dell’Informazione e la Comunicaione (NICT)9 hanno sviluppato due robot: Infanoid e Keepon.
Infanoid. Si tratta di un busto di robot umanoide delle dimensioni di un bambino di 3-4 anni (vedi Fig. 1.7). Infanoid dispone di ventinove attuatori, per lo più motori DC con encoder e sensori di coppia, e numerosi sensori distribuiti sul corpo.
14 CAPITOLO 1. IL ROBOT SOCIALE
1.4. STATO DELL’ARTE 15
Le sue mani sono in grado di indicare, afferrare ed emulare un’ampia varietà di gesti e posture socialmente significative. Il movimento delle sopracciglia e delle labbra di cui è dotato gli permette di rappresentare diverse espressioni facciali ed esprimere quindi molteplici stati emotivi. La testa di Infanoid ha due occhi, ognuno dei quali incorpora due sensori visivi CCD. Le immagini catturate dalle telecamere vengono spedite a un insieme di computer per il riconoscimento in tempo reale dei volti umani. Questo avviene grazie a un filtraggio del colore della pelle e un confronto di forma. Riconosce anche oggetti fisici, come i giocattoli, tramite segmentazione, anche qui basata su criteri di colore e movimento. La distanza dei volti e degli oggetti viene calcolata in base alla differenza tra immagine destra e sinistra.
Grazie ai microfoni piazzati all’interno delle orecchie Infanoid ’ascolta’ le voci umane e analizza il suono riportandolo a una sequenza di fonemi. Associando la stringa di fonemi a un pattern di frequenze fondamentali, il robot è così in grado di riprodurre imitazioni vocali. Riesce inoltre a riconoscere ogni variazione dalla frequenza fondamentale estraendone informazioni emotivamente significative.
Infanoid ha una modalità di funzionamento automatico che gli permette il contatto
visivo e delle capacità di attenzione con relativo puntamento. Se necessario, un operatore esterno può apportare aggiustamenti e modifiche sull’attenzione del robot (ad es. la direzione del gaze e la postura) [KNY05].
Keepon. E’ un robot di aspetto biomorfico piuttosto piccolo (12 cm in altezza e 8 cm di diametro) e di materiale morbido (gomma siliconica). Viene utilizzato per esperimenti psicologici con bambini piccoli (Fig. 1.8).
Keepon può effettuare solo due tipi di movimento: (1) esprime la sua attenzione
orientando la faccia verso un certo target nell’ambiente, e (2) esprime i suoi stati emotivi, come il piacere e l’eccitazione, agitando il suo corpo da sinistra a destra e andando su e giù. Il robot è collegato tramite wireless a un PC remoto, da cui un operatore umano o un programma per computer ne controlla il movimento. Anche se il suo aspetto è abbastanza semplice, Keepon ha due telecamere a colori CCD e un microfono sulla punta del naso che offrono quasi le stesse funzionalità audio-visive di
Infanoid [KNY05].
Per un robot, la capacità di trasmettere l’intenzionalità attraverso risposte appa- rentemente infantili può essere molto utile per stabilire una comunicazione sociale
16 CAPITOLO 1. IL ROBOT SOCIALE
Fig. 1.8: Keepon, il piccolo robot che interagisce coi bambini.
naturale, intuitiva, flessibile e robusta con un essere umano. Risponde ottimamente a questa richiesta Kismet.
Kismet. E’ stato sviluppato da Cynthia Breazeal presso il Robotic Life Group del MIT Media Lab10. Questo robot esegue una serie di risposte per mezzo di vari segnali
sociali naturali, comprese direzione dello sguardo, postura, ed espressioni facciali.
Kismet è un volto umanoide (Fig. 1.9) che può generare interazioni sociali espressive
con l’uomo e può mostrare espressioni analoghe a felicità, tristezza, sorpresa, noia, rabbia, calma, dispiacere, paura, e interesse.
E’ stato progettato per avere un aspetto infantile, come quello di un personaggio dei cartoni animati. Le sue sembianze vanno a sfruttare la simpatia e la familiarità che le persone normalmente provano per questo tipo di figure.
Kismet ha quindici gradi di libertà per le movimentazioni del volto. Le parti in
movimento includono sopracciglia, orecchie, palpebre, labbra e bocca. La piattaforma ha anche quattro gradi di libertà per il sistema di visione: ciascun occhio può ruotare attorno a un asse verticale indipendente ed entrambi condividono un asse di rotazione
1.4. STATO DELL’ARTE 17
18 CAPITOLO 1. IL ROBOT SOCIALE
Fig. 1.10: KASPAR, un robot sociale sperimentato in terapia.
orizzontale comune, in più ha un grado di libertà al collo. Ogni bulbo oculare incorpora una fotocamera CCD a colori con una lunghezza focale di 5,6 millimetri.
Kismet è collegato a una rete parallela di otto processori di segnali digitali da 50 MHz
(TMS320C40, Texas Instruments) che gestiscono l’elaborazione delle immagini e due micro-controllori Motorola 68332 che elaborano il sistema motivazionale [BS00].
Più recentemente è stata esplorata la possibilità di utilizzare una piattaforma robotica con ulteriori “capacità sociali” per l’interazione con bambini autistici.
KASPAR. Acronimo di Kinesics And Synchronization in Personal Assistant Ro-
botics, KASPAR è un progetto incentrato sulla creazione di quello che viene chiamato
dai suoi stessi autori un “volto minimamente espressivo”. Nella sua progettazione gli autori si concentrano su pochi comportamenti, gesti ed espressioni facciali salienti, al fine di eseguire esperimenti che studiano sistematicamente l’influenza di ciascuno di queste modalità espressive nell’interazione con le persone. KASPAR è infatti un robot a misura di bambino che utilizza principalmente espressioni e gesti per comunicare con un partner in un’interazione umana (Fig. 1.10).
1.4. STATO DELL’ARTE 19
Il robot ha un corpo statico: torso, gambe e mani non si muovono e sono stati presi da un manichino con sembianze di bambino disponibile in commercio; possiede una testa ad otto gradi di libertà e due braccia a tre gradi di libertà. Caratteristiche importanti della testa di KASPAR sono il suo design minimale, l’inclusione delle palpebre, e la coerenza estetica del viso. Il disegno complessivo della testa e del volto punta ad avvicinare alcune caratteristiche salienti dell’estetica e dei movimenti di un essere umano senza cercare di creare un aspetto ultra-realistico, cioè evitando di imitare ogni dettaglio di un volto umano.
Può essere utilizzato in due modalità: con controllo remoto e in modalità di autonomia. Gli operatori non qualificati possono facilmente gestire e sviluppare programmi per il robot grazie all’apposita interfaccia user-friendly KWOZ (KASPAR
Wizard of OZ ), software che funziona su qualsiasi PC Windows o Linux. Questo
programma è stato utilizzato in scenari di interazione uomo-robot in cui uno speri- mentatore, di solito nascosto ai partecipanti, controllava a distanza il robot da un computer portatile [DNW+09].
Si trovano anche un’altra serie di lavori in cui KASPAR si trova ad operare autonomamente. In questa modalità un Application Programming Interface (API) consente ai programmatori di sviluppare programmi personalizzati e sfruttare il software open source per robot YARP (Yet Another Robot Platform).
A quest’ultima categoria di Robot Sociali, utilizzati nella ricerca scientifica e in protocolli sperimentali di terapie riabilitative, appartiene il Robot Umanoide FACE, l’androide che verrà descritto in dettaglio nel capitolo 2, e che rappresenta la piattaforma hardware sulla quale è stato implementato il Sistema Cognitivo oggetto del presente lavoro di tesi.
Capitolo 2
F.A.C.E.
L’acronimo F.A.C.E. significa “Facial Automaton for Conveying Emotions” ed è il nome di un androide, frutto di un progetto sviluppato presso l’Istituto di Ricerca Centro “E.Piaggio” dell’Università di Pisa1.
FACE è un Robot Sociale Umanoide (vedi Fig. 2.1) inizialmente concepito per es- sere utilizzato all’interno di ambienti terapeutici strutturati nei quali i comportamenti di soggetti affetti da Disturbi dello Spettro Autistico (DSA) sono monitorati tramite dei sensori e processati per essere spediti all’androide affinché generi espressioni facciali.
Nel seguito saranno analizzati in dettaglio i componenti hardware e l’architettura del sistema, suddivisa nelle principali funzioni primitive (percezione, pianificazione, attuazione). Nella parte dedicata alla pianificazione verrà introdotto il sistema cogni- tivo procedurale precedente a questo lavoro. Verranno poi elencate le applicazioni di FACE con le relative limitazioni, per presentare infine gli obiettivi del nuovo sistema cognitivo presentato in questa tesi.
2.1
Hardware
FACE consiste in un corpo passivo articolato a figura intera sul quale è stata montata una piattaforma robotica, questa è costituita da tutti i meccanismi del collo e una testa equipaggiata di un volto ultra-realistico basato sui principi dell’ingegneria biomimetica.
L’ultimo prototipo di FACE ha un volto femminile ottenuto attraverso tecniche di life-casting. La testa contiene un vero e proprio teschio artificiale che riporta le
1http://www.centropiaggio.unipi.it/
22 CAPITOLO 2. F.A.C.E.
Fig. 2.1: FACE, il robot sociale umanoide sviluppato al Centro Piaggio.
dimensioni e la forma di un teschio umano reale, è stato infatti stampato in 3D partendo dalla tomografia computerizzata (CT) di un soggetto umano vivente.
La parte frontale è ricoperta da una speciale pelle artificiale fatta di FrubberTM, un materiale particolare sviluppato dalla Hanson Robotics2. FrubberTM, denominato dal suo creatore anche “flesh rubber”, è un polimero elastico strutturato che imita i movimenti della muscolatura umana reale. Le sue proprietà meccaniche permettono i complessi movimenti facciali richiesti da FACE per riuscire a configurare le espressioni, e sono il risultato di un preciso controllo della dimensione e della distribuzione delle celle d’aria contenute al suo interno (l’aria costituisce il 70% del suo volume). E’ così flessibile che può essere allungato fino al 900%, anche se il range di sicurezza impone uno stretching massimo del 450% rispetto alla lunghezza iniziale, oltre al quale si ha una deformazione permanente.
Il sistema di attuazione consiste in una fine movimentazione della testa del robot e di questa ’maschera’ tramite il controllo di 32 servomotori con un SSC-32 Serial Servo Controller3. Questi servomotori sono tutti integrati nel cranio e collegati
2
http://www.hansonrobotics.com/
2.1. HARDWARE 23
Fig. 2.2: Le “basic emotion” di Paul Ekman interpretate da FACE.
tramite cavi al materiale che compone la faccia del robot, ad eccezione dei cinque motori che si trovano nel collo e che ne attuano le rotazioni di pitch, roll e yaw, utili a direzionare il volto verso l’interlocutore o il punto di maggiore interesse nella scena.
Grazie a questa architettura muscolare artificiale, e al controllo dei servomotori, FACE è in grado di esprimere in modo flessibile e ripetibile le sei “basic emotions” derivate dagli studi di Paul Ekman riguardo alle emozioni umane e la loro esternazione [Ekm92, Ekm99]. Riferendosi alle immagini riportate in Fig. 2.2 in ordine troviamo:
(a) felicità, (b) paura, (c) disgusto, (d) tristezza, (e) rabbia, (f) sorpresa.
Per quanto riguarda l’hardware utilizzato per il sistema sensoriale al momento questo consiste interamente nel sensore Kinect della Microsoft4 del quale viene
utilizzata la relativa libreria SDK (Software Development Kit), supportata dai linguaggi C# e C++. Il dispositivo consiste in una barra contenente i sensori collegata a una piccola base, se ne può osservare una fotografia in Fig. 2.3. Il
24 CAPITOLO 2. F.A.C.E.
Fig. 2.3: Microsoft Kinect v1, attuale sistema uditivo e visivo di FACE.
Kinect corrisponde all’attuale sistema uditivo e visivo del robot. L’elaborazione dei dati forniti dall’SDK sarà maggiormente approfondita nella sezione riguardante l’architettura software del sistema (vedi 2.2.3).
Il Kinect è dotato di una telecamera RGB e di un doppio sensore di profondità a raggi infrarossi. La telecamera RGB ha una risoluzione di 640 × 480 pixel, mentre quella a infrarossi usa una matrice di 320 × 240 pixel. Il dispositivo incorpora un multi-array di microfoni utilizzato dal sistema per la calibrazione dell’ambiente in cui si trova, mediante l’analisi della riflessione del suono sulle pareti e sugli ostacoli rilevati. In tal modo il rumore di fondo viene eliminato ed è possibile riconoscere correttamente le emissioni vocali dei soggetti. La barra del Kinect è motorizzata lungo l’asse verticale, viene quindi calibrata orientandola nella posizione migliore per l’inquadratura e il riconoscimento dei movimenti. Anche il suo sistema di rifermento viene ricalcolato in modo da farlo corrispondere con il punto di vista del robot.
La massima qualità e stabilità delle informazioni è garantita per le immagini catturate in un range di distanza che va da un minimo di 1,2 m a un massimo di 3,5 m. Il dispositivo ha un campo di vista che si estende per 43◦ in verticale e 57◦
in orizzontale. Il motore della base può inclinare la barra di 27◦ sia verso l’alto che verso il basso. La frequenza di acquisizione delle immagini è di 30 fps (frame per
second). Ognuna di queste immagini è una classica immagine video a 24-bit alla
quale si aggiunge un immagine di profondità a 11-bit dalla quale sono estratti i dati relativi alla posizione dei punti in coordinate spaziali (x, y, z) misurate in metri.
La deduzione della posizione del corpo è un processo in due fasi: in primo luogo viene calcolata la mappa di profondità (con luce strutturata), quindi viene estratta l’informazione sulla posizione (utilizzando tecniche di machine learning). Secondo le