• Non ci sono risultati.

Progetto ed implementazione di un sistema per il riconoscimento di oggetti in point cloud nell'ambito dell'afferraggio con mano robotica

N/A
N/A
Protected

Academic year: 2021

Condividi "Progetto ed implementazione di un sistema per il riconoscimento di oggetti in point cloud nell'ambito dell'afferraggio con mano robotica"

Copied!
156
0
0

Testo completo

(1)

Dipartimento di Ingegneria dell'Informazione

Corso di Laurea Magistrale

in Ingegneria Informatica

TESI DI LAUREA

Progetto ed implementazione di un sistema

per il riconoscimento di oggetti in point cloud

nell'ambito dell'afferraggio con mano robotica

Candidato: Relatori:

Emanuele Distefano Prof. Francesco Marcelloni

Prof. Marco Gabiccini

Ing. Michela Antonelli

(2)

1 Introduzione 5

1.1 Sommario . . . 5

2 Case-Based Reasoning (CBR) 9 2.1 Introduzione . . . 9

2.2 Rappresentazione dei casi . . . 10

2.3 Caratterizzazione . . . 12 2.4 Ricerca . . . 13 2.5 Adattamento . . . 14 2.6 Test . . . 14 2.7 Mantenimento . . . 15 2.8 Tecniche implementative . . . 16

2.9 Confronto con altri sistemi . . . 17

3 Data-Driven Grasping 21 3.1 Introduzione . . . 21

3.2 Metodi analitici . . . 22

3.3 Metodi empirici . . . 24

3.3.1 Afferraggio di oggetti noti . . . 26

3.3.2 Afferraggio di oggetti simili . . . 29

4 Immagini RGB-D 35 4.1 Introduzione . . . 35

4.2 Depth-camera Kinect . . . 38

4.3 PCL - Point Cloud Library . . . 39

4.3.1 Strutture di base . . . 39

4.3.2 Moduli . . . 41

5 Descrizione degli oggetti 45 5.1 Segmentazione . . . 46

5.2 Filtro outliers . . . 50 1

(3)

5.3 Pipeline descrittiva . . . 51

5.3.1 Calcolo delle normali . . . 53

5.3.2 Calcolo dei keypoints . . . 57

5.3.3 Features locali . . . 61

6 Matching fra descrittori 71 6.1 k Nearest Neighbors e k-D tree . . . 72

6.2 Confronto temporale fra match con descrittori diversi . . . 76

6.3 Metodi Mapping deterministici . . . 77

6.3.1 Metodo con soglia ripetuta . . . 77

6.3.2 Metodo con soglia posticipata . . . 79

7 Reti Neurali 83 7.1 Introduzione . . . 83

7.2 Neuroni e Reti feedforward . . . 86

7.3 Tipi di addestramento . . . 89

7.3.1 Delta rule . . . 90

7.3.2 Backpropagation . . . 92

7.4 Test . . . 94

8 Overview del sistema 95 8.1 Input . . . 96

8.2 Rete neurale . . . 102

9 Esperimenti 105 9.1 Ricerca Lineare - Forza bruta . . . 105

9.1.1 Scelta dei set . . . 105

9.1.2 Assegnazione dei target . . . 106

9.1.3 Addestramento . . . 108

9.1.4 Test . . . 110

9.1.5 Tempo totale di risposta . . . 111

9.2 Ricerca Gerarchica - Con riferimenti . . . 112

9.2.1 Scelta dei set . . . 113

9.2.2 Assegnazione dei target . . . 113

9.2.3 Addestramento . . . 114

9.2.4 Test . . . 115

9.2.5 Tempo totale di risposta . . . 118

10 Overview Sistema Ibrido globale - locale 121 10.1 Descrizione globale . . . 122

(4)

10.3 Esperimento . . . 125

11 Esperimento PaCMan 127 11.1 Tempi descrittivi . . . 129

11.2 Ricerca Lineare . . . 130

11.2.1 Scelta dei set . . . 130

11.2.2 Assegnazione dei target . . . 130

11.2.3 Addestramento . . . 131

11.2.4 Test . . . 133

11.3 Ricerca ibrida . . . 135

11.3.1 Scelta dei set . . . 135

11.3.2 Test . . . 136

12 Conclusioni 139 A Codice PCL: esempi 143 A.1 Segmentazione . . . 143

A.2 Descrizioni features . . . 144

A.3 Confronti . . . 146

(5)
(6)

Introduzione

1.1

Sommario

In questa tesi `e stato sviluppato un sistema basato su un Case-Based Reasoning per riconoscere oggetti e le relative pose da immagini 3D, ottenute dal dispositivo Kinect, in modo tale da guidarne l’afferraggio mediante una mano robotica.

In letteratura il problema dell’afferraggio `e stato affrontato con tecniche analitiche che si basano su modelli sintetici o su semplificazioni artificiali dei dati 3D, al fine di ridurre la complessit`a nel descrivere gli oggetti. Le difficolt`a che hanno riscontrato questi approcci riguardano l’applicazione in un contesto reale, ovvero con sensori che introducono rumore nelle immagini. I modelli analitici non ottengono dati precisi e rigorosi come accadrebbe durante una simulazione virtuale pertanto le prestazioni su riconoscimenti e afferraggi reali risultano inferiori alle aspettative.

Per superare questi ostacoli in questa tesi `e stato utilizzato un approccio empirico, prendendo spunto dal comportamento umano. Gli umani sono in grado di riconoscere somiglianze tra gli oggetti, riconoscere le loro pose ed afferarli sulla base delle esperienze passate ossia afferraggi di oggetti simili avvenuti nel passato.

Il sistema sviluppato emula il comportamento degli umani: ritrova in un database, formato da un insieme di oggetti ripresi da pose diverse, il caso che somiglia maggiormente a quello incognito presente nella scena di fronte alla Kinect. Ogni caso trovato `e a sua volta associato ad una serie di afferraggi memorizzati che posssono essere applicati o adattati senza bisogno di modelli analitici predefiniti. In letteratura un approccio di questo tipo si chiama Case-Based Reasoning (CBR) e non `e mai stato sperimentato nell’ambito di afferraggi con mani robotiche e dati provenienti da sensori reali.

(7)

In questo lavoro di tesi sono stati effettuati esperimenti con dati ottenu-ti da sensori reali e organizzaottenu-ti in strutture daottenu-ti 3D chiamate point cloud. Una volta ripresa la scena, segmentate le sue parti e individuato l’oggetto, il sistema realizza una descrizione mediante features estratte utilizzando un algoritmo appositamente studiato. Le features sono caratteristiche salienti che permettono di realizzare un confronto con altre point cloud descritte al-lo stesso modo. Le features possono essere gal-lobali, ovvero una descrizione sommaria dell’intera point cloud, oppure locali cio`e pi`u descrizioni eseguite nelle regioni intorno a punti chiave. In questo progetto sono state utiliz-zate principalmente le features locali, perch´e possiedono una descrittivit`a maggiore.

Una rete neurale, per ogni confronto fra descrizioni, si occupa di classifi-carne il risultato in termini di grado di somiglianza e di produrre un coeffi-ciente compreso fra zero e uno. Per la ricerca dei casi somiglianti sono stati seguiti sia approcci lineari che gerarchici.

`

E stato anche realizzato un sistema ibrido che unisce i vantaggi di en-trambe le tipologie di descrizione. Preventivamente un sistema di ricono-scimento globale si occupa di restringere il database ad un certo numero di casi migliori. In seguito il sistema implementato con approccio locale e rete neurale provvede a migliorare la precisione della risposta grazie alla maggiore descrittivit`a.

I risultati raggiunti con gli approcci locali sono molto buoni perch´e con-sentono di riconoscere gli oggetti con percentuali di successo molto alte, me-diamente intorno al 95%, cos`ı come le loro pose con percentuali intorno al 75%. Il sistema ibrido `e quello che ha avuto prestazioni migliori, con un tas-so di riconoscimento degli oggetti al 99% e delle pose mediamente superiore all’80%.

Il sistema implementato in questa tesi fa parte di una piattaforma che viene sviluppata nell’ambito del progetto PaCMan [1] (Probabilistic and Compositional Representations for Object Manipulation).

Questa tesi `e organizzata in modo da offrire una panoramica su questo ambito di ricerca, presentare quindi le tecnologie implementative, l’architet-tura del nuovo sistema proposto e gli esperimenti eseguiti. In particolare nel capitolo 2 viene presentato il Case-Based Reasoning, il suo scopo e come pu`o essere realizzato. Nel capitolo 3 si affrontano le problematiche relative agli afferraggi con mano robotica dal punto di vista degli approcci, sia analitici che empirici, evidenziando l’utilit`a di questi ultimi nell’ambito analizzato. Nel capitolo 4 vengono illustrate tecnologie per realizzare la ripresa della sce-na davanti al visore, l’acquisizione di immagini tridimensiosce-nali e il software che pu`o essere utilizzato per gestire i dati e manipolarli. Nel capitolo 5 viene affrontato il procedimento di manipolazione vera e propria dei dati, al fine

(8)

di produrre descrizioni coerenti e confrontabili fra loro in ottica CBR. Nel capitolo 6 vengono analizzate e proposte tecniche di confronto fra le features di oggetti. In questo modo `e possibile quantificare in prima battuta una sorta di distanza relativa fra le descrizioni. Il capitolo 7 introduce e spiega come si utilizzano le reti neurali feedforward multistrato che verranno poi implemen-tate nel capitolo 8. Una volta ottenute le descrizioni e dopo aver eseguito un confronto sulla loro distanza, la rete neurale si occupa di classificarlo pro-ducendo un coefficiente di somiglianza compreso fra zero e uno. Infine nei capitoli 9, 10 e 11 vengono presentati i risultati ottenuti dagli esperimenti con il sistema ideato in tutte le varianti implementate.

(9)
(10)

Case-Based Reasoning (CBR)

In questo capitolo verranno introdotti i concetti significativi del CBR [3]. Se si traduce alla lettera significa ragionamento basato su casi (passati), ovvero quella che chiamiamo esperienza. Verranno esaminate le sue appli-cazioni, i processi di recupero dei dati e di adattamento per trovare nuove soluzioni, l’apprendimento, la manutenzione del sistema nel tempo con nuove specifiche, i vantaggi e le differenze con altre metodologie ed infine verranno illustrati dei casi esemplificativi.

2.1

Introduzione

Il Case Base Reasoning (CBR) `e una metodologia di risoluzione dei pro-blemi che utilizza l’esperienza pregressa: si appoggia ad una serie di infor-mazioni sui problemi gi`a affrontati e risolti, riferendosi ad essi per trovare le soluzioni di nuovi problemi che si presentano. Il compito di un sistema di tipo CBR `e di scandagliare la memoria dei casi passati alla ricerca di un caso corrispondente alle medesime specifiche. Se non viene trovato un esem-pio uguale, il sistema deve estrapolare dalla sua base di dati un insieme di casi che si avvicinino il pi`u possibile al nuovo caso rappresentato dalle sue specifiche caratteristiche.

Nella situazione in cui venisse trovato un caso uguale si applica diretta-mente la soluzione gi`a nota. Se, come pi`u comunemente accade, la soluzione non esiste gi`a, si passa ad una fase di adattamento: vengono identificate le differenze fra il caso attuale e quelli passati pi`u somiglianti e la soluzione ricavata viene quindi modificata tenendo conto di queste differenze. La strut-tura di un CBR ricalca proprio queste differenti fasi. Da un punto di vista astratto possiamo immaginare il CBR come una scatola chiusa che esegue meccanismi di ragionamento e richiede in ingresso le specifiche di un

(11)

Figura 2.1: CBR blackbox

ma restituendo in uscita una soluzione suggerita. Il ragionamento interno si pu`o schematizzare in due blocchi concettuali: il ritrovamento dei casi e il ragionamento vero e proprio.

In molte situazioni gli esseri umani affrontano i problemi e li risolvono in un modo schematizzabile come il CBR. Quando un umano si trova di fronte ad un problema in una nuova situazione di cui non ha esperienza, `e portato in modo naturale a ricavare una possibile soluzione ragionando sulle altre esperienze affini che ha vissuto nel corso della sua vita o sulla base delle esperienze di altri esseri umani che hanno affrontato problemi similari, ottenendole per via orale o scritta.

Un “caso” `e un dato memorizzato di un’esperienza passata che entra a far parte della conoscenza che compone la base di dati. Tale informazione dipende dal dominio su cui il sistema deve ragionare e dagli obiettivi che si devono raggiungere. In un sistema CBR `e quindi necessario raccogliere queste specifiche del problema e gli attributi dell’ambiente in cui il problema si presenta. A queste informazioni viene poi associata una soluzione del problema che `e stata applicata per quello specifico caso precedente. Quando si deve progettare un sistema CBR si deve quindi considerare la struttura e la rappresentazione dei casi, la tecnica di memorizzazione della base di dati e la selezione che permette di identificare i casi.

2.2

Rappresentazione dei casi

In molte applicazioni pratiche i casi sono di solito rappresentati come due set di attribuiti, ad esempio i valori del problema e della soluzione. Ma non `

e l’unica opzione possibile: a loro volta i casi possono essere scomposti in altri sottocasi, in modo da fare un fitting pi`u veritiero dei parametri che lo descrivono e venire incontro ai diversi gradi di profondit`a del problema che

(12)

potr`a essere posto al sistema. `E importante che un caso memorizzi tutte le informazioni rilevanti per gli scopi del sistema, in modo da garantire una ricerca dei casi pi`u appropriati al contesto attuale.

Non tutta la casistica delle conoscenze deve essere memorizzata altrimenti diventerebbe inutilmente ridondante; nelle situazioni in cui ci siano due o pi`u casi estremamente somiglianti conviene sceglierne soltanto uno rappresenta-tivo di quella conoscenza specifica. Tuttavia `e anche possibile creare ad hoc un caso artificiale che sia una generalizzazione di esempi molto somiglianti fra loro.

Un grande vantaggio del CBR `e che ogni caratteristica pu`o essere rap-presentata in qualsiasi formato, senza compromettere l’efficacia del sistema. Per individuare quello pi`u appropriato `e necessario analizzare una serie di fattori:

• le caratteristiche che descrivono il caso vanno rappresentate con tipi di dato e strutture;

• linguaggio di programmazione che lo implementa;

• il formato scelto deve aiutare la ricerca, fondamentale in un sistema CBR;

• i casi potrebbero essere mappati in supercasi e sottocasi, quindi la tecnica scelta deve poter supportare questa possibilit`a.

Tuttavia qualunque sia il formato scelto, la cosa fondamentale che va tenuta in considerazione `e che i casi dovranno essere strutturati in modo da facilitare l’esecuzione delle richieste (query) di ricerca in quella memoria. Vediamo alcuni approcci tipici che possono essere usati in un sistema CBR per costruire la struttura della sua memoria:

• Lineare:

una volta stabilite le caratteristiche rappresentative del caso in questio-ne, la ricerca viene fatta confrontando la descrizione del caso attuale con quelle dei casi presenti in memoria;

• Gerarchica:

memorizza i casi in categorie al fine di ridurne il numero; la ricerca quindi analizza un numero minore di casi e non l’intera memoria. Even-tualmente segue una fase finale in cui ritrova il miglior caso all’interno del gruppo individuato.

(13)

Cos`ı come spiegato precedentemente per il formato di rappresentazione dei casi, anche queste diverse tecniche di memorizzazione sono soggette a criteri che, sulla base delle specifiche da risolvere, determinano quando una scelta `e preferibile ad altre:

• la complessit`a dei casi dipende dal formato di rappresentazione per loro deciso;

• il numero di caratteristiche che vanno confrontate nella fase di ricerca dei casi simili;

• tenere in considerazione lo scopo del sistema (ad esempio per un pro-blema di classificazione `e utile la struttura gerarchica);

• il numero dei casi da memorizzare (per esempio in una struttura lineare la complessit`a di ricerca aumenta linearmente con il numero di entry); • se sia possibile che i casi possano essere abbastanza simili fra loro

all’interno di una categoria;

• la quantit`a di conoscenza che si possiede pu`o essere troppo scarsa o troppo grande cos`ı da influenzare negativamente la ricerca di casi simili.

2.3

Caratterizzazione

L’assegnazione ai casi di caratteristiche salienti serve per future ricerche e confronti. Si tratta di una scelta molto importante dato che determina la capacit`a di ritrovare il giusto caso in un contesto attuale.

Dovrebbero rispecchiarne gli aspetti importanti, cio`e gli attributi che in-fluenzano il risultato e quelli che descrivono le circostanze in cui ci aspette-remmo di ritrovarlo in futuro. Non devono essere troppo astratte, altrimenti il caso viene ritrovato nei risultati troppo spesso e troppo genericamente; devono quindi basarsi concretamente sui dati del problema.

Ci`o pu`o essere fatto sia sulla base dell’esperienza umana sia mediante algoritmi che ricavano le caratteristiche che hanno pi`u o meno peso nella ricerca e nella determinazione del risultato. Alcuni si basano su una gerarchia multilivello delle caratteristiche, altri si basano sulla loro dimensione, altri tengono conto delle differenze fra i casi.

(14)

2.4

Ricerca

Per trovare nel casebase (database dei casi) gli esempi pi`u attinenti al contesto attuale, `e necessario prima di tutto stabilire un criterio per giudicare questa somiglianza oltre ad un meccanismo di ricerca in memoria.

Ovviamente il criterio dipende in parte da cosa si sta cercando; ci sono situazioni in cui `e necessario analizzare tutte le caratteristiche dei casi e confrontarle con il contesto attuale, ma `e anche possibile che soltanto una parte di esse sia utile per la query che `e stata fatta. Questo pu`o accadere perch´e potrebbe non esistere un caso che copre completamente la richiesta e si rende quindi necessario compiere un adattamento usando porzioni di casi diversi.

Figura 2.2: CBR parti

Una volta trovato un caso, c’`e una fase in cui si determina se somiglia abbastanza al problema da risolvere. In caso affermativo si passa alla fase di adattamento, altrimenti la ricerca prosegue sul resto del casebase non analizzato.

Il criterio di somiglianza `e estremamente importante perch´e `e pi`u com-putazionalmente onerosa la fase di adattamento di un caso scelto e sba-gliato rispetto ad una eventuale ripetizione di una ricerca per migliorare la somiglianza da trovare.

Il processo di ricerca dipende strettamente dal formato dei dati e dalla struttura della memoria. Esiste una serie di fattori che determinano la scelta di un algoritmo di ricerca, ad esempio il numero di casi da analizzare, l’am-montare di conoscenza disponibile e la facilit`a nel pesare correttamente le caratteristiche descrittive.

Ci sono svariati metodi di ricerca del caso migliore:

• Pi`u vicino: viene eseguita una scansione totale del casebase e ad ogni passo viene calcolata una risposta numerica che valuta l’attendibilit`a del caso analizzato; al termine verr`a selezionato il caso che offre la massima risposta;

(15)

• Induttivo: la scansione del casebase viene attuata su un insieme pi`u ridotto fatto solo di casi rappresentativi di categorie di somiglianza, in modo da ridurre il numero di confronti necessari. Una volta individuata la categoria che risponde meglio alle caratteristiche indicate dalla query, si individua il caso migliore nella sottoramificazione;

• Conoscenza guidata: fa uso della conoscenza del dominio per determi-nare le caratteristiche di un caso che sono importanti per il contesto attuale e per il futuro. Anche questo metodo fa uso di una struttura gerarchica che esclude ramificazioni non inerenti e procede per gradi di approssimazione su uno spazio ridotto di casi;

• Convalidazione: in una prima fase, analizzando le caratteristiche prin-cipali richieste nella query, si ritrovano tutti i casi che sono rilevanti per il problema; poi si ricavano le caratteristiche pi`u discriminanti per capire meglio quali casi sono validi per il contesto attuale. Il vantaggio `

e che si pu`o usare un metodo elementare veloce per ricavare la prima partizione di casi e un metodo pi`u rigoroso e computazionalmente pi`u pesante per lavorare sul sottoinsieme che `e stato ricavato.

Sono possibili anche soluzioni ibride che prendono spunti da queste metodo-logie.

2.5

Adattamento

In questa fase si deve trasformare la soluzione trovata in una soluzione adatta al problema attuale. Questa fase pu`o essere gestita in modi diversi.

Si pu`o applicare direttamente la soluzione oppure modificarla se non `e esattamente appropriata. `E anche possibile ripetere di nuovo la ricerca di una soluzione con modifiche sugli step di ricerca, in base a ci`o che `e stato prodotto. Oppure possono essere presi risultati di pi`u ricerche e derivare una soluzione composta da tutte le soluzioni proposte. Infine c’`e anche la possibilit`a di proporre pi`u soluzioni giudicate equivalentemente soddisfacenti.

2.6

Test

Alla fine del procedimento, la soluzione proposta `e pronta per essere usata nel dominio applicativo.

Va definito come testarla e come classificarla in successo o fallimento, in pratica serve un criterio che misuri la performance del sistema. Tutte le nuove informazioni scoperte durante il processo di risoluzione del nuovo problema

(16)

possono essere tenute in considerazione dal sistema. In questo modo ci`o che prima era sconosciuto diventa nuova esperienza utile per i casi successivi affinando le prossime soluzioni create dal sistema.

Un modo semplice `e aggiungere nel casebase il nuovo problema insieme alla soluzione proposta. Tuttavia il casebase dovrebbe essere modificato sol-tanto se il livello di successo della soluzione `e considerato sufficiente e se il grado di somiglianza con gli altri esempi non `e troppo elevato, al fine di non rendere ridondante l’esperienza alla base del funzionamento del sistema. In sintesi, il nuovo inserimento va a coprire una mancanza di conoscenza.

Vanno anche tenuti in considerazione sia la struttura del casebase che il metodo di ricerca di soluzioni valide; per esempio la ristrutturazione diventa significativa se fa uso rispettivamente di una struttura gerarchica e di una rete neurale.

Un altro metodo possibile consiste nel lasciare inalterato l’elenco dei casi modificando per`o i criteri di ricerca e sfruttando la valutazione del risultato ottenuto. Valutare le soluzioni ha anche il duplice vantaggio di capire meglio il dominio analizzato e di migliorare il processo di ragionamento che consente di adattare le soluzioni ritrovate al contesto reale da risolvere.

2.7

Mantenimento

Al fine di non degradare il sistema si deve giungere ad un compromesso tra capienza del casebase e velocit`a di risposta del sistema. Se possiede pochi casi `e veloce ma offre risposte di scarsa qualit`a, mentre un sistema con elevata quantit`a di casi `e ridondante e dispersivo, quindi produce risposte in tempi lunghi. Per esempio nelle applicazioni realtime si deve tenere conto anche del vincolo temporale deadline sul tempo di risposta.

Si rende quindi necessario evitare la ridondanza, rimuovendo queste ec-cedenze. La rimozione deve anche colpire quei casi che erano stati introdot-ti all’inizio e che in realt`a, una volta prodotto il sistema, non vengono mai considerati e coinvolti, risultando inutili agli scopi per cui erano stati inseriti. Le propriet`a di un sistema di questo genere che vanno tenute sotto os-servazione sono sostanzialmente la dimensione, la distribuzione e la densit`a dei casi, il grado di copertura rispetto ai problemi da affrontare e la loro similitudine, cio`e la capacit`a di rispondere alle query.

(17)

2.8

Tecniche implementative

Nelle applicazioni che riguardano il mondo reale c’`e sempre un grado di incertezza e fumosit`a che si deve tenere in considerazione per rispondere ai problemi con soluzioni il pi`u possibile pertinenti.

Tecniche come le reti neurali, la logica fuzzy e gli algoritmi genetici sono molto utili in situazioni in cui l’incertezza, la conoscenza e l’apprendimento sono parti dei requisiti di un sistema:

• Reti neurali: vengono usate per implementare l’apprendimento e la generalizzazione della conoscenza e dei modelli. Nel caso del CBR sono utili per compiere classificazione e riconoscimento dei casi. Vengono soprattutto in aiuto quando, con dati incompleti o imprecisi, si riesce comunque a dedurre una sorta di classe di appartenenza. Inoltre dal momento che il dominio dei dati `e generalmente molto complesso, il criterio di classificazione `e non-lineare; quindi l’uso delle reti neurali, con pi`u strati nascosti di neuroni, permette di separare e classificare i dati in questo spazio non-lineare. Con le reti neurali `e possibile quindi correlare fra loro caratteristiche difficilmente correlabili con un modello di regole a priori. Applicazioni ibride delle reti neurali con il CBR sono molto comuni, perch´e la conoscenza estratta dalle reti neurali serve al sistema per intervenire sul caso ritrovato. Le reti neurali possono essere usate per implementare l’algoritmo di ricerca e di valutazione dei casi in ingresso.

• Logica fuzzy: la logica fuzzy (sfumata) `e un’estensione della logica booleana che pu`o determinare per le proposizioni un grado di verit`a continuo e non binario, compreso fra 0 e 1 (gli unici valori della logica booleana). Permette quindi di asserire non solo se una propriet`a `e vera o falsa ma anche quanto lo `e. In pratica si pu`o rappresentare con linguaggio umano il legame fra le propriet`a da un punto di vista qualitativo. Nel contesto del CBR potrebbe essere usata per realizzare i criteri di indicizzazione e ricerca dei casi somiglianti. Con le regole di inferenza fuzzy per ogni caso viene generato un grado di appartenenza alla soluzione ricercata in funzione degli attributi. Uno dei maggiori pregi della logica fuzzy `e che consente di usare i modificatori dei termini per aumentare la flessibilit`a nella ricerca. Inoltre le regole fuzzy guidano il processo di adattamento della soluzione in base alle caratteristiche correnti del problema. L’aspetto controverso `e che `e necessario costruire a priori un insieme di regole per descrivere una realt`a complessa e legare fra loro le caratteristiche che descrivono i casi;

(18)

• Algoritmi genetici: si ispirano ai principi biologici della selezione ge-netica naturale nel corso delle generazioni di esemplari di una specie. Possono venire in aiuto ad un sistema CBR per implementare gli al-goritmi di ricerca delle soluzioni, tramite la scrematura mediante una funzione di fitting al fine di produrre i casi migliori (ovvero gli individui della popolazione che vincono la selezione naturale).

2.9

Confronto con altri sistemi

Per quanto detto, un sistema CBR `e diverso dai sistemi basati su regole e configurazioni. In questo tipo di sistemi si hanno delle regole condizionali della forma: IF condizione THEN azione, dove un’espressione logica che lega le caratteristiche dei dati in esame descrive la condizione che deve essere soddisfatta per eseguire l’azione. Un sistema di questo tipo confronta le caratteristiche dei dati correnti per vedere quali regole vengono soddisfatte. Possono anche essere usate delle configurazioni di valori che descrivono una conoscenza stereotipata. Tutto questo definisce un modello deterministico su cui il sistema si basa per prendere decisioni.

Invece un sistema CBR non fa uso di modelli ma di casi. Viene in aiuto specialmente in fase di progetto quando la definizione del modello da ricreare risulta molto complessa. Va considerato anche che con gli altri sistemi si richiede un notevole tempo per l’acquisizione di informazioni utili a convertire il dominio dei dati nel modello formale da creare; non `e neanche vero che sia automaticamente possibile ricavare un criterio formale da qualunque insieme di dati grezzi e non `e neanche detto che ci sia una quantit`a sufficiente di questi dati elementari.

Per questi motivi l’approccio case-based dei sistemi CBR velocizza e snel-lisce soprattutto la fase di acquisizione di informazioni, perch´e consiste pi`u semplicemente nella creazione di una base di dati che ricopre il dominio del problema e le loro soluzioni. Quindi non `e pi`u necessario estrapolare un mo-dello formale e astratto del sistema reale ma si sfruttano questi casi concreti per creare nuove soluzioni per nuovi problemi richiesti. Un altro vantag-gio dei sistemi CBR `e che `e naturalmente incrementale: la sua esperienza pu`o essere formata da un ammontare iniziale di pochi casi noti e costruita passo-passo aggiungendo nuovi casi durante lo sviluppo.

Il CBR non `e la soluzione per tutti i problemi. Esistono delle situazioni in cui l’utilizzo `e inefficace:

• se il processo `e casuale o non sono determinabili i parametri di successo di una soluzione. Non avrebbe senso basarsi sui casi precedenti, essendo

(19)

scorrelati da quelli attuali e non esistendo un criterio di validazione della soluzione;

• se non ci sono nuovi casi da affrontare. Si potrebbe preferire dedurre un modello astratto definito da regole piuttosto che ragionare sul passato; • se i casi non vengono usati per mancanza di similitudine allora `e inutile memorizzarli; ci possono essere dei domini in cui i casi non si somi-gliano abbastanza da poter attuare ragionamenti di tipo adattivo; in questa situazione `e preferibile affrontare il problema con un modello del processo;

• se non c’`e una significativa differenza in termini di risorse temporali e computazionali per l’elaborazione di una nuova soluzione adattata; • se non `e possibile ottenere dati delle esperienze passate che posseggano

le caratteristiche necessarie su cui improntare il ragionamento.

Invece in altre situazioni il CBR `e uno strumento fondamentale che offre risposte con grandi vantaggi:

• il procedimento di acquisizione di conoscenza viene ridotto perch´e `e semplicemente la raccolta di una sufficiente quantit`a di dati per creare la fonte di esperienza del sistema, oltre alla loro rappresentazione e memorizzazione; non esiste pi`u il problema di creazione del modello astratto dell’ambiente con le sue regole;

• `e un sistema che `e in grado di ridurre fino a evitare la ripetizione di errori perch´e impara dall’esperienza e comprende le cause dei fallimenti e dei successi;

• `e in grado di sopperire alla mancanza di rappresentazioni causali e astratte del problema mediante il ragionamento sulla quantit`a di espe-rienza concreta;

• `e in grado di predire la probabilit`a di successo delle soluzioni intra-prese grazie alla conoscenza di altre soluzioni e delle loro possibilit`a di compimento;

• i nuovi casi affrontati e risolti possono diventare nuova esperienza, ren-dendo il sistema CBR in continua evoluzione nel tempo portandolo a perfezionare il suo funzionamento negli esempi futuri;

• `e in grado di gestire imprecisioni e incompletezze dei casi simili con l’adattamento;

(20)

• la modifica di soluzioni preesistenti mediante adattamento rende pi`u rapido il procedimento computazionale di risoluzione; infatti possono esserci dei passi in comune fra le soluzioni note e l’attuale soluzione dedotta;

• `e un sistema in grado di spiegare e giustificare da solo le ragioni per cui la soluzione suggerita `e la migliore, sulla base delle prove empiriche in suo possesso;

• il campo di applicazioni `e molto vasto: pianificazione, classificazione, decisione, diagnostica, opinione e tutti gli ambiti in cui i problemi pos-sono essere risolti empiricamente. Proprio come i dati che gestisce, anche il sistema `e in grado di assumere forme diverse e adattarsi; • il dominio dei dati pu`o essere rappresentato in un numero estremamente

vasto e variegato di modi; lo stesso discorso vale per le modalit`a di ricerca e adattamento;

(21)
(22)

Data-Driven Grasping

In questa parte verranno illustrate alcune tecniche di sintesi di afferraggio sfruttando esempi di afferraggi noti e osservati empiricamente (Data-Driven Grasping), di seguito i criteri per valutare le possibili soluzioni.

Figura 3.1: Dimostrazioni di afferraggi con mano robotica, Fonte: www.pacman-project.eu

Queste modalit`a si contrappongono agli approcci analitici che prevedono solo l’ideazione di modelli predefiniti che devono coprire a priori la casistica immaginabile per l’applicazione di un afferraggio.

Per sintetizzare un afferraggio possono essere seguiti tre approcci a secon-da che l’oggetto sia noto, oppure simile ad esempi o del tutto sconosciuto. Nel primo caso si tratta di riconoscere gli oggetti e la loro posa, nel secondo approccio `e necessario stabilire un grado di somiglianza, infine nell’ultima ti-pologia devono essere individuate specifiche caratteristiche fisiche per poter afferrare l’oggetto ignoto.

3.1

Introduzione

Il problema della sintesi di un afferraggio, dato un oggetto, consiste nel trovare una configurazione meccanica del dispositivo di afferraggio (mano

(23)

robotica) che soddisfi un insieme di aspettative definite secondo criteri ben precisi.

Esistono innumerevoli approcci di sintesi, sia empirici che analitici. I metodi analitici devono generalmente elaborare afferraggi destrorsi, in equilibrio stabile e dinamici. La sintesi deve ricercare quindi una soluzione che sia ottimale nel rispondere a vincoli legati fra loro da queste propriet`a. In pratica un grasp prodotto da uno di questi metodi consiste nel riprodurre una mappa di forze da esercitare su punti di contatto. I criteri per valutare questo tipo di soluzioni sono comunemente legati alla geometria degli oggetti e a formulazioni meccaniche di tipo statico, cinematico e dinamico.

I metodi empirici si fondano su esempi di afferraggi di oggetti noti e, fra questi, selezionano candidati possibili secondo determinati criteri. Un afferraggio di questo tipo pu`o essere parametrizzzato secondo caratteristiche sufficientemente esaustive: il punto sull’oggetto che deve essere allineato al punto centrale della mano robotica da cui parte l’avvolgimento delle dita, il vettore che definisce la distanza e l’angolo con cui la mano si avvicina all’oggetto, l’orientamento del polso e la configurazione iniziale delle dita.

I metodi empirici differiscono fra loro per la tecnica di costruzione del database di casi noti, per i criteri di stima qualitativa dell’afferraggio e per il metodo di utilizzo dei candidati scelti. Sono possibili anche in questo caso test basati su formulazioni analitiche ma molto pi`u comunemente si basano su dimostrazioni empiriche fatte dagli esseri umani e su informazioni percettive.

3.2

Metodi analitici

Un metodo analitico, per sua formulazione, `e in grado di garantire i criteri menzionati di equilibrio, stabilit`a e dinamicit`a. Tuttavia sono modelli pre-determinati e pertanto si basano soltanto su presupposti come per esempio modelli di contatti semplificati, attriti e modelli di corpi rigidi. Si tratta dun-que di metodi che approssimano la realt`a a priori e che non possono coprire tutti i casi possibili.

`

E molto importante il modello per produrre i contatti che andranno poi realizzati durante l’afferraggio dell’oggetto: deve essere accurato e flessibi-le. Queste specifiche servono per analizzare quei casi particolari in cui non `

e possibile controllare tutte le forze interne perch´e il numero di gradi di li-bert`a permessi dalla mano robotica `e inferiore a quelli predetti dal modello analitico.

Trovare una configurazione adatta per la mano robotica pu`o essere vi-sto come un problema di ottimizzazione vincolata. I vincoli tipici sono il contatto, i confini dell’oggetto e la forza esercitata.

(24)

Anche se i modelli sono analitici e predeterminati da descrizioni cinemati-che accurate degli oggetti, della mano e dei loro allineamenti reciproci, nella pratica intervengono altri fattori casuali che disturbano la messa in opera delle soluzioni: i sensori possono essere soggetti a rumore e lo stesso modello cinematico pu`o non essere pi`u rispettato per via di disturbi cinematici subiti dal braccio robotico. Inoltre la posizione relativa fra mano e oggetto `e nota solo in modo approssimativo, pertanto va a sommarsi alle approssimazioni che sono gi`a introdotte da un modello di afferraggio che, per quanto accurato, non pu`o coprire tutta la casistica possibile.

Per affrontare queste problematiche `e necessario incrementare la robu-stezza del sistema al fine di individuare analiticamente punti di afferraggio comuni che impediscano agli oggetti di scivolare. Non basta solo produrre afferraggi, ma devono anche prevedere situazioni di errore e disporre mano e dita in modo da scongiurarli.

Un altro presupposto dell’approccio analitico `e che il sistema disponga del modello geometrico preciso dell’oggetto. Queste informazioni potrebbero non essere cos`ı precise con i sensori utilizzati. La sintesi analitica richiede anche informazioni sul modello fisico dell’oggetto da afferrare, come per esempio i coefficienti di attrito sulla superficie, il centro di massa e la distribuzione del peso. Un modo per risolvere il problema `e agire in tempo reale rilevandoli sul campo durante l’approccio verso l’oggetto da afferrare. Comunque tutte le informazioni non sono sempre disponibili e rendono pertanto il metodo dipendente dal tipo di tecnologie adottate per compiere le operazioni.

Quando cominciarono a formularsi i primi approcci empirici, gli algoritmi analitici si basavano principalmente su simulazioni eseguite su dati raccolti, come per esempio il database Graspit!. Tecnologie per scannerizzare oggetti trimensionali non erano ancora a basso costo e la maggior parte delle verifiche venivano eseguite con simulatori per non ricorrere a sistemi robotici molto costosi.

Per classificare gli afferraggi migliori venivano usate tecniche di questo tipo: viene costruito uno spazio di afferraggi possibili tramite una specie di guscio convesso che avvolge l’oggetto passando per i punti di contatto fra questo e la mano; tramite la -metric viene calcolata la qualit`a della chiusura immaginando di dover afferrare la sfera di massimo raggio racchiusa dal guscio involucro.

Lo sviluppo di queste tecniche al simulatore ha consentito di pianificare e controllare tutti gli aspetti dell’ambiente e le sue interazioni. Invece sistemi robotici di questo genere sono molto costosi e complicano maggiormente la valutazione delle soluzioni trovate.

Tuttavia queste simulazioni non riescono a rappresentare completamente il mondo reale, in cui vigono forze incontrollate e impreviste, come anche

(25)

disturbi e rumore sui sensori. Sono stati eseguiti test per applicare nel mondo reale soluzioni che nelle simulazioni erano state giudicate stabili ma all’atto pratico hanno dato risultati molto al di sotto delle aspettative. Metriche classiche di questo tipo non sono buone per predirre grasping nel mondo reale perch´e producono sintesi fragili.

Un motivo che i test hanno rivelato `e che la chiusura di una mano che afferra non `e garanzia sufficiente di stabilit`a ed equilibrio, ma `e soltanto condizione necessaria; l’afferraggio `e soltanto una premessa per realizzare un equilibrio che per`o pu`o essere anche instabile.

Il vero equilibrio stabile in questo contesto `e possibile solo se si guarda l’afferraggio come un sistema dinamico perturbato da forze che contrastano il raggiungimento di punti di equilibrio. Per queste ragioni, algoritmi studiati ad-hoc venivano smentiti dai test pratici che mostravano performance reali scarse. Pertanto la ricerca si `e orientata verso l’apprendimento del grasping basandolo su esperienza diretta e non su modelli.

3.3

Metodi empirici

Sebbene da un lato la ricerca di esempi da utilizzare sia una fase complessa e lunga da perfezionare, `e pur vero che il passaggio da questi esempi a un vero grasping `e pi`u robusto. La questione fondamentale ora `e come rappresentare l’oggetto e come l’esperienza pregressa venga generalizzata per determinare somiglianze e nuovi afferraggi.

Un approccio empirico poggia tutta la sua affidabilit`a su questi aspetti: • la rappresentazione degli oggetti;

• la descrizione che `e in grado di creare;

• le metriche di somiglianza fra oggetti descritti con la stessa tecnica; • il metodo di classificazione di oggetti e di pose trovate.

Il risultato prodotto `e un altro oggetto giudicato somigliante a quello richiesto; ad esso sono associati degli afferraggi possibili che costituiscono l’esperienza accumulata in partenza dal sistema. Questi afferraggi verranno usati per produrre un afferraggio nuovo oppure verranno classificati in base a un criterio che stabilisce la migliore performance.

In questo modo l’approccio viene incontro all’incertezza dei sensori e del sistema che non possono produrre esempi perfetti per un modello analitico. Gli stessi dati analizzati e memorizzati preventivamente saranno la base di

(26)

esperienza che il sistema adoperer`a per agire. I nuovi dati a tempo di ese-cuzione saranno pertanto coerenti e consistenti con quelli gi`a noti. Inoltre l’elaborazione di un afferraggio `e meno complicata rispetto a quella prodotta da un modello predeterminato perch´e viene aiutata dall’esperienza empirica di partenza, riducendo l’incertezza durante l’esecuzione.

Questi metodi non possono per`o fornire garanzie assolute riguardo il rag-giungimento di equilibrio stabile in comportamento dinamico. `E comunque un passo in avanti notevole rispetto ai metodi analitici, perch´e questi sono in grado di predire la stabilit`a solo in condizioni simulate e controllate ma nella pratica non riescono a predire tutti i disturbi. Un metodo empirico invece raggiunge pi`u facilmente condizioni di equilibrio perch´e ne possiede gi`a la conoscenza: la pu`o sfruttare per replicare i movimenti meccanici necessari al fine di produrre un afferraggio in equilibrio stabile simile a quello trovato.

I metodi empirici offrono anche il loro contributo al miglioramento dei metodi analitici per portarli a rappresentare meglio una realt`a che `e troppo complessa per essere descritta totalmente a priori. I metodi proposti allo stato dell’arte possono essere suddivisi in categorie a seconda del grado di conoscenza che hanno sull’oggetto incognito:

• oggetti noti:

in questo caso vengono presentati soltanto oggetti che ha gi`a imparato a riconoscere ed afferrare e che sono presenti nella sua base di dati memo-rizzata precedentemente alla messa in esecuzione del sistema. Pertanto gli basta cercare nel database l’oggetto e selezionare un grasp migliore in base alla sua posa attuale stimata;

• oggetti simili:

in questo caso il metodo supporta anche il ritrovamento di oggetti non perfettamente identici ma che presentano somiglianze con oggetti me-morizzati precedentemente. Possono essere somiglianze di basso livello come la forma geometrica e il colore, oppure a pi`u alto livello come il riconoscimento di categorie di oggetti. Una volta individuato un caso simile, si pu`o procedere elaborando i suoi afferraggi oppure usandone direttamente uno, dato che oggetti simili si afferrano in modi simili; • oggetti sconosciuti:

in questo caso il sistema non possiede casi noti e i relativi grasping. Il metodo si basa sull’identificazione di features a partire dai dati che rappresentano l’oggetto, per calcolare e stilare una classifica di possi-bili grasping da realizzare. L’unica conoscenza empirica che sfruttano

(27)

`

e quella prodotta dall’oggetto stesso su cui vengono estratte caratteri-stiche, volta per volta, in modo esclusivamente euristico senza modelli predefiniti.

Tutti questi approcci seguono di pari passo gli sviluppi delle neuroscienze riguardo al riconoscimento visivo e all’adattamento che gli esseri umani sono in grado di compiere a seguito di ragionamenti.

3.3.1

Afferraggio di oggetti noti

Nel primo caso il sistema deve afferrare solo oggetti gi`a presenti nel suo database quindi il problema si semplifica a due sole fasi: ritrovamento e attuazione. La prima consiste nel riconoscimento dell’oggetto (object reco-gnition) e stima della sua posa (pose estimation). Una volta individuato il caso corrispondente nel database, basta applicare il grasp memorizzato. In pratica `e un problema di raggiungibilit`a, ovvero di determinare l’insieme de-gli stati raggiungibili partendo da uno stato iniziale (potrebbe accadere che non tutti i grasp siano raggiungibili a partire da certe condizioni iniziali della mano robotica).

Figura 3.2: Schema afferraggio con ritrovamento di oggetti noti Uno schema generale per questo tipo di sistemi pu`o essere quello rap-presentato in figura 3.2. Il database dei casi noti con rispettivi grasp viene generato in una fase precedente all’esecuzione del sistema.

(28)

La fase di costruzione del database pu`o seguire molteplici strade.

Un primo modo (figura 3.3(a)) pu`o essere la sintesi di grasp mediante tecniche analitiche a partire da un database di modelli. Questo a sua volta pu`o essere costituito sia da oggetti reali che da figure geometriche primitive come sfere, cilindri e parallelepipedi che vengono usati per approssimare gli oggetti reali. Al termine, dopo una serie di simulazioni e verifiche (tramite metriche analitiche di valutazione come quelle enunciate nel paragrafo prece-dente), l’oggetto viene memorizzato insieme agli afferraggi migliori che sono stati calcolati.

Un altro modo (figura 3.3(b)) pu`o essere la memorizzazione della struttura dati che rappresenta l’oggetto in una certa posa insieme alle registrazioni di afferraggi compiuti da un essere umano.

(a) Con simulazione (b) Con dimostrazione umana

Figura 3.3: Costruzioni possibili del database

Nel primo caso il fulcro del sistema consiste nel saper generare dei buoni grasp nell’insieme infinito di configurazioni manuali possibili. In pratica `e molto importante la metrica scelta per valutare sintesi diverse. Dipende an-che dal fatto se si vuole trovare il grasp ottimale o solo uno sufficientemente buono. Alcuni supportano l’analisi delle superfici, altri utilizzano normali e confini per racchiudere l’oggetto, tutti per`o vengono eseguiti in simulazione quindi, sebbene possano basarsi su dati empirici, rimangono comunque pe-nalizzati dall’astrazione sintetica, finendo per produrre afferraggi fragili ai disturbi. `E possibile simulare anche i disturbi per aumentare l’affidabilit`a ma non sono parametri facilmente prevedibili.

Il modo che compie veramente lo step verso l’approccio empirico `e il secondo: ovvero la registrazione di afferraggi compiuti da un essere umano.

(29)

Si tratta di un’operazione molto complessa che richiede un lungo periodo per creare, selezionare e memorizzare i dati giusti ma alla fine il sistema avr`a a disposizione una serie di dati che gli permetteranno di imparare ad imitare un essere umano.

L’essere umano compie movimenti in modo cinestetico, ovvero osserva le forme e intuisce dove l’afferraggio pu`o essere stabile, basandosi sull’esperienza gi`a avuta.

Le neuroscienze hanno osservato che un essere umano, durante un af-ferraggio, controlla il suo arto senza usare necessariamente tutti i gradi di libert`a di cui dispone. Grazie a queste scoperte si pu`o dunque ridurre anche la gamma di possibili configurazioni per una mano robotica. In particolare gli esseri umani sono portati ad osservare e individuare le simmetrie geome-triche negli oggetti e ad agire di conseguenza sfruttandone le propriet`a: per esempio diminuendo il pi`u possibile la differenza fra la posizione della mano e quella degli assi principali dell’oggetto.

Questi sistemi si fondano tutti su un principio: l’imitazione dell’essere umano. Sostanzialmente sono dei simulatori del comportamento motorio umano durante un afferraggio: a cominciare dal ragionamento sulla simme-tria degli oggetti per ridurre la complessit`a fino all’osservazione diretta di un essere umano in azione mentre interagisce con gli oggetti.

Esiste anche un’altra possibilit`a che comporta ulteriori fasi di aggiusta-mento delle soluzioni memorizzate dopo l’attuazione : il cosiddetto “trial and error” (figura 3.4)

(30)

Tecniche di questa tipologia non utilizzano un numero fisso di afferraggi possibili ma, sulla base dell’osservazione dell’oggetto, prelevano dal database alcuni afferraggi e provano ad attuarli. Misurano le performance e le me-morizzano nel database per gli usi futuri. In pratica ad ogni oggetto pu`o essere associata una quantit`a variabile di afferraggi presenti nella base di da-ti, ognuno con un certo grado di affidabilit`a che viene ottenuto a tempo di esecuzione.

Non esiste quindi alcuna differenza tra preparazione del sistema e tem-po di esecuzione perch´e evolvono contemporaneamente. Il sistema possiede degli oggetti e degli esempi di afferraggi; il secondo database subisce modi-fiche sulla base degli errori commessi durante la fase di trial, in cui alcuni afferraggi stimati vengono provati sull’oggetto reale. Cominciano con piccole azioni di basso livello imparate dall’esempio umano, vengono opportunamen-te controllaopportunamen-te e forniscono ulopportunamen-teriori informazioni per realizzare prese di livello maggiore nel corso dei tentativi.

3.3.2

Afferraggio di oggetti simili

Molti oggetti possono essere considerati simili fra loro, come se fossero raggruppati in categorie rappresentative di caratteristiche comuni (superficie, forma, segni particolari).

Figura 3.5: Dimostrazioni di afferraggi di oggetti simili con mano robotica, Fonte: http://www.pacman-project.eu

Dal punto di vista dell’afferraggio, le differenze minimali possono essere considerate irrilevanti, perch´e oggetti simili vengono spesso afferrati in modi simili. Oltre a trovare le somiglianze, si tratta anche di determinare una metrica che le rappresenti, ovvero che indichi il grado di somiglianza. Lo schema di principio di un sistema del genere `e visibile in figura 3.6.

(31)

Figura 3.6: Schema afferraggio oggetti simili

L’oggetto viene riprodotto tramite le sue caratteristiche salienti. Grazie ad esse viene elaborato l’afferraggio che pi`u somiglia al caso in questione, basandosi su casi gi`a noti.

Sistemi di questo tipo fanno uso di rappresentazioni dati 3D degli oggetti ma in alternativa possono usare anche rappresentazioni 2D; sono possibili anche forme ibride che fanno uso di entrambe le tipologie di immagini.

Questo tipo di algoritmi si basa fondamentalmente sull’estrazione di fea-tures, ovvero caratteristiche salienti che sono rappresentative dell’oggetto in-cognito e ne semplificano la visione. Queste informazioni vengono poi usate per determinare oggetti somiglianti e i modi in cui poterli afferrare.

C’`e chi sfrutta le parti di features per capire se sono afferrabili e chi mi-ra ad individuare i punti di affermi-raggio globalmente. I dati possono essere per esempio schematizzati in piccole modelli sintetici che fungono da unit`a fondamentali geometriche (cubi, ottaedri, cilindri) e che semplificano la for-ma e la rappresentazione degli oggetti. Queste caratteristiche possono essere sfruttate da reti neurali artificiali per capire in modo pi`u semplice se ci so-no gradi di somiglianza fra queste regioni e poi individuare zone afferrabili. L’addestramento di una rete pu`o essere eseguito su dati cos`ı semplificati, in cui viene specificato in quali di queste regioni `e possibile afferrare l’oggetto. Da quelle ricavate viene poi dedotto per sintesi un afferraggio a chiusura.

La semplificazione dell’oggetto pu`o essere spinta ulteriormente per ricava-re soltanto una singola componente globale. In questo caso la mano robotica `

e pi`u elementare e consiste solo in due o tre dita per afferrare in modo com-patto un oggetto senza distinguerne le particolarit`a. I grasp prodotti saranno indicativi di posizione del polso, distanza e apertura delle dita.

(32)

Sono anche possibili soluzioni di tipo statistico, mediante reti di Markov applicate su point cloud tridimensionali. Ognuno dei nodi della rete deve dire se `e un punto di afferraggio buono, sulla base dei punti vicini a cui `e collegato tramite gli archi della catena. Anche in questo caso opera su modelli che semplificano e regolarizzano la struttura.

Sebbene sia vero che scomporre oggetti in unit`a primitive sia un buon modo per semplificarne la visione e individuare gli afferraggi con una discreta variabilit`a di modi, non `e altrettanto fattibile con dati reali, in cui i sensori, soggetti a disturbi ineliminabili, possono produrre dati incompleti e imprecisi. Metodi e features di questo tipo possono andare bene con rappresentazioni tridimensionali molto accurate come quelle prodotte nelle simulazioni, ma sui dati reali la semplificazione peggiora la visione d’insieme, facendo perdere i pochi dettagli che sono presenti.

L’analisi di dati tridimensionali `e molto complicata, pertanto sono stati usati anche dati in forma bidimensionale. Punti di afferraggio vengono indivi-duati in funzione delle immagini, per esempio sulla base del colore, struttura e angoli. Altrimenti possono essere usate tecniche pi`u probabilistiche su queste features per capire se possono essere usate per afferrare l’oggetto riprodotto.

`

E anche possibile immagazzinare un database di immagini che rappresen-tjno parti di oggetti afferabili insieme ai loro afferraggi. Il problema `e che una volta trovata la somiglianza, non `e possibile capire come agire in un mondo tridimensionale perch´e questo tipo di features, non dicono nulla riguardo a come orientare la mano e le dita.

Inoltre le immagini bidimensionali possono rivelarsi ingannevoli perch´e parti di oggetti che appaiono allo stesso modo possono essere in realt`a diverse da un punto di vista tridimensionale e quindi afferrabili diversamente.

Pertanto ci sono anche approcci che fanno uso di entrambe le tipologie di immagini, in modo da sfruttare la semplicit`a trattabile di quelle bidimen-sionali e la ricchezza di informazione di quelle tridimenbidimen-sionali, bilanciando reciprocamente gli svantaggi laddove possibile.

La produzione di un afferraggio di un oggetto simile `e l’operazione finale del processo. Nel caso di oggetti somiglianti, nel database non esistono affer-raggi noti in modo esatto. Il sistema deve quindi elaborare una nuova mo-dalit`a di afferraggio che tiene comunque in considerazione questa esperienza ritrovata.

Ci sono due strade: la sintesi con modelli del database o la sintesi sui dati provenienti dai sensori. In pratica la differenza consiste nel fatto che nel primo caso si opera una sintesi degli afferraggi noti costruiti con modelli precisi, nel secondo si cerca di mappare l’oggetto reale sui grasp memorizzati, ovvero analizzare le corrispndenze fra il nuovo oggetto e la mano umana che afferra l’oggetto simile.

(33)

Si pu`o anche generalizzare l’approccio basandolo non solo sulla descri-zione dell’oggtto ma anche sulla categorie di afferraggio che possono essere realizzate. In pratica a partire dalle features `e possibile ricavare il tipo di grasp e le direzioni ottimali da applicare sul grasp noto per realizzare quello somigliante.

Uno sviluppo promettente `e quello del riallineamento rigido fra pose di oggetti simili (eventualmente con variazioni di scala). Dopo aver realizzato questa operazione i punti di contatto degli afferraggi noti possono essere trasferiti su quelli del nuovo oggetto.

Queste modalit`a sono state applicate a dati tridimensionali precisi e com-pleti, ma risultati certi in situazioni reali con dati provenienti dai sensori non sono ancora stati eseguiti. Un modo per ovviare a queste problematiche `e realizzare una registrazione delle scene da pi`u punti di vista e poi ricomporle, ma resta ancora l’inconviente del disturbo artificiale che viene introdotto.

Nel caso di utilizzo dei dati provenienti dai sensori il procedimento pu`o essere sia euristico che basato sull’esperienza nota. Una volta estratte le features, queste possono essere subito provate in modo empirico mediante piccoli movimenti elementari e in seguito utilizzati per adattare gli afferraggi ritrovati nel database. Dato che procede anche in modo euristico, c’`e bisogno di un feedback che valuti la prestazione dell’afferraggio in modo da aggiustare i singoli passi necessari per compierlo, nel caso avesse prodotto delle manovre sbagliate.

(34)

Alcune delle features possibili per associare grasp candidati ad essere utilizzati possono essere la forma dell’oggetto, il baricentro e i suoi assi prin-cipali. Ognuno dei grasp poi produce un grado di corrispondenza legando i suoi parametri con quelli dell’oggetto tramite una funzione predeterminata. Un metodo di questo tipo per`o limita la gamma di oggetti usabili perch´e non tiene sufficientemente in considerazione le variazioni delle pose di uno stesso oggetto che possono nascondere alcune sue parti.

Un altro modo consiste nel registrare tutte le parti dell’oggetto che sono state toccate dall’essere umano durante la costruzione del database. Tutto si basa nell’individuazione di queste parti all’interno della struttura-dati che rappresenta l’oggetto nuovo.

Per rendere il database pi`u robusto `e possibile costruirlo mediante trial and error in modo che gli afferraggi registrati vengano non solo memorizzati staticamente ma anche provati e subito adattati dal sistema robotico alle sue esigenze.

Tuttti questi approcci si basano fondamentalmente su informazioni di basso livello relative esclusivamente agli oggetti da afferrare.

`

E anche possibile ridefinire il concetto di somiglianza fra oggetti spostan-dolo dalla coppia di oggetti alla categoria di rappresentanza. Pu`o accadere che oggetti dalla forma molto diversa possano tuttavia essere afferrati in modi molto simili, specialmente in ambito domestico. In questo caso l’oggetto nuo-vo `e incognito quindi la categoria non pu`o essere ritrovata in modo preciso, ma deve essere dedotta dalle sue caratteristiche.

In questo tipo di metodo si punta tutta l’attenzione verso la classificazione di oggetti e non verso la somiglianza puramente geometrica. Per esempio verranno considerate simili fra loro tutte le bottiglie, cos`ı come tutte le tazze, i bicchieri, le posate, perfino scatole di dimensioni diverse e tutti quegli oggetti che sono diversi fra loro ma che vengono maneggiati praticamente allo stesso modo.

Quando arriva in ingresso un oggetto viene verificato se pu`o corrispondere a qualcuno di quelli gi`a esistenti, ovvero se rientra nel precedente concetto di somiglianza fra oggetti. In quel caso diventa nota anche la sua categoria. Se invece l’oggetto non sembra corrispondere ad alcun oggetto presente nel database, per via di eventuali differenze visibili, allora si deve procedere in modo iterativo per escludere categorie che non risultano attinenti.

Ultimamente infatti la ricerca `e diretta anche a trovare nuovi modi per descrivere oggetti tridimensionali in ottica di classificazione di categorie.

(35)

Oggetti sconosciuti

In questo scenario il sistema non `e a conoscenza dell’oggetto che gli si `

e presentato davanti, ovvero non possiede alcun dato nel database che cor-risponda all’oggetto incognito o che gli assomigli. Pertanto mancano anche esempi di grasp da sfruttare.

Il modo in cui si procede `e euristico per esclusione. Si tratta di creare corrispondenze fra la struttura dati proveniente dai sensori e tentativi di grasp da modificare.

Ci sono due possibili strade per creare un grasp da zero. Da un lato si pu`o basare il grasp sulle features 2D/3D dell’oggetto inquadrato, oppure si pu`o ricreare l’oggetto mediante forme geometriche primitive che operano un fitting sulla sua superficie, da questa forma approssimata poi viene ricavato un grasp.

In entrambi i casi vanno valutate diverse soluzioni secondo una stessa metrica e in seguito viene messa in pratica la migliore. Tuttavia la mancanza di somiglianze ed esperienza esula dagli scopi di questo progetto perch´e si ricondurrebbe a sistemi con modelli analitici precedentemente esposti.

(36)

Immagini RGB-D

4.1

Introduzione

Sia che si tratti di immagini fotografiche che di scene pi`u complesse multi-dimensionali per rappresentare l’informazione visiva di una scena che `e stata ripresa con un dispositivo, `e sempre necessario campionarla e codificarla, ovvero suddividere la scena in porzioni elementari e codificarle ciascuna in modo univoco. Nel caso della rappresentazione di oggetti tridimensionali si pu`o approssimare la superficie fisica continua con un insieme di punti con una certa risoluzione che dipende dalla qualit`a del dispositivo di ripresa. Questo insieme si chiama point cloud (figura 4.1).

Figura 4.1: Point cloud rappresentante un bollitore

Una point cloud `e una struttura dati usata per rappresentare un insieme di punti multi-dimensionali. Nel caso pi`u generale e semplice i punti sono tridimensionali, ovvero possiedono una terna di valori che rappresentano le

(37)

coordinate spaziali (x, y, z) rispetto ad un sistema di riferimento. Posso-no essere aggiunte altre informazioni come l’intensit`a luminosa oppure nello specifico pu`o anche possedere coordinate cromatiche RGB; man mano che si aggiungono informazioni di varia natura aumentano anche i canali che rap-presentano il punto, o le sue dimensioni, approfondendo i dettagli della sua descrizione.

Le point cloud possono essere ottenute tramite dispositivi in grado di riprendere e rappresentare una realt`a tridimensionale. Esistono dispositivi che rilevano solo la posizione nello spazio rispetto al punto di osservazione, quindi aggiungono profondit`a alla semplice fotografia, altri che rilevano anche luminosit`a e colore. Possono essere RGB-D camera (ad esempio Kinect), stereo camera, 3D laser scanner, Time-of-flight camera. Si possono anche creare sinteticamente tramite software.

In linea di massima sfruttano tutte le stesso principio di riflessione di raggi di luce, ovvero onde elettomagnetiche a una certa lunghezza d’onda determinata dalla tecnologia specifica. Si differenziano per le modalit`a di interpretazione dell’onda che pu`o andare dalla misura del tempo di volo a quella di inter-tempi fra impulsi, oppure dagli sfasamenti dell’onda fino all’os-servazione di come si modifica un pattern luminoso che incide sulla superficie ripresa.

I laser hanno la particolarit`a di analizzare l’oggetto a linee scandendo meccanicamente lungo alla scena (anche intorno ad essa), mentre le altre tipologie osservano direttamente i pixel, ovvero le regioni elementari dello spazio al di sotto della quale non riescono a percepire stimolo visivo. Le stereo camera sono formate da una coppia di macchine fotografiche dette ca-mere metriche, le cui risposte combinate permettono di misurare gli oggetti inquadrati. Gli scanner utilizzano pattern luminosi proiettati sulla scena e rilevano la variazione da essa prodotta. Le altre tipologie si basano invece sull’analisi della riflessione dei raggi luminosi proiettati sulla scena, dei loro tempi e di eventuali sfasamenti prodotti; le RGB-D possiedono anche sensori per rilevare la componente cromatica e la ricostruiscono sui dati tridimensio-nali rilevati. RGB-D sta per immagini a colori RGB (Red-Green-Blue) che possiedono anche il canale D, ovvero depth o distance, profondit`a o distanza a sua volta codificata.

Un’immagine bidimensionale `e composta da pixel posizionati nel quadro o frame video tramite coordinate x, y, rispettivamente orizzontale e verticale. Un’immagine tridimensionale possiede anche il parametro z che memorizza la profondit`a o distanza di quel punto rispetto all’osservatore.

Per tutte queste caratteristiche `e preferibile utilizzare immagini tridimen-sionali rispetto alle classiche fotografie bidimentridimen-sionali. Infatti l’applicazione richiede di poter percepire la profondit`a, dato che il braccio robotico

(38)

de-ve muode-vere i suoi arti sapendo la posa dell’oggetto nello spazio reale. Te-lecamere che producono dati con informazioni tridimensionali sono quindi indispensabili per un sistema di questo tipo.

Esistono anche altri formati di rappresentazione per dati inerenti a oggetti tridimensionali ma il formato scelto `e quello della point cloud perch´e `e quello pi`u elementare e velocemente acquisibile in un contesto realtime. Ci sono formati pi`u complessi, come per esempio le mesh di poligoni che riproducono l’oggetto mediante giustapposizioni di forme geometriche primitive. La pont cloud offre una rappresentazione pi`u semplice soltanto da un punto di vista relativo, ma gi`a da sola consente di ricostruire la forma solida degli oggetti inquadrati; con essa `e possibile stimare le superfici osservando le coordinate dei punti, inoltre si presta ad essere memorizzata in modo efficiente e ad essere descritta secondo svariati algoritmi, anche molto esaustivi.

(a) Pentola (b) Tazza

(c) Recipiente

(39)

4.2

Depth-camera Kinect

Il sensore Kinect incorpora un sensore di profondit`a, una telecamera RGB, quattro microfoni per implementare funzionalit`a di riconoscimento vocale e facciale in ottica motion-capture 3D.

Figura 4.3: Kinect

Il sensore di profondit`a `e composto da un laser ad infrarossi e da un senso-re CMOS monocromatico. Il laser emette un raggio luminoso sulle fsenso-requen- frequen-ze dell’infrarosso (invisibile all’occhio umano e innocuo), mentre il sensore CMOS cattura la luce a quella frequenza riflessa dall’ambiente, creando una mappa della sua profondit`a.

Il range del sensore `e configurabile ma possiede comunque dei limiti fisici inferiori e superiori. Le scene inquadrate hanno una zona cieca frontale al di sotto dei 60/70 cm e oltre i 5 metri. La visione periferica invece ha un’ampiezza pari a 57◦ in orizzontale e 43◦ in verticale.

Per default il rate video d’uscita `e pari a 30Hz e formato da una coppia di stream dati provenienti dai due tipi di telecamere montate sul dispositivo: RGB-camera e depth-camera. La risoluzione del sensore cromatico `e a 8 bit VGA (640x480 pixel per un totale di 307200 punti a point cloud); la loro profondit`a viene catturata con la depth-camera monocromatica, anch’essa VGA, e la profondit`a codificata su 11 bit, pari a 2048 livelli di profondit`a percepibili.

Lo stream dati del sensore consiste in due matrici, una per la RGB-camera e l’altra per la depth-RGB-camera. Quella RGB `e una semplice fotografia dell’ambiente che si potrebbe visualizzare direttamente essendo un’immagine bidimensionale a canali RGB. L’altra matrice `e quella che determina l’usci-ta vera e propria che pu`o essere una point cloud o una range image. Nel primo caso si tratta di una struttura dati per rappresentare immagini tridi-mensionali che presenta informazioni spaziali compresa la profondit`a insieme a colore, luminosit`a e altre variabili fisiche di interesse; la seconda `e un’im-magine bidimensionale i cui pixel sono per`o codificati per rappresentare la profondit`a.

(40)

4.3

PCL - Point Cloud Library

PCL `e una libreria open-source ricca di funzionalit`a e strumenti per pro-cessare immagini 2D o 3D. `E scritta in C++ ed `e pertanto compatibile con tutte le piattaforme pi`u diffuse: Linux, MacOS, Windows e Android; vie-ne rilasciata gratuitamente secondo i termini della licenza BSD, sia per un utilizzo a scopo di ricerca sia commerciale.

Si occupa di acquisizione dati e di interfacciamento I/O con i dispositi-vi che producono le immagini tridimensionali e comprende una larga parte degli algoritmi di analisi prodotti attualmente: filtri, segmentazione, estrapo-lazione di punti chiave (keypoints), caratteristiche principali (features), stima delle normali e delle superfici, ricostruzione di immagini, fitting di modelli e molti altri.

4.3.1

Strutture di base

Il tipo di dato principale `e definito pcl::PointCloud<PointType>. Si tratta di

un template di una classe C++ che contiene campi per descrivere nuvole di punti di qualsiasi tipo essi siano insieme alle operazioni possibili su di essi. I

PointType a loro volta sono tipi strutturati.

Una PointCloud `e definita organizzata quando `e nota la dimensione del quadro su cui posizionare i punti. Un’immagine `e determinata non solo dalle propriet`a dei suoi punti ma anche dal numero di punti su riga e dal numero di righe, cio`e dalla larghezza e altezza.

Vediamo adesso i campi di una pcl::PointCloud:

• std::vector<PointType> points;

`

e il vettore che contiene tutti i punti di tipo PointType (da istanziare in

fase di definzione di un oggetto di tipo PointCloud<PointType>);

• int width;

indica la larghezza dell’immagine; nel caso di point cloud organizzate questo valore indica il numero di punti su una riga; nel caso di point cloud non organizzate questo valore `e pari al numero di punti del vettore

points;

• int height;

indica l’altezza dell’immagine; nel caso di point cloud organizzate que-sto valore indica il numero di righe; nel caso di point cloud non orga-nizzate `e pari ad 1.

(41)

• bool isdense;

Vale true se i campi (x, y, z) sono valori finiti, altrimenti se sono NaN

(Not a Number) o Inf (infinito) il parametro vale false;

Ci sono anche altri campi che non vengono praticamente mai utilizzati dalla maggior parte degli algoritmi PCL, ma che tengono comunque memoria della posizione del sensore e del suo orientamento (Eigen::Vector4f sensor origin; Eigen::Quaternionf sensor_orientation;)

Come anticipato, il PointType `e una struttura i cui campi descrivono un

punto della nuvola in un determinato modo: • PointXYZ {float x, y, z;};

coordinate spaziali (x, y, z) rispetto al sistema di riferimento posizio-nato nel punto di osservazione; `e il tipo base per rappresentare corret-tamente un punto tridimensionale e a cui i tipi successivi aggiungono informazioni extra;

• PointXYZI {float x, y, z, intensity};

aggiunge l’intensit`a luminosa del punto osservato; • PointXYZRGB {float x, y, z, rgb};

aggiunge informazione sul colore del punto, codificato in canali RGB; • PointXYZRGBA {float x, y, z; uint32 t rgba};

aggiunge informazione tramite il canale Alpha relativo al grado di trasparenza/opacit`a;

• Normal {float normal[3], curvature};

`

e uno dei tipi pi`u importanti e pi`u usati dagli algoritmi; rappresenta il vettore normale alla superficie e la sua curvatura in un dato punto (vedere capitolo 5.3.1);

• PointNormal {float x, y, z, normal[3], curvature};

semplicemente un tipo che raggruppa insieme informazioni su punto, normale e curvatura; allo stesso modo esistono i tipi PointXYZRGBNormal e PointXYZINormal;

• PointWithRange {float x, y, z, range}

(42)

• PointWithViewpoint {float x, y, z, vp_x, vp_y, vp_z;}

aggiunge una terna di coordinate riguardo alla posizione del punto di osservazione, come se fosse un punto della nuvola;

• Histogram {float histogram[N]};

il tipo di dato usato per memorizzare istogrammi

Ce ne sono molti altri ma non verrranno riportati in questo elenco perch´e non rilevanti. Per accedere ad ognuno di questi campi si usa l’operatore (.) fra il nome della variabile, ovvero points, seguita dal nome della variabile

membro. (Nota: sono state semplificate rispetto alle versioni reali che in taluni casi fanno uso di unione struct innestate).

Sono i tipi che vengono usati dalla maggior parte degli algoritmi imple-mentati in PCL. Tuttavia non c’`e nulla che vieti all’utente di creare dei nuovi tipi personalizzati a seconda delle necessit`a (`e cos`ı che vengono aggiunti di volta in volta nuovi tipi relativi a nuovi algoritmi inseriti in successive relea-se della libreria). PCL non possiede solo i template per definire i tipi ma li instanzia a sua volta per velocizzare il processo di compilazione. Una volta compilata come libreria, il compilatore in un programma utente non ha bi-sogno di compilare i template ma lascia che sia il linker a trovarli, dopo aver incluso l’header di dichiarazione e quello di implementazione.

Una pcl::PointCloud<PointType> pu`o essere instanziata per contenere punti di

tutti i tipi possibili, non solamente i tipi classici rappresentativi di propriet`a geometriche e fisiche, come quelli elencati; si pu`o gi`a intuire dal tipo elemen-tare Histogram che non rappresenta un punto geometrico in senso stretto. Una

PointCloud pu`o contenere anche tipi pi`u complessi ed elaborati, per esem-pio i tipi definiti dai descrittori di features (capitolo 5) perch´e anche questi vengono considerati come punti, mentre la struttura PointCloud `e il tipo base con cui si eseguono le operazioni e dalla quale derivano classi figlie che implementano operazioni sempre pi`u specifiche.

Queste scelte progettuali rendono la libreria molto versatile e adattabile all’uso.

Le informazioni racchiuse da una PointCloud possono essere salvate su file

in formato .pcd composto da un header testuale che riporta tutti i membri seguiti dal loro valore.

4.3.2

Moduli

La libreria `e scomposta in svariati moduli che implementano funzionalit`a e interfacce da offrire ad altri moduli e al programmatore:

Figura

Figura 3.3: Costruzioni possibili del database
Figura 3.4: Schema afferraggio con feedback
Figura 3.5: Dimostrazioni di afferraggi di oggetti simili con mano robotica, Fonte: http://www.pacman-project.eu
Figura 5.5: Pipeline di elaborazione della point cloud - Fase di Descrizione in dettaglio
+7

Riferimenti

Documenti correlati

Sto in Italia già da tre anni circa, pel impalale italiano e invece da inizia tanto difficile ma per impalale importante è come per ogni giorno bisogno parla parla parla

single-particle mean kinetic energy 具E K 典 of 4 He adsorbed in cylindrical silica nanopores for two different pore diameters, namely, 24 and 160 Å, and to study the dependence

CORSI DI LAUREA MAGISTRALE IN SCIENZE STORICHE E IN SCIENZE DEL GOVERNO CORSI DI LAUREA TRIENNALE IN STORIA, IN SCIENZE POLITICHE E SOCIALI E IN BENI CULTURALI. DOTTORATO IN

Corso di Principi e Modelli della Percezione Prof.. Percezione e riconoscimento di oggetti //cosa vedete?.. Percezione e riconoscimento di oggetti //cosa vedete?.. Percezione

 Si può anche usare il valore di ritorno come Si può anche usare il valore di ritorno come parametro nella chiamata di un altro metodo:. parametro nella chiamata di un

• Le relazioni tra concetti appaiono nel codice come relazioni di ereditarieta’.. Aspetti generali

I campi campi descrivono le proprietà delle istanze della classe; ogni campo:. • ha

Secondo l’interleaving model viene eseguita una transizione alla volta: se ci sono pi`u processi la loro esecuzione `e alternata (modello della multiprogrammazione).. In realt`a non