Sunteți pe pagina 1din 9

TEMA 7: “LENGUAJES DE PROGRAMACIÓN Y SISTEMAS”

INTRODUCCIÓN

La programación de un robot se puede definir como el proceso mediante el cual se


le indica a éste la secuencia de acciones que deberá llevar a cabo durante la
realización de su tarea. Estas acciones consisten en su mayor parte en moverse a
puntos predefinidos y manipular objetos del entorno. Durante la ejecución de un
programa se interacciona con la memoria del sistema, leyendo y actualizando el
contenido de las variables utilizadas en el programa; con el sistema de control
cinemático y dinámico del robot, encargados de dar la señal de mando a los
accionamientos del robot a partir de las especificaciones del movimiento que se
les proporciona; y con las entradas-salidas del sistema, consiguiéndose así la
sincronización del robot con el resto de las máquinas y elementos que componen
su entorno.

El sistema de programación es, por tanto, la herramienta con que cuenta el


usuario para acceder a las diversas prestaciones del robot, existiendo una relación
directa entre las características y posibilidades del sistema de programación y las
del robot en sí mismo.

LOS TRES NIVELES DE PROGRAMACIÓN DE ROBOTS.

Los métodos modernos se enfocan en la programación de computadoras, y las


cuestiones relacionadas con la programación de robots incluyen todo lo referente
a la programación de computadoras en general; y más.

1.- ENSEÑAR MOSTRANDO

Los primeros robots se programaban mediante un método al que llamaremos


enseñar mostrando, el cual implicaba mover el robot a un punto de destino
deseado y registrar su posición en una memoria que el secuenciador leería
durante la reproducción. Durante la fase de enseñanza, el usuario guiaba al robot
ya sea en forma manual o a través de la interacción con un dispositivo de
enseñanza. Los dispositivos de enseñanza son cajas de botones portátiles que
permiten el control de cada articulación del manipulador o de cada grado de
libertad cartesiano. Algunos controladores de este tipo permiten las pruebas y las
ramificaciones, por lo que pueden introducirse simples programas que involucren
la lógica. Algunos dispositivos de enseñanza tienen pantallas alfanuméricas y se
aproximan en complejidad a las terminales portátiles.
2.- LENGUAJES DE PROGRAMACIÓN DE ROBOTS EXPLÍCITOS

Con la llegada de computadoras baratas y poderosas, la tendencia se ha


orientado cada vez más hacia la programación de robots mediante programas
escritos en lenguajes de programación de computadoras. Generalmente estos
lenguajes tienen características especiales que se aplican a los problemas de la
programación de manipuladores y por ello se les llama lenguajes de programación
de robots (RPL). La mayoría de los sistemas que vienen equipados con un
lenguaje de este tipo han retenido además una interfaz estilo dispositivo de
enseñanza.

Dado que los lenguajes de programación de robots han tomado muchas formas,
los dividiremos en tres categorías:

a) Lenguajes de manipulación especializados. Se han creado desarrollando un


lenguaje completamente nuevo que, aunque se enfoca en áreas específicas de los
robots, podría considerarse un lenguaje general de programación de
computadoras.

b) Biblioteca de robótica para un lenguaje de computación. Estos lenguajes se


han desarrollado a partir de un lenguaje popular de computación (por ejemplo,
Pascal) al que se le agrega una biblioteca de subrutinas específicas para robots.
El usuario escribe un programa en Pascal haciendo uso de llamadas frecuentes al
paquete de subrutinas predefinido para las necesidades específicas del robot.

c) Biblioteca de robótica para un nuevo lenguaje de propósito general. Estos


lenguajes de programación de robots se han desarrollado creando primero un
nuevo lenguaje de propósito general como base de programación y después
suministrando una biblioteca de subrutinas predefinidas, específicas para robots.

3.- LENGUAJES DE PROGRAMACIÓN A NIVEL DE TAREA

El tercer nivel de la metodología de programación de robots está relacionado con


los lenguajes de programación a nivel de tarea. Estos lenguajes permiten al
usuario ordenar directamente las submetas deseadas de la tarea, en vez de
especificar los detalles de cada acción que el robot va a llevar a cabo. En dicho
sistema el usuario puede incluir instrucciones en el programa de aplicación, con un
nivel considerablemente más alto que en un lenguaje de programación de robots
explícito. Un sistema de programación de robots a nivel de tarea debe tener la
habilidad de realizar muchas tareas de planeación automáticamente.
REQUERIMIENTOS DE UN LENGUAJE DE PROGRAMACIÓN DE ROBOTS

Modelado del entorno

Dado un entorno de programación de robots que soporta tipos geométricos, el


robot y las demás máquinas, piezas y dispositivos fijos pueden modelarse si
definimos variables con nombre asociadas con cada objeto.

La extensión en la que se modelan los objetos en el entorno es una de las


decisiones básicas al diseñar un sistema de programación de robots. La mayoría
de los sistemas actuales soporta sólo el estilo que acabamos de describir.

Ciertos sistemas de modelado de entornos permiten la noción de fijaciones entre


objetos con nombre.

Especificación del movimiento

Una función muy básica de un lenguaje de programación de robots es permitir la


descripción de los movimientos que se espera que realice. El usuario interactúa
con los planeadores de rutas y los generadores de estilo mediante instrucciones
de movimiento que permiten especificar puntos vía, el punto de destino y si se va
a utilizar el movimiento interpolado de las articulaciones o en línea recta
cartesiana. Además, el usuario podría tener el control sobre la velocidad o
duración de un movimiento.

Flujo de ejecución

Al igual que en los lenguajes convencionales de programación de computadoras,


un sistema de programación de robots permite al usuario especificar el flujo de la
ejecución; esto es, los conceptos tales como prueba y ramificación, ciclos,
llamadas a subrutinas e incluso interrupciones se encuentran generalmente en los
lenguajes de programación de robots.

Más que en la mayoría de las aplicaciones computacionales, el procesamiento en


paralelo es generalmente importante en aplicaciones de células de trabajo
automatizadas. Otro hecho frecuente es la necesidad de monitorear varios
procesos con algún tipo de sensor. Después, ya sea mediante la interrupción o el
sondeo, el sistema de robot debe ser capaz de responder a ciertos eventos
detectados por los sensores.

Integración de sensores
Una parte extremadamente importante de la programación de robots tiene que ver
con la interacción con sensores. El sistema debe tener, como mínimo, la
capacidad de consultar sensores de tacto y fuerza, y de utilizar la respuesta en
instrucciones "if-then-else" (si-entonces). La habilidad de especificar monitores de
eventos para vigilar las transiciones en dichos sensores en un modo de segundo
plano es también muy útil.

Algunos sensores podrían ser parte de otro equipo en la célula de trabajo; por
ejemplo, algunos controladores de robot pueden utilizar la entrada proveniente de
un sensor unido a una banda transportadora, de manera que el manipulador
pueda rastrear el movimiento de la banda y adquirir objetos de ésta a medida que
se va moviendo.

La interfaz para las capacidades de control de fuerza, se da a través de


instrucciones especiales del lenguaje que permiten al usuario especificar
estrategias de fuerza. Dichas estrategias son, por necesidad, una parte integrada
del sistema de control del manipulador; el lenguaje de programación de robots
simplemente sirve como interfaz para esas capacidades. Para programar robots
que hagan uso del control de fuerza activo se podrían requerir otras características
especiales, tales como la habilidad de mostrar datos de fuerza recolectados
durante un movimiento restringido.

PROBLEMAS INVOLUCRADOS EN LA PROGRAMACIÓN DE ROBOTS

Los avances en años recientes han ayudado, pero aún es difícil programar robots.
La programación de robots comparte todos los problemas de la programación
convencional de computadoras, más ciertas dificultades adicionales ocasionadas
por los efectos del mundo físico.

Comparación entre el modelo del entorno y la realidad externa

Una característica central de un sistema de programación de robots es el modelo


del entorno que se mantiene internamente en la computadora. Aun y cuando este
modelo es considerablemente simple, hay grandes dificultades para asegurar que
concuerde con la realidad física que trata de modelar. Las discrepancias entre el
modelo interno y la realidad externa hacen que los objetos se sujeten mal o no se
sujeten, produzcan colisiones y otros problemas más sutiles.

Al tratar con esos objetos cuyas ubicaciones no se conocen exactamente, es


esencial refinar de alguna forma la información posicional. Esto puede hacerse
algunas veces con sensores (por ejemplo, de visión, de tacto) o utilizando
estrategias de fuerza apropiadas para los movimientos restringidos.
Durante la depuración de los programas del manipulador, es muy útil poder
modificar el programa y después respaldar y probar un procedimiento otra vez.
Para respaldar hay que restaurar el manipulador y los objetos que se están
manipulando a un estado anterior. No obstante, al trabajar con objetos físicos no
siempre es fácil, o incluso posible, deshacer una acción. Algunos ejemplos son las
operaciones de pintura, remachado, perforación o soldadura, que producen una
modificación física de los objetos que se están manipulando. Por lo tanto, podría
requerirse que el usuario obtenga una nueva copia del objeto para reemplazar el
anterior que se ha modificado. Además, es probable que algunas de las
operaciones realizadas justo antes de la que se va a reintentar también necesiten
repetirse para establecer el estado apropiado requerido antes de que pueda
reintentarse con éxito la operación deseada.

Sensibilidad al contexto

Para que este método funcione es esencial que las piezas pequeñas sean
relativamente insensibles a las instrucciones del lenguaje que las precede y que
no haya suposiciones con relación al contexto en el que se ejecutan. Para la
programación de manipuladores éste no es comúnmente el caso: el código que
trabajaba confiablemente al probarse aislado con frecuencia falla cuando se
coloca dentro del contexto de un programa más grande. Estos problemas
generalmente surgen de las dependencias en la configuración del manipulador y la
velocidad de los movimientos.

Debido a una precisión insuficiente del manipulador, es muy probable que un


segmento de programa escrito para realizar una operación en cierta ubicación
necesite ajustarse (es decir, volver a enseñar las posiciones, etcétera) para
hacerlo que funcione en una ubicación distinta. Los cambios de ubicación dentro
de la célula de trabajo producen cambios en la configuración del manipulador para
llegar a las ubicaciones de destino. Dichos intentos de reubicar los movimientos
del manipulador dentro de la célula de trabajo ponen a prueba la precisión de los
comportamientos cinemáticos del manipulador y del sistema de servo, y con
frecuencia surgen problemas. Dicha reubicación podría provocar un cambio en la
configuración cinemática del manipulador; por ejemplo, del hombro izquierdo al
hombro derecho, o del codo hacia arriba al codo hacia abajo. Lo que es más,
estos cambios en la configuración podrían ocasionar grandes movimientos del
brazo durante lo que había sido previamente un movimiento corto y simple.

Es muy probable que la naturaleza de la forma espacial de las trayectorias cambie


a medida que se ubican las rutas en distintas porciones del espacio de trabajo del
manipulador. Esto es especialmente cierto para los métodos de trayectorias en
espacio de articulación, pero el uso de los esquemas de ruta cartesiana también
puede producir problemas cuando hay singularidades cerca.

Al probar el movimiento de un manipulador por primera vez, a menudo es


conveniente hacer que el manipulador se mueva lentamente. Esto da al usuario la
oportunidad de detener el movimiento si parece estar a punto de provocar una
colisión; también le permite inspeccionar el movimiento muy de cerca. Una vez
que el movimiento ha pasado por cierta depuración inicial a una velocidad menor,
es conveniente aumentar las velocidades del movimiento. Al hacer esto algunos
aspectos del movimiento podrían cambiar. Las limitaciones en la mayoría de los
sistemas de control de manipuladores producen errores de servo mayores, los
cuales son de esperarse si se sigue la trayectoria más rápida. Además, en
situaciones de control de fuerza que impliquen un contacto con el entorno, los
cambios de velocidad pueden modificar completamente las estrategias de fuerza
requeridas.

La configuración del manipulador también afecta la delicadeza y precisión de las


fuerzas que pueden aplicarse con él. Ésta es una función de qué tan bien
condicionado está el jacobiano del manipulador en cierta configuración, algo
generalmente difícil de considerar al desarrollar programas para robots.

TIPOS DE LENGUAJES

Clasificación de los lenguajes de programación de robots

Aunque ningún lenguaje de programación hoy día cumple todos los requerimientos
especificados anteriormente, hay varios que resultan útiles, dependiendo de la
tarea específica a que se les destine.

Veamos la división y algunos lenguajes principales. En primer lugar,


estableceremos una clasificación por la sintaxis y complejidad. Aquí se distinguen
tres tipos:

a) Secuenciadores de instrucciones: simplemente almacenan y posteriormente


repiten una secuencia de posiciones y acciones (apertura/cierre de la pinza, etc.)
en un orden más o menos fijo.

Normalmente, estos lenguajes incorporan también órdenes especiales para


retraso (dejar que concluya la ejecución de un movimiento) o para especificación
de las acciones requeridas ante señales sensoriales específicas (errores, etc.) o
ausencia de ellas. La facilidad de "programar un robot de este modo hace común
el uso de secuenciadores en entornos industriales poco flexibles (cadenas de
montaje de automóviles, etc.).
b) Extensiones a lenguajes clásicos: son módulos específicos para el manejo
de sensores y actuadores, más estructuras de datos adaptadas (matrices
homogéneas, etc.) conservando la sintaxis general y control de flujo del lenguaje
escogido. Se pueden basar en BASIC, PASCAL, C, etc. Por las razones
expuestas en el apartado anterior, es necesario que estos lenguajes corran sobre
un S.O. de tiempo real.

c) Lenguajes específicos para robots: fueron diseñados por firmas comerciales


(salvo uno de la Univ. de Stanford) para ser vendidos junto con sus
manipuladores, teniendo en cuenta los sensores y actuadores a que se debían
conectar. Todos ellos incorporan el manejo de las señales de los sensores, y de
acuerdo a sus valores pueden cambiar en tiempo real el flujo del programa.
Además, incorporan descripción y razonamiento en términos geométricos, e
interfaces a sistemas CAD/CAM.

Por otra parte, y respecto al nivel de abstracción que permiten a la hora de


especificar la tarea, podemos clasificar estos lenguajes en:

 Orientados al robot.

 Orientados a la tarea.

ESTRUCTURA DE UNA CELDA FLEXIBLE

La celda o célula flexible está formada por unas pocas máquinas, inclusive una
sola, dotadas de control numérico, con dispositivos para el cambio de
herramientas y piezas, un almacén que garantiza la autonomía hasta por varias
horas y un computador que coordina las labores de mecanizado, almacenamiento
y transporte. Están capacitadas para maquinar total o casi totalmente un cierto tipo
de piezas, almacenarlas e inclusive hacer operaciones de control de calidad.

En las líneas flexibles de fabricación, varias máquinas o celdas flexibles de


manufactura están relacionadas entre sí por un sistema de transporte, incluyendo,
a veces, sistemas de inspección de piezas. Poseen almacenes de piezas y
herramientas totalmente integrados, lo cual permite la entrada al azar de una
cierta variedad de piezas. El control y monitoreo de la manufactura y la producción
lo efectúa un computador.

DETECCIÓN Y CORRECCIÓN DE ERRORES

Otra consecuencia directa de trabajar con el mundo físico es que los objetos
podrían no encontrarse exactamente en donde deberían y por lo tanto, los
movimientos que se realizan con esos objetos podrían fallar. Parte de la
programación de manipuladores implica el tratar de tomar esto en cuenta y hacer
las operaciones de ensamblaje lo más robustas que sea posible pero, aún así, es
probable que haya errores, y un aspecto importante de la programación de
manipuladores es cómo recuperarse de estos errores.

Casi cualquier instrucción de movimiento en el programa del usuario puede fallar,


por una gran variedad de razones. Algunas de las causas más comunes son que
los objetos se desplacen o se resbalen de la mano, que un objeto no se encuentre
en donde debería estar, que se atasque el objeto durante una inserción y que no
se pueda localizar un hoyo.

El primer problema que surge para la recuperación de errores es identificar que


efectivamente haya ocurrido un error. Como los robots generalmente tienen
capacidades de detección y razonamiento bastante limitadas, a menudo la
detección de errores es difícil. Para poder detectar un error, un programa de robot
debe contener cierto tipo de prueba explícita. Esta prueba podría implicar el
comprobar la posición del manipulador para ver que se encuentre en el rango
apropiado; por ejemplo, cuando se realiza una inserción, la falta de cambio de
posición podría indicar un atascamiento, o demasiado cambio podría indicar que
no se pudo localizar el hoyo o que el objeto se resbaló de la mano. Si el sistema
de manipulador cuenta con cierto tipo de capacidades visuales, entonces podría
tomar una foto y revisar la presencia o ausencia de un objeto y, si el objeto está
presente, reportar su ubicación. Otras comprobaciones podrían implicar el uso de
fuerza, como pesar la carga que se lleva para revisar que el objeto aún esté allí y
no se haya caído, o revisar que una fuerza de contacto permanezca dentro de
ciertos límites durante un movimiento.

Todas las instrucciones de movimiento en el programa podrían fallar, por lo que


estas comprobaciones explícitas pueden ser bastante complicadas y pueden
ocupar más espacio que el resto del programa. Es en extremo difícil tratar de lidiar
con todos los posibles errores; generalmente sólo se comprueban las
instrucciones con más probabilidad de fallar; y este proceso requiere de cierta
cantidad de interacción y prueba parcial con el robot durante la etapa de desarrollo
del programa.

Una vez que se ha detectado un error, puede hacerse un intento por recuperarse
del mismo; el manipulador puede hacerlo bajo el control del programa o tal vez el
usuario tenga que intervenir, o podría requerirse cierta combinación de las dos
cosas. En cualquier caso el intento de recuperación podría producir nuevos
errores. Es fácil ver cómo el código para recuperarse de los errores puede
convertirse en la parte principal del programa del manipulador.
El uso del paralelismo en los programas de manipuladores puede complicar aún
más la recuperación después de errores. Cuando varios procesos se ejecutan
concurrentemente y uno de ellos provoca un error, podría afectar otros procesos.
En muchos casos es posible hacer retroceder el proceso que provoca el error,
permitiendo a los otros continuar. Otras veces es necesario reiniciar varios o todos
los procesos en ejecución.

DESCRIPCION DE PAQUETES EXISTENTES

El lenguaje de programación RAPID: desarrollado por la empresa ABB para su


nueva generación de robots, constituye un lenguaje de programación textual de
alto nivel que incluye algunas características importantes, tales 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.

El lenguaje de programación V+: es un lenguaje de programación textual de alto


nivel, desarrollado en 1989 por Adept Technology. Los lenguajes de programación
de alto nivel, y en concreto V+, proporciona una mayor interacción entre el hombre
y el robot.

BIBLIOGRAFÍA

 JOHN J. CRAIG, Robótica, Pearson Educación, 2006. (Capitulo 12).

 GROOVER, Mikell y otros. Robótica industrial, tecnología, programación y


aplicaciones. México, McGraw-Hill, 1994.

 BARRIENTOS, Antonio y otros. Fundamentos de robótica. Madrid,


McGraw-Hill, 1997.

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