• Non ci sono risultati.

I-CLIPS Brain: Studio e Implementazione di un Sistema Cognitivo per Robot Sociali

N/A
N/A
Protected

Academic year: 2021

Condividi "I-CLIPS Brain: Studio e Implementazione di un Sistema Cognitivo per Robot Sociali"

Copied!
153
0
0

Testo completo

(1)

Università di Pisa

Facoltà di Ingegneria

Corso di Laurea Specialistica in Ingegneria Biomedica

Tesi di laurea specialistica

I-CLIPS Brain:

Studio e Implementazione

di un Sistema Cognitivo

per Robot Sociali

Candidato

Lorenzo Cominelli

Relatore

Controrelatori

Prof. Danilo De Rossi

Prof. Pietro Pietrini

Ing. Daniele Mazzei

(2)
(3)

Alla mia famiglia,

la mia più grande fortuna.

(4)
(5)

Sommario

Percepire e interpretare i comportamenti sociali dell’interlocutore è una sfida fon-damentale per lo sviluppo di Robot Sociali. Questa nuova generazione di automi richiede un apparato sensoriale innovativo in grado di percepire il “mondo sociale ed emotivo” in cui il robot è immerso e un sistema cognitivo in grado di gestire in modo appropriato il flusso di informazioni in entrata dai sensori. E’ necessario quindi un ’cervello’ programmato allo scopo di pianificare una risposta organizzata e ponderata, dipendente dal contesto sociale, e in grado di sfruttare al massimo la capacità espressiva del sistema di attuazione.

Per consentire agli scienziati di progettare modelli comportamentali per automi sociali è fondamentale sviluppare architetture di controllo facilmente utilizzabili, anche da ricercatori senza competenze tecniche di programmazione come psicologi e neuroscienziati.

In questo lavoro un’architettura ibrida deliberativa/reattiva per controllare un robot umanoide sociale è stata integrata con un sistema cognitivo basato su un motore di regole.

Progettazione e realizzazione del sistema complessivo prendono ispirazione dal sistema nervoso umano. In particolare, il sistema cognitivo si basa sulla teorie della mente di Antonio Damasio.

L’architettura è stata testata con il robot FACE (Facial Automaton for Conveying

Emotions), sviluppato al Centro Piaggio, presso l’Università di Pisa. E’ stato dunque

modellato e testato un comportamento sociale per rendere FACE capace di seguire correttamente un soggetto umano durante un compito fondamentale di interazione sociale, e di eseguire nel mentre le espressioni facciali più appropriate in relazione al contesto.

(6)
(7)

Ringraziamenti

Il progetto presentato in questa tesi non sarebbe potuto esistere senza il lavoro di tutte le persone che hanno lavorato negli anni sull’androide FACE.

Oltre al Prof. Danilo De Rossi e l’Ing. Daniele Mazzei, rispettivamente respon-sabile e coordinatore dell’intero progetto, vorrei ringraziare l’intero FACE Team composto dall’Ing. Abolfazl Zaraki, la Dott.ssa Nicole Lazzeri, l’Ing. Michael Pieroni e l’Ing. Roberto Garofalo (http://www.faceteam.it).

In particolare la creazione del blocco cognitivo non avrebbe potuto avere luogo senza l’interfaccia che permette l’integrazione del linguaggio CLIPS all’interno del linguaggio C# con il quale sono stati sviluppati tutti i componenti del software (compreso il programma I-CLIPS Brain). Per questo si rende merito al lavoro “iClips:

an interaction system for controlling a robotic FACE ” della Dott.ssa in Informatica

Nadia Vetrano supervisionato dal Dott. Antonio Cisternino del dipartimento di Informatica dell’Università di Pisa.

(8)
(9)

Indice

Elenco delle Figure xiii

Elenco dei Codici xvi

1 Il Robot Sociale 1

1.1 Note Storiche . . . 1

1.2 Definizione e Caratteristiche . . . 2

1.3 Linee Guida di Progettazione . . . 4

1.4 Stato dell’Arte . . . 5

1.4.1 Robotic Toys ed Entertainment . . . . 6

1.4.2 Robot per l’assistenza . . . 8

1.4.3 Robot Sociali utilizzati in ricerca e terapie riabilitative . . . . 10

2 F.A.C.E. 21 2.1 Hardware . . . 21

2.2 Architettura del sistema . . . 25

2.2.1 Premessa . . . 25

2.2.2 Il Sistema . . . 26

2.2.3 I Servizi . . . 27

2.3 Applicazione di Face . . . 33

2.4 Obiettivi del nuovo Sistema Cognitivo . . . 33

3 CLIPS: il motore del Sistema Cognitivo 37 3.1 I vantaggi della programmazione a eventi . . . 37

3.2 Che cos’è CLIPS . . . 38

3.3 Che cos’è un Sistema Esperto . . . 39

3.4 I Sistemi Esperti e l’Intelligenza Artificiale . . . 40

3.5 Il mondo di CLIPS . . . 41 ix

(10)

3.5.1 Rete Algorithm . . . 42

3.5.2 Componenti di un Sistema Esperto . . . 42

3.6 Funzioni principali di CLIPS . . . 45

3.6.1 Facts . . . . 45

3.6.2 Templates . . . . 47

3.6.3 Rules . . . . 50

3.6.4 Variabili globali . . . 53

3.7 Conflict resolution strategy . . . . 53

3.8 Comandi fondamentali di CLIPS . . . 56

3.8.1 Comandi di Debug . . . . 56

3.8.2 Altri comandi essenziali . . . 57

4 Design del Sistema Cognitivo 59 4.1 Un paradigma di programmazione ibrido . . . 59

4.2 L’interfaccia grafica di I-CLIPS Brain . . . . 61

4.3 La frequenza di elaborazione . . . 62

4.4 Design modulare del Sistema Cognitivo . . . 63

4.5 Design del motore di regole . . . 66

4.5.1 Le Social Cues . . . 66

4.5.2 Rules Layers . . . 67

5 Implementazione del codice 71 5.1 Premessa . . . 71

5.2 Definizione dei Templates . . . 72

5.2.1 Subject . . . . 73

5.2.2 Surroundigs . . . . 76

5.2.3 FACE . . . . 76

5.2.4 Winner . . . 77

5.3 Defglobal, la definizione delle variabili globali . . . . 78

5.4 Deffacts, la definizione dei fatti inziali . . . . 79

5.5 Presence Rules . . . 80

5.6 Look Rules . . . . 82

5.7 Action Rules . . . . 89

5.8 Scelta della Conflict Resolution Strategy . . . 91

5.8.1 Conflitto tra le regole . . . 91

(11)

6 Test e risultati 95

6.1 Interazione di FACE in un ambiente sociale . . . 95

6.1.1 Protocollo sperimentale . . . 96

6.1.2 Estrazione dei dati . . . 96

6.2 Analisi e discussione dei risultati . . . 97

A Le teorie di Antonio Damasio 107 A.1 Emozione e decisione . . . 109

A.2 L’ipotesi del Marcatore Somatico . . . 109

B Codice CLIPS 111

C Codice C# 117

(12)
(13)

Elenco delle figure

1.1 Le Tortoise di W. Grey Walter. . . . 2

1.2 Schema per la classificazione dei Social Robots. . . . 3

1.3 Furby, electronic pet della HASBRO. . . . 7

1.4 AIBO, della Sony Entertainment. . . . 7

1.5 eMuu, il robot sociale sviluppato da Christoph Bartneck. . . . 9

1.6 Daryl, il Service Robot umanoide. . . . 10

1.7 Infanoid, il torso robotico umanoide progettato da Hideki Kozima. . . 14

1.8 Keepon, il piccolo robot che interagisce coi bambini. . . . 16

1.9 Kismet, il volto robotico ideato da Cynthia Breazeal. . . . 17

1.10 KASPAR, un robot sociale sperimentato in terapia. . . . 18

2.1 FACE, il robot sociale umanoide sviluppato al Centro Piaggio. . . . . 22

2.2 Le “basic emotion” di Paul Ekman interpretate da FACE. . . 23

2.3 Microsoft Kinect v1, attuale sistema uditivo e visivo di FACE. . . 24

2.4 Schema dell’architettura ibrida reattiva/deliberativa del sistema. . . . 26

2.5 Scene Analyzer in funzione. . . . 29

2.6 ECS, (Emotional Circumplex Space). . . . 31

2.7 Sperimentazione di FACE presso l’Istituto Stella Maris. . . 34

4.1 Interactive Clips, l’interfaccia grafica dell’I-Clips Brain. . . . 61

4.2 Blocco cognitivo estratto dall’architettura del sistema. . . 65

4.3 Rappresentazione grafica della struttura stratificata del brain. . . . . 69

5.1 Schema del flusso d’informazione all’interno del motore di regole. . . . 80

6.1 Grafici del test di interazione sociale eseguito sul robot FACE. . . 98

A.1 Descartes’ Error, di Antonio Damasio. . . 108

(14)
(15)

Elenco dei codici

3.1 Asserzione di un fatto . . . 45

3.2 Asserzione di più fatti . . . 46

3.3 Esempio di una fact-list . . . 46

3.4 Definizione di fatti . . . 47

3.5 Definizione di un Template . . . . 48

3.6 Asserzione di un Template . . . . 49

3.7 Dimostrazione di una struttura dati incompleta. . . 49

3.8 Definire le regole. . . 51

3.9 Dichiarare la Salience. . . . 52

3.10 Definire variabili globali. . . 53

3.11 Impostare una strategia per la risoluzione dei conflitti. . . 56

3.12 Stampa dell’Agenda. . . . 57

4.1 Esempio di sintassi della CLIPSNet Library . . . 61

4.2 Sintassi per la require di un modulo dall’editor di iClips. . . . 63

5.1 Inizializzazione del brain . . . . 71

5.2 Definizione del template subject . . . 73

5.3 Definizione del template surroundings . . . 76

5.4 Definizione del template face . . . 76

5.5 Definizione del template winner . . . 78

5.6 Definizione della variabile globale k . . . 79

5.7 Definizione dei fatti iniziali . . . 79

5.8 Presence Rules . . . 81

5.9 boring_loneliness . . . 82

5.10 lookrule_raisehand . . . 84

5.11 Codice dello shift dello sguardo . . . 85

5.12 lookrule_speaking . . . 86 xv

(16)

xvi

5.13 lookrule_distance, lookrule_longdistance, lookrule_intrusive

e lookrule_angle . . . 87

5.14 look_at_winner . . . 90

B.1 Contenuto del file init.clp dell’Attention Module . . . 111

C.1 subject.cs . . . 117

C.2 surroundings.cs . . . 121

C.3 CLIPS Action - fun_lookat . . . 122

(17)

Introduzione

Un robot può essere definito sociale in base alle reazioni e ai comportamenti che presenta in un contesto di interazione con l’uomo e all’espressività che è in grado di comunicare durante questa interazione. L’analisi dello stato dell’arte dei Robot

Sociali attuali ha però evidenziato alcune limitazioni.

Si può infatti affermare che l’attenzione degli sviluppatori di questa categoria di robot sia eccessivamente focalizzata sul perfezionamento della parte sensoriale e di attuazione. Chiaramente questi aspetti sono fondamentali: un Robot Sociale deve necessariamente essere in grado di estrarre informazioni significative da un punto di vista emotivo e sociale nell’osservazione degli interlocutori umani con cui si deve confrontare; così come deve essere fornito di un sistema di attuazione fine che permetta, ad esempio, il controllo di un’espressione facciale interpretabile e capace di trasmettere delle emozioni a un essere umano. Questo comunque può non essere sufficiente per riuscire nell’obiettivo di coinvolgere un interlocutore umano nell’illusione di una vera interazione sociale.

Per il successo di questo complicato obiettivo il robot deve disporre di un Sistema Cognitivo in grado di elaborare processi mentali ispirati a quelli di un essere umano, una “mente” capace di elevare la grande quantità di informazione numerica ricevuta dai sensori a un livello di astrazione tale da permettere una manipolazione di simboli e concetti astratti, mentre il calcolo matematico dovrebbe essere rilegato ai sottosistemi di percezione e attuazione.

Nella maggior parte dei casi, invece, si scopre che i Sistemi Cognitivi di questi robot consistono in una serie di comportamenti puramente reattivi, che associano una reazione immediata dell’attuazione a una data informazione ricevuta dai sensori, oppure in sistemi puramente deliberativi costituiti dall’esecuzione di task procedurali basati su rigidi algoritmi matematici.

In entrambi i casi questi sistemi risultano completamente inaccessibili per i neuroscienziati e i ricercatori lontani dal mondo della programmazione, che sono

(18)

xviii

comunque interessati a sperimentare modelli cognitivi all’interno di queste macchine. L’obiettivo di questa tesi è quello di progettare e implementare un Sistema Cognitivo, sviluppato con un linguaggio naturale ad alto livello di astrazione, che risulti accessibile a figure professionali appartenenti al settore della medicina e delle neuroscienze, che permetta quindi di simulare modelli cognitivi su una piattaforma robotica fisica.

Questo è stato possibile grazie all’utilizzo di un Sistema Esperto basato su motore di regole che è stato integrato all’interno del blocco cognitivo facente parte di un’architettura ibrida reattiva/deliberativa.

Il motore di regole è stato realizzato con CLIPS, un software per la produ-zione di Sistemi Esperti che include la possibilità di utilizzare un paradigma di programmazione a eventi, caratterizzato da una sintassi semplice e accessibile.

La piattaforma robotica che è stata utilizzata per sperimentare questo Sistema Cognitivo è l’androide F.A.C.E. (Facial Automaton for Conveying Emotions), il

Robot Sociale Umanoide, sviluppato presso l’Istituto di Ricerca Centro “E.Piaggio”

dell’Università di Pisa, in grado di eseguire espressioni facciali.

La progettazione del brain si è basata su precedenti studi sull’interazione uma-na effettuati dal FACE-Team da cui sono state estratte le cosiddette social cues, alcune caratteristiche salienti del linguaggio verbale e non verbale che si sono dimo-strate fondamentali all’interno di un’interazione sociale umana. Queste sono state implementate per programmare il modello attentivo del robot.

E’ stata quindi ideata una struttura stratificata del motore di regole impostata nel seguente modo: un primo set di regole ha il compito di effettuare l’analisi dei dati forniti dai sensori finalizzata alla generazione delle informazioni di primo livello; queste informazioni vengono successivamente elaborate da un secondo set di regole che, tramite semplici inferenze logiche, genera un’informazione di maggior livello di astrazione; infine, sulla base di queste ultime informazioni, derivate da un procedimento di inferenza logica, un ultimo set di regole si occupa del processo decisionale che genera i comandi da comunicare al blocco di attuazione.

Tra questi comandi sono compresi contemporaneamente il soggetto o l’oggetto che il robot deve guardare, e l’espressione che il robot deve fare in base alla motivazione che lo ha portato a rivolgere la sua attenzione su quel target.

Prima di questo lavoro di tesi infatti, anche il robot FACE disponeva di un sistema puramente procedurale che gli permetteva la rilevazione e il puntamento di soggetti presenti nella scena sulla base di complessi algoritmi, e di un’interfaccia

(19)

xix

grafica tramite la quale era possibile gestire l’espressione facciale del robot, ma solo grazie all’intervento di un operatore esterno. Queste funzionalità non potevano essere eseguite né in contemporanea né in modalità di completa autonomia.

Successivamente all’integrazione del nuovo Sistema Cognitivo il robot è in grado di gestire queste funzionalità contemporaneamente e in modo del tutto automatico.

Sono stati infatti eseguiti dei protocolli di sperimentazione in cui il robot è stato inserito in un normale contesto di interazione sociale con un soggetto umano. In questi test l’androide FACE è stato eseguito in modalità autonoma e sono stati estratti in tempo reale i dati relativi alla traiettoria del punto che osservava, e delle variabili riconducibili allo stato emotivo del robot.

Ne è risultata la capacità di replicare i comportamenti precedenti all’integrazione del nuovo sistema, in aggiunta il robot ha interagito con l’interlocutore accompagnan-do i suoi movimenti con delle espressioni facciali che si sono dimostrate dipendenti dagli eventi presentati nel suo contesto sociale.

La peculiare modularità del motore di regole e il linguaggio naturale con cui questo è stato sviluppato si sono dimostrati perfettamente efficienti. Insieme garantiscono la possibilità di modificare, ed eventualmente aggiungere, tutti i comportamenti che si desidera sperimentare sul robot. Questo, apre le porte all’utilizzo della piattaforma robotica da parte di neuroscienziati e ricercatori con un background molto diverso da quello dell’ingegneria e della programmazione, obiettivo principale di questa tesi.

Organizzazione dei Capitoli

Il presente lavoro di tesi è organizzato come segue:

Capitolo 1 - Il Robot Sociale

Vengono presentate la definizione e le caratteristiche di un Robot Sociale. Quindi viene esposto lo stato dell’arte di questa categoria di robot ponendo particolare attenzione ai Robot Sociali sviluppati in ricerca e ai relativi sistemi cognitivi.

Capitolo 2 - F.A.C.E.

Nel secondo capitolo si passa alla descrizione di FACE, il robot utilizzato per implementare il Sistema Cognitivo oggetto della tesi. Sono analizzati in dettaglio i componenti hardware e software. In particolare viene discussa l’attuale architettura

(20)

xx

del sistema che controlla l’androide, e tutti i servizi che ne fanno parte, evidenziando i limiti che l’integrazione del nuovo Sistema Cognitivo deve superare.

Capitolo 3 - CLIPS: il motore del Sistema Cognitivo

Questo capitolo è dedicato a CLIPS, il software per la produzione di Sistemi Esperti utilizzato per la progettazione e l’implementazione del Sistema Cognitivo. In primo luogo si espongono i vantaggi derivanti dall’utilizzo di una programmazione a eventi all’interno del blocco cognitivo, dopodiché viene introdotto CLIPS. Si passa dunque alla definizione di Expert System e, in seguito a una breve digressione su ciò che accomuna i Sistemi Esperti e l’Intelligenza Artificiale, si entra nel vivo del programma. Vengono presentate tutte le funzioni principali, sempre con un occhio di riguardo all’applicazione a cui sono destinate. Si discute poi, in una sezione appositamente dedicata, la risoluzione dei conflitti, uno dei più grandi punti di forza del software CLIPS.

Capitolo 4 - Design del Sistema Cognitivo

Dopo una discussione riguardo alla scelta di utilizzare paradigma di programmazione ibrido, e la descrizione dell’interfaccia che ne permette l’uso, si discute la progettazione del Sistema Cognitivo motivando le scelte progettuali e delineandone l’architettura e il funzionamento.

Capitolo 5 - Implementazione del Sistema Cognitivo

In questo capitolo si scende nel dettaglio dell’implementazione. Il codice del motore di regole, responsabile dei processi decisionali del brain, viene sezionato e analizzato in tutte le parti che lo compongono. In pratica vengono rivelati i meccanismi che stanno dietro ad ogni regola. In questa sede viene anche spiegata e giustificata la scelta della strategia di risoluzione di conflitti.

Capitolo 6 - Test e risultati

Infine viene presentato l’esperimento effettuato in seguito all’integrazione del Sistema Cognitivo nel sistema che gestisce l’androide FACE. Viene spiegato il protocollo sperimentale eseguito e i risultati del test vengono analizzati e discussi.

(21)

xxi

Alla fine della tesi, oltre alle conclusioni e agli sviluppi futuri, si possono trovare alcune appendici utili in cui sono contenute: le teorie di Antonio Damasio che hanno ispirato questa tesi, il codice in forma integrale del Sistema Cognitivo sviluppato, i codici in linguaggio C# menzionati durante l’elaborato e la tabella dei dati che hanno generato i grafici riportati nella sezione “Test e risultati”.

(22)
(23)

Capitolo 1

Il Robot Sociale

Per poter comprendere a pieno questo lavoro di tesi è necessario prima capire che cosa si intende per Robot Sociale e che cosa ci si aspetta da questo nuovo tipo di macchine.

Partendo da alcune note storiche e curiosità, si delineerà una definizione di questa categoria di robot e saranno analizzate alcune caratteristiche principali, per poi riportare alcuni esempi di robot sociali e dei relativi sistemi cognitivi utilizzati.

1.1

Note Storiche

Un precursore che introdusse il campo della robotica sociale fu senza dubbio il neurofisiologo e robotico inglese William Grey Walter. Costruttore dei primi robot autonomi (cosiddetti ’Tortoise’ per la loro caratteristica forma e bassa velocità, Fig. 1.1) nel 1950 pubblicò “An Imitation of Life”, considerato il primo testo che trattò questo argomento [Hol03].

Per constatare il vero e proprio sviluppo di questa branca, come di tutta la robotica, si dovrà però aspettare i primi anni novanta, questo grazie anche alla concomitante esplosione dell’informatica e dell’elettronica. In questi anni si vede la diffusione su larga scala dei robot industriali, presenti oramai in tutte le più grandi catene di montaggio e fabbricazione, e si risveglia l’interesse verso una possibile interazione tra uomo e robot. In particolare ci si chiede come poter rendere queste macchine più vicine all’essere umano, alla sua intelligenza, al suo aspetto, e persino al suo comportamento. La robotica sociale fiorisce così per mano di ricercatori dell’intelligenza artificiale; tra questi Kerstin Dautenhahn, Maja Mataric, Cynthia Breazeal, Aude Billard, Yiannis Demiris e Brian Duffy, autori di numerosi lavori

(24)

2 CAPITOLO 1. IL ROBOT SOCIALE

Fig. 1.1: Immagini tratte dall’articolo originale di William Grey Walter che ritraggono le

famose “Tortoise” in diversi task comportamentali.

di ricerca fondamentali anche per la corretta comprensione e la realizzazione del progetto qui presentato.

Ad essi è collegato anche il movimento di ingegneria Kansei 1 della scienza e

tecnologia giapponese. In particolare per la robotica sociale si rimanda specialmente ai lavori di Yoshihiro Miyake, Tomio Watanabe, Hideki Kozima, Takayuki Kanda e Hiroshi Ishiguro.

1.2

Definizione e Caratteristiche

E’ sufficiente una breve ricerca per capire che la precisa definizione di Robot Sociale è un dibattito ancora aperto, ma nella quasi totalità del materiale rintracciabile si possono evincere alcune caratteristiche che mettono d’accordo tutte le diverse figure professionali che si approcciano a questo argomento. Risultano infatti due le caratteristiche fondamentali che distinguono questa categoria di robot, queste sono: Autonomia. Un requisito minimo affinché un robot possa essere definito “sociale” è che si possa considerare autonomo. Un robot completamente controllato a distanza non può essere considerato sociale, in quanto incapace di prendere decisioni autonomamente. In questo caso sarà una, seppur complessa, estensione dell’uomo. Questo non significa che un robot debba essere completamente autonomo, una semi-autonomia sembra essere tutt’ora accettata.

(25)

1.2. DEFINIZIONE E CARATTERISTICHE 3

Fig. 1.2: Schema per la classificazione dei Social Robots.

Interazione con l’uomo. La comunicazione e l’interazione con l’uomo è un punto cruciale nella definizione di Robot Sociale. Robot che interagiscono e comunicano esclusivamente con altri robot non potranno dunque essere considerati “sociali”. Desiderabilmente l’interazione dovrebbe essere cooperativa ma non è un aspetto limitante, anche comportamenti non cooperativi possono essere considerati sociali in alcuni casi. Il robot potrebbe infatti interagire con una comunicazione minima o assente.

Riportiamo ora la definizione descritta da Bartneck e Forlizzi in [BF04]:

“A social robot is an autonomous or semi-autonomous robot that interacts and communicates with humans by following the behavioral norms expected by the people with whom the robot is intended to interact”

Da qui, oltre ai due requisiti minimi già discussi, e ricorrenti in tutta la letteratura scientifica, si evince un’ulteriore aspetto essenziale, ovvero l’importanza del contesto culturale in cui il robot dovrà agire. D’altronde ogni cultura e ogni periodo storico prevedono diverse norme sociali che dovranno essere studiate così che il robot possa correttamente interpretarle e rappresentarle a sua volta.

Nello stesso articolo gli autori delineano uno schema utile per la classificazione dei robot sociali (Fig. 1.2). Oltre all’autonomia, l’interattività, e la conoscenza delle norme sociali, si notano le voci Form (aspetto fisico) e Modality (sensorialità): Aspetto fisico. Questa è la voce relativa all’aspetto del robot, da intendere come

morfologia ma anche come scelta dei materiali che costituiscono i componenti. Su questa linea sono definite tre categorie distinte:

(26)

4 CAPITOLO 1. IL ROBOT SOCIALE

Astratto. Robot dalla forma non riconducibile ad alcun organismo vivente reale.

Biomorfico. Il robot è ispirato alla forma o alla locomozione proprie degli organismi viventi.

Antropomorfico. Il robot, grazie alle sue caratteristiche morfologiche, di movimento e dei materiali componenti, rimanda immediatamente all’essere umano.2

Sensorialità. Definita come il numero di canali di comunicazione coinvolti. La scala di valori va da “unimodale” a “multimodale”, e può includere dai sistemi di visione alla percezione aptica, dai sistemi olfattivi a quelli gustativi e uditivi. Non è richiesto, e neppure attualmente possibile, massimizzare tutte le voci riportate. Ogni valore deve essere pensato caso per caso in fase di progettazione a seconda dell’obiettivo e delle abilità (skills) che ci aspettiamo che il robot compia efficacemente. Tuttavia è facilmente comprensibile che riuscire a spingersi verso il limite destro dello schema in tutti gli aspetti riportati significa avvicinarsi quanto più possibile a un comportamento human-like. Cerchiamo dunque di capire come una progettazione dovrebbe essere impostata e cosa ci si aspetta che un Robot Sociale sia in grado di fare.

1.3

Linee Guida di Progettazione

Di seguito si elencano le linee guida da seguire per la progettazione di un Robot Sociale riportate da Forlizzi e Bartneck [BF04]. Esse si sono rivelate essenziali per la progettazione, non solo del robot in sé, ma soprattutto del Sistema Cognitivo da implementare.

La forma di un Robot Sociale dovrebbe essere in accordo con le sue capacità. La forma, la dimensione, e le qualità materiali di un Robot Sociale dovrebbero essere in accordo con le mansioni per cui questo è stato progettato. Da un Robot Umanoide, ad esempio, ci si aspettano delle capacità di interpretazione e comunicazione simili a quelle umane, e gli utenti potrebbero essere delusi se queste

2Il progetto trattato in questa tesi si colloca nell’ambito di quest’ultima categoria. Un Robot

Sociale di tipo antropomorfico verrà da qui in avanti indicato come Robot Umanoide, o Androide (dal greco anèr, andròs, uomo, e che quindi può essere tradotto “a forma d’uomo” )

(27)

1.4. STATO DELL’ARTE 5

aspettative non venissero soddisfatte. Dove non fosse possibile sviluppare in modo soddisfacente queste capacità, meglio allora virare verso lo sviluppo di robot dalla forma biomorfica (ad es. Pet Robots come AIBO3 e Paro4) se non persino astratta.

L’interazione tra un Robot Sociale e un essere umano dovrebbe simulare l’interazione che avviene tra gli esseri umani. Un Robot Sociale dovrebbe essere in grado di riconoscere, replicare, e possibilmente utilizzare tutte le modalità che gli uomini usano normalmente per comunicare. Questo include sia il linguaggio verbale (verbal cues) come il parlato, l’intonazione, il tono della voce, sia il linguaggio non verbale (non-verbal cues) come ad esempio la gestualità, la postura e l’espressione facciale. In ogni caso il robot dovrebbe comunicare solo i suoi stati reali. Non dovrebbe mai falsificare emozioni, tanto meno utilizzare l’espressività di cui è dotato a proprio vantaggio.

Il robot deve imitare le norme sociali umane ed essere in grado di forni-re un insieme coeforni-rente di comportamenti. Un Robot Sociale deve essere a conoscenza delle regole e delle norme sociali dell’uomo. Auspicabilmente il robot dovrebbe essere cosciente anche del proprio ruolo sociale, della sua conoscenza del mondo, e di ciò che non conosce. Deve essere in grado di affrontare l’incertezza rispettando il principio etico del danno minimo.

1.4

Stato dell’Arte

Negli ultimi trent’anni sono stati progettati moltissimi esemplari di robot ricon-ducibili alla categoria “sociale”. Alcuni di questi sono stati sviluppati per essere commercializzati come giocattoli per bambini, altri per ottemperare a bisogni di assistenza o semplice compagnia, ma la maggior parte dei robot sociali più recenti viene sviluppata nella ricerca con scopi prettamente scientifici.

E’ noto infatti che un settore emergente e in continua crescita è la progettazione di robot sociali la cui interazione sia finalizzata all’educazione e all’apprendimento. In particolare si trovano in letteratura numerosi robot sviluppati per la terapia e la riabilitazione di bambini affetti da Disturbi dello Spettro Autistico (DSA).

3

http://www.sony-aibo.co.uk/

(28)

6 CAPITOLO 1. IL ROBOT SOCIALE

Vediamo dunque, in ordine, alcuni esempi di Robot Sociale che rimandano alle categorie appena discusse, di ogni categoria si riportano esempi di basso e di alto livello tecnologico.

1.4.1

Robotic Toys ed Entertainment

Si tratta di una categoria prettamente commerciale, e vengono progettati soprattutto per l’interazione con i bambini. In alcuni casi vantano la pretesa di raggiungere obiettivi didattici ma non vengono mai utilizzati per scopi riabilitativi o di genere medico specifico, al contrario sono pensati per raggiungere un target che sia il più esteso possibile.

In questo settore risulta di cruciale importanza la sicurezza dell’interazione, la longevità e l’aspetto, che deve risultare divertente e accattivante. I robot sociali destinati al settore dell’entertainment sono dotati spesso della capacità di fare espressioni facciali simili o quanto meno riconducibili a quelle umane, ad ogni modo nella maggior parte dei casi vengono progettati con un aspetto biomorfico o astratto.

Si riportano di seguito due esempi di questa categoria.

Furby. E’ il famosissimo animaletto robotico e interattivo creato nel 1998 da Dave Hampton e Caleb Chung e distribuito da Hasbro (vedi Fig. 1.3). Ne sono stati venduti più di 40 milioni di esemplari e, benché si possa difficilmente definire un Robot

Sociale, merita di essere menzionato, non tanto per le caratteristiche tecnologiche,

che sono davvero minime, quanto per il successo nel creare l’illusione di possedere un’intelligenza artificiale, fino al punto di portare la NSA (National Security Agency) a vietare il Furby nei propri uffici perché si pensava fosse in grado di “imparare”.

AIBO. Di tutt’altro livello tecnologico è AIBO (Fig. 1.4), robotic dog sviluppato dalla Sony Corporation che ne propose il primo modello sul mercato nel 1999, e che ha visto ulteriori sviluppi fino all’ultimo modello ERS-7M3 uscito nel 2013. L’hardware di AIBO comprende un processore a 64 bit, 16 megabytes di RAM, sensori (touch, telecamera, range-finder, microfoni, accelerometri e sensori di velocità angolare), uno speaker e attuatori per la movimentazione di zampe, collo, bocca e coda. Nell’ultimo modello, oltre a una quantità maggiore di sensori e attuatori è stato aggiunto il collegamento Wi-Fi e un’espressività ottenuta tramite uno schermo LED (Illume-Face).

(29)

1.4. STATO DELL’ARTE 7

Fig. 1.3: Furby, electronic pet della HASBRO.

(30)

8 CAPITOLO 1. IL ROBOT SOCIALE

1.4.2

Robot per l’assistenza

In questa categoria si trova una tipologia completamente differente di Robot Sociale, la cui caratteristica peculiare si riscontra nel design, nei materiali, nel tipo di interfaccia e nell’intera progettazione. Ogni aspetto fisico e tecnico di queste macchine è rivolto a uno scopo ben preciso e utile, e la mansione alla quale sono destinati ne influenza la forma e le funzioni. Rientrano in questa categoria i cosiddetti Service Robots e

Personal Robots.

Le applicazioni possono variare da un servizio di semplice interfaccia a una vera e propria assistenza personale, magari rivolta a persone anziane o con disabilità. In certi casi questo tipo di robot può discostarsi anche molto dalla forma antropomorfica, infatti l’estetica potrebbe essere ampiamente modificata a discapito della funzionalità. Naturalmente, dovendo poi operare in ambienti domestici, o comunque interagire assiduamente con l’uomo, viene richiesto un aspetto familiare e amichevole. Dunque molti robot per l’assistenza risulteranno essere Robot Umanoidi. Sempre a causa di questa assidua interazione con l’uomo, anche per questa categoria si dovrà tenere conto di aspetti sociali quali l’espressività e la comunicabilità.

Si riportano due esempi molto diversi tra loro per meglio comprendere questa categoria.

eMuu. Si tratta di un Robot Sociale dalla forma astratta sviluppato nel 2002 da Christoph Bartneck e definito dal suo stesso creatore un “embodied emotional Robot”. Questa macchina è frutto della cooperazione tra il settore di ricerca della Philips, l’Università della Tecnologia di Eindhoven5 e l’Istituto Internazionale di Ricerca

delle Telecomunicazioni (ATR)6. Non si tratta di un semplice giocattolo robotico

come gli altri visti in precedenza, è stato progettato piuttosto come un’interfaccia tra l’ambiente delle “case intelligenti”, dotate di numerosi sensori e automatismi, e le persone che le abitano.

eMuu viene presentato come un’entità sociale necessaria per far interagire gli

abi-tanti della casa con il sistema di funzionamento intelligente attraverso un linguaggio naturale supportato dalla caratteristica espressività del robot (vedi Fig. 1.5), che risulta intuitiva e immediata. A dimostrazione dell’importanza della sfera sociale si noti che questo progetto è stato fondato su un approfondito studio riguardo

all’e-5

http://www.tue.nl/

(31)

1.4. STATO DELL’ARTE 9

Fig. 1.5: eMuu, il robot sociale sviluppato da Christoph Bartneck.

spressività emotiva dei robot, l’interazione uomo-macchina e la teorie di embodiement [Bar02, Bar04].

Daryl. Questo è solo uno tra i tanti robot per l’assistenza sviluppati negli ultimi anni. Si possono notare immediatamente le sembianze antropomorfe e al contempo un distacco non ancora definitivo dalla classe dei Robot Industriali (vedi Fig. 1.6), caratteristiche tipiche della categoria dei Service Robots.

Daryl è stato sviluppato presso il Social Robotics Laboratory dell’Università di

Freiburg, dispone di un meccanismo a quattro gradi di libertà per la movimentazione del collo, una modalità di espressione a due gradi di libertà, un dispositivo di puntamento laser a due gradi di libertà, una guida differenziale a due gradi di libertà, e la possibilità di incorporare un braccio robotico KUKA YouBot a cinque gradi di libertà per la manipolazione mobile. Il robot è dotato di due scanner laser, due telecamere, encoder disposti su paraurti e ruote, un sistema standard industriale implementato con RTOS e un API7 in C++. E’ stato progettato per compiere operazioni in modo completamente autonomo e testato in diverse condizioni di ambiente reale.

Anche su Daryl è stata fatta una precedente ricerca sul linguaggio emotivo del corpo che ha portato gli sviluppatori a implementare alcuni task di movimento,

(32)

10 CAPITOLO 1. IL ROBOT SOCIALE

Fig. 1.6: Daryl, il Service Robot umanoide sviluppato presso l’Università di Freiburg.

supportati da luci e colori emessi dal busto, finalizzati a esprimere stati emotivi quali paura, dispiacere, imbarazzo, felicità e tristezza [ELBA+12].

Il principale fattore limitante di questa categoria di automi risiede nel concept stesso con il quale sono ideati e si rispecchia nel loro modo di operare. Essi sono concepiti per eseguire dei task precisi, con la massima sicurezza e la più alta probabilità di successo. Possono dunque garantire un corretto funzionamento esclusivamente in ambienti altamente strutturati. Questa filosofia si ripercuote inevitabilmente anche sull’espressività del robot, che viene riprodotta attraverso dei task di movimenti predeterminati al pari di tutte le altre azioni che la macchina è in grado di compiere. Questo aspetto, nel momento in cui l’interazione tra l’uomo e la macchina diventa centrale a discapito del servizio offerto, deve necessariamente essere superato.

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

(33)

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

(34)

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

(35)

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.

(36)

14 CAPITOLO 1. IL ROBOT SOCIALE

(37)

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

(38)

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

(39)

1.4. STATO DELL’ARTE 17

(40)

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).

(41)

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.

(42)
(43)

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/

(44)

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/

(45)

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

(46)

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

(47)

2.2. ARCHITETTURA DEL SISTEMA 25

informazioni fornite dalla casa di produzione, il Kinect è in grado di rilevare fino a sei persone contemporaneamente, tra cui due soggetti attivi per l’analisi del movimento con estrazione delle coordinate di venti giunti per ciascun soggetto attivo, mentre per i quattro soggetti rimanenti si conosce le coordinate relative al baricentro del corpo (spin center ).

Per quanto concerne invece le caratteristiche dei sistemi hardware da collegare a FACE, grazie alla piattaforma per lo sviluppo di sistemi robotici distribuiti Yet Another Robot Platform (YARP) il robot può essere gestito da più computer, sia fissi che portatili. Queste possono essere macchine diverse con sistemi operativi diversi, le cui caratteristiche non sono particolarmente essenziali a prescindere dal fatto che siano soddisfatti i requisiti minimi richiesti dall’SDK e necessari per il corretto funzionamento di Visual Studio 2010, software tramite il quale sono stati sviluppati tutti i servizi che compongono il sistema.

2.2

Architettura del sistema

2.2.1

Premessa

L’architettura presentata è stata progettata sulla base delle teorie della mente di An-tonio Damasio [Dam08, Dam99] e la loro formalizzazione proposta da Bosse [BJT08]. Queste teorie spiegano e formalizzano le capacità di percezione, pianificazione e azione proprie del sistema nervoso umano ed hanno ispirato l’intero progetto. Saran-no riprese nei capitoli riguardanti la progettazione e implementazione del Sistema Cognitivo (Cap. 4 e Cap. 5), in ogni caso per un loro approfondimento breve, seppur completo ai fini della comprensione di questo lavoro, si rimanda all’appendice A.

Occorre specificare inoltre che questa architettura è stata ideata per il robot FACE, ma può essere applicata a qualsiasi Robot Umanoide Sociale simile. Il sistema è in grado di gestire perfettamente qualunque robot disponga di un volto controllabile da parte dell’attuazione e di un apparato di sensori in grado di acquisire le informazioni che si riveleranno necessarie per l’elaborazione all’interno del brain.

Per l’organizzazione e l’implementazione dei moduli e dei servizi si rende merito al lavoro della Dott.ssa in Informatica Nicole Lazzeri, e all’intervento, in seguito, dell’Ing. Roberto Garofalo, entrambi membri del FACE-Team.

(48)

26 CAPITOLO 2. F.A.C.E.

Fig. 2.4: Schema dell’architettura ibrida reattiva/deliberativa del sistema.

2.2.2

Il Sistema

In seguito a questa premessa diamo un’idea generale di come è organizzato il sistema che controlla l’androide FACE. L’architettura è basata su un paradigma ibrido reattivo/deliberativo nel quale il sottosistema reattivo si assicura che il robot possa gestire compiti relativi al controllo di basso livello mentre il sottosistema deliberativo si occupa di calcolare e gestire compiti ad alto livello di pianificazione che richiedono un processo di ragionamento [QTG04].

Uno schema dell’architettura del sistema è riportato in Fig. 2.4, dove si può notare la suddivisione nei tre blocchi funzionali principali: SENSE, PLAN e ACT.

L’architettura comprende un set di servizi, applicazioni indipendenti interconnesse attraverso la rete. Ogni servizio riceve ed elabora le informazioni raccolte dai sensori o direttamente dalla rete e, una volta elaborati, spedisce in rete i nuovi dati, rendendoli disponibili agli altri servizi. L’informazione viaggia sotto forma di pacchetti XML. Questi rappresentano degli oggetti contenenti dati serializzati e disposti in una forma

(49)

2.2. ARCHITETTURA DEL SISTEMA 27

strutturata. Questa gestione dell’informazione attraverso pacchetti di dati rende l’architettura del sistema modulare e scalabile in quanto i servizi che riceverono e spediscono dati possono così utilizzare diversi linguaggi di programmazione ed essere eseguiti su computer diversi.

L’infrastruttura della rete è basata su YARP5. Come accennato nella parte

riguardante l’hardware si tratta di un middleware open-source che permette lo sviluppo di sistemi distribuiti per il controllo di robot [MFN06]. YARP gestisce le connessioni utilizzando degli oggetti speciali che chiameremo “porte yarp” (YARP

Ports). Una porta yarp è un oggetto attivo che gestisce ingressi multipli in modo

asincrono e connessioni esterne per una data quantità di dati. Ogni servizio può aprire molte YARP Ports diverse per mandare e ricevere dati attraverso la rete. Ogni oggetto contenente dati strutturati viene serializzato e spedito in rete tramite una porta yarp dedicata. Vice versa ogni oggetto serializzato ricevuto dalla rete attraverso una porta yarp viene deserializzato nel corrispondente oggetto strutturato per poter essere utilizzato dal servizio che lo riceve.

2.2.3

I Servizi

L’attuale configurazione dell’architettura utilizza i seguenti servizi (blocchi bianchi in Fig. 2.4):

SENSE

Scene Analyzer. E’ il cuore del blocco deputato ai sensi. Il suo compito è quello di prelevare l’informazione acquisita dal Kinect ed elaborare i dati ricevuti disponendoli in un pacchetto XML strutturato denominato meta-scena. All’in-terno della meta-scena si trovano tutte le informazioni riguardanti il mondo visto da FACE. Si possono trovare le caratteristiche dei soggetti e degli oggetti rilevati. Con questo si intende i dati forniti direttamente dal Kinect, come ad esempio le coordinate spaziali (x, y, z) dei giunti dei due soggetti più vicini al robot, la loro angolazione rispetto al robot, la provenienza del suono calcolata con il multiarray di microfoni, così come alcune informazioni secondarie, social-mente rilevanti, calcolate a partire dai primi dati, informazioni estratte grazie a degli algoritmi implementati all’interno del servizio. Tra queste la speaking

probability, calcolata incrociando l’informazione della provenienza del suono

(50)

28 CAPITOLO 2. F.A.C.E.

con la posizione delle persone presenti, oppure la rilevazione di alcune gesture significative nel contesto di un linguaggio sociale non verbale, come il gesto di alzare la mano per richiedere l’attenzione, calcolato in base alla posizione relativa delle coordinate della mano del soggetto rispetto alla linea delle spalle. Un ulteriore contributo fondamentale è dato da SHORETM, software tedesco

incorporato nello Scene Analyzer, sviluppato dal Fraunhofer Institute for In-tegrated Circuits6. Questo programma, oltre ad effettuare il riconoscimento

facciale, è in grado di stimare genere ed età delle persone inquadrate. In base a un’elaborata analisi dell’immagine SHORETMriesce anche a stabilire con una

certa precisione alcuni stati emotivi che i soggetti stanno esprimendo con il volto. Queste informazioni vengono integrate nel pacchetto dati riguardante ciascun soggetto presente nella scena. Oltre alle persone nella meta-scena sono presenti anche le coordinate del punto dell’immagine considerato di maggior interesse in base a degli algoritmi di pura analisi dell’immagine in pixel, questo punto è definito “visual saliency point” [Dha03].

Nella figura 2.5 si può osservare uno screenshot dello Scene Analyzer in funzione: nel primo riquadro si notano le informazioni restituite da SHORETM; nel

secondo i dati forniti dal Kinect, come le coordinate dei giunti e la relativa ricostruzione dello scheletro del soggetto; nel terzo quadrante si vedono le informazioni di distanza e orientamento; nel quarto e ultimo quadrante viene evidenziato con un piccolo cerchio giallo il punto in cui il robot sta prestando attenzione. Dettagli sugli algoritmi e i processi dello Scene Analyzer sono reperibili nei seguenti articoli [ZML+13, ZMGDR14].

Power Supply. Si occupa di monitorare il consumo di energia da parte di FACE. Questo servizio gestisce la connessione del robot con l’alimentazione e legge continuamente il consumo di corrente e i livelli di voltaggio dei quattro canali di potenza del robot. Il servizio Power Supply calcola il consumo di potenza del robot in termini di Watt con una frequenza di 1 Hz e serializza questa informazione che viene poi spedita nella rete YARP. Il pacchetto di dati

consumption viene utilizzato sia dal brain influendo sul processo decisionale

del robot, sia attraverso il flusso reattivo, quindi in modo diretto, veloce e non ragionato, sul servizio di attuazione FACE Animator, modulando la velocità dei movimenti e la reattività agli stimoli di FACE.

(51)

2.2. ARCHITETTURA DEL SISTEMA 29

(52)

30 CAPITOLO 2. F.A.C.E.

PLAN

I-Clips Brain. Unico servizio e cuore del blocco cognitivo di FACE. Qui dentro si trova il “cervello” del robot. Difatti I-Clips Brain incorpora un Sistema Esperto basato su regole scritto in codice CLIPS, denominato CLIPS Engine. Anche questo servizio al suo interno gode di una struttura modulare. I-CLIPS Brain, infatti, dialoga con i servizi sottostanti tramite il caricamento di diversi moduli (alcuni di questi rappresentati in Fig. 2.4 come blocchi azzurri) contenenti tutte le informazioni rese disponibili in rete dai servizi del blocco SENSE, e tramite i quali spedisce le informazioni utili per il blocco ACT. In particolare il servizio I-CLIPS Brain include il processo cognitivo utilizzato per elaborare questi dati (ed altre informazioni secondarie derivate dalle prime in ingresso), restituendo in uscita i comandi per il blocco di attuazione (ad es. il soggetto che il robot deve guardare e l’espressione che deve fare). Non è altro che un ponte, tra il blocco sensoriale e quello di attuazione, che gestisce ed elabora le informazioni di alto livello, non attraverso un procedimento matematico, ma che potremmo definire di “ragionamento”. Questa parte verrà ampiamente trattata nel capitolo dedicato (vedi Cap. 3).

ACT

HEFES (Hybrid Engine for Facial Expressions Synthesis). HEFES è il pro-gramma deputato al controllo dell’espressione facciale di FACE [MLHDR12]. Fino al raggiungimento di questo servizio l’informazione relativa all’espressione e allo stato emotivo di FACE viene gestita in termini di valence e arousal. Queste sono le coordinate che permettono di disporre espressioni ed emozioni su un piano cartesiano chiamato ECS (Emotional Circumplex Space, se ne vede un esempio in figura 2.6), un sistema basato sulla teoria di Russel “Circumplex

Model of Affects” [Rus80, PRP05] che rende processabili stimoli mentali e

fisiologici, come le emozioni, da parte di un calcolatore.

E’ con queste coordinate che potremo collocare in uno spazio cartesiano le espressioni che l’androide deve interpretare. La valence corrisponde alla “po-sitività” di uno stato emotivo, e della relativa espressione, mentre l’arousal rappresenta l’attivazione, l’enfasi con cui viene espressa l’emozione. Inoltre grazie all’ECS si può effettuare l’interpolazione dei punti relativi ad ogni espres-sione facciale creando tutti gli stati intermedi. In questo modo si possono

(53)

2.2. ARCHITETTURA DEL SISTEMA 31

Fig. 2.6: ECS, (Emotional Circumplex Space).

esprimere emozioni ibride tra la rabbia e il disgusto, o la felicità e la sorpresa, che ci permettono di ricostruire una dinamica del volto, come si vede nella parte in basso di Fig. 2.6. Chiaramente nel momento in cui l’espressione deve essere materialmente generata non è più sufficiente un punto in coordinate (v, a). Sarà dunque il servizio HEFES a tradurre queste semplici coordinate nelle relative posizioni dei 32 servomotori necessarie a generare l’espressione corrispondente. Il pacchetto facial expression, contenente la configurazione dei motori della faccia, passa tramite una porta yarp dedicata al servizio FACE

Figura

Fig. 1.1: Immagini tratte dall’articolo originale di William Grey Walter che ritraggono le famose “Tortoise” in diversi task comportamentali.
Fig. 1.2: Schema per la classificazione dei Social Robots.
Fig. 1.4: AIBO, della Sony Entertainment.
Fig. 1.5: eMuu, il robot sociale sviluppato da Christoph Bartneck.
+7

Riferimenti

Documenti correlati

L'indeterminata identità con sé dell'Essere immediato, tut- tavia, nell'atto stesso in cui esclude da sé ogni differenza, pro- prio per ciò la presuppone al di

In questo senso quindi, il nostro sarà un gioco di "premesse": così come nel capitolo precedente abbiamo sostenuto la necessità di porre attenzione alla natura dei

La Conferenza vuole sviluppare una riflessione sulle diverse forme di conflittualità che si sono svi- luppate nel corso del XX secolo e sulle eventuali che potrebbero svilupparsi

MAURIZIO FERRARIS - professore ordinario e vice-Rettore alla ricerca, Università di Torino. 404 - FILE

Per dire se funzionerà o meno, occorrerà allora valutare la sua capacità di influenzare la partecipazione dei giovani alla politica, il suo impatto sulle principali conseguenze

Over the Deseado Massif structural high the glass shards mixed with sediments enriched in SiO 2 , and were eventually deflated further to SE reaching the present coastal area

Per questi italiani i robot e l’Intelligenza artificiale porteranno cambiamenti positivi all’economia (spingeranno la produzione, ridurranno il prezzo dei

Boceprevir and telaprevir should be used to treat HCV genotype 1 infection in HIV/HCV co-infected patients for 48 weeks on an individual basis, with close monitoring of their