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
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 Herramientas➔Opciones➔Otro para cambiar la configuración predeterminada (ubicación Python y Editor de Python).
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/.
Siga estos pasos para configurar un proyecto de ejemplo utilizando un robot UR y simular un movimiento con el robot.
1.Seleccione Archivo➔ Abrir
2.Abra el robot UR10
3.Seleccione Archivo➔ 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 Ejecutar scripts de Python.
8.Haga clic derecho en el elemento SampleOfflineProgramming 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).
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 programa 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.
RDK = Robolink()
RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)
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 programaPython
2.Seleccione Ejecutar en robot
El programa se ejecutará en el robot en la medida en que se ejecute el programa en Python.
RDK = robolink()
RDK.setRunMode(RUNMODE_RUN_ROBOT)
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).
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
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.
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.
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.
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.
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.
RDK = Robolink();
RDK.setRunMode(RUNMODE_RUN_ROBOT);
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
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
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 (Utilidades➔Proyecto 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.