Programación Básica de Robots PDF
Document Details
Tags
Summary
Este documento proporciona una introducción fundamental a la programación de robots, incluyendo conceptos clave como la configuración, los diferentes tipos de lenguajes de programación utilizados en robótica, y la definición de trayectorias. Adicionalmente, examina temas como los sistemas monotarea y multitarea, así como la programación de posiciones y los tipos de movimiento.
Full Transcript
3. Programación básica de robots 1. Programación de robots 2 1.1. Configuración y/o programación 3 2. Lenguajes de programación 4 2.1. Tipos de lenguajes de programación 5 2.1.1. Lenguajes textuales...
3. Programación básica de robots 1. Programación de robots 2 1.1. Configuración y/o programación 3 2. Lenguajes de programación 4 2.1. Tipos de lenguajes de programación 5 2.1.1. Lenguajes textuales 5 2.1.2. Lenguajes gráficos 5 2.2. Lenguajes interpretados o compilados 6 2.2.1. Lenguajes interpretados 6 2.2.2. Lenguajes compilados 7 2.3. Ejecución cíclica de programas 8 3. Concepto de tarea 8 3.1. Sistema monotarea 9 3.2. Sistema multitarea (multitasking) 9 3.2.1. Multitarea con varios robots 9 3.2.2. Subtareas sin movimiento 10 4. Programación de posiciones 10 5. Trayectorias 13 5.1. Movimientos de juntas o de ejes (MoveJ) 13 5.2. Movimientos lineales o rectilíneos (MoveL) 13 5.3. Movimientos circulares (MoveC) 13 1. Programación de robots En lo básico, la programación de un robot consiste en enseñar una serie de posiciones o puntos de paso, y las trayectorias que va a seguir el robot, para pasar por o cerca de ellos. Durante la ejecución de estas trayectorias, es posible que el programa necesite tomar alguna decisión que condicione la ejecución de la secuencia en función de un conjunto de operaciones numéricas o matemáticas, o del valor presentado en señales externas, como pueden ser las obtenidas a través de las entradas digitales o analógica de la propia controladora. Las posiciones de un programa de robot también se denominan destinos, targets. puntos o puntos de paso. Sirva como ejemplo el siguiente proceso controlado por un robot en el que una serie de productos llegan a la zona de manipulación a través de una cinta transportadora de carga. Cuando los objetos se encuentran al final de la cinta, su altura se comprueba por un par de detectores de proximidad. Así, el robot selecciona las piezas por alturas y las traslada a sus correspondientes cintas de descarga. En este caso, la programación consiste en definir una serie de puntos de paso o destinos, sobre los que el robot realiza las trayectorias de desplazamiento, condicionadas por el valor de las señales de los detectores ubicados en las cintas transportadoras. Ejemplo de programación de posiciones y trayectoria en un proceso robotizado Estudia el siguiente vídeo: RobotStudio: Actividad 5 (Programación básica de posiciones y trayectorias) 1.1. Configuración y/o programación Desde el punto de vista del software, la puesta en producción de un consiste en realizar dos operaciones bien diferenciadas: La configuración. La programación. La configuración consiste en ajustar determinados parámetros del sistema, para que el robot pueda adaptarse a su entorno, manejando las herramientas que se instalan en su brida y los productos sobre los que tiene que trabajar. Esta configuración se hace ajustando los parámetros de seguridad, carga útil, configuración de E/S, sistema dinámico del robot, etc. La programación consiste en el desarrollo de secuencias que, mediante instrucciones escritas en formato de código, mueven el robot de una manera determinada, pasando por posiciones previamente ajustadas o creadas dinámicamente. El movimiento del robot puede estar condicionado al estado de determinados parámetros físicos y/o eléctricos, y al valor asignado a variables creadas por el usuario o del sistema. 2. Lenguajes de programación El lenguaje de programación es el conjunto de instrucciones y órdenes que permiten controlar las secuencias de funcionamiento del robot. La sintaxis y estructuración de los lenguajes de programación destinados a la robótica es similar a los usados en los lenguajes de programación de propósito general con los que se desarrollan las aplicaciones y procesos en dispositivos informáticos, pero con la diferencia de que los lenguajes destinados a robots disponen de instrucciones propias para gestionar los movimientos de la cinemática y el control de su electrónica. Los lenguajes de programación en robótica no están estandarizados. Cada fabricante ha desarrollado el suyo propio, que, aunque en muchos aspectos es similar a los demás, tiene notables diferencias que requieren un periodo de adaptación y formación de los técnicos que lo manejan. A continuación, se nombran algunos de los lenguajes de programación usados por los diferentes fabricantes de robots: Marca de robot Lenguaje Mitsubishi Melfa Basics ABB RAPID KUKA KRL Universal Robots URScript Fanuc TPE Bosch Rexroth Basps Omron TM-Flow En algunos sistemas robóticos, además de su propio lenguaje de programación, es posible el uso de lenguajes generales tales como el C + + o el Python. La programación de un robot se hace a través del teach pendant o mediante un PC con el software adecuado. Programación de un robot industrial 2.1. Tipos de lenguajes de programación En función de la forma de generar el código, los lenguajes de programación para robot pueden ser textuales o gráficos. 2.1.1. Lenguajes textuales Los lenguajes textuales son aquellos que se escriben a partir de scripts de texto. Esta operación se puede realizar mediante el teach pendant o en un editor de texto estándar instalado en el PC. Código RAPID de ABB (izquierda) y Código URScript (derecha) 2.1.2. Lenguajes gráficos Los lenguajes gráficos son aquellos que utilizan una interfaz gráfica para generar el código. En este caso se pueden dar dos situaciones: Lenguajes que generan el código a través de la interfaz gráfica del software de programación. En estos, los argumentos y parámetros se ajustan desde asistentes. Interfaz gráfica para generar código en los robots colaborativos de Universal Robots (izquierda) e Interfaz gráfica para generar código RAPID en RobotStudio (derecha). Lenguajes que utilizan bloques gráficos para cargar directamente en la controladora o para generar los scripts de texto. Lenguajes de programaciones gráficos para robots colaborativos: TM-Flow de Omron y Wizard de ABB. 2.2. Lenguajes interpretados o compilados De la misma forma que ocurre con los lenguajes de alto nivel destinados a aplicaciones informáticas y móviles, en robótica, en función de cómo se lea el código en la memoria de la controladora, los lenguajes pueden ser interpretados o compilados. 2.2.1. Lenguajes interpretados Los lenguajes interpretados son aquellos en los que el código fuente se ejecuta en la memoria de la controladora para gestionar la secuencia de funcionamiento. Así, si alguien accede a la controladora mediante el teach pendant o un PC externo, si el programa no dispone de contraseña, el código obtenido es el que se cargó originalmente en la controladora. Los lenguajes interpretados son los más utilizados en la actualidad para los robots modernos. Algunos de ellos son RAPID, URScript, etc. 2.2.2. Lenguajes compilados Un lenguaje compilado es aquel que convierte el código fuente en código máquina capaz de ser interpretado por el hardware de la controladora. En este caso, la carga de los programas en el controlador requiere un paso intermedio que no es necesario en los de tipo interpretado. A esta operación se la denomina compilación y consiste en convertir los scripts de código fuente en archivos de código máquina. Los lenguajes compilados suelen ser más rápidos y ocupar menos memoria que los interpretados. Sin embargo, en un programa en producción, si no se dispone del archivo fuente, no es posible hacer cambios o modificaciones. Los lenguajes compilados son poco utilizados en los sistemas robóticos modernos. Un ejemplo de este tipo es el lenguaje BAPS, que usaban robots Bosch actualmente descatalogados. Los lenguajes compilados se utilizaban en antiguos controladores, donde la memoria de proceso y de almacenamiento era limitada. 2.3. Ejecución cíclica de programas Los programas se ejecutan línea a línea de arriba abajo, siguiendo el denominado puntero de programa. El puntero se sitúa en la línea correspondiente y ejecuta la instrucción o comando que en ella se encuentra. Una vez que se ha superado una línea de programación, esta no volverá a ejecutarse hasta que el puntero de programa vuelva a estar en ella, después de iniciarse un nuevo ciclo. La ejecución del programa puede configurarse como ciclo único o como ciclo continuo. En el primer caso el programa se detiene cuando el puntero supera la última línea del código, y en el segundo el programa comienza a ejecutarse de nuevo desde el inicio. La configuración cíclica se realiza a través del teach pendant o el software de programación. 3. Concepto de tarea Se denomina tarea a la secuencia que controla los movimientos de la cinemática y se ejecuta cíclicamente desde la controladora. Una tarea dispone de un único puntero de programa que se desplaza línea a línea. En función del número de cinemáticas que hay que controlar, los sistemas robóticos pueden ser monotarea o multitarea. RobotStudio: Actividad 8 (Uso del FlexPendant) 3.1. Sistema monotarea Los sistemas monotarea son aquellos en los que cada robot dispone de su controladora independiente, desde la que se gestiona el programa que ejecuta sus movimientos. En este caso, cada robot funciona de forma autónoma de los demás y la única forma de coordinar movimientos y operaciones entre ellos consiste en conexionar las salidas de una controladora a las entradas de la otra y viceversa, o puede utilizarse un sistema de comunicación industrial para el intercambio de datos entre ambos sistemas. Dos robots trabajando en monotarea. 3.2. Sistema multitarea (multitasking) Un sistema multitarea consiste en ejecutar varios programas en paralelo, independientemente unos de otros y con su propio puntero de programa. La multitarea puede ser de dos tipos: Multitarea con varios robots Subtareas sin movimiento. 3.2.1. Multitarea con varios robots Permite controlar el movimiento de varios robots desde la misma controladora y un único teach pendant. En este caso los programas de cada robot se ejecutan en paralelo, y se pueden intercambiar datos entre ellos desde el propio código. Existen tantos punteros de programa como tareas se ejecutan al unísono. Robots trabajando en multitarea con una única controladora. 3.2.2. Subtareas sin movimiento En aquellos sistemas que controlan una única cinemática, la multitarea consiste en ejecutar procesos (subtareas) en paralelo a la tarea principal. En este caso, la tarea principal es la única que puede disponer de instrucciones de movimiento del robot, y las subtareas, o tareas secundarias, se utilizan para realizar operaciones de cálculo, gestión de E/S, comunicaciones industriales, etc En los sistemas de ABB, la multitarea viene desactivada por defecto. 4. Programación de posiciones En la unidad anterior estudiamos que las posiciones que se enseñan a un robot pueden ser de tipo absoluto o relativo. Las primeras se referencian sobre la base del robot y siempre se dan en grados de un eje respecto al anterior. Las segundas, las de tipo relativo, se referencian respecto a un sistema de coordenadas de mayor nivel y en formato cartesiano, en el que se muestran los valores X, Y y Z de la posición con respecto al sistema de coordenadas de referencia. En los sistemas de ABB, para almacenar la información de las posiciones o target, se utilizan dos tipos de datos: los jointtarget y los robtarget. Los primeros se usan para las posiciones de tipo absoluto o angular, y los segundos para las posiciones de tipo relativo o posicionamiento cartesiano. Los jointtarget muestran en grados la posición de cada uno de los ejes del robot respecto al anterior. Este tipo de dato utiliza los ejes o juntas, que definen sus grados de libertad y, por tanto, no se tiene en cuenta el TCP de la herramienta. En una posición definida en el lenguaje RAPID de ABB como jointtarget, además de la posición angular de los ejes se declara la posición de los ejes externos, si es que hay alguno conectado a la controladora. Posicionamiento con el tipo de datos jointtarget Los robtarget muestran la posición cartesiana del TCP activo respecto a un sistema de coordenadas elegido por el usuario. Si no se indica ninguno, siempre se tomará como referencia el sistema de coordenadas de la base, que suele coincidir, si el usuario no lo ha modificado, con el sistema de coordenadas mundo. Las posiciones declaradas como robtarget en el lenguaje RAPID de ABB, además del posicionamiento X, Y, Z respecto a un sistema de coordenadas de referencia, definen otros datos, como rotaciones del TCP, configuración de ejes del robot y la posición de los ejes externos, si es que existen en la estación. Posicionamiento con el tipo de dato robtarget Desde el FlexPendant de ABB, el acceso a los tipos de datos se hace desde el menú principal > Datos de Programa. En la ventana de tipos de datos, si no aparecen los robtarget y los jointtarget, aún no se han creado datos con este formato en el controlador y, por tanto, es necesario buscarlos desde el menú Ver > Todos los tipos de datos, que se encuentra en la esquina inferior derecha de la pantalla. 5. Trayectorias El paso del robot por o cerca de las posiciones previamente programadas se hace mediante las denominadas trayectorias o paths. Estas se ejecutan con movimientos entre los puntos de paso creados por el usuario. Así, en función del tipo de movimiento realizado entre dos puntos, los movimientos pueden ser de ejes, lineales o circulares. Si los movimientos lineales y circulares no se pueden ejecutar matemáticamente, la consola mostrará un aviso indicándolo. Tipos de movimiento en trayectorias RobotStudio: Actividad 9 (Programación de trayectorias con FlexPendant) 5.1. Movimientos de juntas o de ejes (MoveJ) En este tipo de movimientos, la controladora define cuál es el mejor camino, matemáticamente hablando, para pasar de un punto a otro. 5.2. Movimientos lineales o rectilíneos (MoveL) En este caso, la trayectoria entre dos puntos siempre se realiza en línea recta. La controladora se encarga de efectuar la interpolación matemática correspondiente para que esto se pueda llevar a cabo. 5.3. Movimientos circulares (MoveC) Permiten realizar movimientos circulares a partir de arcos de circunferencia. En este caso, la trayectoria se realiza tomando tres puntos: un punto de origen, otro de destino y un punto de paso. Tipos de movimientos Las instrucciones de movimiento disponen de parámetros que deben ser ajustados en el momento de la programación: Radio de transición (zone): es la distancia en mm a la que se va a aproximar el TCP en el punto de destino. Velocidad: es la velocidad máxima en mm/s que puede alcanzar el TCP. TCP: punto central de la herramienta con el que se va a realizar el movimiento. Sistema de coordenadas (WorkObject): sistema de coordenadas de referencia sobre el que se va a realizar el movimiento. A continuación se muestra la estructura de una instrucción de movimiento en el lenguaje RAPID de los robots de ABB.