Atti del V Congresso Metrologia & Qualità (Marzo 2007) MMSC3 Sistema di calibrazione per guida robot bidimensionale e tridimensionale basato su visione artificiale M. GALIMBERTI (1), R.SALA (2), N.CAPELLI (3), G.FERRARIO (3) (1) ITIA-CNR E-MAIL: MARIO.GALIMBERTI@ITIA.CNR.IT (2) SEZIONE DI MISURE E TECNICHE SPERIMENTALI, DIPARTIMENTO DI MECCANICA, POLITECNICO DI MILANO E-MAIL: REMO.SALA@POLIMI.IT (3) CAPMAC SRL E-MAIL: CAPMAC@CAPMAC.IT Introduzione Negli ultimi anni l'adozione di sistemi di visione bidimensionali e tridimensionali ha accelerato la diffusione della robotica in settori produttivi nei quali era impensabile un suo impiego a causa della scarsa flessibilità di una stazione di presa e di deposito fissi. L integrazione tra la visione artificiale e la robotica riveste quindi un ruolo sempre più importante, al punto che si è coniato un termine specifico per indicarla: guida robot. Nella accezione industriale il termine di guida robot indica un sistema di visione in grado di individuare la posizione e l orientazione di un oggetto su un piano (solitamente un nastro trasportatore) e di passare queste informazioni in modo appropriato al robot. Tale soluzione permette di aumentare significativamente la flessibilità di un impianto di produzione in quanto risulta sufficiente singolarizzare le parti senza la necessità di fare assumere loro una posizione ed una orientazione ben precisa. Il lavoro affronta in modo innovativo ed efficace il problema della calibrazione, cioè di come trasformare la posizione e l orientazione delle parti espresse in coordinate pixel nel sistema di riferimento telecamera in coordinate espresse nel sistema di riferimento robot. In particolare verrà mostrata l efficacia della procedura sia nella calibrazione dei classici guida robot industriali che nella calibrazione dei sistemi di guida stereoscopici. La calibrazione La calibrazione tra la telecamera ed il robot comporta la definizione di una trasformazione matematica in grado di trasformare la posizione dell oggetto individuato dalla telecamera in coordinate pixel in coordinate mondo nel sistema di riferimento del robot. Nei guida robot di comune impiego industriale è praticamente sempre sufficiente trasformare le coordinate le sole coordinate X ed Y dell oggetto in quanto si immagina che lo stesso giacca su un piano parallelo al piano XY del sistema di riferimento robot e quindi la coordinata di presa Z può essere assunta come costante. Tale parallelismo viene di solito garantito posizionando il robot in bolla e dotando il piano di presa di opportune regolazioni in modo da poterlo regolare in modo da raggiungere il grado di parallelismo desiderato. Formalizziamo ora il problema limitandoci all ipotesi di lavorare nel piano sopra accennata:
Sistema di calibrazione per guida robot bidimensionale e tridimensionale basato su visione artificiale a) l oggetto è visto dalla telecamera che, con opportuni algoritmi, ne determina la posizione in coordinate pixel e l orientazione tramite un angolo che esprime la rotazione del modello a partire da una configurazione base relativamente all asse orizzontale; b) il sistema di riferimento telecamera (O T_ X T Y T ) può essere disegnato sul piano di visione (in pratica il piano sul quale avviene la presa) ad esempio partendo dal pixel di coordinate (0,0), cioè quello in alto a sinistra dell immagine orientando l asse X T ed Y T nella direzione dei pixel crescenti; si realizza in questa ipotesi una terna sinistra, ma la utilizziamo perché in questo modo i due assi sono diretti nello stesso verso di quelli della telecamera; c) introduciamo un sistema di riferimento telecamera corretto (O TC_ X TC Y TC ) dove l origine la spostiamo nel pixel di coordinate (0, max valore in verticale); ad esempio utilizzando una classica telecamera con risoluzione di 640 x 480 pixel questo significa che l origine del nuovo sistema di riferimento avrà coordinate (0,640); contemporaneamente trasformiamo la terna in una terna destra capovolgendo il verso dell asse Y TC. d) sistema di riferimento robot (O R_ X R Y R ) opportunamente definito dal programmatore, solitamente coincidente con il sistema di riferimento telecamera corretto. La procedura attuale La procedura attuale prevede che la calibrazione avvenga tramite il robot; in pratica si prendono tre punti ben visibili dalla telecamera e si porta il robot, solitamente dotato di un utensile di lunghezza nota, in corrispondenza degli stessi. Concettualmente si può pensare che un punto rappresenti l origine del sistema di riferimento e gli altri due servano per stabilire il verso dei suoi assi. Misurando le coordinate dei tre punti nel sistema di riferimento robot e nel sistema di riferimento telecamera è possibile ricavare tutte le informazioni necessarie per effettuale la calibrazione del sistema. Tali informazioni sono: - coefficiente di conversione pixel/millimetri (eventualmente distinto in orizzontale e verticale, serve a rendere omogenee le unità di misura impiegate nei due sistemi di riferimento); - traslazione tra le origini delle due terne; - rotazione relativa tra le due terne. Una delle modalità più diffuse per la determinazione dei parametri sopra riportata prevede che si ricavi il coefficiente di calibrazione pixel/millimetri per rendere omogenee le due unità di misura la distanza cartesiana tra i diversi punti; normalmente si tratterà di un unico coefficiente in quanto tutte le telecamere moderne utilizzano dei sensori con pixel quadrati ma comunque viene sempre verificato che il coefficiente per i pixel verticali e quelli orizzontali sia unitario. La traslazione e la rotazione non vengono invece calcolate in quanto sono da considerarsi nulle, se non per le inevitabile imprecisioni insite nel metodo manuale di apprendimento dei punti, e quindi di identificazione del sistema di riferimento O R_ X R Y R con il robot.
MMSC3 La procedura attuale applicata La procedura attuale applicata trova il suo vantaggio principale nella semplicità di applicazione in quanto non richiede l implementazione di alcun software specifico sul robot e quindi è applicabile indifferentemente a qualsiasi manipolatore. I suoi punti deboli sono invece nascosti nella qualità del risultato, fortemente dipendente dalle condizioni in cui vengono appresi i punti e dalla specifica abilità dell operatore. Elenchiamo ora le non idealità del sistema che possono nella pratica introdurre fastidiose imprecisioni nella trasformazione tra i diversi sistemi di riferimento: a) il piano di presa deve essere perfettamente parallelo al piano X R Y R del robot; al di fuori di questa ipotesi si introduce una imprecisione prospettica che, all interno dell immagine, rende variabile il coefficiente di correlazione pixel/millimetri; b) il sensore della telecamera non è perfettamente parallelo al piano di presa, il che può essere dovuto al sistema di montaggio della stessa ma anche alle inevitabili tolleranze di montaggio del sensore nel suo contenitore; c) l apprendimento dei punti avviene in modo manuale e quindi soggetto ad una incertezza legata all abilità dell operatore ed alla qualità degli strumenti utilizzati. La procedura proposta La procedura proposta prevede che la calibrazione tra robot e telecamera sia svolta in modo completamente automatico così da garantire un elevato standard al risultato. Ovviamente questo comporta che sul robot sia presente un opportuno software e che quello di elaborazione immagine presenti una flessibilità tale da permettergli di dialogare con quello del robot. La procedura prevede che sulla flangia del robot vengo montato uno strumento opportuno, di dimensioni note con incertezza trascurabile rispetto a quella del sistema di visione, che possa muoversi al di sopra del piano di presa delle parti. Un primo vantaggio di questo sistema è che la quota al di sopra del piano di presa alla quale è possibile muoversi è liberamente programmabile il che permette di calibrare alla quota di presa dei pezzi (e non a quella del piano di presa come spesso avviene) migliorando così la accuratezza della calibrazione. Lo strumento di calibrazione dovrà disporre di un piano di modeste dimensioni (circa 20 mm x 20 mm) che dovrà essere disposto perpendicolare al piano di visione; su questo piano viene ricavato con una buona precisione meccanica un cerchio di opportuno diametro (10/15 mm solitamente) che deve risaltare rispetto allo sfondo. Una buona soluzione è solitamente rappresentata dall utilizzo di un pezzo di alluminio anodizzato nero opaco in modo che, lavorando la superficie del cerchio si ottenga una superficie lucida. La procedura di calibrazione prevede che il robot spazzoli completamente il piano di visione con lo strumento indicato in modo da descrivere una griglia uniforme in orizzontale ed in verticale con maglie sufficientemente fitte (valori corretti sono dell ordine dei 50 mm per i normali campi inquadrati). Nel dettaglio il robot dovrà portarsi nel primo punto della prima riga, fermarsi per il tempo necessario alla fotocamera per scattare una immagine, quindi spostarsi sul secondo punto della prima riga e fermarsi di nuovo
Sistema di calibrazione per guida robot bidimensionale e tridimensionale basato su visione artificiale per permettere l acquisizione di una seconda immagine. e procedere in questo modo fino al completamento della griglia. La sequenza delle immagini ottenute viene elaborata in modo da estrarre da ognuna di esse il baricentro del cerchio in coordinate pixel; la scelta del cerchio e delle sue dimensioni non è casuale in quanto applicando una semplice tecnica di estrazione del cerchio basata su blob-detection e sfruttando l effetto media dovuto all elevato numero di pixel che compongono il cerchio è possibile raggiungere incertezze di misura che, nei casi migliori, possono spingersi fino ad 1/50 di pixel con evidenti risultati positivi sulla accuratezza nell individuazione del baricentro. La posizione del baricentro in pixel può essere correlata molto semplicemente a quella del robot che viene acquisita interrogando il suo controllo; la scelta di acquisire la posizione del robot direttamente dal campo presenta l evidente vantaggio di eliminare molte delle fonti di incertezza nel posizionamento del robot lasciando in pratica in gioco solo la ripetibilità ed eventuali flessioni dovute al peso dell oggetto da prelevare. A questo punto, scegliendo opportunamente tre punti tra quelli della griglia è possibile applicare la procedura sopra indicata come attuale per calibrare il sistema, con risultati già nettamente superiori a quella manuale come conseguenza della migliore accuratezza nei dati di partenza. Avendo tuttavia a disposizione una griglia di punti è sembrato importante sfruttarla a fondo in modo da ridurre ulteriormente l incertezza legata alla presa. La considerazione di base è che l immagine può essere affetta da distorsione dovuta all ottica (soprattutto quando questa è di lunghezza focale modesta) così come da deformazione prospettica dovuta alla non perfetta perpendicolarità tra il sensore della stessa ed il piano della griglia. Entrambe queste deformazioni possono essere eliminate via software utilizzando un opportuno algoritmo, detto di warping. Tale algoritmo permette di trasformare un generico quadrilatero in un altrettanto generico secondo quadrilatero. Nello specifico sarà quindi sufficiente imporre come parametri alla trasformazione di trasformare il generico quadrilatero rappresentato da ogni singola cella nel quadrato corrispondente; sappiamo infatti che la cella è formata da quadrati. Confronto tra procedura attuale e procedura proposta La procedura proposta permette di migliorare in modo significativo la accuratezza di presa in quanto permette di determinare in modo automatico e con grande precisione la trasformazione tra il sistema di riferimento robot e quello telecamera. Inoltre questa procedura permette di correggere in modo molto efficace la deformazione prospettica e la distorsione ottica presente in questi sistemi. Infine va sottolineato che la completa automazione della procedura garantisce garantisce risultati standard anche al variare dell esperienza e dell abilità dell operatore che gestisce la procedura. Il lato negativo della soluzione proposta è rappresentato dalla necessità di instaurare un colloquio stretto tra il sistema di visione ed il robot di manipolazione il che comporta l implementazione di un software specifico.
MMSC3 Calibrazione tridimensionale Lo scritto si è limitato a trattare la calibrazione bidimensionale, comunque quella di gran lunga più diffusa in ambito industriale, evitando di addentrarsi in quella tridimensionale per contenere le dimensioni dello scritto entro quelle concesse. Solo a scopo di completezza ci si limita a sottolineare che la procedura di calibrazione tridimensionale è completamente mutuata da quella bidimensionale pur di aggiungere la terza dimensione e di sostituire il cerchio di calibrazione con una sferetta. Bibliografia [1] UNI 4546, Misure e misurazioni. Termini e definizioni fondamentali, 1984 [2] Ernest O. Doebelin: Strumenti e metodi di misura, McGraw-Hill Italia 2004 [3] K.S. Fu, R.C. Gonzales, C.S.G. Lee: Robotica, Mc Graw Hill Italia 1988 [4] Gonzales, Woods: Digital Image Processing, Prentice Hall 2002