Estudio sobre los lenguajes de programación para la robótica (página 2)
Enviado por mileidys.gonzalez
3. Lenguajes de programación
A continuación se realiza una descripción de los lenguajes de programación más usados en la robótica. Gestual Punto A Punto Se aplican con el robot "in situ", recordando a las normas de funcionamiento de un magnetófono doméstico, ya que disponen de unas instrucciones similares: PLAY (reproducir), RECORD (grabar), FF (adelantar), FR (atrasar), PAUSE, STOP, etc. Además, puede disponer de instrucciones auxiliares, como INSERT (insertar un punto o una operación de trabajo) y DELETE (borrar). Este manipulador en línea funciona como un digitalizador de posiciones. Los lenguajes más conocidos en programación gestual punto a punto son el FUNKY, creado por IBM para uno de sus robots, y el T3, original de CINCINNATI MILACROM para su robot T3. Los movimientos pueden tener lugar en sistemas de coordenadas cartesianas, cilíndricas o de unión, siendo posible insertar y borrar las instrucciones que se desee. Es posible, también, implementar funciones relacionadas con sensores externos, así como revisar el programa paso a paso, hacia delante y hacia atrás.En el lenguaje FUNKY se usa un mando del tipo "joystick", que dispone de un comando especial para centrar a la pinza sobre el objeto para el control de los movimientos, mientras que el T3 dispone de un dispositivo de enseñanza ("teach pendant").
El procesador usado en T3 es el AMD 2900 ("bit slice"), mientras que en el FUNKY está constituido por el IBM SYSTEM-7. A nivel de movimientos elementales. Los movimientos de punto a punto también se expresan en forma de lenguaje:
- ANORAD
- EMILY
- RCL
- RPL
- SIGLA
- VAL
- MAL
Todos ellos mantienen el énfasis en los movimientos primitivos, ya sea en coordenadas articulares, o cartesianas. En comparación, tienen, como ventajas destacables, los saltos condicionales y a subrutina, además de un aumento de las operaciones con sensores, aunque siguen manteniendo pocas posibilidades de programación "off-line". Estos lenguajes son, por lo general, del tipo intérprete, con excepción del RPL, que tiene un compilador. La mayoría dispone de comandos de tratamiento a sensores básicos: tacto, fuerza, movimiento, proximidad y presencia. El RPL dispone de un sistema complejo de visión, capaz de seleccionar una pintura y reconocer objetos presentes en su base de datos.
Los lenguajes EMILY y SIGLA son transportables y admiten el proceso en paralelo simple. Otros datos interesantes de este grupo de lenguajes son los siguientes:
ANORAD Se trata de una transformación de un lenguaje de control numérico de la casa ANORAD CORPORATION, utilizado para robot ANOMATIC. Utiliza, como procesador, al microprocesador 68000 de Motorola de 16/32 bits.
VAL Fue diseñado por UNIMATION INC para sus robots UNIMATE y PUMA. (FIG. 1) Emplea, como CPU, un LSI-II, que se comunica con procesadores individuales que regulan el servocontrol de cada articulación. Las instrucciones, en idioma inglés, son sencillas e intuitivas, como se puede apreciar por el programa siguiente: LISPT PROGRAM PICKUP 1. APRO PART, 25.0 2. MOVES PART 3. CLOSE, 0.0.0 4. APRO PART, -50.0 5. APRO DROP, 100.0 6. MOVES DROP 7. OPEN, 0.0.0 8. APRO DROP, -100.0 END
RPL Dotado con un LSI-II como procesador central, y aplicado a los robots PUMA, ha sido diseñado por SRI INTERNATIONAL.
EMILY Es un lenguaje creado por IBM para el control de uno de sus robots. Usa el procesador IBM 370/145 SYSTEM 7 y está escrito en Ensamblador. SIGLA Desarrollado por OLIVETTI para su robot SUPER SIGMA, emplea un mini-ordenador con 8 K de memoria. Escrito en Ensamblador, es del tipo intérprete.
MAL Se ha creado en el Politécnico de Milán para el robot SIGMA, con un Mini-multiprocesador. Es un lenguaje del tipo intérprete, escrito en FORTRAN.
RCL Aplicado al robot PACS y desarrollado por RPI, emplea, como CPU, un PDP 11/03. Es del tipo intérprete y está escrito en Ensamblador.
Estructurados De Programación Explícita Teniendo en cuenta las importantísimas características que presenta este tipo de programación, merecen destacarse los siguientes lenguajes:
- AL
- HELP
- MAPLE
- PAL
- MCL
- MAL EXTENDIDO
Con excepción de HELP, todos los lenguajes de este grupo están provistos de estructuras de datos del tipo complejo. Así, el AL utiliza vectores, posiciones y transformaciones; el PAL usa, fundamentalmente, transformaciones y el MAPLE permite la definición de puntos, líneas, planos y posiciones. Sólo el PAL, y el HELP carecen de capacidad de adaptación sensorial. Los lenguajes AL, MAPLE y MCL, tienen comandos para el control de la sensibilidad del tacto de los dedos (fuerza, movimiento, proximidad, etc.). Además, el MCL posee comandos de visión para identificar e inspeccionar objetos. A continuación, se exponen las características más representativas de los lenguajes dedicados a la programación estructurada.
AL Trata de proporcionar definiciones acerca de los movimientos relacionados con los elementos sobre los que el brazo trabaja. Fue diseñado por el laboratorio de Inteligencia Artificial de la Universidad de Stanford, con estructuras de bloques y de control similares al ALGOL, lenguaje en el que se escribió. Está dedicado al manipulador de Stanford, utilizando como procesadores centrales, a un PDP 11/45 y un PDP KL-10.
HELP Creado por GENERAL ELECTRIC para su robot ALLEGRO y escrito en PASCAL/FORTRAN, permite el movimiento simultáneo de varios brazos. Dispone, asimismo, de un conjunto especial de subrutinas para la ejecución de cualquier tarea. Utilizando como CPU, a un PDP 11.
MAPLE Escrito, como intérprete, en lenguaje PL-1, por IBM para el robot de la misma empresa, tiene capacidad para soportar informaciones de sensores externos. Utiliza, como CPU a un IBM 370/145 SYSTEM 7.
PAL Desarrollado por la Universidad de Purdure para el manipulador de Stanford, es un intérprete escrito en FORTRAN y Ensamblador, capaz de aceptar sensores de fuerza y de visión. Cada una de sus instrucciones, para mover el brazo del robot en coordenadas cartesianas, es procesada para que satisfaga la ecuación del procesamiento. Como CPU, usan un PDP 11/70.
MCL Lo creó la compañía MC DONALL DOUGLAS, como ampliación de su lenguaje de control numérico APT. Es un lenguaje compilable que se puede considerar apto para la programación de robots "off-line".
MAL EXTENDIDO Procede del Politécnico de Milán, al igual que el MAL, al que incorpora elementos de programación estructurada que lo potencian notablemente. Se aplica, también, al robot SIGMA.
Especificativa a nivel objeto. En este grupo se encuentran tres lenguajes interesantes:
- RAPT
- AUTOPASS
- LAMA
RAPT Su filosofía se basa en definir una serie de planos, cilindros y esferas, que dan lugar a otros cuerpos derivados. Para modelar a un cuerpo, se confecciona una biblioteca con sus rasgos más representativos. Seguidamente, se define los movimientos que ligan a los cuerpos a ensamblar (alinear planos, encajar cilindros, etc.). Así, si se desea definir un cuerpo C1, se comienza definiendo sus puntos más importantes, por ejemplo: P1 = < x, 0, 0 > P2 = < 0, y, 0 > P3 = < x/2, y, 0 > P4 = < 0, 0, z >
Si, en el cuerpo, existen círculos de interés, se especifican seguidamente: C1 = CIRCLE/P2, R; C2 = CIRCLE/P4, R;
A continuación, se determinan sus aristas: L1 = L/P1, P2; L2 = L/P3, P4; Si, análogamente al cuerpo C1, se define otro, como el C2, una acción entre ambos podría consistir en colocar la cara inferior de C1 alineada con la superior de C2. Esto se escribiría. AGAINST / BOT / OF C1, TOP / OF C2; El lenguaje RAPT fue creado en la Universidad de Edimburgo, departamento de Inteligencia Artificial; está orientado, en especial, al ensamblaje de piezas. Destinado al robot FREDY, utiliza, como procesador central, a un PDP 10. Es un intérprete y está escrito en lenguaje APT.
AUTOPASS Creado por IBM para el ensamblaje de piezas; utiliza instrucciones, muy comunes, en el idioma inglés. Precisa de un ordenador de varios Megabytes de capacidad de memoria y, además de indicar, como el RAPT, puntos específicos, prevé, también, colisiones y genera acciones a partir de las situaciones reales. Un pequeño ejemplo, que puede proporcionar una idea de la facilidad de relacionar objetos, es el programa siguiente, que coloca la parte inferior del cuerpo C1 alineada con la parte superior del cuerpo C2. Asimismo, alinea los orificios A1 y A2 de C1, con los correspondientes de C2. PLACE C1 SUCH THAT C1 BOT CONTACTS C2TOP AND B1 A1 IS ALIGNED WITH C2A1 AND B1 A2 IS ALIGNED WITH C2A2 El AUTOPASS realiza todos sus cálculos sobre una base de datos, que define a los objetos como poliedros de un máximo de 20,000 caras. Está escrito en PL/1 y es intérprete y compilable.
LAMA Procede del laboratorio de Inteligencia Artificial del MIT, para el robot SILVER, orientándose hacia el ajuste de conjuntos mecánicos. Aporta más inteligencia que el AUTOPASS y permite una buena adaptación al entorno. La operatividad del LAMA se basa en tres funciones principales:
- Creación de la función de trabajo. Operación inteligente.
- Generación de la función de manipulación.
- Interpretación y desarrollo, de una forma interactiva, de una estrategia de realimentación para la adaptación al entorno de trabajo.
En función de los objetivos. La filosofía de estos lenguajes consiste en definir la situación final del producto a fabricar, a partir de la cual se generan los planes de acción tendentes a conseguirla, obteniéndose, finalmente, el programa de trabajo. Estos lenguajes, de tipo natural, suponiendo una potenciación extraordinaria de la Inteligencia Artificial, para descargar al usuario de las labores de programación. Prevén, incluso, la comunicación hombre-máquina a través de la voz. Los lenguajes más conocidos de este grupo son:
- STRIPS
- HILAIRE
STRIPS Fue diseñado, en la Universidad de Stanford, para el robot móvil SHAKEY. Se basa en un modelo del universo ligado a un conjunto de planteamientos aritmético-lógicos que se encargan de obtener las subrutinas que conforman el programa final. Es intérprete y compilable, utilizando, como procesadores, a un PDP-10 y un PDP-15.
HILAIRE Procedente del laboratorio de Automática Y Análisis de Sistemas (LAAS) de Toulouse, está escrito en lenguaje LISP. Es uno de los lenguajes naturales más interesantes, por sus posibilidades de ampliación e investigación.
Es mucho lo que se ha hecho en el área de la programación para la robótica; sin embargo aún no existe un lenguaje ideal para la programación de los robots. Son muchos los lenguajes creados hasta ahora, en parte las causas principales de esta amplia gama de lenguajes inadecuados o poco efectivos son: Cada lenguaje se ha diseñado tomando como base un robot en específico del mercado, lo que anula su universalidad y la posibilidad de emplearlo en modelos diferentes. Los lenguajes, en muchos casos, se dirigen hacia aplicaciones diferentes, lo que limita grandemente su utilización para la programación de otras tareas. Hoy en el mundo existe un interés general para lograr un sistema de percepción del entorno cada vez más avanzado. Para esto se hace necesaria la ampliación de la Inteligencia Artificial, que interviene en la valoración del espacio exterior o entorno y determina los planes de acción alternativos o lo que es lo mismo la respuesta a la interacción con ese medio.
Características de un lenguaje ideal para la robótica Las seis características básicas de un lenguaje ideal, expuestas por Pratt, son: 1. Claridad y sencillez. 2. Claridad de la estructura del programa. 3. Sencillez de aplicación. 4. Facilidad de ampliación. 5. Facilidad de corrección y mantenimiento. 6. Eficacia. Estas características son insuficientes para la creación de un lenguaje "universal" de programación en la robótica, por lo que es preciso añadir las siguientes: – Transportabilidad sobre cualquier equipo mecánico o informático. – Adaptabilidad a sensores (tacto, visión, etc.). – Posibilidad de descripción de todo tipo de herramientas acoplables al manipulador. – Interacción con otros sistemas. En el aspecto de claridad y sencillez, la programación gestual es la más eficaz, pero impide la confección de programas propiamente dichos. Los lenguajes a nivel de movimientos elementales, como el VAL, disponen de bastantes comandos para definir acciones muy parecidas que fueron surgiendo según las necesidades y que, en gran medida, oscurecen su comprensión y conocimiento. Aunque, inicialmente, las técnicas de programación estructurada son más difíciles de dominar, facilitan, extraordinariamente, la comprensión y corrección de los programas. Respecto a la sencillez de aplicación, hay algunos lenguajes (como el MCL) dedicados a las máquinas herramienta (APT), que pueden ser valorados, positivamente, por los usuarios conocedores de este campo. El PAL, estructurado sobre la matemática matricial, sólo es adecuado para quienes están familiarizados con el empleo de este tipo de transformaciones. Uno de los lenguajes más fáciles de utilizar es el AUTOPASS, que posee un juego de comandos con una sintaxis similar a la del ingles corriente. Es imprescindible que los lenguajes para los robots sean fácilmente ampliables, por lo que se les debe dotar de una estructura modular, con inclusión de subrutinas definidas por el mismo usuario. La adaptabilidad a sensores externos implica la posibilidad de una toma de decisiones, algo muy interesante en las labores de ensamblaje. Esta facultad precisa de un modelo dinámico del entorno, así como de una buena dosis de Inteligencia Artificial, como es el caso del AUTOPASS. Aunque los intérpretes son más lentos que los compiladores, a la hora de la ejecución de un programa, resultan más adecuados para las aplicaciones de la robótica. Las razones son las siguientes:
- El intérprete ejecuta el código como lo encuentra, mientras que el compilador recorre el programa varias veces, antes de generar el código ejecutable.
- Los intérpretes permiten una ejecución parcial del programa.
- La modificación de alguna instrucción es más rápida con intérpretes, ya que un cambio en una de ellas no supone la compilación de las demás.
Finalmente, el camino para la superación de los problemas propios de los lenguajes actuales ha de pesar, necesariamente, por la potenciación de los modelos dinámicos del entorno que rodea al robot, acompañado de un aumento sustancial de la Inteligencia Artificial.
Autor:
Mileidys González Prieto
Página anterior | Volver al principio del trabajo | Página siguiente |