Fresatura Robot

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.


Setup per Fresatura

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 FileRobot Machining - Figura 1 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 TypeTool

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 ProgrammaRobot Machining - Figura 2 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 FileRobot Machining - Figura 3 Apri

b.Seleziona un oggetto chiamato Object wooden bowl.sld

c.Trascina l'oggetto nel piano su Milling Reference (dentro l'albero della stazione)

Robot Machining - Figura 4

Progetto Fresatura Robotizzata

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àRobot Machining - Figura 5Progetto 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

Robot Machining - Figura 6

Seleziona il robot, il piano di riferimento e il tool nella sezione in alto a sinistra del menu, come mostrato nella seguente immagine:

Robot Machining - Figura 7

Il percorso di fresatura è visualizzato in Verde e le normali sono visualizzate come vettori bianchi. Deseleziona Percorso visibile per nascondere il percorso.

Input 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

Robot Machining - Figura 8Robot Machining - Figura 9

Approcio/Ritrazione

Movimenti di approcio/ritrazione possono essere forniti in alto a destra del menu

Robot Machining - Figura 10

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.

Robot Machining - Figura 11

Fare doppio click sul valore per modificare la lunghezza o seleziona Rimuovi per rimuovere il movimento specifico.

Percorso in offset tool

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.

Robot Machining - Figura 12

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).

Robot Machining - Figura 13

Ottimizzazione Parametri

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.

Robot Machining - Figura 14

Aggiorna Programma

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.

Robot Machining - Figura 15

Fare doppio click sul programma generato Robot Machining - Figura 16 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

Robot Machining - Figura 17

Configurazione Preferita

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.

Robot Machining - Figura 18


Taglio Robot

È 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.

Robot Machining - Figura 19

Robot tiene oggetto

È 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.

Robot Machining - Figura 20

Progetto Segui Curva

È 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.

Robot Machining - Figura 21

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.

Robot Machining - Figura 22

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:

Robot Machining - Figura 23

Importa Curve

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.

Robot Machining - Figura 24

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.

Robot Machining - Figura 25

Progetto Segui Punto

È 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.

Robot Machining - Figura 26

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.

Robot Machining - Figura 27

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:

Robot Machining - Figura 28

Importa Punti

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.

Robot Machining - Figura 29

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.

Robot Machining - Figura 30

Progetto Stampa 3D

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.

Robot Machining - Figura 31

Robot Machining - Figura 32

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.

Robot Machining - Figura 33

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.


Post Processori per stampanti 3D

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