Sunteți pe pagina 1din 10

CAPÍTULO 7

LENGUAJE DE PROGRAMACIÓN DE BRAZO ROBÓTICO


7.1 Fundamentos de programación.
Un robot manipulador es bien sabido que se trabaja con la programación en el
que se define un proceso donde indica una secuencia de acciones en el cual se
llevara acabo una tarea. Estas acciones consisten en moverse a puntos
predefinidos y manipular objetos del entorno.
Es importante tener en cuenta la memoria del sistema para ejecutar un
programa, en donde se utilizan variables para el sistema de control cinemático y
dinámico del robot que tienen como objetivo manipular los accionamientos del
robot a partir de especificaciones del movimiento que se le proporciona y las
entradas-salidas del sistema para sincronizar el robot.
La programación es la herramienta con que cuenta el usuario para acceder a las
diversas prestaciones del robot, existiendo una relación directa entre las
características de la programación y del robot.
Programar un robot consiste en indicar paso por paso las diferentes acciones
para mover de manera automática el brazo a un punto o abrir y cerrar la pinza,
etc. La flexibilidad en la aplicación del robot y, por tanto, su utilidad dependerá
en gran medida de las características de su sistema de programación.
7.2 TIPOS DE PROGRAMACIÓN.
Existen diversos métodos para realizar la programación de los robots, algunas
atienden a la potencia del método, mientras que otros se emplean para indicar
la secuencia de acciones a realizar. De acuerdo con este criterio, un robot puede
ser programado mediante el guiado o procedimiento textual.
7.2.1 Programación por guiado
Este tipo de programación requiere de una determinada tarea para ser
desarrollada por el robot, un ejemplo es determinar una trayectoria de manera
manual durante cierto tiempo, mediante configuraciones adoptadas y repetirlo de
forma automática.
Para poder guiarlo por las trayectorias o puntos deseados se utilizan diferentes
soluciones, como pueden ser el guiado básico y guiado extendido.
Guiado básico: Es una secuencia de puntos, que son ejecutados por la unidad
de control donde los interpola para generar dicha trayectoria, un ejemplo de esto,
los robots de pintura donde su unidad de control ejecuta los puntos con una
frecuencia alta en automático.
Guiado extendido: Permite la especificación de datos como la velocidad, el tipo
de trayectoria, la precisión de almacenamiento de puntos, control de flujo del
programa, atención de entradas/salidas binarias, etc. El dispositivo de
enseñanza suele estar constituido por botones, teclas, pulsadores, luces
indicadoras, ejes giratorios o joystick.
Ventajas:
 fáciles de aprender
 requiere de poco espacio de memoria para almacenar información
Vesventajas:
 necesidad de utilizar el robot
 entorno para realizar la programación
 dificultad para realizar modificaciones

7.2.2 Programación textual


Es la indicación de una tarea a realizar por el brazo robótico utilizando un
lenguaje de programación especifico que corresponde a ordenes que son
editadas y después ejecutadas, por lo que se obtiene un texto de programa. Esta
programación textual se clasifica en tres niveles: robot, objeto y tarea.
Ventajas:
 especifica diferentes movimientos, trayectorias
 capacidad de relación con el entorno.
Desventajas.
 requiere de conocimientos técnicos de programación
 experiencia en la realización de estrategias de movimiento basado en la
información sensorial.
Nivel robot
En los lenguajes de este nivel es el programador el encargado de seleccionar las
funciones necesarias y su secuencia para realizar la tarea, se especifican
movimientos como la velocidad, direcciones de aproximación y salida, apertura
y cierre de pinza, entre otros datos que debe realizar el robot. Existen varios
lenguajes de programación, entre ellos se pueden destacar los siguientes:
AL
AML
LM
VAL II
V+
RAPID
Nivel objeto
Es aquella en que sólo se especifica el objetivo final, sin necesidad de dar
información sobre los resultados intermedios. Este nivel se disminuye la
dificultad de programar debido a que se realiza de manera más cómoda porque
se manejan instrucciones en función del objeto a manejar. Necesitan de un
planificador de tareas, donde se consulta una base de datos y poder generar las
instrucciones a nivel robot.
En este nivel se tiene un grado de dificultad para desarrollar los lenguajes, pero
se pueden encontrar los siguientes:
LAMA
AUTOPASS
RAPT
Nivel tarea
Engloba lenguajes de alto nivel en los que el programador especifica las tareas
en términos de relaciones de posición entre las piezas a ensamblar, donde se
especifica una sola sentencia para mover al robot, requieren de modelos
geométricos completos del entorno de trabajo, para que realicen tareas más
complejas.
7.3 REQUERIMIENTOS DE UN SISTEMA DE PROGRAMACIÓN DE ROBOTS.
Tradicionalmente los requerimientos generales para un sistema de programación
de robots son los siguientes:
7.3.1 Entorno de programación
Es de gran importancia, el contar con un entorno de programación adecuado a
las necesidades.
Para programar un manipulador es complicado interactuar con el entorno debido
a procesos continuos de prueba y error. A consecuencia de esto, la mayoría de
los sistemas de programación son de tipo interpretación, pudiéndose realizar un
seguimiento paso a paso de lo programado en cada momento. Eliminando las
caracterizas de editar-compilar-ejecutar generando demasiado tiempo.
Por lo que un sistema de programación debe presentar una buena capacidad de
depuración y de ejecución paso a paso, teniendo 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 de la monitorización continua del desarrollo
del programa, como los sistemas operativos multitarea, permitiendo el control
simultaneo y sincronizado de varios robots o del robot con otros sistemas.
7.3.2 Modelado del entorno
Es la representación que tiene el robot de los objetos con los que interacciona,
limitándose a características geométricas: posición y orientación de los objetos,
y en ocasiones a su forma, dimensiones, peso, etc.
Para definir la posición y orientación de los objetos del modelo, lo más frecuente
es asignar a cada objeto de manera solidaria un sistema de referencia, de
manera que la posición y orientación de este sistema referidos a un sistema
base, normalmente denominado sistema del mundo, definiendo de manera única
las del objeto.
Algunos modelos del entorno permiten establecer relaciones entre objetos. estas
establecen la posible unión física entre los objetos. dos objetos pueden ser
independientes (el movimiento de uno no afecta al otro), tener dependencia de
unión rígida (el movimiento de uno implica el del otro y viceversa) o tener una
dependencia de unión no rígida (el movimiento de uno implica el del otro, pero
no al revés).
7.3.3 Tipos de datos
Cuenta con datos convencionales (enteros, reales, booleanos, etc.), operaciones
de interacción con el entorno, como son, por ejemplo, los que especifican la
posición y orientación de los puntos y objetos a los que debe acceder el robot.
Utilizando coordenadas articulares para posicionar y orientar su extremo como
el objeto en cuestión.
Utilizando coordenadas cartesianas después de haber asociado un sistema de
referencia de coordenadas al objeto, su posición se describe por las
coordenadas cartesianas del origen, mientras que la orientación admite
diferentes tipos de representación:
 Ángulos Euler:
 Cuaternios:
 Matriz noa:

La representación conjunta de posición y orientación del extremo del robot se


consigue agrupando las tres coordenadas de posición con alguno de los métodos
de representación de la orientación. Los diferentes sistemas de programación
existentes emplean un o varias de estas representaciones:

VAL II (Staubli) emplea () ()


AML (IBM) emplea () ()
ARLA (ABB) emplea () ()
RAPID (ABB) emplea () ()
V++ (ADEPT) emplea () ()
AL (STANFORD) emplea () ()

En VAL II, V+ y RAPID también existe la posibilidad de emplear matrices de


transformación.

7.3.4 Manejo de entradas/salidas.


Para el manejo de salidas binarias el robot posee instrucciones de activación o
desactivación de las mismas. En cuanto a las entradas, el robot tiene capacidad
de leerlas y controlar el flujo del programa en función de su valor, como o saltos
condicionales. Algunos sistemas comienzan su ciclo de trabajo cuando le llega
una señal binaria automáticamente. Una utilización especial de las entradas
binarias es la generación de interrupciones.
Una utilización a mayor nivel de la comunicación del robot con su entorno lo
constituye el empleo de comunicaciones de red o conexión punto a punto,
permitiendo generar al robot en un sistema informático general controlando su
funcionamiento desde un computador externo. Un ejemplo de estos sistemas
son RAPID de ABB y VAL II de Staubli.
También se aplica en la integración de sensores para la programación de robots
de muy diversas formas, entre las que se pueden destacar la siguientes:
 Modificar la trayectoria.
 Elegir entre diversas alternativas.
 Obtener la identidad y posición de objetos y sus características.
 Cumplir con restricciones externas.
 Control de movimiento.
 En la programación se debe especificar el movimiento del robot.

Es importante incluir los siguientes parámetros para el control de movimiento:


1. La velocidad: Suele ser frecuente indicarla en la propia instrucción de
movimiento como tanto por ciento de una velocidad base definida aparte,
de modo que pueda alterar la velocidad en el programa
2. La trayectoria: Puede ser de tipo punto a punto, coordinadas o trayectorias
continuas, englobando este último caso a la línea recta, interpolación
circular y otras.
3. El control (cinemático - dinámico) del robot: Recibe las referencias de
posición procedentes del programa, no admitiendo una referencia hasta
que el extremo del robot no alcanza la referencia en vigor con la precisión
indicada.
Se ha de tener en cuenta la posibilidad de que el robot al recorrer la
trayectoria generada tenga que pasar por un punto singular, ya sea
porque los valores de sus ejes no estén definidos de forma biunívoca o
porque alguno de ellos deba alcanzar una velocidad excesiva para
mantener la posición, orientación y velocidad deseadas del extremo.
Algunos sistemas, como el RAPID, permiten especificar qué tipo de
interpolación se debe utilizar de forma general durante la ejecución de una
trayectoria cuando se ha de pasar por estos puntos singulares.
7.3.5 Control de flujo de ejecución del programa.
Se emplean estructuras de bucles (for, repeat, while, etc.). Así como la capacidad
de procesamiento en paralelo, tanto para el control de uno o varios robots bajo
ordenes de un solo programa.

7.4 LENGUAJE DE PROGRAMACIÓN RAPID


El lenguaje RAPID, fue desarrollado en el año 1994 por la empresa ABB,
constituye un lenguaje de programación textual de alto nivel que incluye
características como la utilización de funciones y procedimientos, la posibilidad
de usar rutinas parametrizables, la estructura completamente modular del
programa o la posibilidad de declarar rutinas y datos como locales o globales.
Un programa escrito en RAPID consiste en una serie de instrucciones que
describen el trabajo del robot. cada instrucción tiene asociada una serie de
parámetros que definen de forma completa la acción a realizar. Estos parámetros
específicos a cada instrucción pueden ser valores numéricos, referencias a un
dato, expresiones de datos, llamadas de funciones o cadenas de caracteres.
Los programas se desarrollan en la paleta de programación bajo un entorno de
menús dirigidos. A través del joystick situado en la propia paleta y de los diversos
botones adicionales (tipo de movimiento, ejes externos, entradas/salidas) se
puede realizar entrada de datos por guiado e interaccionar con el entorno en
cualquier momento. Los programas también pueden ser escritos desde un PC
con un editor de texto convencional.
Los programas desarrollados en RAPID se denominan tareas e incluyen el
programa en si junto con varios módulos de sistema, que integran rutinas y datos
de tipo general.
7.4.1 Características de lenguaje de programación RAPID.
Para los módulos existen tres tipos de rutinas o subprogramas posibles:
 Procedimiento: Rutina que no devuelve ningún valor y se utiliza como una
instrucción.
 Función: Rutina que devuelve un dato de tipo específico y que se utiliza
como una expresión.
 Rutina TRAP: Son rutinas que se asocian a interrupciones y se ejecutan
cuando estas se activan.
Los datos a manejar pueden ser dos tipos:
 Tipo de dato atómico: No se definen en función de otro tipo y no se puede
dividir en diferentes componentes.
 Tipo de dato registro: Está compuesto por una serie ordenada de
componentes con sus respectivos nombres. Los componentes pueden ser
a su vez de tipo atómico o de tipo registro.

Estos datos, que se pueden definir como globales o locales tanto en módulos
como en subrutinas, pueden ser definidos como:
Constantes: (CONS) representan datos de un valor fijo a los que no se puede
reasignar un nuevo valor.
Variables: (VAR) son datos a los que se les puede asignar un nuevo valor
durante la ejecución del programa.
Persistentes: (PERS) son variables en las que cada vez que se cambia su valor
durante la ejecución del programa, también se cambia el valor de su
inicialización.
7.4.2 Tipos de datos con los que se trabaja son:
 Numérico: num.
 Lógico: bool.
 Cadena: string.
7.4.3 Estructuras de lenguaje de programación.
Es importante destacar la existencia de una serie de estructuras predefinidas de
datos con distintos campos para la utilización por parte del usuario, como puede
ser:
Confdata
Descripción: estructura para especificar la configuración del robot.
Campos: cf1:cuadrante del eje 1
Ejemplo: VAR confdata conf1:=[1,-1,0]
Loaddata
Descripción: Describe la carga colocada en la muñeca del robot.
Campos:
mass: Peso de la carga en Kg
cog: Orientación de gravedad de la carga.
aom: Orientación de los ejes de inercia en el centro de gravedad expresada como
cuaternios.
Ejemplo: PERS loaddata pieza=[5,[50,0,50],[1,0,0,0],0,0,0];
Tooldata.
descripción: Estructura para especificar las características de una herramienta.
campos:
robhold: Define si el robot tiene la herramienta o no.
tframe: Sistema de coordenadas de la herramienta (posición y orientación de la
herramienta).
tload: Dato tipo loaddata.
Ejemplo: PERS tooldata pinza:=[TRUE,[[97,0,220],[0,924,0,0,383,0]][5,[-
23,0,75],[1,0,0,0],0,0,0]]
Robtarget
Descripción: Se utiliza para definir la localización del robot y de los ejes externos.
Campos:
trans: Desplazamiento en x, y, z del sistema de coordenadas.
rot: Rotación del sistema de coordenadas como cuaternios.
robconf: Configuración del robot (cf1, cf4, cf6 y cfx).
extax: Posición de los ejes externos.
Ejemplo: VAR robtarjet posicion:= [
[600,500,225],[1,0,0,0],[1,1,0,0],[11,12,9E9,9E9,9E9,9E9]];
Motsetdata.
Descripción: Se utiliza para la definición de algunos parámetros de movimiento
que afecta a las instrucciones de posicionamiento del programa.
Campos:
Vel.oride: Velocidad como porcentaje del programa
vel.max: Velocidad máxima en mm/s
sing.wrist: Desviación de la orientación de la herramienta para evitar singularidad
de la muñeca.
sing.arm: Desviación de la orientación de la herramienta para evitar singularidad
en el brazo.
El sistema de programación RAPID tiene una gran variedad de instrucciones
para controlar el flujo de ejecución del programa, destacándose: las llamadas de
rutinas con distintos parámetros, instrucciones de repetición tipo FOR, tipo IF,
tipo WHILE. Además de contar con operaciones aritméticas (asignación, +, *, /)
que se pueden asociar números para vectores o matrices, con funciones como
son: Add, Clear, Incr, Decr, Abs y operadores booleanos para el tratamiento de
variables tipo bool.

7.5 Parámetros generales de movimiento del robot:

AccSet: Máxima aceleración permitida.


SingArea: Método de interpolación.
GripLoad: Peso de la pieza a manipular.
VelSet: Velocidad máxima y sobre velocidad.
Intrucciones de movimiento generales:
MoveC: Mover el TCP de manera que este describa un circulo.
MoveJ: Mover el robot con trayectoria articular (isócrona o coordinada en
articulares).
MoveL: Mover el TCP del robot describiendo una línea recta.
Variables de tipo general predefinido:
MoveJ [\Conc]: Ejecución concurrente. Se ejecutan las siguientes instrucciones
a medida que el robot se mueve.
ToPoint: Punto destino del robot (tipo de dato: robtarget). Si se graba
directamente por guiado aparecerá un asterisco.
Speed: velocidad que afecta al movimiento.
[\V]: Velocidad específica del TCP.
[\T]: Tiempo en segundos que debe tardar en realizar el movimento.
Zone: Zona del movimiento para que se empiece a ejecutar la siguiente
instruccion.
[\Z]: Presicion del TCP.
Tool: la herramienta en uso.
[\WObj]: Objeto de trabajo con el que el movimiento está relacionado.
Los movimientos se programan a base de posiciones definidas, es decir, se le
dice al robot que se mueva desde donde encuentra a una posición determinada.
El sistema permite manipular señales de entrada/salida de diversas maneras. Se
definen los nombres de las señales en los parámetros del sistema y a través de
una llamada a la función correspondiente se puede leer su valor (DInput) o
modificarlo (SetDo).
Se permite también la comunicación con la paleta de control, tanto para mostrar
mensajes en pantalla (TPWrite), como para leer la información que se introduzca
a través de ella (TPRedStr). Existe la posibilidad de que el programador controle
las acciones a realizar cuando en una determinada subrutina aparece un error
no previsto.

S-ar putea să vă placă și