Robot Calibration (Laser Tracker)

Introduzione

Robot industriali sono altamente ripetitivi ma non accurati, dunque, l'accuratezza di un robot industriale può essere migliorata tramite la calibrazione. L'accuratezza nominale di un robot dipende dalla marca e dal modello, come anche quanto può essere migliorata. Dopo la calibrazione robot, l'accuratezza può essere migliorata di un fattore da 2 a 10 o più.

Opzionalmente, un ballbar test (test circolare) o un test ISO9283 di accuratezza percorso può essere eseguito per validare velocemente l'accuratezza del robot.

Robot Calibration LaserTracker - Figura 1

Un sistema di misurazione è richiesto per calibrare il rovot. RoboDK può essere usato per calibrare i robot come anche per generare programmi accurati (ciò include filtrare i programmi e utilizzare il motore di programmazione offline di RoboDK). RoboDK può anche essere usato per testare l'accuratezza del robot prima e dopo la calibrazione attraverso il ballbar test o una fresatura.

La calibrazione robot può migliorare notevolmente l'accuratezza dei robot programmati offline, anche conosciuta come Programmazione Offline (OLP). Un robot calibrato ha un maggior posizionamento assoluto e relativo di uno non calibrato.

È raccomandato guardare il seguente video per vedere una calibrazione completa di un robot industriale utilizzando RoboDK:

https://www.robodk.com/robot-calibration#tab-ct

Requisiti

I seguenti oggetti sono richiesti per installare RoboDK ed eseguire propriamente la calibrazione robot:

1.Uno o più robot industriali

2.Un sistema di misurazione: qualunque laser tracker come Leica, API o Faro e un CMM ottico come la stereocamera C-Track di Creaform

3.Il software RoboDK deve esser installato e una licenza appropriata per calibrazione robot è richiesta.
Per una licenza di rete, una connessione ad internet è richesta per controllare la licenza. Per installare o aggiornare RoboDK per la calibrazione:

a.Scarica RoboDK dalla sezione download     
https://robodk.com/download

b.Imposta i driver per sistema di misurazione (non richiesto per CMM Creaform)       
Estrai e copia la cartella appropriata:
API Laser tracker:       https://robodk.com/downloads/private/API.zip (OTII e Radian trackers)        
Faro Laser Tracker:    https://robodk.com/downloads/private/Faro.zip (tutti Faro Trackers)   
Leica Laser Tracker:   https://robodk.com/downloads/private/Leica.zip (tutti Leica Trackers)  
nella cartella: C:/RoboDK/api/

Setup Offline

È raccomandato creare un ambiente virtuale del setup del robot in RoboDK (setup offline) prima di iniziare a prendere misurazioni. Questa sezione spiega come preparare la stazione RoboDK offline. Ciò può essere fatto prima di avere il robot e il tracker, solamente utilizzando un computer con installato RoboDK.

L'esempio di setup per la calibrazione può essere scaricato dalla seguente cartella:

https://www.robodk.com/downloads/calibration/

Saltare questa sezione se hai già una cella offline. I piani di riferimento e piani tool possono essere approssimativamente stimati. Un esempio di stazione è mostrata nella prossima immagine.

Robot Calibration LaserTracker - Figura 2

Stazione RoboDK

Una stazione RoboDK è un ambiente virtuale dove la stazione e le informazioni di calibrazione sono salvate. La stazione è salvata come file RDK. Segui i prossimi passaggi per creare una stazione per la calibrazione robot da zero (video: https://youtu.be/Nkb9uDamFb4)

1.Seleziona il robot:

a.Seleziona FileApri libreria online. La libreria online verrà mostrata in RoboDK.

b.Utilizza i filtri per trovare il tuo robot da marca, payload, ...

c.Seleziona Download e il robot dovrebbe automaticamente apparire nella stazione.

d.In alternativa, scarica i file robot (file estensione .robot) separatamente da http://www.robodk.com/library e aprili in RoboDK.

Robot Calibration LaserTracker - Figura 3

1.Modella la stazione virtuale

a.Aggiungi un piano di riferimento selezionando ProgrammaAggiungi Piano di Riferimento

i.Un piano Riferimento Misurazioni deve essere aggiunto con rispetto della base robot.

ii.Un piano Riferimento Tracker deve essere aggiunto con rispetto del Riferimento Misurazioni che abbiamo appena aggiunto

iii.Un ulteriore piano Riferimento tool può essere aggiunto con rispetto del Riferimento Misurazioni per visualizzare la posizione del tool visto dal tracker.

Suggerimento 1: Trascina gli oggetti nell'albero per ricostruire le dipendenze che esistono nel mondo reale. Per esempio. il Riferimento Tracker deve essere posizionato con rispetto del Riferimento Misurazioni

Suggerimento 2: Puoi muovere approssimatamente qualunque piano di riferimento o piano tool trascinandolo con il tasto ALT e SHIFT+ALT rispettivamente. In alternativa, puoi fare doppio click sul piano di riferimento e immetterne le coordinate.

Suggerimento 3: Rinomina qualunque oggetto utilizzando il tasto F2 sull'oggetto nell'albero

b.Aggiungi un oggetto tool (STL, IGES e STEP sono formati supportati) e trascinali sul robot (dentro all'oggetto nell'albero), ciò convertirà l'oggetto in un tool. Più informazioni disponibili qui.

Robot Calibration LaserTracker - Figura 4Robot Calibration LaserTracker - Figura 5

Opzionale: Seleziona ProgramaAggiungi tool vuoto per aggiungere qualunque TCP che vogliamo visualizzare nella stazione (per controllare le collisioni o altro). Per impostare un valore approssimato del TCP:

1.Doppio click sul nuovo tool

2.Imposta valori TCP approssimativi. Puoi copiare/incollare i sei valori in un unica volta utilizzando i pulsanti a destra.

3.È raccomandato rinominare il TCP utilizzato per la calibrazione come "CalibTool id", dove id è il numero del bersaglio per la calibrazione.

Robot Calibration LaserTracker - Figura 6

a.Aggiungi altri file CAD 3D (STL, IGES, STEP, SLD, ...) per modellare la stazione virtuale utilizzando il menu FileApri... In alternativa trascina i file nella schermata principale di RoboDK.

Suggerimento 1: Importa i file 3D dello spazio di lavoro della misurazione e nominali Workspace in modo che le misurazioni robot siano generate dentro lo spazio di lavoro del tracker. In alternativa, imposta lo spazio di lavoro su invisibile se non vogliamo costringere le misurazioni all'interno dello spazio di lavoro del tracker. Più informazioni disponibili nella prossima sezione.

Suggerimento 2: È possibile selezionare CTRL+ALT+Shift+P per bloccare l'esportazione di file 3D che sono stati importati in RoboDK.

2.Aggiungi il modulo di calibrazione nella stazione:

a.Seleziona il menu UtilitàCalibra Robot

b.Seleziona Stereo camera

Robot Calibration LaserTracker - Figura 7

Poi, la seguente schermata apparirà.

Robot Calibration LaserTracker - Figura 8

Questa finestra può essere chiusa d'ora in poi. Possiamo aprirlo ogni volta facendo doppio click sull'oggetto Robot calibration nella stazione.

Robot Calibration LaserTracker - Figura 9

3.Salva la stazione.

a.Seleziona FileSalva stazione

b.Fornisci una cartealla ed un nome file

c.Seleziona salva. Un nuovo file RDK sarà generato (file stazione RoboDK)

Possiamo ripristinare le modifiche della stazione in qualsiasi momento aprendo il file RDK (doppio click sul file in Windows).

Per riassumere, è importante controllare i seguenti punti:

1.Il piano di riferimento Riferimento Misurazioni è direttamente collegato al piano di riferimento della base.

Per ora, possiamo usare una stima di questo piano di riferimento (valori approsimativi)

2.Il Riferimento Tracker è direttamente collegato al Riferimento Misurazioni. Il riferimento tracker deve essere in una posizione stimata deal dispositivo di misurazione tracker con rispetto del riferimento misurazione.

3.Il progetto Calibrazione Robot è presente nella stazione e tutte le misurazioni che sono pianificate per esser eseguite sono esenti da collisioni e visibili dal tracker (doppio click nelle impostazioni della calibrazione e seleziona visualizza per ogni gruppo dei quattro gruppi di misurazioni)

4.Se vogliamo automaticamente controllare le collisioni dobbiamo usare il nome tag "collision" in ogni oggetto che vogliamo usare per controllare le collisioni. È raccomandato usare un tool circa il 25% più grande del tool calibrato per evitare collisioni in maniera sicura.

Generare bersagli calibrazione

Ci sono quattro set di misurazioni che sono richieste per compiere con successo la calibrazione robot:

1.Setup Base: sei misurazioni (o più) muovere asse 1 e 2 è richiesto per posizionare il riferimento calibrazione con rispetto del robot. Seleziona Mostra nelle impostazioni della calibrazione e il robot si muoverà lungo la sequenza.

2.Setup Tool: sette e più misurazioni sono richieste per calibrare la flangia del tool e i bersagli tool (spostando asse 5 e 6). Seleziona Mostra e il robot si muoverà lungo la sequenza.

3.Misurazioni Calibrazione: 60 misurazioni o più sono richieste per calibrare il robot. Queste misurazioni possono essere posizionate a caso nello spazio di lavoro del robot libere da collisioni con gli oggetti circostanti.

4.Misurazioni di Validazione (opzionale): quante misurazioni possibili posson essere usate per validare l'accuratezza del robot. Queste misurazioni sono usate solo per validare l'accuratezza del robot e non per calibrarlo.

I primi due set di misurazioni sono automaticamente generati da RoboDK. Seleziona Mostra e il robot seguirà la sequenza (come mostrato nella seguente immagine). Se la sequenza ha bisogno di esser modificata, seleziona Misura ed esporta le misurazioni di calibrazione come file CSV selezionando Esporta dati. Questo file può essere modificato usando una tabella Excel e re-importato facendo click su Importa dati.

Gli ultimi due set di misurazioni (calibrazione e validazione) possono esser generati utilizzando lo script macro Robot Calibration LaserTracker - Figura 10Crea Misurazioni. Questa macro è automaticamente aggiunta alla stazione quando apriamo il progetto calibrazione robot. Fare doppio click sulla macro per eseguirla. Questa macro è un programma Python che guida l'utente a definire le seguenti impostazioni:

Numero di misurazioni: Il numero di misurazioni da generare. Di default, 80 misurazioni saranno usate perchè un minimo di 60 misurazioni è richiesto per la calibrazione robot.

Posizione di riferimento: La posizione di riferimento deve essere una posizione dove il tool del robot fronteggia il tracker con i bersagli visibili.

Limiti giunti: Il limite inferiore e superiore devono esser forniti.

Limiti cartesiani: possiamo fornire limiti Cartesiani (valori X,Y,Z) con rispetto del piano di riferimento del robot

Lo script genera automaticamente misurazioni dove il tool fronteggia il tracker rispettando le costrizioni giunti e cartesiane. Una rotazione di +/- 180 gradi attorno al tool è permessa attorno alla direzione che fronteggia il tracker nel riferimento posizione. In più, la sequenza di movimenti giunti è libera da collisioni e dentro lo spazio di lavoro del misuratore (se lo spazio di lavoro è impostato su visibile). La seguente immagine mostra il resoconto che è presentato all'utente prima che la sequenza automatica inizi. Potrebbero volerci fino a 5 minuti perchè la sequenza finisca.

Robot Calibration LaserTracker - Figura 11

Se desiderato, possiamo modificare lo script facendo click con il tasto destro su Crea misurazioni e selezionare Modifica script, poi, modificare parametri addizionali dell'algoritmo. Lo script salverà automaticamente l'input utente come parametro della stazione. Possiamo visualizzare, modificare o cancellare queste impostazioni facendo click con il tasto destro sulla stazione e selezionando Parametri stazione come visualizzato nella prossima immagine.

Un nuovo messaggio comparirà una volta che l'algoritmo finisce. Seleziona Calibrazione per usare le 60 misurazioni e calibrare il robot. Possiamo rieseguire lo stesso script per generare un altro set di misurazioni per la validazione. Questo step è opzionale ma 60 misurazioni o più sono raccomandate per la validazione.

Robot Calibration LaserTracker - Figura 12

Robot Calibration LaserTracker - Figura 13

Infine, è anche possibile importare le configurazioni che sono state selezionate manualmente selezionado Importa dati (all'interno del menu Misura). Possiamo importare file CSV o TXT come matrici Nx6, dove N è il numero di configurazioni.

Robot Calibration LaserTracker - Figura 14

Setup calibrazione robot

È richiesto connettersi al laser tracker e al robot dal computer per automatizzare la procedura di ottenimento delle misurazioni. È anche raccomandato misurare un piano di riferimento tramite tre punti nel caso muovessimo il tracker laser (questo step è obbligatorio se vogliamo recuperare la posizione home dell'asse 1, vedi Annex II per più informazioni)

È richiesto collegare almeno un bersaglio SMR (tree o più sono raccomandati), come mostrato nella seguente immagine. È anche conveniente usare 3 nidi come piani di riferimento se il tracker laser deve esser mosso.

Robot Calibration LaserTracker - Figura 15Robot Calibration LaserTracker - Figura 16

La seguenti sottosezioni deve essere effettuate in sequenza per esser pronti a prendere misurazioni.

Connetti al tracker

L'IP del tracker laser è richiesto per impostare propriamente la comunicazione con RoboDK. Segui questi passaggi per verificare la comunicazione con il laser tracker:

a.Seleziona il menu « ConnectConnect laser tracker ». Una nuova finestra dovrebbe aprirsi.

b.Imposta l'IP del laser tracker.

c.Clicca sul pulsante Connect

Se la connessione è avvenuta, dovresti vedere un messaggio verde che mostra "Ready". La finestra può essere chiusa e la connessione rimarrà attiva.

Robot Calibration LaserTracker - Figura 17

Connetti il robot

L'IP del robot (o la porta COM per connessioni RS232) è necessario per impostare la comunicazione con RoboDK. Segui questi passaggi per verificare la connessione al robot:

1.Seleziona ConnettiConnetti robot. Una nuova finestra apparirà.

2.Imposta l'IP e la porta del robot (o la porta COM)

3.Clicca il pulsante Connetti

4.Riferisci all'Appendix I se incorri in qualche problema

Se la connessione è stata un successo dovresti vedere un messaggio verde che mostra Ready. La posizione del robot virtuale dovremme corrispondere alla posizione del robot reale se selezioniamo Ottieni giunti correnti. In alternativa, selezioniamo Muovi su giunti correnti per muovere il robot nella posizione corrente nel simulatore. La finestra può esser chiusa e la connessione rimane attiva.

Robot Calibration LaserTracker - Figura 18

Misurare i bersagli di riferimento

È raccomandato misurare un piano di riferimento della calibrazione, collegato alla base del robot, questo sarà utile se vogliamo muovere il tracker durante la calibrazione o comparare due calibrazioni robot. Il riferimento calibrazione deve essere definito da 3 punti tangibili.

Possiamo saltare questo passaggio se non andremo a muovere il tracker con rispetto del robot o non necessitiamo di ottenere la posizione home per l'asse 1. In questo cao, il piano di riferimento del laser tracker verrà usato.

Dovviamo seguire questi passaggli ogni volta che il laser tracker viene spostato:

1.Seleziona ConnettiConnetti laser tracker

2.Imposta l'IP del laser tracker e seleziona connetti (se il laser tracker non è connesso)

3.Imposta il riferimento calibrazione e il riferimento tracker come mostrato nell'immafine. Il riferimento calibrazione è anche conosciuto come Riferimento misurazioni.

4.Seleziona Imposta bersagli base

Robot Calibration LaserTracker - Figura 19

RoboDK guiderà l'utente con i menu mostrati nella prossima immagine. La posizione del tracker laser sarà aggiornata automaticamente con rispetto del riferimento calibrazione quando la procedura è completa.

Robot Calibration LaserTracker - Figura 20

Robot Calibration LaserTracker - Figura 21Robot Calibration LaserTracker - Figura 22Robot Calibration LaserTracker - Figura 23


Calibrazione Robot

La calibrazione robot è divisa in 4 passaggi. Ogni passaggio richiede di ottenere un set di misurazioni. Questi quattro step devono essere seguiti in ordine:

1.Misurazioni riferimento base (3 minuti)

2.Minurazioni riferimento tool (3 minuti)

3.Misurazioni calibrazione (7 minuti, 60 misurazioni)

4.Misurazioni di validazione (7 minuti, 60 misurazioni)

Il seguente video mostra come eseguire questa calibrazione in 20 minuti: https://youtu.be/Htpx-p7tmYs. La validazione non è obbligatoria per calibrare il robot, tuttavia fornisce un punto di vista oggettivo sull'accuratezza dei risultati. È anche possibile vedere l'impatto della calibrazione del robot in un'area e validarla in una differente.

Seleziona il pulsante Misura per ognuno dei quattro set di misurazioni. Ciò aprirà una nuova finestra che permette di ottenere nuove misurazioni così come importare e esportare misurazioni in un file di testo (formati csv o txt)

Misurare la base

Queste misurazioni possono essere eseguite ovunque nella flangia del tool se vogliamo misurare lo stesso bersaglio per tutte e sei le misurazioni. Per iniziare le misurazioni seleziona Misura nella seziona Setup base. La seguente finestra comparirà. Poi, seleziona Inizia Misura e il robot si muoverà sequenzialmente lungo le misurazioni programmate.

Robot Calibration LaserTracker - Figura 24

Chiudi la finestra quando le misurazioni sono completate e il Riferimento misurazioni è stato aggiornato con rispetto della base del robot. Se non abbiamo selezionato nessun piano di riferimento, possiamo aggiungerne uno e poizionarlo sotto la base del robot trascinandolo.

Robot Calibration LaserTracker - Figura 25

Il resoconto mostrerà la posizione e l'orientamento del riferimento del robot con rispetto del riferimento calibrazione (formato [x,y,z,w,p,r] in mm e radianti).

Misurare tool

Misurazioni 1-6 possono essere fatte ovunque nella flangia tool purchè misuriamo lo stesso bersaglio per le sei misurazioni. Dopo di che, ogni TCP che vogliamo misurare aggiungerà una misurazione per lo stesso TCP, in questo caso, abbiamo 3 TCP, dunque 6+3=9 misurazioni in totale. Possiamo fare doppio click su una misurazione per continuare da quella poszione.

Come la precedente sezione: Per iniziare le misurazioni seleziona Misura nella seziona Setup base. La seguente finestra comparirà. Poi, seleziona Inizia Misura e il robot si muoverà sequenzialmente lungo le misurazioni programmate. Fai doppio click su una misurazione per continuare a misurare da quella posizione.

Robot Calibration LaserTracker - Figura 26

Il resoconto mostrerà il TCP calibrato (posizione e orientamento) quando la procedura è completata. La definizione del TCP (nella seguente immagine "Spindle") sarà aggiornata in automatico. Se non abbiamo selezionato nessun TCP, possiamo aggiungerne uno (seleziona ProgrammiAggiungi Tool vuoto) e seleziona Ricalcola

A new window will appear and we must select the “id” of the tool depending on the order that we took the measurements. We can repeat the same procedure to update as many TCPs as we need (in this case 3 TCPs). The id of the tool will be automatically detected if the name of the tool ends with a number.

Robot Calibration LaserTracker - Figura 27

Calibrazione robot

Seleziona Misura nella sezione Calibrazione. La seguente finestra comparirà. Poi, seleziona Inizia Misura e il robot si muoverà sequenzialmente tra le misurazioni pianificate. Fai doppio click su una misurazione per continuare da quella posizione.

Robot Calibration LaserTracker - Figura 28

Chiudi la finestra quando la misurazione è completata. Il robot sarà calibrato automaticamente e mostrerà il seguente messaggio se non ci sono stati errori.

Robot Calibration LaserTracker - Figura 29

Infine, la schermata verde mostrerà alcune statistiche riguardanti le misurazioni di calibrazione e quanta accuratezza è stata migliorata per quelle misurazioni.

Robot Calibration LaserTracker - Figura 30

Validazione robot

Non dovremmo validare l'accuratezza robot utilizzando le stesse misurazioni che abbiamo utilizzato per calibrarlo, dunque, è raccomandato prendere misure addizionali per validarne l'accuratezza (avere più punti di vista oggettivi del risultato dell'accuratezza).

La stessa procedura di calibrazione deve essere seguita per prendere misurazioni di validazione. Il resoconto mostrerà le statistiche di validazione. Leggere la prossima Sezione Risultati per più informazioni.

Risultati

Una volta che la calibrazione è completa possiamo analizzare i miglioramenti nell'accuratezza leggendo le statistiche fornite da RoboDK. Per vedere queste statistiche, apri la finestra di calibrazione robot (facendo doppio click sull'icona Calibrazione Robot). La finestra di resoconto nella sezione validazione mostrerà gli errori prima della calibrazione (cinematiche nominali) e dopo la calibrazione (cinematiche calibrate). Due tabelle sono fornite, una che mostra le statistiche riguardo errori di posizione e l'altra riguardo errori di distanza.

Errori di posizione: gli errori di posizione sono l'accuratezza che il robot può ottenere di un punto con rispetto di un piano di riferimento.

Errori di distanza: l'errore di distanza è ottenuto misurando l'errore di distanza di un paio di punti. La distanza tra i due punti vista dal robot (ottenuta tramite le cinematiche calibrate) è comparata con la distanza vista dal sistema di misurazione (misurato fisicamente). Tutte le combinazioni sono prese in considerazione. Se prendiamo 315 misurazioni avremmo 315x315/2 = 49455 valori di errore distanza.

Le statistiche fornite sono l'errore medio, la deviazione standard (std) e l'errore massimo. È anche possibile fornire la media più tre volte la deviazione standard, che corrisponde all'errore atteso nel 99.98% delle misurazioni (se prendiamo in considerazione che l'errore segue una distribuzione normale)

Robot Calibration LaserTracker - Figura 31

Seleziona Mostra stats e due istogrammi compariranno mostrando la distribuzione degli errori prima e dopo la calibrazione, un istogramma per l'accuratezza di posizione e l'altro per la distanza. La seguente immagine corrisponde alle 315 misurazioni di validazione usate in questo esempio.

Robot Calibration LaserTracker - Figura 32

Robot Calibration LaserTracker - Figura 33

Infine, possiamo selezionare Crea Report e un report in PDF con le informazioni presentate in questa sezione sarà generato.

Filtrare programmi

Una volta che il robot è stato calibrato, abbiamo due opzioni per generare programmi utilizzando l'accuratezza assoluta del robot calibrato.

Filtrare programmi esistenti: tutti i bersagli robot all'interno del programma sono modificati per migliorare l'accuratezza del robot. Può essere fatto manualmente o utilizzando l'API.

Usare RoboDK per Programmazione Offline per generare programmi accurati (programmi generati sono già filtrati, inclusi programmi generati tramite l'API)

Per filtrare un programma esistente manualmente: trascinare il programma robot nella finestra principale di RoboDK (o seleziona FileApri) e seleziona Filtra solo. Il programma sarà filtrato e salvato nella stessa cartella. Il resoconto menzionerà se ci sono stati problemi utilizzando l'algoritmo di filtro. Abbiamo anche l'opzione di importare un programma se vogliamo simularlo dentro RoboDK. Se il programma ha dipendenze (definizione piani tool, base, subprogrammi, ...) devono essere posizionate nella stessa cartella dove il primo programma è stato importato.

Robot Calibration LaserTracker - Figura 34

Robot Calibration LaserTracker - Figura 35

Una volta importato il programma dentro RoboDK possiamo rigenerarlo con o senza accuratezza assoluta. Nelle impostazioni di accuratezza principalo di RoboDK (StrumentiOpzioniAccuratezza) possiamo decidere se vogliamo sempre generare i programmi usando cinematiche accurate, se vogliamo chiedere ogni volta o se vogliamo usare le cinematiche robot. Le cinematiche robot in uso possono esser modificate cliccando con il tasto destro sul robot e attivando/disattivando Utilizza cinematiche accurate. Se è attivo vedremo un pallino verde, se no, ne vedremo uno rosso.

Robot Calibration LaserTracker - Figura 36

Robot Calibration LaserTracker - Figura 37

Filtrare programma con l'API

È possibile filtrare un programma completo usando RoboDK dato un robot calibrato e un programma robot utilizzando la chiamata FilterProgram:

robot.FilterProgram(file_program)

Un esempio di macro chiamata FilterProgram è disponibile nella sezione macro della libreria. Il codice seguente è un esempio Python che usa l'API di RoboDK per filtrare un programma.

from robolink import*# API to communicate with RoboDK

from robodk import*# basic matrix operations

import os                 # Path operations

# Get the current working directory

CWD = os.path.dirname(os.path.realpath(__file__))

# Start RoboDK if it is not running and link to the API

RDK = Robolink()

# optional: provide the following arguments to run behind the scenes

#RDK = Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')

# Get the calibrated station (.rdk file) or robot file (.robot):

# Tip: after calibration, right click a robot and select "Save as .robot"

calibration_file = CWD +'/KUKA-KR6.rdk'

# Get the program file:

file_program = CWD +'/Prog1.src'

# Load the RDK file or the robot file:

calib_item = RDK.AddFile(calibration_file)

ifnot calib_item.Valid():

raise Exception("Something went wrong loading "+ calibration_file)

# Retrieve the robot (no popup if there is only one robot):

robot = RDK.ItemUserPick('Select a robot to filter', ITEM_TYPE_ROBOT)

ifnot robot.Valid():

raise Exception("Robot not selected or not available")

# Activate accuracy

robot.setAccuracyActive(1)

# Filter program: this will automatically save a program copy

# with a renamed file depending on the robot brand

status, summary = robot.FilterProgram(file_program)

if status ==0:

print("Program filtering succeeded")

print(summary)

calib_item.Delete()

RDK.CloseRoboDK()

else:

print("Program filtering failed! Error code: %i"% status)

print(summary)

RDK.ShowRoboDK()

Filtrare bersagli con l'API

Il seguente codice è un esempio di script Python che usa RoboDK per filtrare un bersaglio (posa o giunti) usando il comando FilterTarget:

pose_filt, joints = robot.FilterTarget(nominal_pose, estimated_joints)

Questo esempio è utile se un'applicazione di terze parti (oltre a RoboDK) genera il programma robot utilizzando bersagli pose.

from robolink import*# API to communicate with RoboDK

from robodk import*# basic matrix operations

defXYZWPR_2_Pose(xyzwpr):

return KUKA_2_Pose(xyzwpr) # Convert X,Y,Z,A,B,C to a pose

defPose_2_XYZWPR(pose):

return Pose_2_KUKA(pose) # Convert a pose to X,Y,Z,A,B,C

# Start the RoboDK API and retrieve the robot:

RDK = Robolink()

robot = RDK.Item('', ITEM_TYPE_ROBOT)

ifnot robot.Valid():

raise Exception("Robot not available")

pose_tcp = XYZWPR_2_Pose([0,0,200,0,0,0]) # Define the TCP

pose_ref = XYZWPR_2_Pose([400,0,0,0,0,0]) # Define the Ref Frame

# Update the robot TCP and reference frame

robot.setTool(pose_tcp)

robot.setFrame(pose_ref)

# Very important for SolveFK and SolveIK (Forward/Inverse kinematics)

robot.setAccuracyActive(False)# Accuracy can be ON or OFF

# Define a nominal target in the joint space:

joints =[0,0,90,0,90,0]

# Calculate the nominal robot position for the joint target:

pose_rob = robot.SolveFK(joints) # robot flange wrt the robot base

# Calculate pose_target: the TCP with respect to the reference frame

pose_target = invH(pose_ref)*pose_rob*pose_tcp

print('Target not filtered:')

print(Pose_2_XYZWPR(pose_target))

joints_approx = joints # joints_approx must be within 20 deg

pose_target_filt, real_joints = robot.FilterTarget(pose_target, joints)

print('Target filtered:')

print(real_joints.tolist())

print(Pose_2_XYZWPR(pose_target_filt))


Mastering robot

Una volta che il robot è stato calibrato, solitamente abbiamo bisogno che RoboDK filtri i programmi, dunque, una licenza RoboDK è richiesta (una licenza base di OLP va bene per generare programmi robot una volta che è stato calibrato). Filtrare un programma signidica che i bersagli in un programma sono alterati/ottimizzati per migliorare l'accuratezza del robot, prendendo in considerazione tutti i parametri di calibrazione (circa 30).

In alternativa, possiamo calibrare solo l'offset giunti più il riferimento di base e tool (4 parametri di offset giunti più sei parametri per il piano della base più sei parametri per il piano del tool). La calibrazione non sarà così accurata come se usassimo la calibrazione completa ma permette di immettere certi parametri nel controller robot non dipendenti da RoboDK nella generazione dei programmi.

Per ottenere la calibrazione solo per l'offset dei giunti dobbiamo selezionare Calib. Param. poi il pulsante Mastering (dentro il menu calibrazione robot).

Robot Calibration LaserTracker - Figura 38

Robot Calibration LaserTracker - Figura 39

Una nuova finestra comparirà dopo che abbiam selezionato Crea programma mastering. In questa finestra possiamo selezionare quali assi vogliamo prender in considerazione per creare una nuova posizione di home.

Robot Calibration LaserTracker - Figura 40

Il pulsante Crea programma mastering apparirà nella finestra calibrazione robot. Seleziona questo pulsante per generare il programma che porterà il robot nella nuova posizione di home. Trasferiscilo al robot ed eseguilo, poi, una nuova posizione home deve esser registrata.

Se il robot e il PC sono connessi, possiamo fare click con il tasto destro sul programma e Inviare Programma al Robot per mandare automaticamente il programma al robot. In alternativa, possiamo selezionare Genera Programma Robot per vedere i nuovi valori giunti per la posizione home.

Robot Calibration LaserTracker - Figura 41

Come esempio, dobbiamo seguire i prossimi passaggi per aggiornare la posizione home per robot Motoman

Dobbiamo prima avviare il programma MASTERING per portare il robot nella sua nuova posizione di home.

Una volta che il programma è nel controller dobbiamo loggarci come Management mode (password per robot Motoman è solitamente 99999999) e dobbiamo essere in Teach mode. Le seguenti immagini mostrano gli step da seguire.

Robot Calibration LaserTracker - Figura 42Robot Calibration LaserTracker - Figura 43

Robot Calibration LaserTracker - Figura 44Robot Calibration LaserTracker - Figura 45

Robot Calibration LaserTracker - Figura 46Robot Calibration LaserTracker - Figura 47

Assicurati di aggiornare la posizione home per tutti i giunti robot

Una volta che la posizione di home è impostata, dobbiamo cancellare il programma robot che ha portato il robot nella nuova posizione di home.

Piano di riferimento e riferimento tool

RoboDK fornisce alcune utilità per calibrare i piani di riferimento e il piano tool. Questi strumenti possono essere trovati in UtilitàCalibra Piano di Riferimento e UtilitàCalibra Piano Tool rispettivamente.

Robot Calibration LaserTracker - Figura 48

Per calibrare un piano di riferimento o un piano tool (conosciuto anche come Piano Utente o TCP) abbiamo bisogno di alcune configurazioni robot che tocchino 3 o più punti, queste configurazioni possono esser o valori giunti o coordinate cartesiane (con orientamenti, in alcuni casi). È raccomandato usare i valori giunti invece che le coordinate cartesiano siccome è più semplice controllare la vera configurazione robot in RoboDK (facendo copia incolla dei punti nella schermata principale di RoboDK)

Calibrazione tool

Seleziona UtilitàCalibra tool per calibrare il TCP utilizzando RoboDK. Possiamo usare quanti punti vogliamo, usando differenti orientamenti. Più punti e orientamenti diversi cambiano meglio sarà stimato il TCP come anche il suo errore.

Le seguenti due opzioni sono disponibili per calibrare un TCP:

Toccando un punto stazionario con il TCP seguendo differenti orientamenti.

Toccando un piano con il TCP (come uno strumento di misurazione)

È raccomandato calibrare toccando un piano se dobbiamo calibrare uno strumento di misurazione o un mandrino. Questo metodo è più stabile per errori utente.

Se il TCP è una sfera, il centro della sfera è calcolato automaticamente come nuovo TCP (non è necessario fornire il diametro)

Robot Calibration LaserTracker - Figura 49

I seguenti passaggi devono essere seguiti per calibrare il TCP con un piano (come visualizzato nell'immagine):

1.Seleziona un tool che ha bisogno di esser calibrato.

2.Seleziona il metodo di calibrazioneCalibrazione da piano XYZ.

3.Seleziona calibra usando giunti.

4.Seleziona il robot utilizzato.

5.Seleziona il numero di configurazioni che sarà utilizzato per la calibrazione (è raccomandato usare almeno 8 configurazioni)

6.Seleziona una stima del piano di riferimento. Se il piano di riferimento non è parallelo al piano XY del robot (dal riferimento del robot) dobbiamo aggiundere una stima di questo piano di riferimento con almeno +/- 20 gradi. La posizione di questo piano non è importante, solo l'orientamento.

Robot Calibration LaserTracker - Figura 50

7.Possiamo iniziare a inserire i valori giunti. Possiamo inserirli manualmente o facendo copia incolla con i pulsanti (come mostrato nell'immagine). Possiamo anche usare il pulsante Ottieni Jx per ottenere i valori giunti correnti dal robot nel simulatore. Se stiamo ottenendo giunti dal robot reale connesso al robot dobbiamo prima selezionare Ottieni giunti correnti dal pannello connessione robot (immagine sucessiva o Appendix). È raccomandato tenere una copia separata dei giunti usati per la calibrazione.

Robot Calibration LaserTracker - Figura 51

1.Una volta che la tabella è completa vedremo dei nuovi valori del TCP (X,Y,Z) come anche TCP calibrato, alla fine della finestra. Possiam selezionare Aggiorna e il nuovo TCP verrà aggiornato nella stazione RoboDK. L'orientamento non sarà trovato usando questo metodo.

2.Possiamo mostrare Visualizza errori e vedremo l'errore di ogni configurazione con rispetto del TCP calcolato (che è la media di tutte le configurazioni). Possiamo cancellare una configurazione se ha un errore maggiore delle altre.

3.Dobbiamo aggiornare manualmente i valori nel controller del robot reale (X,Y,Z soltanto). Se questo TCP viene usato per generare programmi da RoboDK non è necessario aggiornare il controller.

Calibrazione piano di riferimento

Seleziona UtilitàCalibra piano di riferimento per calibrare un piano di riferimento. È possibile impostare un piano di riferimento utilizzando metodi differenti. Nell'esempio in figura, un piano di riferimento è definito da tre punti: punto 1 e 2 definiscono la direzione dell'asse X e il punto 3 definisce Y positivo.

Robot Calibration LaserTracker - Figura 52

Annex I – Mastering assi 1 e 6

Dobbiamo fare speciale attenzione se vogliamo ottenere valori mastering/home per gli assi 1 e 6. Questi valori sono collegati direttamente alla base robot per l'asse 1 e al TCP per l'asse 6. Dunque, misurazioni esterne devono esser prese in considerazione per impostare propriamente questi valori. Questa finestra apparirà dopo che abbiamo selezionato Crea programma mastering nel menu calibrazione.

Robot Calibration LaserTracker - Figura 53

Le prossime due procedure devono essere seguite per impostare propriamente i parametri di mastering per questi due assi.

Axis 6 reference

Dobbiamo usare un bersaglio di riferimento per impostare propriamente la posizione home dell'asse 6. L'angolo di offset sarà una rotazione attorno all'asse Z della flangia robot necessaria ad adattarsi al TCP misurato (X,Y,Z) con il riferimento conosciuto del TCP. Il TCP misurato (guarda la prossima immagine) è uno dei TCP misurati nel passaggio 2 di questa procedura. Il riferimento TCP è un riferimento conosciuto che corrisponde a uno dei TCP della calibrazione in uso.

Idealmente, il TCP di riferimento deve esser misurato dal CMM con rispetto della flangia tool (una replica della flangia robot sarebbe meglio). In alternativa, possiamo usare un nuovo robot per misurare (passaggio 2) il TCP per la prima volta e usare un TCP misurato come riferimento. È importante usare un dowel pin o un'appropriata flangia per assicurarsi che l'end effector sia sempre nella stessa posizione.

Robot Calibration LaserTracker - Figura 54

Axis 1 reference

Dobbiamo misurare propriamente tre bersagli sulla base prima di iniziare la calibrazione robot se vogliamo allineare l'asse 1 con la vera base del robot. Questi bersagli base devon esser scelti in modo che il piano di riferimento possa esser trovato con riferimento del robot.

La posizione Home dell'asse 1 dipende direttamente da questi tre bersagli base come anche dal setup della base robot. Il setup della base robot è il primo passaggio della calibrazione, dove il piano della base e il sistema di misurazione è posizionato con rispetto della base del robot muoverndo e misurando gli assi 1 e 2.

I bersagli della base del sistema di misurazione posson esser impostati selezionando Imposta bersagli base (prossima immagine). Sono 3 misurazioni che definiscono il piano di riferimento desiderato (le prime due misurazioni definiscono l'asse X e il terzo punto definisce Y positivo). Dobbiamo usare punti di riferimento appropriati collegati alla base robot in modo che questa procedura sia ripetibile.

La correzione dell'angolo per l'asse 1 sarà un'angolo tra l'asse X della base misurata tramite 3 punti e il piano di riferimento della base misurato muovendo gli assi 1 e 2 del robot. Ovviamente, entrambi i vettori sono proiettati sul piano XY della base ottenuto toccando i tre punti.

Robot Calibration LaserTracker - Figura 55

Annex II – Testare il laser tracker Faro

La calibrazione robot richiede misurazioni prese dal robot con un sistema di misurazione. Per prendere queste misurazioni è richiesto un Faro laser tracker che comunichi con il computer. La comunicazione è fatta attraverso un driver file exe che può essere avviato in modalità console.

Per esempio, Faro fornisce un'applicazione gratuita chiamata Tracker Utilities. Questa applicazione può inizializzare il laser tracker ed effettuare alcune verifiche, tra le altre cose.

Per inizializzare il tracker dobbiamo avviare l'applicazione Tracker Utilities, connetterci usando il tracker IP, poi, selezionare Startup Checks. Quando il tracker si inizializza, dobbiamo posizionare un bersaglio SMR 1.5" nella posizione home prima dell'inizializzazione. Altrimenti, la luce verde lampeggerà dopo l'inizializzazione e le misurazioni non saranno valide.

Una volta che l'inizializzazione è completa dovremmo leggere il messaggio Startup completo, come mostrato nella prossima immagine.

Robot Calibration LaserTracker - Figura 56Robot Calibration LaserTracker - Figura 57

Se incontriamo problemi con il tracker, possiamo avviare qualche controllo premendo Health Checks... Le prossime due immagini mostrano un successo e un fallimento rispettivamente. Qualche volta, problemi vengono risolti dopo che è stato riconnesso il cavo e riavviato il laser tracker.

Robot Calibration LaserTracker - Figura 58Robot Calibration LaserTracker - Figura 59

Robot Calibration LaserTracker - Figura 60

Infine, possiamo usare Measure pad per prendere alcune misurazioni. Il laser tracker può seguire un bersaglio e misurare la poszione XYZ ad una frequenza di 1000 Hz. Se impostiamo 1 sample per punto e avviamo il tracker in continuo, registrerà 1000 misurazioni per secondo in un file CSV.

Possiamo usare questa funzionalità per misurare il percorso di un robot e usare l'accuratezza percorso di RoboDK per controllare l'accuratezza, velocità ed accelerazione lungo il percorso.

Robot Calibration LaserTracker - Figura 61