Usinage Robot

Il est possible d’utiliser des robots industriels comme machine-outil (CNC 3 ou 5 axes). Pour obtenir les mêmes résultats que les machines CNC, les robots industriels ont besoin de logiciels de programmation hors ligne avancés tels que RoboDK pour convertir des programmes de machines en programmes robots.

L’usinage robot comprend différentes applications d’enlèvement de matériaux, telles que le fraisage, le perçage, le chanfreinage et l’ébavurage, généralement exécutées par des machines-outils automatisées (CNC).

Les dimensions des pièces sont définies à l’aide d’un logiciel de conception assistée par ordinateur (CAO), puis traduites en programmes de fabrication (comme le code G) par un logiciel de fabrication assistée par ordinateur (FAO). Les programmes de fabrication peuvent ensuite être convertis en programmes de robots à l’aide des outils de programmation hors ligne de RoboDK.

Des axes supplémentaires, tels qu’une plaque tournante et un rail linéaire peuvent être synchronisés avec le robot pour prolonger l’espace de travail.

Paramètres pour l’usinage

Cette section montre comment préparer une simple station RoboDK hors ligne pour l’usinage robot. Une station RoboDK contient tous les robots, outils, repères, objets et autres paramètres. Plus d’informations sur la construction d’une station RoboDK dans la section de démarrage.

Il est nécessaire d’avoir un robot avec un outil et l’objet 3D dans un repère pour mettre en place un projet d’usinage robot :

1-Sélectionner un robot :

a.Sélectionner FichierRobot Machining - Image 1 Ouvrir bibliothèque en ligne

b.Utiliser les filtres pour trouver la marque du robot, la charge admissible, …       
Par exemple, sélectionner le robot ABB IRB 2600-20/1.65 (20 Kg payload, 1.65 m reach).

c.Sélectionner Download et le robot devrait apparaitre automatiquement sur l’écran principal.

2-Sélectionner un outil :

a.Depuis la bibliothèque en ligne, utiliser le filtre TypeTool

b.Télécharger un outil type broche (Spindle)

c.L’outil va être automatiquement attaché au robot     
Lorsque l’outil est chargé, la bibliothèque peut être fermée.

3-Ajouter un repère :

a.Sélectionner ProgrammeRobot Machining - Image 2 Ajouter un repère

b.Sélectionner le nouveau repère dans l’arborescence et sélectionner F2 pour le renommer en Milling Reference

4-Ajouter un objet :

a.Sélectionner FichierRobot Machining - Image 3 Ouvrir

b.Sélectionner un objet nommé Object wooden bowl.sld

c.Glisser et déposer l’objet sur le repère Milling Reference (dans l’arborescence de la station)

Robot Machining - Image 4

Projet d’usinage Robot

Suivre les étapes ci-dessous pour configurer un nouveau projet d’usinage robot avec un fichier CN généré à l’aide du logiciel FAO (comme G-code ou APT) :

1.Sélectionner UtilitairesRobot Machining - Image 5 Projet d’usinage robot (Ctrl+M).     
Une nouvelle fenêtre va s’ouvrir, tel que montré dans l’image suivante.

2.Sélectionner Sélectionner fichier CN dans la section parcours

3.Renseigner un fichier NC, comme celui de la bibliothèque de RoboDK :    
C:/RoboDK/Library/Milling Bowl 3x.nc ou Example-02.c-Robot Machining Bowl.nc

Robot Machining - Image 6

Sélectionner le robot, le repère et l’outil en haut à gauche de la fenêtre.

Robot Machining - Image 7

Le parcours outil est affiché en vert et les normales du parcours sont affichées comme des vecteurs blancs. Décocher Parcours d’outil visible pour masquer le parcours outil.

Important : Le repère de l’objet doit correspondre au parcours d’usinage. Si ce n’est pas le cas, aligner le repère de l’objet avec le repère d’usinage de sorte que le repère puisse être localisée dans une configuration réelle.

Parcours du trajet

L’entrée du parcours permet de sélectionner différentes façons de définir un parcours outils. Le parcours outils peut être défini par :

Sélectionner fichier NC : Comme un fichier NC (obtenu à l’aide d’un logiciel FAO), tel que décrit dans cette section.

Sélectionner courbes : Comme une ou plusieurs courbes, tel que décrit dans la section Projet de suivi de courbes.
Il est possible d’
importer des courbes comme une liste de coordonnées dans RoboDK.

Sélectionner points : Un ou plusieurs points, comme décrit dans la section Projet de suivi de Point.     
Il est possible d’
importer des points comme une liste de coordonnées dans RoboDK.

Impression 3D : Comme un objet pour l’impression 3D. Un trancheur est utilisé pour convertir la géométrie en un parcours outil.

Robot Machining - Image 8Robot Machining - Image 9

Approche/Rétracte

Les mouvements d’approches/de retraits peuvent être définis en haut à droite du menu.

Robot Machining - Image 10

Sélectionner Ajouter pour ajouter un mouvement supplémentaire. Le parcours vert sera mis à jour en conséquence. Il est possible de choisir entre un mouvement normal (le long de la normale blanche), tangent (le long du parcours vert) ou le long d’axes spécifiques par rapport à la pièce.

Robot Machining - Image 11

Double-cliquer sur la valeur pour modifier la longueur ou sélectionner Supprimer pour supprimer un mouvement spécifique.

Trajectoire de décalage outil

La trajectoire de décalage outil permet de modifier l’orientation préférée de l’outil le long du parcours outils. Cette option est principalement utilisée pour faire tourner l’outil autour de l’axe Z du TCP.

Dans le cadre d’un robot 6 axes utilisé pour suivre un programme de fabrication CNC à 3 ou 5 axes, il y a un degré supplémentaire de liberté à définir. Ce degré de liberté est généralement la rotation autour de l’axe Z du TCP.

Robot Machining - Image 12

Par défaut, le parcours de décalage de l’outil affiche une transformation rotz(0). Cette valeur peut être modifiée pour établir l’orientation préférée de l’outil, en modifiant l’orientation autour de l’axe Z du TCP ou en combinaison avec d’autres axes. L’orientation préférée est l’orientation que le robot tentera de conserver tout en suivant le parcours outils.

Par défaut, RoboDK utilise l’algorithme de changement d’orientation minimal. Cela signifie que l’orientation de l’outil est maintenue aussi constante que possible le long du parcours outil. En général, cette option est adaptée aux opérations de fraisage car elle minimise les mouvements de l’articulation du robot.

D’autres algorithmes/méthodes sont disponibles, comme l’orientation de l’outil suivant le parcours (utile pour les applications de coupe), ou le robot tenant l’objet si le parcours outil se passe en pièce portée (par exemple, pour les applications de dépose de produits ou de polissage).

Robot Machining - Image 13

Optimisation de paramètres

Même avec une orientation privilégiée (préférée), le robot peut avoir une certaine liberté pour tourner autour de l’axe Z de l’outil. Cela permet au robot d’accomplir le programme en évitant les singularités et les contraintes d’axe. Par défaut, RoboDK permet à l’outil de pivoter jusqu’à +/-180 degrés autour de l’axe TCP par incréments de 20 degrés.

Il est recommandé de limiter cette rotation en fonction de l’application. Par exemple, il est possible d’entrer +/-90 degrés pour limiter de moitié la rotation autorisée.

Si certains points du parcours ne sont pas accessibles, il est recommandé de déplacer le repère ou d’être plus permissif avec la rotation de l’outil Z. Le repère peut être déplacé en maintenant la touche Alt enfoncée.

Robot Machining - Image 14

Mise à jour du programme

Sélectionner Mettre à jour pour obtenir le programme selon les paramètres définis. Une coche verte s’affiche si le programme peut être créé avec succès. Un nouveau programme apparait alors dans la station.

Robot Machining - Image 15

Double-cliquer sur le programme généré Robot Machining - Image 16 ou sélectionner Simuler pour démarrer la simulation d’usinage.

Faire un clic droit sur le programme et sélectionner Générer programme robot (F6) pour obtenir le programme. Plus d’informations sur la génération de programme dans la section Programme.

Robot Machining - Image 17

Configuration préférée

RoboDK sélectionne automatiquement la configuration de départ la plus proche des articulations de départ préférés (joints de départ préférés pour la position de démarrage). À partir de ce moment, le robot suivra les mouvements linéaires, de sorte que la configuration du robot ne change pas.

Un menu déroulant affichera toutes les solutions possibles pour démarrer le programme. Si nécessaire, sélectionner une configuration préférée et sélectionner Update pour recalculer le programme.

Robot Machining - Image 18


Découpe robot

Il est possible de garder l’orientation de l’outil constante le long du parcours. Ce comportement est utile pour les applications de coupe ou de soudage par exemple.

Sélectionner l’orientation de l’outil suit le parcours dans le menu déroulant pour recalculer le parcours outils préféré. Les autres réglages sont les mêmes que pour un projet d’usinage avec une orientation d’outil constante.

Robot Machining - Image 19

Le robot tient l’objet

Il est possible de programmer un robot lorsqu’il maintient une pièce avec l’outil du robot (en pièce portée) pendant la phase de fabrication. Ceci est utile pour les applications de dépose de colle ou de polissage par exemple.

Sélectionner Objet sur le Robot dans le menu déroulant pour placer correctement le parcours outils sur la référence TCP. Les autres réglages sont les mêmes que pour un projet d’usinage avec une orientation d’outil constante.

Robot Machining - Image 20

Projet de suivi de courbes

Il est possible de faire suivre des courbes à un robot dans l’espace 3D avec RoboDK. Les courbes dans RoboDK peuvent être sélectionnées à partir des bords des objets ou importées comme liste de points dans les fichiers CSV. Cette option est utile pour les applications de soudage par robots par exemple.

Sélectionner UtilitairesSuivi de courbes afin d’ouvrir les paramètres de suivi de courbes. Ces paramètres sont les même qu’un Projet d’usinage robot, la seule différence est que pour le Parcours le paramètre est défini sur Sélectionner courbes.

Sélectionner Sélectionner courbes pour choisir les courbes sur l’écran.

Robot Machining - Image 21

Sélectionner les courbes avec un clic gauche de la souris. Sélectionner deux fois la même courbe va changer la direction du mouvement. De plus, un clic droit sur une courbe précédemment sélectionnée permet de changer le sens ou de désélectionner une courbe précédemment sélectionnée.

Robot Machining - Image 22

Astuce : Sélectionner OutilsOptionsAffichage et réduire la sensibilité du pic de courbe si les courbes sont trop proches l’une de l’autre. De plus, réduiser la taille des flèches pour afficher de plus petites flèches vertes le long du parcours.

Faire un clic droit sur l’écran et sélectionner Terminé ou appuyer sur Echap pour retourner au menu. Le parcours vert affichera le mouvement du robot par rapport à l’objet.

Certaines options supplémentaires sont disponibles en haut à droite des réglages, comme la vitesse de l’outil et si les mouvements d’approche/retrait doivent être appliqués pour chaque courbe. Les paramètres par défaut sont affichés dans l’image suivante :

Robot Machining - Image 23

Importer des Courbes

Les courbes peuvent être importées dans RoboDK à partir d’un fichier CSV ou d’un fichier texte en sélectionnant UtilitairesImporter Courbe. Un nouvel élément apparaîtra dans la station montrant la courbe comme un objet.

Robot Machining - Image 24

Le fichier peut être un fichier texte avec les coordonnées 3D de chaque point de la courbe. En option, l’orientation de l’axe Z de l’outil peut être définie comme un vecteur i,j,k.

En option, les courbes existantes d’un objet peuvent être exportées sous forme de fichier CSV (faire un clic droit sur une courbe, puis sélectionner Exporter la courbe), modifiées et réimportées dans RoboDK.

Robot Machining - Image 25

Projet de suivi de Points

Il est possible de faire en sorte qu’un robot suive des points dans l’espace 3D avec RoboDK. Les points dans RoboDK peuvent être extraits à partir d’objets, de courbes ou importés comme une liste de points dans les fichiers CSV. Cette option est utile pour les applications de soudage par points ou de forage par exemple. La vidéo suivante montre un exemple pour configurer une application de soudage par points: Regarder vidéo.

Sélectionner UtilitairesSuivi de points pour ouvrir les paramètres de suivi de points. Ces paramètres sont les mêmes que les Projets d’usinage robot, la seule différence est que l’entrée du parcours est préréglée sur Sélectionner points.

Sélectionner Sélectionner points pour sélectionner les points sur l’écran.

Robot Machining - Image 26

Sélectionner les points avec un clic gauche de la souris. Sélectionner le même point deux fois va changer la direction de l’approche. De plus, un clic droit sur un point permet de sélectionner les points qui suivent en sélectionnant Sélectionner suivant.

Robot Machining - Image 27

Faire un clic droit sur l’écran et sélectionner Terminé ou appuyer sur la touche Echap pour revenir au menu des paramètres. Le parcours vert affiche le mouvement du robot par rapport à l’objet.

Certaines options supplémentaires sont disponibles en haut à droite des réglages, telles que la vitesse de l’outil et la distance d’approche. Les paramètres par défaut sont affichés dans l’image suivante :

Robot Machining - Image 28

Importer des Points

Une liste de points peut être importée à partir d’un fichier texte ou d’un fichier CSV en sélectionnant Utilitaires Importer Points. Un nouvel élément apparaîtra dans la station montrant les points comme un objet.

Robot Machining - Image 29

Le fichier peut être un fichier texte avec les coordonnées 3D de chaque point de la courbe. En option, l’orientation de l’axe Z de l’outil peut être définie comme un vecteur i,j,k.

En option, les courbes existantes d’un objet peuvent être converties en points avec un clic droit sur une courbe, puis en sélectionnant Extract curve points.

Robot Machining - Image 30

Projet d’impression 3D par Robot

L’impression 3D ou la fabrication additive est le processus de fabrication d’objets solides tridimensionnels à partir d’un fichier numérique. Les bras robotisés industriels peuvent être utilisés comme imprimante 3D 3 axes ou comme imprimante 3D 5 axes avec RoboDK. La vidéo suivante montre comment configurer l’impression 3D avec RoboDK hors ligne : regarder la vidéo.

L’impression 3D avec des robots est possible de l’une des façons suivantes :

Convertir directement les programmes G-code (fichier NC) en programmes de robots avec RoboDK, tel que montré dans la section de projet d’usinage robot. Le débit du matériau (directive extrudeuse E) est correctement pris en compte pour chaque mouvement et il peut être intégré dans le programme généré comme un événement de programme. G-code est un type de fichier NC supporté par RoboDK et c’est aussi un format supporté par de nombreuses imprimantes 3D. La plupart des logiciels de découpage peuvent générer du G-code à partir d’un fichier STL.

Sélectionner UtilitairesProjet d’impression 3D pour ouvrir les paramètres d’impression 3D. Ces réglages sont les mêmes qu’un projet d’usinage robot, la seule différence est que l’entrée Parcours est préréglée avec impression 3D. Sélectionner Sélectionner objet pour sélectionner l’objet sur l’écran principal et obtenir automatiquement le parcours outils. Sélectionner les options d’impression 3D pour ouvrir Slic3r

Robot Machining - Image 31

Robot Machining - Image 32

Par défaut, RoboDK transforme la directive E comme un appel de programme vers un programme appelé Extruder et passe la valeur E comme un paramètre. Sélectionner Evénements du Programme pour modifier ce comportement.

Robot Machining - Image 33

La valeur de l’extrudeuse (E) représente la quantité de matériau à extruder avant chaque mouvement. Cette valeur peut être utilisée pour alimenter l’extrudeuse à partir du robot en tenant compte de la vitesse du robot et de la distance entre les points.

Il est aussi possible de calculer l’alimentation de l’extrudeuse à l’aide d’un post-processeur et de générer le code approprié en conséquence. La section suivante donne un exemple.

Post Processor pour l’impression 3D par robot

Cette section montre comment modifier un post-processeur de robot pour calculer la vitesse de l’extrudeur avant d’exécuter une instruction de mouvement pour l’impression 3D. Ces opérations peuvent être faites sur le contrôleur de robot avec l’appel de programme Extruder (commande par défaut pour piloter l’extrudeur).

En personnalisant un post-processeur de robot, il est possible de faciliter l’intégration d’un extrudeur pour l’impression 3D avant d’envoyer le programme au robot. Pour accomplir cette tâche, quelques calculs et du code personnalisé doivent être prévu lorsque le programme est généré dans le post processeur du robot.

La première étape consiste à intercepter les appels d’extrudeur et à lire les nouvelles valeurs d’extrudeur (valeurs E) dans la section Runcode du post-processeur. La section suivante traite tous les appels de programme générés pour un programme :

defRunCode(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.PRINT_E_NEW = float(code[9:-1])

            # Skip the program call generation

            return

        else:

            self.addline(code + "()")

else:

# Output program code

        self.addline(code)

La valeur Extruder (longueur/E) est enregistrée comme variable PRINT_E_NEW dans le post processeur du robot.

Un appel de fonction nommé new_move doit être déclenché à chaque nouvelle instruction de mouvement linéaire. Cet appel est ajouté au début de la commande MoveL :

defMoveL(self, pose, joints, conf_RLF=None):

    """Add a linear movement"""

# Handle 3D printing Extruder integration

self.new_move(pose)

   ...

Les variables suivantes doivent être ajoutées dans l’en-tête du post-processeur pour calculer les incréments d’extrudeur :

# 3D Printing Extruder Setup Parameters:

PRINT_E_AO =5# Analog Output ID to command the extruder flow

PRINT_SPEED_2_SIGNAL =0.10# Ratio to convert the speed/flow to an analog output signal

PRINT_FLOW_MAX_SIGNAL =24# Maximum signal to provide to the Extruder

PRINT_ACCEL_MMSS =-1# Acceleration, -1 assumes constant speed if we use rounding/blending

# Internal 3D Printing Parameters

PRINT_POSE_LAST =None# Last pose printed

PRINT_E_LAST =0# Last Extruder length

PRINT_E_NEW =None# New Extruder Length

PRINT_LAST_SIGNAL =None# Last extruder signal

Enfin, une nouvelle procédure doit être définie pour générer les commandes d’alimentation d’extrudeur appropriées en fonction de la distance entre les mouvements, la vitesse du robot et l’accélération du robot. Cela suppose que l’alimentation de l’extrudeur est entraînée par une sortie analogique spécifique ou un appel de programme personnalisé.

Le code suivant doit être ajouté avant la définition du programme def MoveL.

Important : L’utilisation d’une valeur d’arrondissement lors de la programmation du robot dans RoboDK aidera à maintenir une vitesse constante et de minimiser le comportement de l’accélération. Dans ce cas, le temps peut être calculé comme distance/vitesse.

def calculate_time(self, distance, Vmax, Amax=-1):

    """Calculate the time to move a distance with Amax acceleration and Vmax speed"""

    if Amax <0:

        # Assume constant speed (appropriate smoothing/rounding parameter must be set)

        Ttot = distance/Vmax

    else:

        # Assume we accelerate and decelerate

        tacc = Vmax/Amax;

        Xacc = 0.5*Amax*tacc*tacc;

        if distance <=2*Xacc:

            # Vmax is not reached

            tacc = sqrt(distance/Amax)

            Ttot = tacc*2

        else:

            # Vmax is reached

Xvmax = distance -2*Xacc

            Tvmax = Xvmax/Vmax

Ttot = 2*tacc + Tvmax

    return Ttot

def new_move(self, new_pose):                       

    """Implement the action on the extruder for 3D printing, if applicable"""

    if self.PRINT_E_NEW is Noneor new_pose isNone:

        return

    # Skip the first move and remember the pose

    if self.PRINT_POSE_LAST is None:

        self.PRINT_POSE_LAST = new_pose

        return         

    # Calculate the increase of material for the next movement

    add_material = self.PRINT_E_NEW - self.PRINT_E_LAST

    self.PRINT_E_LAST = self.PRINT_E_NEW

    # Calculate the robot speed and Extruder signal

    extruder_signal = 0

    if add_material > 0:

        distance_mm = norm(subs3(self.PRINT_POSE_LAST.Pos(), new_pose.Pos()))

        # Calculate movement time in seconds

        time_s = self.calculate_time(distance_mm, self.SPEED_MMS, self.PRINT_ACCEL_MMSS)

        # Avoid division by 0

        if time_s >0:

            # This may look redundant but it allows you to account for accelerations and we can apply small speed adjustments

            speed_mms = distance_mm / time_s

            # Calculate the extruder speed in RPM*Ratio (PRINT_SPEED_2_SIGNAL)

            extruder_signal = speed_mms * self.PRINT_SPEED_2_SIGNAL

    # Make sure the signal is within the accepted values

    extruder_signal = max(0,min(self.PRINT_FLOW_MAX_SIGNAL, extruder_signal))

    # Update the extruder speed when required

    if self.PRINT_LAST_SIGNAL is Noneor abs(extruder_signal - self.PRINT_LAST_SIGNAL) > 1e-6:

        self.PRINT_LAST_SIGNAL = extruder_signal

        # Use the built-in setDO function to set an analog output

        self.setDO(self.PRINT_E_AO,"%.3f" % extruder_signal)

        # Alternatively, provoke a program call and handle the integration with the robot controller

        #self.addline('ExtruderSpeed(%.3f)' % extruder_signal)

    # Remember the last pose

    self.PRINT_POSE_LAST = new_pose