• Non ci sono risultati.

3.3 Implementazione

3.3.3 Creazione del training set

Per quanto riguarda la fase di learning dell'Echo State Network, si è scelto di eettuare l'addestramento oine a priori con l'algoritmo batch per il calcolo dell'errore quadratico mostrato precedentemente. Per eettuare questo tipo di apprendimento oine, è necessario fornirsi di un trainig set formato dal usso ottico (nella versione semplicata) istante per istante e dalla sequenza di co- mandi motori corrispondenti. Quindi, ogni elemento della sequenza di trainig avrà, come input i vettori del usso ottico semplicato e i comandi motori in- viati in un determinato istante, mentre come output il usso ottico ottenuto dall'esecuzione di tali comandi. Per estrarre queste informazioni dal simulatore è necessario compiere alcuni passi:

1. Estrarre una sequenza di immagini dal simulatore con i comandi motori che le hanno generate. Queste due sequenze dovranno essere sincronizzate in modo tale da sapere quale comando motorio è servito per passare da un'immagine all'altra. Perché i dati analizzati siano il più possibile simili a quelli ottenuti da una camera reale, bisognerebbe estrarre le immagini ad una frequenza di 30 Hz.

2. Calcolare la sequenza di ussi ottici relativa alla sequenza di immagini precedentemente estratte e aancarci i comandi motori corrispondenti. 3. Semplicare i ussi ottici ottenuti dividendo l'immagine in zone e cal-

colando per ogni zona il vettore media delle velocità delle feature rilevate in quella zona.

4. Da questa sequenza, formata da ussi semplicati e comandi motori, ricavarsi le sequenze di input ed output desiderate.

Vedremo ora le soluzioni implementative realizzate per ciascuno di questi punti. Estrazione immagini e comandi motori

Per riuscire ad ottenere una sequenza di immagini e relativi comandi motori necessari per far eettuare un movimento prestabilito al robot, è stato scritto un processo in C++ utilizzando le librerie YARP per la comunicazione con il robot. Dato che, per il funzionamento del modello è necessaria una sola tele- camera, vengono estratte solamente le immagini provenienti dall'occhio sinistro del robot. Per far compiere il movimento desiderato all'iCub, vengono utilizzati

solamente i comandi motori in velocità dei due giunti del collo corrispondenti allo yaw e al pitch (imbardata e beccheggio) della testa. Si è optato per questa scelta perché, come si vedrà meglio nel prossimo capitolo, questi tre dati sono sucenti per eettuare i test necessari ad analizzare il funzionamento della rete. La velocità del mondo nel simulatore è pari a 100 passi di simulazione al secondo. Per questo motivo, si è deciso di realizzare il processo di controllo in modo tale che compia le sue azioni ogni tre passi di simulazione (circa 30 Hz), accertandosi di non saltarne nessuno.

I movimenti da utilizzare per generare il training set vengono espressi tramite le sequenze di comandi motori in velocità necessari per eettuare tali movimen- ti. Ogni tre passi l'estrattore/controllore memorizza l'immagine attuale della camera sinistra in un vettore ed esegue l'elemento sucessivo della sequenza di comandi. Ultimato il movimento desiderato il processo memorizza su disco le immagini presenti nel vettore ed un le di testo contenente i comandi motori eseguiti per ottenerle (la coppia di comandi motori n°4 del le di testo rappre- senta il controllo che è stato necessario per passare dalla quarta immagine alla quinta).

Calcolo del usso ottico

Per il calcolo del usso viene utilizzato l'estrattore di usso ottico di cui è stata descritta l'implementazione nel sotto-paragrafo 3.3.1. Gli si fornisce in ingresso la sequenza di immagini ottenuta dal simulatore e si ottiene come uscita le 2 sequenze dei ussi ottici (una con le matrici delle ascisse ed una con quelle delle ordinate).

Semplicazione del usso

Per ottenere il usso ottico semplicato vengono processate le 2 sequenze dei ussi ottici nel seguete modo. Per ogni elemento di ciascuna sequenza viene:

1. Suddivisa la matrice di reali in sotto-matrici, una per ogni zona in cui si intendere suddividere l'immagine.

2. Fatta la media dei punti diversi da zero di ciascuna sottomatrice. 3. Costruito un vettore contenente l'insieme delle medie appena ottenute. In questo modo si ottengono le 2 sequenze contenenti i ussi ottici semplicati.

Creazione delle sequenze di input e output

Per nire dalle 2 sequenze di lussi ottici semplicati e da quella di comandi motori vengono creati i due training set (uno per la rete che deve predire le velocità in x e uno per quella che le deve predire in y). Per ciascuna rete, l'input dell'i-esimo elemento della sequenza di training conterrà:

1. Il usso calcolato dalle immagini (i -1)-esima ed i-esima.

2. Il comando motorio (yaw per le x e pitch per le y) necessario per passare dall'immagine i-esima alla (i + 1)-esima.

L'output dell'i-esimo elemento conterrà solamente il usso calcolato dalle im- magini i-esima ed (i + 1)-esima.

Nel presente capitolo sono stati mostrati la struttura, gli algoritmi e gli stumenti scelti per l'implementazione del modello di predizione. Sucessivamente, nel capitolo 4, verrano riportati i risultati dei test eetuati che dimostrano la validità della tesi proposta.

Capitolo 4

Test sulla rete ed analisi dei

risultati

Fino ad ora è stata descritta un'implementazione del modello interno preditti- vo necessario per la realizzazione di un sistema di controllo predittivo. Per di- mostrare, però, la validità ed il corretto funzionamento di tale implementazione, è necessario eettuare dei test. Nei paragra che seguono saranno descritti, pro- prio, i test scelti per questo scopo. Come si è detto in precedenza, le varie prove sono state eettuate all'interno di un ambiente simulato. In questo ambiente è presente una controparte digitale del robot umanoide iCub, che risulta essere una piattaforma valida per le esigenze dei test svolti.

Il presente capitolo contiene un primo paragrafo in cui si descriveranno in dettaglio le speciche dell'ambiente di testing e la tipologia di prove eettuate. Questo sarà utile per poter passare al paragrafo sucessivo in cui verranno forniti i risultati dei test ed una loro attenta analisi. Il tutto sarà concluso da un breve riassunto dei risultati ottenuti.

Documenti correlati