API de RoboDK

La API (Interfaz de Aplicación del Programa) de RoboDK es un conjunto de rutinas y comandos que RoboDK expone mediante un lenguaje de programación que permite la programación de cualquier robot utilizando un lenguaje de programación único.

En comparación con la programación de robots específica del proveedor, con la API de RoboDK es posible simular y programar un robot usando un lenguaje de programación único/universal como Python. La página principal ofrece una visión general y un vídeo que muestra la programación fuera de línea con la API.

La API de RoboDK está disponible para Python, C#, C++, Visual Basic y Matlab. Cualquiera de estos lenguajes de programación se puede utilizar para simular y programar un robot.

La API de RoboDK puede ser utilizada para las siguientes tareas:

1.Automatizar la simulación: Crear macros para automatizar tareas específicas dentro del simulador de RoboDK, tales como mover objetos, sistemas de coordenadas o robots.

2.Programación fuera de línea: Programación de robots fuera de línea desde un lenguaje de programación universal. RoboDK generará programas específicos para un controlador de robot específico cuando se usa el API (tal como un programa en Python o C#). El programa de robot es generado de acuerdo con el post procesador seleccionado para un robot específico. La sección de programación fuera de línea con Python de este documento, ofrece más información y ejemplos.

3.Programación en línea: La programación de los robots en línea usando un lenguaje de programación universal: Es posible mover los robots y recuperar su posición actual desde la API de RoboDK. RoboDK moverá los robots usando controladores del robot. La sección de Programación en línea con Python de este documento, ofrece más información y ejemplos.

En otras palabras, el mismo programa que se utiliza para la simulación (1) se puede utilizar para generar programas de robot (2, programación fuera de línea) y para mover el robot en tiempo real (3, Programación en línea).

Este documento cubre los siguientes tópicos:

Los API de Python con ejemplos de Simulación, Programación Fuera de Línea y Programación en Línea

La API de C# con ejemplos de Simulación, Programación Fuera de Línea y Programación en Línea

Los API de Matlab con un ejemplo Simulink para la simulación

Las opciones de Línea de comando para iniciar RoboDK

API de Python

Python es un lenguaje de programación de alto nivel ampliamente utilizado para la programación de propósito general. Python es un lenguaje de programación que le permite trabajar más rápido e integrar sus sistemas más efectivamente. La sintaxis de Python permite a los programadores expresar conceptos en menos líneas de código en comparación con otros lenguajes, haciéndolo agradable y fácil de aprender.

La sección previa explica las ventajas de utilizar la API de RoboDK con un lenguaje de programación ampliamente utilizado para la programación de robots como Python.

Python es instalado automáticamente e integrado con RoboDK por defecto. Seleccione HerramientasOpcionesOtro para cambiar la configuración predeterminada (ubicación Python y Editor de Python).

RoboDK API - Imagen 1RoboDK API - Imagen 2

La API de RoboDK para Python se divide en los siguientes dos módulos:

El módulo robolink (robolink.py): El módulo robolink es la interfaz entre RoboDK y Python. Cualquier objeto en el Árbol de la estación de RoboDK puede ser recuperado mediante un objeto Robolink y está representado por el elemento objeto. Es posible realizar diferentes operaciones en ese elemento según la clase Robolink.Item.

El módulo robodk (robodk.py): El módulo robodk es una caja de herramientas robóticas para Python que permiten operar con transformaciones Pose y obtener ángulos de Euler para diferentes proveedores de robot. Todos los post-procesadores dependen de este módulo robodk.

Los módulos de Python se encuentran en la carpeta C:/RoboDK/Python/ y son copiados en la ruta de la carpeta Python automáticamente cuando se instala RoboDK o cuando se establece la Configuración por defecto de Python (ver imagen anterior).

En las subsecciones siguientes muestran cómo crear un programa sencillo para la simulación, programación fuera de línea y programación en línea, respectivamente. Más ejemplos están disponibles en la página API de Python para RoboDK. Además, la biblioteca de RoboDK viene con macros muestra de Python en la carpeta C:/RoboDK/Library/Macros/.


Simulación en Python

Siga estos pasos para configurar un proyecto de ejemplo utilizando un robot UR y simular un movimiento con el robot.

1.Seleccione ArchivoRoboDK API - Imagen 3 Abrir

2.Abra el robot UR10

3.Seleccione ArchivoRoboDK API - Imagen 4 Abrir

4.Abra el archivo Paint_gun.tool

5.Abra el programa muestra de Python SampleOfflineProgramming.py desde C:/RoboDK/Library/Macros/

6.

7.Haga doble clic en el elemento SampleOfflineProgramming para ejecutar la simulación. El robot debe dibujar un hexágono alrededor de la posición actual del robot y la traza del TCP se mostrará en amarillo.        
Alternativamente, haga clic derecho en el programa y seleccione
RoboDK API - Imagen 6Ejecutar scripts de Python.

8.Haga clic derecho en el elemento RoboDK API - Imagen 7SampleOfflineProgramming y seleccione Editar script de Python. Debemos ver el programa como se muestra en la siguiente imagen.

La macro SampleOfflineProgramming dibujará un polígono de n_sides lados y radio R en la posición actual del robot, con respecto al sistema de referencia del robot. Si lo desea, mueva el robot a una ubicación diferente cambiando las dimensiones del polígono y volviendo a ejecutar el programa.

Este ejemplo es similar al programa que se muestra en la sección programación fuera de línea del sitio web (vídeo incluido).

RoboDK API - Imagen 8RoboDK API - Imagen 9


Python OLP

Los programas de Python pueden ser generados fuera de línea utilizando el mismo código Python utilizado para simular el robot (como se muestra en la sección anterior Simulación Python). La programación fuera de línea permite generar programas de robot que pueden ser ejecutadas en un controlador de robot específico:

1.Haga clic derecho en un RoboDK API - Imagen 10programa Python

2.Seleccione Generar programa de robot (F6)

En este caso el programa no se simula pero es ejecutado rápidamente para obtener el resultado: un programa de robot específico para un controlador de robot.

RoboDK API - Imagen 11RoboDK API - Imagen 12

RDK = Robolink()

RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)


Programación en línea de Python

Los programas de Python se pueden ejecutar directamente en el robot utilizando el mismo código Python utilizado para simular el robot (como se muestra en la sección Simulación de Python). La programación en línea permite la ejecución de un programa genérico en un controlador de robot específica utilizando controladores de robot:

1.Haga clic derecho en una programaRoboDK API - Imagen 13Python

2.Seleccione Ejecutar en robot

El programa se ejecutará en el robot en la medida en que se ejecute el programa en Python.

RoboDK API - Imagen 14RoboDK API - Imagen 15

RDK = robolink()

RDK.setRunMode(RUNMODE_RUN_ROBOT)


API de C#

C# (pronunciado "C sharp") es un lenguaje de programación desarrollado por Microsoft y diseñado para la construcción de una gran variedad de aplicaciones que se ejecutan en .NET Framework. C# es simple, potente, de tipo seguro y orientado a objetos.

La sección principal de este documento explica las ventajas de utilizar la API de RoboDK con un lenguaje de programación ampliamente utilizado como C# para la programación de robots.

La API de RoboDK para C# es un archivo fuente de RoboDK.cs que contiene la clase RoboDK (similar a la clase Python robolink), a la clase RoboDK.Item (similar a la clase Python Robolink.Item API), y otras herramientas para robótica tales como una clase Matriz (RoboDK.Mat) para operaciones matriciales para operar con transformaciones Pose.

La API de RoboDK para C# está provista de un proyecto de ejemplo como se muestra en la siguiente imagen (el código fuente completo se incluye).

RoboDK API - Imagen 16

Seleccione Cargar Archivo para abrir una estación RoboDK o cualquier otro archivo soportado por RoboDK. Si se carga un robot, la variable ROBOT será actualizada en consecuencia (igual que usar Seleccionar Robot).

El siguiente vídeo muestra una visión general del proyecto de ejemplo de C# utilizando la API de RoboDK:        
https://www.youtube.com/watch?v=3I6OK1Kd2Eo


Simulación en C#

Los programas en C# son simulados por defecto cuando se utilizan comandos del robot (como MoveJ, MoveL o SetDO). Cuando se inicia el proyecto en C# de ejemplo, el modo de simulación también se selecciona por defecto.

RoboDK API - Imagen 17

Esto significa que los movimientos del robot se simularán en RoboDK. Por ejemplo, podemos mover el robot en pasos de 10 mm seleccionando los botones a la derecha (+ Tx, -Tx, ...), o podemos seleccionar Ejecutar Programa de Prueba para ejecutar un movimiento hexagonal alrededor de la posición actual del robot.

Establezca algunos puntos de interrupción para depurar su aplicación e inspeccionar las posiciones del robot. Las posiciones del Robot pueden ser definidos como coordenadas de articulaciones o variables Mat (Matrices Pose de 4x4) y pueden ser inspeccionados como formato XYZWPR para solucionar problemas del programa. Más información acerca de los sistemas de coordenadas en la sección Sistema de Coordenadas.

RoboDK API - Imagen 18

También es posible cambiar el modo de ejecución a Programación Fuera de Línea o Programación en Línea (Ejecutar en Robot), como se muestra en las siguientes secciones.


C# OLP

Los programas C# pueden ser generados fuera de línea utilizando el mismo código C# que utilizado para simular el robot (Programación Fuera de Línea). Siga estos pasos para probar esta característica:

1.Seleccione Programación fuera de línea en la sección Modo de Ejecución

2.Seleccione Ejecutar Programa de Prueba o cualquier otra combinación de movimientos

3.Seleccione Generar Prog para obtener el programa del robot específico del proveedor

En este caso el programa no se simula pero es ejecutado de forma rápida para obtener el resultado: un programa de robot específico para un controlador de robot. El Modo de Ejecución se cambiará de nuevo a la simulación, una vez que se genera el programa.

RoboDK API - Imagen 19


Programación en línea de C#

Los programas de C# se pueden ejecutar directamente en el robot utilizando el mismo código C# utilizado para la simulación. La programación en línea permite la ejecución de un programa genérico en un controlador de robot específico utilizando los controladores del Robot. Siga estos pasos para probar esta función usando el proyecto de ejemplo de C#:

1.Seleccione Ejecutar en robot en la sección Modo Ejecución

2.Seleccione otros comandos que harán que un robot se mueva

Los movimientos se ejecutarán en el robot real y el simulador sincronizará los movimientos con el robot.

RoboDK API - Imagen 20

RDK = Robolink();

RDK.setRunMode(RUNMODE_RUN_ROBOT);


API de Matlab

MATLAB es un lenguaje de programación propietario desarrollado por MathWorks. Entre otras cosas, MATLAB permite la manipulación de matrices, trazado de funciones y datos y la implementación de algoritmos.

La sección principal se este documento, explica las ventajas de utilizar la API de RoboDK con un lenguaje de programación ampliamente utilizado como Matlab para la programación de robots.

La API de RoboDK de Matlab está disponible después de que RoboDK es instalado en C:/RoboDK/Matlab/. La API es proporcionada como un conjunto de archivos m, incluyendo:

Robolink.m es una clase que hace de interfaz con RoboDK. Cualquier objeto en el Árbol de la Estación de RoboDK puede ser recuperado mediante el objeto Robolink y está representado por el objeto RobolinkItem (igual que la clase de Python robolink).

RobolinkItem.m es una clase que representa un elemento RoboDK en el Árbol de la estación. Es posible realizar diferentes operaciones sobre ese elemento (es igual a la clase de Python Robolink.Item).

transl.m, rotx.m, ​​roty.m y rotz.m son funciones que crean matrices Pose dadas en un vector de traslación XYZ o rotaciones a lo largo de un eje específico.

Pose_2_XYZRPW.m y XYZRPW_2_Pose.m permite la conversión de poses a la posición XYZ y ángulos de Euler RPW y viceversa. Más información en la sección Sistema de coordenadas.

El código de la muestra está disponible en la siguiente página:        
https://robodk.com/Matlab-API

Ejemplo Simulink

Un proyecto Simulink está disponible como un ejemplo. En la simulación, el robot es movido a lo largo de un conjunto de coordenadas XYZ generadas arbitrariamente.

El siguiente vídeo muestra el resultado de ejecutar la simulación: 
https://www.youtube.com/watch?v=7DDBMwa0-Oc

RoboDK API - Imagen 21

Opciones de Linea de Comandos

Esta sección describe las opciones de línea de comandos disponibles cuando se inicia RoboDK.

La siguiente llamada es una llamada genérica con algunos argumentos:

Robodk.exe /[option1] /[option2] open_fileA /[option3] open_fileB ...

Todos los formatos de archivo compatibles con RoboDK pueden ser proporcionados como argumentos. Incluyendo los siguientes formatos:

RDK    archivo de la estación RoboDK: Este archivo contiene un proyecto completo en un archivo, incluyendo cualquier dependencia (robots, herramientas, archivos NC, ...).

robot    archivo de Robot: Cargar un archivo de robot también creará un sistema de coordenadas para el robot (referencia de base del robot).

Herramienta     archivo de Herramienta: adjunta automáticamente al último robot añadido.

stl/wrl/step/stp/iges/igs/sld Objeto (geometría 3D): Los objetos pueden ser fácilmente convertidos a herramientas.

apt/gcode/cnc archivo de programa NC: RoboDK prepara automáticamente un proyecto de fresado (UtilidadesProyecto de fresado).

= Robolink(args='/ADDFRAME "/RENAME=Main Ref " load_object.stl')

Opciones disponibles para la línea de comandos:

/NOSPLASH

Elimina la imagen de bienvenida de RoboDK en el arranque.

/DEBUG

Crea un archivo RoboDK.debug.txt en la carpeta bin que permite la depuración de la aplicación.

/SETTINGS=filepath

Carga los argumentos de un archivo de texto. Cada línea del archivo de texto es considerada como un solo argumento.

/NOUI

Inicia RoboDK sin la Interfaz de Usuario (Ventana y vista 3D). Use esta opción para ejecutar RoboDK en segundo plano usando la API.

/NOSHOW

Oculta todas las ventanas mientras RoboDK está cargando los archivos y actualizando los programas.

/NO_WINDOWS

Oculta todas las ventanas que por lo general se muestran automáticamente al cargar un archivo NC.

/PORT=20501

Fuerza la comunicación de la API a través del puerto dado (protocolo TCP/IP). El puerto por defecto es 20500.

/TREE_STATE=-1

No mostrar el árbol de la estación.

/TREE_STATE=6

Muestra el árbol de la estación acoplado en el lado izquierdo de la ventana y opaco.

/ADDFRAME

Añade un nuevo sistema de referencia. Cualquier nuevo objeto cargado será colocado en este sistema de referencia.

/RESET

Fuerza que si un nuevo objeto es cargado se colocará en el sistema de referencia de la estación (no en el último sistema de referencia añadido).

/RENAME=Name

Cambia el nombre del último sistema de referencia o de un objeto que se ha añadido.

/MOVE=x;y;z;rx;ry;rz

Mueve el último sistema de referencia que se ha añadido (en mm y grados).

/UPDATE_APT=YES

Anulará cualquier proyecto de robot de mecanizado que tenga el mismo archivo APT

/UPDATE_APT=NO

No anula ningún proyecto de mecanizado robótico (crearán proyectos duplicados si hay una coincidencia de nombre).

/UPDATE=file.apt

Carga o actualiza el archivo de APT y genera el programa del robot si no hay problemas.

/REPLACE_ITEMS=YES

Actualiza herramientas existentes y objetos existentes cuando sean cargados los archivos nuevos y haya una coincidencia de nombre.

/REPLACE_ITEMS=NO

Nunca anula herramientas ni objetos cuando sean cargados los nuevos archivos.

/SetColor=steelblue

Ajusta el color del último objeto cargado (objeto, herramienta, robot o mecanismo). El color puede ser un color nombrado o un color hexadecimal (como #RRGGBBAA, ejemplo: #88112288).

/AUTOGEN_MAINPROG=Prog

Genera un programa principal que llama a los programas vinculados a los archivos APT cargados secuencialmente.

/SELECTTOOL=#1

Establecer la primera herramienta del robot (o número correspondiente) disponible como la herramienta activa (la herramienta es utilizada cuando es cargado un nuevo programa).

/SELECTTOOL=tool name

Selecciona la herramienta activa utilizando una coincidencia de nombre.

/ADDCUTTER=length|path/cutter name.stl

Addcutter permite añadir la geometría de un cortador con respecto a un soporte de la herramienta. Un cortador se trata como una herramienta en RoboDK, manteniendo la geometría de la cuchilla. La geometría de la cuchilla debe ser un archivo STL (ASCII o binario) con el origen en la punta de la herramienta. La longitud debe ser dada en mm con respecto al soporte de la herramienta (eje Z positivos del soporte de la herramienta deben apuntar al exterior).

/SELECTCUTTER=cutter name

Selectcutter tiene el mismo efecto que SELECTTOOL, los cortadores son tratados como herramientas.

/SHOW

Muestra la ventana RoboDK. Esto es hecho automáticamente cuando todos los archivos se han cargado y los proyectos de mecanizado se han actualizado.

Usar una de las siguientes opciones alterará la visibilidad provocada por el comando /SHOW.

/HIDDEN

Evita el /SHOW automático una vez que RoboDK ha terminado de cargarse. La única forma de mostrar posteriormente la ventana es mediante el uso de la API.

/QUIT

Sale del programa si no hay mensajes de error.

/END

Sale del programa, incluso si hay algún mensaje de error.