Robot Calibration (Laser Tracker)

Introducción

Los robots industriales son altamente repetitivos pero no precisos, por lo tanto, la precisión de un robot industrial se puede mejorar a través de la calibración. La precisión nominal de un robot depende de la marca y el modelo del robot, así como qué tanto puede ser mejorado. Después de la calibración del robot, la exactitud del robot puede ser mejorada por un factor que varía de 2 a 10 o incluso más.

Opcionalmente, una prueba ballbar (pruebacircular) o la prueba ISO9283 de precisión del recorrido pueden ser realizadas para validar rápidamente la precisión de un robot.

Robot Calibration LaserTracker - Imagen 1

Se requiere un sistema de medición para calibrar un robot. RoboDK puede ser utilizado para calibrar los robots, así como para generar programas precisos de robost (esto incluye el filtrado de los programas y el uso del motor de programación fuera de línea de RoboDK). RoboDK también se puede utilizar para probar la precisión del robot antes y después de la calibración a través de pruebas Ballbar o fresado del robot.

La calibración del robot puede mejorar notablemente la precisión de los robots programados fuera de línea, también conocido como programación fuera de línea (OLP). Un robot calibrado tiene una mayor precisión de posicionamiento absoluto y relativo que uno no calibrado.

Se recomienda ver el siguiente vídeo para ver una calibración completa de un robot industrial utilizando RoboDK: https://www.robodk.com/robot-calibration#tab-ct

Requerimientos

Los siguientes elementos son necesarios para instalar RoboDK y realizar de manera adecuada la calibración del robot:

1.Uno o más brazos robóticos industriales

2.Un sistema de medición: cualquier seguidor láser tales como Leica, API o Faro y o CMM óptico tal como la cámara estéreo C-Track de Creaform puede funcionar

3.El software RoboDK debe ser instalado y se requiere una licencia apropiada para las pruebas de calibración del robot. Para las licencias de red, se requiere una conexión a internet para comprobar la licencia. Para instalar o actualizar RoboDK para la calibración del robot:

a.Descargue RoboDK desde la sección de descargas
https://robodk.com/download

b.Configure el controlador para el sistema de medición (no requerido para Creaform CMM Óptico).
Descomprima y copie la carpeta correspondiente:        

API de seguimiento láser:
https://robodk.com/downloads/private/API.zip (trackers OTII y Radian)

c.Láser tracker de Faro: https://robodk.com/downloads/private/Faro.zip (todos los trackers Faro)       
Láser tracker de Leica:
https://robodk.com/downloads/private/Leica.zip (todos los trackers Leica)      
a la carpeta: C:/RoboDK/api/

Configuración Fuera de Línea

Es recomendado crear un entorno virtual de la configuración del robot en RoboDK (configuración fuera de línea) antes de empezar a tomar medidas. En esta sección se explica cómo preparar la estación de RoboDK fuera de línea. Esto se puede hacer antes de tener el robot y el tracker, usando sólo una computadora con RoboDK instalado.

Ejemplos de configuración de calibración con RoboDK pueden ser descargados desde la siguiente carpeta:      
https://www.robodk.com/downloads/calibration/

Omitir esta sección si ya tiene una celda fuera de línea. Los sistemas de coordenadas y sistemas de herramientas pueden ser estimados aproximadamente. Una estación de ejemplo es mostrada en la siguiente imagen.

Robot Calibration LaserTracker - Imagen 2

Estación RoboDK

Una estación RoboDK es donde se almacena la información del ambiente virtual y de calibración de la estación. La estación es guardada como un archivo RDK. Siga los siguientes pasos para crear una estación de robot para la calibración del robot desde el principio (vista previa del vídeo: https://youtu.be/Nkb9uDamFb4):

1.Seleccione el robot:

a.Seleccione ArchivoAbrir Biblioteca en Línea. La biblioteca en línea se mostrará en RoboDK.

b.Usaelos filtros para encontrar su robot por marca, carga útil, ...

c.Seleccione Descargar y el robot debe aparecer automáticamente en la estación.

d.También puede descargar los archivos de robots (extensión de archivo .robot) http://www.robodk.com/library y abrirlos con RoboDK.

Robot Calibration LaserTracker - Imagen 3

2.Modelar la estación virtual

a.Añadir sistemas de coordenadas mediante la selección de ProgramaAñadir Sistema de Coordenadas.

i.Un sistema de “Referencia de Mediciones” debe ser añadido con respecto al sistema base del robot.

ii.Una “Referencia de Rastreo” debe ser añadida con respecto a la “Referencia de Mediciones” que acabamos de añadir.

iii.Una “Referencia de Herramienta” adicional puede ser añadida con respecto sistema de “Referencia de Mediciones” para visualizar la posición de la herramienta visto por el tracker.

Consejo 1: Arrastrar y soltar elementos en el árbol para reconstruir la dependencia que existe en el mundo real. Por ejemplo, la referencia de seguimiento debe ser colocada con respecto a la “Referencia de Mediciones”.

Consejo 2: Se puede mover alrededor de los sistemas de coordenadas o sistemas de las herramientas manteniendo pulsada la tecla ALT y MAYÚSC + tecla ALT, respectivamente. Como alternativa, puede hacer doble clic en el sistema de coordenadas e ingresar las coordenadas correctas.

Consejo 3: Cambiar el nombre de un objeto utilizando la tecla F2 en el árbol de elementos.

b.Agregue el objeto de herramienta (STL, IGES y archivos STEP son formatos compatibles) y arrastre y suelte al robot (en el interior del árbol de elementos), esto va a convertir el objeto en una herramienta. Más información disponible aquí.

Robot Calibration LaserTracker - Imagen 4Robot Calibration LaserTracker - Imagen 5

Opcional: Seleccione ProgramaAñadir Herramienta (TCP) para añadir cualquier TCP que queramos visualizar en la estación (para comprobar si hay colisiones u otros). Para establecer un valor aproximado del TCP:

i.Haga doble clic en la nueva herramienta.

ii.Establecer un valor aproximado de TCP. Puede copiar/pegar los 6 valores a la vez usando los dos botones a la derecha.

iii.Es recomendado cambiar el nombre de los TCP utilizados para la calibración con el nombre de “ID CalibTool”, donde ID es el número de posición de calibración.

Robot Calibration LaserTracker - Imagen 6

c.Añadir otros archivos CAD en 3D (STL, IGES, STEP, SLD, ...) para modelar la estación virtual usando el menú ArchivoAbrir… Alternativamente, arrastre y suelte archivos en la ventana principal de RoboDK.

Consejo 1: Importe los archivos 3D del espacio de trabajo de medición y nombre el Espacio de Trabajo de manera que las mediciones de robots sean generadas en el interior del espacio de trabajo del tracker. Por otra parte, establezca el espacio de trabajo invisible si no quiere limitar las mediciones en el interior del espacio de trabajo del tracker. Más información está disponible en la siguiente sección.

Consejo 2: Es posible seleccionar CTRL+ALT+MAYÚSC+P para bloquear la exportación de archivos confidenciales en 3D que se han importado en RoboDK.

3.Añadir el módulo de calibración en la estación:

a.Seleccionar el menú UtilidadesCalibrar Robot.

b.Seleccionar Cámara Estéreo.

Robot Calibration LaserTracker - Imagen 7

A continuación, aparecerá la siguiente ventana.

Robot Calibration LaserTracker - Imagen 8

Esta ventana se puede cerrar por ahora. Podemos abrir en cualquier momento haciendo doble click en el elemento de estación de calibración del robot..

Robot Calibration LaserTracker - Imagen 9

4.Guardar la estación.

a.Seleccione ArchivoGuardar estación.

b.Proporcionar una carpeta y un nombre de archivo.

c.Seleccione Guardar. Un nuevo archivo RDK será generado (archivo de la estación RoboDK).

Podemos recuperar las modificaciones de la estación en cualquier momento abriendo el archivo RDK (doble clic en el archivo en Windows).

Resumiendo, es importante que vuelva a comprobar los siguientes puntos:

1.El frame de referencia “Referencia Mediciones” está unido directamente al frame de referencia base del robot.

Por ahora, podemos utilizar una estimación de este frame de referencia (valor aproximado).

2.El Tracker de Referencia está unido directamente a las Mediciones de Tracker. La Referencia del Tracker debe ser una posición estimada del dispositivo de medición del tracker con respecto a la Referencia de mediciones.

3.El proyecto de “Calibración del Robot” está presente en la estación y todas las medidas que planea tomar están libres de colisión y visibles por el tracker (haga doble clic en la configuración de calibración y seleccione mostrar para cada grupo de los cuatro grupo de mediciones).

4.Si queremos comprobar automáticamente si hay colisiones debemos usar el nombre de la etiqueta “colisión” en cada objeto que se quiere utilizar para comprobar las colisiones. Es recomendado utilizar una herramienta alrededor de 25% más grande que la herramienta de calibrado para evitar colisiones de manera segura.


5.

Generar objetivos de calibración

Hay cuatro conjuntos de mediciones que se requieren para lograr con éxito la calibración del robot:

1.Configuración de la Base: Se requieren seis mediciones (o más) de movimiento en los ejes 1 y 2 para colocar la referencia de calibración con respecto al robot. Seleccione Mostrar en la ventana de configuración de calibración y el robot se moverá a lo largo de la secuencia.

2.Herramienta de configuración: Se requieren siete o más mediciones para calibrar la herramienta de brida de montaje y los objetivos de la herramienta (eje 5 y 6 en movimiento). Seleccione Mostrar y el robot se moverá a lo largo de la secuencia.

3.Mediciones de calibración: Se requieren 60 mediciones o más para calibrar el robot. Estas mediciones pueden ser colocadas aleatoriamente en el espacio de trabajo del robot y libre de colisión con los objetos circundantes.

4.Mediciones de validación (opcional): se pueden usar tantas mediciones como se desee para validar la precisión del robot. Estas mediciones se utilizan únicamente para validar la precisión del robot y no para calibrar el robot.

Los dos primeros conjuntos de mediciones se generan automáticamente por RoboDK. Seleccione Mostrar y el robot seguirá la secuencia (como se muestra en las siguientes imágenes). Si la secuencia tiene que ser cambiada, seleccione Medir y exportar las medidas de calibración como un archivo CSV seleccionando Exportar Datos. Este archivo puede ser editado usando una hoja de Excel y volver a importar haciendo clic en Importar datos.

Los últimos dos conjuntos de mediciones (de calibración y validación) pueden generarse usando la secuencia de comandos macro llamada “Robot Calibration LaserTracker - Imagen 10Crear mediciones. Esta secuencia de comandos de macro se añade automáticamente a la estación cuando comenzamos el proyecto de calibración del robot. Haga doble clic en el macro para ejecutarlo. Esta macro es un programa Python que guía al usuario a definir los siguientes ajustes:

Número de mediciones: El número de mediciones a generar. Por defecto, se utilizan 80 mediciones porque se requiere un mínimo de 60 mediciones para la calibración del robot.

Posición de referencia: La posición de referencia debe ser una posición del robot donde la herramienta se enfrenta el tracker con objetivos visibles.

Límites de articulación: Se deberán precisar los límites inferior y superior de cada articulación.

Límites cartesianos: Podemos proporcionar límites cartesianos (valores X,Y,Z) con respecto al sistema de coordenadas del robot.

La secuencia de comandos genera automáticamente mediciones en las que la herramienta se enfrenta al tracker así como respecto a las restricciones articulares y cartesianas. Se permite un giro de +/- 180 grados alrededor de la herramienta alrededor de la dirección que se enfrenta el tracker en la posición de referencia. Además, la secuencia de movimientos de la articulación es libre de colisión y dentro del espacio de trabajo de medición (si se establece como visible el espacio de trabajo). La siguiente imagen muestra el resumen que se presenta al usuario antes de que comience la secuencia automática. Puede tomar hasta 5 minutos para que la secuencia finalice.

Robot Calibration LaserTracker - Imagen 11

Un nuevo mensaje aparecerá una vez que el algoritmo termine. Seleccione Calibración para usar las 60 mediciones de calibración del robot. Podemos volver a ejecutar la misma secuencia de comandos para generar otra serie de medidas para la validación. Este paso es opcional, pero 60 mediciones ore más son recomendados para fines de validación.

Si se desea, se puede modificar el script haciendo clic derecho en el script Crear mediciones y seleccionar Editar Script, luego, modifique los parámetros adicionales del algoritmo. El script guarda automáticamente la entrada del usuario como parámetros de la estación. Podemos ver, editar o borrar estos ajustes haciendo clic derecho en la estación y seleccionando los parámetros de la estación, como se muestra en la siguiente imagen.

Robot Calibration LaserTracker - Imagen 12

Robot Calibration LaserTracker - Imagen 13

Por último, también es posible importar las configuraciones que han sido seleccionadas de forma manual mediante la selección de los datos de importación (dentro del menú Medición). Podemos importar un archivo TXT o CSV como una matriz NX6, donde N es el número de configuraciones.

Robot Calibration LaserTracker - Imagen 14

Configuración de calibración del Robot

Se requiere conectar el seguidor láser y el robot a la computadora para automatizar el procedimiento de tomar las mediciones. También es recomendado medir un sistema de coordenadas a través de tres puntos en el caso que movamos el láser tracker (este paso es obligatorio si queremos recuperar la posición inicial para el eje 1, ver anexo II para más información).

Se requiere adjuntar al menos una posición SMR (tres o más son recomendadas), como se muestran en las siguientes imágenes. También es conveniente utilizar 3 nidos como un sistema de coordenadas si el seguidor láser debe ser movido.

Robot Calibration LaserTracker - Imagen 15Robot Calibration LaserTracker - Imagen 16

Las siguientes subsecciones deben llevarse a cabo de forma secuencial para estar listo para comenzar a tomar medidas.

Conectar con el tracker

La IP del láser tracker es necesaria para configurar correctamente la comunicación con RoboDK. Siga estos pasos para comprobar la comunicación con el sistema de seguimiento láser:

a.Seleccione el menú «ConectarConectar láser tracker». Una nueva ventana debe abrir.

b.Establezca la IP del láser tracker.

c.Haga clic en el botón “Conectar”.

Si la conexión se realiza correctamente debería ver un mensaje verde que muestra “Listo”. La ventana se puede cerrar y la conexión permanecerá activa.

Robot Calibration LaserTracker - Imagen 17

Conectar con el robot

La IP del robot (o el número de puerto COM para conexiones RS232) es necesaria para configurar correctamente la comunicación con RoboDK. Siga estos pasos para comprobar la comunicación con el robot:

1.Seleccione ConectarConectar robot. Una ventana nueva aparecerá.

2.Establecezca la IP y el puerto del robot (o el puerto COM si la conexión es a través de RS232).

3.Haga clic en el botón Conectar.

4.Consulte el apéndice en caso de problemas.

Si la conexión es exitosa se debería ver un mensaje verde mostrando Listo. La posición del robot virtual debe coincidir exactamente con la posición del robot real si seleccionamos Obtener articulaciones actuales. Alternativamente, seleccionar Mover a articulaciones actuales para mover el robot a la posición actual establecida en el simulador. La ventana se puede cerrar y la conexión permanecerá activa.

Robot Calibration LaserTracker - Imagen 18

Midiendo los objetivos de referencia

Es recomendado medir un sistema de coordenadas de calibración, que se adjunta a la base del robot, esto será útil si queremos mover el tracker durante la calibración o comparar dos calibraciones del robot. El sistema de coordenadas de calibración debe ser definido por 3 puntos tangibles.

Podemos omitir este paso si no vamos a mover el tracker con respecto al robot o no necesitamos recuperar la posición inicial para el eje 1. En este caso, se utilizará la referencia del láser tracker.

Debemos seguir estos pasos cada vez que el láser tracker sea movido:

1.Seleccione ConectarConectar láser tracker.

2.Establecer la IP del láser tracker y seleccionar Conectar (si el láser tracker no está conectado).

3.Establezca la referencia de calibración y la referencia del tracker como se muestra en la imagen. La referencia de calibración también se conoce como “Referencia de mediciones”.

4.Seleccionar Establecer objetivos Base.

Robot Calibration LaserTracker - Imagen 19

RoboDK guiará al usuario con los menúes mostrados en la siguiente imagen. La posición del láser tracker se actualiza automáticamente con respecto a la referencia de calibración cuando se ha completado el procedimiento.

Robot Calibration LaserTracker - Imagen 20

Robot Calibration LaserTracker - Imagen 21Robot Calibration LaserTracker - Imagen 22Robot Calibration LaserTracker - Imagen 23


Calibración del robot

La calibración del robot se divide en 4 etapas. Cada paso requiere tomar un conjunto de mediciones. Estos cuatro pasos se deben seguir en orden:

1.Mediciones de referencia de base (3 minutos).

2.Mediciones de referencia de la herramienta (3 minutos)

3.Calibración de mediciones (7 minutos, 60 mediciones)

4.Validación de mediciones (7 minutos, 60 mediciones).

El siguiente vídeo muestra cómo realizar esta calibración en 20 minutos: https://youtu.be/Htpx-p7tmYs. Las mediciones de validación (paso 4) no son obligatorias para calibrar el robot, sin embargo, ofrecen un punto de vista objetivo de los resultados de precisión. También es posible ver el impacto de la calibración del robot en un área y validarlo en un área diferente.

Seleccione el botón de Medir para cada uno de los cuatro conjuntos de mediciones. Esto abrirá una nueva ventana que permite tomar nuevas medidas, así como la importación y exportación de mediciones existentes en un archivo de texto (en formato csv o txt).

Medición de la base

Estas mediciones se pueden realizar en cualquier lugar de la brida de montaje de la herramienta si medimos el mismo objetivo para todas las 6 mediciones. Para iniciar las mediciones, seleccione Medir en la sección de Configuración de la Base. La siguiente ventana se abrirá. Entonces, seleccione Iniciar Medición y el robot se moverá secuencialmente a través de las mediciones programadas.

Robot Calibration LaserTracker - Imagen 24

Cierre mediciones se pueden realizar en cualquier lugar de la brida de montaje de la herramienta si medimos el mismo objetivo para todas las 6 mediciones. Para iniciar las mediciones, seleccione Medir en la sección de Configuración de la Base. La siguiente ventana se abrirá. Entonces, seleccione Iniciar Medición y el robot se moverá secuencialmente a través de las mediciones programadas.

Robot Calibration LaserTracker - Imagen 25

El resumen mostrará la posición y la orientación o el sistema de coordenadas del robot con respecto al sistema de coordenadas de calibración (formato [x, y, z, w, p, r], en mm y radianes)

Medición de la herramienta

Las mediciones 1-6 se pueden realizar en cualquier lugar de la brida de montaje de la herramienta, siempre y cuando se mida la misma posición para las 6 mediciones. Después de eso, cada TCP que queremos medir añadirá una medición para el mismo TCP, en este caso, tenemos 3 TCP así 6+3=9 mediciones en total. Podemos hacer doble clic en una medida para continuar las medidas de esa posición.

Al igual que el apartado anterior: seleccione Medir en la sección de Configuración de la Herramienta. La siguiente ventana se abrirá. Seleccione Iniciar Medida y el robot se moverá secuencialmente a través de las mediciones planeadas. Haga doble clic en una medida para continuar las medidas desde esa posición.

Robot Calibration LaserTracker - Imagen 26

El resumen mostrará los TCPs calibrados cuando se haya completado el procedimiento. La definición del TCP (en la siguiente imagen “CalibTool 1”) se actualizará automáticamente. Si no hemos seleccionado algún TCP, podemos añadir uno nuevo (seleccione “ProgramaAñadir Herramienta (TCP)”) y seleccione “Recalcular”. Una nueva ventana aparecerá y hay que seleccionar el “id” de la herramienta dependiendo del orden en que tomamos las mediciones. Podemos repetir el mismo procedimiento para actualizar tantos TCP como necesitemos (en este caso 3 TCP). La id de la herramienta se detectará automáticamente si el nombre de la herramienta termina con un número.

Robot Calibration LaserTracker - Imagen 27

Calibración del robot

Seleccione Medir en la sección Calibración. La siguiente ventana se abrirá. A continuación, seleccione Iniciar Medición y el robot se moverá secuencialmente a través de las medidas planeadas. Haga doble clic en una medida para continuar desde esa posición.

Robot Calibration LaserTracker - Imagen 28

Cierre la ventana cuando se hayan completado las mediciones. El robot se calibra automáticamente y se mostrará el siguiente mensaje si no hay problemas.

Robot Calibration LaserTracker - Imagen 29

Por último, la pantalla verde mostrará algunas estadísticas con respecto a las medidas de calibración y cuanto se mejora la precisión para esas mediciones.

Robot Calibration LaserTracker - Imagen 30

Validación del robot

No debemos validar la precisión del robot utilizando las mismas medidas que hemos utilizado para calibrar el robot, por lo tanto, se recomienda tomar medidas adicionales para validar la precisión (que tiene un punto de vista más objetivo de los resultados de precisión).

El mismo procedimiento de calibración debe ser seguido para tomar las mediciones de validación. El resumen mostrará las estadísticas de validación. Véase la siguiente Sección Resultados para más información.

Resultados

Una vez que se ha completado la calibración podemos analizar la mejora de la precisión mediante la lectura de las estadísticas proporcionadas por RoboDK. Para visualizar estas estadísticas, abra la ventana de calibración del robot (doble clic en el icono de Calibración del Robot). La ventana de resumen en la sección de validación mostrará los errores antes de la calibración (cinemática nominal) y después de la calibración (cinemática calibrada). Dos tablas se proporcionan, una muestra las estadísticas relativas a los errores de posición y la otra muestra errores de distancia:

Errores de posición: El error de posición es la precisión que el robot puede alcanzar en un punto con respecto a un sistema de coordenadas.

Errores de distancia: El error de distancia se obtiene mediante la medición del error de distancia de los pares de puntos. La distancia entre dos puntos vistos por el robot (obtenida usando las cinemáticas calibradas) se compara con la distancia vista por el sistema de medición (físicamente medido). Todas las combinaciones son tomadas en cuenta. Si tomamos 315 mediciones tendremos 315x315/2=49455 valores de error de distancia.

Las estadísticas proporcionadas son el error medio, la desviación estándar (std) y el error máximo. También se proporciona la media más tres veces la desviación estándar, que corresponde al error esperado para el 99,98% de todas las mediciones (si tenemos en cuenta que los errores siguen una distribución normal).).

Robot Calibration LaserTracker - Imagen 31

Seleccione Mostrar estadísticas y dos histogramas mostrarán la distribución de los errores antes y después de la calibración, un histograma de exactitud de la posición y la otra que muestra la precisión de la distancia. Las siguientes imágenes corresponden a las 315 mediciones de validación utilizadas en este ejemplo.

.

Robot Calibration LaserTracker - Imagen 32

Robot Calibration LaserTracker - Imagen 33

Por último, podemos seleccionar “Hacer reporte” y un informe en formato PDF con la información presentada en esta sección será generado.

Programa de Filtrado

Una vez que el robot ha sido calibrado, tenemos dos opciones para generar programas que utilizan la exactitud absoluta del robot calibrado:

Filtrar los programas existentes: todos los objetivos del robot dentro de un programa se modifican para mejorar la precisión del robot. Se puede hacer manualmente o usando la API.

Utilice RoboDK para la Programación Fuera de Línea para generar programas precisos (los programas generados ya se filtraron, incluyendo programas generados mediante la API).

Para filtrar un programa existente de forma manual: arrastre y suelte el archivo de programa de robot en la pantalla principal de RoboDK (o seleccione ArchivoAbrir) Yyseleccione Sólo Filtrar. El programa se filtra y se guarda en la misma carpeta. El resumen de filtrado mencionará si había algún problema utilizando el algoritmo de filtrado. También tenemos la opción de importar un programa si queremos simularlo dentro de RoboDK. Si el programa tiene cualquier dependencia (sistema de la herramienta o definiciones del sistema base, subprogramas, ...) deben estar ubicados en el mismo directorio donde se importó el primer programa.

Robot Calibration LaserTracker - Imagen 34

Robot Calibration LaserTracker - Imagen 35

Una vez que importamos el programa dentro RoboDK podemos regenerarlo con o sin precisión absoluta. En las principales opciones de configuración de precisión de RoboDK (HerramientasOpcionesPrecición) podemos decidir si queremos generar siempre los programas utilizando la cinemática precisa, si queremos preguntar cada vez, o si queremos utilizar la cinemática actual de robots. La cinemática actual de robots se puede cambiar haciendo clic derecho en el robot y activar/desactivar la etiqueta “Use cinemáticas precisas”. Si está activo veremos un punto verde, si no está activo, veremos un punto rojo.

Robot Calibration LaserTracker - Imagen 36

Robot Calibration LaserTracker - Imagen 37

Filtrar programa usando la API

Es posible filtrar un programa completo usando RoboDK dado un robot calibrado y el programa del robot usando el llamado FilterProgram:

robot.FilterProgram(file_program)

Un ejemplo de macro llamado FilterProgram está disponible en la sección Macros de la biblioteca. El código siguiente es un script en Python ejemplo que utiliza la API de RoboDK para filtrar un programa.

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

Filtrar la posición usando la API

El código siguiente es un ejemplo de script Python que utiliza la API de RoboDK para filtrar un objetivo (posición pose oposición de articulación), utilizando el comando FilterTarget:

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

Este ejemplo es útil si una aplicación de otro fabricante (que no sea RoboDK) genera el programa del robot usando posiciones 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))


Dominio del robot

Una vez que el robot ha sido calibrado, usualmente necesitamos RoboDK para filtrar los programas, por lo tanto, es requerida una licencia RoboDK (una licencia básica OLP es suficiente para generar programas precisos de robot una vez que el robot haya sido calibrado). Filtrar un programa significa que los objetivos en un programa son alterados/optimizados para mejorar la precisión del robot, teniendo en cuenta todos los parámetros de calibración (alrededor de 30 parámetros).

Alternativamente, podemos calibrar solamente los desplazamientos de articulaciones más los sistemas de coordenadas base y de herramienta (4 parámetros de desplazamiento de articulación más 6 parámetros para el sistema base más 6 parámetros para el sistema de la herramienta). La calibración no será tan precisa como si se hubiera utilizado la calibración completa por defecto, pero podría permitir entrar en ciertos parámetros en el controlador del robot y no depender de RoboDK para generar programas de robot.

Para obtener la calibración sólo para los desplazamientos de articulación hay que seleccionar el botón Calib. Parám. Y luego el botón de masterización (dentro del menú de calibración del robot).

Robot Calibration LaserTracker - Imagen 38

Robot Calibration LaserTracker - Imagen 39

Aparecerá una nueva ventana después de que seleccionemos Hacer masterización del programa. En esta ventana podemos seleccionar qué ejes queremos considerar para la creación de la nueva posición inicial.

Robot Calibration LaserTracker - Imagen 40

El botón Crear programa de masterización aparecerá en la ventana de calibración del robot. Seleccione este botón para generar un programa que traerá el robot a la nueva posición de inicio. Transfiéralo al robot y ejecútelo,entonces, la nueva posición de partida debe ser registrada.

Si el robot y el PC están conectados, podemos hacer clic derecho en el programa y seleccionar Enviar Programa de robot para enviar automáticamente el programa al robot. De lo contrario, podemos seleccionar Generar programa de robot para ver los nuevos valores de articulación para la posición inicial.

Robot Calibration LaserTracker - Imagen 41

Como un ejemplo, debemos seguir los siguientes pasos para actualizar la posición inicial para los robots Motoman.

Hay que ejecutar primero el programa “DOMINIO” para llevar el robot a la posición de inicio nueva.

Una vez que el programa se encuentra en el controlador hay que iniciar la sesión como “Modo de gestión” (la contraseña para robots Motoman es generalmente 99999999) y tenemos que estar en el modo de Enseñar. Las siguientes imágenes muestran los pasos que se deben seguir.

Robot Calibration LaserTracker - Imagen 42Robot Calibration LaserTracker - Imagen 43

Robot Calibration LaserTracker - Imagen 44Robot Calibration LaserTracker - Imagen 45

Robot Calibration LaserTracker - Imagen 46Robot Calibration LaserTracker - Imagen 47

Asegúrese de actualizar la posición inicial para todas las articulaciones del robot.

Una vez que se establece la posición inicial, hay que eliminar el programa del robot que trajo el robot a la posición de inicio nueva.

Sistema de coordenadas y de herramienta

RoboDK proporciona algunas utilidades para calibrar los sistemas de coordenadas y sistemas de herramientas. Estas herramientas pueden ser accedidas desde UtilidadesCalibrar Sistema Coordenado y UtilidadesCalibrar Sistema de Herramienta TCP respectivamente.

Robot Calibration LaserTracker - Imagen 48

Para calibrar un sistema de coordenadas o un sistema de herramienta (también conocido como sistema de Usuario y TCP, respectivamente) necesitamos algunas configuraciones del robot tocando 3 o más puntos, estas configuraciones de robot pueden ser valores de articulación o coordenadas cartesianas (con datos de orientación en algunos casos). Se recomienda utilizar los valores de articulación en lugar de las coordenadas cartesianas, ya que es más fácil de comprobar la configuración de robot real en RoboDK (copiando y pegando las articulaciones del robot a la pantalla principal de RoboDK).

Herramienta de calibración

Seleccione UtilidadesCalibrar Sistema de Herramienta para calibrar el TCP usando RoboDK. Podemos utilizar tantos puntos como se desee, utilizando diferentes orientaciones. Más puntos y cambios de orientación más grandes son mejores, ya que vamos a obtener una mejor estimación del TCP, así como una buena estimación del error de TCP.

Las siguientes dos opciones están disponibles para calibrar un TCP:

Tocando un punto estacionario con el TCP con diferentes orientaciones.

Tocando un plano con el TCP (como una sonda de contacto

Se recomienda calibrar tocando un plano de referencia si tenemos que calibrar una sonda de contacto o un husillo. Este método es más estable frente a errores del usuario.

Si el TCP es esférico, el centro de la esfera se calcula como la nueva TCP (no es necesario proporcionar el diámetro de la esfera).

Robot Calibration LaserTracker - Imagen 49

Los siguientes pasos se deben seguir para calibrar el TCP con un plano (como se ve en la imagen):

1.Seleccione la herramienta que necesita ser calibrada.

2.Seleccione el método de calibración“Calib XYZ por plano”.

3.Seleccione la calibración usando “articulaciones”.

4.Seleccione el robot que se está utilizando.

5.Seleccione el número de configuraciones que vamos a usar para la calibración del TCP (se recomienda tomar 8 o más configuraciones).

6.Seleccionar una estimación del plano de referencia. Si el plano de referencia no es paralelo al plano XY del robot (desde la referencia de robot) se debe añadir una estimación de este plano de referencia dentro de ± 20 grados. La posición de este plano no es importante, sólo la orientación.

Robot Calibration LaserTracker - Imagen 50

7.Podemos empezar a llenar la tabla de valores de articulación. Podemos llenarla manualmente o copiando/pegando con los botones (como se muestra en la imagen). También podemos utilizar el botón “Obtener Jx” para obtener los valores actuales de las articulaciones del robot en el simulador. Si estamos obteniendo las articulaciones de un robot real conectado al robot en primer lugar debemos seleccionar “Obtener articulaciones actuales” en el menú de conexión del robot (ver imagen adjuntada o en el apéndice para obtener más información sobre la conexión de un robot con RoboDK). Se recomienda encarecidamente mantener una copia separada de las articulaciones utilizadas para la calibración (por ejemplo, un archivo de texto).

Robot Calibration LaserTracker - Imagen 51

8.Una vez que se llena la tabla veremos los nuevos valores de TCP (X, Y, Z) como el “TCP Calibrado”, hacia el final de la ventana. Podemos seleccionar “Actualizar” y el nuevo TCP se actualizará en la estación RoboDK. La orientación de la sonda no se puede encontrar utilizando este método.

9.Podemos seleccionar “Mostrar errores” y vamos a ver el error de cada configuración con respecto al TCP calculado (que es el promedio de todas las configuraciones). Podemos eliminar una configuración si tiene un error más grande que los otros.

10.Debemos actualizar manualmente los valores en el controlador de robot real (X, Y, Z solamente). Si es utilizado este TCP en un programa generado por RoboDK, no es necesario actualizar los valores en el controlador del robot.

Calibración del sistema de coordenadas

Seleccione UtilidadesCalibrar Sistema de Coordenadas para calibrar un sistema de coordenadas. Es posible establecer un sistema de coordenadas utilizando diferentes métodos. En el ejemplo de la figura, un sistema de coordenadas está definido por tres puntos: el punto 1 y 2 definen la dirección del eje X y el punto 3 define el eje Y positivo.

Robot Calibration LaserTracker - Imagen 52

Anexo I - El dominio de los ejes 1 y 6

Hay que prestar especial atención si queremos recuperar los valores de masterización/inicio para los ejes 1 y 6. Estos valores están directamente relacionados con la estructura base del robot para el eje 1 y una referencia TCP para el eje 6. Por lo tanto, las mediciones externas se deben tomar para configurar correctamente estos valores. Esta ventana aparece después de que seleccione “Crear programa de masterización” en el menú de calibración.

Robot Calibration LaserTracker - Imagen 53

Los dos procedimientos siguientes se deben seguir para configurar correctamente los parámetros de masterización para estos dos ejes.

Referencia del eje 6

Debemos usar un objetivo de referencia para configurar apropiadamente la posición de “inicio” del eje 6. El ángulo de compensación será la rotación alrededor del eje Z de la brida de montaje de la herramienta necesaria para adaptarse mejor al TCP medido (X, Y, Z) con la referencia conocida del TCP. El TCP medido (ver la siguiente imagen) es uno de los TCP que fue medido en el paso dos del procedimiento de calibración. El TCP de referencia es una referencia conocida que corresponde a uno de los TCP para la herramienta de calibración que se ha utilizado.

Idealmente, el TCP de referencia debe ser medido por el CMM con respecto a la brida de montaje de la herramienta (una réplica de la brida de montaje de la herramienta del robot sería lo mejor). Alternativamente, podemos utilizar un nuevo robot para medir el TCP (paso dos del procedimiento de calibración) por primera vez y utilizar un TCP medido como referencia. Es importante utilizar un pin pasador y/o la referencia apropiada de la brida de montaje de la herramienta para asegurarse de que el efector final sea colocado siempre en la misma posición.

Robot Calibration LaserTracker - Imagen 54

Referencia del eje 1

Debemos medir adecuadamente tres objetivos básicos antes de iniciar una calibración del robot si queremos alinear el eje 1 con el sistema base del robot real. Estos objetivos base deben elegirse de modo que el sistema de coordenadas se pueda encontrar con respecto al robot.

La posición de “inicio” del eje 1 depende directamente de las tres posiciones base, así como la configuración de la base del robot. La configuración de la base del robot es la primera etapa de calibración, en la que el sistema base del sistema de medición se coloca con respecto al sistema base del robot mediante el movimiento y medición del eje 1 y 2.

Las posiciones base del sistema de medición se pueden establecer pulsando “Establecer posiciones base” (véase la siguiente imagen). Estas son 3 mediciones que definirán el sistema de coordenadas del robot deseado (las 2 primeras mediciones definen el eje X y el tercer punto del eje Y positivo). Debemos utilizar puntos de referencia apropiados relacionados con la base del robot para que este procedimiento sea repetible.

El ángulo de corrección para la articulación 1 será el ángulo entre el eje X de la referencia base medida a través de 3 puntos y la referencia de base medida moviendo los ejes del robot 1 y 2. Por supuesto, ambos vectores se proyectan previamente al plano XY de la referencia base obtenida tocando los puntos de los árboles.

Robot Calibration LaserTracker - Imagen 55

Anexo II - Prueba del tracker láser de Faro

La calibración del robot requiere mediciones que son tomadas del robot con un sistema de medición. Para tomar estas medidas se requiere un sistema de rastreo Faro láser que se comunica con una computadora. La comunicación se realiza a través de un archivo de controlador exe que se puede ejecutar en modo de consola.

Por ejemplo, Faro ofrece una aplicación gratuita llamada “Utilidades de Tracker”. Esta aplicación puede iniciar el sistema de rastreo láser y realizar algunas comprobaciones de estado, entre otras cosas.

Para inicializar el tracker debemos iniciar la aplicación “Utilidades de Tracker”, conectar usando la IP del tracker, luego, seleccionar “Comprobaciones de Inicio”. Cuando el tracker se inicia, debemos colocar objetivo 1.5” SMR en la posición “inicial” antes de la inicialización. De lo contrario, la luz verde parpadeará después de la inicialización y las mediciones no serán válidas.

Una vez realizada la inicialización debemos leer el mensaje “Inicio completo”, como se muestra en la siguiente imagen.

Robot Calibration LaserTracker - Imagen 56Robot Calibration LaserTracker - Imagen 57

Si experimentamos problemas con el tracker, podemos ejecutar algunas comprobaciones de salud presionando “Inspecciones de Salud...”. Las siguientes dos imágenes muestran una comprobación exitosa y una comprobación fallida, respectivamente. A veces, los problemas se resuelven después de volver a conectar los cables y reiniciar el láser tracker.

Robot Calibration LaserTracker - Imagen 58Robot Calibration LaserTracker - Imagen 59

Robot Calibration LaserTracker - Imagen 60

Por último, podemos utilizar la “Plataforma de Medida” para tomar algunas medidas. El láser tracker puede seguir un objetivo y medir la posición XYZ a una velocidad de 1000 Hz. Si fijamos 1 muestra por punto y disparo continuo y el tracker grabará 1000 mediciones por segundo en un archivo CSV.

Podemos utilizar esta función para medir una trayectoria del robot y usar la comprobación de precisión de la trayectoria de RoboDK para comprobar la precisión, la velocidad y la aceleración a lo largo del camino.

Robot Calibration LaserTracker - Imagen 61