sábado, 8 de noviembre de 2014

Programación de robots II

Programación por Guiado


La programación por guiado o aprendizaje consiste en hacer realizar al robot, o a una maqueta del mismo, una tarea (llevándolo manualmente por ejemplo) al tiempo que se registran las configuraciones adoptadas, para su posterior repetición de manera automática.

Programación de robots
AT-AT


                                      LEGO Star Wars - AT-AT, juego de construcción (75054)

Para guiar el robot por las trayectorias o puntos deseados se utilizan diferentes soluciones. Si los actuadores del robot  están desconectados es el programador quien debe aportar directamente la energía para mover el robot, se trata de guiado pasivo. En este caso, el programador puede tomar el extremo del robot y llevarlo hasta los puntos deseados siguiendo las trayectorias más adecuadas. La unidad de control del robot registrará, de manera automática, la señal de los sensores de posición de las articulaciones en todos los puntos recorridos. Este tipo de guiado se denomina guiado pasivo directo. Un ejemplo  de robot industrial programado por este procedimiento se encuentra en algunos robots de pintura.

La dificultad física de mover toda la estructura del robot se resuelve con la utilización de guiado pasivo por maniquí. En este caso se dispone de un doble robot mientras que este permanece fuera de línea. El maniquí posee idéntica configuración que el robot real, pero es mucho más ligero y fácil de mover. La programación se efectúa llevando de la mano a este doble, mientras que la unidad de control muestrea y almacena con determinada frecuencia los valores que toman los sensores de posición de las articulaciones, para su posterior repetición por el robot.

Frente a estos sistemas pasivos, otra posibilidad permite emplear el propio sistema de accionamiento del robot, controlando desde una botonera o un bastón de mando (Joistick) para que sea este el que mueva sus articulaciones. Se dirá entonces que se trata de un guiado activo.
Atendiendo a la potencia del sistema, se puede hablar de guiado básico y de guiado extendido.

-Guiado básico: El robot es guiado consecutivamente por los puntos por los que se quiere que pase durante la fase de ejecución automática del programa. Durante ésta, la unidad de control interpola dichos puntos según determinadas trayectorias. En muchas ocasiones no es posible incluir ningún tipo de estructuras de control dentro del programa, por lo que los puntos son recorridos siempre secuencialmente en el mismo orden en que se programaron. Un caso límite de este tipo de programación sería la utilizada en casi todos los robots de pintura, en los que la unidad de control muestrea automáticamente los puntos recorridos por el robot con una frecuencia muy alta.

- Guiado extendido: Permite especificar, junto a los puntos por los que deberá pasar el robot, datos relativos a la velocidad, tipo de trayectoria, precisión con la que se desea que se alcancen los puntos, control de flujo del programa, atención a entradas/salidas binarias, etc. En este caso  el método de guiado utilizado es el de la botonera o joistick. La programación por guiado extendido aumenta notablemente la potencia del sistema de programación.
Los métodos de programación por guiado son muy útiles e incluso imprescindibles en muchas ocasiones. Además presentan ventajas, como que son fáciles de aprender y que requieren un espacio de memoria relativamente pequeño para almacenar la información. Sin embargo, presentan una serie de inconvenientes, de los más destacables es la necesidad de utilizar el propio robot y su entorno para realizar la programación, obligando a sacar el robot de la línea de producción e interrumpiendo esta  Otros inconvenientes  frecuentes son la inexistencia de una documentación del programa y la dificultad de realizar modificaciones en el mismo, inconvenientes ambos que conducen a una difícil depuración y puesta a punto de las aplicaciones.

Programación textual


Como alternativa a la programación por guiado, el método de programación textual permite indicar la tarea al robot mediante el uso de un lenguaje de programación específico. Un programa se corresponde ahora, como el caso de un programa general, con una serie de órdenes que son editadas y posteriormente ejecutadas. Existe por lo tanto, un texto para el programa.

La programación textual puede ser clasificada en tres niveles: robot, objeto y tarea, dependiendo de que las órdenes se refieran a los movimientos a realizar por el robot, al estado en que deben ir quedando los objetos manipulados o al objetivo (o subobjetivo parcial) a conseguir.

En el estado actual, la programación de robots se queda materialmente en el primero de ellos (nivel robot), existiendo una gran cantidad de lenguajes de programación textual a este nivel.
Algunos de estos lenguajes son el AL de la universidad de Stanford 1974, o el RAPID de  ABB de 1994.

Se han realizado diversos intentos de desarrollar lenguajes a nivel objeto, pero las dificultades con que se han encontrado los investigadores han impedido una implementación eficiente del lenguaje.

-Nivel Robot: Es necesario especificar cada uno de los movimientos que ha de realizar el robot, así como la velocidad, direcciones de aproximación, salida y apertura y cierre de la pinza.

- Nivel Objeto: Disminuye la complejidad del programa. La programación se realiza de manera más cómoda, ya que las instrucciones se dan en función de los objetos a manejar. Un planificador de la tarea se encargará de consultar una base de datos y generar las instrucciones a nivel de robot.

-Nivel tarea: El programa se reduce a una única sentencia ya que se especifica qué es lo que debe hacer el robot en lugar de como hacerlo.

Es importante destacar que cada vez con mayor notoriedad, los sistemas de programación de robots tienden a combinar los dos modos básicos (guiado y textual), permitiéndose desarrollar el programa mediante la escritura de las instrucciones, y utilizando la posibilidad de guiado en línea de aquellos momentos que sea necesario.

Requerimientos de un sistema de programación de robots


A pesar de la falta de normalización entre los métodos de programación de robots existentes, las necesidades comunes han originado un cierto paralelismo y afinidad entre casi todos ellos. Esta circunstancia permite establecer una serie de características generales que se manifiestan en los elementos de programación que contienen.
Los requerimientos que se vienen estableciendo tradicionalmente para un sistema de programación de robots son los siguientes:

-Entorno de programación
-Modelado del entorno
-Tipo de datos
-Manejo de entradas/salidas (digital y analógica)
-Control de movimiento
Control de flujo de ejecución de un programa.
Cada sistema de programación de robots da respuesta a estos requerimientos en mayor o menor grado. Así, mientras algunos no contemplan modelo alguno del entorno, otros basan totalmente su modo de funcionamiento en la existencia y mantenimiento de un detallado modelo geométrico.

A continuación se realiza una descripción de estos requerimientos, prestando mayor atención a los que se consideran más frecuentes.

Entorno de programación


Como cualquier lenguaje de programación convencional, es de gran importancia, para conseguir un aumento considerable de la productividad de la programación, contar con un entorno de programación adecuado a las necesidades.

Programar las acciones de un manipulador es complicado en el sentido de que en todo momento existe una interacción con el entorno, tratándose de un proceso continuo de prueba y error. Esta es la principal causa que lleva a la mayoría de los sistemas de programación de robots, sean de tipo interpretado, pudiéndose realizar un seguimiento paso a paso de lo programado en cada momento, se evita así el tedioso ciclo de editar-compilar-ejecutar muy costoso en tiempo.

Es pues importante que un sistema de programación de robots presente una buena capacidad de depuración y de ejecución paso a paso, teniendo especialmente en cuenta la interacción en tiempo real que existe entre los distintos equipos de la célula con el controlador del robot. También es aconsejable la existencia de una buena motorización continua del desarrollo del programa.

Algunos de los sistemas de programación actuales se comportan sobre sistemas operativos multitarea, permitiendo el control simultáneo y sincronizado de varios robots o del robot con otros sistemas (visión, transportes, etc).

No hay comentarios:

Publicar un comentario