Vai al contenuto
PLC Forum


Applicazione Robot Con Sistema Di Visione


siro

Messaggi consigliati

Ciao a tutti,

Avrei bisogno di alcuni chiarimenti in merito al modo di gestire un'applicazione con un robot antropomorfo e un sistema di visione,mi spiego meglio(almeno ci provo)

L'impianto è un comunissimo carico scarico di una macchina utensile con un robot che preleva un pezzo da un nastrino

con coordinate trasmesse da una telecamera(stand alone) tramite seriale rs232

Attualmente l'impianto è funzionante,ho sviluppato il programma robot e del sistema di visione.

Il nocciolo della questione è che adesso il cliente vuole avere la possibilità di potersi creare da solo un nuovo programma. Devo perciò creare un'applicazione che faccia interagire la visione e il robot in modo da essere totalmente autonomo nello svilupparsi i programmi dei nuovi pezzi senza essere costretto a chiamarmi di volta in volta

So che la soluzione che serve a me esite da una miriade di anni ma adesso sta rogna me la devo sbrigare da solo :( .

Osservando un impianto installato dalla concorrenza ho visto che la gestione viene fatta così

L'operatore effettua il riconoscimento del pezzo da prelevare con il sistema di visione (e fino a qui tutto ok),poi mette il pezzo in quattro posizioni differenti,circa 90 gradi una dall'altra e ogni volta và ad afferrare il pezzo con il robot e (penso sia così) vengono memorizzate le coordinate che gli passa la telecamera ottenendo degli offset con le coordinate del tool del robot

E qui arriva il punto su cui non ho le idee chiare,volevo capire come vengono gestite ste coordinate

Sono stato un pò sintetico perchè volevo vedere se prima mi risponde qualche buon'anima :rolleyes: che abbia fatto già simili applicazioni,poi si può approfondire la questione

Link al commento
Condividi su altri siti


Ciao siro, di applicazioni guida robot con sistema di visione ne ho fatte parecchie e magari ti posso aiutare

se hai realizzato tu il programma del robot e della visione, dovresti aver già fatto la calibrazione dell'area telecamera

ovvero la corrispondenza tra pixel e coordinate del robot (di solito è la prima cosa da fare)

quindi non capisco questi tuoi dubbi su come gestire le coordinate

puoi spiegare meglio come hai realizzato il tutto?

ciao

Link al commento
Condividi su altri siti

Ciao cisio

Si la calibrazione della telecamera è la prima cosa che ho fatto,ho preso un quadrato di lato 100x100 e ho trovato la corrispondenza pixel mm,poi ho fatto corrispondere la base di lavoro del robot con questo quadrato in modo da avere il punto 0,0 della telecamera corrispondente con il punto 0,0 della base del robot

Bè ovviamente la calibrazione della telecamera e la base di lavoro del robot si fanno una sola volta all'inizio poi non c'è più motivo di metterci mano a meno che non venga mosso qualcosa

Adesso se devo fare il programma per un nuovo pezzo,arrivo con il pc mi collego alla telecamera faccio l'acquisizione del nuovo pattern,delle aree di ingombro attorno al pezzo etc etc,tutte cose che riguardano il sistema di visione insomma

Poi dopo aver montato una nuova pinza sul robot faccio l'acquisizione del TCP con una procedura guidata,c'è un apposito tool di configurazione(il robot è un kuka),muovendomi su un punto fisso nello spazio posizionando il centro della zona di presa delle griffe su quel punto con 4 orientamenti diversi

Una volta misurato il nuovo TCP della pinza mi posiziono sul pezzo da prelevare e vedo che coordinate X Y mi visualizza il robot,poi faccio corrispondere le coordinate del pezzo che mi da la telecamera con quelle del robot,(la telecamera è una cognex 5100),spostando tramite un "mirino" l'origine del pattern finchè le due quote sono uguali

Faccio un pò fatica a spiegartelo a parole perchè sono delle procedure che si dovrebbero vedere sul posto per poter essere meglio comprese

Tirando le somme ogni volta che c'è da fare un nuovo pezzo arrivo io e creo un nuovo programma visione e un nuovo programma robot

Sull'altro impianto che ha il cliente, installato dalla concorrenza, l'operatore riesce a crearsi dei nuovi programmi in maniera autonoma,ovviamente perchè ci sono tutte delle interfacce e dei tool sviluppati per quello scopo

Questa cosa devo farla anche io,allora ho visto che per fare un nuovo programma l'operatore prende il nuovo pezzo lo poggia sul nastrino,arriva con la pinza del robot e fa 4 acquisizioni in 4 posizioni diverse,circa 90 gradi l'una dall'altra

Qui sta il problema non riesco a capire come faccia a calcolarsi il nuovo TCP del robot con questo sistema,io se cambio pinza devo rifare tutta la procedura che ho scritto sopra,questi invece cambiano le griffe poi mettono sotto il pezzo in 4 posizioni diverse,lo afferrano con la pinza e si calcola tutto in automatico

Spero di essere riuscito a farti capire qualcosa,altrimenti prova a spiegarmi come fai tu (in maniera sintetica)a gestire la guida robot,al limite ti rifaccio delle domande

grazie ciao

Link al commento
Condividi su altri siti

La procedura che uso io è come la tua, ovvero:

- calibrazione iniziale dell'area di visione rispetto ad un piano di lavoro del robot

- definizione del tool pinza, con autoapprendimento oppure scrivendo le misure a mano (quando esistono i disegni)

- apprendimento di un'immagine del pezzo e delle zone di ingombro pinza

- spostamento del punto di presa con il mouse, nella posizione che voglio

- faccio un ciclo di prova con il robot, guardo dove si posiziona e correggo di conseguenza il punto di presa a video e l'angolazione della pinza

se la calibrazione è fatta bene, e il tool pinza è definito con precisione, funziona anche con tutte le angolazioni diverse del pezzo

la procedura che fanno su quell'altro impianto non l'ho mai vista prima, ma penso che definire il tool pinza come facciamo noi sia meglio

ciao

Link al commento
Condividi su altri siti

Bene mi fa piacere sentire che la procedura che ho seguito è quella che usi anche tu,essendo la prima esperienza e non avendo avuto nessuno che mi abbia seguito avevo anche dei dubbi di non aver fatto le cose correttamente soprattutto con il sistema di visione

Come dici tu effettivamente se la calibrazione,base robot e apprendimento della pinza sono fatte bene si ha la precisione anche su tutte le angolature

Quella procedura che ti ho descritto, probabilmente credo che serva per calcolarsi degli offset da sommare o sottrarre a seconda dell'angolo di rotazione in cui si trova il pezzo,dividendo l'area di presa in quattro quadranti e facendo le varie casistiche,nel caso il pezzo si trovi tra 0-90 90-180 180-270 270-0

Quello che mi lascia perplesso è il fatto che se mi cambiano di molto la configurazione della pinza per prendere dei nuovi pezzi non riesco proprio a capire come possano calcolarsi le misure del nuovo tool con un simile sistema,ed essere precisi.

comunque questa settimana dobbiamo iniziare a mettere mano all'impianto e ci siamo appoggiati ad un integratore di sistemi di visione che ci fornisce un'interfaccia bella e pronta per consentire all'utente di crearsi dei programmi in maniera molto più semplice e sbrigativa,vediamo se mi daranno delle dritte su come gestire la cosa,speriamo....poi ti farò sapere

grazie e ciao

Link al commento
Condividi su altri siti

Eccomi qua,riguardo alla discussione che avevo iniziato e alla quale cisio ha gentilmente risposto

Ho capito finalmente cosa fà quella procedura...

Bè il tool del robot come pensavo è unico e non si tocca,una volta appreso quello è e non si modifica

Quelle quattro prese servono per calcolare l'offset tra il tool del robot e le coordinate del pezzo passate dalla telecamera,suddividendo l'area di presa in 4 quadranti precisamente 45 135 135 225 225 315 315 45

con il robot della kuka viene fatto un calcolo vettoriale tra le basi e il tool con una procedura chiamata operatore geometrico

Questa suddivisione in 4 quadranti si rende necessaria quando in varie angolature la presa non è più precisa come nel punto di acquisizione del modello

Link al commento
Condividi su altri siti

Questa suddivisione in 4 quadranti si rende necessaria quando in varie angolature la presa non è più precisa come nel punto di acquisizione del modello

se le misure del tool non sono quelle reali, è la conclusione inevitabile

comunque se funziona, tanto di cappello

ciao

Link al commento
Condividi su altri siti

lissoni.davide

Non so che telecamera attualmente stai utilizzando ma un possibile alternativa alla suddivisione in 4 quadranti è la calibrazione dell'immagine (checkerboard calibration o simili). Ovviamente la telecamera deve avere questa funzione.

Saluti,

Davide

Link al commento
Condividi su altri siti

lissoni.davide

Aggiorna il firmware della telecamera alla versione 4.1 (contatta cognex o chi ti ha venduto la telecamera se hai problemi nell'aggiornamento) e poi puoi usare la funzione CalibrateGrid la quale permette di ottenere un'immagine meno distorta rispetto alla tua immagine attuale (penso che stai usando un'ottica molto corta .. 8 mm o similari)

Senza aggiornare il firmware della telecamera puoi utilizzare l'emulatore dell'insight e fare delle prove per stabilire se la calibrazione dell'immagine è sufficiente a garantire una presa corretta. Salva immagini e risultati ottenuti con il job corrente e poi esegui lo stesso job con l'emulatore verificando se i risultati sono soddisfacenti.

Saluti,

Davide

Link al commento
Condividi su altri siti

  • 2 months later...

Ciao Ragazzi, anche Io mi occupo di guida robot.

Non voglio entrare nel merito delle vostra discussione specifica ma se il cliente vuole fare tutto da se Io tipicamente gli fornisco un toolkit di visione che è demenziale da usare ma molto efficace poi Io mi smazzo solo la gestione del Robot.

Il toolit che uso è il Vision Builder della National Instruments con il quale non sei legato a nessuna specifica telecamera e nessun specifico bus.

Ciao

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...