Capitolo 2 Il sistema di visione


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 3D2D 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 :


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:


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:

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 3D2D 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 :



    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 Intrinseci

Valore

Deviazione standard

Fattore di scala

0.9869

7.45e-004

Lunghezza focale [mm]

3.4050

4.03e-003

Ascissa punto principale [pixel]

417.4109

7.79e-001

Ordinata punto principale [pixel]

226.8368

1.13e+000

1° coefficiente di distorsione radiale [mm-2]

1.4808e-002

1.25e-003

2° coefficiente di distorsione radiale [mm-4]

1.4245e-002

4.29e-004

1° coeff. di distorsione tangenziale [mm-1]

-5.3424e-003

5.45e-004

2° coeff. di distorsione tangenziale [mm-1]

-5.8171e-005

1.18e-004

Parametri estrinseci

Valore

Posizione 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


Torna alla home page di Ingegneria-elettronica.com