La fresatura robotica è il processo dove materiale grezzo viene tagliato nella forma finale da un processo di rimozione di materiale controllato utilizzando un braccio robotico. La fresatura può anche esser estesa con altre applicazioni come foratura, sbavatura, tipicamente eseguite da macchine a controllo numerico (CNC). Robot industriali possono esser usati come macchine (a 3 o 5 assi) CNC utilizzando RoboDK.
Per ottenere lo stesso risultato, o migliore, robot industriali richiedono softeare di Programmazione Offline come RoboDK per convertire un percorso macchina in programmi robot.
Le dimensioni della parte sono definite usando un software computer-aid design (CAD) e poi tradotte in programmi di manifattura (come il G-code) da un software computer-aid manufacturing (CAM). I programmi di manifattura possono esser convertiti in programmi robot usando la Programmazione Offline di RoboDK. Assi addizionali, ad esempio tavole rotanti e assi lineari posson esser sincronizzati con il robot per estenderne lo spazio di lavoro.
Questa sezione mostra come preparare una stazione offline semplice per fresatura robotizzata. Una stazione RoboDK contiene tutti i robot, tool, piani di riferimento, oggetti e altre impostazioni. Più informazioni riguardo a come costruire una stazione nella sezione Per Iniziare.
È richesto avere un robot con un tool e un oggetto 3D in un piano di riferimento per impostare un progetto di fresatura robotizzata:
1-Seleziona un robot:
a.Seleziona File➔ Apri libreria online
b.Utilizza i filtri per cercare il tuo robot per produttore, payload, ...
Per esempio, seleziona il robot 2600-20/1.65 (20 Kg payload, 1.65 m reach)
c.Seleziona Download e il robot dovrebbe automaticamente apparire nella finestra principale
2-Seleziona un tool:
a.Dalla stessa libreria online, filtra per Type➔Tool
b.Scarica uno Spindle tool
c.Il tool dovrebbe esser automaticamente collegato al robbot
Una volta che il tool è caricato la Libreria Online può esser chiusa
3-Aggiungi un piano di riferimento:
a.Seleziona Programma➔ Aggiungi Piano di Riferimento
b.Seleziona un nuovo Piano di Riferimento nell'albero e seleziona F2 per rinominarlo in Milling Reference
4-Aggiungi un oggetto:
a.Seleziona File➔ Apri
b.Seleziona un oggetto chiamato Object wooden bowl.sld
c.Trascina l'oggetto nel piano su Milling Reference (dentro l'albero della stazione)
Segui questi passaggi per impostare un nuovo progetto di fresatura robotizzata dato un file NC generato da software CAM (come G-code o APT):
1.Seleziona Utilità➔Progetto Fresatura robotizzata (Ctrl+M)
Una nuova finestra comparirà, come mostrato nell'immagine.
2.Seleziona Seleziona file NC nella sezione input percorso
3.Fornisci un file NC, come uno dalla libreria RoboDK:
C:/RoboDK/Library/Milling Bowl 3x.nc
Seleziona il robot, il piano di riferimento e il tool nella sezione in alto a sinistra del menu, come mostrato nella seguente immagine:
Il percorso di fresatura è visualizzato in Verde e le normali sono visualizzate come vettori bianchi. Deseleziona Percorso visibile per nascondere il percorso.
L'input percorso permette di selezionare diversi modi di fornire un percorso. Il percorso può essere definito da:
●Seleziona file NC: Come file NC (ottenuto da software CAM), come descritto in questa sezione
●Seleziona curva: Come una o più curve, descritte nella sezione Progetto Segui Curve.
È possibile importare curve come lista di coordinate in RoboDK
●Seleziona punti: Uno o più punti, come descritto nella sezione Progetto Segui Punti
È possibile importare punti come lista di coordinate in RoboDK
●Oggetto stampa 3D: Come un oggetto per stampa 3D. Uno slicer è utilizzato per convertire la geometria in percorso
Movimenti di approcio/ritrazione possono essere forniti in alto a destra del menu
Seleziona Aggiungi per aggiungere un movimento addizionale. Il tracciato verde si aggiornerà. È possibile selezionare tra movimenti normali (lungo la normale bianca), tangente (lungo il percorso verde) o lungo uno specifico asse con rispetto della parte.
Fare doppio click sul valore per modificare la lunghezza o seleziona Rimuovi per rimuovere il movimento specifico.
Il percorso in tool offset permette di modificare l'orientamento preferito del tool lungo il percorso. Questa opzione è principalmente utilizzata per ruotare il robot attorno all'asse Z del TCP.
Visto che un robot a 6 assi è utilizzato per seguire un programma per 3 o 5 assi dobbiamo aggiungere un grado di libertà aggiuntivo. Questo grado di libertà è solitamente la rotazione attorno all'asse Z del TCP.
Di default, il percorso in tool offset visualizza la trasformazione rotz(0). Questo valore può essere modificato per stabilire l'orientamento preferito del tool, modificare l'orientamento attorno all'asse Z del TCP o in combinazione con altri assi. L'orientamento preferito è l'orientamento che il robot proverà a mantenere mentre segue il percorso.
Di default, RoboDK utilizza l'algoritmo di Minima modifica dell'orientamento. Ciò significa che l'orientamento del tool è mantenuto più costante possibile lungo il percorso. In generale, questa opzione è utilizzabile in operazioni di fresatura perchè minimizza i movimenti giunti del robot. In alternativa, altri algoritmi/motodi sono disponibili, come tool segue percorso (per applicazioni di taglio) o robot tiene l'oggetto se il percorso deve essere seguito collegato al tool del robot (per esempio, dispensare o applicazioni di lucidatura).
Dato un orientamento preferito, il robot può avere una certa libertà di ruotare attorno all'asse Z del tool. Ciò permette al robot di compiere il programma evitando singolarità e costrizioni assi. Di default, RoboDK permette al tool di ruotare di +/- 180 gradi attorno all'asse TCP in step di 20 gradi.
È raccomandato costringere questa rotazione dipendentemente dall'applicazione. Per esmpio, è possibile immettere +/- 90 gradi per costringere la rotazione di metà.
Se alcuni punti del percorso non sono raggiungibili, è raccomandato spostare il piano di riferimento o essere più permissivi con la rotazione su Z. Il piano di riferimento può essere mosso tenendo premuto Alt.
Seleziona Aggiorna per ottenere il programma in accordo alle impostazioni fornite. Un simbolo verde è visualizzato se il programma può essere creato con successo. Vedremo poi un nuovo programma nella stazione.
Fare doppio click sul programma generato o seleziona Simula per iniziare la simulazione di fresatura.
Fare click con il tasto destro e selezionare Genera programma robot (F6) per ottenere il programma. Più informazioni riguardo la generazione del programma nella sezione Programma
RoboDK seleziona automaticamente la configurazione iniziale che è più vicina alla configurazione di partenza (Giunti preferiti per punto iniziale). Da quel punto, il robot seguirà movimenti lineari, quindi la configurazione robot non cambierà.
Un menu a scomparsa visualizzerà tutte le possibili soluzioni per iniziare il programma. Se richiesto, seleziona una configurazione preferita e seleziona Aggiorna per ricalcolare il programma.
È possibile mantenere l'orientamento del tool costante lungo il percorso. Questo comportamento è utile per taglio o saldatura.
Seleziona Orientamento tool segue il percorso nella sezione Seleziona algoritmo per ricalcolare il percorso preferito. Le altre impostazioni sono le stesse del progetto fresatura con un orientamento costante.
È possibile programmare il robot a tenere l'oggetto/toolpath con il tool mentre le operazioni di manifattura sono svolte. È utile per applicazioni di incollaggio o smerigliatura.
Seleziona Robot tiene oggetto nella sezione Seleziona Algoritmo per posizionare propriamente il percorso sul riferimento del TCP. Le altre impostazioni sono le stesse di un progetto fresatura con orientamento costante.
È possibile far si che il robot segua curve nello spazio 3D con RoboDK. Curve in RoboDK possono essere selezionate da spigoli di oggetti o importati da una lista di punti in file CSV. Questa opzione è utile per applicazioni di saldatura.
Seleziona Utilità➔Progetto Segui Curva per aprire le impostazioni segui curva. Queste impostazioni sono le stesse del Progetto Fresatura, l'unica differenza è che l'Input percorso è preselezionato su Seleziona curva
Seleziona Seleziona curva per selezionare le curve sullo schermo.
Seleziona le curve con il click del tasto sinistro del mouse. Selezionare le curve due volte invertirà la direzione del movimento. Inoltre cliccare con il tasto destro su una curva precedentemente selezionata permette di cambiarne il senso o deselezionarla.
Cliccare con il tasto destro sullo schermo e selezionare Fatto o premere il tasto Esc per tornare indietro nel menu impostazioni. Il percorso verde mostrerà i movimenti del robot con rispetto dell'oggetto.
Alcune opzioni addizionali sono disponibili in alto a destra delle impostazioni, ad esempio la velocità e i movimenti di approcio/ritrazione devono essere applicati ad ogni curva. Le impostazioni di default sono visualizzate nella prossima immagine:
Curve possono essere importati in RoboDK da un file CSV o un file testo selezionando Utilità➔Importa Curve. Un nuovo oggetto apparirà nella stazione mostrando le curve come oggetto.
Il file può essere un file di testo con coordinate 3D di ogni punto della curva. Opzionalmente, l'orientamento dell'asse Z del tool può essere fornito come vettore i,j,k.
Opzionalmente, curve esistenti di un oggetto possono essere esportate come un file CSV (tasto destro su una curva, poi, seleziona Esporta curva), modificala e reimportala in RoboDK.
È possibile far seguire al robot punti nello spazio 3D con RoboDK. Punti in RoboDK possono essere estratti da oggetti, curve o importare un file CSV come lista di punti. Questa opzione è utile per saldatura spot o applicazioni di foratura, ad esempio. Il video seguente mostra un esempio di impostazione di una saldatura spot: guarda.
Seleziona Utilità➔Progetto Segui Punto per aprire le impostazioni. Queste impostazioni sono le stesse di un progetto Fresatura, la sola differenza è che l'input percorso è preselezionato in Seleziona punti.
Seleziona Seleziona punti per selezionare i punti sullo schermo.
Seleziona i punti con un click sinistro del mouse. Seleziona lo stesso punto due volte per cambiare la direzione di approcio. Inoltre, clicca con il tasto destro su un punto per selezionare il seguente selezionando Seleziona prossimo.
Cliccare con il tasto destro sullo schermo e selezionare Fatto o premere il tasto Esc per tornare indietro al menu impostazione. Il percorso verde mostrerà i movimenti robot con rispetto di un oggetto.
Alcune opzioni addizionali sono disponibili in alto a destra nelle impostazioni, ad esempio la velocità del tool e la distanza di approcio. Le impostazioni di default sono visualizzate nella seguente immagine:
Una lista di punti può essere importata da un file CSV selezionando Utilità➔Importa Punti. Un nuovo elemento apparirà nella stazione mostrando i punti come un oggetto.
Il file può essere un file di testo con coordinate 3D con ogni punto della curva. Opzionalmente, l'orientamento dell'asse Z del tool può essere fornito come vettore i,j,k.
Opzionalmente, curve esistenti di un oggetto possono essere convertite in punti cliccando con il tasto destro su una curva e poi selezionando Estrai punti curva.
Stampa 3D o additive manufacturing è il processo di creazione tridimensionale di oggetti solidi da un file digitale. Robot industriali possono essere usati come stampanti a 3 assi o 5 assi con RoboDK. Il seguente video mostra una panoramica di come impostare la stampa 3D con RoboDK: guarda.
Stampa 3D con robot è possibile in una delle seguenti condizioni:
●Convertendo direttamente un programma G-code (file NC) in programmi robot con RoboDK, come mostrato con il progetto fresatura. Il rapporto di materiale (parametro E) è preso in considerazione per ogni movimento e può essere integrato nel programma generato come un Evento Programma. Il G-code è un tipo di file NC supportato da RoboDK ed è anche un formato supportato da molte stampanti 3D. La maggiorparte dei software di slicing possono generare il G-code dato un file STL.
●Seleziona Utilità➔Progetto di stampa 3D per aprire le impostazioni di stampa 3D. Queste impostazioni sono le stesse del progetto fresatura, l'unica differenza è che l'input percorso è preselezionato in oggetto stampa 3D. Seleziona Seleziona oggetto per selezionare l'oggetto sullo schermo e automaticamente ottenere il percorso. Seleziona opzioni stampa 3D per aprire Slic3r.
Di default, RoboDK traduce i valori E come chiamate programma ad un programma chiamato Extruder passando anche il valore E come parametro. Seleziona Eventi Programma per modificare questo comportamento.
Il valore di estrusione (E) rappresenta quanto materiale deve essere estruso prima di ogni movimento. Questo valore può essere utilizzato per gestire il feed dell'estrusore dal robot tenendo in considerazione la velocità e la distanza tra i punti.
In alternativa, è possibile calcolare il feed utilizzando un post processore e generare codice appropriato. La prossima sezione fornisce un esempio.
Questa sezione mostra come modificare un post processore robot per calcolare il feed dell'estrusore prima di eseguire ogni movimento. In alternativa, questi calcoli possono essere fatti dal controllore robot.
Il primo step è quelli di intercettare le chiamate all'estrusore e leggerne i valori dalla sezione RunCode del post processore:
def RunCode(self, code, is_function_call = False):
if is_function_call:
if code.startswith("Extruder("):
# Intercept the extruder command.
# if the program call is Extruder(123.56)
# we extract the number as a string
# and convert it to a number
self.NEW_E_LENGTH = float(code[9:-1])
# Skip the program call generation
return
else:
self.addline(code + "()")
else:
# Output program code
self.addline(code)
Il valore di estrusione è salvato nella variabile NEW_E_LENGTH. Poi, dobbiamo definire una nuova procedura che genera un appropriato comando in accordo alla distanza tra i movimenti, la velocità robot e l'accelerazione robot. Ciò assume che il feed dell'estrusore è gestito da un output analogico dal controllore robot (output analogico numero 5 in questo esempio)
def new_move(self, pose1, pose2):
if pose1 isNone:
return
def Calculate_Time(Dist, Vmax, Amax):
'''Calculate the time to move Dist with Amax acceleration and Vmax speed'''
tacc = Vmax/Amax;
Xacc = 0.5*Amax*tacc*tacc;
if Dist <=2*Xacc:
# Vmax is not reached
tacc = sqrt(Dist/Amax)
Ttot = tacc*2
else:
# Vmax is reached
Xvmax = Dist -2*Xacc
Tvmax = Xvmax/Vmax
Ttot = 2*tacc + Tvmax
return Ttot
add_material = self.NEW_E_LENGTH - self.LAST_E_LENGTH
self.LAST_E_LENGTH = self.NEW_E_LENGTH
if add_material >0:
distance_mm = norm(subs3(pose1.Pos(), pose2.Pos()))
# calculate movement time in seconds
time_s = Calculate_Time(distance_mm, self.SPEED_MMS, self.ACCEL_MMSS)
# add material
self.setDO(5, (add_material/time_s))
else:
# DO not add material
self.setDO(5,0)
Infine, dobbiamo avviare il comando new_move con ogni nuova istruzione di movimento. Possiamo aggiungere questa chiamata all'inzio di ogni comando MoveL:
def MoveL(self, pose, joints, conf_RLF=None):
"""Add a linear movement"""
self.new_move(self.LAST_POSE, pose) # used for 3D printing