Mecanizado robótico

El mecanizado robótico es el proceso donde una materia prima se corta en una forma y un tamaño finales deseado por un proceso controlado de retiro de material, usando un brazo robot. Maquinar abarca diversos usos de remoción de materiales, tales como fresado, taladrado, chaflanado, y el quitar rebabas, típicamente realizado por máquinas-herramienta automatizadas (CNC). Se pueden utilizar robots industriales como un máquina herramienta (CNC de 3-ejes o de 5 ejes) usando RoboDK.

Para lograr los mismos o mejores resultados que las máquinas CNC, los robots industriales requieren una tecnología de programación de software fuera de línea como RoboDK para convertir programas de máquina a programas de robots.

Las dimensiones de las partes se definan mediante software de diseño asistido por ordenador (CAD) y, luego, se traducen en programas de fabricación (como Código G) por software de manufactura asistida por ordenador (CAM). Los programas de fabricación se pueden convertir en programas de robots usando las herramientas de programación fuera de línea de RoboDK.

Los ejes adicionales, como una mesa giratoria y un riel lineal, pueden sincronizarse con el robot para extender el espacio de trabajo.

Configuración Para Mecanizado

Esta sección muestra cómo preparar una estación de RoboDK simple sin conexión para mecanizado robótico. Una estación RoboDK contiene todos los robots, herramientas, sistemas de referencia, objetos y otros ajustes. Más información sobre la construcción de una estación de RoboDK en la sección empezar.

Se requiere tener un robot con una herramienta y el objeto 3D en un sistema de referencia para configurar un proyecto de mecanizado de robots:

1-Seleccione un robot:

a.Seleccione ArchivoRobot Machining - Imagen 1 Abrir Biblioteca en Línea

b.Use los filtros para encontrar su robot por marca, carga útil,... 
Por ejemplo, seleccione el ABB IRB 2600-20/1.65 (carga útil de 20 kilogramos, alcance de 1, 65 m).

c.Seleccione Descargar y el robot debería aparecer automáticamente en la pantalla principal.

2-Seleccione una herramienta:

a.De la misma biblioteca en línea, filtrar por TipoHerramienta

b.Descargue una herramienta giratoria

c.La herramienta debe estar conectada automáticamente al robot   
Una vez cargada la herramienta la Biblioteca en línea puede cerrarse

3-Agregar un sistema de referencia:

a.Seleccione ProgramaRobot Machining - Imagen 2Añadir Sistema de Referencia

b.Seleccione el nuevo sistema de referencia en el árbol y seleccione F2 para cambiarle el nombre a Referencia de Fresado

4-Agregar un objeto:

a.Seleccione ArchivoRobot Machining - Imagen 3 Abrir

b.Seleccione un objeto denominado Object wooden bowl.sld

c.Arrastrar y soltar el objeto a la referencia de fresado (dentro del árbol de la estación)

Robot Machining - Imagen 4

Proyecto de Mecanizado Robótico

Siga estos pasos para configurar un nuevo proyecto de mecanizado de robots dado un archivo NC generado usando CAM software (como código G o APT):

1.Seleccione UtilidadesRobot Machining - Imagen 5 Proyecto de Mecanizado de robots (Ctrl + M).   
Aparecerá una nueva ventana, como se muestra en la imagen.

2.Seleccione Seleccionar Archivo NC en la sección de Ruta de entrada

3.Proporcione un archivo NC, como una desde la biblioteca predeterminada de RoboDK:        
C:/RoboDK/Library/Milling Bowl 3x.nc

Robot Machining - Imagen 6

Seleccione el robot, el sistema de referencia y la herramienta en la sección superior izquierda del menú, como se muestra en la siguiente imagen:

Robot Machining - Imagen 7

La trayectoria de herramienta de mecanizado se muestra en verde y las normales de la ruta se muestran como vectores blancos. Desmarque la trayectoria de herramienta visible para ocultar la trayectoria de la herramienta.

Entrada de ruta

La entrada de trayectoria nos permite seleccionar diferentes maneras de proporcionar una trayectoria de herramienta. La trayectoria de herramienta se puede definir mediante:

Seleccione el archivo NC: Como un archivo NC (obtenido de Cam software), como se describe en esta sección.

Seleccionar curva: Como una o más curvas, como se describe en la sección de Proyecto de Seguimiento de Curvas.
Es posible
importar curvas como una lista de coordenadas en RoboDK.

Seleccionar puntos: Uno o más puntos, como se describe en la sección Proyecto de seguimiento de puntos.    
Es posible
importar puntos como una lista de coordenadas en RoboDK.

Impresión de Objeto 3D: Como un objeto para la impresión 3D. Se utiliza un rebanador para convertir la geometría en una trayectoria de herramienta

Robot Machining - Imagen 8Robot Machining - Imagen 9

Acercamiento/retracción

Los movimientos de aproximación/retracción se pueden proporcionar en la parte superior derecha del menú.

Robot Machining - Imagen 10

Seleccione Añadir para añadir un movimiento adicional. La ruta verde se actualizará en consecuencia. Es posible seleccionar entre un movimiento normal (a lo largo de la normal blanca), tangente (a lo largo del camino Verde) o a lo largo de ejes específicos con respecto a la pieza.

Robot Machining - Imagen 11

Haga doble clic en el valor para modificar la longitud o seleccione Remover para quitar un movimiento específico.

Compensación de ruta de herramienta

La compensación de ruta de herramienta permite cambiar la orientación preferida de la herramienta a lo largo de la trayectoria. Esta opción se utiliza principalmente para girar la herramienta alrededor del eje Z del TCP.

Debido a que se usa un robot de 6 ejes para ejecutar un programa de fabricación con CNC de 3 ó 5 ejes, tenemos un grado adicional de libertad para definir. Este grado de libertad es usualmente la rotación alrededor del eje Z del TCP.

Robot Machining - Imagen 12

De forma predeterminada, la compensación de la ruta de herramienta muestra una transformación Rotz(0). Este valor puede ser modificado para establecer la orientación preferida de la herramienta, modificando la orientación alrededor del eje Z del TCP o en combinación con otros ejes. La orientación preferida es la orientación que el robot tratará de mantener mientras sigue la trayectoria de herramienta.

De forma predeterminada, RoboDK utiliza el algoritmo de Cambio Mínimo de orientación de herramienta. Esto significa que la orientación de la herramienta se mantiene lo más constante posible a lo largo de la trayectoria. En general, esta opción es apta para operaciones de fresado ya que minimiza los movimientos de articulaciones de robots. Alternativamente, otros algoritmos/métodos están disponibles, como la orientación de la herramienta siguiendo la trayectoria (útil para aplicaciones de corte), o el robot tomando el objeto si es necesario seguir la trayectoria de herramienta conectada a la máquina robot (por ejemplo, para aplicaciones de dispensación o pulido).

Robot Machining - Imagen 13

Parámetros de optimización

Dada una orientación preferida, el robot puede tener una cierta libertad para dar la vuelta al eje Z de la herramienta. Esto permite al robot realizar el programa evitando singularidades de robots y restricciones de ejes. De forma predeterminada, RoboDK permite que la herramienta gire hasta +/-180 grados alrededor del eje TCP por pasos de 20 grados.

Se recomienda restringir esta rotación en función de la aplicación. Por ejemplo, es posible introducir +/-90 grados para restringir el Permitido Rotación por la mitad.

Si no se alcanzan algunos puntos de la ruta, se recomienda mover el sistema de referencia o ser más permisivo con la rotación de la herramienta Z. El sistema de referencia se puede mover manteniendo pulsada la tecla Alt.

Robot Machining - Imagen 14

Actualizar Programa

Seleccione actualizar para obtener el programa de acuerdo con los ajustes proporcionados. Se muestra una marca de verificación verde si el programa se puede crear con éxito. A continuación, veremos un nuevo programa en la estación.

Robot Machining - Imagen 15

Haga doble clic en el programa Robot Machining - Imagen 16generado o seleccione Simular para iniciar la simulación del mecanizado robótico.

Haga clic derecho en el programa y seleccione Generar programa de robot (F6) para obtener el programa. Más información sobre la generación de programas en la sección Programa.

Robot Machining - Imagen 17

Configuración preferida

RoboDK selecciona automáticamente la configuración de inicio que está más cerca de las articulaciones de inicio preferidas (Articulaciones preferidas para el punto de partida). A partir de ese punto, el robot seguirá movimientos lineales, por lo que la configuración del robot no cambiará.

Un menú desplegable mostrará todas las posibles soluciones para iniciar el programa. Si es necesario, seleccione una configuración preferida y seleccione Actualizar para recalcular el programa.

Robot Machining - Imagen 18


Robot de corte

Es posible mantener la orientación de la herramienta constante a lo largo de la trayectoria. Este comportamiento es útil para aplicaciones de corte o soldadura, por ejemplo.

Seleccione Seguimiento de trayectoria de orientación de la herramientas en el desplegable Seleccionar algoritmo para recalcular la trayectoria de la herramienta preferida. Los otros ajustes son los mismos que tener un Proyecto de mecanizado con una orientación constante de la herramienta.

Robot Machining - Imagen 19

Agarre Robótico de Objeto

Es posible programar un robot cuando sostiene el objeto/trayectoria con la herramienta con el robot mientras se realiza la operación de manufactura. Esto es útil para los usos de dispensado de pegamento o de pulido por ejemplo.

Seleccione Agarre Robótico de Objeto en el desplegable Seleccionar algoritmo para colocar correctamente la trayectoria de herramienta en la referencia TCP. Los otros ajustes son los mismos que en el Proyecto de mecanizado con una orientación constante de la herramienta.

Robot Machining - Imagen 20

Proyecto de Seguimiento de Curva

Es posible hacer que un robot siga curvas en el espacio 3D con RoboDK. Las curvas en RoboDK se pueden seleccionar desde aristas de objeto o Importados como una lista de puntos en archivos CSV. Esta opción es útil para aplicaciones de soldadura por robot, por ejemplo.

Seleccione UtilidadesProyecto de Seguimiento de Curva para abrir los ajustes de seguimiento de curvas. Estos ajustes son los mismos que para Proyecto de Mecanizado Robótico, la única diferencia es que la Entrada de Trayectoria está preajustada para Seleccionar curva.

Seleccione Seleccione Curva para seleccionar la(s) curva(s) en la pantalla.

Robot Machining - Imagen 21

Seleccione las curvas con el clic izquierdo del ratón. Al seleccionar la misma curva dos veces cambiará la dirección del movimiento. Además, hacer clic derecho en una curva seleccionada previamente permite cambiar el sentido o anular la selección de una curva seleccionada previamente.

Robot Machining - Imagen 22

Haga clic derecho en la pantalla y seleccione Hecho o pulse la tecla Esc para volver al menú de ajustes. El camino verde mostrará el movimiento del robot con respecto al objeto.

Algunas opciones adicionales están disponibles en la parte superior derecha de los ajustes, como la velocidad de la herramienta y si se deben aplicar los movimientos de aproximación/retracción para cada curva. La configuración predeterminada se muestra en la siguiente imagen:

Robot Machining - Imagen 23

Importar curvas

Las curvas se pueden importar en RoboDK desde un archivo CSV o un archivo de texto seleccionando UtilidadesImportar curvas. Aparecerá un nuevo elemento en la estación que muestra la curva como un objeto.

Robot Machining - Imagen 24

El archivo puede ser un archivo de texto con las coordenadas 3D de cada punto de la curva. Opcionalmente, la orientación del eje Z de la herramienta se puede proporcionar como un vector I,J,K.

Opcionalmente, las curvas existentes de un objeto se pueden exportar como un archivo CSV (haciendo clic con el botón derecho en una curva, luego, seleccionando exportar curva), modificado y reimportado de nuevo en RoboDK.

Robot Machining - Imagen 25

Proyecto de Seguimiento de Punto

Es posible hacer que un robot siga los puntos en el espacio 3D con RoboDK. Los puntos en RoboDK pueden ser extraídos de objetos, curvas o Importados como una lista de puntos en archivos CSV. Esta opción es útil para la soldadura por puntos o aplicaciones de perforación, por ejemplo. El siguiente vídeo muestra un ejemplo para configurar una aplicación de soldadura por puntos: Ver vídeo.

Seleccione UtilidadesProyecto de Seguimiento de Punto para abrir la configuración de seguimiento de punto. Estos ajustes son los mismos que para Proyecto de Maquinado Robótico, la única diferencia es que la Entrada de ruta está preajustada para Seleccionar Puntos.

Seleccione Seleccionar Puntos para seleccionar el (los) punto (s) en la pantalla.

Robot Machining - Imagen 26

Seleccione los puntos con un clic izquierdo del ratón. Seleccionando el mismo punto dos veces intercambiará la dirección de aproximación. También, haciendo clic con el botón derecho permite seleccionar los puntos que siguen seleccionando Seleccionar siguiente.

Robot Machining - Imagen 27

Haga clic derecho en la pantalla y seleccione Hecho o pulse la tecla Esc para volver al menú de ajustes. El trazado verde mostrará el movimiento del robot con respecto al objeto.

Algunas opciones adicionales están disponibles en la parte superior derecha de la configuración, como la velocidad de la herramienta y la distancia de aproximación. La configuración predeterminada se muestra en la siguiente imagen:

Robot Machining - Imagen 28

Importar puntos

Una lista de puntos puede ser importado de un archivo de texto o un archivo CSV seleccionando UtilidadesImportar Puntos. Un nuevo elemento aparecerá en la estación que muestra los puntos como un objeto.

Robot Machining - Imagen 29

El archivo puede ser un archivo de texto con las coordenadas 3D de cada punto de la curva. Opcionalmente, la orientación del eje Z de la herramienta se puede proporcionar como un vector I,J,K.

Opcionalmente, las curvas existentes de un objeto se pueden convertir en puntos haciendo clic derecho en una curva, luego, seleccionando Extraer puntos de curva.

Robot Machining - Imagen 30

Impresión 3D Robótizada

La impresión 3D o fabricación aditiva es el proceso de hacer objetos sólidos tridimensionales desde un archivo digital. Los brazos robots industriales pueden ser utilizados como una impresora 3D de 3 ejes o como una impresora 3D de 5 ejes con RoboDK. El siguiente vídeo muestra una visión general de cómo configurar la impresión 3D con RoboDK fuera de línea: Ver vídeo.

La impresión 3D con los robots es posible en una de las siguientes formas:

Convierta directamente programas de código G (archivo NC) a programas de robot con RoboDK, como se muestra con el Proyecto de mecanizado de robots. La tasa de flujo de material (directiva E de extrusora) está correctamente tenida en cuenta para cada movimiento y se puede integrar en el programa generado como un Evento del programa. El código G es un tipo de archivo del NC soportado por RoboDK y es también un formato soportado por muchas impresoras 3D. La mayoría de los softwares rebanadores pueden generar el código G dado un archivo de STL.

Seleccione UtilidadesProyecto de Impresión 3D para abrir la configuración de impresión 3D. Estos ajustes son los mismos que para el Proyecto de Mecanizado Robótico, la única diferencia es que el Entrada de ruta está preajustada para imprimir objeto 3D. Seleccione Seleccionar Objeto para seleccionar el objeto en la pantalla principal y obtenga automáticamente la trayectoria de herramienta. Seleccione opciones de impresión 3D para abrir Slic3r.

Robot Machining - Imagen 31

Robot Machining - Imagen 32

De forma predeterminada, RoboDK traduce la directiva E como una llamada de programa a un programa llamado Extrusora y pasando el valor E como parámetro. Seleccione Eventos del programa para cambiar este comportamiento.

Robot Machining - Imagen 33

El valor de la Extrusora (E) presenta la cantidad de material que necesita ser sacado antes de cada movimiento. Este valor se puede utilizar para impulsar la alimentación de la extrusora desde el robot teniendo en cuenta la velocidad del robot y la distancia entre los puntos.

Alternativamente, es posible calcular la alimentación de la extrusora utilizando un post-procesador y generar el código apropiado en consecuencia. La siguiente sección proporciona un ejemplo.

Post-Procesador para impresión 3D robótica

Esta sección muestra cómo modificar un  post-procesador robótico para calcular la alimentación de la extrusora antes ejecutar cada movimiento. Alternativamente, estos cálculos se pueden hacer en el controlador del robot.

El primer paso es interceptar las llamadas de la Extrusora y leer los nuevos valores de Extrusora (valores E) desde la sección RunCode en el postprocesador:

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)

# extraemos el número como una cadena

            # y convertirlo a un número

            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)

El valor de la Extrusora (longitud) se guarda como ela variable PRINT_E_NEW. Entonces, necesitamos definir un nuevo procedimiento que genere comandos de alimentación de extrusoras según la Distancia entre movimientos, la velocidad del robot y la aceleración del robot. Este asume que la alimentación de la extrusora es conducida por una salida analógica específica desde el controlador del robot (salida analógica número 5 en este ejemplo).

def new_move(self, pose2):

    '''Output the Extruder signal to have a constant flow

Dada la cantidad de material que necesita ser extruido,

    la distancia entre los 2 puntos y la velocidad del robot ' ' ' '

if self.PRINT_POSE_LAST is None:

        self.PRINT_POSE_LAST = pose2

        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.PRINT_E_NEW - self.PRINT_E_LAST

    self.PRINT_E_LAST = self.PRINT_E_NEW

    if add_material >0:

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

        # calculate movement time in seconds

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

        # add material

Señal = Min(Automático.PRINT_FLOW_MAX_SIGNAL , Automático.PRINT_FLOW_2_SIGNAL * add_material/time_s)

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

    else:

        # DO not add material

        self.setDO(self.PRINT_E_AO,"0")

    # Remember the last position

self.PRINT_POSE_LAST = pose2

Debemos añadir las siguientes variables en la cabecera del postprocesador para que el código anterior funcione:

# Clase de objeto que maneja las instrucciones/Syntax del robot

Clase RobotPost(Objeto):

"""Robot post object"""

...

# 3D Printing Extruder Setup Parameters:

PRINT_E_AO =5# Analog ID de salida para ordenar el flujo de extrusora

PRINT_FLOW_2_SIGNAL =0,05# Ratio para convertir el flujo a una señal analógica

PRINT_FLOW_MAX_SIGNAL =24# Señal máxima para proporcionar a la extrusora

PRINT_ACCEL_MMSS =1E9# Acceleration (asuma la velocidad constante si utilizamos el redondeo/la mezcla)   

# Internal 3D Printing Parameters

PRINT_POSE_LAST =Ninguno# Última pose impresa

PRINT_E_LAST =0# Última longitud del estirador

PRINT_E_NEW =0# Nueva longitud del estirador

...

Finalmente, también necesitamos disparar el comando new_move con cada nueva instrucción de movimiento. Podemos añadir esta llamada en el principio del comando MoveL:

def MoveL(self, pose, joints, conf_RLF=None):

    """Add a linear movement"""

    self.new_move(pose) # used for 3D printing