miércoles, 15 de abril de 2009

LENGUAJES DE PROGRAMACION PARA ROBOTS



Elisa Zambrano

“El auténtico problema no es si las máquinas piensan, sino si lo hacen los hombres”
Frederic Burrhus Skinner

En las máquinas controladas por sistemas informáticos, el lenguaje es el medio que utiliza el hombre para gobernar su funcionamiento, por lo que su correcta adaptación 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, enseñanza y repetición y lenguajes de programación de alto nivel.

Los
sistemas de reconocimiento de la voz en la tecnología 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 más rápidos componentes de las computadoras y algoritmos de procesamiento más eficientes, la utilidad del reconocimiento de palabras separadas para describir la tarea de un robot es bastante limitada.

La enseñanza y repetición, también conocido como guiado, es la solución más común utilizada en el presente para los robots industriales. Este
método implica enseñar al robot dirigiéndole los movimientos que el usuario desea que realice.
La enseñanza y repetición se lleva a cabo normalmente con los siguientes pasos: 1) dirigiendo al robot con un
movimiento lento utilizando el control manual para realizar la tarea completa y grabando los ángulos del movimiento del robot en los lugares adecuados para que vuelva a repetir el movimiento; 2) reproduciendo y repitiendo el movimiento enseñado; 3) si el movimiento enseñado es correcto, entonces se hace funcionar al robot a la velocidad correcta en el modo repetitivo.

Guiar al robot en
movimiento lento, puede ser en general llevado a cabo de varias maneras: usando un joystick, un conjunto de botones (uno para cada movimiento) o un sistema de manipulación maestro-esclavo.

Los
lenguajes de programación de alto nivel suministran una solución más general para resolver el problema de comunicación hombre-robot. En la década 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 interacción entre el robot y su entorno y pueden ser programadas fácilmente por guiado. Sin embargo, la utilización de robots para llevar a cabo las tareas requieren técnicas de
programación en lenguajes de alto nivel ya que el robot de la línea de producción suele confiar en la realimentación de los sensores y este tipo de interacción sólo puede solo puede ser mantenida por métodos de programación que contengan condiciones.

Los lenguajes clásicos empleados en
informática, como el FORTRAN, BASIC, PASCAL, etc., no disponen de las instrucciones y comandos específicos que necesitan los robots, para aproximarse a su configuración y a los trabajos que han de realizar. Esta circunstancia, ha obligado a los constructores de robots e investigadores a diseñar lenguajes propios de la Robótica. 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 aparición de lenguajes transportables entre máquinas y por lo tanto de carácter universal.

La
estructura del sistema informático del robot varía notablemente, según el nivel y complejidad del lenguaje y de la base de datos que requiera.

Clasificación de la Programación usada en Robótica:

La
programación empleada en Robótica puede tener un carácter explícito, 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 modelación del mundo exterior, cuando se describe la tarea y el entorno y el propio sistema toma las decisiones.

La
programación explícita es la utilizada en las aplicaciones industriales y consta de dos técnicas fundamentales:
Programación Gestual.
Programación Textual.
La programación 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 programación, exige el empleo del manipulador en la fase de enseñanza, o sea, trabaja "on-line".

En la programación textual, las
acciones que ha de realizar el brazo se especifican mediante las instrucciones de un lenguaje. En esta labor no participa la máquina (off-line). Las trayectorias del manipulador se calculan matemáticamente con gran precisión y se evita el posicionamiento a ojo, muy corriente en la programación gestual.

Los
lenguajes de programación textual se encuadran en varios niveles, según se realice la descripción del trabajo del robot. Se relacionan a continuación, en orden creciente de complejidad:
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.
Programación Gestual o Directa:

En este tipo de programación, el propio brazo interviene en el trazado del camino y en las
acciones a desarrollar en la tarea de la aplicación. Esta característica determina, inexcusablemente, la programación "on-line". La programación gestual se subdivide en dos clases:
v Programación por
aprendizaje directo.
v Programación mediante un dispositivo de enseñanza.
En
el aprendizaje directo, el punto final del brazo se traslada con ayuda de un dispositivo especial colocado en su muñeca, o utilizando un brazo maestro o maniquí, sobre el que se efectúan los desplazamientos que, tras ser memorizados, serán repetidos por el manipulador.

La técnica de
aprendizaje directo se utiliza, extensamente, en labores de pintura. El operario conduce la muñeca 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 programación, los operarios sin conocimientos de "software", pero con experiencia en el trabajo a desarrollar, pueden preparar los programas eficazmente.

La programación por
aprendizaje directo tiene pocas posibilidades de edición, ya que, para generar una trayectoria continua, es preciso almacenar o definir una gran cantidad de puntos, cuya reducción origina discontinuidades. El "software" se organiza, aquí, en forma de intérprete.

La programación, usando un dispositivo de enseñanza, consiste en determinar las
acciones y movimientos del brazo manipulador, a través de un elemento especial para este cometido. En este caso, las operaciones ordenadas se sincronizan para conformar el programa de trabajo.

El dispositivo de enseñanza 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 enseñada. Hay que tener en cuenta que los dispositivos de enseñanza modernos no sólo permiten controlar los movimientos de las articulaciones del manipulador, sino que pueden, también, generar funciones auxiliares, como:
v Selección de velocidades.
v Generación de retardos.
v Señalización del
estado de los sensores.
v Borrado y modificación de los puntos de trabajo.
v
Funciones especiales.

Al igual que con la programación directa, en la que se emplea un elemento de enseñanza, el usuario no necesita conocer ningún
lenguaje de programación. Simplemente, debe habituarse al empleo de los elementos que constituyen el dispositivo de enseñanza. De esta forma, se pueden editar programas, aunque como es lógico, muy simples.

La
estructura del "software" es del tipo intérprete; sin embargo, el sistema operativo que controla el procesador puede poseer rutinas específicas, que suponen la posibilidad de realizar operaciones muy eficientes.

Los
lenguajes de programación gestual, además de necesitar al propio robot en la confección del programa, carecen de adaptabilidad en tiempo real con el entorno y no pueden tratar, con facilidad, interaciones de emergencia.

No hay comentarios:

Publicar un comentario