Está en la página 1de 9

UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS

CARRERA INGENIERÌA DE SISTEMAS


MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

Tema 3
PROGRAMACION DE ROBOTS Y SENSORES

Un robot industrial es básicamente un manipulador multifuncional reprogramable, lo cual permite


su adaptación de manera rápida y económica a diferentes aplicaciones.
La programación de robots es sustancialmente diferente a la de ordenadores aislados, aun cuando
un programa escrito en un lenguaje para robots semeje a cualquier otro programa convencional. El
hecho de estar controlando sistemas reales añade complejidad debido a un cierto grado de
impredictibilidad que deberemos asumir y manejar.
Por supuesto, cualquiera de las tareas de un robot podría, en principio, programarse en cualquier
lenguaje que pudiese acceder al hardware, pero programar una tarea normal en términos de estas
tareas simples sería terriblemente complejo.
Veamos un Ejemplo: algo aparentemente simple, como pintar al spray un coche. Habría que: detallar
todos los puntos por los que se debe pasar en función del tiempo, calcular su cinemática inversa,
especificar las posiciones, velocidades y aceleraciones de cada articulación como función del tiempo,
y programar los parámetros y lazos de realimentación del sistema de control.
Además, atender al mismo tiempo a las señales de los sensores de cada articulación y procesarlas,
más las posibles señales de interrupción provocadas por sensores externos, si los hay.
Son necesarios lenguajes para especificar las tareas en términos accesibles a los humanos.
Estos lenguajes serán usados para dos fines:
– Definir la tarea que el robot tiene que realizar.
– Controlar al robot mientras la realiza.
Además hay que tener en cuenta que los programas de robot deben atender a señales sensoriales que
se producen en instantes impredesibles y por tanto deben estar preparados para interrumpirse en
cualquier momento.
REQUERIMIENTOS DE LOS LENGUAJES DE PROGRAMACIÓN DE ROBOTS
Veamos ahora en detalle qué consideraciones deberán tenerse en cuenta al diseñar un lenguaje (o
modificar uno existente) para programar robots o sistemas robotizados en general.
 El lenguaje deberá incorporar estructuras de datos apropiadas para manejar posiciones,
orientaciones, y transformaciones espaciales. En particular, las matrices de transformación
homogénea deberán estar presentes, así como las operaciones de rotación y traslación sobre
ellas, equivalentes al cambio de sistema de referencia.
Por otra parte deberán Poder especificarse de modo simple órdenes de movimiento,
preferentemente en el espacio cartesiano, y con posibilidad de elegir la forma de la
trayectoria del punto terminal entre la posición actual y la deseada. Esto exige el
conocimiento de la cinemática inversa, y por tanto, si el lenguaje debe adaptarse a varios

1
UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS
CARRERA INGENIERÌA DE SISTEMAS
MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

manipuladores, también deberá haber formas de especificar la cinemática de un manipulador


cualquiera.
Finalmente Se deberá conocer la posición actual en todo momento, para continuar desde ella
una orden de movimiento anormalmente interrumpida.
 El lenguaje Deberá permitir alguna forma de paralelismo, puesto que al menos dos niveles
distintos de él se dan en todo robot:
o el control simultáneo de todas sus articulaciones, y el funcionamiento concurrente
quizá con otros brazos, y siempre con sus propios sensores externos que pueden
mandar señales en cualquier momento.
Las formas de implantar este paralelismo son:
o o bien con Varios elementos de computación (en las articulaciones, donde suele haber
un microcontrolador por cada dos o tres de ellas).
o Bien Con software que simule el paralelismo mediante la compartición del tiempo del
único procesador. este software es un sistema operativo multitarea, o un lenguaje que
permita concurrencia.
 Si varios procesos deben funcionar simultáneamente, el lenguaje deberá permitir la
comunicación entre ellos; las tres formas más comunes para esto son:
o el uso de memoria compartida
o la llamada remota a procedimientos
o el paso de mensajes
Cada uno de éstos presenta ventajas e inconvenientes.
 Al actuar el robot en el mundo real, la activación de mandatos para realizar acciones, e
incluso la secuencia en que éstos se ejecuten, depende de que determinados eventos reales
hayan sucedido ya, o no (o nunca lleguen a ocurrir).
Por ello, es necesario que el lenguaje provea mecanismos de sincronización de eventos, que
detengan o alteren la ejecución normal en tanto ciertos hechos no sucedan (por ejemplo, la
activación de un sensor).
Además, otras acciones deben ser ejecutadas en respuesta a señales de error (p.ej., un sensor
de choque que se activa). Por ello, se suelen sincronizar las acciones para atender a cuatro
tipos de eventos:
o activación (iniciar la acción al recibir cierta señal)
o terminación (cese de la acción ante la señal)
o error (inicio de acción de seguridad o recuperación ante señal de error)
o anulación (cese de la acción al NO recibir señal del terminación después de un tiempo
prudencial).
 Determinadas condiciones (sobre todo, sobre los valores de los sensores) deben ser
comprobadas constántemente (o al menos, periódicamente).
Esto exige que haya mecanismos de comprobación de eventos, que pueden ser procesos que
corren como un bucle innito que monitoriza, o interrupciones hardware.
Asociado a esto deberá haber un mecanismo de prioridades, para decidir qué se continúa
monitorizando en caso de activación simultánea de varios eventos.
 El lenguaje Deberá proveer estructuras y acceso a variables sensoriales, es decir, que
contienen valores de las señales recogidas por los sensores, y que, a diferencia de las
variables convencionales, no se inicializan explicitamente en el programa, y su alcance
es siempre global.

2
UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS
CARRERA INGENIERÌA DE SISTEMAS
MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

Se puede dar una actualización contínua de algunas o todas estas variables, o bien a
intervalos discretos de tiempo.
Además, en el caso de que varios procesos puedan actualizar la misma variable, deberán
considerarse prioridades entre ellos(generalmente, todos ellos relacionados con los
sensores).
 Deberán estar presentes mecanismos para especificar las acciones de inicialización y
terminación. Típicamente, al comenzar un programa de robot puede ser necesario el
calibrado del mismo y su posicionamiento en un lugar concreto, así como un auto-test del
hardware, si es posible. Del mismo modo, Al acabar también se puede llevar al robot a algún
lugar conocido, y luego se suele anular la ganancia de todos los amplificadores de los
motores, para evitar el movimiento accidental.

METODOS DE PROGRAMACION
Programar un robot consiste en indicar paso por paso las diferentes acciones (moverse a un punto,
abrir o cerrar la pinza, etc.) que éste deberá realizar durante su funcionamiento.

Programación por Guiado Pasivo


Si los actuadores del robot están desconectados y el programador aporta en forma directa la energía
para mover el robot, se habla de un guiado pasivo. A su vez, puede ser de dos tipos:
 Guiado Pasivo Directo
En este caso, el programador puede tomar el extremo del robot y llevarlo hasta los puntos
deseados a través de las trayectorias más adecuadas. La unidad de control del robot registra
de manera automática la señal de los sensores de posición de las articulaciones en todos los
puntos recorridos. Un ejemplo es el caso de los robots de pintura de la firma Gaiotto, los
cuales fueron programados con este procedimiento.
 Guiado Pasivo por Maniquí
La dificultad física de mover toda la estructura del robot se resuelve a través de este
procedimiento. En este caso se dispone de un doble del robot, mientras que éste permanece
fuera de línea. El doble posee una configuración idéntica que el robot real, pero es mucho
más ligero y fácil de mover. La programación se realiza llevando de la mano a este doble,
mientras que la unidad de control muestrea y almacena con cierta frecuencia los valores que
toman los sensores de posición de las articulaciones, para su posterior repetición por el

3
UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS
CARRERA INGENIERÌA DE SISTEMAS
MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

robot. Un ejemplo es el caso de los robots de pintura fabricados por Nordson, los cuales son
programados utilizando este procedimiento.

Atendiendo a la potencia del sistema:


Programación por Guiado Activo
Esta posibilidad permite emplear el propio sistema de accionamiento del robot, controlado desde
una botonera o bastón de mando (conocido como joystick) para que sea éste el que mueva sus
articulaciones. Ejemplos de este tipo se encuentran en los robots de ABB (ARLA) o en los Cincinnati
Milacron (T3). Atendiendo a la potencia del sistema, se habla de guiado básico y guiado extendido.
 Guiado Básico
El robot es guiado por los puntos por los cuales se desea 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. Muchas veces 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 que se programaron. Un ejemplo de este tipo de programación es la
utilizada en casi todos lo robots de pintura, donde 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 quiere alcanzar los puntos, control del
flujo del programa, atención a entradas/salidas binarias, etc. En este caso, el método guiado
de utilizado es el de la botonera o joystick. El guiado extendido aumenta la potencia del
sistema de programación.

Los métodos por guiado son muy útiles y presentan ventajas, como que son fáciles de
aprender y requieren de un espacio de memoria relativamente pequeño para almacenar la
información. Pueden ser programados por operadores familiarizados con la aplicación, pero

4
UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS
CARRERA INGENIERÌA DE SISTEMAS
MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

sin ser programadores informáticos. También es relativamente fácil programar una


trayectoria en una situación geométrica compleja con muchos obstáculos.

PROGRAMACIÓN TEXTUAL
Este método de programación permite indicar la tarea al robot a través de un lenguaje de
programación específico Un programa se entiende como una serie de órdenes que son editadas y
posteriormente ejecutadas, por lo tanto, existe un texto para el programa.
Nivel robot
Es necesario especificar cada uno de los movimientos que ha de realizar el robot, así como la
velocidad, direcciones de aproximación y salida, apertura y cierre de la pinza, etc.
Será necesario descomponer la tarea global en varias subtareas.
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 específica qué es lo que debe hacer el robot
en lugar de cómo debe 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 del flujo de ejecución del programa.

5
UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS
CARRERA INGENIERÌA DE SISTEMAS
MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

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.

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).

Modelado del entorno


El modelo del entorno se define como la representación que tiene el robot de los objetos con los que
interacciona, es decir este modelo especifica características geométricas como posición y
orientación de los objetos y las dimensiones de los mismos.
Para definir las características denotadas de los objetos normalmente el sistema asigna a cada
objeto una posición y orientación medida desde cierto sistema base, o referencial, frecuentemente
conocido como sistema del mundo, de esta manera el sistema puede definir al objeto de manera
única.
Relación entre diversos elementos de un entorno de programación:
Modelos de entorno actuales facilitan la programación del robot en lo que refiere a los objetos
involucrados en su actuar, este modelo conocido como relacional, permite establecer relaciones
entre objetos. Estas relaciones se subdividen conceptualmente dependiendo de la unión física entre
los mencionados objetos.

6
UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS
CARRERA INGENIERÌA DE SISTEMAS
MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

 Objetos independientes.
El movimiento de uno no afecta al otro.
 Dependencia de unión rígida.
El movimiento de uno implica al otro y viceversa.
 Dependencia de unión no rígida.
El movimiento de uno implica al otro pero al revés.
El modelo relacional, una vez programado se actualiza automáticamente durante la ejecución del
programa, mediante una estructura que correlacione los diferentes objetos del sistema en general,
simplificando así la tarea del programador.

Tipos de datos
Como todo sistema de programación, aquellos destinados al control de robots deben contar con
datos convencionales de programación, tipos de datos como enteros, reales, boléanos, etc.
Son necesarios para una programación estructurada y normalmente utilizados como base de
control para sentencias que involucren variables, las mismas que definirán funcionalidades
del robot con su entorno o de manera específica una trayectoria o acción del robot.

7
UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS
CARRERA INGENIERÌA DE SISTEMAS
MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

Manejo de entradas y salidas


Como norma general al considerar un proceso industrializado completo, los robots deben tener
la capacidad de interrelacionarse con su entorno, otras máquinas o elementos del sistema,
por lo cual sistemas de comunicación adicionales son fundamentales para la integración y
sincronización en los procesos industriales. Considerando el nivel más sencillo de comunicación
mediante señales binarias de entrada y salida, el robot puede decidir comenzar una determinada
acción o indicar a un dispositivo externo que comience con la suya.
El control de las señales binarias tanto de ingreso como de salida son manipuladas por el robot por
medio de instrucciones de activación o desactivación de las mismas. En cuanto a las señales de
ingreso el robot tiene la capacidad de leerlas y manipular el funcionamiento del programa en función
de ellas, en la programación las señales pueden indicar interrupciones, saltos, condiciones, o incluso
comenzar un proceso o ciclo de trabajo automáticamente cuando el controlador del robot recibe
una señal determinada. Cabe recalcar que una interrupción debería poder monitorizar de
manera automática la condición y aun en movimiento el robot deberá realizar lo citado por
la interrupción automáticamente.
Control de movimiento de un robot
Un método de programación de robots debe incluir la posibilidad de especificar el movimiento del
robot. Además del punto de destino, puede ser necesario especificar el tipo de trayectoria espacial
que debe ser realizada, la velocidad media de recorrido o la precisión con que se debe alcanzar el
punto de destino. En algunos casos es necesario indicar si el movimiento se debe realizar en
cualquier caso o si debe estar condicionado a algún tipo de circunstancia, por ejemplo alguna
medida proporcionada por un sensor.
Las trayectorias de un robot pueden ser punto a punto, coordinadas o trayectoria continua, este
último caso incluye la línea recta, interpolación circular y otras.
En relación a la especificación de la velocidad, ésta suele ser indicada en la propia instrucción de
movimiento como tanto por ciento de una velocidad base definida aparte, de esta manera resulta
fácil alterar la velocidad de todo el programa o de una parte de él sustituyendo una sola instrucción.

8
UNIVERSIDAD AUTÒNOMA TOMÀS FRÌAS
CARRERA INGENIERÌA DE SISTEMAS
MATERIA ROBOTICA – OPT 005 Ing. Gustavo A. Puita Choque

En muchas ocasiones, el movimiento del robot en un entorno con obstáculos obliga a la utilización
de una trayectoria de línea recta, para asegurar que el robot no colisione con ellos. Sin embargo,
muchos sistemas de programación disponen de los denominados puntos de paso o vía points, para
resolver este tipo de situaciones.
El control del robot, recibe las referencias de posición procedentes del programa, no admitiendo una
nueva referencia hasta que el robot no alcanza la referencia en vigor con la precisión indicada. De
esta manera, si la precisión se define como baja, el extremo del robot se encaminará hacia la
siguiente configuración sin haber llegado a la anterior y sin tener que disminuir apenas su velocidad.
El resultado final es que el movimiento gana en continuidad y velocidad a costa de perder una
precisión innecesaria en esos puntos de paso.
La consideración de las señales captadas por los sensores en la especificación de los movimientos
del robot, puede hacerse a varios niveles. La primera posibilidad responde a la interrupción del
movimiento del robot por verificarse algún tipo de condición externa programada, ésto se denomina
movimiento protegido o monitorizado. La segunda alternativa, implica la modificación del
movimiento, en cuanto a la situación de destino o la velocidad, según la información captada del
entorno, de esta manera el movimiento del extremo del robot queda alterado, adaptándose a las
necesidades de un entorno cambiante o parcialmente indeterminado, estos movimientos se conocen
como acomodaticios.
Control de flujo de ejecución del programa
Al igual que en cualquier lenguaje de programación de propósito general, un lenguaje de
programación de robots permite al programador especificar de alguna manera un flujo de ejecución
de operaciones. Se emplean para ello las estructuras habituales de bucles (for, repeat, while, etc).
También es importante la capacidad de procesamiento en paralelo, tanto para el control de varios
robots trabajando conjuntamente bajo las órdenes de un solo programa, como para el control de un
único robot en una celda de trabajo cuyos equipos se encuentran igualmente bajo el control del
programa del robot.
Es importante para la mayoría de las aplicaciones tener un control de interrupciones mediante las
cuales distintos equipos en funcionamiento puedan interaccionar con el robot. Se debe poder fijar la
prioridad en el tratamiento de las mismas, así como activarlas y desactivarlas durante la ejecución
de diversas fases del programa.

También podría gustarte