CONTROLLO DI UN ROBOT IN REMOTO MEDIANTE SISTEMA DI ACQUISIZIONE AD INFRAROSSI Relatore: Daniele Carnevale Tesista: Giuseppe Ferrò 18/09/2018
Struttura della presentazione Obiettivo: far replicare ad un manipolatore robotico i movimenti del braccio umano. Descrizione dell'hardware e del software utilizzato. Struttura stereoscopica. Filtro di Kalman. Controllo del robot. Interfaccia (in Processing). Conclusioni. 18/09/2018
Dotati di una camera a infrarossi. Descrizione dell'hardware e del software utilizzato I controller della wii Dotati di una camera a infrarossi. Individuano fino ad un massimo di 4 led IR in movimento. Risoluzione di 1024x768 pixel. Frequenza di campionamento di circa 100Hz. Collegamento via bluetooth. 18/09/2018
Descrizione dell'hardware e del software utilizzato Led a infrarosso Collegati in parallelo ad una tensione di circa 3V. Vengono posizionati in prossimità di: spalla, gomito, polso, polpastrello. 18/09/2018
Descrizione dell'hardware e del software utilizzato Scorbot Manipolatore a 5 gradi di libertà. Encoders montati sui motori per misurare la posizione angolare dei giunti (posizione relativa). Controllo proporzionale dei motori DC. Posizione di HOME (riferimento assoluto). 18/09/2018
Descrizione dell'hardware e del software utilizzato WMGUI E’ stato utilizzato un programma predisposto per: Collegare i due controller wii tramite bluetooth al computer. Effettuare la stereocalibrazione. Rilevare e salvare in array le coordinate 2D di 4 led sui piani immagine dei controller. Il sistema operativo utilizzato è stato Ubuntu 11.10. 18/09/2018
Struttura Stereoscopica Calibrazione La calibrazione permette di ricavare i parametri necessari a ricostruire le coordinate dei 4 led in un sistema di riferimento inerziale 3D, a partire dalle coordinate 2D dei led sui piani immagine dei controller. Parametri Intrinseci: dipendono dai controller stessi. Comprendono distanza focale, distorsione delle lenti ecc. Parametri Estrinseci: vengono calcolati tramite la calibrazione e comprendono le coordinate delle telecamere in un sistema di riferimento noto. 18/09/2018
Struttura Stereoscopica Calibrazione Vengono disposti i led su un pattern a forma di quadrato di lato 180mm. Vengono salvate le coordinate (sui piani immagine 2D dei controller) dei led in posizioni e orientamenti diversi del pattern. Viene utilizzato il camera calibration toolbox in Matlab per creare il file di stereocalibrazione. 18/09/2018
Struttura Stereoscopica Algoritmo di mappatura Necessario per: Ordinare i led su entrambi i piani immagine delle telecamere. Individuare la posizione di spalla, gomito, polso e dito individuati tramite led IR. L'assenza o il malfunzionamento di tale algoritmo porta ad una triangolazione errata dei led nel sistema di riferimento 3D. 18/09/2018
Struttura Stereoscopica Algoritmo di mappatura Poiché i led sono direzionali se sono inclinati rispetto ai controller non vengono ben rilevati. E’ quindi necessario durante i movimenti del braccio che i led si trovino su un piano il più possibile parallelo al piano di visione delle telecamere. 18/09/2018
Struttura Stereoscopica Algoritmo di mappatura E' necessaria una posizione iniziale in cui il led sulla spalla si trovi sulla sinistra rispetto agli altri. La nuova spalla viene calcolata come la più vicina alla spalla dell'iterazione precedente. Poichè l'avambraccio e la mano sono più corti del braccio, l'algoritmo riesce ad associare ai 3 led rimasti le posizioni di gomito, polso e dito. 18/09/2018
Struttura Stereoscopica Triangolazione Viene incluso nel sorgente di wmgui l’header file “engine.h” che permette di utilizzare funzioni matlab all’interno del codice in C. La funzione “mlfStereo_triangulation” riceve in ingresso le coordinate 2D dei led su entrambi i piani immagine dei controller e restituisce un array con le coordinate dei led all’interno di un sistema di riferimento inerziale 3D. Le coordinate 3D dei led sono affette da disturbi di misura e vengono quindi filtrate utilizzando il filtro Kalman. 18/09/2018
Filtro di Kalman Modello Dinamico Il filtro di Kalman fornisce una stima ottimale (secondo un indice di costo quadratico) dello stato di un sistema dinamico lineare. Per calcolare lo stato stimato è necessario definire il modello dinamico del sistema considerato. Si può quindi calcolare di volta in volta lo stato stimato del led i- esimo xi(k+1) conoscendo lo stato attuale e lo stato precedente. Lo stato xi(k) rappresenta le coordinate (xi,yi,zi) al tempo k del led i-esimo. Dinamica dello stato: 18/09/2018
Filtro di Kalman Modello Dinamico Il sistema si può ricondurre alla forma classica di un sistema lineare stazionario: Definendo A, C e x(k) nel seguente modo: 18/09/2018
Filtro di Kalman Implementazione Una volta definite la matrice di covarianza dell'errore sullo stato Q e la matrice di covarianza dell'errore sull'uscita R, è possibile applicare i 5 passi che implementano il filtro di Kalman: 18/09/2018
Calcolo Angoli Utilizzo della funzione atan2 (arcotangente a 4 quadranti) che restituisce l’angolo a partire dal suo seno e coseno. 18/09/2018
Controllo del robot Connessione LAN Server: computer collegato allo scorbot. Client: computer collegato alla struttura stereoscopica. Connessione di tipo TCP/IP: ad ogni iterazione il client invia al server i quattro angoli di giunto calcolati dalle posizioni dei led nello spazio. 18/09/2018
Controllo del robot Posizionamento dei giunti Per posizionare lo scorbot con gli angoli di giunto ricevuti è necessario trasformare ogni angolo nella rispettiva misura in passi encoder rispetto alla posizione di Home. L’unità di potenza si occupa poi di posizionare i giunti correttamente utilizzando le posizioni in encoder calcolate a partire dagli angoli di giunto. 18/09/2018
Interfacciamento con Processing Processing Linguaggio basato su Java che consente di sviluppare applicazioni grafiche. Comunica con wmgui in locale attraverso una socket. Riceve ad ogni iterazione gli angoli di giunto e disegna uno scorbot virtuale in 3D. 18/09/2018
Filmato 18/09/2018
Conclusioni E’ stato realizzato un sistema in grado di far replicare ad un manipolatore robotico i movimenti di un braccio umano, utilizzando hardware a basso costo e garantendo buona velocità di risposta. E’ stato necessario: Effettuare la stereocalibrazione del sistema stereoscopico. Mappare i led sui piani immagine dei controller. Triangolare le coordinate dei led in un sistema di riferimento 3D inerziale. Filtrare le coordinate tramite Filtro di Kalman e calcolare gli angoli di giunto. Implementare una connessione Lan per far comunicare il programma di stereovisione (wmgui) sia con il programma di controllo dello scorbot che con il programma in Processing. Trasformare gli angoli di giunto in passi encoder per posizionare lo scorbot in modo corretto. 18/09/2018
GRAZIE PER L'ATTENZIONE 18/09/2018