Prototipazione rapida di Visione Artificiale 3D e Robotica in LabVIEW

Le applicazioni di automazione National Instruments per l'Industria della Pesca

  • Prototipazione rapida di Visione Artificiale 3D e Robotica in LabVIEW
    Prototipazione rapida di Visione Artificiale 3D e Robotica in LabVIEW
  • Prototipazione rapida di Visione Artificiale 3D e Robotica in LabVIEW
    Prototipazione rapida di Visione Artificiale 3D e Robotica in LabVIEW

A cura di I. Piacentini, M. Capetti, G. Scalari - IMAGINGLAB

La Sfida
Progettare sistemi di visione 3D robotizzati per la sfilettatura automatica di salmoni e il controllo di qualità
La Soluzione
Integrare il controllo di robot, la scansione 3D e l'acquisizione di immagini a colori in LabVIEW
Acquisizione di immagini 3D e a colori con la SICK 3D Color Ranger
L'elemento che ha dato inizio alla relazione tra SINTEF, organizzazionie di ricerca indipendente scandinava, interessata alla sfilettatura robotizzata di salmoni, l'acquisizione di immagini 3D per il controllo qualità e più l'automazione avanzata per l'industria del pesce, e ImagingLab è stato l'ambiente di programmazione che entrambe usano: LabVIEW, un ambiente per la programmazione grafica, introdotto nel 1986 da National Instruments. È quindi nata una immediata e produttiva collaborazione. Alcuni "ingredienti chiave" erano già stati identificati da SINTEF, in particolare un robot Denso a sei assi della nuova serie VS, e una videocamera 3D a colori SICK Ranger serie E. Era già stato definito, che in un primo sistema un braccio robotico avrebbe montato sul suo polso una videocamera e tutti i componenti ottici.

L'acquisizione di immagini ottenuta con questo set-up, richiede che la videocamera o l'oggetto da ispezionare si muovano relativamente l'uno rispetto l'altro. I dati che vengono generati sono di due tipi:

· Una Cloud of Points (COP), ovvero una nuvola di punti, che rappresenta l'oggetto (nel nostro caso, il pesce) nello spazio 3D

· L'immagine a colori composta dai tre piani RGB (Red, Green, Blue)

La ricostruzione 3D di un oggetto con una videocamera Ranger si basa sulla generazione di una serie di profili generati dall'intersezione tra una 'lama' laser e l'oggetto scansionato. La maggior parte dell'area del sensore matriciale SICK è dedicato all'acquisizione del profilo laser, mentre una piccola parte è dedicata ad acquisire l'informazione di colore. Analogamente alle telecamere a colori a scansione lineare, tre righe di pixel sono acquisite usando un filtro RGB. Le informazioni sul colore vengono acquisite in tre istanti di tempo successivi e distinti.

Scansione lineare e scansione angolare
Nell'applicazione richiesta da SINTEF, il robot permette il moto relativo tra videocamera e oggetto grazie a due diversi metodi di scansione:

· Una scansione lineare, in cui il sistema di visione si muove lungo una traiettoria orizzontale lineare, e che quindi richiede un movimento interpolato di più assi

· Una scansione angolare, che può essere eseguita utilizzando solo l'asse 6 del robot, quindi ruotando solo la flangia del polso, alla quale vengono fissati la videocamera e i componenti del gruppo ottico

La scansione angolare può offrire dei vantaggi in quanto viene utilizzata la rotazione di un solo giunto del robot, mentre tutti gli altri rimangono fermi e con i rispettivi freni attivi. Il risultato è una scansione molto accurata: il robot diventa una struttura meccanica molto rigida e il moto non è influenzato da movimenti ondulatori residui . Inoltre il robot non ha bisogno di entrare nello 'spazio di lavoro' in cui l'oggetto si trova ed è in grado di eseguire la scansione ad una certa distanza dall'oggetto. Questo metodo presenta però necessita di una calibrazione spaziale specifica, infatti i profili di righe successive non sono uniformemente spaziati se acquisiti ad una velocità angolare costante.

Sincronizzazione della videocamera con il movimento del robot
Una ricostruzione 3D accurata richiede una buona sincronizzazione tra il movimento del robot e l'acquisizione dei singoli profili da parte della videocamera. Di conseguenza, è necessario interfacciare a livello hardware il robot e la videocamera collegando una linea di output del robot al trigger di input della videocamera. La generazione degli impulsi di 'trigger' avviene attraverso l'esecuzione di apposito software che deve essere scaricato sul controller del robot. La velocità massima di acquisizione è influenzata dalle specifiche tecniche del robot e dall'implementazione del software sul controller del robot.

Problemi di calibrazione
Riguardo ai problemi di calibrazione, è utile menzionare i seguenti punti:

· Il robot si muove in uno spazio di coordinate intrinsecamente espresso in mm e sottomultipli, mentre la videocamera genera immagini basate su pixel che devono essere calibrate in riferimento allo spazio di lavoro del robot.

· le distorsioni ottiche (geometria delle lenti e imprecisioni, prospettiva,) devono essere prese in considerazione.

· Dal punto di vista dell'utente, il modo più semplice per affrontare la calibrazione geometrica è quello di utilizzare degli oggetti di riferimento già calibrati, in modo da generare via software una sorta di 'tabella di look up' utile per correggere il grado di distorsione di uno specifico set-up.

· Le diverse modalità di scansione (lineare o angolare) dovranno essere trattate e calibrate in modo differente le une dalle altre.

· La calibrazione del colore, e soprattutto la corretta sovrapposizione del colore acquisito sulla superficie 3D è un processo sufficientemente complesso.

Il vero problema di integrazione: gli strumenti software
La complessità del progetto non è stata principalmente nell'individuazione di un metodo di acquisizione o nella selezione dei componenti principali, robot incluso, ma piuttosto nell'integrazione di tutti i componenti, a livello software. Questa è stata ottenuta utilizzando un unico ambiente di sviluppo: LabVIEW. Questo strumento di sviluppo grafico è la soluzione ideale per le applicazioni in cui serve una prototipazione rapida, così come il successivo "deployment" del software, e ha un grande impatto sull'economia di un nuovo progetto. 3D-MVL, una libreria

3D per LabVIEW
La libreria 3D di ImagingLab per LabVIEW, nata dalla collaborazione con AQSENSE e premiata come prodotto più innovativo nel campo del software di Visione ad NI Week 2012, fornisce una serie di tool per acquisire e processare delle COP 3D direttamente dall'ambiente LabVIEW di National Instruments.

SICK 3D Camera Toolkit per LabVIEW
Il SICK 3D Camera Toolkit consente la perfetta integrazione della videocamera Ranger in LabVIEW. Il toolkit è stato sviluppato da ImagingLab Srl per conto di SICK ed è disponibile tramite il LabVIEW Tools Network.

Le librerie robotiche per LabVIEW
Le librerie robotiche per LabVIEW sono disponibili per una vasta gamma di bracci robotici industriali presenti in commercio. Originariamente sviluppate e introdotte sul mercato da ImagingLab Srl, sono oggi commercializzate, sviluppate e supportate da ImagingLab GmbH, e distribuite attraverso il LabVIEW Tools Network. Lo scopo di queste librerie è, ancora una volta, quello di semplificare l'utilizzo e la programmazione dei bracci robotici, e di consentire l'integrazione di quest'ultimi con i sensori di visione sia 2D che 3D , con schede di acquisizione dati ed una vasta gamma di hardware accessorio, utilizzando LabVIEW.

Sviluppi futuri
La collaborazione tra ImagingLab e SINTEF è in corso, e si auspica diventerà parte integrante di un ampio progetto a livello europeo. Il sistema dimostrativo sopra descritto affronta solo alcune delle esigenze dell'industria della pesca in termini di controllo qualità, manipolazione automatizzata del pesce, taglio e confezionamento, ecc. Ulteriori sviluppi software saranno necessari per migliorare la calibrazione 3D, migliorare le prestazioni e permettere l'integrazione con altri sensori. La parte di imaging sarà estesa al fine di includere l'informazione di scatter del laser e l'acquisizione e l'analisi multi-spettrale.