You are on page 1of 29

TRABAJO COLABORATIVO 3 ROBOTICA

Grupo colaborativo: 299011_4

Trabajo presentado Por Alejandro Gmez Ral Quintero Jos Hernando Otlora

Trabajo presentado A LIC. Sandra Isabel Vargas

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA- UNAD INGENIERA ELECTRNICA 19 DE NOVIEMBRE DE 2013

INTRODUCCIN En las mquinas controladas por sistemas informticos, el lenguaje es el medio que utiliza el hombre para gobernar su funcionamiento, por lo que su correcta adaptacin con la tarea a realizar y la sencillez de manejo, son factores determinantes del rendimiento obtenido en los robots industriales. Hay varias maneras de comunicarse con un robot, y tres soluciones generales para lograrlo, que son reconocimiento de palabras separadas, enseanza y repeticin y lenguajes de programacin de alto nivel. Los sistemas de reconocimiento de la voz en la tecnologa moderna son bastante primitivos y suelen depender de quien habla. Estos sistemas pueden reconocer un conjunto de palabras concretas de un vocabulario muy limitado y en general exigen al usuario una pausa entre las palabras, aunque en la actualidad es posible reconocer las palabras separadas en tiempo real debido a los cada vez ms rpidos componentes de las computadoras y algoritmos de procesamiento ms eficientes, la utilidad del reconocimiento de palabras separadas para describir la tarea de un robot es bastante limitada. Los lenguajes de programacin de alto nivel suministran una solucin ms general para resolver el problema de comunicacinhombre-robot. En la dcada anterior, los robots fueron utilizados con xito en reas tales como soldadura por arco voltaico o pintura con spray utilizando el guiado (Engelberger [1980]). Estas tareas no requieren interaccin entre el robot y su entorno y pueden ser programadas fcilmente por guiado. Sin embargo, la utilizacin de robots para llevar a cabo las tareas requieren tcnicas de programacin en lenguajes de alto nivel ya que el robot de la lnea de produccin suele confiar en la realimentacin de los sensores y este tipo de interaccin slo puede solo puede ser mantenida por mtodos de programacin que contengan condiciones. Los lenguajes clsicos empleados en informtica, como el FORTRAN, BASIC, PASCAL, etc., no disponen de las instrucciones y comandos especficos que necesitan los robots, para aproximarse a su configuracin y a los trabajos que han de realizar. Esta circunstancia, ha obligado a los constructores de robots e investigadores a disear lenguajes propios de la Robtica. Sin embargo, los lenguajes desarrollados hasta el momento, se han dirigido a un determinado modelo de manipulador y a una tarea concreta, lo que ha impedido la aparicin de lenguajes transportables entre mquinas y por lo tanto de carcter universal. La estructura del sistema informtico del robot vara notablemente, segn el nivel y complejidad del lenguaje y de la base de datos que requiera

Fase 1. Conceptualizacin. Investigar y documentar cuales son los lenguajes de programacin utilizados en robtica, como se clasifican y cules son los criterios de seleccin de un lenguaje de programacin. Mencione 5 lenguajes de programacin, y mencione sus principales caractersticas. La descripcin de cada uno de ellos no debe superar media pgina. CLASIFICACIN DE LA PROGRAMACIN USADA EN ROBTICA La programacin empleada en Robtica puede tener un carcter explcito, en el que el operador es el responsable de las acciones de control y de las instrucciones adecuadas que las implementan, o estar basada en la modelacin del mundo exterior, cuando se describe la tarea y el entorno y el propio sistema toma las decisiones. La programacin explcita es la utilizada en las aplicaciones industriales y consta de dos tcnicas fundamentales: A. Programacin Gestual. B. Programacin Textual. La programacin gestual consiste en guiar el brazo del robot directamente a lo largo de la trayectoria que debe seguir. Los puntos del camino se graban en memoria y luego se repiten. Este tipo de programacin, exige el empleo del manipulador en la fase de enseanza, o sea, trabaja "on-line". En la programacin textual, las acciones que ha de realizar el brazo se especifican mediante las instrucciones de un lenguaje. En esta labor no participa la mquina (off-line). Las trayectorias del manipulador se calculan matemticamente con gran precisin y se evita el posicionamiento a ojo, muy corriente en la programacin gestual. Los lenguajes de programacin textual se encuadran en varios niveles, segn se realice la descripcin del trabajo del robot. Se relacionan a continuacin, en orden creciente de complejidad: 1. Lenguajes elementales, que controlan directamente el movimiento de las articulaciones del manipulador 2. Lenguajes dirigidos a posicionar el elemento terminal del manipulador. 3. Lenguajes orientados hacia el objeto sobre el que opera el sistema. 4. Lenguajes enfocados a la tarea que realiza el robot. PROGRAMACIN GESTUAL O DIRECTA En este tipo de programacin, el propio brazo interviene en el trazado del camino y en las acciones a desarrollar en la tarea de la aplicacin. Esta caracterstica determina, inexcusablemente, la programacin "on-line". La programacin gestual se subdivide en dos clases:

Programacin por aprendizaje directo. Programacin mediante un dispositivo de enseanza. En el aprendizaje directo, el punto final del brazo se traslada con ayuda de un dispositivo especial colocado en su mueca, o utilizando un brazo maestro o maniqu, sobre el que se efectan los desplazamientos que, tras ser memorizados, sern repetidos por el manipulador. La tcnica de aprendizaje directo se utiliza, extensamente, en labores de pintura. El operario conduce la mueca del manipulador o del brazo maestro, determinando los tramos a recorrer y aquellos en los que la pistola debe expulsar una cierta cantidad de pintura. Con esta programacin, los operarios sin conocimientos de "software", pero con experiencia en el trabajo a desarrollar, pueden preparar los programas eficazmente. La programacin por aprendizaje directo tiene pocas posibilidades de edicin, ya que, para generar una trayectoria continua, es preciso almacenar o definir una gran cantidad de puntos, cuya reduccin origina discontinuidades. El "software" se organiza, aqu, en forma de intrprete. La programacin, usando un dispositivo de enseanza, consiste en determinar las acciones y movimientos del brazo manipulador, a travs de un elemento especial para este cometido. En este caso, las operaciones ordenadas se sincronizan para conformar el programa de trabajo. El dispositivo de enseanza suele estar constituido por botones, teclas, pulsadores, luces indicadoras, ejes giratorios o "joystick". Dependiendo del algoritmo de control que se utilice, el robot pasa por los puntos finales de la trayectoria enseada. Hay que tener en cuenta que los dispositivos de enseanza modernos no slo permiten controlar los movimientos de las articulaciones del manipulador, sino que pueden, tambin, generar funciones auxiliares, como: - Seleccin de velocidades - Generacin de retardos - Sealizacin del estado de los sensores - Borrado y modificacin de los puntos de trabajo - Funciones especiales Al igual que con la programacin directa, en la que se emplea un elemento de enseanza, el usuario no necesita conocer ningn lenguaje de programacin. Simplemente, debe habituarse al empleo de los elementos que constituyen el dispositivo de enseanza. De esta forma, se pueden editar programas, aunque como es lgico, muy simples. La estructura del "software" es del tipo intrprete; sin embargo, el sistema operativo que controla el procesador puede poseer rutinas especficas, que suponen la posibilidad de realizar operaciones muy eficientes. Los lenguajes de programacin gestual, adems de necesitar al propio robot en la confeccin del programa, carecen de adaptabilidad en tiempo real con el entorno y no pueden tratar, con facilidad, interaciones de emergencia. PROGRAMACIN TEXTUAL EXPLICITA

El programa queda constituido por un texto de instrucciones o sentencias, cuya confeccin no requiere de la intervencin del robot; es decir, se efectan "off-line". Con este tipo de programacin, el operador no define, prcticamente, las acciones del brazo manipulado, sino que se calculan, en el programa, mediante el empleo de las instrucciones textuales adecuadas. En una aplicacin tal como el ensamblaje de piezas, en la que se requiere una gran precisin, los posicionamientos seleccionados mediante la programacin gestual no son suficientes, debiendo ser sustituidos por clculos ms perfectos y por una comunicacin con el entorno que rodea al sistema. En la programacin textual, la posibilidad de edicin es total. El robot debe intervenir, slo, en la puesta a punto final. Segn las caractersticas del lenguaje, pueden confeccionarse programas de trabajo complejos, con inclusin de saltos condicionales, empleo de bases de datos, posibilidad de creacin de mdulos operativos intercambiables, capacidad de adaptacin a las condiciones del mundo exterior, etc. Dentro de la programacin textual, existen dos grandes grupos, de caractersticas netamente diferentes: 1. Programacin textual explcita. 2. Programacin textual especificativa. En la programacin textual explcita, el programa consta de una secuencia de rdenes o instrucciones concretas, que van definiendo con rigor las operaciones necesarias para llevar a cabo la aplicacin. Se puede decir que la programacin explcita engloba a los lenguajes que definen los movimientos punto por punto, similares a los de la programacin gestual, pero bajo la forma de un lenguaje formal. Con este tipo de programacin, la labor del tratamiento de las situaciones anormales, colisiones, etc., queda a cargo del programador. Dentro de la programacin explcita, hay dos niveles: 1. Nivel de movimiento elemental Comprende los lenguajes dirigidos a controlar los movimientos del brazo manipulador. Existen dos tipos: a. Articular, cuando el lenguaje se dirige al control de los movimientos de las diversas articulaciones del brazo. b. Cartesiano, cuando el lenguaje define los movimientos relacionados con el sistema de manufactura, es decir, los del punto final del trabajo (TCP). Los lenguajes del tipo cartesiano utilizan transformaciones homogneas. Este hecho confiere "popularidad" al programa, independizando a la programacin del modelo particular del robot, puesto que un programa confeccionado para uno, en coordenadas cartesianas, puede utilizarse en otro, con diferentes coordenadas, mediante el sistema de transformacin correspondiente. Son lenguajes que se parecen al BASIC, sin poseer una unidad formal y careciendo de estructuras a nivel de datos y de control. Por el contrario, los lenguajes del tipo articular indican los incrementos angulares de las articulaciones. Aunque esta accin es bastante simple para motores de paso a paso y corriente continua, al no tener una referencia general de la posicin

de las articulaciones con relacin al entorno, es difcil relacionar al sistema con piezas mviles, obstculos, cmaras de TV, etc. Los lenguajes correspondientes al nivel de movimientos elementales aventaja, principalmente, a los de punto a punto, en la posibilidad de realizar bifurcaciones simples y saltos a subrutinas, as como de tratar informaciones sensoriales. 2. Nivel estructurado Intenta introducir relaciones entre el objeto y el sistema del robot, para que los lenguajes se desarrollen sobre una estructura formal. Se puede decir que los lenguajes correspondientes a este tipo de programacin adoptan la filosofa del PASCAL. Describen objetos y transformaciones con objetos, disponiendo, muchos de ellos, de una estructura de datos arborescente. El uso de lenguajes con programacin explcita estructurada aumenta la comprensin del programa, reduce el tiempo de edicin y simplifica las acciones encaminadas a la consecucin de tareas determinadas. En los lenguajes estructurados, es tpico el empleo de las transformaciones de coordenadas, que exigen un cierto nivel de conocimientos. Por este motivo dichos lenguajes no son populares hoy en da. PROGRAMACIN TEXTUAL ESPECIFICATIVA Se trata de una programacin del tipo no procesal, en la que el usuario describe las especificaciones de los productos mediante una modelizacin, al igual que las tareas que hay que realizar sobre ellos. El sistema informtico para la programacin textual especificativa ha de disponer del modelo del universo, o mundo donde se encuentra el robot. Este modelo ser, normalmente, una base de datos ms o menos compleja, segn la clase de aplicacin, pero que requiere, siempre , computadoras potentes para el procesado de una abundante informacin. El trabajo de la programacin consistir, simplemente, en la descripcin de las tareas a realizar, lo que supone poder llevar a cabo trabajos complicados. Actualmente, los modelos del universo son del tipo geomtrico, no fsico. Dentro de la programacin textual especificativa, hay dos clases, segn que la orientacin del modelo se refiera a los objetos a los objetivos. Si el modelo se orienta al nivel de los objetos, el lenguaje trabaja con ellos y establece las relaciones entre ellos. La programacin se realiza "off-line" y la conexin CAM es posible. Dada la inevitable imprecisin de los clculos del ordenador y de las medidas de las piezas, se precisa de una ejecucin previa, para ajustar el programa al entorno del robot. Los lenguajes con un modelo del universo orientado a los objetos son de alto nivel, permitiendo expresar las sentencias en un lenguaje similar al usado comnmente. Por otra parte, cuando el modelo se orienta hacia los objetivos, se define el producto final. La creacin de lenguajes de muy alto nivel transferir una gran parte del trabajo de programacin, desde el usuario hasta el sistema informtico; ste resolver la mayora de los problemas, combinando la Automtica y la Inteligencia Artificial. LENGUAJES DE PROGRAMACIN GESTUAL PUNTO A PUNTO

Se aplican con el robot "in situ", recordando a las normas de funcionamiento de un magnetofn domstico, ya que disponen de unas instrucciones similares: PLAY (reproducir), RECORD (grabar), FF (adelantar), FR (atrasar), PAUSE, STOP, etc. Adems, puede disponer de instrucciones auxiliares, como INSERT (insertar un punto o una operacin de trabajo) y DELETE (borrar). Conceptualmente, ala estar el manipulador en lnea funciona como un digitalizador de posiciones. Los lenguajes ms conocidos en programacin 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. En el lenguaje FUNKY se usa un mando del tipo "joystick" para el control de los movimientos, mientras que el T3 dispone de un dispositivo de enseanza ("teach pendant"). Como en un grabador de cassettes, y en los dos lenguajes mencionados, los movimientos pueden tener lugar en sistemas de coordenadas cartesianas, cilndricas o de unin, siendo posible insertar y borrar las instrucciones que se desee. Es posible, tambin, implementar funciones relacionadas con sensores externos, as como revisar el programa paso a paso, hacia delante y hacia atrs. El lenguaje FUNKY dispone de un comando especial para centrar a la pinza sobre el objeto. El procesador usado en T3 es el AMD 2900 ("bit slice"), mientras que en el FUNKY est constituido por el IBM SYSTEM-7. LENGUAJES DE PROGRAMACIN A NIVEL DE MOVIMIENTOS ELEMENTALES. Como ya menciono, se tratan los movimientos de punto a punto, expresados en forma de lenguaje. Se citan, entre los ms importantes: ANORAD EMILY RCL RPL SIGLA VAL MAL Todos ellos mantienen el nfasis en los movimientos primitivos, ya sea en coordenadas articulares, o cartesianas. En comparacin, tienen, como ventajas destacables, los saltos condicionales y a subrutina, adems de un aumento de las operaciones con sensores, aunque siguen manteniendo pocas posibilidades de programacin "off-line". Estos lenguajes son, por lo general, del tipo intrprete, con excepcin del RPL, que tiene un compilador. La mayora dispone de comandos de tratamiento a sensores bsicos: tacto, fuerza, movimiento, proximidad y presencia. El RPL dispone de un sistema complejo de visin, 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 transformacin de un lenguaje de control numrico de la casa ANORAD CORPORATION, utilizado para robot ANOMATIC. Utiliza, como procesador, al microprocesador 68000 de Motorola de 16/32 bits.

FIG. 1 VAL.- Fue diseado 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 articulacin. Las instrucciones, en idioma ingls, 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 diseado 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 intrprete. MAL.- Se ha creado en el Politcnico de Miln para el robot SIGMA, con un Minimultiprocesador. Es un lenguaje del tipo intrprete, escrito en FORTRAN. RCL.- Aplicado al robot PACS y desarrollado por RPI, emplea, como CPU, un PDP 11/03. Es del tipo intrprete y est escrito en Ensamblador. LENGUAJES ESTRUCTURADOS DE PROGRAMACIN EXPLCITA Teniendo en cuenta las importantsimas caractersticas que presenta este tipo de programacin, merecen destacarse los siguientes lenguajes: AL

HELP MAPLE PAL MCL MAL EXTENDIDO Un sencillo ejemplo, de carcter didctico, utilizando el lenguaje AL, puede mostrar el inters del control estructurado. Partiendo de la definicin de unos objetos, se puede lograr una estructura superior que los relacione. Supongamos que se dispone de los objetos 01 y 02, y se intenta colocar al primero encima del segundo. En la siguiente figura se muestra la configuracin del sistema de este ejemplo.

Con referencia en la figura, 01T y 01B sealan, respectivamente, la parte superior e inferior del objeto 01, mientras que 01AS indica su posicin de asimiento. Las partes del objeto 02 se denominan de la misma forma. Un programa "orientativo", en AL, que coloque 01 sobre 02, podra ser: MOVE ARM TO 01AS El brazo se desplaza hasta la posicin de asimiento de 01. GRASP Aprehende a 01. AFFIX 01B TO ARM Fija el sistema de coordenadas de 01 con el de la pinza del brazo. MOVE 01B TO 02T Mueve la parte inferior de 01 hasta la parte superior de 02. RELEASE Suelta 01 sobre 02. UNIFIX 01 Destruye la relacin entre el sistema de coordenadas del brazo y 01. Con excepcin de HELP, todos los lenguajes de este grupo estn 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 definicin de puntos, lneas, planos y posiciones. Slo el PAL, y el HELP carecen de capacidad de adaptacin sensorial. Los lenguajes AL, MAPLE y MCL, tienen comandos para el control de la sensibilidad del tacto de los dedos (fuerza, movimiento, proximidad, etc.). Adems, el MCL posee comandos de visin para identificar e inspeccionar objetos. A continuacin, se exponen las caractersticas ms representativas de los lenguajes dedicados a la programacin estructurada. AL.- Trata de proporcionar definiciones acerca de los movimientos relacionados con los elementos sobre los que el brazo trabaja. Fue diseado 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 simultneo de varios brazos. Dispone, asimismo, de un conjunto especial de subrutinas para la ejecucin de cualquier tarea. Utilizando como CPU, a un PDP 11. MAPLE.- Escrito, como intrprete, 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 intrprete escrito en FORTRAN y Ensamblador, capaz de aceptar sensores de fuerza y de visin. Cada una de sus instrucciones, para mover el brazo del robot en coordenadas cartesianas, es procesada para que satisfaga la ecuacin del procesamiento. Como CPU, usan un PDP 11/70. MCL.- Lo cre la compaa MC DONALL DOUGLAS, como ampliacin de su lenguaje de control numrico APT. Es un lenguaje compilable que se puede considerar apto para la programacin de robots "off-line". MAL EXTENDIDO.- Procede del Politcnico de Miln, al igual que el MAL, al que incorpora elementos de programacin estructurada que lo potencian notablemente. Se aplica, tambin, al robot SIGMA. LENGUAJES DE PROGRAMACIN ESPECIFICATIVA A NIVEL OBJETO. En este grupo se encuentran tres lenguajes interesantes: RAPT AUTOPASS LAMA RAPT .- Su filosofa 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 ms 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 ms 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 crculos de inters, se especifican seguidamente: C1 = CIRCLE/P2, R; C2 = CIRCLE/P4, R; A continuacin, se determinan sus aristas: L1 = L/P1, P2; L2 = L/P3, P4; Si, anlogamente al cuerpo C1, se define otro, como el C2, una accin entre ambos podra consistir en colocar la cara inferior de C1 alineada con la superior de C2. Esto se escribira.

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 intrprete y est escrito en lenguaje APT. AUTOPASS.- Creado por IBM para el ensamblaje de piezas; utiliza instrucciones, muy comunes, en el idioma ingls. Precisa de un ordenador de varios Megabytes de capacidad de memoria y, adems de indicar, como el RAPT, puntos especficos, prev, tambin, colisiones y genera acciones a partir de las situaciones reales. Un pequeo 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 clculos sobre una base de datos, que define a los objetos como poliedros de un mximo de 20,000 caras. Est escrito en PL/1 y es intrprete y compilable. LAMA.- Procede del laboratorio de Inteligencia Artificial del MIT, para el robot SILVER, orientndose hacia el ajuste de conjuntos mecnicos. Aporta ms inteligencia que el AUTOPASS y permite una buena adaptacin al entorno. La operatividad del LAMA se basa en tres funciones principales: 1 Creacin de la funcin de trabajo. Operacin inteligente. 2 Generacin de la funcin de manipulacin. 3 Interpretacin y desarrollo, de una forma interactiva, de una estrategia de realimentacin para la adaptacin al entorno de trabajo. LENGUAJES DE PROGRAMACIN EN FUNCIN DE LOS OBJETIVOS. La filosofa de estos lenguajes consiste en definir la situacin final del producto a fabricar, a partir de la cual se generan los planes de accin tendentes a conseguirla, obtenindose, finalmente, el programa de trabajo. Estos lenguajes, de tipo natural, suponiendo una potenciacin extraordinaria de la Inteligencia Artificial, para descargar al usuario de las labores de programacin. Prevn, incluso, la comunicacin hombre-mquina a travs de la voz. Los lenguajes ms conocidos de este grupo son: STRIPS HILAIRE STRIPS.- Fue diseado, en la Universidad de Stanford, para el robot mvil SHAKEY. Se basa en un modelo del universo ligado a un conjunto de planteamientos aritmtico-lgicos que se encargan de obtener las subrutinas que conforman el programa final. Es intrprete y compilable, utilizando, como procesadores, a un PDP-10 y un PDP15.

HILAIRE.- Procedente del laboratorio de Automtica Y Anlisis de Sistemas (LAAS) de Toulouse, est escrito en lenguaje LISP. Es uno de los lenguajes naturales ms interesantes, por sus posibilidades de ampliacin e investigacin. CARACTERSTICAS DE UN LENGUAJE IDEAL PARA LA ROBTICA Las seis caractersticas bsicas de un lenguaje ideal, expuestas por Pratt, son: 1. Claridad y sencillez. 2. Claridad de la estructura del programa. 3. Sencillez de aplicacin. 4. Facilidad de ampliacin. 5. Facilidad de correccin y mantenimiento. 6. Eficacia. Estas caractersticas son insuficientes para la creacin de un lenguaje "universal" de programacin en la robtica, por lo que es preciso aadir las siguientes: - Transportabilidad sobre cualquier equipo mecnico o informtico. - Adaptabilidad a sensores (tacto, visin, etc.). - Posibilidad de descripcin de todo tipo de herramientas acoplables al manipulador. - Interaccin con otros sistemas. En el aspecto de claridad y sencillez, la programacin gestual es la ms eficaz, pero impide la confeccin 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 segn las necesidades y que, en gran medida, oscurecen su comprensin y conocimiento. Aunque, inicialmente, las tcnicas de programacin estructurada son ms difciles de dominar, facilitan, extraordinariamente, la comprensin y correccin de los programas. Respecto a la sencillez de aplicacin, hay algunos lenguajes (como el MCL) dedicados a las mquinas herramienta (APT), que pueden ser valorados, positivamente, por los usuarios conocedores de este campo. El PAL, estructurado sobre la matemtica matricial, slo es adecuado para quienes estn familiarizados con el empleo de este tipo de transformaciones. Uno de los lenguajes ms fciles 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 fcilmente ampliables, por lo que se les debe dotar de una estructura modular, con inclusin 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 dinmico del entorno, as como de una buena dosis de Inteligencia Artificial, como es el caso del AUTOPASS. Aunque los intrpretes son ms lentos que los compiladores, a la hora de la ejecucin de un programa, resultan ms adecuados para las aplicaciones de la robtica. Las razones son las siguientes: 1a. El intrprete ejecuta el cdigo como lo encuentra, mientras que el compilador recorre el programa varias veces, antes de generar el cdigo ejecutable. 2a. Los intrpretes permiten una ejecucin parcial del programa.

3a. La modificacin de alguna instruccin es ms rpida con intrpretes, ya que un cambio en una de ellas no supone la compilacin de las dems. Finalmente, el camino para la superacin de los problemas propios de los lenguajes actuales ha de pesar, necesariamente, por la potenciacin de los modelos dinmicos del entorno que rodea al robot, acompaado de un aumento sustancial de la Inteligencia Artificial. Cuando se programa un manipulador lo que se necesita usualmente es situar su punto terminal en una localizacin determinada del espacio, haciendo adems que la direccin de aproximacin a la misma est tambin definida. Pero no slo es importante que el manipulador alcance determinados puntos del espacio, sino que lo haga en el momento adecuado. As, es preciso distinguir entre:

Camino, sucesin de puntos del espacio. Trayectoria, camino sujeto a condiciones temporales.

Generalmente, es necesario disear y programar trayectorias, rectas o curvas arbitrarias en el espacio cartesiano, para lo cual es importante conocer la relacin entre la trayectoria cartesiana del punto terminal y la de las articulaciones. En el diseo de las trayectorias hay que tener en cuenta factores como:

La prevencin de posibles colisiones con objetos del entorno. El mantenimiento de una orientacin fija del elemento terminal (transporte de lquidos, soldadura, etc.). La utilizacin de aceleraciones moderadas, de forma que se eviten fuerzas de inercia elevadas que resulten inadecuadas para los motores.

Existen determinadas circunstancias que hacen que los lenguajes de programacin de robots resulten relativamente diferentes al resto :

El entorno en el que acta el robot no puede describirse normalmente en trminos puramente cuantitativos. Se necesitan incluir condiciones no usuales, como la comentada prevencin de colisiones. Las acciones del robot estn sujetas a imprecisiones que pueden dar lugar a incidentes que el programa debe ser capaz de procesar. Ciertas informaciones de los sensores del sistema pueden ser no slo difciles de procesar en tiempo real, sino tambin ambiguas.

Para complementar la informacin anterior quiero compartir una clasificacin diferente manejada por otro autor. Caractersticas de los lenguajes Habitualmente, la programacin de un robot resulta un proceso continuo de ensayo y error. Por ello, la mayora de los entornos de programacin son

interpretados, pudindose realizar un seguimiento paso a paso de lo programado y evitar el ciclo editar-compilar-ejecutar-reprogramar, costoso en tiempo. Es deseable una buena capacidad de depuracin y ejecucin paso a paso. Un lenguaje de programacin de robots se podra considerar ideal o universal si cumpliese los siguientes requisitos:

Proporcionar tipos de datos convencionales (enteros, reales ...) pero tambin otros especficos para: o El posicionamiento y orientacin espacial de los elementos actuadores. o La comprobacin de sucesos, es decir, la recogida puntual o continua de la informacin de las seales generadas por los sensores y su almacenamiento en variables sensoriales. Estas variables son de alcance global y no se inicializan explcitamente en el programa, como las variables convencionales. Asimismo, debe incorporar elementos de priorizacin de sucesos en caso de activacin simultnea de varios sensores. Incorporar rdenes de movimiento de los actuadores en el espacio cartesiano, sencillas y con posibilidad de elegir la trayectoria del punto terminal entre la posicin actual y la final. Asimismo, debe ser posible memorizar la posicin actual para continuar un movimiento en caso de interrupcin anormal. Tambin, debe contar con rdenes especficas para la realizacin de retardos (esperas hasta que se concluya la ejecucin de un movimiento). Proporcionar mecanismos especficos de inicializacin y terminacin de las acciones del robot, como pueden ser el auto-test y el calibrado inicial, o el posicionamiento en algunas coordenadas especficas al principio o al final de la operacin. Incorporar medios de sincronizacin de sucesos, que modifiquen la tarea normal en funcin de la ocurrencia de ciertos hechos o la llegada de ciertas seales. Las acciones de un robot se sincronizan normalmente para atender a cuatro tipos de sucesos: o Activacin. Comenzar la accin al recibir una seal. o Terminacin. Finalizar la accin al recibir una seal. o Error. Comenzar una secuencia de recuperacin ante una seal de error. o Anulacin. Finalizar una accin ante la ausencia de seal de terminacin en un tiempo establecido. Proporcionar concurrencia o paralelismo, de modo que se puedan controlar simultneamente todas sus articulaciones y permitir el funcionamiento simultneo con otros robots. Esto se puede conseguir mediante: o Un lenguaje que permita concurrencia. o Un software que simule paralelismo mediante el reparto del tiempo del procesador.

Usando varios elementos de computacin (varios microcontroladores) Posibilitar la comunicacin entre procesos cuando varios coexisten simultneamente. Esto se puede llevar a cabo mediante: o El uso de la memoria compartida. o La llamada remota a procedimientos. o El envo de mensajes. Gozar de portabilidad a cualquier tipo de equipamiento del que se disponga, con independencia del tipo de robot, de sensores, de actuadores y de elementos terminales.
o

Puesto que estos lenguajes deben poder modificar en tiempo real el flujo del programa dependiendo del estado de las seales de los sensores, el sistema operativo que soporte tales lenguajes debe ser de tiempo real, entendiendo por tal aqul que pueda responder a cualquier suceso externo, es decir, a la peticin de un programa, en un tiempo acotado suficientemente breve-, sin posibilidad de que dicha peticin pueda quedar bloqueada indefinidamente. Por ejemplo, el mantenimiento de la estabilidad en el movimiento de las articulaciones del robot exige el muestreo de los sensores de posicin con un perodo definido y corto, y el envo de la accin de control calculada en ese mismo perodo. Los lenguajes de programacin actuales no verifican estrictamente todos los requisitos detallados, pero existen varios que resultan de utilidad dependiendo de la tarea especfica a la que se les destina. Clasificacin de los lenguajes. Mtodos de programacin En funcin de la sintaxis del lenguaje y de su complejidad se pueden distinguir tres tipos: 1. Secuenciadores de instrucciones. Almacenan una secuencia de posiciones y de acciones (por ejemplo, la apertura o cierre de la pinza de un manipulador), para repetirla posteriormente en un orden prcticamente fijo. El robot aprende dichas posiciones y acciones mediante: o El movimiento del robot gracias a un teclado especial denominado teach pendant, a un ratn o a un joystic. o El movimiento manual del mismo y el almacenamiento de las posiciones de los encoders. 2. Lenguajes especficos para robots . Diseados normalmente por cada firma comercial para sus robots, teniendo en cuenta nicamente sus propios sensores y actuadores. Generalmente incorporan, adems, descripcin y razonamiento en trminos geomtricos e interfaces a sistemas de CAD/CAM. 3. Extensiones de lenguajes clsicos. Se trata de mdulos de ampliacin especficos para el manejo de sensores y actuadores, desarrollados para lenguajes de propsito general como C, PASCAL o BASIC, que conservan la sintaxis general y los mtodos de control de flujo de los mismos.

Por otra parte, en funcin del nivel de abstraccin que permiten a la hora de especificar la tarea, los lenguajes pueden ser:

Orientados al robot. Orientados a la tarea.

Las instrucciones de los lenguajes orientados al robot son rdenes para la lectura del estado de los sensores y para el movimiento de los actuadores. El programador debe establecer de modo secuencial cul ser el comportamiento de los actuadores en funcin de las seales de los sensores. Estos lenguajes se pueden subdividir en tres niveles:

De aprendizaje. Se trata de secuenciadores de instrucciones ampliados. Permiten la lectura automtica de variables de posicin y su modificacin en modo texto. Cuentan con estructuras de control simples e instrucciones de comprobacin de sensores que son insertables en la secuencia de movimientos aprendida mediante interfaces con mens. Ejemplos de este tipo de lenguajes son APT (Automatically Programmed Tools) y MCL (Macintosh Common LISP). Estructurados. Con estructuras flexibles para la definicin de posiciones, orientaciones y manipulacin. Permiten la comprobacin puntual o continua de las seales sensoriales, y la realizacin de movimientos de aproximacin en cualquier direccin del espacio cartesiano. Ejemplos de este tipo de lenguajes son los denominados KAREL (lenguaje para el robot Karel), SRL (Structured Robot Language), AL (Assembly Language), AML (A manufacturing Language), VAL (Variable Assembly Language) y VAL-II. Experimentales o prototipos de investigacin. Se trata de lenguajes similares a los de aprendizaje: o Cuyo resultado no es una mera repeticin de las acciones, sino la generacin de programas con instrucciones de movimiento y variables libres, que puede ser editado con posterioridad para modificar las posiciones absolutas y aadir instrucciones de comprobacin de las seales sensoriales; un ejemplo es el lenguaje LM (Language Model). o O bien, ensean al robot estrategias sensoriales mediante la extraccin de valores clave de entre todos los valores sensoriales almacenados gracias a la deteccin de las situaciones en las que se ha modificado o interrumpido el movimiento-. Un ejemplo de ello lo constituye el lenguaje XPROBE.

En los lenguajes orientados a la tarea el programador debe establecer cules son las acciones que debe ejecutar el robot pero no tiene necesariamente que detallar cmo hacerlo. Es el sistema el que decide qu movimientos y comprobaciones sensoriales debe realizar, y en qu orden. Las decisiones se toman en funcin de:

Los objetivos propuestos.

El estado en cada momento del mundo del robot.

Lo anterior exime al programador de la realizacin de un buen nmero de tareas laboriosas que son obligatorias en los lenguajes orientados al robot. La tarea se describe en lenguaje de alto nivel, mediante instrucciones en forma textual o utilizando una interfaz grfica (un simulador del mundo del robot). Un mdulo planificador consulta una base de datos, denominada el modelo del mundo, y transforma las especificaciones de la tarea en un programa orientado al robot. Esto est directamente relacionado con las tcnicas de Inteligencia Artificial para la generacin automtica de programas. Como ejemplo, supn que se debe coger un bloque de una determinada posicin y apilarlo sobre un segundo bloque situado en otra posicin diferente. Esta tarea podra descomponerse en varias subtareas:

Situar la pinza sobre el primer bloque. Sujetar el bloque. Llevar el primer bloque sobre el segundo. Soltar el primer bloque sobre el segundo.

A su vez, cada subtarea podra ser divida en otras. Por ejemplo, la primera subtarea podra ser fraccionada en las siguientes:

Determinar dnde se hallan actualmente el robot y el primer bloque. Determinar dnde se encuentran el resto de objetos del mundo, para no tropezar con ellos. Calcular una trayectoria de desplazamiento libre de colisin.

Para determinar dnde se encuentra el robot, nicamente hay que leer los sensores internos (normalmente codificadores pticos). Sin embargo, determinar dnde se encuentra el segundo bloque resulta una cuestin ms compleja. La respuesta ms usual a este problema consiste en almacenar modelos geomtricos de objetos, y tratar de obtener mediante los sensores externos descripciones geomtricas de los objetos reales que encajen con los objetos almacenados. Son los sistemas de CAD los que permiten el modelado geomtrico, almacenamiento y posterior consulta de los modelos. Ejemplos de lenguajes orientados a la tarea son AUTOPASS (Automatic Programming System for Computer- Controlled Mechanical Assembly), RAPT (Robot Automatically Programmed Tool) y LAMA (Language For AutomaticMechanical Assembly).

Fase 2. Simulacin 2.1 Descargar el simulador SIMUROB que se encuentra en el link de MATERIAL DE APOYO A LA FORMACIN del curso dentro del rea de CONTENIDOS. 2.1. Descargar el simulador SIMUROB

2.2 Descargar el manual de usuario

2.3 Descargar el programa soldadura1.prg

Luego se realiza una serie de ejercicios para ir tomando destreza en el uso del programa de acuerdo a los temas desarrollados en el manual del usuario. De estas prcticas quiero compartir algunas imgenes que pueden recrear los diferentes usos del programa. Esta es la imagen del programa luego de seleccionar la consola para el manejo del robot con el joystick y permite gajustar y grabar los movimientos del robot que van a se parte del progrma en automtico.

Una de las principales funciones es la rotacin sobre los ejes y la ejecucin del zoom, esto se puede verificar en la siguiente grfica.

De la misma forma el robot se puede visualizar en forma de ejes para poder en detalle determinar movimientos y los ngulos de los mismos. Tambin se puede tener una perspectiva del robot desde la vista en planta y la alzada. Esto se evidencia en la siguiente grfica:

La ejecucin de los movimientos a partir del programa grabado previamente se puede hacer con la vista en forma de ejes.

Co n la funcin de traza se puede evidenciar el movimiento del robot con una indicacin de los ltimos movimientos del robot, esto facilita la ubicacin de movimientos.

Con la funcin vista podemos recrear los movimientos del robot en los diferentes ejes. Esta grfica muestra una forma de hacerlo.

Variando los valores en los recuadros podemos recrear los movimientos del robot en los ejes seleccionados.

Tambin podemos insertar figuras de diferentes formas y tamaos y variar sus posiciones. Luego de esto se pueden recrear los movimientos necesarios en el robot para poder recogerlos.

Por ltimo se realiza un programa que desarrolle diferentes movimientos sobre todos los ejes y luego lo recorremos en automtico.

2.5 Usar SIMUROB para crear un algoritmo que permita desplazar el EFECTOR FINAL del robot desde la posicin inicial (en la que aparece al abrir el simulador) hasta la posicin (x=-70, y=30, z=3*nmero del grupo) en la cual la pinza del robot deber recoger un objeto y lo llevar (x=100, y=50, z=0). Para esto se sugiere usar el JOYSTICK de la forma en que se indica en el manual de usuario y colocar un objeto como referencia en la posicin final. NOTA: Si tu grupo es 299011_10, entonces la posicin inicial del objeto en z ser =2.5*10=25. Adems, si la coordenada z supera el espacio de trabajo debe usarse la cota mayor para que el robot pueda alcanzar el objeto.

Se situa un objeto prima en la posicin (x=-70, y=30, z=3*nmero del grupo(4))


(x=-70, y=30, z=12)

%%%

CONCLUSIONES Hoy en el mundo existe un inters general para lograr un sistema de percepcin del entorno cada vez ms avanzado. Para esto se hace necesaria la ampliacin de la Inteligencia Artificial, que interviene en la valoracin del espacio exterior o entorno y determina los planes de accin alternativos o lo que es lo mismo la respuesta a la interaccin con ese medio. Cada lenguaje se ha diseado tomando como base un robot en especfico del mercado, lo que anula su universalidad y la posibilidad de emplearlo en modelos diferentes. Se logr alcanzar los conocimientos sobre los tipos de programacin que usan en los robots. Se lograron comprender los conceptos tericos de programacin de robot manipuladores de objetos. Se pusieron en prctica comandos bsicos de programacin de robots manipuladores en solucin de un ejercicio prctico por parte del grupo colaborativo.

Se demostr la asimilacin de los conceptos centrales abordados en la tercera unidad del curso.

REFERENCIAS BIBLIOGRFICAS.

Freddy F Valderrama Gutirrez, y Alfredo Lpez (2010). Modulo de ROBOTICA, Universidad Nacional Abierta y a Distancia UNAD, Escuela de Ciencias Bsicas Tecnologa e Ingeniera, Duitama. Marina Beltrn Blanco. SIMUROB manual del usuario. Proyecto fin de carrera.

CIBERGRAFA

Compaa Monografas S.A. Extrado el 19 de noviembre de 2013 desde: http://www.monografias.com/trabajos3/progrob/progrob.shtml .

Instituto nacional de tecnologa. Madrid Espaa . Extrado el 19 de noviembre de 2013 desde: http://platea.pntic.mec.es/vgonzale/cyr_0708/archivos/_15/Tema_5.6.htm

You might also like