• Non ci sono risultati.

SVILUPPO DI UN SISTEMA BASATO SU LASER SCANNER DI AUSILIO ALLA MOVIMENTAZIONE DI

N/A
N/A
Protected

Academic year: 2021

Condividi "SVILUPPO DI UN SISTEMA BASATO SU LASER SCANNER DI AUSILIO ALLA MOVIMENTAZIONE DI"

Copied!
68
0
0

Testo completo

(1)

UNIVERSIT ` A DEGLI STUDI DI PARMA

FACOLT `A DI INGEGNERIA

CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA

SVILUPPO DI UN SISTEMA BASATO SU LASER SCANNER DI AUSILIO ALLA MOVIMENTAZIONE DI

CONTAINER MEDIANTE GRU A PORTALE

DEVELOPMENT OF A LASER SCANNER BASED SUPPORT SYSTEM FOR HARBOR CONTAINER CRANE

Relatore:

Chiar.mo Prof. Stefano Caselli

Correlatori:

Dott. Ing. Dario Lodi Rizzini

Candidato:

Andrea Lattanzi

ANNO ACCADEMICO 2009–10

(2)

Ai miei genitori e a Laura

(3)

Indice

Introduzione 1

1 Il problema dell’automazione portuale 3

1.1 Stato dell’arte dei sistemi di automazione portuale . . . 4

1.2 Obiettivi del lavoro di tesi. . . 7

2 Sistema di supporto alle decisioni 10 2.1 Interfaccia video . . . 11

2.2 Elaboratore . . . 12

2.3 Laser scanner . . . 13

2.3.1 Considerazioni generali sui laser scanner . . . 14

LMS511 . . . 16

LMS111 . . . 18

3 Realizzazione del prototipo da laboratorio 20 3.1 Il manipolatore . . . 20

3.2 Laser scanner . . . 23

3.3 Assemblaggio del prototipo . . . 24

4 Ricostruzione del profilo di carico 26 4.1 Acquisizione dati sensoriali . . . 29

4.2 Conversione coordinate . . . 30

ii

(4)

Indice iii

4.3 Discretizzazione e segmentazione . . . 33

4.4 Fusione delle scansioni . . . 34

4.4.1 Serializzazione punti . . . 36

4.4.2 Creazione nuovi segmenti . . . 36

4.4.3 Rifinitura . . . 38

4.4.4 Aggiornamento . . . 38

4.5 Localizzazione postazioni. . . 39

4.6 Funzionalit`a opzionali . . . 39

4.6.1 Calibrazione . . . 40

4.6.2 Visuale angolare . . . 41

4.6.3 Salvataggio file di log . . . 41

4.6.4 Movimentazione autonoma. . . 43

5 Risultati 45 5.1 Valutazione dell’accuratezza . . . 46

5.2 Simulazione di movimenti di deposito e prelievo. . . 48

5.3 Tempi di esecuzione . . . 50

6 Conclusioni 51

A Progettazione supporto meccanico per Robot-Laser 53

B Classe di protezione IP 56

Bibliografia 59

(5)

Elenco delle figure

1.1 Confronto tra la prima nave portacontainer e quella di ultima genera-

zione. . . 3

1.2 Schematizzazione dell’integrazione dell’automazione in ambito portuale. 5 1.3 Gru Loader con gru ASC annessa. . . 5

1.4 Esempio del sistema di supporto alle decisioni. . . 8

1.5 Gru Portainer in azione su una nave portacontainer. . . 9

2.1 L’interfaccia realizzate per il sistema. . . 12

2.2 Dispositivi video presenti in cabina gru, da poter usare anche per il sistema di supporto. . . 13

2.3 Carrello di una gru portainer con evidenziato dove poter installare il sensore laser. . . 14

2.4 Sick LMS 511 . . . 17

2.5 Funzionamento della tecnologia 5-eco . . . 17

2.6 Sick LMS 111 . . . 18

3.1 Comau Smart Six . . . 21

3.2 Controllore C4G . . . 21

3.3 Sick LMS 400 . . . 23

3.4 Prototipo con sensore laser installato al polso del manipolatore Smart Six. . . 25

4.1 Passi dell’algoritmo sviluppato . . . 27

iv

(6)

Elenco delle figure v

4.2 Direzione di movimento del sensore parallela al piano. . . 28

4.3 Terne dei tre sistemi di riferimento . . . 31

4.4 Sistema polare (in blu) e cartesiano (in rosso) . . . 32

4.5 Segmentazione, in gialli i singoli punti e in blu il segmento ricavato . 34 4.6 Algoritmo fusione . . . 35

4.7 Aggiornamento finale . . . 38

4.8 Postazioni individuate e consigliate. . . 39

4.9 Angolo di rotazione rispetto all’asse Z del laser scanner . . . 40

4.10 Esempio modifica ampiezza del cono di visuale e del suo orientamento 42 4.11 Deposito container autonomo . . . 44

5.1 Esempio di funzionamento del sistema su una scena ricreata in labora- torio. . . 46

5.2 Simulazione di posizionamento di un oggetto nella posizione selezio- nata dall’interfaccia. . . 49

A.1 Supporto progettato . . . 54

A.2 Intero supporto con laser e pinza: a) piano scansione ortogonale alla presa della pinza; b)piano scansione ortogonale alla presa della pinza. 54 A.3 Offset centro laser rispetto alla terna di polso . . . 55

(7)

Elenco delle tabelle

1.1 Classi di appartenenza delle gru portainer. . . 8

2.1 Descrizione caratteristiche dei laser scanner . . . 15

2.2 Caratteristiche LMS511 . . . 18

2.3 Caratteristiche LMS111 . . . 19

3.1 Caratteristiche del robot Comau Smart Six . . . 22

3.2 Caratteristiche del controllore industriale C4G . . . 22

3.3 Caratteristiche LMS 400 . . . 24

5.1 Caratteristiche del notebook utilizzato per la realizzazione del simulatore 45 5.2 Errore medio e deviazione standard calcolati sulla differenza delle al- tezze. . . 47

5.3 Statistiche sugli errori calcolati tra ogni scansione e la ricostruzione completa. . . 48

5.4 Statistiche sugli errori calcolati tra ogni scansione e la ricostruzione completa, utilizzando un supporto per laser scanner soggetto a vibrazioni. 48 5.5 Statistiche sugli errori calcolati con e senza la calibrazione. . . 48

5.6 Tempi medi sull’esecuzione dell’algoritmo su singola scansione, senza e con la ricerca di posizione. . . 50

A.1 Offset del centro del laser rispetto all’origine della terna di polso . . . 54

B.1 Protezione dalla polvere . . . 57

vi

(8)

Elenco delle tabelle vii

B.2 Protezione dall’acqua . . . 57 B.3 Protezione a)contro l’accesso umano e b) del materiale . . . 58

(9)

Introduzione

La robotica, pur essendo una branca fondamentalmente ingegneristica, riunisce in se molteplici discipline, da quelle puramente umanistiche fino a quelle scientifiche, e tro- va pertanto applicazione in molti ambiti tra cui: la biorobotica e la robotica biomedica- le nell’ambito medico; l’arte robotica, la microrobotica e la robotica di intrattenimento per scopi ludici o educativi; la domotica e la robotica di servizio per l’automatizza- zione della casa e l’ambiente; la robotica militare, spaziale e marina per proteggere l’uomo in situazioni pericolose; ed infine la robotica industriale che sostituisce l’uomo nelle operazioni faticose e ripetitive in ambito industriale.

Un sistema robotico `e definito tale se `e dotato di apparati sensoriali ed azionamen- ti, ed `e in grado di interconnettere in modo intelligente la percezione con l’attuazione al fine di portare a termine il compito assegnatogli. Appartengono a questa catego- ria anche la tele-operazione, la supervisione e tutti le attivit`a l’uomo `e supportato da dispositivi intelligenti.

Possiamo distinguere tra la robotica da utilizzarsi in ambienti strutturati e non strut- turati. Nel primo caso l’ambiente di lavoro viene costruito intorno al robot, condizione che gli permette di conoscere la posizione degli oggetti con cui deve interagire senza dover dipendere eccessivamente dalla precisione della percezione. Questi sistemi, per quanto detto, sono difficilmente adattabili ad essere utilizzati in contesti differenti da quello nativo.

Negli ambienti non strutturati, invece, i robot devono essere in grado di riconoscere la posizione degli oggetti all’interno dell’area operativa, e devono essere in grado di

1

(10)

Introduzione 2

riuscire a trovare autonomamente una soluzione ad ogni problema che incontra. Questi sistemi robotici presentano una difficolt`a maggiore nella progettazione e nello sviluppo rispetto al caso precedente, ma con il vantaggio di poter essere utilizzati anche in applicazioni diverse da quelle per cui `e stato progettato.

L’ambiente portuale `e un ambiente tradizionalmente strutturabile in cui per`o si vo- gliono introdurre i benefici derivati dai sistemi robotici dotati di caratteristiche proprie degli ambienti non strutturati.

Il lavoro di questa tesi si colloca appunto nell’ambito portuale e ha, almeno co- me ambizione, l’obiettivo di essere un valido sistema di ausilio durante le operazioni di carico e scarico di container dalle navi alla banchina. L’esposizione della tesi svi- luppata `e cos`ı suddivisa in sei capitoli: nel capitolo1, “Il problema dell’automazione portuale”, si tratta dei problemi e dei vantaggio derivati dall’automazione nei terminal portuali; nel capitolo2, “Sistema di supporto alla decisioni”, viene descritto l’obiettivo della tesi e gli strumenti necessari. Per quanto riguarda il capitolo 3, “Realizzazione del prototipo da laboratorio”, verranno descritti i sistemi hardware e software utiliz- zati nella realizzazione di un allestimento prototipale; nel capitolo 4, “Ricostruzione del profilo di carico”, viene descritto in modo dettagliato l’algoritmo sviluppato per il sistema. Infine nel capitolo5, “Risultati”, verranno illustrati i risultati ottenuti du- rante i testi effettuati, e nel capitolo 6, “Conclusioni e sviluppi futuri” ci saranno le considerazioni sull’attivit`a svolta.

(11)

Capitolo 1

Il problema dell’automazione portuale

Da quando, intorno agli anni ’70, il container fece il suo ingresso nel mondo del com- mercio e dei trasporti, esso `e stato utilizzato per contenere un numero sempre maggiore di materiali, sia materie prime che prodotti finiti. Questo grande successo ha portato al- la costruzione di navi specializzate nel solo trasporto di questi contenitori, dalla prima porta-container ricavata da una petroliera dismessa, la Ideal-X capace di trasportarne fino a 55, alle ultime navi moderne e tecnologiche come le “sorelle” Eleonora, Estelle ed Emma Maersk, capaci di trasportare oltre 11.000 TEU1con un equipaggio di solo 13 persone.

Figura 1.1: Confronto tra la prima nave portacontainer e quella di ultima generazione.

Il grande guadagno per gli armatori di queste enormi porta-container non deriva tanto dalla grande quantit`a di container trasportati in un singolo viaggio, ma dal nume-

1Acronimo di Twenty-Foot Equivalent Unit `e la misura standard di volume nel trasporto dei container ISO.

3

(12)

Capitolo 1. Il problema dell’automazione portuale 4

ro di viaggi che si riesce a fare nel minor tempo possibile; considerando che il tempo impiegato nella navigazione rimane tale, bisogna cercare di diminuire il pi`u possibile quello impiegato nelle operazioni di carico e scarico.

1.1 Stato dell’arte dei sistemi di automazione portuale

L’automazione dei terminali porta necessariamente all’aumento della produttivit`a e al- la diminuzione dei costi di logistica. Il terminal ETC di Rotterdam e il CTA di Ambur- go sono esempi tipici dell’automazione dei terminal. Questi terminale nel 2009 hanno movimentato rispettivamente 10 milioni e 7 milioni di TEU posizionandosi ai primi posti in Europa2. In essi la gestione dello stoccaggio dei container `e automatizzata con gli ASC (Automatic Stacking Crane) e il trasporto dalle “Loader 3” all’area di stoc- caggio `e gestita dagli AGV (Automated Guided Vehicle), approfonditi negli articoli [2]

e [8] . Lo schema1.2mostra la suddivisione tra operazioni manuali e automatizzate in un terminal come quelli descritti.

Molto spesso le Loader sono dotate di una ASC per velocizzare le operazioni, co- me `e mostrato in figura 1.3. L’operatore deposita il container appena scaricato in un parcheggio temporaneo dal quale poi la ASC provveder`a autonomamente a caricarlo sul sistema di trasporto AGV. Nelle operazioni di carico avviene esattamente il contra- rio. Altri terminal tecnologicamente avanzati sono il Thamesport in Inghilterra, il PPT a Singapore.

Se da una parte l’automazione portuale porta ad un aumento dei profitti, dall’altra i terminal pi`u avanzati hanno dovuto riprogettare da zero l’intera area portuale oltre a dover cambiare i vecchi macchinari con quelli automatici. Ci`o comporta, ovviamente, un grande esborso iniziale che non tutti i porti possono sopportare. A titolo di esempio si pensi che una gru “Loader” ha costi tali da venire ammortizzata in piani di almeno 20 anni.

2Statistiche presenti in [10]

3Gru addette alle operazioni di carico e scarico dalla banchina alla nave.

(13)

Capitolo 1. Il problema dell’automazione portuale 5

AutomaticoASC

Figura 1.2: Schematizzazione dell’integrazione dell’automazione in ambito portuale.

Figura 1.3: Gru Loader con gru ASC annessa.

(14)

Capitolo 1. Il problema dell’automazione portuale 6

Nella consultazione delle documentazion

Durante gli studi preliminari sono stati cercati, sia in ambito scientifico che indu- striale, riferimenti a quali dispositivi sono maggiormente utilizzati nella ricostruzione di ambientali, sia per fornire ausilio al personale addetto ai lavori sia per l’automazio- ne.

In [1], ad esempio, viene utlizzata la tecnologia RFID, applicando agli oggetti un’etichetta elettronica, capace di inviare su determinate frequenze informazioni sul- l’oggetto stesso, `e possibile determinare, mediante il relativo ricevitore di frequenze, se in un determinata zona dell’ambiente `e presente o meno l’oggetto ricercato. Un’altra tecnica, presentata in [3], utilizza la visione artificiale mediante videocamere per il ri- conoscimento degli oggetti presenti nell’ambiente. In [4] `e presentato un sistema per la ricostruzione tridimensionale dell’area di interesse che effettua anche la pianificazione del moto della gru. Tale sistema impiega diverse tipologie di sensori, quali ad esempio sensori laser, ultrasonici e videocamere. Lo spazio viene rappresentato tramite una griglia tridimensionale di occupazione sulla quale viene pianificato il moto.

La scelta dei sensori viene fatta considerando il grado di dettaglio e quali infor- mazioni sono importanti per il contesto in cui si deve utilizzare l’applicazione. La tecnologia RFID `e molto valida se si opera in un ambiente fortemente strutturato in cui ogni oggetto/ostacolo `e dotato dell’etichetta elettronica e se non si vuole conoscere con precisione la posizione precisa dell’oggetto considerato. Per quanto riguarda la visione artificiale presenta livello di dettaglio variabili a seconda del numero di video- camere utilizzate; infatti utilizzando pi`u di una videocamere, e se queste sono tra loro calibrate, `e possibile, oltre a ricreare visivamente la scena, avere informazioni anche sulla distanza a cui si trovano.

Queste due metodologie sono state scartate nella soluzione al problema affrontato per vari motivi. Per quanto riguarda il RFID fornisce un livello di dettaglio troppo basso, inoltre bisognerebbe dotare ogni singolo container presente al mondo delle eti- chette. L’utilizzo delle videocamere, invece, fornirebbe un livello di dettaglio appro- priato, se non maggiore di quello necessario, ma renderebbe molto pi`u complessa la

(15)

Capitolo 1. Il problema dell’automazione portuale 7

parte di implementazione del software di questione, oltre a dover utilizzare pi`u sensori per ogni gru.

Per questi motivi si `e scelto di utilizzare i sensori laser, che forniscono un appro- priato livello di dettaglio e con una precisione molto maggiore alle tecniche descritte precedentemente.

1.2 Obiettivi del lavoro di tesi

Il progetto realizzato nell’ambito di questa tesi vuole fornire uno strumento a supporto alle operazioni portuali. Si tratta di uno strumento software concepito per assistere l’operatore della gru portuale nelle operazioni di carico e scarico. Esso pu`o consentire di ridurre i tempi delle operazioni di manovra dei container e di prevenire urti ed errati posizionamenti. Il sistema di supporto alle decisioni pu`o essere installato sulle strutture esistenti, con costi trascurabili rispetto al valore complessivo dell’impianto.

Il sistema `e basato sull’impiego di un sensore avanzato, un laser scanner, e sul- la elaborazione e presentazione in forma grafica delle informazioni all’operatore. Si tratta sostanzialmente di un sistema “Interfaccia Uomo-Macchina” per un sistema ro- botico tele-operato. Ai fini dimostrativi, nell’ambito di questa tesi `e stato realizzato un prototipo basato su robot manipolatore e laser scanner.

In figura1.4 `e mostrato un esempio del funzionamento del sistema in una simula- zione digitale.

Le gru portuali su cui si dovrebbe installare e utilizzare il software di supporto sono le gru a portale, in special modo le cos`ı dette Portainer mostrata in figura 1.5.

Queste gru sono divise in classi in base alla loro grandezza. Attualmente le classi di appartenenza, che prendono il nome dalle classi delle navi pi`u grandi su cui posso- no operare, sono quattro: “FEEDER”, “PANAMAX”, “POST-PANAMAX”, “SUPER POST-PANAMAX”. In tabella1.1sono mostrati i dati relativi allo sbraccio della parte sospesa della gru, all’altezza sotto lo spreader4 e al numero di container in larghezza

4Strumento di aggancio per container.

(16)

Capitolo 1. Il problema dell’automazione portuale 8

Figura 1.4: Esempio del sistema di supporto alle decisioni.

sulla nave. Dalla tabella di deduce anche le distanze che il laser scanner deve poter leggere; a tale misure vanno aggiunte anche la profondit`a a cui si trova il fondo della stiva della nave, che solitamente sono supera i 20 metri.

Classe Sbraccio Altezza sotto lo spreader Numero container

FEEDER 30 metri ≤25 metri 10

PANAMAX 32 metri ≤30.5 metri 13

POST-PANAMAX 48 metri ≤35 metri 17

SUPER POST-PANAMAX 62 metri ≤41 metri 18-22

Tabella 1.1: Classi di appartenenza delle gru portainer.

La decisione dell’autorit`a portuale su quale classe di portainer utilizzare viene pre- sa in base alla nave pi`u grande che pu`o accogliere nelle proprie banchine, in base soprattutto all’altezza del fondale del bacino portuale.

(17)

Capitolo 1. Il problema dell’automazione portuale 9

Figura 1.5: Gru Portainer in azione su una nave portacontainer.

(18)

Capitolo 2

Sistema di supporto alle decisioni

Il lavoro di tesi qui presentato pu`o essere inserito tra i “sistemi di supporto alle de- cisioni (DSS)”, cio`e sistemi che permettono di aumentare l’efficacia dell’analisi di un problema in quanto forniscono supporto a coloro che devono prendere decisioni. La funzione principale di un DSS `e quella di estrarre in poco tempo e in modo versatile le informazioni utili ai processi decisionali.

Nel problema affrontato, il supporto alla decisione da prendere `e dove conviene inserire un container rispetto a quelli gi`a posizionati. Posizionando un sensore laser scanner sul carrello della gru, in modo che si muova solidalmente con questi, con il piano di scansione parallelo al movimento e ortogonale al piano reale, si vuole rappre- sentare la scena inquadrata mediante dei profili per permettere al sistema di fornire dei risultati che aiutino e comprensibili all’operatore in cabina. Riassumendo il tutto, il sistema, acquisendo i dati relativi alla scena di interesse, riesce a indirizzare l’opera- tore, mediante uno schermo, su dove posizionare il container seguendo i criteri decisi preventivamente.

I componenti hardware che occorre installare sulla gru per la realizzazione del si- stema sono essenzialmente due: un calcolatore per l’elaborazione dei dati e la visualiz- zazione a video e un laser scanner per l’acquisizione dei dati. I componenti software dell’applicazione sviluppata invece sono: l’interfaccia, con la quale l’operatore pu`o

10

(19)

Capitolo 2. Sistema di supporto alle decisioni 11

interagire con il sistema, e il modulo di elaborazione e analisi vero e proprio che ope- ra sui dati sensoriali. Se la gru non dovesse disporre di un sistema odometrico per determinare la posizione del carrello, bisogner`a provvederne all’installazione.

In questo capitolo sono descritti i sistemi hardware e l’interfaccia realizzata, men- tre alla descrizione dettagliata dell’algoritmo di elaborazione dei dati sensoriali verr`a dedicato il capito4.

2.1 Interfaccia video

L’interazione tra il sistema e l’operatore avviene tramite un’interfaccia grafica. L’out- put standard visualizzato mostra il profilo complessivo dei container posti sotto il brac- cio della gru, ottenuto dalle continue iterazioni del sistema. I profili sono individuati da segmenti orizzontali che schematizzano il piano superiore dei contenitori. Ulteriori in- formazioni possono essere abilitate dall’operatore e comprendono: la collocazione in cui si consiglia di posizionare il successivo container, l’altezza del profilo espressa se- condo l’unit`a di misura pi`u consona. Tramite l’interfaccia `e possibili anche modificare alcuni parametri del sistema, come ad esempio il cono di visione del laser scanner. In- fine `e possibile abilitare la registrazione dei file di “log”, sia dei dati acquisiti, utile per lo sviluppo o la manutenzione del programma offline, sia delle operazioni compiute nel caso si dovessero incontrare dei problemi.

Come illustrato in figura 2.1, l’interfaccia `e divisa in tre zone: nella prima viene visualizzato il risultato dell’elaborazione, mostrando i profili rilevati fino a quel mo- mento, ed eventualmente le locazioni in cui si consiglia di posizionare un container, numerate in ordine crescente secondo una qualche politica scelta in precedenza. Nella seconda si permette all’operatore di modificare i parametri del sistema quali l’angolo di visione del laser scanner oppure l’abilitazione o meno dei sistemi opzionali descritti prima. La terza sezione permette di impartire alla gru i movimenti da far eseguire al carrello, se spostarlo in avanti oppure in indietro. Questa parte `e stata realizzata per lo sviluppo in laboratorio del prototipo. Nella realt`a i movimenti verranno azionati tra-

(20)

Capitolo 2. Sistema di supporto alle decisioni 12

mite il pi`u consono e ormai consolidato controller gestito dall’operatore. Il modulo di commando rimane comunque importante per poter effettuare i test in modalit`a offline utilizzando i log salvati in precedenza.

Figura 2.1: L’interfaccia realizzate per il sistema.

2.2 Elaboratore

Il calcolatore da inserire nella cabina di controllo non deve soddisfare particolari speci- fiche. Le uniche imposizioni riguardano la presenza di porte per collegare il computer al sistema laser scanner e al sistema odometrico della gru, per ricevere in ingresso i dati che vengono trasmessi, e la presenza, di uno schermo video. Si consiglia la presenza di uno schermo “touchscreen” per rendere pi`u veloci le interazioni dell’operatore con il sistema. Molto spesso le cabine delle gru sono gi`a dotate di elaboratori che visualizza- no alcune informazioni riguardanti l’intera gru, come `e mostrato in figura2.2, quindi sarebbe necessario esclusivamente integrare l’applicazione software di supporto alle decisioni nel calcolatore di bordo, se questo soddisfa le specifiche.

(21)

Capitolo 2. Sistema di supporto alle decisioni 13

Figura 2.2: Dispositivi video presenti in cabina gru, da poter usare anche per il sistema di supporto.

2.3 Laser scanner

Il sensore laser scanner dovr`a essere montato dalla parte opposta della cabina rispetto al carrello della gru, nella posizione pi`u avanzata possibile. Tale configurazione per- mette di avere una visuale il pi`u possibile diversa da quella dell’operatore, e di fornire quindi informazioni aggiuntive rispetto a quelle di cui egli pu`o disporre, oppure in- formazioni difficili da valutare “ad occhio”. La scelta del laser scanner da usare in questa applicazione `e fatta trovando dei compromessi tra la frequenza di scansione, l’accuratezza delle misure e il range al quale deve operare. Inoltre il sensore deve ave- re una interfaccia di comunicazione abbastanza veloce e il pi`u possibile tollerante ai disturbi che potrebbero essere presenti lungo il percorso di trasmissione.In figura2.3

`e presentato un esempio di dove potrebbe essere posizionato il laser scanner.

(22)

Capitolo 2. Sistema di supporto alle decisioni 14

Figura 2.3: Carrello di una gru portainer con evidenziato dove poter installare il sensore laser.

2.3.1 Considerazioni generali sui laser scanner

In questa sezione viene fornita una descrizione sommaria dei dispositivi laser scanner, e vengono discusse le scelte fatte per la realizzazione del progetto.

I sensori laser presi in considerazione sono tutti modelli della Sick1, una delle pi`u affermate societ`a a livello mondiale per la produzione di sensori dedicati all’automa- zione industriale e di processo.

La scelta del laser scanner viene fatta trovando dei compromessi tra le caratte- ristiche. Infatti non esiste un unico criterio per stabilire se conviene usare un laser scanner piuttosto che un altro; infatti una propriet`a che pu`o essere fondamentale per un’applicazione `e irrilevante per un’altra, e viceversa. Le principali caratteristiche dei dispositivi analizzati in questa tesi sono elencate e descritte in tabella2.1.

Per questo progetto si `e tenuto conto di alcuni fattori determinanti nella scelta del laser scanner, che riguardano dove il sensore laser deve essere utilizzato, la distanza massima da acquisire, la frequenza con cui vengono effettuate le letture. Quest’ultimo fattore viene considerato non tanto perch´e si vuole effettuare un maggior numero di letture, ma per acquisire una singola scansione nel minor tempo possibile; la frequen- za deve essere proporzionale alla velocit`a di moto del carrello, dove vi `e montato il laser scanner. Se la frequenza fosse troppo bassa in proporzione alla velocit`a di mo-

1Informazioni ottenute da[7]

(23)

Capitolo 2. Sistema di supporto alle decisioni 15

Caratteristica Descrizione

Tipo di applicazione

determinato dalla distanza relativa degli oggetto rispetto al laser scanner, pu`o es- sere corto, medio o lungo raggio; oppure alla risoluzione desiderata, standard o alta Campo applicativo

contesto in cui trova applicazione il la- ser scanner, cio`e per interno, esterno o sicurezza

Range operativo range in cui il laser scanner opera correttamente

Visione angolare l’ampiezza della sua visuale, pu`o essere fissa o variabile

Risoluzione angolare lo step con cui viene suddivisa ogni scansione; pu`o essere fissa o variabile Tipo collegamento

modo di interfacciamento del laser scan- ner con un dispositivo; pu`o essere seriale, ethernet, CAN, Usb

Frequenza scansione numero di scansioni in un secondo, pu`o essere fissa o variabile

Classe di protezione IP grado di protezione dai fattori ambientali Peso e dimensioni ingombro del sensore

Tabella 2.1: Descrizione caratteristiche dei laser scanner

(24)

Capitolo 2. Sistema di supporto alle decisioni 16

to, non si potrebbe pi`u considerare statica la scena durante l’acquisizione, cosa che comprometterebbe le ipotesi su cui viene basata la realizzazione del progetto.

Nella scelta dei tipi di connessione `e da preferirsi l’interfaccia Ethernet rispetto alla seriale per svariati motivi, tra cui, sicuramente, la velocit`a di trasferimento dati, ma anche per la possibilit`a di poter modificare i parametri del laser scanner anche durante l’esecuzione del software, anche da postazioni remote grazie alla possibilit`a di collegare i sensori a degli switch o router.

Verranno ora esposti alcuni modelli di laser scannerSick, ritenuti appropriati per l’utilizzo nell’applicazione oggetto della tesi. Oltre alle motivazioni citate poco sopra per quanto riguarda il tipo di connessione, in questa applicazione la velocit`a e l’affida- bilit`a diventano fattori cruciali a causa della lunghezza del cavo, che deve attraversare tutto il braccio della gru, dove potrebbe essere soggetto anche a dei disturbi aggiuntivi.

LMS511

Sicuramente il laser scanner con le caratteristiche migliore per questo contesto `e il LMS511, mostrato in figura2.4, strumento di ultima generazione che utilizza le inno- vazioni pi`u all’avanguardia del settore e i vantaggi che ne derivano. Esso `e ideale per applicazioni che richiedono velocit`a, accuratezza e sicurezza. Questo sensore `e do- tato della tecnologia 5-eco, che lo rende maggiormente indipendente dalle condizioni atmosferiche, grazie alla possibilit`a di ricevere fino a 5 echi per ogni impulso. Ci`o per- mette di eliminare tutti i falsi positivi causati ad esempio da pioggia, nebbia, polvere e dai vetri. In figura2.5si nota come l’impulso, pur attraversando vari strati di possibile interferenza, riesca comunque a raggiungere l’oggetto reale.

In tabella2.2sono elencate le propriet`a del sensore LMS511.

(25)

Capitolo 2. Sistema di supporto alle decisioni 17

Figura 2.4: Sick LMS 511

Figura 2.5: Funzionamento della tecnologia 5-eco

(26)

Capitolo 2. Sistema di supporto alle decisioni 18

Tipo di applicazione Alta risoluzione e medio raggio

Campo applicativo Ondoor

Campo visivo 190

Frequenza scansione 25Hz, 35Hz, 50Hz, 75Hz, 100Hz

Range operativo 0...80m

Risoluzione angolare 0.167, 0.25, 0.333, 0.5, 0.667, 1

Errore statistico ±7mm

Interfaccia collegamento

Ethernet (TCP-IP) Can Bus

Usb

Classe di protezione IP67

Peso 3.7Kg

Dimensioni (L x A x P) 160mmx155mmx185mm Tabella 2.2: Caratteristiche LMS511

LMS111

Altro sensore laser che potrebbe essere usato nel progetto `e il LMS111, rappresentato in figura 2.6. Tale sensore tuttavia ha una frequenza di scansione non troppo eleva- ta. Questi sensori sono piccoli e poco pesanti, propriet`a che permette loro di essere montati in quasi tutte le posizioni desiderate.

Figura 2.6: Sick LMS 111

In tabella2.3sono elencate le propriet`a del sensore LMS111.

(27)

Capitolo 2. Sistema di supporto alle decisioni 19

Tipo di applicazione Corto raggio Campo applicativo Outdoor

Campo visivo 270

Frequenza scansione 25Hz, 50Hz Range operativo 0.5...20m Risoluzione angolare 0.25, 0.5 Errore statistico ±12mm Interfaccia collegamento

Serial (RS-232, RS-422) Ethernet (TCP-IP) Can Bus

Classe di protezione IP67

Peso 1.1Kg

Dimensioni (L x A x P) 105mmx102mmx152mm Tabella 2.3: Caratteristiche LMS111

(28)

Capitolo 3

Realizzazione del prototipo da laboratorio

Per la sperimentazione in laboratorio, non potendo disporre di una gru reale, `e stato ricreato un ambiente in scala utilizzando il manipolatore Smart-Six della Comau, per simulare il movimento del carrello della gru,e il laser scanner Lms 400 della Sick, sfrut- tando gli apparati gi`a disponibili presso il laboratorio di Robotica del Dipartimento di Ingegneria dell’Informazione. In questo capitolo vendono descritti i due strumenti, e viene presentata la loro integrazione nel prototipo dimostrativo.

3.1 Il manipolatore

La Comau `e una societ`a italiana del gruppo Fiat, nata durante gli anni in cui prendeva sempre pi`u forza la robotica industriale nelle catene di montaggio, soprattutto nelle case automobilistiche.

Lo Smart-Six1, figura3.1, `e il pi`u piccolo, ma non per questo meno affidabile, della gamma di robot Comau. Esso `e dotato di sei giunti rotoidali, con un design partico- larmente compatto e adatto a tutte le operazioni che richiedono movimenti veloci, alta

1Informazioni ottenute da[6]

20

(29)

Capitolo 3. Realizzazione del prototipo da laboratorio 21

precisione e un alto grado di ripetibilit`a. Il robot inoltre dispone di una capacit`a di carico di 6 kg.

Figura 3.1: Comau Smart Six

La Comau fornisce insieme al manipolatore l’unit`a di controllo C4G, presentato in figura 3.2, che consente di utilizzare al meglio il robot, con programmi scritti in linguaggio PDL2.

Figura 3.2: Controllore C4G

La gestione del controllore pu`o essere effettuata sia tramite il WiTP, un telecoman- do collegato direttamente al blocco C4G, sia tramite connessioni LAN.

(30)

Capitolo 3. Realizzazione del prototipo da laboratorio 22

Nella tabella3.1sono evidenziate le principale caratteristiche dello Smart-Six, e in tabella3.2le caratteristiche dell’unit`a C4G.

Numero assi 6

Carico al polso [Kg] 6

Carico supplem. avambraccio [Kg] 10

Corsa assi (Velocit`a)

1 ±170(140/s) 2 +155− 85(160/s) 3 0− 170(170/s) 4 ±210(450/s) 5 ±130(375/s) 6 ±2700(550/s)

Ripetibilit`a ISO 9283 [mm] 0.05

Raggio massimo orizzontale [mm] 1400 Tabella 3.1: Caratteristiche del robot Comau Smart Six

Architettura PC based Robot Processing Unit Memoria utente 16 Mb

Assi controllabili 10max (20 con unit`a C4G aggiuntiva)

Potenza 400Vac-15% - 480Vac+10%

Frequenza 48- 62 Hz

Tabella 3.2: Caratteristiche del controllore industriale C4G

(31)

Capitolo 3. Realizzazione del prototipo da laboratorio 23

3.2 Laser scanner

Il laser scanner scelto per essere utilizzato nel prototipo `e il LMS 400, mostrato in figura3.3. Le caratteristiche peculiari del sensore sono presenti in tabella3.3.

Figura 3.3: Sick LMS 400

Le caratteristiche che hanno portato alla scelta di questo sensore sono essenzial- mente l’alta frequenza di scansione e il basso errore sulle misurazioni. Infatti questo laser scanner `e stato progettato per applicazioni come il controllo dei pezzi sulle catene industriali, in cui `e fondamentale sia l’alta velocit`a che la precisione dei dati.

Diversamente da quanto accade nel sistema portuale, nel prototipo di laboratorio il laser scanner deve essere in grado di interagire con oggetti ravvicinati, in un range che va dai 60 cm fino a poco oltre il metro. Anche se da manuale il range operativo dichiarato va dai 70 centimetri ai 3 metri, `e stato dimostrato, dopo aver sottoposto il sensore a diversi test, che le prestazioni non si degradano a distanze inferiori a 70 cm, ma bens`ı al di sotto di 50 cm.

E` da sottolineare che oltre al LMS400 potevano essere utilizzati altri modelli di sensori, come ad esempio quelli citati nel capitolo precedente e i modelli concepiti per applicazioni in interno. L’LMS400 `e stato preferito per la maggiore accuratezza e velocit`a di scansione.

(32)

Capitolo 3. Realizzazione del prototipo da laboratorio 24

Tipo Corto raggio

Campo applicativo Indoor

Campo visivo 70

Frequenza scansione 180Hz...500Hz

Range operativo 0.7...3m

Risoluzione angolare 0.125...1

Errore statistico ±3mm

Interfaccia collegamento

Serial (RS-232, RS-422) Ethernet (TCP-IP)

Classe di protezione IP20

Peso 2.3Kg

Dimensioni (L x A x P) 179mmx107mmx130mm Tabella 3.3: Caratteristiche LMS 400

3.3 Assemblaggio del prototipo

Nel prototipo realizzato per lo sviluppo del sistema, si `e dovuto fissare il laser scanner al polso del robot in modo da simulare la connessione del sensore al carrello della gru. Per fare ci`o `e stato progettato un supporto ad-hoc, le cui specifiche sono esposte nell’appendiceA.

I tre componenti, laser scanner, robot ed elaboratore, sono collegati tra di loro tra- mite rete LAN utilizzando il protocollo TCP-IP. L’elaboratore `e in grado di raggiungere gli altri due componenti mediante l’indirizzo IP e la porta che sono loro associati. I driver, utilizzati per stabilire la connessione e per l’interazione, sono basati entrambi sull’utilizzo di socket; entrambi sono stati sviluppati presso il Laboratorio di Robotica Rimlabdell’Universit`a studi di Parma, durante il corso di robotica nello svolgimento dei progetti [5] e [9].

Il driver del laser scanner permette di mandare direttamente i messaggi, sotto for- ma di telegrammi in codice ASCII, al dispositivo stesso, e di ricevere la risposta nello stesso formato. Invece il driver del robot `e costituito di due diversi programmi: un server scritto in linguaggio PDL2, linguaggio nativo del controllore C4G, che imparti- sce i comandi al robot stesso, e un client scritto in linguaggio C++, da utilizzarsi nelle

(33)

Capitolo 3. Realizzazione del prototipo da laboratorio 25

applicazioni come in questo caso, che ha il compito di inviare al server i dati elaborati che contengono la traiettoria da eseguire.

In figura3.4`e presentato il setup sperimentale del sistema dimostrativo, con il laser scanner installato al polso del manipolatore.

Figura 3.4: Prototipo con sensore laser installato al polso del manipolatore Smart Six.

(34)

Capitolo 4

Ricostruzione del profilo di carico

L’obiettivo del sistema `e di ottenere una ricostruzione del profilo di carico per poi pro- porre all’operatore dei consigli sul posizionamento dei container. Il profilo `e rappre- sentato tramite una lista/vettore di segmenti corrispondenti ad oggetti a diverse altezze.

L’algoritmo sviluppato, mostrato in figura4.1, prevede una prima elaborazione dei da- ti in ingresso, quali la scansione laser scanner e l’odometria della gru, per ottenere appunto la ricostruzione dei profili; e una seconda nella quale in base a dei requisiti prestabiliti, si ricerca dove posizionare il container.

Lo sviluppo della parte algoritmica `e stato fatto sotto la condizione alcune ipo- tesi. La prima riguarda il tipo di movimento del carrello, quindi anche del sensore laser ad esso attaccato, che deve avvenire lungo una traiettoria rettilinea, con direzione parallela alla superficie di base. Ci`o permette di considerare tutti i punti di tutte le scansioni appartenenti allo stesso piano; se tale ipotesi non fosse verificata bisogne- rebbe procedere al calcolo della proiezione di ogni singolo punto su di un unico piano di riferimento, oppure rappresentare la scena in modo tridimensionale. Seconda, ma non meno importante, ipotesi viene fatta sulla ortogonalit`a dell’ambiente in cui ope- ra il sistema. Infatti, sia per l’ipotesi precedente, sia per la tipologia regolare degli oggetti presenti nella scena, `e ragionevole pensare di trovare esclusivamente elementi che siano tra loro, e rispetto al piano di scansione, paralleli o ortogonali. Ci`o permet-

26

(35)

Capitolo 4. Ricostruzione del profilo di carico 27

Figura 4.1: Passi dell’algoritmo sviluppato

ter`a durante lo sviluppo dell’algoritmo di effettuare alcune semplificazioni utilizzate durante lo sviluppo.

Nell’ambiente sul quale viene applicato possono presentarsi situazioni in cui alcu- ni oggetti occludono parti della scena impedendo la ricostruzione completa dei profili di altezza. Per riuscire ad avere una ricostruzione completa dell’area di lavoro `e ne- cessario acquisire scansioni laser da punti di osservazioni diversi, per poi essere fuse in un’unica rappresentazione. In figura4.2 viene mostrata la direzione di movimento del sensore laser.

Infine, l’ambiente in si vuole inserire il sistema `e un ambiente che presenta sia caratteristiche statiche che dinamiche; le prime si riscontrano durante la fase di acqui- sizione dei dati dai sensori; ci`o stabilisce che la scansione fatta sia ricostruita fedel- mente alla realt`a. La dinamicit`a del sistema sta invece nel fatto che oltre a spostarsi il laser scanner, scansioni effettuate in istanti diversi, anche con il sensore laser fermo, possono essere differenti perch´e `e stato caricato o scaricato un container.

L’utilizzo delle ipotesi fatte pu`o comportare un funzionamento errato del sistema

(36)

Capitolo 4. Ricostruzione del profilo di carico 28

Figura 4.2: Direzione di movimento del sensore parallela al piano.

nel momento in cui queste venissero a mancare. Ovviamente il deterioramento delle prestazioni del software `e proporzionale a quanto la realt`a differisca dalle ipotesi fatte.

Durante lo sviluppo di `e voluto verificare l’andamento del sistema in condizioni in cui il laser scanner, pur muovendosi parallelamente al terreno, abbia un angolo di imbarda- ta non nullo. Per calcolare il valore di tale angolo pu`o essere effettuata un’operazione di calibrazione, che verr`a descritta in seguito.

La discussione dell’algoritmo `e suddivisa in cinque parti: nella prima si tratter`a dell’acquisizione dei dati sensoriali dal laser scanner e dall’odometria del robot; nella seconda invece verr`a descritto come i dati acquisiti da punti di osservazione diversi, in istanti di tempo diversi, sono fusi insieme e come sono convertiti in un sistema di rife- rimento uniformato. Nella terza parte si descriver`a l’elaborazione delle informazioni per la creazione dei profili ortogonali degli oggetti presenti sulla scena; nella quarta si tratter`a di come eventuali discrepanze nella ricostruzione della scena siano gestite per ottenere una rappresentazione coerente. Infine verr`a descritto come il sistema effettui la ricerca delle posizioni di deposito del container. Come gi`a accennato in precedenza, l’algoritmo viene eseguito durante il movimento del carrello, laser scanner.

(37)

Capitolo 4. Ricostruzione del profilo di carico 29

Prima di procedere alla descrizione dettagliata dell’algoritmo, si vuole descrivere brevemente lo sviluppo di una variante per l’aggiornamento delle scansioni, ma subi- to abbandonata per l’eccessivo uso di memoria, del tempo impiegato e per la scarsa versatilit`a. L’algoritmo, infatti, prevedeva di allocare a priori un’area di memoria pro- porzionale alla lunghezza del piano del quale si vuole la scansione, e alla risoluzione desiderata. Ad esempio, se si considera un piano di 5 metri e si vuole una risoluzione del centimetro servir`a un’area di memoria di almeno 500 elementi, se invece la riso- luzione sale al millimetro, l’area di memoria sar`a composta da almeno 5000 elementi, e cos`ı via. L’elaborazione sarebbe stata eseguita su tutti i punti della memoria, anche su quelli di cui non si avevano ancora informazioni attendibili, sprecando una grossa quantit`a di tempo.

4.1 Acquisizione dati sensoriali

Il sistema realizzato impiega due tipi di informazioni: l’odometria, che indica la posi- zione del laser scanner lungo la direzione di moto, e misure di prossimit`a con il laser scanner. La conoscenza contemporanea dei dati dei due sensori `e una parte cruciale per la buona riuscita di tutto il sistema; trovandoci in un ambiente dinamico, cio`e un ambiente che pu`o cambiare tra istanti di tempo differenti, diventa molto complicato, se non impossibile, collocare nello spazio la posizione del laser scanner, e della relativa scansione, rispetto a quanto gi`a ricostruito. Per come `e stato costruito il sistema, la posizione del laser `e la stessa del carrello, salvo un opportuno offset.

Sapere le coordinate del laser scanner relative ad una certa scansione elimina di fatto il problema. Bisogna considerare che la comunicazione, che avviene attraverso ethernet sia per il laser scanner che, nella realizzazione del simulatore, per il robot, non

`e istantanea, esiste infatti un tempo di latenza tra l’invio della richiesta e la risposta, quindi `e necessario impostare un limite alla velocit`a massima del robot, in modo che l’odometria letta sia effettivamente quella corrispondente al momento della scansione.

(38)

Capitolo 4. Ricostruzione del profilo di carico 30

Le letture sensoriali vengono salvate in una opportuna struttura dati e pronte per essere elaborate nelle fasi successive.

4.2 Conversione coordinate

Sicuramente nella realizzazione del progetto, sia nel vero campo applicativo che nel simulatore,ci si trover`a ad avere a che fare con diversi sistemi di riferimento. Ad esem- pio, il simulatore realizzato presenta tre diversi sistemi di riferimento: uno relativo al robot, uno al laser scanner e l’ultimo alla rappresentazione video, come illustrato in figura4.3.

Dovendo modificare almeno due delle tre terne, `e stato deciso di adattare i sistemi relativi al laser scanner e al robot rispetto a quella della rappresentazione video. Il fatto che gli assi delle tre terne siano tra di loro paralleli o perpendicolari, ha facilitato il lavoro di conversione.

Considerando che al fine del funzionamento dell’algoritmo serve esclusivamente l’informazione del carrello della gru lungo il braccio, e che l’odometria del simulatore restituisce la posizione del laser scanner nei tre assi con la relativa orientazione rispetto alla terna di base, `e stato utilizzato esclusivamente il dato significativo lungo l’asse di traslazione, ovvero l’asse Y , tralasciando tutti gli altri. Le relazioni ricavate per la conversione delle terne sono le seguenti:

Xrappresentazione≡ Yrobot ≡ −Xlaserscanner

Yrappresentazione≡ Ylaser

Ci`o si traduce nel fatto che le coordinate di un punto del mondo, rispetto la terna di base del robot, vengono mappato nella rappresentazione video come nell’esempio sottostante.

x= −xlaserscanner+ yrobot y= ylaserscanner

(39)

Capitolo 4. Ricostruzione del profilo di carico 31

(a) Terna del laser scanner

Z Y

X

(b) Terna del robot

(c) Terna della rappresentazione video Figura 4.3: Terne dei tre sistemi di riferimento

(40)

Capitolo 4. Ricostruzione del profilo di carico 32

I dati trasmessi dal sensore laser scanner sono in coordinate polari, cio`e ogni punto

`e individuato tramite modulo, “R”, e fase, “θ ”, rispetto all’origine degli assi. L’algo- ritmo, invece, utilizza la pi`u classica rappresentazione coordinate cartesiane. Ci`o ha reso necessario una conversione tra i due sistemi di rappresentazione, fatta utilizzando le seguenti formule trigonometriche.

x= R cosθ y= R sinθ

In figura 4.4 viene mostrato come un punto viene rappresentato secondo i due sistemi.

p

Figura 4.4: Sistema polare (in blu) e cartesiano (in rosso)

A titolo informativo, le funzioni inverse che portano da coordinate cartesiane a polari sono:

r=p x2+ y2 θ = atan2(y/x)

Infine viene effettuata una operazione di scrematura eliminando tutti quei punti ac- quisiti ma che non rientrano nel piano di lavoro. Questa operazione viene effettuata per non elaborare informazioni che non sono utili, sia per risparmiare tempo che per non introdurre possibili artefatti che potrebbero compromettere il corretto funzionamento del sistema.

(41)

Capitolo 4. Ricostruzione del profilo di carico 33

4.3 Discretizzazione e segmentazione

Una volta trovata la posizione relativa dei punti che descrivono la scena, occorre ot- tenere una rappresentazione. In questo blocco l’algoritmo estrapola dall’insieme di punti i segmenti che individuano i profili del piano di carico. Utilizzando le ipotesi citate prima, cio`e che il laser scanner e le superfici orizzontali della scena siano tra di loro paralleli, ogni profilo di container `e individuato correttamente da un segmento che racchiude in se le caratteristiche dei punti che lo compongono.

La prima operazione effettuata sul vettore di punti, ordinati secondo il verso di scansione, `e pura e semplice segmentazione a soglia dei dati, citato anche in [11].

Ipotizzando che l’errore sulla misura delle altezza sia molto inferiore alla differenza di altezza dei container, il vettore dei punti viene suddiviso in intervalli in corrispondenza di discontinuit`a maggiori ad una determinata soglia. Tale soglia, denominata thresh, viene definita come un multiplo(tipicamente dal doppio al quadruplo) dell’errore stan- dard del sensore, e sar`a utilizzata pi`u volte durante nell’esecuzione dell’algoritmo. Ci`o pu`o essere schematizzato come nell’Algoritmo1

Algoritmo 1 Algoritmo di segmentazione

Require: Vt−1vettore degli n punti [xi, yi] della scansione

1: for i = 1, . . . , n do

2: j= i

3: Inizializza il vettore k − esimo e inserisci il punto i − esimi

4: while |yi− yj| ≤ thresh do

5: Inserisci il punti j − esimo nel vettore k − esimo

6: j+ +

7: end while

8: Inserisci il vettore k − esimo nella liste dei punti gi`a segmentati

9: end for

10: return lista dei vettori dei punti segmentati.

Dopo che i punti che sono stati raggruppati secondo il criterio appena descritto, viene determinata l’altezza media e le ascisse degli estremi del segmento. Nel sistema

(42)

Capitolo 4. Ricostruzione del profilo di carico 34

ogni segmento viene rappresentato dalla terna

Si, (yi, xbi, xei)

dove yi `e l’altezza del segmento, mentre xbi e xei sono le ascisse del segmento, con xbi< xei. Considerando questa notazione, ogni scansione `e definita come

Wi, {S1, . . . , Sn}

con xSej≤ xSbj+1 per j = 1, . . . , n.

Pu`o accadere che quest’ultima condizione non venga sempre rispettata, e che quin- di xSek > xSbk+1 per qualche k. Per rivolvere questo errore, per come `e strutturato l’am- biente in cui si opera non pu`o essere vero, la parte sovrapposta dei due segmenti `e stata associata a quello che si trova ad un’altezza maggiore rispetto all’altro.

In figura4.5viene mostrato un esempio che mostra i punti acquisiti, rappresentati in giallo, e i segmenti che identificano, in blu.

Figura 4.5: Segmentazione, in gialli i singoli punti e in blu il segmento ricavato

4.4 Fusione delle scansioni

Una volta ottenuta una rappresentazione della scena con i profili di altezza della scan- sione, risulta necessario armonizzare tale rappresentazione con quella ottenuta dalle

(43)

Capitolo 4. Ricostruzione del profilo di carico 35

precedenti scansioni. Ci`o significa inserire i segmenti della scansione attuale con quelli trovati fino a quel momento. Nel proseguo della trattazione verr`a indicato con la dici- tura Wi l’insieme dei segmenti trovati nell’attuale scansione, mentre con W il vettore che comprende tutti i segmenti trovati fino a quel momento. La procedura utilizzata, mostrata in figura4.6, `e divisa in quattro parti: serializzazione in ordine crescente di tutti i punti, creazione nuovi segmenti, rifinitura dei segmenti ed aggiornamento della rappresentazione globale.

Figura 4.6: Algoritmo fusione

Finita questa operazione si `e in possesso di una rappresentazione del profilo di carico che viene proposta tramite interfaccia video all’operatore.

(44)

Capitolo 4. Ricostruzione del profilo di carico 36

4.4.1 Serializzazione punti

I segmenti appartenenti al vettore Winel vettore W vengono suddivisi nelle loro com- ponenti y, xb, xe, per poi andare a riempire, in ordine crescente, il vettore P che contiene tutte le coordinate relative alle ascisse. Ci`o pu`o essere schematizzato nell’Algoritmo 2.

Algoritmo 2 Algoritmo di serializzazione

Require: Wi che contiene i k segmenti della scansione attuale e W con i h segmenti trovati fino a questo momento

1: for k = 1, . . . , k do

2: Inserisci xbk e xek nel vettore P

3: end for

4: for k = 1, . . . , h do

5: Inserisci xbk e xek nel vettore P

6: end for

7: Ordina il vettore P in ordine crescente.

La nuova lista viene passata al blocco successivo per la creazione di intervalli da associare ai vecchi segmenti.

4.4.2 Creazione nuovi segmenti

Dagli n punti contenuti nel vettore P del punto precedente, vengono creati n − 1 intervalli, i cui estremi di ciascuno di essi sono due punti consecutivi del vettore

Ogni intervallo viene confrontato con gli elementi dei vettori Wie W , per verificare dove c’`e una corrispondenza. Per ogni segmento si valuta se fa parte di un segmento di Wi, di W , di entrambi o di nessuno. Nel caso in cui vi fosse corrispondenza con solo elemento di un vettore, all’intervallo viene associata l’altezza del relativo segmento.

Nel caso in cui, invece, vi fosse corrispondenza con due segmenti, uno per ciascun vettore, bisogna distinguere due casi: se la differenza delle altezze dei due segmenti

`e inferiore ad una certa soglia viene fatta la media delle due, altrimenti all’intervallo viene scelta l’altezza del segmento pi`u recente, ci`o perch´e trovandoci in un ambiente

(45)

Capitolo 4. Ricostruzione del profilo di carico 37

dinamico le informazioni pi`u recenti sono sicuramente quelle che rispecchiano mag- giormente la realt`a. Infine, nel caso in cui non vi sia corrispondenza l’intervallo viene eliminato. Il funzionamento `e schematizzato nell’Algoritmo3

Algoritmo 3 Algoritmo per creare nuovi segmenti

Require: P che contiene i n punti trovati al passo precedente in ordine crescente Require: Wi, W

1: for j = 1, . . . , n − 1 do

2: Creo segmento Sj con estremi P[ j], P[ j + 1] e altezza nulla

3: k= 0

4: if Sicorrisponde ad un segmento di Withen

5: ySj = ySWi

6: end if

7: if Sicorrisponde ad un segmento di W then

8: if ySj == 0 then

9: ySj = ySW

10: else

11: if |ySj− ySW| ≤ thresh then

12: ySj = (ySW+ ySj)/2

13: end if

14: end if

15: end if

16: if ySj! = 0 then

17: inserisci Sjnel vettore temporaneo Wtmp

18: k++

19: else

20: eliminaSj

21: end if

22: end for

23: return il vettore temporaneo Wtmp

Come `e stata realizzata la lista dei punti, ogni intervallo pu`o essere una parte di un segmento oppure un intero segmento, ma non si potr`a mai trovare corrispondenza con due segmenti della stessa lista.

(46)

Capitolo 4. Ricostruzione del profilo di carico 38

4.4.3 Rifinitura

Durante le frasi precedenti `e possibile che un profilo, che dovrebbe essere rappresen- tato da un unico segmento, sia suddiviso in pi`u segmenti minori. Per fornire le giuste informazioni all’operatore `e assolutamente necessario che i vari segmenti siano riuniti in uno unico, come dovrebbe essere. Per fare ci`o si va a controllare che per tutti qui segmenti per cui xei ≡ xbi+1, se la differenza delle rispettiva altezze `e minore, o meno, della soglia thresh. Se la condizione `e verificata i due segmenti vengono uniti a for- mare un unico segmento i cui estremi saranno xbi e xei+1, e l’altezza sar`a la media delle due. Questa operazione viene ripetuta fino a quando segmenti consecutivi avranno differenza di altezza maggiore della soglia.

4.4.4 Aggiornamento

Terminata anche quest’ultima operazione si passa ad sostituire i vecchi segmenti del vettore W con quelli del nuovo vettoreWtemp. A questo la ricostruzione `e pronta per essere analizzata per trovare la locazione pi`u adatta di dove caricare il container, oltre ad essere visualizzata sul video dell’operatore.

In figura4.7 `e mostrato un esempio che racchiude tutti i passaggi eseguiti, dall’ac- quisizione dei punti, visualizzati in giallo, alla identificazione dei segmenti, in blu, fino alla ricostruzione aggiornata di tutta l’area di carico, evidenziata in rosso.

Figura 4.7: Aggiornamento finale

(47)

Capitolo 4. Ricostruzione del profilo di carico 39

4.5 Localizzazione postazioni

Da ricostruzione aggiornata dell’area di carico, `e possibile individuare dove poter ca- ricare un container. La ricerca viene fatta andando a ricercare tutti quei segmenti la cui larghezza `e tale da contenere uno o pi`u container, le cui dimensioni sono stabilite dallo standard ISO. I segmenti che rispettano tale condizione vengono inseriti in una lista per poi essere ordinata secondo dei criteri prescelti. Nella simulazione `e stato scelto di ordinare i posti in ordine crescente in base all’altezza a cui si trovano, quindi il posto maggiormente consigliato sar`a quello ad altezza minore, mentre l’ultimo sar`a ad una altezza maggiore.

Nel terminale video dell’operatore sar`a visualizzato su ogni segmento capace di contenere un container un rettangolo con un numero che indica la preferenza data dal programma.

In figura4.8 mostrato un esempio con i profili trovati e i posto dove il programma consiglia di mettere i container.

Figura 4.8: Postazioni individuate e consigliate

4.6 Funzionalit`a opzionali

In aggiunta alla’algoritmo descritto sopra, sono state sviluppate delle piccole funzio- nalit`a aggiuntive; concepite per essere impiegate nell’applicazione generale oppure per testare le prestazioni del simulatore/dimostratore basto sul manipolatore.

(48)

Capitolo 4. Ricostruzione del profilo di carico 40

Di seguito verranno prima descritti i tool utilizzabili nei due contesti, per poi pas- sare alla parte per i test che riguardano il carico e il deposito di oggetti nella scena ottenuta

4.6.1 Calibrazione

Sicuramente un aspetto fondamentale per la buona riuscita del sistema, in termini di precisione `e la calibrazione del laser scanner rispetto al piano di carico. Infatti tutto l’algoritmo di basa sull’ipotesi che il sensore laser sia parallelo rispetto al piano e che lo sia anche la direzione di movimento. Se ci`o non dovesse accadere, l’angolo, noto col nome di imbardata o “Yaw” rispetto la terna del laser, come illustrato in figura 4.9, tra i due piani sia diverso da zero, le prestazioni dell’algoritmo diminuirebbero proporzionalmente all’errore di calibrazione.

Figura 4.9: Angolo di rotazione rispetto all’asse Z del laser scanner

Utilizzando l’ipotesi stessa sul posizionamento del laser scanner rispetto al piano,

`e stata implementata una funzionalit`a in grado di calcolare il valore reale del angolo in questione, e se il suo valore `e abbastanza basso il sistema corregger`a automaticamente l’errore, altrimenti avviser`a l’operatore che il sensore laser deve essere calibrato.

Il calcolo viene fatto effettuando una scansione su il piano che si ipotizza essere parallela al laser scanner. Su i punti che individuano il piano viene eseguita la regres-

(49)

Capitolo 4. Ricostruzione del profilo di carico 41

sione lineare. Se il coefficiente angolare risultante `e uguale a zero vuol dire che il piano e il laser sono tra loro paralleli, se invece `e diverso da zero significa che non sono perfettamente paralleli e che l’angolo formato, espresso in radianti, `e uguale al coefficiente angolare.

Il valore trovato, se questo `e piccolo, pu`o essere utilizzato per azzerare l’errore introdotto dalla non calibrazione, andando a effettuare una rotazione, via software, delle letture provenienti dal laser scanner quando sono sempre rappresentate secondo il sistema polare. Se il valore `e troppo grande non `e possibile effettuare la corre- zione proposta, ma bisogna procedere andando a modificare fisicamente l’angolo di imbardata.

4.6.2 Visuale angolare

Ormai i laser scanner di ultima generazione prevedono di poter modificare l’angolo di visione direttamente sul sensore stesso, anche durante l’esecuzione di un’applica- zione. Questo per`o comporta comunque del tempo non trascurabile, soprattutto per un sistema che vuole essere di supporto per aumentare l’efficacia delle operazioni di carico e scarico di container. Per questo motivo `e stata aggiunta un’ulteriore funziona- lit`a in grado di variare facilmente e senza perdita alcuna di tempo l’angolo di visione via software, potendo decidere sia la grandezza del cono della visuale, sia in che dire- zione deve essere rivolto, considerando sempre le impostazioni del laser, come viene mostrato in figura4.10.

Questo strumento pu`o essere molto utile quando di vuole raffinare la ricostruzione dei profili relativamente a una porzione del piano, senza che sia di interesse ci`o che gli sta intorno.

4.6.3 Salvataggio file di log

Nel sistema realizzato `e possibile salvare due differenti tipi di file di log. Il primo, sempre attivo, mantiene essenzialmente traccia delle operazioni che vengono eseguite

(50)

Capitolo 4. Ricostruzione del profilo di carico 42

Figura 4.10: Esempio modifica ampiezza del cono di visuale e del suo orientamento

e permette il controllo di eventuali errori che si sono verificati durante l’esecuzione del movimento, e quindi procedere alla correzione. Il secondo, invece, che pu`o essere abilitato o disabilitato dall’operatore, consente di memorizzare tutti i dati riguardanti i sensori(odometria e acquisizione del laser scanner) durante l’intera esecuzione del programma. Con quest’ultimi file `e possibile effettuare dei test o simulare il sistema reale, quando questo non pu`o essere usato. Nella realizzazione di questo progetto `e stato stabilito anche il tipo di formato standard da utilizzare in quest’ultimo tipo di file di log. Per ogni iterazione dell’algoritmo viene memorizzata l’odometria del carrello e la scansione del laser scanner in coordinate polari. Il formato utilizzato `e il seguente:

ODOM x y z a b c

POLAR numScan beam[0] ... beam[numScan − 1]

(51)

Capitolo 4. Ricostruzione del profilo di carico 43

4.6.4 Movimentazione autonoma

Durante la fase di test sono state implementate due funzionalit`a, utilizzabili esclusi- vamente con il simulatore, per poter verificare effettivamente che il sistema riesca a ricostruire correttamente i profili dei piani di carico. In entrambi i casi `e previsto di far muovere il manipolatore in modo autonomo.

Nel primo caso si `e voluto far percorre al robot il profilo del piano che `e stato ricostruito in precedenza; conoscendo il punto in cui inizia un segmento, che individua un profilo, il punto finale e la relativa altezza, il manipolatore deve essere in grado di pianificare una traiettoria che ripercorra il profilo reale.

La seconda funzionalit`a invece prevede di riuscire a posizionare correttamente un ipotetico container nella posizione indicata dall’operatore. Infatti mediante l’interfac- cia grafica dell’utente nella quale vengono visualizzati i profili delle altezze ottenuti applicando l’algoritmo di costruzione illustrato precedentemente, l’operatore pu`o sce- gliere tra le postazioni di deposito del container indicate dal programma. Selezionando la postazione relativa il sistema pilota il robot in modo tale da simulare l’avvicinamento all’area indicata

In figura4.11viene mostrato un esempio di quest’ultima funzionalit`a, dove il robot si `e posizionato nella zona selezionata dall’operatore.

(52)

Capitolo 4. Ricostruzione del profilo di carico 44

Figura 4.11: Deposito container autonomo

(53)

Capitolo 5 Risultati

Per verificare la bont`a del sistema, esso `e stato testato sia in termini di velocit`a, sia nella accuratezza con cui riesce a ricreare una rappresentazioni dell’ambiente. Il sistema `e stato sviluppato e testato su un notebook con le caratteristiche specificate in tabella 5.1, utilizzando la suite Visual Studio 2010.

Processore

Intel Core 2 Duo T9400, 2.53 GHz, 6MB cache L2, FSB 1066 MHz

Memoria 4096 MB DDR2

Scheda Video NVIDIA GeForce 9600M

GT, 512MB dedicati Hard Disk 320 GB SATA 5400 rpm Networking

Intel WiFi Link 5100AGN, Gigabit Ethernet LAN 10/100/1000, Bluetooth Sistema Operativo Microsoft Window 7 Profes-

sional

Tabella 5.1: Caratteristiche del notebook utilizzato per la realizzazione del simulatore

In figura 5.1 `e mostrato un esempio del funzionamento del sistema su una scena ricreata in laboratorio. Nella parte inferiore dell’immagine `e presente l’interfaccia del programma, sulla quale vengono visualizzati i segmenti, rappresentati in colore rosso, dei profili che si trovano nella scena, e i box in cui `e possibile depositare un ogget-

45

(54)

Capitolo 5. Risultati 46

to di dimensione prefissata (corrispondente al container nell’applicazione portuale), rappresentati come quadrati di colore giallo.

Figura 5.1: Esempio di funzionamento del sistema su una scena ricreata in laboratorio.

5.1 Valutazione dell’accuratezza

Nella valutazione del sistema, una parte fondamentale la gioca l’accuratezza dell’al- goritmo, cio`e quanto la ricostruzione ottenuta sia fedele alla realt`a. Il parametro di accuratezza viene calcolato andando a confrontare in che misura le coordinate dei seg- menti della rappresentazione corrispondono a quelle reali. Prima di esporre i risultati

(55)

Capitolo 5. Risultati 47

ottenuti, bisogna premettere non `e stato possibile, per mancanza di strumenti di misura adatti, conoscere con esattezza la posizione degli oggetti presenti nella scena rispetto al prototipo. Per questo motivo, `e stato calcolato l’errore medio della ricostruzione dei profili considerando l’altezza, cio`e andando a valutare non tanto l’altezza in s´e, ma la differenza tra le altezze di due diversi profili. Nella tabella 5.2 `e mostrato il valore dell’errore calcolato e la rispettiva deviazione standard.

Errore[mm] Deviazione standard [mm]

∆ altezze 8.362 5.99

Tabella 5.2: Errore medio e deviazione standard calcolati sulla differenza delle altezze.

Al fine di calcolare anche l’errore lungo l’ asse delle ascisse (ovvero nella direzio- ne orizzontale), sono state confrontate le coordinate di tutti i segmenti di ogni singola scansione con il segmento corrispondente rispettivo che viene ricostruito fondendo in- sieme tutte le scansioni. Il calcolo `e stato eseguito in questo modo perch´e, come gi`a detto poco sopra, non si hanno informazioni dettagliate del “Ground Truth” della sce- na, ma l’insieme delle scansioni pu`o essere considerato, in termini statistici, molto affidabile e corrispondente alla realt`a. Le valutazioni sono state eseguite separatamen- te per le due coordinate. Bisogna inoltre premettere che nel calcolo dell’accuratezza lungo l’asse delle ascisse rientravano nelle statistiche anche tutti i dati relativi a seg- menti occlusi che portano un rilevante contributo all’errore pur non essendo di fatto un errore reale di misura. Per eliminare questi dati nel calcolo delle statistiche, sono stati considerati tutti quegli errori minori di una certa appropriata. In tabella5.3sono evi- denziati gli errori medi e le relative deviazioni standard, sia per le ascisse e che per le ordinate. In tabella5.4 sono mostrati, a titolo di esempio, gli errori ottenuti utilizzan- do il supporto per il laser scanner non stabile inizialmente realizzato, che introduceva molta vibrazione.

Utilizzando la funzionalit`a di calibrazione si pu`o controllare che il piano del sen- sore sia parallelo al piano reale, pur non riuscendo a capire, senza informazioni ag- giuntive, quale dei due piani sia nella giusta orientazione. Durante la fase si test `e stato

Riferimenti

Documenti correlati

le quattro possibili configurazioni costituiscono i “ micro stati “ accessibili al sistema. possibili

In secondo luogo, dai grafici riportanti le forze, ` e possibile verificare la grande capacit` a del DOB nel compensare anche tutte le variazioni parametriche dovute all’utilizzo

In figura 4.10 sono mostrati due esempi nel quale questa operazione ` e l’unica direzione lungo la quale pu` o essere estratto il pezzo, considerando che il pezzo non pu` o essere

• Nelle funzioni che accedono a interi array attraverso funzioni di libreria (bcopy, bcmp, e simili), non è necessario ricopiare i dati, in quanto tali funzioni

• Tenere traccia, in tempo reale, dei dati transitati o in transito nella rete. • Consentire interrogazioni sul traffico

 se ∆ATTD&gt;0, il primo sistema è peggiore del secondo, per quanto riguarda l’indicatore ATTD.. Tabella 100 – Differenza tra le misure di prestazione del California#7 con

Per iscriversi al convegno è necessario inviare la scheda di iscrizione, scaricabile dal sito www.crob.it al seguente indirizzo formazione@crob.it entro e non oltre il

13.20 - 13.55 La “responsabilità amministrativa delle persone giuridiche, delle società e delle associazioni anche prive di responsabilità giuridica” ex D.Lgs. Carlo