IT202100027485A1 - Apparato e procedimento per la programmazione di robot per mezzo di dimostrazione - Google Patents
Apparato e procedimento per la programmazione di robot per mezzo di dimostrazione Download PDFInfo
- Publication number
- IT202100027485A1 IT202100027485A1 IT102021000027485A IT202100027485A IT202100027485A1 IT 202100027485 A1 IT202100027485 A1 IT 202100027485A1 IT 102021000027485 A IT102021000027485 A IT 102021000027485A IT 202100027485 A IT202100027485 A IT 202100027485A IT 202100027485 A1 IT202100027485 A1 IT 202100027485A1
- Authority
- IT
- Italy
- Prior art keywords
- robot
- pointing device
- programming
- camera
- operator
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 34
- 238000012545 processing Methods 0.000 claims description 22
- 239000003550 marker Substances 0.000 claims description 20
- 210000000707 wrist Anatomy 0.000 claims description 18
- 230000009466 transformation Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 11
- 230000004913 activation Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000009432 framing Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 5
- 230000003319 supportive effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 230000000007 visual effect Effects 0.000 claims description 2
- 230000008901 benefit Effects 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 10
- 238000000844 transformation Methods 0.000 description 8
- 230000004807 localization Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 101100481787 Mus musculus Tob1 gene Proteins 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 244000025254 Cannabis sativa Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000004753 textile Substances 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0081—Programme-controlled manipulators with master teach-in means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
- G05B19/427—Teaching successive positions by tracking the position of a joystick or handle to control the positioning servo of the tool head, master-slave control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36184—Record actions of human expert, teach by showing
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36452—Touch points with handheld probe, camera detects position and orientation probe
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40202—Human robot coexistence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40391—Human to robot skill transfer
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40425—Sensing, vision based motion planning
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
- Automobile Manufacture Line, Endless Track Vehicle, Trailer (AREA)
Description
Titolo: Apparato e procedimento per la programmazione di robot per mezzo di dimostrazione
Ambito dell?invenzione
La presente invenzione riguarda dispositivi e procedimenti per la programmazione di robot, in particolare di robot collaborativi.
Analisi dello stato dell?arte
I robot sono diventati sempre pi? strumenti indispensabili nello svolgimento di svariate operazioni, spesso pericolose, in contesti industriali o di altra natura. Ne esistono di varia tipologia, antropomorfi, SCARA, paralleli, umanoidi, e di varie dimensioni, capacita di carico, velocit?. I dispositivi autonomi domestici per tagliare l?erba o aspirare la polvere sono denominati robot. Tutto ci? a dimostrare la grande variet? rappresentata dal termine ?robot?. Ai fini dell?illustrazione del presente trovato, i robot possono essere sostanzialmente suddivisi in due grandi famiglie: robot tradizionali e robot collaborativi, chiamati in gergo anche ?cobot?. I primi operano in ambienti controllati, con misure di sicurezza che obbligano l?operatore a rimanere a distanza durante l?esecuzione del ciclo di lavoro.
Al contrario, i cobot operano vicino all?operatore con il quale fattivamente collaborano. Essi infatti sono dotati di meccanismi di rilevazione delle forze agenti in ogni loro parte, quindi in grado di rilevare collisioni, fermandosi ad esempio se urtano una persona.
Nel passato e tuttora, la programmazione standard di un robot collaborativo (ma anche di quelli classici) si esegue secondo una modalit? che richiede lo spostamento del tool (o utensile) del robot, la verifica della sua posizione, la memorizzazione della posizione e inclinazione. Tutto ci? pu? risultare molto dispendioso in termini di tempo per un numero notevole di pose come pu? essere richiesto da una lavorazione di media complessit?. Nel caso di robot classici il posizionamento del tool nelle varie pose da programmare avviene per mezzo di un ?teach pendant?. Questo dispositivo consiste di una console portatile fornita insieme al robot che presenta un?interfaccia con bottoni per muovere il tool nelle varie direzioni e memorizzare ogni singola posa, permettendo cos? di programmare il robot secondo un metodo spesso denominato punto-punto (?point-to-point?). Il teach pendant pu? eventualmente essere dotato di una telecamera finalizzata ad agevolare l?assistenza da remoto, come rivendicato nel documento WO2010130289A1 a nome
oppure finalizzata a costruire un ambiente di realt? aumentata per facilitare la programmazione, come nei documenti US2021023694A1 a nome e US2020384647A1, a nome
Nel caso di robot collaborativi, invece, il posizionamento pu? avvenire ancora attraverso il teach pendant (che ? comunque presente e funge da interfaccia con l?operatore) ma anche attraverso una particolare modalit? (?kinesthetic teaching?) in cui il robot viene messo in condizione di essere ?trascinato? con poco sforzo dall?operatore, e posizionato manualmente nelle varie pose. Tale modalit? di programmazione, ad esempio descritta nella domanda WO2017/178469, a nome Universal Robots A/S, richiede molto tempo per la necessit? da parte dell?operatore di muovere il robot nelle posizioni richieste dal programma. Inoltre, il posizionamento ?fine?, ossia molto accurato dell?utensile, richiede tipicamente degli aggiustamenti operati tramite teach pendant.
Telecamere e marker di riferimento sono largamente impiegati in ambito robotico. Una soluzione che li usa entrambi ? ad esempio descritta nella domanda WO2021050646A1 a nome . Tale documento riguarda un dispositivo montato su robot che pu? essere movimentato attorno ad una macchina utensile. Sul braccio del robot ? montata una telecamera che acquisisce una ?figura di identificazione? collocata sulla superficie piana di un tavola in ceramica. Lo scopo ? consentire l?utilizzo del robot in diverse stazioni di lavoro muovendolo dall?una all?altra e facendo s? che il robot si posizioni in ogni stazione nello stesso modo in cui era posizionato rispetto alla prima stazione. Gli insegnamenti contenuti in tale domanda non sono tuttavia utili per mettere a punto un dispositivo ed un metodo di programmazione di un robot.
Anche in ambito di calibrazione di bracci robotici, le telecamere e i marker sono ampiamente usati (si veda a titolo di esempio US2020198145A1 a nome
e US7945349B2 a nome ), ma con un fine totalmente diverso rispetto a quello del presente trovato che riguarda, invece, la programmazione del robot.
Per quanto riguarda la programmazione dei robot, l?ambito a cui ? appunto rivolto il presente trovato, una soluzione significativa ? riportata nel brevetto statunitense US7353081B2 a nome . In tale documento si descrive un metodo per programmare un robot tramite un puntatore ed una telecamera. Il metodo comprende le fasi di ottenere un'immagine rilevata da una telecamera dell'oggetto da sottoporre a lavorazione e di ottenere le informazioni sulla posizione di un dispositivo puntatore collocato sull'oggetto o in prossimit? di esso. Il puntatore ? un dispositivo attivo, di forma simile ad una penna per essere impugnata con facilit? da parte dell?operatore, ed avente tasti per l?acquisizione della posizione ed orientamento del puntatore stesso. La telecamera pu? essere fissata nello spazio o spostata in altro modo, ad esempio, la telecamera pu? essere fissata alla testa dell'operatore, o altrove sul suo corpo. Tuttavia, tale brevetto ? silente sul fatto che la telecamera possa essere fissata direttamente sul robot da addestrare ed in particolare sul polso del robot. Particolarmente, una forma realizzativa di US7353081B2 si riferisce ad un metodo per programmare un robot basato sul riconoscimento di immagini nel quale sono utilizzati due marcatori: un marcatore cosiddetto ?di riferimento? in relazione fissa con l'oggetto, ed un marcatore ?di puntamento? attaccato al puntatore (in pratica, la funzione del marcatore ?di riferimento? ? quella di riconoscere dove si trova il puntatore rispetto al sistema di coordinate di riferimento dato dal marcatore di riferimento). Si segnala che ai fini dell?attuazione dell?insegnamento descritto in US7353081B2, i marcatori devono essere distinti e asimmetrici in modo da poter essere riconosciuti da tutte le angolazioni tramite l?algoritmo di riconoscimento delle immagini acquisite dalla telecamera.
Bench? l?insegnamento dischiuso in US7353081B2 costituisca un avanzamento delle conoscenze nell?ambito dei dispositivi e metodi di programmazione di robot basati su telecamere e puntatore, ? evidente che presenti alcuni significativi svantaggi.
Una prima limitazione ? il fatto che il puntatore sia un dispositivo attivo e quindi abbia un costo non trascurabile. Inoltre, la sua attuazione richiede almeno due marcatori in quanto il procedimento di localizzazione del puntatore sfrutta un sistema di riferimento ?mondo?. A tal proposito si segnala che la telecamera non ? a bordo del robot. Questa seconda limitazione determina scarse prestazioni della soluzione descritta in US7353081B2 in termini di precisione nel posizionamento nonch? di costanza e ottimalit? del punto di vista della telecamera. In particolare, US7353081B2 non insegna n? suggerisce all?esperto del ramo alcun meccanismo di inseguimento del marker. Inoltre, richiede che i due marcatori siano entrambi presenti entro il campo di vista della telecamera, limitando cos? l?area di lavoro. In conclusione, le limitazioni delle tecnologie attuali riguardano il costo, la difficolt? di installazione (ad esempio di illuminatori o altre telecamere), l?area di lavoro ed il livello di precisione raggiunta.
In conclusione, per i motivi sopra esposti, ? necessario disporre di una soluzione migliorativa al problema di programmare un robot, in particolare di un robot collaborativo, basata sull?impiego di telecamere e di un dispositivo puntatore.
Descrizione generale dell?invenzione
Scopi dell?invenzione
Partendo dunque, dai limiti dei sistemi noti allo stato attuale dell?arte, la presente invenzione intende superarli in maniera compiuta, fornendo un nuovo ed innovativo apparato per la programmazione di robot ed un procedimento ad esso collegato.
Pertanto, il primo e principale scopo del presente trovato ? realizzare un apparato per la programmazione di robot basato su un dispositivo di puntamento/posizionamento, semplice da utilizzare, sostanzialmente passivo, e che possa essere anche totalmente passivo ovvero del tutto privo di elettronica di comunicazione con l?unit? di calcolo.
Unitamente al compito principale sopra esposto, un secondo importante scopo del presente trovato ? realizzare detto apparato in modo che presenti elevata precisione regolabile in base alle necessit? dell?applicazione.
Collegato ai compiti sopra esposti, un terzo importante scopo del presente trovato ? realizzare un apparato in grado di gestire condizioni di pericolo o anomalie nella fase di programmazione del robot.
Infine, un ulteriore compito del presente trovato ? realizzare un apparato per la programmazione di robot collaborativi ed un procedimento ad esso collegato che possa essere realizzato o attuato in modo semplice ed economico mediante tecnologie note.
Descrizione generale dell?invenzione
Questi ed altri scopi ancora, che pi? chiaramente appariranno in seguito, vengono raggiunti da un apparato per la programmazione di robot, da un robot che include detto apparato, e da un procedimento ad esso collegato, le cui caratteristiche essenziali sono definite dalle unite rivendicazioni 1, 13 e 14, rispettivamente, e le cui caratteristiche di dettaglio dalle corrispondenti rivendicazioni dipendenti. Le suddette rivendicazioni, cui si rimanda per brevit? di esposizione, sono nel seguito specificatamente e concretamente definite e si intendono parte integrante della presente descrizione.
In sintesi, l?oggetto del brevetto ? un apparato per la programmazione di robot basato su un puntatore passivo dotato di marker e su una o pi? telecamere che interagiscono con detto puntatore. Si precisa che nella presente specifica il termine ?sostanzialmente passivo? riferito al puntatore designa un dispositivo di puntamento nel quale l?elettronica non determina la posizione e l?orientazione nello spazio del puntatore, n? invia segnali (ad esempio segnali elettromagnetici) utili a tale scopo, ma permette esclusivamente la comunicazione con l?unit? di calcolo nel quale tale calcolo ? effettuato. Il termine ?totalmente passivo? definisce un dispositivo di puntamento del tutto privo di elettronica di comunicazione con l?unit? di calcolo che determina la posizione e l?orientazione nello spazio del puntatore.
Preferibilmente il robot ? un cobot anche se potrebbe essere un robot di altro tipo come un robot industriale oppure umanoide. In alcune forme realizzative preferite la telecamera ? montata sul polso del robot o su altri componenti mobili del robot come un asse esterno o un carrello. In forme realizzative alternative, la telecamera non ? a bordo del robot ma ? fissa nell?ambiente all?interno del quale opera il robot.
Il puntatore ? un dispositivo tipicamente a forma di penna, il quale viene posizionato nel volume di lavoro dall?operatore permettendo cos? di determinare la posizione e l?orientazione nello spazio del puntatore e quindi dell?utensile del robot in un certo momento del ciclo di lavoro che si vuole programmare. Nella presente specifica, il termine ?posa? designer? la posizione e l?orientazione nello spazio del puntatore e quindi dell?utensile del robot.
La posa del puntatore viene stimata da una o pi? telecamere per mezzo di un algoritmo di visione computazionale basato su ?fiducial markers?. Tale algoritmo permette di abilitare un meccanismo di inseguimento (?tracking?), che rende possibile al robot di modificare la propria posizione per mantenere costante (o variabile entro certe tolleranze) la posa relativa fra telecamera e dispositivo di puntamento nel corso della programmazione.
Grazie a tale meccanismo di inseguimento, il sistema di programmazione presenta elevata precisione, costanza e ottimalit? (questa ? il risultato di alcuni parametri geometrici come la distanza fra i marker e la punta del puntatore, la distanza della telecamera dai marker, la distanza dei marker fra loro). Vantaggiosamente la precisione ? regolabile in base alle necessit? dell?applicazione. Ad esempio uno spazio di manovra limitato nell?area di lavoro potrebbe richiedere una distanza maggiore tra telecamera e i marker, che pu? essere compensata da un allargamento della configurazione dei marker o un loro posizionamento pi? vicino alla punta del puntatore.
Il dispositivo di puntamento, il robot, o l?unit? di elaborazione nella quale ? eseguito il codice di stima della posa e di tracking, sono dotati di una modalit? di interazione con l?operatore (a titolo di esempio, pulsanti, sistemi di interazione gestuale o vocale) che consente di memorizzare la posa corrente, di cancellare l?ultima posa memorizzata e di effettuare altre operazioni finalizzate alla costruzione e manipolazione di una sequenza di pose che costituiscono il programma del robot (o a partire dalle quali il programma del robot viene costruito o modificato). La modalit? di interazione pu? escludere l?uso di elettronica di comunicazione con l?unit? di calcolo, grazie ad algoritmi di intelligenza artificiale (AI) che interpretano i movimenti della mano oppure altri tipi di gesture atti a fungere da ?pulsanti virtuali? del puntatore.
La modalit? di programmazione secondo il presente trovato, di seguito descritta in dettaglio, vantaggiosamente non richiede un dispositivo ?teach-pendant?, non richiede programmazione off-line ed ? estremamente veloce ed intuitiva.
Inoltre, contrariamente alle soluzioni note (in particolare rispetto a US7353081B2) richiede l?impiego di un solo target (definito ?marker? in US7353081B2), solidale al puntatore, poich? la determinazione della posa prescinde dalla localizzazione del puntatore rispetto a un sistema di riferimento ?mondo? e si limita (con vantaggio per la precisione) alla sua localizzazione rispetto alla telecamera.
Nel caso la telecamera sia installata a bordo del robot, attraverso il meccanismo di inseguimento del marker implementato, ? possibile eliminare il problema delle occlusioni e le limitazioni dell?area di lavoro legate alla necessit? di inquadrare pi? di un marker contemporaneamente.
Infine, dotando il dispositivo secondo il trovato di una o pi? telecamere aggiuntive che inquadrano l?area di lavoro in posizione fissa rispetto al robot, ? anche possibile segnalare eventuali posizioni pericolose dell?utente, o comportamenti pericolosi, o anomalie nel processo di teaching mediante puntatore.
Descrizione delle figure
Ulteriori caratteristiche e vantaggi del trovato, risulteranno maggiormente dalla descrizione di cinque sue forme di esecuzione preferita ma non esclusiva, illustrate a titolo indicativo e non limitativo nelle unite tavole di disegni, in cui:
- la Figura 1 illustra l?apparato per la programmazione secondo la prima forma realizzativa preferita del trovato;
- la Figura 2 illustra, alla lettera (a), il dispositivo di puntamento secondo il trovato con evidenza del target con i marker; alla lettera (b) il dispositivo di puntamento con il target fissato alla parte superiore in modo da migliorare l?ergonomia; alla lettera (c), il dispositivo di puntamento con il target fissato alla parte inferiore del dispositivo di puntamento in modo da migliorare la precisione;
- la Figura 3 illustra l?apparato per la programmazione del trovato nella seconda forma realizzativa del presente trovato;
- la Figura 4 illustra l?apparato per la programmazione del trovato nella terza forma realizzativa del presente trovato.
Descrizione dettagliata
A titolo esemplificativo e non limitativo di seguito si riporta la descrizione dettagliata del dispositivo e del procedimento per la programmazione di robot secondo il trovato attraverso l?esposizione di alcune forme realizzative preferite.
Forma realizzativa preferita del dispositivo
In sintesi, nella prima forma realizzativa preferita il dispositivo secondo il trovato include un?unica telecamera a bordo del robot, ovvero ?eye-in-hand?, con il robot di tipo collaborativo che segue in tempo reale il puntatore ad una certa distanza per mantenere un?inquadratura ottimale.
Con riferimento all?unita Figura 1, detto dispositivo ? indicato complessivamente con il numero (1) e comprende: un dispositivo di puntamento (10), o puntatore, avente un corpo (102) modellato in modo da facilitare l?impugnatura da parte di un operatore; un target (11) solidale a detto puntatore (10); una singola telecamera (20) montata sul polso (51) di un robot (50) collaborativo; ed un?unit? di elaborazione (30) associata al dispositivo (10) su cui ? implementato un software che regola il funzionamento del dispositivo.
Il corpo del puntatore (10) ? dotato di alcuni pulsanti (12) per interagire con l'unit? di elaborazione (30) attraverso una modalit? wireless ad esempio WiFi o Bluetooth<? >(Bluetooth<? >? un marchio di Bluetooth Special Interest Group Inc). Tuttavia gli eventi da comunicare possono essere attivati da pulsanti presenti su un altro piccolo dispositivo portatile presente, ad esempio, nell?altra mano dell?operatore in modo da garantire la massima stabilit? nel posizionamento ed orientamento del puntatore in applicazioni di alta precisione.
Come illustrato schematicamente nell?unita Figura 2, il target (11) ha un corpo (111) che riporta una pluralit? di marker (113), di forma geometrica nota, opportunamente disposti a formare un pattern. Il corpo (111) del target (11) ? preferibilmente un parallelepipedo in plastica anche se pu? presentare una forma diversa ed essere realizzato con altri materiali purch? dotati di adeguata stabilit? e rigidit?.
I marker (113) sono disposti sul target (11) in modo da presentare un alto livello di contrasto con lo sfondo della superficie, o delle superfici, del corpo (111) sulle quali sono applicati. Preferibilmente i marker sono cerchi neri su sfondo bianco oppure cerchi bianchi su sfondo nero, tuttavia potrebbero avere forme e colori diversi a seconda delle necessit?.
A titolo esemplificativo e non limitativo del presente trovato i marker (113) potrebbero essere quadrati o rombi, e presentare colori molto distanti nello spazio colore da quello dello sfondo. Addirittura i marker (113) potrebbero essere riflettenti all?infrarosso o all?ultravioletto purch? contrastanti rispetto allo sfondo.
In ogni caso, ad ogni marker (113) ? associato un punto dello spazio, ad esempio prendendo come riferimento il centro di ogni marker circolare.
Il target (11) del dispositivo (1) per la programmazione di robot secondo il presente trovato presenta almeno un elemento sporgente (112), o pilastro, sul quale ? applicato almeno un marker (113?) che risulta cos? posizionato fuori dal piano dei restanti marker (113).
Ai fini dell?attuazione del presente trovato, la configurazione degli elementi geometrici del pattern non ? vincolante: il loro numero pu? cambiare, cos? come la loro distanza relativa ed il numero di pilastri (112). Ad esempio, la spaziatura tra i marker (113,113?) pu? essere di qualche millimetro, ad esempio tra 3 e 4 millimetri. Inoltre, l?altezza del pilastro (112) pu? essere scelta in funzione delle necessit?, tipicamente tra 2 e 10 millimetri, preferibilmente 5 millimetri.
Nel dispositivo (1) per la programmazione di robot secondo il presente trovato, la pluralit? di marker (113,113?) ? solidale al dispositivo di puntamento (10) ed ? fissato al corpo (11) del dispositivo di puntamento mediante un mezzo di aggancio (114).
Preferibilmente, il target (11) ? fissato alla parte superiore (101) del dispositivo di puntamento (10). Questa configurazione ? preferibile quando l?ergonomia dell?impugnatura ? l?esigenza principale. Tuttavia, il target (11) pu? essere anche fissato alla parte inferiore (103) del dispositivo di puntamento (10). Questa configurazione ? preferibile quando la precisione ? l?esigenza principale.
Per consentire una maggior flessibilit? nell?attivit? di programmazione del robot, in base alle esigenze, ? anche possibile vincolare scorrevolmente il target (11) al corpo (102) del dispositivo di puntamento (10) in modo da permetterne all?operatore lo spostamento in una posizione compresa tra una parte inferiore (103), in prossimit? della punta, ed una parte superiore (101) del corpo (102), in prossimit? dell?estremit? opposta alla punta. Un meccanismo di questo tipo in grado di assicurare adeguata precisione nello spostamento pu? essere realizzato in modo semplice e a costi contenuti con tecniche note.
Il dispositivo (1) per la programmazione di robot secondo il presente trovato comprende una singola telecamera (20) la quale ? montata sul polso (51) del robot (50) collaborativo.
Nella prima forma realizzativa il robot (50) ? un cobot. Tuttavia pu? essere un robot di altro tipo, a titolo esemplificativo e non esaustivo, un robot antropomorfo o un robot SCARA.
In ogni caso, il robot (50) presenta un braccio avente un polso (51) sul quale ? montata una singola telecamera (20) a differenza dei sistemi e dispositivi per la programmazione di robot di tipo noto. Questa telecamera (20) ha prestazioni riscontrabili in prodotti comunemente diffusi nel mercato. Preferibilmente ? una telecamera in bianco nero, ma pu? essere anche una telecamera RGB o addirittura una telecamera sensibile all?infrarosso in base alle caratteristiche del target (11) le quali a loro volta dipendono dalla specifica applicazione del dispositivo (1) secondo il trovato.
Anche se nella presente forma realizzativa la telecamera (20) ? preferibilmente montata sul polso (51) del robot, altre collocazioni solidali al robot (50) sono possibili con lo scopo di ottenere sempre la migliore inquadratura possibile del pattern (113). Ad esempio, la telecamera (20) pu? essere fissata ad un eventuale carrello sul quale il robot ? montato, oppure, pi? generalmente, ad un asse di movimento del robot stesso o ad un asse di movimento non appartenente al robot ma al quale il robot ? solidale.
Infine, il dispositivo (1) secondo il presente trovato comprende un?unit? di elaborazione (30) associata al puntatore (10) su cui ? implementato un software che regola il funzionamento del dispositivo come di seguito ? illustrato.
In una forma realizzativa detta unit? di elaborazione (30) ? esterna ed ? residente in un computer a bordo macchina. In una forma realizzativa alternativa, qualora il robot lo consenta, ? residente in forma di ?plug-in? nel calcolatore che implementa il controllore del robot. In una forma realizzativa alternativa ? integrata alla stessa telecamera (20). Combinazioni di queste forme realizzative sono possibili.
Nell?unit? di elaborazione (30) ? implementato un software che sostanzialmente include due moduli essenziali ai fini dell?attuazione del presente trovato: il primo modulo (31) consiste in un software per localizzare e stimare la posa del pattern (113,113?), e quindi del puntatore (10), rispetto alla telecamera (20); il secondo modulo (32) ? un software per inseguire in modo dinamico il pattern di marker (113).
L?unit? di elaborazione (30) include infine un?interfaccia grafica (33) che interagisce con i mezzi di attivazione (12) nel modo di seguito descritto.
La punta del puntatore (10) viene appoggiata dall?operatore nella posizione e con l?orientazione desiderata permettendo al software di localizzazione (31) di individuare e localizzare (posizione e orientazione) in modo preciso il pattern di marker (113,113?) e di conseguenza la posa della punta.
Agendo sui pulsanti (12) presenti nell?impugnatura del corpo del puntatore (10) l?operatore comunica le proprie scelte all?unit? di elaborazione (30), le quali, a titolo esemplificativo e non limitativo del presente trovato, possono essere: memorizzazione della posa attuale, memorizzazione di una sequenza di pose in modalit? continua, cancellazione dell?ultima posa, o sequenza di pose, memorizzate.
Nella modalit? di acquisizione in continuo l?unit? di elaborazione (30), unitamente al software (31), rileva la posa ad ogni prefissato intervallo di tempo (impostabile dall?utente) mano a mano che l?operatore muove il puntatore (10).
In questo modo, vengono registrate le pose del puntatore (10) in movimento, cos? da registrare le traiettorie in termini di singole posizioni e di velocit? tra posizioni.
? particolarmente utile quando si desidera replicare il movimento realizzato da un operatore umano in un certa lavorazione, ad esempio la verniciatura. Chiaramente la traiettoria di pose pu? essere acquisita montando il puntatore (10) su un braccio movimentato da un attuatore oppure su un robot. Questa modalit? ? utile in quelle applicazioni nelle quali l?operatore non pu? essere presente perch? svolte in un ambiente pericoloso. Inoltre, la possibilit? di montare il puntatore (10) su un robot ne permette l?impiego per copiare le pose di un altro robot ?istruttore? ovvero copiare il programma delle traiettorie.
L?operatore pu? osservare nell?interfaccia grafica (33) le coordinate dei punti memorizzati fino ad un dato momento. La interfaccia grafica (33) consente anche di regolare alcuni parametri funzionali dei moduli software (31,32). Vantaggiosamente, l?interfaccia grafica (33) consente di riproiettare nelle immagini riprese dalla telecamera (20) i punti gi? memorizzati, ricalcolati sulla base della posizione attuale del robot in modo da apparire solidali all?oggetto da lavorare, oppure ad un sistema di riferimento fisso.
Le pose memorizzate sono disponibili al robot (50) che le pu? ripercorrere a velocit? impostabili dall?operatore agendo sui pulsanti (121) sull?interfaccia grafica (33).
Con riferimento all?unita Figura 1, la telecamera (20) montata sul polso (51) del robot (50) pu? comunicare con l?unit? di elaborazione (30) via cavo o wireless in funzione della quantit? di dati richiesta e dei disturbi nell?ambiente industriale. Essa inquadra il pattern di marker (113,113?) e, grazie al modulo software (32), insegue il puntatore (10) ovvero muove il robot (50) per riuscire ad inquadrare sempre il pattern rimanendo ad una distanza ed inclinazione desiderate. Ci? permette di inseguire il puntatore (10) mentre l?operatore lo usa, rimanendo ad una distanza ideale per la localizzazione in modo da ridurre l?errore complessivo nel posizionamento e orientamento. Anche se tutto ci? sar? spiegato in dettagliato nel seguito, evidenziano fin d?ora che esistono delle angolazioni pi? favorevoli per l?inquadratura tenuto conto, ad esempio, che le ottiche delle telecamere possiedono delle distanze di lavoro ideali. Infine, il dispositivo (1) secondo il presente trovato pu? utilizzare un primo strumento di calibrazione per telecamere standard ed un secondo strumento di calibrazione per il puntatore (10) che implementano alcune funzionalit? in modo simile ai tool di calibrazione di tipo noto. In particolare, tali strumenti stimano automaticamente, sulla base di un insieme di immagini acquisite, alcune distanze caratteristiche del puntatore (10) come la posizione della punta (101,103) rispetto al sistema di riferimento del pattern (113,113?), oppure la posizione dell?utensile (52) del robot (50) rispetto al sistema di riferimento della telecamera (20).
Dalla descrizione qui fornita apparir? evidente all?esperto del ramo come il dispositivo (1) per la programmazione di robot secondo il trovato adotti componenti di costo molto contenuto. Inoltre, i moduli software (31,32) possono essere eseguiti su unit? di elaborazione gi? presenti nell?impianto, abbassando ulteriormente i costi. Il dispositivo (1), grazie alla specifica implementazione del software e al tipo di montaggio sul polso raggiunge precisioni molto elevate, superiori ad altri metodi gi? presenti in commercio.
In una implementazione prototipale realizzata, in una configurazione standard, i presenti inventori hanno raggiunto precisioni dell?ordine di 0.4 mm. Pi? precisamente, i test effettuati con tale implementazione prototipale, hanno permesso di quantificare in 0.4 mm la distanza massima fra la posizione della punta del puntatore in fase di programmazione e quella dell?utensile, una volta che il robot viene posizionato sulla posa programmata. Tuttavia, ? possibile raggiungere precisioni superiori, compatibilmente con la precisione intrinseca (ripetibilit?) del robot (50) che rappresenta il reale limite ad ulteriori miglioramenti, come si spiegher? in dettaglio nel seguito. Infatti, oltre alla calibrazione della telecamera (20), la precisione ? legata alla distanza di inquadratura, alla dimensione ed alla posizione del pattern (113,113?) rispetto alla punta (101,103). Tutti parametri che permettono di regolarla in funzione delle esigenze.
Dalla descrizione fornita appare chiaro che l?apparato sopra (1) descritto permette ad un operatore di impostare la localizzazione e l?orientazione nello spazio di un utensile di un robot (50) mediante un procedimento che forma un ulteriore oggetto del presente trovato. Tale procedimento comprende le seguenti fasi:
a) rendere solidale al robot (50) una telecamera mobile (20), preferibilmente collocandola sul polso (51) di detto robot (50);
b) disporre nel volume di lavoro un dispositivo di puntamento (10) avente un pattern di marker (113,113?);
c) inquadrare il pattern di marker (113,113?) su detto dispositivo di puntamento (10) mediante detta telecamera mobile (20);
d) eseguire un software in un?unit? di elaborazione (30) associata al dispositivo di puntamento (10), detto software tale da causare un movimento del robot (50) tale da inseguire il pattern (113,113?), ovvero tale da inquadrare detto pattern (113,113?) rimanendo ad una distanza ed inclinazione prefissate e tali da ridurre l?errore complessivo nel posizionamento ed orientamento, mentre l?operatore, o altro mezzo, trattiene detto dispositivo di puntamento (10);
e) opzionalmente, agire sul posizionamento della configurazione dei pattern (113,113?) rispetto alla punta di detto dispositivo di puntamento (10) in modo da ridurre l?errore complessivo nel posizionamento ed orientamento di detto dispositivo di puntamento (10);
f) agendo su mezzi di attivazione (12) di detto dispositivo di puntamento (10), rilevare le coordinate (x,y,z) e l?orientazione (?,?,?) del pattern (113,113?) rispetto a dette telecamere (20,60) e da esse calcolare mediante una trasformazione Tobj la posa ((x0,y0,z0),(?0,?0,?0)) del dispositivo di puntamento (10);
g) nota la posa relativa ((x1,y1,z1),(?1,?1,?1)) di detta telecamera (20) rispetto all?utensile (52) del robot (50), e la posa ((x2,y2,z2),(?2,?2,?2)) dell?utensile (52) rispetto alla base di detto robot (50), operare una trasformazione Tcam/tool in modo da calcolare la posa ((x3,y3,z3),(?3,?3,?3)) del dispositivo di puntamento (10) rispetto alla base robot (50), ed ottenere la posa da rilevare;
h) memorizzare la posa ((x3,y3,z3),(?3,?3,?3)), calcolata nella fase g) la quale ? la posa programmata in modo da richiamarla ed eseguirla all?occorrenza. Appare evidente che mediante detto procedimento ? possibile inseguire il puntatore (10) mentre l?operatore lo utilizza, ed al contempo ? possibile rimanere alla distanza ottimale per rilevare le coordinate (x,y,z) e l?orientazione (?,?,?) in modo da ridurre l?errore complessivo. Infatti, l?inseguimento a distanza ottimale coinvolgendo trasformazioni locali consente di limitare l?errore portandolo quasi al solo errore di ripetizione (ovvero alla precisione fisica di un robot). In questo modo, si aggira l?errore di accuratezza, che si manifesterebbe invece nel caso in cui si istruisse il robot a collocare il proprio tool in coordinate precise nello spazio 3d riferite rispetto ad un sistema di riferimento esterno.
Altre forme realizzative
La seconda forma realizzativa del dispositivo (1), qui descritta a titolo esemplificativo e non limitativo con riferimento all?unita Figura 3, prevede una telecamera fissa (60) in sostituzione della telecamera ?on-board? (20) montata sul polso del robot, preferibilmente un cobot.
In tale forma di realizzazione, la telecamera (60) ? collocata in una posizione opportuna che inquadra il volume di lavoro ed ha lo scopo di localizzare il pattern di marker (113,113?). Il vantaggio di una configurazione di questo tipo ? l?assenza di movimento del robot (50), con conseguente azzeramento delle problematiche di sicurezza legate agli ingombri in ambienti con spazio limitato.
Opzionalmente, possono essere incluse ulteriori telecamere fisse (61). La scelta delle posizioni delle telecamere (60,61) ? finalizzata a coprire al meglio l?area di lavoro ma non pu? garantire l?inquadratura ottimale del pattern (113,113?) che si ottiene dalla prima forma realizzativa. Inoltre, questa configurazione non consente di sfruttare al meglio la precisione del robot (50).
Con riferimento all?unita Figura 4, la terza forma realizzativa del dispositivo (1) ? una combinazione delle prime due forme realizzative e dunque include una o pi? telecamere fisse (61) in aggiunta alla telecamera (20) montata sul polso del robot (50).
In tale forma realizzativa, qui descritta a titolo esemplificativo e non limitativo del presente trovato, le telecamere fisse (61) includono almeno una telecamera fissa a fini di sicurezza dell?operatore, ed opzionalmente una telecamera fissa per tracking (612). Preferibilmente dette telecamere fisse (611,612) sono rispettivamente due ed una.
Le telecamere fisse per sorveglianza (611) sono poste in opportune posizioni che inquadrano l?area di lavoro ed hanno lo scopo di segnalare comportamenti anomali dell?operatore, evitare collisioni tra robot (50) ed operatore oppure tra robot (50) ed oggetti presenti.
La telecamera fissa per tracking (612) assistono il software di inseguimento del pattern (32) quando questo, per qualsiasi motivo, esce dall?inquadratura della telecamera on-board (20). Il vantaggio di una configurazione di questo tipo ? l?incremento della sicurezza generale ed una aumentata flessibilit? dell?applicazione nella fase di inseguimento.
La quarta forma realizzativa del dispositivo (1) secondo il presente trovato, qui descritta a titolo esemplificativo e non limitativo, include mezzi di attivazione che escludono pulsanti (12) nel corpo (102) del puntatore (10).
In tale forma realizzativa, l?interazione del puntatore (10) con l'unit? di elaborazione (30) ? garantita dalla stessa telecamera (20) la quale attua un sistema ?gesture-based input? ovvero un ?click virtuale? senza pulsanti. Tale sistema ? basato su un terzo modulo software basato su un algoritmo di intelligenza artificiale, del tipo noto allo stato dell?arte, il quale interpreta gesti o il movimento della mano, o di altra parte anatomica dell?operatore, ad esempio il movimento di una delle dita dell?operatore che impugna il puntatore (10).
A titolo esemplificativo e non limitativo del presente trovato, i gesti o i movimenti possono essere associati alle seguenti operazioni: memorizzazione della posa attuale, memorizzazione di una sequenza di pose in modalit? continua, cancellazione dell?ultima posa, o sequenza di pose, memorizzate.
E? evidente che tale mezzo di attivazione (12) ?gesture-based input? rende la penna un oggetto totalmente passivo con un costo di produzione irrisorio.
Per facilitare la rilevazione visiva e passiva dei gesti o del movimento, l?operatore pu? vantaggiosamente avvalersi di ausili, ad esempio un guanto calzato sulla mano, oppure un anello o un bracciale, aventi un elemento ?target? facilmente riconoscibile dalla telecamera in associazione al terzo modulo software. Chiaramente in questo modo, ? anche possibile aumentare il numero di gesti o segni realizzabili fornendo cos? maggiori gradi di libert? nella programmazione dimostrativa (ovvero tramite dimostrazione) tramite questa modalit? totalmente passiva.
Infine, la quinta forma realizzativa del dispositivo (1) secondo il presente trovato, qui descritta a titolo esemplificativo e non limitativo, prevede un?unit? di calcolo (30) integrata alla telecamera (20) montata sul polso (51) del robot (50). A titolo esemplificativo e non limitativo del presente trovato, pu? essere utilizzata una smart-camera (30,20), ossia una telecamera dotata di processore di calcolo e di un sistema operativo che permette le elaborazioni richieste per attuare il dispositivo (1) per la programmazione di robot secondo il trovato.
Il vantaggio per l?utilizzatore di una configurazione di questo tipo ? la semplicit? complessiva del dispositivo (1) che risulta di fatto costituito da due soli componenti, vale a dire il dispositivo di puntamento (10) e la telecamera (20). Dal momento che i principali produttori mondiali di robot collaborativi permettono l?accesso del ?teach-pendant?, fornendone gli strumenti di programmazione, l?interfaccia (33) di regolazione dei parametri del puntatore (10) pu? essere vantaggiosamente trasferita nel dispositivo ?teach-pendant? fornito assieme al robot (50). In questo caso tale dispositivo ? impiegato esclusivamente per la regolazione di alcuni parametri e non per la programmazione del robot (50), che viene eseguita esclusivamente attraverso il dispositivo di puntamento (10).
Vantaggi dell?invenzione
Accanto al fatto di semplificare ed abbattere i tempi per la programmazione di robot, gi? riscontrabili in alcune soluzioni di tipo noto, l?apparato ed il procedimento secondo il trovato presentano notevoli vantaggi di seguito descritti.
Il principale vantaggio ? legato alla specifica implementazione di un algoritmo di pura visione ed al montaggio della telecamera sul polso del robot (50) che permettono di attuare il meccanismo di inseguimento del puntatore (10) basato sui ?fiducial markers? descritto in precedenza.
In sintesi, tale vantaggio consiste nella possibilit? di sfruttare l?intrinseca ripetibilit? del robot (50) e di incrementare la precisione dell?apparato che raggiunge livelli molto elevati e superiori ad altri metodi gi? presenti in commercio. In dettaglio, l?inseguimento del puntatore (10) basato su ?fiducial markers? a sua volta determina due benefici: primo, permette di mantenete un?inquadratura del puntatore ottimale dal punto di vista della messa a fuoco e dell?angolo di vista (quest?ultimo importante per evitare il verificarsi di ambiguit? nella ricostruzione della posa del target); secondo, e fondamentale beneficio, l?inseguimento del puntatore (10) fa s? che l?errore di posizionamento del robot nella posa memorizzata dipenda solo dalla precisione (ripetibilit?) del robot e non dalla sua accuratezza (capacit? di posizionarsi nell?esatto punto dello spazio desiderato).
A tal proposito, ? noto che i robot industriali possiedono tipicamente un?altissima ripetibilit?, intesa come la precisione nel posizionarsi pi? volte nella stessa posa. Valori tipici di ripetibilit? per robot industriali sono inferiori al decimo di millimetro. Viceversa, l?accuratezza ? solitamente molto peggiore, ed ? variabile a seconda del punto dello spazio considerato. Vantaggiosamente, il dispositivo e procedimento secondo il presente trovato utilizza una telecamera a bordo del robot ed un meccanismo di inseguimento del puntatore (10) che permettono di sfruttare al meglio l?intrinseca ripetibilit? del robot, al contrario delle soluzioni note basate sull?impiego di telecamere fisse come apparir? evidente all?esperto del ramo dalla seguente spiegazione.
Nel caso di telecamera fissa, al fine di posizionare il tool del robot in corrispondenza di un certo oggetto rilevato da una telecamera, ? necessario conoscere, o stimare tramite esperimenti, le seguenti trasformazioni rigide (SdR designa in breve ?Sistema di Riferimento?)
- Tobj: da telecamera, a posa desiderata;
- Tcam: da SdR mondo, a telecamera;
- Trob: da SdR mondo, a SdR robot (solitamente posto alla base del robot);
- Ttool: da SdR robot, a tool del robot.
Ciascuna di queste trasformazioni ? affetta da incertezza e tutte sono coinvolte se si vuole posizionare il tool del robot in corrispondenza dell?oggetto rilevato dalla telecamera.
I passi da compiere nel caso di telecamera fissa sono:
1. Localizzare l?oggetto rispetto al SdR mondo (trasformazioni coinvolte: Tobj, Tcam); 2. Posizionare il robot nel punto trovato (trasformazioni coinvolte: Trob, Ttool) In particolare, il passo 2 dipende dall?accuratezza del robot (cio? la capacit? di posizionarsi esattamente nel punto dello spazio, il quale ? specificato rispetto al SdR mondo) e pertanto ? potenzialmente affetto da errori considerevoli.
Se invece si usa una telecamera a bordo del robot ed il meccanismo di inseguimento secondo il presente trovato, le trasformazioni coinvolte sono solo due: Tobj (la stessa del caso a telecamera fissa) e Tcam/tool, quella che esprime la posa della telecamera rispetto al tool. I passi da compiere sono in questo caso:
1. Localizzare l?oggetto rispetto al tool (trasformazioni coinvolte: Tobj e Tcam/tool)
2. Effettuare un movimento relativo del tool dalla posa corrente (che ? ripetibile con grandissima precisione) alla nuova posa, calcolata la punto 1.
Si pu? dunque osservare che siccome il movimento ? relativo, le trasformazioni rispetto al sistema di riferimento mondo non sono coinvolte. Ne consegue che la loro incertezza non ha effetto. Inoltre, l?accuratezza del robot ? coinvolta solamente in un movimento di piccola entit?, ovvero il movimento relativo, e quindi ha un effetto limitato.
Grazie al meccanismo di inseguimento del puntatore basato su ?fiducial markers?, nonch? su un apposito algoritmo di pura visione, la precisione del dispositivo ? uniforme nello spazio e non dipende dalla distanza mutevole di sensori o emettitori fissi.
Inoltre, la precisione non ? affetta da fonti di rumore e disturbi tipicamente presenti negli ambienti industriali, a differenza dei dispositivi e metodi noti per la programmazione di robot basati su segnali elettromagnetici o ultrasuoni, poich? non richiede sistemi elettromagnetici, n? emettitori e ricevitori di segnale, e non sono nemmeno affetti dai noti problemi di deriva dei sistemi inerziali.
Infine, la scelta del montaggio del sensore insieme alla flessibilit? di progettazione del puntatore consentono di preparare il dispositivo di puntamento in funzione della precisione richiesta.
Dalla descrizione fornita apparir? chiaro all?esperto del ramo il vantaggio del presente trovato in termini di precisione di posizionamento rispetto alle tecniche note.
Un secondo notevole vantaggio ? legato al fatto che la soluzione qui descritta include componenti di costo molto contenuto. In particolare, i due moduli software possono essere eseguiti su unit? di elaborazione di costo contenuto la quale potrebbe essere gi? presente nel robot da addestrare o nella telecamera a bordo di tale robot.
Un ultimo, ma non trascurabile vantaggio, consiste nella possibilit? di applicazione dell?apparato e procedimento di programmazione ad esso collegato, in svariati settori industriali e non, quali la finitura superficiale, la saldatura, il tessile, solo per citare i principali.
In conclusione, appare evidente all?esperto nell?arte come il dispositivo qui descritto, raggiunto attraverso uno sforzo inventivo non banale, rappresenti un significativo avanzamento nel contesto specifico.
Si ? in pratica constatato come il trovato cos? descritto porti a soluzione il compito e gli scopi preposti. In particolare, ? stato introdotto un dispositivo ed un metodo di programmazione di robot, in particolare di cobot, di facile installazione, di precisione elevata, adattabile alle esigenze realizzabile, ed a costo contenuto.
Sebbene la descrizione e gli esempi forniti contengano molti dettagli, questi non devono essere interpretati come limitativi dell?ambito dell'invenzione, ma semplicemente come illustrazioni esemplificative di alcune forme realizzative della presente invenzione. Pertanto, qualsiasi modifica della presente invenzione che rientra nello scopo e nell'ambito delle rivendicazioni che seguono ? considerata parte della presente invenzione.
Ove le caratteristiche e le tecniche menzionate in qualsiasi rivendicazione siano seguite da segni di riferimento, tali segni di riferimento sono stati apposti al solo scopo di aumentare l'intelligibilit? delle rivendicazioni e di conseguenza tali segni di riferimento non hanno alcun effetto limitante sull'interpretazione di ciascun elemento identificato a titolo di esempio da tali segni di riferimento.
Claims (15)
1) Apparato per la programmazione (1) di un robot (50) caratterizzato dal fatto di comprendere:
- un dispositivo di puntamento (10) che pu? essere collocato in punto del volume di lavoro nel quale opera detto robot (50);
- un target (11) solidale a detto dispositivo di puntamento (10), detto target (11) comprendente:
- un corpo del target (111) sul quale ? presente un elemento sporgente (112); ed
- una pluralit? di marker (113,113?) disposti secondo un pattern sulla superficie del corpo (111) e dell?elemento sporgente (112);
- una o pi? telecamere (20,60) scelte tra:
- una telecamera mobile (20) solidale a detto robot (50), oppure - una telecamera fissa (60) collocata nell?ambiente in cui opera detto robot (50);
- almeno un?unit? di elaborazione (30) associata a dette una o pi? telecamere (20,60) oppure a detto dispositivo di puntamento (10), detta unit? di elaborazione (30) su cui ? implementato un software;
- mezzi di attivazione (12) che una volta attivati da un operatore permettono a detta telecamera (20,60), in associazione a detto software, di rilevare in tempo reale una o pi? posizioni ed orientamenti nello spazio di detto target (11) e dunque dell?utensile (52) del robot (50).
2) Apparato per la programmazione di un robot secondo la rivendicazione 1, nel quale detto dispositivo di puntamento (10) presenta un corpo (102) modellato in modo da facilitare l?impugnatura da parte di un operatore.
3) Apparato per la programmazione di un robot secondo la rivendicazione 2 nel quale il target (11) ? fissato alla parte inferiore (103) oppure superiore (101) del corpo (102) di detto dispositivo di puntamento (10), oppure il target (11) ? scorrevolmente vincolato a detto corpo (102) in modo da permettere all?operatore lo spostamento di detto target (11) in una posizione su detto corpo (102) compresa tra una parte inferiore (103) ed una parte superiore (101).
4) Apparato per la programmazione di un robot secondo una o pi? delle rivendicazioni da 1 a 3, nel quale:
- detti mezzi di attivazione (12) sono in forma di pulsanti che una volta attivati da un operatore permettono a detta telecamera (20,60), in associazione a detto software, di rilevare in tempo reale una singola posizione ed orientamento nello spazio, oppure una pluralit? di posizioni ed orientamenti nello spazio, di detto target (11);
- detto dispositivo di puntamento (10) ? del tipo ?sostanzialmente passivo? ovvero include un?unit? elettronica per permettere esclusivamente la comunicazione con detta unit? di elaborazione (30) dei comandi impartiti dall?operatore tramite detti mezzi di attivazione (12).
5) Apparato per la programmazione di un robot la rivendicazione 4, nel quale detti pulsanti (12) sono collocati nel corpo (102) o, alternativamente, sono collocati su un altro dispositivo portatile cosicch? siano preferibilmente azionabili dalla mano che non impugna il puntatore, in modo da garantire la massima stabilit? del puntatore (10) in applicazioni di alta precisione.
6) Apparato per la programmazione di un robot secondo una o pi? delle rivendicazioni da 1 a 3, nel quale:
- detti mezzi di attivazione (12) sono costituiti da un terzo modulo software idoneo ad implementare una modalit? ?gesture-based input? in grado di interpretare segni o gesti dell?operatore che impugna detto dispositivo di puntamento (10), in modo da rilevare in tempo reale una singola posizione ed orientamento nello spazio, oppure una pluralit? di posizioni ed orientamenti nello spazio di detto target (11), detta modalit? ?gesture-based input? essendo opzionalmente assistita da un ausilio indossato dall?operatore, come un guanto, un anello, oppure un bracciale, in modo da facilitare la rilevazione visiva e passiva di detti segni o gesti.
- detto dispositivo di puntamento (10) ? del tipo ?totalmente passivo? ovvero ? del tutto privo di unit? elettroniche;
- detta almeno un?unit? di elaborazione (30) ? associata a dette una o pi? telecamere (20,60).
7) Apparato per la programmazione di un robot secondo una o pi? delle rivendicazioni da 1 a 6 nel quale dette una o pi? telecamere (20,60) ? una singola telecamera mobile (20) solidale a detto robot (50), detta telecamera mobile essendo preferibilmente fissata al polso di detto robot (50) oppure su un asse di movimento del robot stesso o su un asse di movimento non appartenente al robot ma al quale il robot ? solidale.
8) Apparato per la programmazione di un robot secondo la rivendicazioni 7 nel quale detta telecamera mobile (20) ? fissata al polso di detto robot (50).
9) Apparato per la programmazione di un robot secondo una o pi? delle rivendicazioni da 1 a 6 nel quale dette una o pi? telecamere (20,60) sono:
- una telecamera mobile (20) solidale a detto robot (50), detta telecamera mobile essendo preferibilmente fissata al polso di detto robot (50) oppure su un asse di movimento del robot stesso o su un asse di movimento non appartenente al robot, ma al quale il robot ? solidale; ed
- una o pi? telecamere fisse (60) collocate nell?ambiente in cui opera detto robot (50).
10) Apparato per la programmazione di un robot secondo la rivendicazione 9 nella quale dette una o pi? telecamere fisse (60) sono: una telecamera fissa principale (611) per rilevare condizioni di pericolo per l?operatore, una telecamera fissa addizionale (612) per la localizzazione di detto target (11), o una loro combinazione.
11) Apparato per la programmazione di un robot secondo una o pi? delle rivendicazioni da 1 a 6 nel quale dette una o pi? telecamere (20,60) ? una telecamera fissa (60) collocata nel volume di lavoro in cui opera detto robot (50).
12) Apparato per la programmazione di un robot secondo una o pi? delle rivendicazioni precedenti, nel quale detta unit? di calcolo (30) ? integrata a dette una o pi? telecamere (20,60).
13) Un robot o un cobot comprendente:
- un dispositivo di puntamento (10), avente un corpo (102) modellato in modo da facilitare l?impugnatura da parte di un operatore;
- un target (11) solidale a detto dispositivo di puntamento (10) comprendente:
- un corpo del target (111) sul quale ? presente un elemento sporgente (112); ed
- una pluralit? di marker (113) disposti secondo un pattern sulla superficie del corpo (111) e dell?elemento sporgente (112);
- una singola telecamera mobile (20) solidale a detto robot, preferibilmente montata sul polso (51) di detto robot;
- un?unit? di elaborazione (30) associata a detto dispositivo (10) oppure a detta telecamera mobile (20), detta unit? di elaborazione (30) su cui ? implementato un software;
- mezzi di attivazione (12) che una volta attivati da un operatore permettono a detta telecamera (20), in associazione a detto software, di rilevare in tempo reale una singola posizione ed orientamento nello spazio, oppure una pluralit? di posizioni ed orientamenti nello spazio, di detto target (11) e dunque dell?utensile (52) del robot (50).
14) Procedimento per programmare la posizione e l?orientazione nello spazio di un utensile (52) di un robot (50) mediante l?apparato secondo una o pi? delle rivendicazioni da 1 a 12, detto procedimento caratterizzato per il fatto che permette di sfruttare al meglio l?intrinseca ripetibilit? del robot (50), detto procedimento comprendente le seguenti fasi:
a) rendere solidale al robot (50) una telecamera mobile (20), preferibilmente collocandola sul polso (51) di detto robot (50);
b) disporre nel volume di lavoro un dispositivo di puntamento (10) avente un pattern di marker (113,113?);
c) inquadrare il pattern di marker (113,113?) su detto dispositivo di puntamento (10) mediante detta telecamera mobile (20);
d) eseguire un software in un?unit? di elaborazione (30) associata al dispositivo di puntamento (10), detto software tale da causare un movimento del robot (50) tale da inseguire il pattern (113,113?), ovvero tale da inquadrare detto pattern (113,113?) rimanendo ad una distanza ed inclinazione prefissate e tali da ridurre l?errore complessivo nel posizionamento ed orientamento, mentre l?operatore, o altro mezzo, trattiene detto dispositivo di puntamento (10);
e) opzionalmente, agire sul posizionamento della configurazione dei pattern (113,113?) rispetto alla punta di detto dispositivo di puntamento (10) in modo da ridurre l?errore complessivo nel posizionamento ed orientamento di detto dispositivo di puntamento (10);
f) agendo su mezzi di attivazione (12) di detto dispositivo di puntamento (10), rilevare le coordinate (x,y,z) e l?orientazione (?,?,?) del pattern (113,113?) rispetto a dette telecamere (20,60) e da esse calcolare mediante una trasformazione Tobj la posa ((x0,y0,z0),(?0,?0,?0)) del dispositivo di puntamento (10);
g) nota la posa relativa ((x1,y1,z1),(?1,?1,?1)) di detta telecamera (20) rispetto all?utensile (52) del robot (50), e la posa ((x2,y2,z2),(?2,?2,?2)) dell?utensile (52) rispetto alla base di detto robot (50), operare una trasformazione Tcam/tool in modo da calcolare la posa ((x3,y3,z3),(?3,?3,?3)) del dispositivo di puntamento (10) rispetto alla base robot (50), ed ottenere la posa da rilevare;
h) memorizzare la posa ((x3,y3,z3),(?3,?3,?3)), calcolata nella fase g) la quale ? la posa programmata in modo da richiamarla ed eseguirla all?occorrenza.
15) Procedimento per programmare la posizione e l?orientazione nello spazio di un utensile di un robot (50) secondo la rivendicazione 14, nel quale detto mezzo che trattiene detto dispositivo di puntamento (10) ? un braccio movimentato da un attuatore oppure ? un secondo robot.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT102021000027485A IT202100027485A1 (it) | 2021-10-26 | 2021-10-26 | Apparato e procedimento per la programmazione di robot per mezzo di dimostrazione |
PCT/IB2022/060252 WO2023073562A1 (en) | 2021-10-26 | 2022-10-25 | Apparatus and method for programming robots by demonstration |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT102021000027485A IT202100027485A1 (it) | 2021-10-26 | 2021-10-26 | Apparato e procedimento per la programmazione di robot per mezzo di dimostrazione |
Publications (1)
Publication Number | Publication Date |
---|---|
IT202100027485A1 true IT202100027485A1 (it) | 2023-04-26 |
Family
ID=79164962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
IT102021000027485A IT202100027485A1 (it) | 2021-10-26 | 2021-10-26 | Apparato e procedimento per la programmazione di robot per mezzo di dimostrazione |
Country Status (2)
Country | Link |
---|---|
IT (1) | IT202100027485A1 (it) |
WO (1) | WO2023073562A1 (it) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251290A1 (en) * | 2002-05-24 | 2005-11-10 | Abb Research Ltd | Method and a system for programming an industrial robot |
WO2010130289A1 (en) | 2009-05-13 | 2010-11-18 | Abb Research Ltd. | A teach pendant unit for an industrial robot and a service system |
US7945349B2 (en) | 2008-06-09 | 2011-05-17 | Abb Technology Ab | Method and a system for facilitating calibration of an off-line programmed robot cell |
EP2757430A2 (en) * | 2013-01-16 | 2014-07-23 | Kabushiki Kaisha Yaskawa Denki | Robot teaching system and robot teaching method |
WO2017178469A1 (en) | 2016-04-12 | 2017-10-19 | Universal Robots A/S | Programming a robot by demonstration |
US20200198145A1 (en) | 2018-12-19 | 2020-06-25 | Industrial Technology Research Institute | Method and apparatus of non-contact tool center point calibration for a mechanical arm, and a mechanical arm system with said calibration function |
US20200384647A1 (en) | 2019-06-07 | 2020-12-10 | Fanuc Corporation | Off-line programming apparatus, robot controller, and augmented reality system |
US20210023694A1 (en) | 2019-07-23 | 2021-01-28 | Qingdao university of technology | System and method for robot teaching based on rgb-d images and teach pendant |
WO2021050646A1 (en) | 2019-09-11 | 2021-03-18 | Dmg Mori Co., Ltd. | Robot-mounted moving device, system, and machine tool |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109219856A (zh) * | 2016-03-24 | 2019-01-15 | 宝利根 T·R 有限公司 | 用于人类及机器人协作的***及方法 |
-
2021
- 2021-10-26 IT IT102021000027485A patent/IT202100027485A1/it unknown
-
2022
- 2022-10-25 WO PCT/IB2022/060252 patent/WO2023073562A1/en active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251290A1 (en) * | 2002-05-24 | 2005-11-10 | Abb Research Ltd | Method and a system for programming an industrial robot |
US7353081B2 (en) | 2002-05-24 | 2008-04-01 | Abb Research Ltd. | Method and a system for programming an industrial robot |
US7945349B2 (en) | 2008-06-09 | 2011-05-17 | Abb Technology Ab | Method and a system for facilitating calibration of an off-line programmed robot cell |
WO2010130289A1 (en) | 2009-05-13 | 2010-11-18 | Abb Research Ltd. | A teach pendant unit for an industrial robot and a service system |
EP2757430A2 (en) * | 2013-01-16 | 2014-07-23 | Kabushiki Kaisha Yaskawa Denki | Robot teaching system and robot teaching method |
WO2017178469A1 (en) | 2016-04-12 | 2017-10-19 | Universal Robots A/S | Programming a robot by demonstration |
US20200198145A1 (en) | 2018-12-19 | 2020-06-25 | Industrial Technology Research Institute | Method and apparatus of non-contact tool center point calibration for a mechanical arm, and a mechanical arm system with said calibration function |
US20200384647A1 (en) | 2019-06-07 | 2020-12-10 | Fanuc Corporation | Off-line programming apparatus, robot controller, and augmented reality system |
US20210023694A1 (en) | 2019-07-23 | 2021-01-28 | Qingdao university of technology | System and method for robot teaching based on rgb-d images and teach pendant |
WO2021050646A1 (en) | 2019-09-11 | 2021-03-18 | Dmg Mori Co., Ltd. | Robot-mounted moving device, system, and machine tool |
Non-Patent Citations (2)
Title |
---|
N/A: "The Wayback machine - IJACSA Volume 12 Issue 1 - thesai.org", 14 May 2021 (2021-05-14), pages 1 - 49, XP055925332, Retrieved from the Internet <URL:https://web.archive.org/web/20210514080055/https://thesai.org/Publications/ViewIssue?volume=12&issue=1&code=IJACSA> [retrieved on 20220525] * |
TASHTOUSH TARIQ ET AL: "Human-Robot Interaction and Collaboration (HRI-C) Utilizing Top-View RGB-D Camera System", INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS, vol. 12, no. 1, 14 May 2021 (2021-05-14), XP055925338, ISSN: 2158-107X, DOI: 10.14569/IJACSA.2021.0120102 * |
Also Published As
Publication number | Publication date |
---|---|
WO2023073562A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10800036B1 (en) | Tooltip stabilization | |
CN110977931B (zh) | 使用了增强现实和混合现实的机器人控制装置及显示装置 | |
CN107717981B (zh) | 机械手臂的控制装置及其教导***与方法 | |
CN112672860B (zh) | 用于ar和数字孪生的机器人校准 | |
US10814484B2 (en) | Method, control system and movement setting means for controlling the movements of articulated arms of an industrial robot | |
US10166673B2 (en) | Portable apparatus for controlling robot and method thereof | |
EP2917001B1 (en) | Hybrid gesture control haptic system | |
US11230016B1 (en) | Multi-resolution localization system | |
US20190202058A1 (en) | Method of programming an industrial robot | |
NO339941B1 (no) | System og fremgangsmåte for et gestbasert styringssystem | |
NO317898B1 (no) | Fremgangsmate og system for a programmere en industrirobot | |
JP7359633B2 (ja) | ロボットシステム | |
Chen et al. | A human–robot interface for mobile manipulator | |
Lambrecht et al. | Markerless gesture-based motion control and programming of industrial robots | |
Kofman et al. | Robot-manipulator teleoperation by markerless vision-based hand-arm tracking | |
Gridseth et al. | On visual servoing to improve performance of robotic grasping | |
IT202100027485A1 (it) | Apparato e procedimento per la programmazione di robot per mezzo di dimostrazione | |
WO2023013699A1 (ja) | ロボット制御装置、ロボット制御システム、及びロボット制御方法 | |
JP7068416B2 (ja) | 拡張現実と複合現実を用いたロボット制御装置、ロボットの位置姿勢規定用コンピュータプログラム及びロボットの位置姿勢規定方法、相対位置姿勢取得用コンピュータプログラム及び相対位置姿勢取得方法 | |
CN117519469A (zh) | 一种应用于人机交互的空间交互装置及方法 | |
Xie et al. | Handheld device design for robotic teleoperation based on multi-sensor fusion | |
WO2023234824A1 (en) | A virtual-reality interaction system | |
Antu et al. | Atom: Novel data capturing technique for robotic teleoperation | |
CN117813182A (zh) | 机器人控制设备、机器人控制***和机器人控制方法 | |
JP2006137001A (ja) | 把持物体の位置、姿勢修正方法 |