CAPITOLO 2 – IL SISTEMA DI VISIONE

Il sistema di visione costituisce l’unico sensore eterocettivo montato sul MANUS , cioè l’unico strumento che sia in grado di fornirgli informazioni sull’ambiente circostante, in particolare sulla posizione e l’orientamento degli oggetti da manipolare. Gli altri sensori , come gli encoder montati sui giunti , sono invece sensori propriocettivi , che informano il robot sul proprio stato. In applicazioni di robotica assistiva la presenza di almeno un sensore eterocettivo è necessaria per poter realizzare compiti caratterizzati da spiccata autonomia . In questo capitolo verrà analizzato il sistema di visione per il MANUS a partire dalle componenti che lo implementano : verrà prima presentato l’hardware , costituito dalla telecamera , dal trasmettitore montato su di essa , dal ricevitore che ne ricostruisce il segnale e dalla scheda di acquisizione video che lo trasforma in informazione digitale . Seguiranno poi due possibili approcci per estrarre da questa informazione le posizioni tridimensionali che corrispondono ai punti dell’immagine , in modo da poter realizzare correttamente il grasping dell’oggetto : il primo è costituito da un modello matematico basato sulle leggi della geometria della formazione dell’immagine , il secondo è una ricostruzione per punti del mapping 3D2D realizzato dalla telecamera . Infine si descriverà il programma di elaborazione dell’immagine e di riconoscimento del contorno, che utilizza il pacchetto IMAQ di LABVIEW e alcuni algoritmi in MATLAB precedentemente sviluppati presso il DIIGA [2] .

2.1 La telecamera utilizzata

Gli approcci possibili quando si deve scegliere un sistema di visione per il grasping sono a telecamera fissa , o eye to hand , e a telecamera mobile solidale ad un link del robot , o eye in hand . In questo lavoro si è optato per la soluzione eye in hand , con la telecamera montata sul link 4 del robot , l’unico per il quale non vi fosse rischio di collisione . Nella scelta della telecamera si è pensato a soddisfare i seguenti requisiti :

  • ingombro minimo , in modo da non avere collisioni durante la chiusura del robot nella configurazione di riposo ( fold-in ) . Si vedrà infatti nei capitoli 4 e 5 che l’ingombro dei bracci è progettato in modo tale che , durante il moto , alcuni link si sfiorino senza mai collidere , come ad esempio il link 2 ed il link 4.
  • assenza di cavi , che limitino la mobilità dei giunti durante il moto. Le coppie rotoidali del MANUS hanno un angolo di rotazione illimitato e possono compiere più di un giro perché non hanno fine-corsa : la presenza di cavi di alimentazione o di trasmissione del segnale , in queste condizioni , può portare a situazioni critiche che danneggiano il robot o i cavi stessi.

Figura 2.1 La microcamera wireless ALM-2451G

Per questi motivi la scelta è caduta sulla microcamera wireless ALM 2451G prodotta dalla Aliveal Enterprise , che è concepita per applicazioni di video-sorveglianza a circuito chiuso e presenta quindi anche un costo contenuto : che nel capitolo precedente si è visto che questo è un requisito importante per un sistema robotico assistivo . Le caratteristiche salienti della ALM 2451G sono indicate in tabella 2.1 .

Tabella 2.1 : Le caratteristiche della telecamera dichiarate dal costruttore

Telecamera wireless ALM-2451G e trasmettitore integrato
Caratteristiche generali:
Dimensioni:
Peso:11g
Tensione di alimentazione:4.8-7.2 V con alimentatore dedicato o 9V con batteria
Corrente di alimentazione:140mA
Caratteristiche della telecamera
Caratteristiche del CCD:1/3’’ CMOS a colori
Numero di Pixels:365.000 in modalità PAL e 250.000 in modalità NTSC
Risoluzione orizzontale:380 TV lines
Illuminazione minima:inferiore a 5 LUX
Lunghezza focale nominale:3.6mm
Caratteristiche obiettivo:focale F2.0 e angolo di vista 92° (60°)
Tempo di esposizione:automatico da 1/60 a 1/2000 sec
Caratteristiche del trasmettitore
Range di trasmissione:300m in linea d’aria in assenza di ostacoli
Potenza di uscita RF:10mW
Caratteristiche antenna:omnidirezionale a 360°
Caratteristiche trasmissione:canale singolo a 2.4GHz
Caratteristiche del ricevitore
Dimensioni:
Tensione di Alimentazione:12V
Corrente assorbita:180mA
Frequenza di ricezione:2.4Ghz
Caratteristiche antenna:direzionale a 60° (necessità di orientare il ricevitore)
Segnale di uscita
Caratteristiche opzionali
Microfono integrato

Figura 2.2 : Il ricevitore della microcamera ALM-2451G

Come spesso accade in ambito ingegneristico , per soddisfare le esigenze descritte ad inizio paragrafo si è dovuto raggiungere un compromesso con altre caratteristiche sfavorevoli che hanno complicato la realizzazione del sistema . Una di queste è la necessità di ricorrere ad una scheda di acquisizione – framegrabber per la trasformazione del segnale video analogico proveniente dalla telecamera in immagini digitali . Si è utilizzata la scheda National Instruments IMAQ 1408 , perché disponibile in laboratorio . Le caratteristiche di questo hardware , che saranno descritte nel prossimo paragrafo , hanno però determinato i seguenti svantaggi:

  • elaborazione di immagini a livelli di grigio , perché si tratta di una scheda monocromatica [16] . La potenza delle elaborazioni successive ne risulta drasticamente ridimensionata , soprattutto per quanto riguarda il calcolo delle corrispondenze di una eventuale visione stereo : questo è uno dei motivi per cui non si sono potuti utilizzare gli algoritmi descritti in [3] ;
  • perdita della corrispondenza 1:1 fra elementi fotosensibili del CCD e pixel dell’immagine : si vedrà più avanti che questo costituisce un notevole ostacolo ad una corretta stima del modello Pin-Hole per la telecamera con gli algoritmi disponibili in letteratura [14,15] ;
  • utilizzo obbligato del linguaggio di programmazione grafica LABVIEW , prodotto dalla casa costruttrice della scheda di acquisizione : si dovranno quindi predisporre le interfacce di comunicazione fra i tre linguaggi di programmazione . La comunicazione fra LABVIEW e MATLAB risulta svantaggiosa per i tempi di calcolo , perché poggia sulla tecnologia Active-X dei sistemi operativi Windows , che si è osservato dare luogo a notevoli ritardi nell’esecuzione.

2.2 La scheda di acquisizione video IMAQ 1408

A differenza dei lavori [2] e [3] , che adottano una webcam con uscita USB , perciò direttamente in formato digitale , la telecamera ALM-2451G invia al proprio ricevitore un segnale video-composito in formato PAL dotato di 380 TV-Lines . Il compito di digitalizzare nuovamente il segnale e di estrarre i frame dal video è affidato alla scheda di acquisizione National Instruments IMAQ PCI-1408 . Si tratta di una scheda con 4 canali di ingresso monocromatici , che ha imposto di riadattare gli algoritmi descritti in [2] per lavorare con immagini a livelli di grigio. In figura 2.14 sono riportati i parametri di settaggio della scheda che permettono la corretta acquisizione dell’immagine , di fondamentale importanza perché le proporzioni siano rispettate e la ricostruzione dei pixel a partire dal segnale analogico non dia luogo a distorsioni . La dimensione della finestra di acquisizione è stata trovata per tentativi , riducendola di un pixel alla volta a partire dal bordo laterale sinistro e da quello superiore finché le bande nere aggiunte dal frame-grabber non sono del tutto scomparse . Si può notare che il numero di Pixel dell’immagine così ottenuta è di  , il cui rapporto è 0.75 e assicura il mantenimento delle proporzioni . Questa condizione non è sufficiente a garantire il buon esito della calibrazione Pin-Hole : gli algoritmi proposti in [14,15] chiedono infatti la conoscenza delle dimensioni del CCD e del numero di elementi che lo compongono . Questi valori raramente sono indicati dai costruttori e vanno aggiustati per tentativi a partire dalle dimensioni standard di alcuni CCD ( ½’’ , 1/3’’ , ¼’’ , .. ) : il segnale video composito non divide ciascun fotogramma in pixel , ma in linee , perciò questa informazione va cercata per tentativi e aggiunge un ulteriore elemento di incertezza nel procedimento di stima .

Figura 2.3 : I parametri per il settaggio della scheda di acquisizione

2.3 Il modello prospettico o Pin-Hole


Per risalire alle coordinate dei punti di grasping dell’oggetto da manipolare bisogna conoscere in che modo i punti dello spazio tridimensionale si mappino sul piano della telecamera in cui si forma l’immagine , detto piano retinale . Uno strumento che permette di descrivere compiutamente questo mapping  è il modello prospettico o pin-hole , letteralmente traducibile come modello a punta di spillo , perché ipotizza che:

  • i raggi luminosi percorrano traiettorie rettilinee , si tratta cioè di un modello appartenente all’ottica geometrica ;
  • ogni punto dello spazio venga proiettato sul piano retinale passando per un solo punto C , detto centro ottico , coincidente col centro di curvatura del sistema di lenti della camera ; questa ipotesi non è sempre rispettata dalle telecamere low-cost come la ALM-2451G .

Figura 2.4 : Il modello pin-hole della telecamera

L’obiettivo del modello è descrivere una trasformazione di coordinate , quindi il primo passo consiste nella definizione dei sistemi di riferimento in cui queste saranno espresse ; con riferimento alla figura 2.4 nel prosieguo della tesi si indicheranno:

  1. con  le coordinate di un punto dello spazio rispetto al sistema di riferimento fisso  , che verrà fatto coincidere con il sistema solidale alla base del robot , indicato con l’apice 0 nel capitolo 1 ;
  2. con  le coordinate rispetto al sistema di riferimento della camera  , la cui origine coincide con il centro ottico (  ) e il cui asse  coincide con l’asse ottico , cioè l’asse ortogonale al piano retina passante per il centro ottico ;
  3. con  le coordinate rispetto al sistema di riferimento del piano immagine  ; il piano immagine è una schematizzazione che permette di considerare immagini non ribaltate , come sono quelle che si formano sul piano retina : viene definito come un piano fittizio , posto fra il punto oggetto e il centro ottico , alla stessa distanza che divide il piano retinale da C . Tale distanza viene detta distanza focale ed è indicata con f .

Un punto dell’immagine è quindi caratterizzato dalle coordinate metriche  e si indica con  . Il modello pin-hole descrive in che modo un punto di coordinate  si mappa in  , perciò se si conosce la matrice di trasformazione omogenea fra sistema fisso e sistema standard della telecamera

 ,

la trasformazione complessiva si ottiene in due passi :

  1. trasformazione di coordinate dal sistema di riferimento fisso al sistema di riferimento standard della camera ; in coordinate omogenee si ha :

 (2.1) ;

  1. trasformazione prospettica da  a  secondo il modello pin-hole . Le equazioni della trasformazione si ricavano da considerazioni di similitudine fra triangoli ; facendo riferimento alla figura 2.3 deve aversi:

 (2.2) ;

da cui  ed  . Quindi il punto del piano immagine in cui si mappa  è  .

Figura 2.5 : I triangoli simili alla base della trasformazione pin-hole

In realtà i punti del piano immagine non vengono mai espressi in coordinate metriche, ma nelle unità elementari costituenti l’immagine , detti pixel ( PICture ELement ) . Supponendo che ciascun pixel corrisponda secondo un rapporto 1:1 ad un elemento fotosensibile della matrice del CCD , si ha una quantizzazione delle coordinate x , y secondo intervalli spaziali di dimensioni  e  , che corrispondono all’altezza e alla base di ciascun elemento sensibile e danno luogo alle costanti di quantizzazione spaziale  e  . Nemmeno questa ipotesi è sempre verificata dalle telecamere a basso costo .

Figura 2.6 : Le coordinate in pixel sul piano immagine

Come mostrato in figura 2.6 le coordinate  di un punto espresse in pixel si riferiscono ad un’origine che , secondo la convenzione adottata in computer vision , si trova nel vertice in alto a sinistra dell’immagine . L’origine del sistema di assi  è indicato con la notazione  e viene detto punto principale dell’immagine . La relazione che lega il punto  in coordinate metriche al suo corrispondente in pixel è quindi :

 (2.3) .

Componendo le equazioni 2.3 della quantizzazione con le equazioni 2.1 e 2.2 delle trasformazioni precedenti , si ha la relazione completa fra le coordinate  di un punto nel sistema fisso e il pixel dell’immagine in cui esso viene mappato :

 (2.4) .

I parametri  dipendono solo dalla telecamera utilizzata e vengono detti parametri intrinseci o interni , mentre gli elementi di  dipendono dalla posizione relativa fra telecamera e sistema di riferimento fisso , quindi vengono detti parametri estrinseci o esterni.

  1. Il modello pin-hole in coordinate omogenee

Se anche le coordinate in pixel vengono espresse in forma omogenea, ricorrendo ad un parametro S tale che  e  , allora  viene espresso mediante il vettore a tre componenti  . In termini di questo vettore le equazioni 2.3 assumono la forma:

 (2.5) ,

che definendo la matrice prospettica  diventano:

 ( 2.6 ) .

La matrice prospettica riassume quindi tanto i parametri intrinseci , attraverso la matrice  , che i parametri estrinseci , attraverso la matrice  e descrive completamente la trasformazione  operata dal modello prospettico.

2.4 Il metodo tabellare

l modello Pin-Hole consente di descrivere , con un numero di parametri piuttosto limitato , una teoria della formazione dell’immagine che ha validità generale e che non dipende dalla posizione e dall’orientamento relativo fra la telecamera e gli oggetti . Queste quantità vengono anzi calcolate proprio a partire dai parametri estrinseci stimati per il modello. Contestualmente aumentano però le ipotesi che la telecamera deve soddisfare e le difficoltà nella stima del modello : il sistema di lenti deve essere confocale , devono conoscersi alcune informazioni a priori sul CCD e deve essere possibile effettuare la calibrazione su una porzione sufficientemente ampia dell’immagine . Quando si controlla un manipolatore mobile i vantaggi di un modello che non dipende dalla configurazione di acquisizione sono importanti , quindi si è cercato di descrivere la telecamera con le leggi prospettiche anche se nessuna delle tre ipotesi precedenti è soddisfatta dall’hardware utilizzato . I parametri stimati in questo modo hanno permesso di calcolare la posizione relativa fra la telecamera e il link sulla quale è fissata , come descritto nel paragrafo 2.5 , ma le posizioni dei punti di grasp così ricavate non sono risultate attendibili . Pertanto le posizioni dei punti di grasp sono state calcolate con un metodo meno potente , ma che non richiede informazioni a priori sulla telecamera e condizioni particolarmente stringenti in fase di calibrazione .

Figura 2.7 : Il setup di calibrazione per il metodo tabellare

Si tratta del metodo tabellare 2D proposto in [2] , la cui idea è mostrata in figura 2.7 : si riprende un pattern di punti noti giacenti su un piano a distanza  dalla telecamera , con l’asse ottico ortogonale al piano stesso , e si memorizzano due matrici Planx e Plany che descrivono il mapping 3D2D in queste particolari condizioni . Per risalire alle coordinate  di un pixel  è sufficiente così richiamare i valori memorizzati :

 ,  ,  .

La semplicità del metodo e la possibilità di implementarlo in condizioni più generali si pagano in termini di prestazioni ; il metodo tabellare ha infatti i seguenti svantaggi :

  • è un modello 2D : le posizioni restituite sono valide solo se i punti risiedono su un piano ortogonale all’asse ottico della telecamera , a distanza pari a quella fissata in fase di calibrazione . Questa condizione restringe sensibilmente le classi di oggetti che si possono manipolare , inducendo a considerare il problema del grasping 2D ;
  • ha validità locale : il mapping descritto è valido solo se la telecamera riprende la scena dallo stesso punto in cui è stata calibrata , quindi per poter manipolare oggetti posti in regioni diverse è necessario effettuare più calibrazioni . Nel capitolo 6 saranno discussi gli effetti dell’errore di posizionamento della telecamera sulle coordinate di Planx e Plany ;
  • è una calibrazione parziale : il mapping 3D2D non viene ricostruito per tutti i punti dell’immagine , ma solo per quelli occupati dal pattern di calibrazione . Fra l’altro l’oggetto di calibrazione non può nemmeno essere troppo esteso , perché questo richiederebbe un allontanamento della telecamera dalla scena , con il rischio di non riconoscere tutti i dots di calibrazione ;
  • occupa molta memoria , perché per ogni calibrazione vanno memorizzate due matrici con lo stesso numero di elementi dell’immagine . Nel caso in esame le matrici sono di 576 righe e 678 colonne
  1. La calibrazione

La calibrazione è quel processo che permette di determinare i parametri delle funzioni di trasformazione dallo spazio 3D al piano immagine della telecamera : i parametri intrinseci ed estrinseci nel modello Pin-Hole e le matrici Planx e Plany per il metodo tabellare . Per poter disporre di posizioni note , entrambi i metodi utilizzano un oggetto di calibrazione di dimensioni standard e definiscono su di esso un sistema di riferimento : i punti campione sono i centri di una matrice di dots bianchi su sfondo nero , che vengono estratti con tecniche di Image Processing , implementate dall’apposito toolbox di MATLAB .

2.5.1 La calibrazione Pin-Hole

Per la calibrazione Pin-Hole si è scelto di adottare la procedura di Heikkila e Silven [14,15] , perché è disponibile in laboratorio l’oggetto di calibrazione proposto da questi autori , utilizzato anche in [1,2,3] . Rispetto a questi lavori si sono però apportate alcune modifiche per adattare gli algoritmi di estrazione dei centri alle nuove esigenze operative , che saranno descritte nel paragrafo 2.5.3 .

Figura 2.8 : L’oggetto di calibrazione suggerito da Heikkila e Silven

Il metodo di Heikkila e Silven stima i parametri del modello che minimizzano lo scostamento fra le posizioni note di un certo numero di punti dello spazio e le posizioni che si otterrebbero col modello stesso. L’oggetto di calibrazione suggerito è un cubo di 270mm di lato con due facce ricoperte da 256 cerchi bianchi su sfondo nero , di 5mm di raggio e distanti fra loro 15mm (da centro a centro ).

Il tutto deve essere realizzato con tolleranze inferiori ai  e su carta fotografica opaca per ridurre gli effetti di riflessione della luce nell’immagine di calibrazione . Il sistema di riferimento inerziale viene preso con l’origine sullo spigolo in alto della porzione di cubo inquadrata dall’immagine e con gli assi orientati come in figura 2.9 . Sapendo che la distanza del centro del primo cerchio dallo spigolo è di 22.5mm , sia in orizzontale che in verticale , le posizioni dei punti di calibrazione rispetto al sistema inerziale risultano univocamente determinate .

Figura 2.9 : La scelta del sistema di riferimento inerziale per la calibrazione

L’algoritmo riceve in ingresso le coordinate dei centri dei dot e necessita della conoscenza di alcuni parametri non stimabili , come la dimensione ed il numero di righe e colonne della matrice di elementi sensibili del CCD ; restituisce , oltre ai parametri intrinseci ed estrinseci , anche dei coefficienti che valutano la distorsione radiale e tangenziale dell’immagine e permettono quindi una correzione delle non-linearità. L’orientamento restituito per il sistema standard rispetto al sistema di riferimento inerziale è espresso mediante gli angoli di Eulero X-Y-Z : si tratta dello stesso genere di rappresentazione minima che da luogo alla (1.15) , ma cambiano gli assi correnti rispetto ai quali vengono effettuate le rotazioni . Per sovrapporre le due terne bisogna eseguire una rotazione di un angolo  attorno all’asse x , di un angolo  attorno all’asse y’ e di un angolo  attorno all’asse z’’ , ottenendo la seguente matrice di rotazione complessiva (2.7) :

Non si scenderà nei dettagli dell’algoritmo di Heikkila e Silven , perché per portare a termine la calibrazione non è stato necessario approfondirne i dettagli implementativi : ci si concentrerà piuttosto sulla procedura di estrazione dei centri dei cerchi , per descrivere le modifiche apportate all’algoritmo proposto in [1] .

2.5.2 La calibrazione tabellare

L’oggetto di calibrazione adottato per la calibrazione tabellare è mostrato in figura 2.10 così come appare al sistema di visione e si può notare che riprende alcune caratteristiche del pattern già adottato nella calibrazione Pin-Hole : i cerchi bianchi su sfondo nero hanno un raggio di 5mm e le distanze fra i centri sono di 15mm . La distanza del primo centro dal vertice in basso a sinistra , assunto come origine del sistema di riferimento , è di 17.5mm e la matrice è costituita da 32 righe e 32 colonne : complessivamente il lato della regione calibrata ha quindi un’estensione di 49.75cm .

Figura 2.10 : Il pattern di calibrazione per il metodo tabellare

A partire dalle posizioni dei centri estratti , che sono note per come è definito il pattern , si ricavano le coordinate corrispondenti a ciascun pixel dell’immagine mediante interpolazione lineare : si raggruppano i dots a gruppi di 3 come in figura 2.10 . I vertici triangoli così formati possono avere coordinate  reali , mentre per i punti dell’immagine le grandezze u e v sono intere : per ciascuna coppia di indici interi  che cade nell’area del triangolo si procede quindi all’interpolazione come descritto in [2] .

Figura 2.11 : i triangoli entro i quali si effettua l’interpolazione locale

L’andamento di Planx e Plany con u e v è mostrato in figura 2.12 e si può notare come solo una porzione dell’immagine risulti calibrata , mentre per tutti gli altri pixel si ha  e  . Di questo fatto si è comunque tenuto conto nell’algoritmo di grasping , che avvisa l’utente se il punto di presa dell’oggetto cade al di fuori della regione .

Figura 2. 12 : Le coordinate x ed y restituite da Planx e Plany

Per avere tutta l’informazione necessaria a ricostruire correttamente la trasformazione dal piano immagine alla terna base del robot , mancano la posizione della telecamera e quella dell’origine del s.d.r. solidale al pattern di calibrazione . Il metodo più breve per ottenere questa seconda informazione consiste nel portarvi la punta della pinza e nel leggere le variabili di giunto corrispondenti . In tabella 2.2 sono riportate le  in queste due configurazioni , dalle quali si ricavano le posizioni cartesiane calcolando la cinematica diretta .

Tabella 2.2 : le variabili di giunto che permetto di passare da Planx , Plany alla terna base del robot

Acquisizione dell’immagine
-178.5°130.9°-221.6°-92.8°0.2°94.3°
Posizionamento sul vertice in basso a sinistra del pattern
-124.8°-147°52.4°-94°149.2°

2.5.3 La procedura di estrazione dei centroidi

L’algoritmo per l’estrazione dei centri dei cerchi funziona correttamente se il cubo della calibrazione Pin-Hole e il quadrato della calibrazione 2D sono ripresi centralmente nella scena , con illuminazione uniforme e se vengono eseguite alcune operazioni preliminari : la conversione in formato Bitmap a 256 livelli di grigio e l’annerimento delle porzioni di immagine che possono disturbare il riconoscimento dei dots . Di seguito si esporranno le cause che , nelle condizioni operative in cui ci si è trovati , hanno impedito di riconoscere correttamente i centri . Saranno poi proposte le soluzioni a questo problema , concentrando l’attenzione più sul riconoscimento dei centri nel cubo piuttosto che nel quadrato , perché la distorsione prospettica trasforma i cerchi in ellissi e il riconoscimento risulta ancora più difficile . Per lo stesso motivo è più corretto parlare di centroidi che non di centri .

Figura 2.13 : l’immagine del cubo in scale di grigio privata dello sfondo

L’algoritmo effettua una prima grossolana ricerca dei dots nell’immagine mediante l’applicazione di una soglia seguita da una operazione di shrink , che consiste nella riduzione delle regioni connesse a un punto mediante erosioni successive : se i centri vengono ridotti a un pixel binario , il numero di cerchi si può ottenere come somma dei pixel non nulli nell’immagine . Si può quindi contare il numero di dots riconosciuti e se sono 512 per il cubo e 1024 per il quadrato si procede alla seconda fase , altrimenti l’algoritmo restituisce un messaggio di errore e va riutilizzato scegliendo un nuovo valore per la soglia . Una prima causa del mancato riconoscimento dei centroidi è costituita dall’illuminazione : se la cattura dell’immagine non avviene in un ambiente con luce diffusa , ma in un interno con luci artificiali , è difficile ottenere un’illuminazione uniforme su due facce ortogonali del cubo . In queste condizioni si osserva che una stessa soglia risulta troppo alta per una porzione dell’immagine e troppo bassa per l’altra . La prima modifica ha riguardato quindi la possibilità di distinguere fra una soglia per la faccia destra ed una soglia per quella sinistra da scegliere in base all’illuminazione dei due lati , con la possibilità di aggiustare iterativamente i valori fino a trovare le soglie ottime per il riconoscimento dei 256 dots desiderati.

Figura 2.14 : Il cubo di calibrazione con parte dell’immagine ostruita dal manipolatore

L’altra causa del mancato riconoscimento dei centroidi è l’impossibilità di inquadrare il cubo centralmente nella scena , per l’ostruzione della parte bassa dell’immagine operata dal link 4 , come mostrato in figura 2.14 . Si tratta di una limitazione critica , perché coinvolge la stima dei parametri estrinseci : se per ottenere i parametri interni è comunque possibile effettuare l’esperimento all’esterno o in un ambiente appositamente illuminato , la stima dei parametri esterni deve necessariamente avvenire con la telecamera montata sul robot . Questo set di parametri permette infatti di ricavare la posizione relativa fra la telecamera e il robot , determinando la forma assunta dalla matrice  del modello Pin-Hole .

Con la diminuzione dell’area occupata dal cubo diminuisce contestualmente l’area dei singoli dots e questo pregiudica , nell’algoritmo originario , la seconda fase dell’estrazione dei centroidi . Questa consiste nell’isolare i dots individuati con la funzione shrink e nell’applicare un operatore di dilatazione che faccia assumere loro una forma più vicina ad un cerchio , l’aspetto originario , che ad un ellisse , la forma assunta a causa della proiezione prospettica . Si è infatti osservato che i centroidi ottenuti dopo questa ulteriore elaborazione hanno una dispersione rispetto a quelli ottenuti con la sola operazione di shrink . A questo punto si calcola il centro di massa del dot espanso mediante le somme pesate dei singoli pixels :

dove con  si è indicato il livello di grigio del pixel considerato .

Proprio all’elevata dispersione è dovuto il mancato riconoscimento dei centroidi ; l’isolamento del dot che precede la dilatazione è ottenuto mediante le seguenti operazioni logiche:

  1. separazione e sogliatura della porzione dell’immagine originale contenente il dot : è la porzione contenuta fra i 4 dots adiacenti a quello considerato come mostrato in figura 2.15 a ;
  2. annerimento del dot considerato mediante la funzione di riempimento bwfill dell’Image Processing Toolbox di MATLAB . In figura 2.15b è rappresentato il risultato corretto, che si ottiene quando il dot occupa un numero di pixel significativo ;
  3. operazione di OR esclusivo fra le finestre precedenti per ottenere il dot isolato , come mostrato in figura 2.15c .
Figura 2.15 a,b,c: le operazioni logiche per isolare il dot

La funzione bwfill questo aggrega i pixel adiacenti ad un punto iniziale che hanno lo stesso colore : l’algoritmo proposto in [1] inizia il riempimento a partire dal centroide ricavato con l’operazione preliminare di shrink . Nel caso di dot costituito da un numero di pixel significativo il punto iniziale cade certamente all’interno dell’area da riempire , mentre quando il numero di pixel diminuisce questa condizione non è necessariamente vera . Questa situazione è mostrata in figura 2.16 dove con la freccia rossa è indicato il punto da cui parte il riempimento : immagine originale e immagine elaborata da bwfill risultano identiche , quindi l’OR esclusivo restituisce una finestra completamente nera e l’isolamento del dot fallisce .

Figura 2.16: Un esempio di isolamento fallito del dot

La soluzione proposta consiste nel gestire queste eccezioni permettendo all’utente di selezionare il pixel dal quale inizia il riempimento : il risultato ottenuto è infatti lo stesso per ciascun pixel appartenente al dot stesso , purché interno .

2.5.4 L’esito della calibrazione Pin Hole

Con il metodo descritto si è riusciti ad estrarre il numero esatto di centroidi da tre immagini riprese da altrettante angolature differenti, permettendo di fornire all’algoritmo di Heikkila e Silven più matrici di centroidi e ricavare quindi più set di parametri estrinseci , che sono stati utilizzati per ricavare la posizione relativa fra link 4 e telecamera . In tabella 2.3 sono riportati anche i parametri intrinseci , che non sono però in grado di ricostruire correttamente la trasformazione dallo spazio al piano immagine e hanno quindi imposto il passaggio al metodo di calibrazione tabellare .

Tabella 2.3 L’esito della calibrazione ottenuto a partire da tre immagini

Parametri IntrinseciValoreDeviazione standard
Fattore di scala0.98697.45e-004
Lunghezza focale [mm]3.40504.03e-003
Ascissa punto principale [pixel]417.41097.79e-001
Ordinata punto principale [pixel]226.83681.13e+000
1° coefficiente di distorsione radiale [mm-2]1.4808e-0021.25e-003
2° coefficiente di distorsione radiale [mm-4]1.4245e-0024.29e-004
1° coeff. di distorsione tangenziale [mm-1]-5.3424e-0035.45e-004
2° coeff. di distorsione tangenziale [mm-1]-5.8171e-0051.18e-004
Parametri estrinseciValorePosizione dei giunti (gradi)
Immagine 1
Coordinata x origine [mm]-16.3811
Coordinata y origine [mm]-130.7553
Coordinata z origine [mm]416.2408
Rotazione asse x [ ° ]49.5701
Rotazione asse y [ ° ]-31.7527
Rotazione asse z [ ° ]-28.9928
Immagine 2
Coordinata x origine [mm]15.4726
Coordinata y origine [mm]-143.6673
Coordinata z origine [mm]405.5731
Rotazione asse x [ ° ]48.0046
Rotazione asse y [ ° ]-25.6938
Rotazione asse z [ ° ]-30.0290
Immagine 3
Coordinata x origine [mm]15.3134
Coordinata y origine [mm]-141.7323
Coordinata z origine [mm]412.9849
Rotazione asse x [ ° ]47.6933
Rotazione asse y [ ° ]-25.7928
Rotazione asse z [ ° ]-30.1480

2.6 La cinematica diretta della telecamera

I parametri estrinseci restituiti dall’algoritmo di Heikkila e Silven descrivono la posizione e l’orientamento della telecamera nella configurazione assunta dal robot al momento della cattura dell’immagine , quando  . Indicando con  il sistema di riferimento definito da Heikkila e Silven , le  ricavabili dalla tabella precedente sono valide solo nelle posizioni considerate , mentre perché il sistema di visione sia operativo è necessaria una espressione di validità generale . Per avere questa informazione bisogna calcolare a partire dai parametri estrinseci la  che descrive la posizione relativa fra telecamera e terna base del robot.

Figura 2.17 : la posizione della telecamera rispetto al link

Supponendo che l’asse ottico sia parallelo all’asse del link 4 , si tratta di conoscere la posizione relativa fra questo braccio e l’origine del sistema di riferimento standard della telecamera . Data la simmetria del problema è conveniente esprimere questa posizione in coordinate cilindriche riconducendosi al calcolo di tre parametri : la distanza  dal giunto 4 , la distanza  dall’asse del link e l’angolo  che rappresenta la rotazione attorno all’asse stesso . Il significato geometrico di  ,  ,  è indicato in figura 2.17 .

d

r

φ

Figura 2.18 : La posizione relativa della telecamera rispetto al link 4

L’origine del sistema di coordinate cilindriche è l’origine della terna 4 di Denavit Hartenberg e le trasformazioni elementari che pertano  su  sono :

  1. traslazione di una quantità  lungo l’asse  , descritta dalla matrice :

 ;

  1. rotazione di un angolo  attorno all’asse  , descritta dalla matrice :

 ;

  1. traslazione di una quantità  lungo l’asse  , descritta dalla matrice :

 ;

Complessivamente la matrice  che descrive la posizione relativa della telecamera rispetto alla terna 4 è :

 .

Moltiplicando la  per la  si ottiene la matrice  che descrive la posizione e l’orientamento della telecamera rispetto alla terna base del robot . Per ricavare i valori di  bisogna risolvere un sistema di equazioni trigonometriche nella forma :

in cui le  ,  ,  sono i parametri estrinseci dell’algoritmo di calibrazione . La matrice  esprime la trasformazione fra il sistema di riferimento di Heikkila e Silven e la terna base del robot : il metodo più veloce per ottenere i termini  ,  e  consiste nel portare la punta della pinza a toccare con il vertice desiderato e calcolare la cinematica diretta , come mostrato in figura 2.19 .

Figura 2.19 Allineamento fra vertice del cubo e punta della pinza

Una volta ottenute le grandezze  ,  ,  le si sottraggono ai termini costanti delle equazioni , ottenendo  ,  ,  e il sistema da risolvere per trovare  diventa:

La funzione che esegue automaticamente questa procedura è camera_rispetto_link.m : provvede anche a caricare i valori di  in un database riutilizzato dalla funzione cinematica_diretta_telecamera.m per il calcolo della matrice  . Entrambe le funzioni sono riportate nell’appendice B . Il valore di  calcolato è trascurabile , pertanto si può affermare che il sistema di riferimento della telecamera differisce da quello del link 4 solo per due traslazioni di ampiezza  ed  : questo risultato è molto importante per esprimere l’orientamento nell’algoritmo di grasping che verrà presentato nel prossimo capitolo.

2.7 L’algoritmo di visione

Il software per l’acquisizione è realizzato in LABVIEW e le funzioni per il grasping e il calcolo delle coordinate vengono richiamate con il MATLAB script node . Il pannello di controllo dello Strumento virtuale (così si chiamano i programmi realizzati in LABVIEW ) si presenta come in figura 2.20 : si possono distinguere il box di immissione delle variabili di giunto del robot , per il calcolo della posizione della telecamera secondo le equazioni del paragrafo 2.4 , e l’indicatore del punto di grasp e dell’angolo di presa , che costituiscono l’uscita del programma . E’ inoltre presente un indicatore dello stato del MATLAB script node che serve a comunicare eventuali messaggi di errore dal prompt dei comandi di MATLAB.

Figura 2.20 : Il pannello di controllo del VI di visione

Al lancio del programma viene acquisita l’immagine e mostrata all’utente per la selezione dell’oggetto da manipolare , come mostrato in figura 2.21a . L’area non appartenente alla selezione viene eliminata , per evitare di riconoscere oggetti indesiderati , e l’intera immagine viene ridotta in forma binaria mediante un valore di soglia iniziale . L’esito dell’elaborazione viene mostrato all’utente , che può scegliere iterativamente un nuovo valore della soglia finché non ritiene la binarizzazione soddisfacente . Una volta riconosciuto correttamente l’oggetto , l’immagine viene mandata all’algoritmo di grasping che sarà descritto nel prossimo capitolo 3 ; questo restituisce un punto nelle coordinate immagine , che la funzione punto_di_grasp2.m riporta in coordinate tridimensionali secondo la tecnica del paragrafo 2.4 . Allo stesso modo , noto l’orientamento relativo fra la telecamera e la terna base del robot , viene calcolato l’orientamento della pinza.a partire dall’angolo di grasp.

Figure 2.21 a,b : la finestra per la selezione dell’oggetto e l’oggetto privato dello sfondo e binarizzato

58

Torna al sommario