IT202100001268A1 - Sistema e metodo di configurazione e programmazione di una cella robotica - Google Patents

Sistema e metodo di configurazione e programmazione di una cella robotica Download PDF

Info

Publication number
IT202100001268A1
IT202100001268A1 IT102021000001268A IT202100001268A IT202100001268A1 IT 202100001268 A1 IT202100001268 A1 IT 202100001268A1 IT 102021000001268 A IT102021000001268 A IT 102021000001268A IT 202100001268 A IT202100001268 A IT 202100001268A IT 202100001268 A1 IT202100001268 A1 IT 202100001268A1
Authority
IT
Italy
Prior art keywords
cell
virtual
objects
robot
robotic
Prior art date
Application number
IT102021000001268A
Other languages
English (en)
Inventor
Alcaide Joan Ortega
Marco Guadagni
Alessandro Diodato
Tommaso Banfi
Original Assignee
Yk Robotics S R L
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yk Robotics S R L filed Critical Yk Robotics S R L
Priority to IT102021000001268A priority Critical patent/IT202100001268A1/it
Publication of IT202100001268A1 publication Critical patent/IT202100001268A1/it

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41885Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31371VMD virtual manufacturing device for robot task control, cell
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32132SFC shop floor control, to develop and build control system for factory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39014Match virtual world with real world
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40392Programming, visual robot programming language

Landscapes

  • Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Image Analysis (AREA)
  • Electrotherapy Devices (AREA)

Description

Descrizione a corredo della domanda di brevetto per invenzione industriale dal titolo:
SISTEMA E METODO DI CONFIGURAZIONE E PROGRAMMAZIONE DI UNA CELLA
ROBOTICA
Ambito dell?invenzione
La presente invenzione si riferisce al settore tecnico dei robot.
In particolare, l?invenzione si riferisce ad un innovativo metodo per consentire la configurazione e la programmazione in maniera semplice e funzionale di una cella robotica.
Brevi cenni alla tecnica nota
In molti settori tecnici ed industriali ? oramai comune e diffuso l?uso di robot che fanno parte di una o pi? linee di produzione.
I robot sono programmati per eseguire predeterminate operazioni a seconda della linea produttiva in cui sono inseriti.
Sono ad esempio noti bracci meccanizzati la cui funzione pu? essere ad esempio quella di prelevare un oggetto da un punto e posizionarlo in un altro punto (ad esempio prelevare da un nastro trasportatore per posizionare in una zona di stoccaggio).
Tutti i Robot utilizzati, al fine di funzionare correttamente, devono essere opportunamente programmati (sono noti vari linguaggi macchina di programmazione) in modo tale da eseguire correttamente le operazioni previste.
La programmazione di una cella robotica non ? per? cosa semplice.
Per cella robotica si intende, nella presente descrizione, non solo il robot ma anche gli altri elementi intorno al robot e con cui il robot, in qualche modo, si interfaccia.
Ad esempio una zona di prelievo da cui un robot preleva ed una zona di rilascio in cui il robot rilascia possono essere parte di una cella robotica.
Se il robot opera dunque con altre parti o componenti in genere, ad esempio nastri trasportatori, e si muove in un ambiente superando certi ostacoli, l?ambiente stesso entro cui si muove, gli eventuali ostacoli e le eventuali parti, quali sensori e attuatori addizionali, con cui si interfaccia il robot, nel complesso formano una cella robotica.
Usualmente una cella robotica reale ? contornata da gabbie di protezione.
La cella robotica reale viene controllata softweristicamente attraverso un apposito sistema di controllo formato da Hardware e software dedicati.
La programmazione di una cella robotica richiede per? personale altamente specializzato e ci? implica costi e tempi di attesa nel completamento della programmazione.
La configurazione e/o riconfigurazione, come anche la programmazione e/o riprogrammazione, di una cella robotica virtuale che controlla una cella robotica reale, pu? tuttavia essere necessaria anche di frequente se alcune condizioni operative del robot cambiano. Ad esempio se viene spostato un punto di prelievo e/o un punto di rilascio e/o se vengono installati altri componenti con cui il robot deve interfacciarsi, ecc., oppure se la cella robotica deve produrre una nuova lavorazione.
In alcuni casi in cui un operatore umano necessita di lavorare nelle vicinanze di un robot, si pu? anche ricorrere all?uso dei robot collaborativi, i quali richiedono misure di sicurezza molto pi? ridotte e hanno il potenziale per essere facilmente rilocabili nella azienda per fare applicazioni drasticamente diverse. In questo caso, ad esempio, ? necessario riconfigurare e ri-programmare frequentemente la cella virtuale.
E? dunque necessario poter effettuare delle modifiche di configurazione e/o di programmazione della cella, a seconda dei casi, in modo semplice ed intuitivo, in modo tale per cui sia possibile apportare le modifiche necessarie senza la necessit? di operatori specializzati.
E? nota la pubblicazione EP3243607 che descrive un metodo per effettuare una programmazione grafica semplificata ed intuitiva di robot equipaggiato con sensori e attuatori.
L?arte nota esistente, dunque, si muove verso la direzione di semplificare l?attivit? di programmazione di tecnologie robotiche in modo tale da non dover richiedere necessariamente personale specializzato.
Tuttavia l?arte nota non sembra essere in grado di rispondere alla esigenza di poter programmare e coordinare sensori e attuatori non direttamente collegati al robot, non consentendo di vedere la cella nella sua interezza, e quindi non permettendo di elaborare, comandare e visualizzare, salvare informazioni aggregate.
Sintesi dell?invenzione
E? quindi scopo della presente invenzione fornire un metodo, e relativo sistema, che risolva i suddetti inconvenienti tecnici.
E? quindi scopo della presente invenzione fornire un metodo, e relativo sistema, che consenta di creare virtualmente, in modo semplice, una cella robotica nella sua interezza, inclusi elementi esterni al robot in se per cui includendo informazioni aggregate.
In particolare ? anche scopo della presente invenzione fornire un metodo e relativo sistema che consenta di programmare una cella robotica nella sua interezza (non solo il robot con i suoi end-effector, cio? gli accessori del robot, ma anche ostacoli, macchine esterne) con la possibilit? di utilizzare sensori preesistenti quali camere per semplificare il processo stesso di configurazione.
Infatti, le posizioni di alcuni elementi possono essere ricavate dalla camera o dalla posizione del robot (si pu? usare il robot come strumento di misura).
E? pure scopo della presente invenzione fornire un sistema e relativo metodo che consenta di programmare la cella virtuale creata in modo semplice consentendo di scegliere quali informazioni elementari e aggregate (per esempio percentuali di oggetti difettati) visualizzare e salvare.
Questi ed altri scopi sono ottenuti con il presente metodo per creare una cella robotica virtuale che controlla una cella robotica reale, in accordo alla rivendicazione 1.
Tale metodo comprende una fase di configurazione virtuale della cella robotica e una fase di programmazione della cella robotica virtuale creata.
La fase di configurazione virtuale della cella robotica comprende:
a) La visualizzazione, in uno schermo video, di uno o pi? oggetti virtuali;
b) La selezione di uno o pi? di detti oggetti virtuali in modo tale da definire virtualmente la cella contenente detti oggetti virtuali selezionati;
c) La associazione univoca di ogni uno di detti oggetti virtuali selezionati ed inseriti nella cella virtuale con un corrispettivo oggetto reale in modo tale che alla cella virtuale corrisponda una cella reale che viene controllata tramite detta cella virtuale;
Ad esempio, in modo non limitativo, in una forma preferita dell?invenzione gli oggetti virtuali potrebbero essere in forma di icone e dunque l?utente potrebbe selezionare ogni icona che desidera.
In alternativa, vantaggiosamente, le icone potrebbero sostituirsi con un men? a tendina.
d) La determinazione della posa spaziale degli oggetti nella cella.
Vantaggiosamente la posa (posa ? il gergo tecnico utilizzato nel settore per indicare la posizione e orientamento di un oggetto) indica dunque la posizione che nella cella occupa l?oggetto in questione per cui le sue coordinate spaziali lineari (Pos) e/o il suo orientamento nello spazio (Or).
Vantaggiosamente, al fine di definire una posa completa, le variabili di posa spaziale sono generalmente almeno sei in quanto, generalmente, oltre alle coordinate lineari (Pos) si aggiunge ed una rappresentazione dell?orientamento (Or). Potrebbero tuttavia essere anche di pi? di sei.
La detta operazione d) comprende, tramite la cella virtuale, l?attivazione di uno o pi? oggetti della cella reale il quale/i quali si attiva/no eseguendo una operazione di misura nella cella reale.
L?oggetto che si attiva potr? essere corredato di ulteriori componenti a supporto di tipo hardware che software.
Grazie a questa misurazione (o stima che dir si voglia) si determina il posizionamento (o posa) spaziale di ogni oggetto nella cella.
In questo modo si ottengono tutti gli scopi sopra prefissati in quanto si riesce a costruire virtualmente la cella in un modo preciso e semplificato potendola definire univocamente, in particolare le distanze relative tra gli oggetti, attraverso gli oggetti stessi reali della cella.
L?utente finale pu? dunque configurarsi la cella senza l?ausilio di personale specializzato.
Vantaggiosamente la fase di programmazione della cella comprende la predisposizione di una pluralit? di blocchi grafici, ogni blocco grafico essendo associato ad un codice di programmazione che esegue una certa operazione ed in cui ogni uno di detti blocchi grafici e selezionabile in modo tale da generare un complessivo diagramma di flusso formato da una successione di operazioni.
Questa caratteristica favorisce la semplificazione della programmazione da parte dell?utente finale che pu? modificarsi i programmi di funzionamento della cella senza bisogno di personale specializzato.
Vantaggiosamente la detta operazione di misura comprende la attivazione di almeno una telecamera che inquadra la cella o una parte di essa e con detta telecamera programmata per identificare gli oggetti della cella e determinarne le pose relative tra gli oggetti e la telecamera.
Vantaggiosamente, in tal caso ad esempio, attivare l?oggetto telecamera implica attivare anche gli eventuali suoi componenti hardware che software ? modulo software che riconosce dalle immagini le posizioni degli oggetti.
In alternativa, vantaggiosamente, la detta operazione di misura pu? comprende la attivazione di almeno un robot della cella il quale viene movimentato in modo tale da posizionare un elemento di misura, ad esempio un tastatore o un laser, in una o pi? posizioni prestabilite.
L?elemento di misura pu? dunque essere di natura meccanica o elettronica.
Vantaggiosamente, in un?altra ulteriore variante di invenzione, la detta operazione di misura pu? comprendere la attivazione di almeno un robot della cella dotato di una telecamera e con il robot che si movimenta per inquadrare, attraverso detta telecamera, l?intera o parte di cella in modo tale che, attraverso le immagini acquisite, si determinano le pose degli oggetti.
Anche in questo caso, vantaggiosamente, attivare l?oggetto implica attivare anche gli eventuali suoi componenti hardware che software ? modulo software che riconosce dalle immagini le pose degli oggetti.
Vantaggiosamente ? anche qui descritto un programma di computer direttamente installato o caricabile nella memoria interna di un computer e comprendente un codice software atto ad effettuare una o pi? delle operazioni del metodo sopra descritto.
E? anche qui descritto un supporto elettronico leggibile per computer avente un programma memorizzato a quanto sopra indicato.
E? vantaggiosamente anche oggetto della presente invenzione un sistema per creare una cella robotica virtuale che controlla una cella robotica reale, il sistema comprendendo una sezione di configurazione virtuale della cella robotica e una sezione di programmazione della cella robotica virtuale creata;
La sezione di configurazione virtuale della cella robotica comprende una prima interfaccia grafica ed uno schermo video, la prima interfaccia grafica essendo programmata per generare nel detto schermo video una pluralit? di oggetti virtuali selezionabili in modo tale da definire la cella virtuale composta dagli oggetti virtuali selezionati, ogni uno di detti oggetti virtuali selezionati essendo associato univocamente ad un oggetto reale;
Ed in cui il detto sistema prevede un controllo configurato per consentire la definizione delle coordinate di posa spaziale degli oggetti della cella, detto controllo essendo programmato per attivare uno o pi? oggetti reali della cella e associati ogni uno ad un oggetto virtuale della cella creata, detta attivazione generando una stima delle coordinate di posa spaziale degli oggetti costituenti la cella.
Vantaggiosamente la detta sezione di programmazione della cella pu? comprendere una seconda interfaccia grafica avente una pluralit? di blocchi grafici, ogni blocco grafico essendo associato ad un codice di programmazione che esegue una certa operazione ed in cui ogni uno di detti blocchi grafici e selezionabile in modo tale da consentire di creare nello schermo video un diagramma di flusso formato da una successione di detti blocchi grafici definendo una successione di operazioni associate alla cella virtuale generata.
Breve descrizione dei disegni
Ulteriori caratteristiche e i vantaggi del presente sistema e relativo metodo, secondo l?invenzione, risulteranno pi? chiaramente con la descrizione che segue di alcune sue forme realizzative, fatte a titolo esemplificativo e non limitativo, con riferimento ai disegni annessi, in cui:
? La figura 1 mostra schematicamente in un diagramma le tre fasi relative al presente sistema, ovvero ?Configurazione della cella Robotica?, la ?Programmazione? ed infine ?l?esecuzione del programma e il monitoraggio del sistema?; ? La figura 2 mostra schematicamente un esempio di cella robotica virtuale, composta da diversi elementi come robot 10, pinze (10?) per la presa oggetti, sistemi di visione 20, uno o pi? magazzini 50 (in genere un punto di scarico o presa di oggetti coordinato, ad esempio un pancale dove gli oggetti vanno posizionati in una certa maniera pu? considerarsi un magazzino) e una o pi? macchine utensili 30;
? La figura 2A mostra il sistema di controllo 100 che comunica e gestisce, attraverso la apposita programmazione qui descritta, gli oggetti reali costituenti la cella robotica. Il sistema di controllo sar? dunque vantaggiosamente dotato di apposito sistema software e hardware;
? Le figure dalla 3 alla 5 mostrano una possibile interfaccia che serve a configurare una cella, in particolare in figura 3, 4 e 5 ? mostrata la sequenza che serve a definire univocamente i componenti che costituiranno la cella; La figura 3 mostra infatti la definizione ed introduzione di uno specifico robot, la figura 4 ? relativa alla introduzione di un modello di intelligenza artificiale, la figura 5 mostra l?introduzione di una specifica macchina utensile;
? La figura 5B indica la necessit? della identificazione di ogni elemento inserito nella cella, dato che pi? elementi potrebbero essere controllabili; in particolare viene evidenziato come una singola icona ? inizialmente associata a possibili (n) oggetti reali e dunque, attraverso quanto indicato nelle precedenti figure da 3 a 5 ? possibile identificare univocamente l?oggetto che comporr? la cella, ad esempio inserendo la porta e modello;
? La figura 6 mostra la cella finale configurata;
? La figura 6A meglio descrive la determinazione delle posizioni relative spaziali tra gli oggetti presenti nella cella, in particolare in questo caso tra robot ed un ostacolo, il tutto attraverso una predeterminata procedura guidata di seguito meglio descritta;
? La figura 7 e la figura 7A mostrano entrambe una possibile interfaccia di programmazione che serve, una volta creata la cella, a programmare le operazioni che dovr? eseguire;
Descrizione di alcune forme realizzative preferite
La figura 1 descrive tre macro-fasi relative all?invenzione: configurazione, programmazione e esecuzione del programma di una cella robotica, ovvero attivazione della cella secondo programmazione con possibilit? di monitoraggio dei parametri di lavoro.
Durante la fase di configurazione, l?invenzione consente di aggiungere e definire i diversi elementi che costituiscono una cella robotica.
Attraverso opportuni strumenti, tale configurazione risulta estremamente semplice ed intuitiva.
Durante la fase di programmazione ? possibile programmare in modo semplice i diversi elementi precedentemente configurati per eseguire un compito o una procedura stabilita.
Queste fasi verranno di seguito descritte nel dettaglio strutturale e funzionale.
La figura 2 schematizza dunque quello che ? un esempio non limitativo di cella robotica che, come detto nell?introduzione di arte nota, pu? comprendere pi? elementi tra loro cooperanti oltre al robot vero e proprio. In particolare, in questo caso di esempio, ? previsto l?utilizzo di un robot 10 il quale monta un cos? detto ?end effector?, ovvero in questo caso di esempio una pinza di afferraggio 10?.
Con il termine ?end effector? si intende dunque un accessorio che viene montato e dunque utilizzato dal robot il quale pu? essere ad esempio una pinza piuttosto che un cacciavite o un altro attrezzo in genere agganciabile ed azionabile dal robot. Con riferimento alla figura 2 ? dunque prevista, nella cella di esempio da configurare, anche un dispositivo di acquisizione immagini 20, ad esempio una telecamera, un magazzino di stoccaggio 50 e una macchina esterna 30.
La figura 2 mostra dunque, in modo non limitativo, possibili elementi che possono andare a comporre una qualsiasi cella robotica virtuale avente la sua corrispondente cella reale. La figura 2A mostra dunque il sistema di controllo 100 nel complesso (ad esempio l?hardware opportunamente programmato) ed oggetto della presente invenzione ed il quale ? programmato per eseguire le operazioni di seguito descritte.
Esso, dunque, ? collegato e gestisce i vari oggetti presenti nello stabilimento ove opera (dunque pi? robot, pi? telecamere, pi? macchine utensili ecc.).
In accordo ad una apposita programmazione, per come meglio dettagliato nel seguito, ? possibile indicare quali oggetti costituiscono una cella robotica da controllare ed eseguire la programmazione della cella al fine di poter effettuare le operazioni volute.
Grazie a questo sistema, come sar? chiarito nel seguito, ? possibile aggiornare la cella robotica. L?utente pu? ad esempio acquistare una nuova telecamera o un nuovo robot che viene configurato ed inserito nel sistema 100 di figura 2A. L?utente potr? cos? modificare la cella aggiungendo questo nuovo componente e potr? modificare le operazioni in modo semplice ed intuitivo.
Entrando maggiormente nel dettaglio della descrizione dell?invenzione, si descrive la fase di configurazione della cella.
CONFIGURAZIONE DELLA CELLA ROBOTICA:
DETERMINAZIONE DEGLI ELEMENTI COSTITUENTI LA CELLA:
Configurare una cella robotica prevede due macro-fasi, ovvero l?inserimento virtuale degli elementi che formano la cella e la definizione del loro posizionamento spaziale.
Altre definizioni riguardano la determinazione dei punti, linee o superfici descrittive dell?oggetto. Ad esempio, i punti di contatto della porta di una macchina CNC o le superficie di presa di un oggetto. In ogni caso, tali caratteristiche rappresentano sempre un elemento fisico facilmente identificabile dall?operatore.
Questa descrizione spaziale degli oggetti che formano la cella ? necessaria poich? il software possa poi gestire correttamente le operazioni di movimentazione delle parti movimentando correttamente i vari componenti.
Grazie infatti al posizionamento spaziale dei vari elementi della cella, sar? possibile, in modo preciso, calcolare e comandare le movimentazioni di uno o pi? braccio robotici, o pi? in generale di attuatori, da un punto ad un altro.
Le figure dalla 3 alla 5 mostrano dunque una fase di creazione della cella robotica in cui si selezionano da un ?menu? i componenti che la formeranno.
Sulla parte sinistra sono dunque presenti delle ?Icone? che rappresentano, attraverso una immagine o una indicazione in genere, un certo oggetto pre-definito che pu? far parte della cella. La figura mostra infatti ?Icone? relative a robot, ostacoli, sistemi di afferraggio (i cos? detti gripper) ecc. Ogni una di queste ?Icone? ? associata ai relativi oggetti reali che rappresenta e presenti nel mondo reale ove opera tale software, ad esempio uno stabilimento industriale, come schematicamente indicato nella figura 2A.
Dunque, ad esempio, le icone ?Robot? sono associata a tutti i robot realmente presenti nello stabilimento, come schematicamente indicato in figura 5B.
In questa fase, dunque e sempre con riferimento alle figure da 3 a 5, l?utente non fa altro che selezionare i vari componenti costituenti la cella al fine di indicare al sistema 100 quali sono, tra tutti, gli elementi che andranno a costituire la cella.
Nel caso di figura 3, ad esempio, viene selezionato il robot e sulla destra si apre una maschera che richiede l?inserimento dei dati per identificarlo univocamente, ad esempio nome, la porta di connessione ecc.
Questa operazione viene ripetuta per tutti gli elementi che si desiderano avere nella cella in modo tale da arrivare al risultato finale di una cella parzialmente configurata come da figura 6.
L?inserimento dei dati identificativi che consentono di identificare univocamente l?elemento o oggetto facente parte della cella ? importante, come si evince da figura 5B, dato che una icona, ad esempio riferita ad un robot, pu? potenzialmente controllare (n) robot di uno stabilimento.
Pi? in particolare, come da schematizzazione di figura 5B, se ad esempio lo stabilimento a cui viene fornito il presente sistema ? provvisto di dieci robot, il sistema 100 viene associato a tali dieci robot e dunque la icona robot ? associata a tutti i detti dieci robot.
E? dunque necessario dare al sistema di controllo 100 l?informazione di quale sia il robot specifico in questione che andr? a costituire la cella.
Le informazioni introdotte nelle fasi descritte dalla figura 3 alla 5 consentono di inserire uno o pi? dati che consentono una identificazione univoca di ogni oggetto o elemento in genere costituente la cella.
La figura 6 mostra dunque, a titolo di esempio, una possibile cella robotica virtuale che ? stata creata a seguito dei passi effettuati secondo la sequenza delle figure dalla 3 alla 5 ed in cui gli elementi costituenti la cella configurata appaiono adesso graficamente nella pagina di configurazione.
In questo modo l?utente visualizza immediatamente, in modo grafico, la cella costruita.
L?esempio di figura 6 riporta dunque una cella costituita da un robot 10 con una pinza 10?, una telecamera 20, due magazzini (50, 50?) e un sistema di riconoscimento 40 oggetti difettosi.
Ci? significa che nelle fasi precedenti da figura 3 a 5 tali elementi sono stati selezionati e univocamente identificati. La creazione della cella fornisce dunque al software, cio? al sistema 100 complessivo, informazioni relativi agli elementi presenti.
E? dunque possibile creare una nuova cella, utilizzare una cella precedentemente definita o salvare la cella attualmente configurata.
DETERMINAZIONE DELLE COORDINATE DI POSIZIONE E ORIENTAZIONE DEGLI ELEMENTI COSTITUENTI LA CELLA:
La posizione degli elementi tra loro costituenti la cella ? una informazione fondamentale perch? serve a gestire correttamente le varie movimentazioni che ad esempio il robot deve fare.
In accordo all?invenzione la determinazione delle posizioni relative ? effettuata in modo innovativo per come di seguito descritto.
Secondo una possibile soluzione ? possibile sfruttare la movimentazione del robot il quale ? fornito di uno strumento di misura, ad esempio un tastatore meccanico o un laser.
Ad esempio nel caso di tastatore il robot viene guidato a toccare, attraverso il tastatore, dei punti prestabiliti (uno o pi? di uno) di un ulteriore oggetto presente nella cella. In alternativa, se ad esempio lo strumento di misura ? un laser, viene guidato a muoversi sino a portare il laser nei punti prestabiliti per effettuare la misura. Lo strumento laser viene dunque puntato verso il punto di misura.
Andando ad esempio alla figura 6A, questa riporta un esempio di un braccio robotico e di un ostacolo presente nella cella (l?ostacolo potrebbe in realt? essere un qualsiasi oggetto quale una macchina utensile, un magazzino, ecc.).
Se dunque con riferimento alla figura 6A, si vuole indentificare la posizione (detta ?posa? nel gergo tecnico) relativa tra robot ed ostacolo (posa B rispetto ad A), la procedura pu? prevedere l?attivazione del robot che viene movimentato sino a toccare uno o pi? punti prestabiliti dell?ostacolo in questione, nel caso in cui sia ad esempio fornito di tastatore. Dunque l?utente che aziona il pulsante ?posiziona ostacolo (ad esempio macchina utensile) con robot? guida, ad esempio con un jostick virtuale, a muovere passopasso il braccio robotico sino a toccare un insieme di punti prestabiliti dell?ostacolo. La movimentazione dei motori del braccio robotico e/o la geometria nota del robot unitamente ai suoi gradi di libert? sono informazioni che vengono elaborate dal controllo 100 tale per cui, raggiunti i punti finali prestabiliti dell?ostacolo, ? facilmente possibile determinare le coordinate spaziali di posizionamento dell?ostacolo e del robot rispetto alla cella in senso assoluto e le distanze reciproche relative.
Lo stesso accade con un laser anche se, a differenza del tastatore, il laser viene fermato in prossimit? dei punti, senza toccare i punti in questione, in modo tale da intercettare i punti tramite il raggio laser.
In questo modo, dunque, ? nota la posizione spaziale della dell?ostacolo (ad esempio una macchina utensile) rispetto al robot.
In una variante di invenzione si pu? utilizzare un accessorio quale una telecamera di cui ? nota la posizione nella cella, e dunque facente parte della cella, per determinare le posizioni dei componenti della cella.
Se ? dunque nota a priori nella cella la posizione di una telecamera, l?acquisizione di una immagine di un ulteriore oggetto presente nella cella e la analisi di tale immagine con software dedicati consente di risalire alle coordinate di posizione dell?oggetto inquadrato nell?immagine.
In una ulteriore variante di invenzione, lo stesso robot pu? invece essere fornito di telecamera tale per cui movimentandosi inquadra la cella e l?analisi di immagine consente di ricostruire facilmente tutte le posizioni relative degli elementi della cella.
In sintesi, dunque, le posizioni dei componenti della cella possono essere ottenuti in modo equivalente:
1) l'uso del robot come posizionatore che pu? essere manovrato in modo manuale tramite teach-pendant (sostanzialmente un joystick) o guida tramite controllo in forza del manipolatore, tecnica usata nei robot collaborativi (hand-guidance)
Il robot pu? un questo caso essere equipaggiato con:
Con tastatori fisici;
Strumenti di misura (ad esempio laser) che misurano la distanza in maniera tale da non toccare l'oggetto;
2) L'uso di telecamere fisse che inquadrano la scena e consentano di riconoscere gli oggetti presenti nella scena ad esempio tramite l?ulteriore ausilio di:
- marker apposti sull'oggetto;
- input dell'utente (l'utente dovr? dire cosa ? la forma riconosciuta);
- tramite modelli virtuali dell'oggetto (sapendo come ? fatta una macchina cnc il modello di intelligenza artificiale classificher? automaticamente la macchina).
3) L'uso di una camera montata sul robot che insieme all'utilizzo di intelligenza artificiale (con opportuni marker da posizionare sugli oggetti o utilizzando le informazioni dei modelli virtuali degli oggetti) ricostruisce automaticamente la configurazione della cella.
In sostanza, dunque, in accordo alla presente invenzione ? possibile risalire alla predisposizione spaziale degli elementi presenti nella cella attraverso la determinazione della posizione nella cella di almeno un elemento che risulta come una sorta di origine di riferimento e determinando il posizionamento spaziale nella cella degli altri eventuali rimanenti uno o pi? elementi presenti nella cella attraverso una attivazione dell?elemento gi? posizionato.
Nel caso di robot quale elemento inizialmente identificato in termini di posizione, la sua attivazione pu? essere una sua movimentazione sino a toccare l?altro elemento di cui determinarne la posizione o comunque portare uno strumento di misura in una predeterminata posizione rispetto all?altro elemento.
Nel caso di telecamera, la sua attivazione pu? essere una acquisizione di immagine che inquadra un altro oggetto della cella e la cui elaborazione dell?immagine consente di risalire alle coordinate di posizionamento dell?oggetto in questione rispetto alla telecamera.
A titolo di esempio, dunque, la figura 6A mostra il robot posto in una origine cartesiana che muove la sua estremit? (vedasi la freccia in grassetto) per toccare un ostacolo facente parte della cella costruita virtualmente e la sua movimentazione consente di risalire alle coordinate spaziali, nella cella, del detto ostacolo rispetto al robot.
Come gi? detto, un metodo pu? prevedere una guida a mano del robot per guidare il "posizionatore" tramite joystick.
Come detto, vi pu? essere la possibilit? di utilizzare altri dispositivi di rilevamento come i laser per misurare le dimensioni e la posizione degli elementi all'interno della cella.
In una possibile ulteriore variante sarebbe possibile effettuare la stima di misura suddetta attraverso la localizzazione e la mappatura "autonoma" degli oggetti tramite strumenti di visione, esattamente come fanno gli AGV (veicoli a guida automa).
In tal caso si potrebbe avere il robot equipaggiato con una telecamera che ispezionerebbe la cella identificando i componenti stessi della cella.
In accordo a tale soluzione sar? possibile aggiungere degli ID (codici QR o simili) visibili al robot sugli oggetti di interesse, in maniera da poter riconoscere la posizione mappando gli oggetti (per esempio, gli ostacoli dovranno avere un certo codice QR, le macchine CNC un altro e cos? via?).
Una volta configurata la cella, ? possibile programmare i diversi elementi precedentemente aggiunti al fine di eseguire un determinato compito.
PROGRAMMAZIONE DELLA CELLA:
La figura 7 mostra, a tal scopo, la fase di programmazione della cella robotica definita nella sezione precedente.
In particolare ? mostrato un visualizzatore di programma che mostra, secondo diagramma di flusso a blocchi, il programma che viene eseguito.
In sostanza sono presenti una serie di azioni che sono in realt? gi? graficamente predefinite e che possono essere tranquillamente trascinate nella pagina e combinate secondo la sequenza desiderata, al fine di creare la sequenza di operazioni desiderate (di fatto un certo diagramma di flusso). Si pu? dunque predisporre una ?Creazione Nuovo Programma? e selezionare dal men? delle azioni predefinite.
Ad esempio sono mostrate alcune possibili selezioni di istruzioni quali Istruzioni dei componenti fondamentali o Istruzioni di controllo del flusso o ancora Istruzioni Avanzate.
L?ulteriore figura 7A mostra infatti sempre un esempio di interfaccia di programmazione della cella visibile dallo schermo di un elaboratore, ad esempio un PC o similari. Facendo uso di un insieme di istruzioni collegate agli elementi precedentemente definiti, ? possibile generare dei programmi in modo semplice ed intuitivo aggiungendo comandi base, comandi avanzati o istruzioni di programma, direttamente nel programma che si vuole eseguire. Per istruzioni di flusso si intendono tutte quelle istruzioni che definiscono l?andamento del programma, come ad esempio un?istruzione condizionale, l?attesa di un particolare segnale elettrico o la chiamata di un sottoprogramma. Dall?interfaccia di programmazione ? quindi possibile creare un nuovo programma, caricare un programma precedentemente realizzato o salvare il programma corrente. Ogni istruzione (ad esempio il blocco del diagramma illustrato in figura 7A che riporta verbalmente l?istruzione ?PRENDI OGGETTO DA MACCHINA UTENSILE?), richiama ed ? associata ad una certa stringa di programmazione che consente di eseguire tale operazione, composizioni di pi? operazione elementari. L?utente, dunque, non deve preoccuparsi di costruire le singole istruzioni per l?esecuzione di un questo comando, dal momento che questo ? gi? stato fatto ed ? associato ai blocchi previsti.
I comandi sono selezionabili e trascinabili nella pagina in modo tale da poter essere sistemate secondo un ordine sequenziale desiderato.
La visualizzazione del programma di figura 7 come anche di figura 7A, infatti, mostra le istruzioni da 1 a ?n? e con ogni istruzione in forma di una casella grafica che riporta verbalmente e/o graficamente l?istruzione da eseguire. In questo modo ? estremamente intuitivo per l?utente anche non specializzato la costruzione del programma secondo le operazioni desiderate.
Ovviamente ogni istruzione rappresentata da un simbolo grafico (ad esempio un blocco del diagramma che riporta verbalmente l?istruzione) richiama ed ? associata ad una certa stringa di programmazione che consente di eseguire tale operazione.
L?utente, dunque, non deve preoccuparsi di costruire un linguaggio di programmazione per le varie azioni in quanto questo ? gi? stato fatto ed ? associato ai blocchi previsti. Ogni blocco (Istruzione 1, Istruzione 2?Istruzione n) ? dunque associato ad un certo codice o stringa di programmazione che consente alle macchine di coordinarsi per eseguire tale operazione.
Istruzione 1 Codice di programmazione 1
Istruzione n Codice di programmazione n L?utilizzatore finale non pu? modificare e non conosce i codici di programmazione (cio? il software vero e proprio) che governa ogni istruzione che lui visualizza.
Il sistema, in automatico, esegue dunque i codici di programmazione secondo l?ordine sequenziale che graficamente costruisce l?utente, come da sequenza di esempio relativa alla visualizzazione di programma di figura 7 e 7A.
Il programma, una volta costruito, pu? essere mandato in esecuzione (vedi tasto ?Run?), pu? essere posto in pausa, bloccato, salvato e/o modificato all?occorrenza.
L'interfaccia grafica includer? un insieme di funzioni non elementari che coordinano l'uso degli elementi della cella, al fine di eseguire operazioni intuitive per l'uomo. Ad esempio, la presa automatica di un oggetto ? sempre disponibile ogni volta che nella cella sono presenti un gripper e una fotocamera che consente di stimare la posizione di presa dell'oggetto.
L?utente quindi non dovr? aggiungere la sequenza delle istruzioni elementari (muovi robot, apri gripper,?) che devono essere eseguite in maniera coordinata per eseguire l'attivit? desiderata. Verr? dunque fornito un insieme di funzioni orientate alle attivit?, semplificando il coordinamento dei diversi elementi della cella che saranno gestiti autonomamente dalla centralina in 100.

Claims (10)

RIVENDICAZIONI
1. Un metodo per creare una cella robotica virtuale che controlla una cella robotica reale, il metodo comprendendo una fase di configurazione virtuale della cella robotica e una fase di programmazione della cella robotica virtuale creata;
- La fase di configurazione virtuale della cella robotica comprendendo:
a) La visualizzazione, in uno schermo video, di uno o pi? oggetti virtuali;
b) La selezione di uno o pi? di detti oggetti virtuali in modo tale da definire virtualmente la cella contenente detti oggetti virtuali selezionati;
- c) La associazione univoca di ogni uno di detti oggetti virtuali selezionati ed inseriti nella cella virtuale con un corrispettivo oggetto reale in modo tale che alla cella virtuale corrisponda una cella reale che viene controllata tramite detta cella virtuale;
- d) La determinazione della posa spaziale (Pos, Or.) degli oggetti nella cella, la detta operazione comprendendo, tramite la cella virtuale, l?attivazione di uno o pi? oggetti della cella reale il/i quale/i si attiva/no eseguendo una operazione di misura nella cella reale.
2. Il metodo, secondo la rivendicazione 1, in cui detta fase di programmazione della cella virtuale comprende la predisposizione di una pluralit? di blocchi grafici, ogni blocco grafico essendo associato ad un codice di programmazione che esegue una certa operazione ed in cui ogni uno di detti blocchi grafici e selezionabile in modo tale da generare un complessivo diagramma di flusso formato da una successione di operazioni.
3. Il metodo, secondo la rivendicazione 1, in cui la detta operazione di misura comprende la attivazione di almeno una telecamera che inquadra la cella o una parte di essa e con detta telecamera programmata per identificare gli oggetti della cella e determinarne le loro pose.
4. Il metodo, secondo la rivendicazione 1, in cui la detta operazione di misura comprende la attivazione di almeno un robot della cella il quale viene movimentato in modo tale da posizionare un elemento di misura in uno o pi? punti prestabiliti, preferibilmente detto elemento di misura essendo di tipo meccanico o di tipo elettronico, ad esempio un tastatore oppure un laser.
5. Il metodo, secondo la rivendicazione 1, in cui la detta operazione di misura comprende la attivazione di almeno un robot della cella dotato di una telecamera e con il robot che si movimenta per inquadrare, attraverso detta telecamera, l?intera cella o una parte di essa, in modo tale che, attraverso le immagini acquisite, si determinano le pose degli oggetti.
6. Il metodo, secondo una o pi? delle precedenti rivendicazioni, in cui ? prevista una fase di attivazione della cella robotica che viene controllata secondo la programmazione creata.
7. Il metodo, secondo una o pi? delle precedenti rivendicazioni, in cui ? compresa la visualizzazione e/o controllo di uno o pi? dati relativi alle operazioni eseguite dalla cella robotica.
8. Il metodo, secondo una o pi? delle precedenti rivendicazioni, essendo implementabile da un computer.
9. Un programma di computer direttamente installato o caricabile nella memoria interna di un computer e comprendente un codice software atto ad effettuare le operazioni del metodo in accordo ad una o pi? delle precedenti rivendicazioni dalla 1 alla 8.
10. Un sistema per creare una cella robotica virtuale che controlla una cella robotica reale, il sistema comprendendo una sezione di configurazione virtuale della cella robotica e una sezione di programmazione della cella robotica virtuale creata;
- La sezione di configurazione virtuale della cella robotica comprendendo una prima interfaccia grafica ed uno schermo video, la prima interfaccia grafica essendo programmata per generare nel detto schermo video una pluralit? di oggetti virtuali selezionabili in modo tale da definire la cella virtuale composta dagli oggetti virtuali selezionati, ogni uno di detti oggetti virtuali selezionati essendo associato univocamente ad un oggetto reale;
- Ed in cui il detto sistema prevede un controllo configurato per consentire la definizione delle coordinate di posa spaziale degli oggetti della cella, detto controllo essendo programmato per attivare uno o pi? oggetti reali della cella e associati ogni uno ad un oggetto virtuale della cella creata, detta attivazione generando una stima delle coordinate di posa spaziale tra loro degli oggetti costituenti la cella.
IT102021000001268A 2021-01-25 2021-01-25 Sistema e metodo di configurazione e programmazione di una cella robotica IT202100001268A1 (it)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT102021000001268A IT202100001268A1 (it) 2021-01-25 2021-01-25 Sistema e metodo di configurazione e programmazione di una cella robotica

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102021000001268A IT202100001268A1 (it) 2021-01-25 2021-01-25 Sistema e metodo di configurazione e programmazione di una cella robotica

Publications (1)

Publication Number Publication Date
IT202100001268A1 true IT202100001268A1 (it) 2022-07-25

Family

ID=75439219

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102021000001268A IT202100001268A1 (it) 2021-01-25 2021-01-25 Sistema e metodo di configurazione e programmazione di una cella robotica

Country Status (1)

Country Link
IT (1) IT202100001268A1 (it)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11925297B1 (en) * 2023-08-16 2024-03-12 Starbucks Corporation Calibration tool for a coffee grinder

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3243607A1 (en) 2016-05-09 2017-11-15 OpiFlex Automation AB A system and a method for programming an industrial robot
WO2019021045A1 (en) * 2017-07-26 2019-01-31 Abb Schweiz Ag METHOD AND SYSTEM FOR ACTION OF AN INDUSTRIAL ROBOT BASED ON A PARAMETER
US20190291275A1 (en) * 2018-03-21 2019-09-26 The Boeing Company Robotic system and method for operating on a workpiece
EP3722052A1 (en) * 2019-04-08 2020-10-14 Arrival Limited A method for determining camera placement within a robotic cell environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3243607A1 (en) 2016-05-09 2017-11-15 OpiFlex Automation AB A system and a method for programming an industrial robot
WO2019021045A1 (en) * 2017-07-26 2019-01-31 Abb Schweiz Ag METHOD AND SYSTEM FOR ACTION OF AN INDUSTRIAL ROBOT BASED ON A PARAMETER
US20190291275A1 (en) * 2018-03-21 2019-09-26 The Boeing Company Robotic system and method for operating on a workpiece
EP3722052A1 (en) * 2019-04-08 2020-10-14 Arrival Limited A method for determining camera placement within a robotic cell environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11925297B1 (en) * 2023-08-16 2024-03-12 Starbucks Corporation Calibration tool for a coffee grinder

Similar Documents

Publication Publication Date Title
JP7198831B2 (ja) オンデマンド遠隔操作を備えた自律ロボット
US11667030B2 (en) Machining station, workpiece holding system, and method of machining a workpiece
JP5939213B2 (ja) ロボット制御装置及びロボット制御方法
JP5850004B2 (ja) ロボット制御装置及びロボット制御方法
EP3552775B1 (en) Robotic system and method for operating on a workpiece
KR910000873B1 (ko) 조립 로보트의 제어방법과 그 제어 시스템
JP5436460B2 (ja) 産業用ロボットシステム
US20040189631A1 (en) Method and device for visualizing computer-generated informations
CN105598987A (zh) 借助机器人确定关于对象的抓取空间
CN112207813B (zh) 运算装置、机器学习方法以及非暂时性存储介质
US20180354141A1 (en) Robot system
EP3512667A1 (en) Method of programming an industrial robot
JPH10111707A (ja) 作業領域操作方法及びベンディングプレス機に隷属するロボット
Kana et al. Human–robot co-manipulation during surface tooling: A general framework based on impedance control, haptic rendering and discrete geometry
CN107303670A (zh) 通用协作机器人、机器人系统及通用协作机器人执行操作任务的控制方法
Pedersen et al. On the integration of hardware-abstracted robot skills for use in industrial scenarios
IT202100001268A1 (it) Sistema e metodo di configurazione e programmazione di una cella robotica
WO2019194316A1 (ja) 多機能統合型作業テーブルおよびそれを用いた生産システム
CN110914021A (zh) 带有用于执行至少一个工作步骤的操纵设备的操纵装置以及方法和计算机程序
Pedersen et al. Using human gestures and generic skills to instruct a mobile robot arm in a feeder filling scenario
EP0830921B1 (en) A method for handling metal sheets in a working area comprising a machine tool and a robot
JP2020163511A (ja) 遠隔操作ロボットの作業支援システム及び作業支援方法
CN111899629B (zh) 柔性机器人教学系统和方法
Ji et al. Interface architecture design for minimum programming in human-robot collaboration
KR20220050953A (ko) 적어도 하나의 기계, 특히 기계들의 집합체를 제어하기 위한 시스템 및 방법