POLITECNICO DI MILANO Scuola di Ingegneria Industriale e dell’Informazione Corso di Laurea Magistrale in Ingegneria Meccanica CONTROLLO VISUALE DI UN SISTEMA ROBOTICO PER LA RACCOLTA DELLA FRUTTA Relatore: Prof. Gianni Ferretti Tesi di Laurea di: Persico Stefano Numero di matricola: 817582 Anno Accademico 2014 – 2015
160
Embed
POLITECNICO DI MILANO · PDF file · 2016-02-25Fig. 13: Kuka YouBot ... Tabella 1: Caratterizzazione DH del braccio..... 55 Tabella 2: caratterizzazione DH della piattaforma
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
POLITECNICO DI MILANO
Scuola di Ingegneria Industriale e dell’Informazione
Corso di Laurea Magistrale in
Ingegneria Meccanica
CONTROLLO VISUALE DI UN SISTEMA ROBOTICO PER LA RACCOLTA
DELLA FRUTTA
Relatore: Prof. Gianni Ferretti
Tesi di Laurea di:
Persico Stefano Numero di matricola: 817582
Anno Accademico 2014 – 2015
I
Indice
1 Approccio al problema: la raccolta automatica di frutta............................................................................ 1
1.1 Esperienze passate e stato dell’arte ................................................................................................... 1
8 Appendice A .......................................................................................................................................... 119
9 Appendice B .......................................................................................................................................... 144
9.1 Image processing in simulazione Matlab-Simulink (su punti) ...................................................... 145
9.2 Image processing in Vrep e su telecamera reale (su macchie di colore) ....................................... 148
Fig. 1: Raccolta manuale negli anni 50 ............................................................................................................. 2 Fig. 2: Limb shaker di prima generazione e successivo modello a doppia ganascia ......................................... 3 Fig. 3: Raccoglitore a getto d'aria del 1962 e successivo modello a getto ottimizzato ..................................... 4 Fig. 4: Canopy shaker verticale e moderno shaker rotativo continuo ............................................................... 4 Fig. 5: Moderno trunk shaker a riposo ed in afferraggio ................................................................................... 5 Fig. 6: Schema stereoscopico presentato in [20] ............................................................................................. 11 Fig. 7: Esempio in scala di grigi di stima laser della profondità (si notano errori di stima su superfici molto
inclinate) .......................................................................................................................................................... 11 Fig. 8: Struttura di un'immagine iperspettrale ................................................................................................. 12 Fig. 9: Configurazione "eye-in-hand" (A) e "eye-to-hand" (B) ....................................................................... 15 Fig. 10: Rappresentazione dei dati post image processing per il riconoscimento di una singola mela ........... 16 Fig. 11: Schema del controllo visuale nello spazio operativo ......................................................................... 17 Fig. 12: Schema del controllo visuale nello spazio delle immagini ................................................................ 18 Fig. 13: Kuka YouBot ..................................................................................................................................... 19 Fig. 14: Modello cinematico del braccio del robot, si nota la presenza dell’oggetto obiettivo in rosso ......... 20 Fig. 15: Ellissoide che modellizza il frutto da raccogliere .............................................................................. 22 Fig. 16: Vista della proiezione nel piano immagine ........................................................................................ 22 Fig. 17: Kuka YouBot e sistemi di riferimento ............................................................................................... 23 Fig. 18: Prodotto vettoriale tra e .......................................................................................................... 25
Fig. 19: Immagine esplicativa di e ............................................................................................................ 26 Fig. 20: Distanza tra telecamera e centroide .................................................................................................... 26 Fig. 21: Schema della relazione prospettica .................................................................................................... 27 Fig. 22: Esempio di triangolazione standard ................................................................................................... 31 Fig. 23: Punti di triangolazione ....................................................................................................................... 32 Fig. 24: Schema di triangolazione ................................................................................................................... 33 Fig. 25: Punti per la stima degli assi ................................................................................................................ 34 Fig. 26: Attivazione Machine vision e Robotics toolbox ................................................................................ 51 Fig. 27: Rappresentazione dei parametri D-H ................................................................................................. 52 Fig. 28: Quote del braccio e relative escursioni .............................................................................................. 54 Fig. 29: Definizione Matlab del braccio .......................................................................................................... 55 Fig. 30: Rappresentazione del braccio in coordinate (0;0;0;0;0) dei giunti..................................................... 56 Fig. 31: Dati sulla base (non ci sono chiaramente limiti di escursione) .......................................................... 56 Fig. 32: Implementqazione Matlab della piattaforma ...................................................................................... 57 Fig. 33: Rappresentazione della base in coordinate (0;0) del piano (giunti prismatici) .................................. 57 Fig. 34: Implementazione Matlab dell’intero robot ......................................................................................... 57 Fig. 35: Rappresentazione del robot in coordinate dei giunti (0;0;0;0;0;0;0) ................................................. 58 Fig. 36: Creazione obiettivo ............................................................................................................................ 58 Fig. 37: Robot ed obiettivo .............................................................................................................................. 59 Fig. 38: Caratterizzazione telecamera e parametri intrinseci ........................................................................... 60 Fig. 39: Proiezione dei punti sul piano immagine ........................................................................................... 60 Fig. 40: Routine di ispezione ........................................................................................................................... 61 Fig. 41: Esempio di traiettoria di ispezione (a destra la vista dall’alto) .......................................................... 62 Fig. 42: Risultato dell'ispezione sul piano immagine ...................................................................................... 62 Fig. 43: Features sovrapposte alle immagini nei rispettivi punti di triangolazione ........................................ 64 Fig. 44: Stima della profondità ........................................................................................................................ 65 Fig. 45: Calcolo delle dimensioni stimate dell'obiettivo ................................................................................. 65 Fig. 46: Inizio ciclo .......................................................................................................................................... 67 Fig. 47: Controllo rotazionale .......................................................................................................................... 68
V
Fig. 48: Controllo traslazionale ....................................................................................................................... 68 Fig. 49: Controllo del numero di condizionamento di J .................................................................................. 69 Fig. 50: Profondità stimata in controllo ........................................................................................................... 71 Fig. 51: Posizioni del centroide sul piano immagine in controllo ................................................................... 72 Fig. 52: Errori sul piano immagine in controllo .............................................................................................. 72 Fig. 53: Movimento nello spazio dei giunti ..................................................................................................... 73 Fig. 54: Profondità stimata in controllo ........................................................................................................... 74 Fig. 55: Errori sul piano immagine in controllo .............................................................................................. 75 Fig. 56: Movimento nello spazio dei giunti ..................................................................................................... 76 Fig. 57: Numero di condizionamento per Tint=0.001 s .................................................................................. 78 Fig. 58: Numero di condizionamento per Tint=0.5 s ...................................................................................... 79 Fig. 59: Numero di condizionamento certamente non accettabile, caso in singolarità di gomito ................... 80 Fig. 60: Ellissoidi della velocità in posizione iniziale e finale ........................................................................ 81 Fig. 61: Ellissoidi della velocità in un punto di manipolabilità ridotta ........................................................... 81 Fig. 62: Singolarità cinematica e relativo ellissoide di manipolabilità degenere ............................................ 82 Fig. 63: Prese del frutto in (0,6;0,4;0,3) e (0,6;0,4;0,4) ................................................................................... 82 Fig. 64: Prese del frutto in (0,6;0,4;0,5) e (0,6;0,4;0,6) ................................................................................... 83 Fig. 65: Passaggio di parametri dal workspace Matlab a Simulink ................................................................. 85 Fig. 66: Blocco fkine per il calcolo della matrice Tcam .................................................................................. 86 Fig. 67: Blocco jacobn per il calcolo dello Jacobiano ..................................................................................... 86 Fig. 68: Blocco pinvJac per determinare le velocità ai giunti ......................................................................... 86 Fig. 69: Blocco plot ......................................................................................................................................... 86 Fig. 70: Blocco camera per l'acquisizione d'immagine ................................................................................... 87 Fig. 71: Blocco di image processing ............................................................................................................... 87 Fig. 72: Inizio dello script per il blocco image processing .............................................................................. 88 Fig. 73: Blocco di asservimento visuale e relativi ingressi ............................................................................. 89 Fig. 74: Blocco integratore .............................................................................................................................. 89 Fig. 75: Schema a blocchi del controllo completo .......................................................................................... 90 Fig. 76: Barriera visuale verso il vuoto ........................................................................................................... 92 Fig. 77: Importazione del modello di YouBot ................................................................................................. 92 Fig. 78: Creazione della sfera obiettivo ........................................................................................................... 93 Fig. 79: Impostazione del colore dell'obiettivo ............................................................................................... 93 Fig. 80: Impostazione della posizione e visibilità ........................................................................................... 94 Fig. 81: Definizione parametri del Vision Sensor ........................................................................................... 95 Fig. 82: Montaggio della videocamera "figlia" e floating view ...................................................................... 95 Fig. 83: Preparazione dei ROS subscriber ....................................................................................................... 96 Fig. 84: Verifica dell'apertura dei topic Vrep da terminal ............................................................................... 97 Fig. 85: Stato della rete ROS dopo la configurazione Matlab-Vrep ................................................................ 98 Fig. 86: Sintassi per i topic in Matlab .............................................................................................................. 98 Fig. 87: Sintassi per servizi ROS in Matlab .................................................................................................... 99 Fig. 88: Inizializzazione subscriber immagini e relative conversioni ............................................................. 99 Fig. 89: Coordinate di origine in Vrep e corrispettivo Matlab ...................................................................... 100 Fig. 90: Ripartizione della velocità di base sulle singole ruote ..................................................................... 101 Fig. 91: Risultati di image processing dal primo punto di triangolazione ..................................................... 102 Fig. 92: Spostamento al secondo punto di triangolazione ............................................................................. 102 Fig. 93: Profondità stimata in controllo su Vrep a sinistra, a destra immagine in avvicinamento ................ 103 Fig. 94: Errori sul piano immagine in controllo su Vrep ............................................................................... 103 Fig. 95: Profondità dopo l'implementazione del secondo controllo a sinistra, estensione del braccio a destra
....................................................................................................................................................................... 104 Fig. 96: Errori sul piano immagine con la seconfa fase di controllo ............................................................. 105 Fig. 97: Condizionamento di J nei due casi di controllo ............................................................................... 105 Fig. 98: Passaggio delle coordinate dei giunti Matlab-ROS .......................................................................... 108
VI
Fig. 99: Robot in avvicinamento al frutto obiettivo vincolato al pannello .................................................... 109 Fig. 100: Profondità in avvicinamento .......................................................................................................... 111 Fig. 101: Errori rispetto al centro del piano immagine .................................................................................. 112 Fig. 102: Andamenti nel piano dell'immagine............................................................................................... 112 Fig. 103: Riquadri per le prove di posizionamento del frutto ........................................................................ 114 Fig. 104: Andamento accettabile del numero di condizionamento e caso interrotto ..................................... 115 Fig. 105: Profondità stimata ed immagine pre-triangolazione ad occultamento <10% ................................. 115 Fig. 106: Andamento sul piano dell'immagine ad occultamento < 10% ....................................................... 116 Fig. 107: Profondità stimata ed immagine pre-triangolazione ad occultamento tra 50% e 70% ................... 116 Fig. 108: Comunicazione via Topic .............................................................................................................. 122 Fig. 109: Download di Ubuntu ...................................................................................................................... 125 Fig. 110: Immagine .iso su disco ................................................................................................................... 126 Fig. 111: Creazione di una “live bootable usb” ............................................................................................. 126 Fig. 112: Configurazione repositories ........................................................................................................... 130 Fig. 113: Verifica di interfaccia ROS-Vrep ................................................................................................... 135 Fig. 114: Configurazione delle porte di rete del computer ............................................................................ 137 Fig. 115: Modifica al file "youbot-ethercat.cfg" ........................................................................................... 138 Fig. 116: Modifica delle dependencies in "package.xml" ............................................................................. 141 Fig. 117: inizio generazione dei messaggi ROS custom ............................................................................... 142 Fig. 118: Risultati compilazione e passaggi richiesti .................................................................................... 142 Fig. 119: Errore con collegamento al Support Package Installer .................................................................. 143 Fig. 120: Features da identificare grazie all’image processing ..................................................................... 144 Fig. 121: Image processing standard per punti in Matlab ............................................................................. 146 Fig. 122: ellisse con assi ricavati dagli autovalori ......................................................................................... 147 Fig. 123: Ottenimento di asse maggiore e minore nel nuovo metodo ........................................................... 147 Fig. 124: Funzione Im_Processing ................................................................................................................ 149 Fig. 125: Sequenza di processamento di un'immagine RGB ......................................................................... 149
Indice delle tabelle
Tabella 1: Caratterizzazione DH del braccio ................................................................................................... 55 Tabella 2: caratterizzazione DH della piattaforma .......................................................................................... 57 Tabella 3: Esempio di risultati triangolazione ................................................................................................. 66 Tabella 4:Costanti di controllo ........................................................................................................................ 67 Tabella 5: Specifiche del calcolatore ............................................................................................................. 106 Tabella 6: Configurazione webcam da Matlab .............................................................................................. 107 Tabella 7: Risultati prove di posizionamento ................................................................................................ 114 Tabella 8: Avvicinamento ad una posizione obiettivo .................................................................................. 114
VII
Sommario
La presente tesi ha avuto lo scopo di proporre e testare sperimentalmente un algoritmo per sistemi robotici
atto alla raccolta della frutta.
Nella prima sezione vengono introdotte le più comuni tecniche presenti in letteratura con particolare
attenzione per pregi e difetti delle stesse. Riconosciute le potenzialità dei sistemi di raccolta automatici ad
asservimento visuale, vengono definite le caratteristiche desiderate per la successiva progettazione.
La descrizione dell’algoritmo tratta nel dettaglio della tecnica qui proposta per un robot manipolatore mobile
nelle fasi di: ispezione preliminare, triangolazione ed avvicinamento in controllo disaccoppiato (traslazionale
e rotazionale).
Le fasi di simulazione Matlab/Simulink hanno permesso di trarre importanti conclusioni circa cinematica di
esecuzione, manovrabilità del robot ed implementazione logica della sequenza di raccolta.
L’ambiente di simulazione Vrep ha permesso una modellazione più aderente alla realtà e, di conseguenza, di
ottenere le prime conferme circa il buon funzionamento dell’algoritmo in congiunzione con le realistiche
tecniche proposte per il processamento delle immagini. Questo passaggio è stato oltretutto fondamentale
poiché è servito a testare con successo il funzionamento del ponte ad interfaccia ROS tra Matlab ed una
utenza esterna.
La sperimentazione finale ha permesso di valutare reali tempistiche di avvicinamento e di verificare con
successo che l’implementazione effettuata risultasse robusta rispetto a diverse condizioni di posizionamento
ed occultamento degli obiettivi.
Dimostrata nelle condizioni sperimentali la validità di quanto proposto, la tesi si conclude con una breve
valutazione delle sfide da affrontare in futuro per applicazioni ottimizzate.
1
1 Approccio al problema: la raccolta automatica di frutta
Nel quadro delle sfide per fronteggiare la crescita globale di domanda alimentare, una delle chiavi per il
successo è, sicuramente, lo sviluppo di tecniche agricole intensive ma al contempo sostenibili.
L’automazione costituisce al giorno d’oggi un efficace modo per migliorare la produttività in molti settori
industriali ed è quindi naturale che, più volte, si sia tentato di estendere questi pregi anche al settore di
produzione del primario; la raccolta di frutta è tuttavia, in particolare, una problematica che ancora viene
principalmente affrontata con tecniche manuali scarsamente ottimizzate.
Uno dei motivi del mancato sviluppo in questo ambito è determinato dal fatto che, se è vero che
l’automazione offre interessanti prospettive di miglioramento, resta comunque necessario considerare che la
procedura di raccolta frutta presenta diverse complicazioni dal punto di vista della programmazione e
progettazione. Non è infatti banale gestire in contemporanea tutte le variabili riscontrabili in serre o frutteti
tradizionali quali, solo per fare alcuni esempi:
le irregolarità di terreno e piante
l’impossibilità di conoscere a priori dati precisi sui singoli frutti da raccogliere
la difficoltà nel discriminare frutta matura da quella che ancora non lo è
le condizioni di casuale posizionamento, occultamento ed eventuale velocità di movimento degli
obiettivi per effetto di vento o spostamento delle fronde.
Negli ultimi anni sono stati tentati diversi approcci per risolvere queste problematiche ma una scelta comune
ai metodi utilizzati è quella di prevedere sistemi di controllo basati sull’impiego congiunto di sensori multipli
per risolvere problemi specifici (e.g. sensori sonar per stimare la profondità, sensori cromatici per stimare la
bontà del frutto, accelerometri e giroscopi per ricavare dalla dinamica la posa del robot).
Questa tesi si propone di esplorare, per il problema in esame, le potenzialità offerte da tecniche di controllo e
gestione dei robot relativamente nuove (ROS network e visual servoing) in congiunzione con quanto è
permesso dalle prestazioni computazionali dei calcolatori di recente diffusione.
Prima di affrontare la problematica è buona cosa fare un riepilogo delle esperienze fatte da altri nello stesso
ambito; per questo, nei prossimi paragrafi, si tenterà di ricapitolare brevemente le tappe fondamentali della
ricerca svolta circa i sistemi meccanizzati per la raccolta di frutta.
1.1 Esperienze passate e stato dell’arte Già sul finire degli anni 50, principalmente a seguito dello sviluppo industriale statunitense del periodo,
cominciò ad apparire evidente che i tradizionali metodi manuali di raccolta fossero largamente inefficienti
sia sotto il profilo economico sia in termini di tempo. Anche secondo recenti stime [1] , allo stato attuale, il
2
costo totale di produzione nel caso degli agrumi è costituito per il 35-45% dai soli costi di raccolta e questo è
un fattore importante per giustificare l’impegno nella ricerca di metodologie ottimizzate di raccolta.
Come sottolineato in [2], sono due i principali filoni di ricerca che, a partire dagli anni 60, sono stati
intrapresi per l’approccio alla raccolta:
I sistemi di raccolta di massa o massiva spesso indicati semplicemente come “Mechanical
harvesting” sono stati i primi ad essere proposti e valutati. Si tratta, indipendentemente dal mezzo
specifico, di procedure tese alla rimozione massiva e contemporanea del maggior numero possibile
di frutti dalle piante negli opportuni periodi di maturazione. A prescindere dalla scelta dei metodi
particolari che verranno descritti a breve, a fronte di una buona produttività, questi sistemi sono
approssimativi ed operano in modo “cieco” potenzialmente danneggiando piante e frutta, che
peraltro non può essere direttamente selezionata in questa fase.
I sistemi di raccolta automatica o “Automatic harvesting” proposti solo dal punto di vista
concettuale nella seconda metà degli anni 60 [3]. Si tratta di procedure che si propongono di guidare
manipolatori automatici nella posizione adeguata alla raccolta di frutti singoli sulla base delle
informazioni ricavate da set di sensori appositamente predisposti. In questo caso i problemi
principali sono legati a difficoltà di identificazione degli obiettivi nell’ambiente di lavoro, robustezza
degli algoritmi e produttività.
Nessuno dei due filoni è mai stato propriamente abbandonato e la ricerca è proseguita in parallelo fino ad
oggi; di seguito vengono brevemente indicate le principali tappe di sviluppo per l’uno e per l’altro con
particolare attenzione per pregi e difetti di ogni tecnica.
Fig. 1: Raccolta manuale negli anni 50
1.1.1 Mechanical harvesting
Nel 1961 Coppock [4] dimostrò che gli agrumi possono essere raccolti in massa per scuotimento di rami
singoli attraverso mezzi meccanici non distruttivi per l’albero.
3
Le principali tecnologie collegate alla raccolta massiva sviluppate da allora sono le seguenti:
Limb shaker: scuotimento dei singoli rami.
Air blast: a getto d’aria
Canopy shaking: scuotimento della chioma
Trunk shaking: con vibrazione del tronco
Absission chemicals: irrorazione delle piante con agenti chimici in grado di facilitare il distacco dei
piccioli dai rami.
Post-harvesting: dispositivi collettori post raccolta
Limb shaker
Un primo metodo inerziale di raccolta per scuotimento rami è stato introdotto da Coppock e Jutras in [5]
Fig. 2: Limb shaker di prima generazione e successivo modello a doppia ganascia
Per ottenere l’eccitazione necessaria sul ramo vennero testati due metodi: uno shaker a massa eccentrica
(vibrodina) di circa 40 kg da vincolare al ramo ed attuatori ad impatto diretto. Il sistema vibrante si è
dimostrato da subito il metodo più efficace e meno distruttivo.
Nel corso degli anni sono state affinate le tecniche di ancoraggio ai rami con sistemi a doppia ganascia [6]
con o senza alimentazione propria ma non è stato possibile superare le difficoltà che caratterizzano questo
tipo di raccolta: danni di afferraggio alla corteccia, danno ai frutti ed al fogliame, tendenza a cogliere frutti
immaturi.
Air blast
A partire dal 1962 sono stati tentati approcci a getto d’aria oscillante come quello proposto da Jutras e
Patterson in [7] . La velocità di oscillazione del getto d’aria era sperimentalmente ottimizzata per la
rimozione di frutta.
4
Fig. 3: Raccoglitore a getto d'aria del 1962 e successivo modello a getto ottimizzato
Le performance di questo tipo di raccolta sono largamente dipendenti da dimensione degli alberi e
dimensione/peso dei frutti. Sono stati in seguito sviluppati metodi per mitigare le eccessive perdite e la
conseguente alta potenza [8] ma non è stato possibile risolvere il problema dei danni arrecati a frutta e
soprattutto foglie.
Canopy shaking
Questo tipo di scuotitore è stato introdotto per interagire con i rami secondari, imprimendo oscillazioni che
movimentassero la chioma solitamente in senso verticale. Nel caso di studio di Summer per le arance [9] un
sistema a pantografo si protrude nella chioma sollecitandola quindi interamente, sempre in direzione
verticale. Alcuni macchinari moderni tentano approcci misti con continui movimenti circolari degli
eccitatori, talvolta orizzontali.
Fig. 4: Canopy shaker verticale e moderno shaker rotativo continuo
5
Tra i metodi di raccolta degli agrumi questo è forse quello più utilizzato per efficienza di economia e
tempistica. Occorre considerare che la frequenza di eccitazione e lo specifico tipo di macchina rivestono un
ruolo molto importante per l’ottimizzazione e rimangono ineliminabili i problemi di danno a rami e
fogliame.
Trunk shaking
La movimentazione del tronco si presta in particolar modo per noci e frutta decidua, può evitare danni a rami
e foglie ma è difficilmente applicabile a tutte le tipologie di frutta. Hedden e Whitney [10] hanno esteso
questi risultati alla raccolta delle arance ottimizzando la banda di basse frequenze ed ampie oscillazioni
necessarie ad una appropriata sollecitazione. L’efficienza della raccolta era superiore a quella dei canopy
shaker contemporanei con risultati di 67% di frutti raccolti su grossi alberi e 98% su piccoli.
Fig. 5: Moderno trunk shaker a riposo ed in afferraggio
La bassa frequenza di oscillazione è in grado di limitare molto i danni a rami e foglie ma non risolve i
problemi dei danni di contatto con la corteccia del tronco.
Absission chemicals
L’impiego di sostanze chimiche che favorissero il distacco dei frutti maturi è stato molto presto integrato ai
metodi di raccolta meccanica a getto d’aria e vibrazionali.
Metodo ed intensità di irrorazione variano in base alla particolare sostanza chimica utilizzata ed a molteplici
altri fattori quali stagione e tipo di frutta da raccogliere ma, in linea di massima, il processo prevede
l’applicazione del composto per nebulizzazione dai 3 ai 6 giorni prima del raccolto.
Gli agenti chimici più utilizzati sono quelli che, commercialmente, ricadono nelle classi di “regolatori di
crescita vegetale” e defolianti. Ethephon, Prosulfuron e MJ (Methyl Jasmonate) sono i più diffusi ma molti
altri composti e relativi usi misti sono stati introdotti per ottenere i migliori compromessi tra potere di
rilascio dei frutti e limitazione degli effetti defolianti.
6
In [11] sono stati testati gli effetti di diverse sostanze applicate a casi di raccolta con trunk shaker. È emerso
che la massa complessiva raccolta risulta incrementata fino al 30% nelle condizioni climatiche e stagionali
ottimali. Accanto ai risultati positivi occorre tuttavia evidenziare alcuni problemi riscontrati: il
miglioramento apportato è largamente determinato da fattori difficilmente controllabili quali clima, stato di
salute dell’albero e strumenti specifici di diffusione.
Lo stesso articolo citato conclude che c’è l’evidenza di risultati positivi ma, a causa dei costi delle sostanze e
della non costanza dei risultati, è tuttora opinabile la scelta di utilizzare su vasta scala tali agenti chimici. A
ciò si aggiungono le problematiche legate alla sostenibilità ecologica della raccolta e gli effetti collaterali del
defogliante che, anche in assenza di specifici studi a riguardo, può potenzialmente danneggiare piante e
successivi raccolti. Alcuni frutticoltori hanno testimoniato che le sostanze hanno spesso forzato la caduta di
frutta non matura e quindi inutilizzabile anche a diversi giorni dalla prima raccolta.
Post harvesting
Anche se non è stato discusso nel dettaglio in precedenza è evidente che, di pari passo con lo sviluppo di
tecniche di distacco massivo di frutta, occorre predisporre adeguati sistemi di raccolta. Lo scopo di tali
sistemi non è soltanto quello di riunire tutta la frutta ma anche quello di evitarne il danneggiamento e
facilitarne lo stoccaggio evitando, per quanto possibile, la contaminazione microbiologica della stessa.
Nel corso degli anni si è passati da semplici strutture reticolari su cui venivano tesi teloni impermeabili
(visibili in Fig. 2) a complesse strutture semirigide con nastri collettori che si adeguano progressivamente
alla movimentazione. Ciò che sicuramente emerge dall’osservazione di questi dispositivi è che la loro
progettazione è strettamente legata alla natura dei frutteti su cui dovranno operare ed il loro costo di
investimento è tutt’atro che trascurabile nell’economia globale della raccolta.
1.1.2 Automatic harvesting
I sistemi di raccolta di massa dimostrano una buona produttività e si prestano per la raccolta di tipi di frutta
che, come gli agrumi, non necessitano di particolare delicatezza o attenzioni.
Ciò che è evidente è che tutti i metodi appena descritti lavorano alla cieca e, per questo, non possono
competere con raccoglitori umani per precisione ed abilità di cernita. Tali capacità sono fondamentali per la
raccolta di frutta più facilmente danneggiabile (come le mele) o dall’alto valore aggiunto.
Per i suddetti motivi e per gestire le irregolarità dei frutteti, già a partire dal 1962 si teorizzavano effettivi
sistemi di raccolta automatica come quelli proposti da Schertz and Brown [3]. In questo caso due tipi di end-
effector raccoglitore (uno per il distacco per torsione ed uno con un dispositivo di taglio rotante) sono stati
7
progettati perché, grazie a tecnologie future, potesse essere possibile sfruttare una mappa fotometrica in
riflettenza per evidenziare i frutti tra altri possibili obiettivi. Lavori più concreti nella direzione di un sistema
di raccolta autonomo sono stati fatti solo a partire dagli anni 80 grazie alle nuove potenzialità
dell’informatica conseguite in quel periodo.
Di seguito verranno indicate alcune tappe fondamentali per l’ottenimento delle tecnologie che costituiscono
lo stato dell’arte in ambito di raccolta automatica per il generico tipo di frutta:
MAGALI Project
Florida Citrus Picking Robot
Eureka Projects
Agribot Project
CRAM Citrus Picking Robot
Sono stati condotti altri progetti, soprattutto negli anni 90, ma costituiscono essenzialmente varianti di quelli
indicati sopra, con alcuni perfezionamenti delle soglie dei sistemi di processamento immagini e
l’introduzione di innovativi gripper flessibili, la cui discussione non è strettamente pertinente a questa tesi.
MAGALI Project
Una prima modellazione di sistema di raccolta automatica è stato sviluppato nel 1985 a Monpellier, in
Francia [12]. Nel caso di sperimentazione proposto una telecamera fissa in bianco e nero (B/W) era posta ad
osservare un intero filare per determinare le sole coordinare orizzontali a cui inviare un robot per la raccolta,
in grado di spostarsi autonomamente lungo il filare ma senza alcun tipo di controllo in retroazione.
Pochi anni più tardi lo stesso istituto di ricerca [13] ha sostituito la telecamera in bianco e nero con una a
colori montata direttamente sul robot in modo che le coordinate d’immagine ed il versore caratterizzante il
piano d’immagine fossero diretti esattamente come le coordinate di movimentazione del robot; in questo
caso per migliorare la stima della profondità in presa è stato introdotto anche un sensore di prossimità ed il
prototipo è stato testato per la raccolta di mele gialle. I risultati osservati sono stati un’identificazione del
50% dei frutti dei quali il 75% è stato raccolto correttamente (con picciolo) in un tempo medio di poco
superiore ai 4 secondi.
Florida Citrus Picking Robot
Il problema del sistema di linea visuale utilizzato nel MAGALI project era il fatto che, tra le fasi di visione e
quella di raccolta, il sistema fosse cieco e quindi in nessun modo guidato nella fase di avvicinamento (di
conseguenza estremamente vulnerabile a spostamenti del frutto per vento o movimento delle fronde).
In [14] viene proposto l’utilizzo, insieme ad una telecamera a colori (per valutare il contrasto cromatico) sul
giunto sferico dell’end-effector, di un trasduttore ultrasonico per mitigare questi effetti nel corso
8
dell’avvicinamento. L’identificazione riscontrata è stata di circa il 75%, con un tempo medio di presa attorno
ai 7 secondi a causa della complicazione aggiuntiva rispetto al modello precedente.
Eureka Projects
Team di ricerca spagnoli e francesi hanno collaborato in [15] all’implementazione di un innovativo sistema a
gripper idraulico per la raccolta di agrumi. La telecamera, in questo caso, era posizionata al centro del
manipolatore ma il vero sviluppo è stata l’introduzione di un nuovo sistema di identificazione d’immagine.
Una singola telecamera in bianco e nero è stata testata con interposizione di filtri ottici tali da permettere il
passaggio della sola luce a lunghezze d’onda tra 635nm e 560 nm. È stato utilizzato anche un sistema di flash
ad intermittenza per garantire un’illuminazione analoga nei diversi casi.
Lo studio ha evidenziato che utilizzare bande cromatiche specifiche porta ad identificazioni più precise
(90%) rispetto a quelle ottenute per semplice contrasto di colore. Non sono stati affrontati né risolti problemi
di occlusione della visuale e gli effetti negativi del mancato controllo nel percorso.
Agribot Project
Una equipe spagnola si è occupò di sviluppare in [16] una macchina raccoglitrice ibrida con meccanismi
automatici combinati al contributo umano. In particolare due bracci raccoglitori con gripper ad aspirazione
pneumatica furono montati su di un veicolo guidato da un operatore.
Ogni manipolatore si muoveva su 3 gradi di libertà: un giunto prismatico verticale e due rotativi ad asse
verticale (a questi si aggiungevano i due assi di rotazione propri dell’end-effector).
L’algoritmo di presa sfruttava sensori a telemetria laser per la stima delle coordinate sferiche del frutto e
sensori di profondità ad infrarossi per gestire la presa.
Il tempo medio di presa, una volta posizionata la macchina in un punto opportuno dei filari, era di circa 2
secondi ma sono stati riscontrati non pochi problemi di interazione del sensore laser con elementi riflettenti
ed illuminazione. La necessità del contributo umano si è dimostrata ineliminabile in quanto, ancora in
assenza di un sistema di controllo, l’avvicinamento ai rami della pianta era principalmente manuale.
CRAM Citrus Picking Robot
Un progetto di raccolta degli agrumi è stato proposto anche in Italia dall’Università di Catania [17]. Un
semplice manipolatore Cartesiano montato su di una piccola ruspa veniva movimentato con azionamenti
pneumatici per addentrarsi nelle chiome degli alberi. Un interessante passo avanti è stato fatto per quanto
riguarda il sistema di visione, in questo caso un modello RGB di cui veniva sfruttata la gamma RG per
l’identificazione dei frutti dallo sfondo. La stima della distanza del frutto avveniva attraverso la conoscenza
di valori stimati del diametro e, durante la fase di avvicinamento, corretta sulla base della sequenza di
immagini scattate (attraverso un filtro di Kalman a tempo continuo).
9
Il tempo totale di raccolta medio era, in simulazione, di circa 6 secondi ed il metodo era decisamente più
robusto dei precedenti rispetto a piccole variazioni di posizione del frutto. La realizzazione pratica ha
imposto tempistiche decisamente meno sostenibili a causa del tempo di elaborazione delle immagini scattate.
1.1.3 Tecniche di visione macchina diffuse
Nella breve panoramica dei progetti di raccoglitori automatici appena proposti sono state accennate, oltre alle
differenze dei sistemi di presa, anche diversi approcci al problema della stessa visione macchina.
Con visione macchina o machine vision si intende il sistema hardware di sensori utilizzato per fornire alla
macchina i dati da inviare ai software di processamento immagini per l’ottenimento di parametri utili
all’algoritmo di raccolta.
Le performance dei principali tipi di sensori impiegati in machine vision sono state valutate e confrontate da
Jimenez in [18]. Per una prima classificazione del tipo di immagini digitali raccolte ci si può riferire alle
seguenti categorie:
Segnali in intensità luminosa: in termine di modulo dell’emissione elettromagnetica osservata,
indipendentemente dal colore.
Segnali di spettro: in coordinate colore RGB (rosso verde blu) o, analogamente in segnali basati
sulla saturazione in coordinate HSL (tonalità, saturazione, intensità). Particolari casi di segnali in
spettro concettualmente analoghi a quelli cromatici ma non esprimibili nel campo del visibile sono
quelli ricavati dal thermal imaging ad infrarossi.
Segnali di telemetria laser: laser range finder a tempo di volo o, più raramente, a phase shift ed
interferometria.
A partire da queste categorie fondamentali si vanno ora a discutere particolari configurazioni hardware che
hanno trovato ampio utilizzo in letteratura e nei progetti di raccolta frutta citati in 1.1.2.
Schema monoculare
In [18] è ampiamente descritto l’utilizzo di schemi monoculari per la raccolta di agrumi; si tratta di un
sistema poco costoso sia dal punto di vista economico sia dal punto di vista del tempo computazionale.
L’immagine singola non è in grado di restituire la stima della profondità e per questo è stato spesso
affiancato ad altri tipi di sensori che ne integrassero le mancanze.
Nel MAGALI project [12,13] è stata dapprima implementata una telecamera fissa singola in bianco e nero
per la stima della posa basata sulla intensità della riflettenza luminosa del frutto nel solo piano immagine
(senza trattare la profondità). In seguito è stata utilizzata una telecamera a colori per migliorare la percezione
10
in casi di illuminazione variabile ed un sensore di prossimità per la sola fase di presa (si noti che nel percorso
non era comunque stimata la profondità).
Alle ricerche Florida Citrus Picking Robot [14] ed Eureka projects [15] si devono rispettivamente
l’introduzione di sensorizzazione infrarossa per la stima della profondità e l’introduzione di filtri passa banda
per effettuare un controllo colore, sfruttando la sola intensità da una telecamera in bianco e nero.
Il progetto CRAM Citrus Picking Robot [17] inroduce il sistema monoculare più sofisticato tra quelli
proposti, e sfrutta un’analisi spettrale del campo RG per impostare un vero e proprio controllo in
avvicinamento basato sulla dimensione stimata del diametro dei frutti.
Il sistema monoculare si è dimostrato versatile e di compatta ed efficiente implementazione, a patto di
risolvere i problemi di profondità e di scegliere un tipo di sensore o filtro opportuno per il tipo di raccolta.
Schema stereoscopico binoculare
Un metodo computazionalmente ed economicamente oneroso ma più preciso per la stima della profondità è
l’utilizzo di due differenti videocamere per sfruttare metodi di triangolazione tra le due immagini osservate
dai diversi punti di vista.
Un primo approccio a questo tipo di problemi, con avvicinamento non controllato, è stato proposto da
Kassay [19] nel progetto di raccolta ungherese AUFO. La triangolazione portava all’identificazione delle
coordinate spaziali grazie a due fotografie scattate in contemporanea dai diversi punti di vista. La diversità
delle condizioni di occultamento e forma dai diversi punti di vista costituì un problema di difficile soluzione,
tanto che gli esperimenti hanno portato alla corretta identificazione nel solo 41% dei casi.
Approcci binoculari più sofisticati, come quelli utilizzati nel recente [20] sfruttano la triangolazione dei due
punti di vista per una stima solo iniziale della profondità, ma la aggiornano in continuazione grazie ad
algoritmi di controllo basati sulla vista della telecamera in-hand in avvicinamento.
Gli approcci binoculari si sono dimostrati in grado di sostituire efficacemente gli analoghi approcci sensor
fusion monoculari ma, a causa della complessità computazionale, non esistono per ora casi applicativi di
sistemi di controllo in avvicinamento integralmente stereoscopici.
11
Fig. 6: Schema stereoscopico presentato in [20]
Schema a telemetria laser
In [18] viene anche presentato un metodo a telemetria laser per l’ottenimento in coordinate sferiche della
posizione degli obiettivi.
Questo tipo di metodi riconosce gli oggetti sulla base delle scansioni superficiali e della relativa attenuazione
della risposta luminosa; sulla base di avanzati sistemi di riconoscimento di posa spaziale è stato possibile
anche distinguere frutti maturi da quelli acerbi con una complessiva accuratezza di riconoscimento del 70%.
Il sistema implementato in Agribot project [16] dimostra una eccellente velocità di presa, anche se il
contributo umano è indispensabile per correggere alcuni difetti caratterizzanti questo metodo.
I laser range finder in condizioni di esercizio realistiche hanno dimostrato una certa vulnerabilità a problemi
di occlusione e riflessione su superfici particolarmente inclinate rispetto all’origine del fascio.
Fig. 7: Esempio in scala di grigi di stima laser della profondità (si notano errori di stima su superfici molto inclinate)
Possibili soluzioni implementabili prevedono la sovrapposizione delle letture da sensori laser multipli ma i
modelli di riconoscimento spaziale per sovrapporre i dati risultano al giorno d’oggi particolarmente onerosi.
12
Schema iperspettrale
Con il termine immagine iperspettrale si intende un’immagine digitale nella quale ogni elemento
dell’immagine (pixel) è costituito non da un solo numero o da una terna di numeri, come avviene per le
usuali immagini a colori (RGB), ma da un intero spettro associato a quel punto del bersaglio osservato.
L’insieme dei dati raccolti può dunque essere pensato come il cubo di dati contenente tante immagini
monocromatiche nelle quali, ad ogni pixel corrisponda l’intensità di emissione alla data lunghezza d’onda
Fig. 8: Struttura di un'immagine iperspettrale
L’utilizzo particolarmente dispendioso di questo tipo di dati permette di ottenere informazioni difficilmente
ottenibili altrimenti su difetti superficiali dei frutti e preciso stato di maturazione.
In Okamoto [21] sono state svolte sperimentazioni con discretizzazione monocromatica tra 369nm e 1042nm
con buoni risultati di riconoscimento ma tempi di calcolo insostenibilmente lunghi (si consideri che una sola
acquisizione d’immagine varia tra 22 e 65 secondi a seconda della risoluzione).
Visione termica
Ci sono stati tentativi [22] di determinare numero e diametro delle mele sugli alberi di un frutteto sfruttando
l’emissione di calore delle piante dopo una prolungata esposizione alla luce solare. Si è osservato che la
massima escursione di temperatura tra singoli frutti e chiome degli alberi era osservabile attorno alle ore
16:00 dei mesi opportuni alla raccolta.
Questo tipo di metodologia si è dimostrata, nelle finestre di tempo indicate, soddisfacente per la
localizzazione dei frutti ma, a causa degli incontrollabili effetti di ombre e scambi termici, non è stato
possibile ottenere una chiara stima dei diametri.
13
Sono promettenti eventuali sviluppi con sensor fusion di sensori temici e telecamere a colori, chiaramente i
costi di investimento crescerebbero di conseguenza.
1.1.4 Tecniche di analisi dell’immagine
Le tecniche di machine vision introdotte in 1.1.3 restituiscono immagini che è ancora necessario processare
per ricavare le informazioni che saranno utili all’algoritmo di raccolta.
In 9 sono descritte nel dettaglio le procedure di image processing necessarie all’ottenimento delle features
necessarie all’algoritmo proposto nel capitolo 2; in questa sezione si propongono le tecnologie più utilizzate
per identificare le zone del piano immagine corrispondenti ai frutti da utilizzare come obiettivo:
Analisi di colore (Color based): in questo caso vengono proposti valori di soglia ed indici per
segmentare rapidamente le immagini in aree utili. È comune anche l’utilizzo di filtri ottici fisici per
migliorare l’isolamento delle aree di interesse, questo metodo è stato per esempio utilizzato in
[15,22] dapprima con una telecamera in bianco e nero e poi a colori vantando il riconoscimento di
circa l’80% dei frutti.
Un metodo simile può essere applicato alle immagini iperspettrali ottenibili con metodi simili a
quelli descritti in [21], con opportune limitazioni alle lunghezze d’onda di interesse e alle
temperature specifiche per acquisizione di tipo termico.
Naturalmente, per approcci di tipo sensor fusion, occorrerà anche definire “pesi” per mediare le zone
sovrapposte nei diversi tipi di identificazione.
Analisi di forma (Shape based): esistono algoritmi adattativi per il riconoscimento di geometrie
definite a priori all’interno dell’immagine, uno dei più utilizzati è la trasformata di Hough (CHT)
che, per la raccolta di frutta, è conveniente utilizzare per forme circolari.
Il metodo sfrutta caratteristiche geometriche riconoscibili tra pixel che condividono caratteristiche
simili. In particolare curvature ed aree monocrome possono essere facilmente ricondotte a forme
interpretabili come ellissi o cerchi obiettivo.
Questo tipo di analisi, piuttosto dispendioso dal punto di vista computazionale, può essere ben
implementato anche su sistemi a telemetria laser come quello di Agribot project [16] anziché per
valutazioni fatte sui gradienti di profondità.
Approcci statistici: il problema del riconoscimento di oggetti obiettivo dall’immagine può essere
reinterpretato come un problema multivariato di ordine statistico per l’identificazione di pattern o
“cause” che qualifichino una particolare zona del piano immagine come area di interesse.
Sulla base di set di dati (raccolte di immagini) per le quali è nota a posteriori la presenza e le
coordinate degli oggetti obiettivo possono essere sfruttate le regole di classificatori ottimali di
14
parametri come quelli di Bayes per costruire regole probabilistiche in grado di identificare su nuove
immagini le zone di interesse con un determinato livello di confidenza.
I gruppi di ricerca degli Eureka projects [23] hanno utilizzato proprio questo tipo di tecnica con un
criterio discriminante di Bayes, in grado ottenere riconoscimenti corretti nel 90% dei casi sulla base
di una preliminare fase di apprendimento.
Approccio alle reti neurali: in modo analogo a quanto sperimentato in termini statistici sono stati
fatti tentativi per risalire alle cause del riconoscimento di pattern nell’immagine con la tecnica delle
reti neurali.
Nel progetto italiano AID, Grasso [24] ha sondato per esempio la possibilità di utilizzare un
algoritmo di retro propagazione (backpropagation) dell’errore in una rete neurale multilivello (con
più di 2 layer di neuroni nascosti tra gli strati di input ed output) per la segmentazione di immagini di
alberi d’arancio. I risultati sono stati positivi considerando l’88% dei riconoscimenti corretti ma, allo
stato attuale, gli stessi autori riconoscono che il metodo sia troppo oneroso dal punto di vista
computazionale per un utilizzo pratico.
15
1.2 Il sistema di asservimento visuale
Nella precedente sezione 1.1 sono stati discussi, oltre ai pregi, anche i difetti delle principali tecniche
meccanizzate per la raccolta di frutta. Si è visto in sostanza che i sistemi di mechanical harvesting non
consentono di effettuare una raccolta precisa e spesso danneggiano le piante in modo più o meno grave.
I principali problemi dei metodi di automatic harvesting per frutti singoli sono invece: la mancanza di
produttività nel caso delle tecnologie dai più elevati costi computazionali e la “cecità” con conseguente
mancanza di robustezza nel caso di quelle che non prevedono sistemi di controllo in retroazione.
Il tentativo fatto in questa tesi è stato quello di sviluppare un metodo di automatic harvesting che fosse un
compromesso tra robustezza ed efficienza. Ciò ha portato all’utilizzo di un sistema in retroazione che
sfruttasse in modo versatile il minimo quantitativo di sensori. Per la sua ricchezza di contenuti, il segnale di
una videocamera è quello che si presta maggiormente al controllo di tutte le diverse operazioni.
Questo approccio è noto in letteratura come asservimento visuale o visual servoing, l’obiettivo di un sistema
di asservimento visuale è infatti quello di sfruttare le immagini acquisite da una (visione monoculare) o più
(visione stereo) telecamere per controllare il movimento del robot a cui esse sono associate. In questa sezione
verranno motivate le scelte fatte per il particolare schema di controllo utilizzato.
1.2.1 Punto di vista della telecamera
L’utilizzo di una sola telecamera è più economico e di più semplice implementazione, per questo si è scelto
tale tipo di soluzione. Per i robot manipolatori esistono due soluzioni per quanto riguarda la configurazione
fisica del sistema [25]:
configurazione con telecamera mobile (“eye-in-hand”), in cui la telecamera è fissata sul robot (Fig.
9.a);
configurazione con telecamera fissa (“eye-to-hand”), in cui la telecamera è installata su di una base
fissa rispetto alla posizione di montaggio del manipolatore (Fig. 9.b).
Fig. 9: Configurazione "eye-in-hand" (A) e "eye-to-hand" (B)
(a) (b) Telecamera
Braccio manipolatore
Obiettivo
16
La configurazione “eye-to-hand” permette alla telecamera di avere un campo visivo costante durante
l’esecuzione del compito da parte del manipolatore, tuttavia è possibile che esso, muovendosi, si ponga tra la
telecamera e l’obiettivo, facendo sì che la telecamera non possa più fornire indicazioni adeguate a
movimentare il robot. Nella configurazione “eye-in-hand” invece, il campo visivo della telecamera varia
durante il moto con la possibilità che l’oggetto obiettivo esca dal campo visivo, tuttavia questo layout
consente di evitare che l’oggetto venga nascosto alla telecamera dal manipolatore, e permette ,in generale,
un’accuratezza migliore del controllo. Per questo motivo, la configurazione “eye-in-hand” è stata ritenuta la
più adatta al problema in questione.
1.2.2 Processamento d’immagine
Le foto scattate dalla telecamera devono essere opportunamente processate al fine di individuare ed estrarre
le caratteristiche (“features”) di interesse: tale procedimento è detto processamento d’immagine (image
processing). Solitamente le caratteristiche che si vogliono identificare dalle immagini sono grandezze
semplici, come coordinate di punti e parametri caratteristici di quadrati, rettangoli o ellissi; tutte grandezze
le cui informazioni possono essere riassunte in pochi valori.
Nel caso in esame, ad esempio, si è scelto di individuare dall’immagine le macchie di colore direttamente
associabili ai frutti da raccogliere. Una volta isolate queste aree, è stato possibile sceglierne una come
obiettivo da raggiungere e, mediante procedure descritte in Appendice 9, approssimarla ad un’ellisse che ne
sintetizzasse così i parametri spaziali.
Considerando la natura degli obiettivi sarebbe anche stato possibile scegliere una sfera come in [20] ma,
come discusso nel capitolo 6 relativo alla sperimentazione ciò avrebbe reso il metodo più vulnerabile a
problemi di occultamento.
Fig. 10: Rappresentazione dei dati post image processing per il riconoscimento di una singola mela
17
L’ellisse raffigurata in Fig. 10 rappresenta l’oggetto obiettivo per l’algoritmo ed i suoi parametri (centroide,
asse maggiore, asse minore, angolo di inclinazione dell’asse maggiore rispetto all’orizzontale) costituiscono
le features stimate dall’immagine (le dimensioni sono ovviamente espresse in pixel).
Il processamento dell’immagine descritto in Appendice 9 prevede anche un “filtro” in grado di escludere
regioni troppo piccole (rappresentanti disturbi o oggetti troppo lontani) e, potenzialmente, non sarebbe
eccessivamente complicato aggiungere un sistema di categorizzazione in una lista di priorità per obiettivi
multipli da raccogliere. Dato che questa tesi riguarda principalmente l’implementazione e la sperimentazione
in ROS dell’algoritmo che controlla il robot, si è deciso di trascurare quest’ultimo aspetto, semplificando il
problema con l’ipotesi di fondo che vi sia un unico frutto da raccogliere per volta.
1.2.3 Schemi di asservimento visuale
Vi sono tre approcci differenti al problema di asservimento visuale:
Controllo visuale nello spazio operativo (Position-Based-Visual-Servo, PVBS )
Controllo visuale nello spazo delle immagini (Image-Based-Visual Servo, IBVS)
Controllo ibrido
Position-Based-Visual-Servo, PVBS
Il primo schema di controllo (Fig. 11) utilizza le features estratte dalle immagini acquisite per stimare la posa
dell’oggetto rispetto alla telecamera ( , il robot quindi, si muove in modo da raggiungere la posa
desiderata ( della telecamera rispetto all’oggetto. Il controllo viene eseguito in coordinate cartesiane
(spazio di lavoro tridimensionale). Questo schema, agendo nello spazio operativo, consente alla telecamera
di eseguire una traiettoria teoricamente ideale.
Un passaggio importante in questo caso sarebbe dunque la stima dell’errore di posa rispetto ad una ideale
configurazione obiettivo precedente all’attuazione del robot.
È importante sottolineare che ciò che avviene in questo caso sul piano immagine non ha influenza diretta sul
moto ed è quindi possibile che la telecamera perda di vista l’obiettivo.
Fig. 11: Schema del controllo visuale nello spazio operativo
-
+
CONTROLLORE MANIPOLATORE TELECAMERA
STIMA
POSA
18
Image-Based-Visual Servo, IBVS
Il secondo schema (Fig. 12) utilizza direttamente le features immagine ( ) senza stimare la posa della
telecamera rispetto all’oggetto per movimentare il robot. La posa relativa di telecamera ed obiettivo è
definita implicitamente tramite i valori delle features immagine nella posa desiderata ( ). Il controllo è
effettuato nello spazio delle coordinate immagine (spazio bidimensionale).
Il vantaggio di questo secondo schema di controllo è che, agendo direttamente nel piano immagine, è
possibile fare in modo che l’oggetto non esca mai dal campo visivo della telecamera. D’altra parte lo
svantaggio è che la traiettoria richiesta alla telecamera potrebbe risultare non ottimale o addirittura non
attuabile dal robot a causa della presenza di singolarità o superamento dei limiti di giunto.
Fig. 12: Schema del controllo visuale nello spazio delle immagini
Controllo ibrido
Esiste un terzo approccio, che permette di unire i vantaggi dei due schemi appena presentati e viene definito
controllo visuale ibrido. Questo schema si basa su un errore che viene definito in parte nello spazio operativo
ed in parte nello spazio dell’immagine, ciò permette di avere un maggiore controllo sulla traiettoria seguita
dalla telecamera. Tuttavia, la presenza di componenti di errore definiti dello spazio delle immagini, aiuta ad
evitare che l’oggetto obiettivo esca dal campo visivo della telecamera. Proprio per queste sue caratteristiche,
è questo il tipo di schema di controllo scelto per la risoluzione del problema affrontato.
Tramite analisi dello stato dell’arte dei sistemi di asservimento visuale presenti in letteratura, si è scelto di
implementare un sistema di controllo visuale ibrido di tipo disaccoppiato [20], che unisce i vantaggi dei due
schemi elementari di asservimento visuale [26].
-
+
CONTROLLORE MANIPOLATORE TELECAMERA
MISURA
FEATURES
19
1.3 Scelte e premesse per l’algoritmo proposto
Nelle sezioni precedenti sono stati introdotti alcuni concetti di base che hanno portato a scelte
particolarmente importanti per lo sviluppo dell’algoritmo.
Perché l’algoritmo ottenuto sia accurato, non dannoso per le piante ed innovativo si sceglie di
implementare un sistema di raccolta per frutti singoli (Automatic harvesting 1.1.2).
Perché il robot sia autonomo nelle fasi di raccolta dovrà essere dotato di piattaforma mobile.
Perché l’algoritmo sia robusto rispetto alle difficili condizioni riscontrabili in un frutteto reale è
indispensabile che la fase di avvicinamento avvenga in controllo.
Per mantenere bassi i costi economici e computazionali, dovendo scegliere un unico sensore per il
controllo, risulta ottimale la scelta di una telecamera a colori (con segnale in RGB 1.1.3).
Tra tutti i metodi di acquisizione e processamento immagine, per tempo di elaborazione e reale
attuabilità, viene scelta una analisi di colore da segnali di spettro 1.1.4
Per motivi di costo e semplicità di implementazione si sceglie un sistema a telecamera monoculare.
Per minimizzare le possibilità di coprire e perdere l’obiettivo si sceglie un sistema di montaggio
della telecamera (Fig. 9.a) di tipo in-hand 1.2.1.
Il sistema di processamento immagini deve ricavare ad ogni iterazione un’ellisse associata
all’obiettivo e caratterizzata dalle seguenti features :centroide, asse maggiore, asse minore, angolo
di inclinazione dell’asse maggiore rispetto all’orizzontale 1.2.2.
Si sceglie uno schema con sistema di controllo visuale ibrido di tipo disaccoppiato per rotazione e
traslazione 1.2.3.
Ulteriori specifiche per l’utilizzo pratico di un robot con i requisiti di sopra nel mondo reale verranno
discusse nell’ultima sezione della trattazione sperimentale, capitolo 6.
Per l’implementazione dell’algoritmo si è considerato il robot KUKA YouBot (Fig. 13), dotato di piattaforma
mobile omnidirezionale e di braccio manipolatore a cinque gradi di libertà. Combinandolo con una semplice
webcam vincolata all’ultimo giunto si riescono a realizzare pienamente le condizioni sperimentali scelte.
Fig. 13: Kuka YouBot
20
Chiaramente, nelle fasi di simulazione Matlab (capitolo 3), Simulink e Vrep (capitolo 5) occorrerà costruire
elementi fittizi in grado di rappresentare correttamente telecamera ed obiettivo sul robot la cui struttura verrà
modellata in modo solo schematico come descritto in 3.1.1.
Fig. 14: Modello cinematico del braccio del robot, si nota la presenza dell’oggetto obiettivo in rosso
21
2 Descrizione algoritmo
Utilizzando le informazioni raccolte dalla sola videocamera, porti il robot a raggiungere un oggetto
bersaglio (il frutto) rappresentato in questa fase preliminare da un ellissoide dal colore (rosso) facilmente
riconoscibile rispetto allo sfondo.
2.1 Descrizione dell’algoritmo
L’approccio scelto si compone di tre fasi principali, a loro volta suddivise in tappe descritte in seguito nel
dettaglio:
1. Ispezione preliminare: lo scopo è quello di portare l’oggetto arbitrariamente disposto nello spazio
all’interno del campo visivo del robot. Le tappe relative sono:
Routine di osservazione.
Image processing.
Arresto della routine secondo opportuni criteri.
2. Triangolazione: lo scopo è quello di stimare, rispetto alla telecamera, la profondità dell’oggetto e le
relative dimensioni (utili nella fase di controllo).
3. Avvicinamento controllato: il raggiungimento dell’obiettivo vero e proprio prevede il controllo
del movimento sulla base delle informazioni ricevute ad ogni istante dalla telecamera nel modo
seguente:
Controllo della velocità angolare desiderata per la videocamera
Controllo della velocità traslazionale
Applicazione nello spazio dei giunti di velocità che portino ad ottenere per telecamera ed
end-effector le velocità desiderate in precedenza.
L’oggetto obiettivo è dotato di caratteristiche geometriche di posa e di dimensioni proprie (non note a
priori), ai fini della soluzione che approssima l’obiettivo ad un ellissoide i dati che qualificano la dimensione
sono i seguenti, raffigurati in Fig. 15:
: lunghezza reale in metri dell’asse maggiore dell’ellissoide;
: lunghezza reale in metri dell’asse minore dell’ellissoide;
22
Fig. 15: Ellissoide che modellizza il frutto da raccogliere
I sistemi di controllo visuale necessitano di informazioni estrapolate dalle immagini, le cosiddette features
dell’immagine, che si ottengono tramite procedimenti di image processing. I dettagli sul processamento delle
immagini sono esposti in seguito, per ora si si ipotizza di conoscere ad ogni istante le seguenti grandezze:
che rappresenta la lunghezza in pixel dell’asse maggiore dell’ellisse nel piano immagine;
che rappresenta la lunghezza in pixel dell’asse minore dell’ellisse nel piano immagine;
che rappresenta il vettore delle coordinate nel piano immagine (in pixel) del centro
dell’ellisse, cioè il centroide.
Fig. 16: Vista della proiezione nel piano immagine
Piano immagine
23
L’algoritmo di controllo scelto sulla base di quanto descritto in [20] ha come variabili di controllo le velocità
angolari e traslazionali della terna di riferimento solidale alla telecamera. Il metodo di implementazione
usato è di tipo disaccoppiato, infatti sono separate le procedure di controllo per le 2 parti:
1. controllo rotazionale;
2. controllo traslazionale.
2.2 Sistemi di riferimento
Prima di descrivere le fasi elencate in 2.1 è opportuno fare una panoramica dei sistemi di riferimento che
verranno utilizzati nel corso dell’algoritmo ed alcuni legami tra di essi.
Sono due i principali sistemi di riferimento utilizzati: uno nel piano immagine della videocamera ed uno
nello spazio tridimensionale nel quale il robot si muove.
Disponendo dell’immagine scattata dalla videocamera, si possono conoscere, mediante le tecniche di image
processing descritte in appendice, le coordinate nel piano immagine del centroide (in Fig. 17 l’intersezione
degli assi dell’ellissoide in rosso) lungo e :
( 1 )
Si considera ora un sistema di riferimento tridimensionale solidale alla videocamera in hand ( ),
come mostrato in Fig. 17:
Fig. 17: Kuka YouBot e sistemi di riferimento
24
I vettori sono versori indicanti il sistema di riferimento fisso, la terna ( ) indica il
sistema di riferimento della telecamera in hand, e rappresentano gli assi nel piano immagine (che ha
come unità di misura i pixel) rispettivamente lungo e , infine il vettore rappresenta la posizione
stimata del centroide rispetto alla terna di riferimento della telecamera:
Si ricaverà ora il legame prospettico tra la posizione dell’oggetto sul piano dell’immagine e quella nel
sistema di riferimento solidale alla videocamera.
Ciò che si vuole esprimere è il legame tra e in modo da ricavare a partire da immagini scattate
dalla videocamera. È evidente che nel piano immagine le coordinate sono solamente 2, quindi occorre
innanzitutto espandere il vettore associando un valore, corrispondente alla profondità, unitario:
Occorre normalizzare anche in modo che abbia e quindi si possa confrontare prospetticamente
con . Il vettore viene indicato con e viene scritto nel seguente modo:
Non rimane che sfruttare la relazione tra coordinate nel piano immagine (u,v) e coordinate nel sistema di
riferimento della telecamera ( ) tale per cui:
( 2 )
Dove rappresenta la matrice dei parametri intrinseci della telecamera ottenibili mediante calibrazione della
stessa:
25
In cui e rappresentano le dimensioni dei pixel rispettivamente lungo e lungo ; e
rappresentano rispettivamente le coordinate sul piano immagine (in pixel) del centro della telecamera; infine
indica la distanza focale della telecamera.
Si ricava ora dalla ( 2 ):
Il vettore rappresenta dunque le coordinate normalizzate sulla profondità del centroide rispetto alla terna
solidale alla telecamera.
Ai fini del controllo rotazionale, non è tanto importante il modulo di , quanto la sua direzione; è lecito
dunque procedere ad un’ulteriore normalizzazione di tale da renderlo unitario (il che sarà particolarmente
utile per definire la grandezza descritta in seguito):
In cui rappresenta il modulo di .
Si definiscono ora 3 grandezze propedeutiche al controllo in rotazione descritto in seguito:
come il prodotto vettoriale (indicato dall’operatore ’ ’) tra ed il versore lungo
(Fig. 19):
Il vettore ha modulo uguale al seno dell’angolo compreso tra i due vettori in quanto entrambi di
modulo unitario.
Geometricamente questo prodotto può essere visualizzato come l’area del parallelogramma costruito
sui due vettori unitari; più tenderà ad essere allineato alla direzione minore sarà il modulo di
, sempre uscente dal piano su cui giacciono gli altri due vettori (Fig. 18).
Fig. 18: Prodotto vettoriale tra e
26
come versore dell’asse di rotazione (Fig. 19):
come angolo di rotazione attorno a che porterebbe il versore di a coincidere con (angolo
compreso tra e ):
Fig. 19: Immagine esplicativa di e
Come si è detto è perpendicolare al piano identificato dai vettori e e rappresenta l’asse di rotazione
per : l’obiettivo del controllo rotazionale è quello di annullare l’angolo , il che porterebbe a coincidere
con , cioè avere la telecamera che punta perfettamente il centroide (Fig. 19).
Per il controllo in traslazione, una grandezza importante da definire è che è la stima di
, l’effettiva
distanza dalla telecamera al centroide lungo quando (Fig. 20).
Fig. 20: Distanza tra telecamera e centroide
27
Per determinare la formula di si ricorre alla relazione prospettica schematizzata in Fig. 21
Fig. 21: Schema della relazione prospettica
Il segmento di lunghezza [m], viene proiettato sul piano immagine come il segmento [pixel].
Moltiplicando per (dimensione caratteristica dei pixel), si ottiene la lunghezza della proiezione in metri.
Si nota che i triangoli e sono simili, avendo l’angolo in comune; si può quindi scrivere:
( 3 )
Dalla ( 3 ) si ricava :
( 4 )
Questa relazione prospettica vale per entrambi i diametri dell’ellisse:
( 5 )
( 6 )
Se la telecamera fosse posta esattamente davanti all’ellissoide con il piano immagine parallelo al piano
formato dagli asse maggiore e minore dell’ellissoide e ne puntasse il centroide, basterebbe utilizzare una sola
di queste due relazioni per stimare adeguatamente la profondità. Tuttavia, queste condizioni potrebbero non
Piano
immagine
B
C
D
E
28
essere rispettate durante il movimento. Per ridurre l’errore sulla stima della profondità che si avrebbe
utilizzando solo una delle due relazioni, quindi, si decide di eseguire una media tra le due stime definite nella
( 5 ) e nella ( 6 ), ottenendo la seguente relazione:
( 7 )
2.3 Ispezione Preliminare
Come è stato accennato la prima fase dell’algoritmo consiste nel portare l’oggetto di interesse nel
campo visivo dell’immagine. In particolare, per necessità legate a fasi successive, occorrerà portare
il centroide dell’oggetto già nella vicinanza del centro dell’immagine (entro una certa zona di
tolleranza).
2.3.1 Routine di osservazione
Nella fase iniziale il robot e la telecamera (solidale all’ultimo giunto) si trovano in una posizione di “riposo”
e, nella maggioranza dei casi, non è immediatamente possibile visualizzare l’oggetto obiettivo sul piano
immagine. Per questo motivo occorre definire una routine di movimentazione tale da rendere possibili le fasi
successive dell’algoritmo.
I requisiti per una buona routine di osservazione sono i seguenti:
deve permettere al campo visivo della telecamera di spaziare in tutte le possibili direzioni di raccolta
attorno al robot (è importante non avere punti ciechi per non mancare l’obiettivo)
deve essere veloce nel raggiungere la posizione desiderata (evitando movimenti inutili e senza
ripercorrere zone di ricerca già sondate)
deve rispettare i vincoli di massima escursione dei giunti del robot
deve essere possibilmente di facile implementazione (comandi in cinematica diretta sono
computazionalmente più economici di complesse traiettorie per punti in cinematica inversa)
A fronte delle necessità di cui sopra è stata proposta una procedura che sfrutta in cinematica diretta due soli
gradi di libertà dello specifico robot utilizzato (YouBot): il primo giunto di rotazione attorno all’asse
29
verticale ed il quarto giunto, che ha la funzione di alzare progressivamente il campo visivo una volta
completata ogni escursione tra i limiti estremi del primo grado di libertà (Fig. 41).
Il robot procede in pratica ruotando (per tutta l’escursione possibile o per un angolo imposto) ripetutamente
attorno alla base, alzando ad ogni nuova rotazione il campo visivo della telecamera grazie al quarto giunto.
Per permettere di esplorare ogni posizione visibile è stata impostata, per gli altri gradi di libertà, una posa che
permettesse di avere l’end-effector (e quindi la telecamera) approssimativamente centrato sull’asse di
rotazione del primo giunto (è stato dimostrato empiricamente che, come ragionevole aspettarsi, ciò
minimizza possibili punti ciechi).
I dettagli concernenti movimentazione angolare delle successive iterazioni sarà descritta nel dettaglio nella
sezione di implementazione Matlab dell’algoritmo.
2.3.2 Image processing
I dettagli dell’algoritmo di processamento immagine sono chiariti in Appendice 9, per il momento è
importante chiarire quali siano i parametri di interesse per il ciclo di osservazione:
Viene introdotta una variabile booleana che indica semplicemente il fatto che vi sia o
meno un certo numero di pixel nell’immagine associabili per colore all’oggetto obiettivo (se almeno
una certa parte dell’oggetto è nel campo visivo viene restituito 1).
Se è soddisfatta la condizione sulla presenza di una porzione sufficiente dell’oggetto nell’immagine
scattata vengono calcolate le coordinate del centroide .
Le immagini vengono scattate periodicamente durante le rotazioni del primo giunto, con spaziatura tale da
non sondare in modo eccessivo zone già visionate. Si è verificato che, al fine di minimizzare i passaggi di
rotazione del quarto giunto (di innalzamento) è buona cosa ruotare di 90° la telecamera (utilizzando il quinto
giunto) in modo da avere in campo visivo più ampio in direzione verticale.
2.3.3 Arresto e criteri di uscita dall’osservazione
Volendo impostare la fase di osservazione come un ciclo da interrompere appena ottenuta una condizione
accettabile per la continuazione dell’algoritmo è necessario progettare opportune condizioni di uscita dalla
routine.
30
Sulla base delle necessità applicative sono stati scelte le seguenti regole per le iterazioni (devono valere