Trabajo colaborativo 3
ROBOTICA. 299011_3
Alejandro Cano Mosquera Código: 16.375.904 Andrés Felipe Salgado Cifuentes Código: 16.867.083 Héctor Fabio Valles Mina Código: 16.944.182 William Hernando Quiroz Código: 14.695.880 Jhon Alexander Giraldo Código: 14.572.334.
Tutor: Sandra Isabel Vargas Universidad Nacional Abierta y a Distancia (UNAD) Programa de Ingeniería Electrónica 2014 - 2
2. INTRODUCCION
Al comienzo del presente trabajo colaborativo 3, se reconoce que en las máquinas controladas por sistemas informáticos, informáticos, el lenguaje 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 lenguajes de programación de alto nivel suministran una solución más general para resolver el problema de comunicación hombre-robot. La utilización de robots para llevar a cabo las tareas requiere técnicas de programación en lenguajes de alto nivel ya que el robot de la línea de producción suele confiar confiar en la realimentación de los sensores y este tipo de interacción sólo puede ser mantenida por métodos de programación que contengan condiciones específicas a cada equipo. También se hizo uso del simulador para robótica SimuRob, el cual es un programa simulador del robot antropomórfico IRB-1400, bajo Windows, programado en Visual C++. El interfaz con el usuario consta básicamente de una ventana principal y una consola virtual de programación. La mitad derecha de la ventana principal está dedicada a la representación gráfica del robot virtual y la escena programada. La mitad izquierda está destinada a la edición de programas RAPID (lenguaje de programación del IRB-1400). Este permite a los alumnos aprender el manejo del robot y la programación de sus movimientos, el conocimiento en profundidad de su cinemática directa e inversa, alineación de ejes, configuraciones singulares entre otros.
3. FASE 1, CONCEPTUALIZACION.
Investigar y documentar cuales son los lenguajes de programación utilizados en robótica, como se clasifican y cuáles son los criterios de selección de un lenguaje de programación.
Mencione 5 lenguajes de programación, y mencione sus principales características. La descripción de cada uno de ellos no debe superar media página.
Primero debemos definir que es un lenguaje de programación:
LENGUAJE DE PROGRAMACIÓN Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación. También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación
Cuando se programa un manipulador lo que se necesita usualmente es situar su punto terminal en una localización determinada del espacio, haciendo además que la dirección de aproximación a la misma esté también definida. Pero no sólo es importante que el manipulador alcance determinados puntos del espacio, sino que lo haga en el momento adecuado. Así, es preciso distinguir entre: •Camino, sucesión de puntos del espacio. •Trayectoria, camino s ujeto a condiciones temporales.
Generalmente, es necesario diseñar y programar trayectorias, rectas o curvas arbitrarias en el espacio cartesiano, para lo cual es importante conocer la relación entre la trayectoria cartesiana del punto terminal y la de las articulaciones. La programación de un robot resulta un proceso continuo de ensayo y error. La mayoría de entornos de programación son interpretados, pudiéndose 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 depuración y ejecución paso a paso. La clasificación de los lenguajes se realiza en función de la sintaxis del lenguaje y de su complejidad y se distinguen en tres tipos:
Secuenciadores de Instrucciones: Almacena una secuencia de posiciones y de acciones, para repetirla posteriormente en un orden prácticamente fijo. Ejemplo, la apertura o cierre de una pinza de un manipulador.
Lenguajes específicos para robots: Diseñados normalmente por cada firma comercial para sus robots, teniendo en cuenta únicamente sus propios sensores y actuadores.
Extensiones de lenguajes clásicos: Se trata de módulos de ampliación específicos para el manejo de sensores y actuadores, desarrollados para lenguajes de propósito general como C, Pascal o Basic, que conservan la sintaxis general y los métodos de control de flujo de los mismos.
Los lenguajes en función del nivel de abstracción que permiten a la hora de especificar la tarea son: Orientados al Robot: Son órdenes para la lectura de estado de los sensores y para el movimiento de los actuadores. El programador debe establecer de modo secuencial cual será el comportamiento de los actuadores en función de las señales de los sensores, estos se dividen en:
De aprendizaje: Permiten la lectura automática de variables de posición y su modificación en modo texto. Ejemplos, APT (Automatically Programmed Tools) y MCL (Macintosh Common LISP)
Estructurados: Permiten la comprobación puntual o continua de las señales sensoriales, y la realización de movimientos de aproximación en cualquier dirección del espacio cartesiano. Ejemplos, KAREL (language para el robot Karel), SRL (Structured Robot Language), AL (Assembly Language) VALL II.
Experimentales o prototipos de investigación: Cuyo resultado no es una repetición de las acciones, sino la generación de programas con instrucciones de movimiento y variables libres, que puede ser editado con posterioridad para modificar las posiciones absolutas y añadir instrucciones de comprobación de las señales sensoriales. Ejemplo, LM (Language Model).
Enseñan al robot estrategias sensoriales mediante la extracción de valores clave de entre todos los valores sensoriales almacenados gracias a la detención de las situaciones en las que se ha modificado o interrumpido el movimiento. Ejemplo XPROBE.
Orientados a la Tarea: El programador debe establecer cuáles son las acciones que debe ejecutar el robot. Es el sistema el que decide que movimientos y comprobaciones sensoriales debe realizar y en qué orden. Las decisiones se tomen en función de:
Objetivos propuestos: La tarea se describe en lenguaje de alto nivel mediante instrucciones en forma textual o utilización de una interfaz gráfica.
El estado en cada momento del mundo del robot: Un módulo planificador consulta una base de datos, denominada el modelo del mundo, y transforma las especificaciones de la tarea en un programa orientado al robot.
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:
A.
Programación Gestual.
B.
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 (offline). 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: 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.
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: •
Programación por aprendizaje directo.
•
Programación mediante un dispositivo de enseñanza.
PROGRAMACIÓN TEXTUAL EXPLICITA El programa queda constituido por un texto de instrucciones o sentencias, cuya confección no requiere de la intervención del robot; es decir, se efectúan "off-line". Con este tipo de programación, el operador no define, prácticamente, las acciones del brazo manipulado, sino que se calculan, en el programa, mediante el empleo de las instrucciones textuales adecuadas. Dentro de la programación textual, existen dos grandes grupos, de características netamente diferentes: 1.
Programación textual explícita.
2.
Programación textual especificativa.
Dentro de la programación explícita, hay dos niveles: 1º. Nivel de movimiento elemental 2º. Nivel estructurado
PROGRAMACIÓN TEXTUAL ESPECIFICATIVA Se trata de una programación del tipo no procesal, en la que el usuario describe las especificaciones de los productos mediante una modelización, al igual que las tareas que hay que realizar sobre ellos. El sistema informático para la programación textual especificativa ha de disponer del modelo del universo, o mundo donde se encuentra el robot. Este modelo será, normalmente, una base de datos más o menos compleja, según la clase de aplicación, pero que requiere, siempre, computadoras potentes para el procesado de una abundante información. El trabajo de la programación consistirá, simplemente, en la descripción de las tareas a realizar, lo que supone poder llevar a cabo trabajos complicados.
LENGUAJES DE PROGRAMACIÓN GESTUAL PUNTO A PUNTO Se aplican con el robot "in situ", recordando a las normas de funcionamiento de un magnetofón 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). Conceptualmente, ala estar el manipulador en línea funciona como un digitalizador de posiciones. LENGUAJES DE PROGRAMACIÓN A NIVEL DE MOVIMIENTOS ELEMENTALES 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.
LENGUAJES ESTRUCTURADOS DE PROGRAMACIÓN EXPLÍCITA La programación explicita es la utilizada en las aplicaciones industriales y consta de dos técnicas fundamentales: a) programación gestual, guía 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; b) 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 maquina (off-line). Las trayectorias del manipulado r se calculan matemáticamente con gran precisión. Los niveles según el trabajo del robot: lenguajes elementales, que controlan directamente el movimiento de las articulaciones del manipulador; lenguajes dirigidos a posicionar el elemento terminal del manipulador; lenguajes orientados hacia el objeto sobre el que opera el sistema; lenguajes enfocados a la tarea que realiza el robot.
LENGUAJES DE PROGRAMACIÓN 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. CRITERIOS DE SELECCIÓN DE UN LENGUAJE DE PROGRAMACIÓN
Las diez características básicas de un lenguaje ideal 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. 7. Transportabilidad sobre cualquier equipo mecánico o informático. 8. Adaptabilidad a sensores (tacto, visión, etc.). 9. Posibilidad de descripción de todo tipo de herramientas acoplables al manipulador. 10. 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. 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. 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.
Tabla resumen de los lenguajes más importantes de programación de robots industriales:
3. FASE 2, SIMULACION.
2.1 Descargar el simulador SIMUROB que se encuentra en el link de material de apoyo a la formación del curso dentro del área de contenidos.
2.2 Descargar el manual de usuario (también en material de apoyo), leerlo y probar las diferentes características del programa.
2.3 OPCIONAL: Descargar y probar un programa de ejemplo (soldadura1.PRG) que también lo encontrará en el material de apoyo, los pasos para probarlo los encontrará en el manual de usuario.
2.4 Tomar pantallazos del trabajo realizado con SIMUROB hasta el momento y compartirlos con sus compañeros en el foro, Comente allí también sobre posibles fallos o bondades del software. Esta es la pantalla principal del simulador SIMUROB, en la cual se realizaron las distintas pruebas después de leer el manual.
Se hizo reconocimiento de la consola virtual, e hizo algunos ejercicios con el mismo.
Se encontró la manera de visualizar los ejes y realizar movimientos para corroborar los mismos. Se hizo acercamiento y verificación de puntos precisos.
Se ejecutó planta/alzado, observar trazos y cambio de fondo.
Cambio de positivo a negativo, lo cual sirve para ver el contraste entre el robot y las piezas a ubicar.
Por ultimo un programa realizado con la consola virtual de programación
A favor del software, se puede decir que SimuRob permite programar movimientos y trayectorias que luego pueden ser ejecutados en el robot real. En este sentido el simulador incluye herramientas virtuales como pinzas y pistola de soldadura que permiten operar de forma similar a como lo haría el robot IRB-1400. El código del SimuRob es abierto y accesible a los programadores, siendo posible crear nuevos robots, montar una pequeña célula de fabricación flexible, probar nuevos algoritmos en la generación de trayectorias, entre otros.
4. PROGRAMA.
Como evidencia de la realización, del programa en SimuRob, se adjunta link del video realizado en YouTube para su comprobación , se escogió la simulación del compañero Andrés Felipe salgado.
https://www.youtube.com/watch?v=006SpkkB6ms Se anexa el programa que ejecuta los movimientos del robot.
TC3_robotica_2014_2.txt
TC3_robotica_2014_2.PRG
Se adjuntan pantallazos del mismo. Imagen 1. Estado inicial del sistema
Imagen 2. Desplazamiento hacia el objeto
Imagen 3. Se deja el objeto en el lugar deseado
5. CONCLUSIONES
Por medio del presente trabajo, aprendimos a conocer las características más relevantes en la programación de un robot, y los distintos lenguajes de programación utilizados en el mercado. Generalmente un buen lenguaje de programación puede caracterizarse por: •
Su claridad y su sencillez.
•
La de estructura del programa.
•
Su sencillez de aplicación.
•
Su facilidad de ampliación.
•
Su facilidad de corrección y mantenimiento.
•
Su eficacia.
También se abordó el simulador SimuRob, el cual nos sirvió para programar el robot IRB-1400. SimuRob ha sido diseñado para ofrecer un fácil manejo del mismo, pudiendo ser manipulado por usuarios sin experiencia, con pocas nociones de robótica, ni el lenguaje de programación de robots RAPID, pudiendo ser empleado en el aprendizaje del manejo del robot IRB-1400, debido a la similitud de su consola virtual, con la consola real.
6. REFERENCIAS BIBLIOGRAFICAS
Unidad III. ACTUALIDAD EN ROBÓTICA, Capitulo 1: PROGRAMACIÓN DE ROBOTS,
UNAD;
recuperado
de:
http://66.165.175.211/campus13_20142/file.php/304/contenido_en_linea2/Roboti ca2/Robotica2/capitulo_1_programacin_de_robots.html
SIMUROB. Manual del Usuario, Proyecto Fin de Carrera de Marina Beltrán Blanco. Simulador del Robot IRB-1400,
Valeras, J., (2010). Robótica y programación. Innovación y experiencias educativa, N° 29, 1-19. Recuperado de: http://www.csicsif.es/andalucia/modules/mod_ense/revista/pdf/Numero_29/JUAN_JOSE_VALE RA_ARCAS_2.pdf Robótica.
Juan
Domingo
Esteve
(originalmente
en
http://ingenieroseninformatica.org/recursos/tutoriales/aprob).
Tecnologías de la Información y de la Comunicación. Capítulo 6, Programación y control de procesos. Juan A. Alonso, Santiago Blanco A., Santiago Blanco S., Roberto escribano, Víctor R. González, Santiago Pascual, Amor Rodríguez. Editorial Ra-Ma 2004.
Control y Robótica. Tema: Fundamentos de robótica. Curso provincial. CFIE Valladolid II. Víctor R. González. Asesoría de Tecnología y FP.
Candelas, S., (2014). Lenguaje de programación de los Robots. Recuperado de http://cursos.itcg.edu.mx/libros/ROBOTICA/TODO%20SOBRE%20ROBOTICA/A utoPlay/Docs/MODULO%202/22%20Lenguaje%20de%20Programaci%F3n.pdf