Fundamentos de Robótica. Guía 2 1 Facultad: Ingeniería. Escuela: Electrónica Asignatura: Fundamentos de Robótica Lugar de ejecución: iCIM Lab. Edificio 3. Primera planta. Tema: Programación del Robot Mitsubishi. Parte I. Tiempo de ejecución: 2 horas. Objetivo General Programar de forma básica un robot industrial del laboratorio. Objetivos específicos • • • Definir las posiciones en el software CIROS Robotics para los movimientos que realizará el robot Mitsubishi. Crear programas en el lenguaje Melfa Basic IV para realizar tareas de desplazamiento de piezas de un robot Mitsubishi. Simular la ejecución de programas en el ambiente 3D del software CIROS Robotics. Introducción Teórica 1. Estructura de la programación en CIROS Robotics. Estructura del proyecto Todo proyecto generado con el software de programación CIROS Robotics consta de diferentes archivos que conforman el proyecto. • El archivo *.PRJ es el archivo que guarda nuestra configuración del proyecto y asocia a este el listado de posiciones, así como el programa. (Este archivo no se deberá cargar en el robot). • El archivo *.POS es el listado de posiciones del proyecto estas posiciones podrán ser modificadas más tarde con la consola si se desea. (Es recomendable que el listado de posiciones como el programa se carguen en el robot con el mismo nombre de archivo). • El archivo *.MB4 es el archivo que contiene la programación de la secuencia que se desea que ejecute el robot que en este caso se ha generado en el lenguaje MELFA BASIC 4. (Este archivo junto con el listado de posiciones son los que se tienen que descargar al robot para ejecutar la secuencia). NOTA: Este mismo formato de archivos y procedimiento de relación de los diferentes archivos de proyecto es el mismo en el software de modelado, carga/descarga y depuración en línea CIROS Studio. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 2 Estructura del programa Como cualquier tipo de programa, el programa de la secuencia de un brazo robot mantiene una estructura determinada que ayuda a la comprensión de este. El programa debe de tener una estructura determinada. Lo primero que habrá en el programa es una zona de declaración de las diferentes variables. Seguido se colocará el programa principal que acaba con la instrucción END después del programa principal se colocan las diferentes subrutina a las que se hayan llamado que finalizan con la instrucción RETURN. Comentarios TOMAR Definición de posiciones Definición de I/O Definición de variables Número de línea de instrucción Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 3 Programa principal Etiqueta Llamada a Subrutina Salto a línea Inicio Subrutina Final Figura 1. Estructura de los programa en el lenguaje Melfa Basic IV. Líneas de instrucción El programa se construye en base a líneas de instrucción que se ejecutarán de manera secuencial, excepto que haya instrucciones de salto, bucles o llamadas a subrutina. Los elementos que las forman se muestran a continuación. Ejemplo de declaración de un comando: 10 MOV P1 WTHM_OUT (17) = 1 • • • • Número de línea Es el número usado para determinar el orden de ejecución del programa. El programa se ejecutará en orden ascendente. Nemotécnico de la instrucción Es un comando que designa la operación a realizar por el robot. Dato El dato puede ser un valor o una variable del tipo requerido por la instrucción. Declaración añadida Solo se usa si es necesario. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 4 Tipos de variables Figura 2. Jerarquía de las variables en los programa en el lenguaje Melfa Basic IV. • • • • POSICIÓN: Coordenadas ortogonales de la posición. El nombre de la variable empieza por P. ANGULOS DE EJE: Ángulos de las articulaciones. El nombre de la variable empieza con J. ARITMÉTICA: Valor numérico (entero, real,..). El nombre empieza por M. CARÁCTER: Cadenas de letras. El nombre de la variable termina en $. 2. Instrucciones básicas En la programación de brazos robot, siempre persiste un tipo de instrucciones básicas para todos los tipos software que son aquellas que definen los movimientos más simples del brazo y que por sí solas son las base de la mayoría de las secuencias de una aplicación. Movimiento No Interpolado El Robot genera una trayectoria cualquiera entre el punto origen y el punto de destino, obteniendo para cada una de las articulaciones del robot, las coordenadas, velocidad y aceleración que a lo largo del tiempo se han de imprimir para lograr el movimiento especificado. Pese a su complejidad es la forma más rápida para el robot. Figura 3. Tipo de movimiento no interpolado (MOV) en el lenguaje Melfa Basic IV. • MOV El robot se mueve a la posición indicada con una interpolación angular de cada eje. El camino recorrido no se puede prever. Se pueden introducir las declaraciones añadidas WTH o WTHIF. Ejemplos de llamadas de instrucción: Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 5 MOV P1............. Se mueve a P1. MOV P1+P2....... Se mueve a la posición resultante de sumar las coordenadas de P1 y P2. MOV P1*P2....... Se mueve a la posición relativa convertida de P1 a P2. MOV P1, -50...... Se mueve desde P1 hasta una posición a 50mm en la dirección de la pinza. MOV P1 WTHM_OUT(7)=1… Empieza el movimiento hacia P1, y simultáneamente enciende la salida 7. MOV P1 WTHIFM_IN(9)=1, SKIP. . Si durante el movimiento hacia P1 el bit 9 de entrada se activa, se para el movimiento y el programa sigue. Programa ejemplo: 10 MOV P1 20 MOV P2, -50 30 MOV P2 40 END Figura 4. Ejemplo del tipo de movimiento no interpolado (MOV) en el lenguaje Melfa Basic IV. Movimiento lineal Interpolado El Robot describe una línea recta entre los puntos origen y destino. Es un movimiento lento para el robot y solo se emplea en movimientos críticos cuando el robot se encuentra cerca de completar su trabajo (agarrar pieza, dejar pieza, soldar un punto, aplicar adhesivo). Figura 5. Tipo de movimiento lineal interpolado (MVS) en el lenguaje Melfa Basic IV. • MVS El robot se mueve en línea recta hacia la posición indicada. Se pueden introducir las declaraciones añadidas WTH o WTHIF. Ejemplos de llamadas de instrucción: MVS P1............. Se mueve hasta P1. MVS P1+P2....... Se mueve a la posición resultante de sumar P1 y P2. MVS P1*P2........Se mueve a la posición relativa convertida de P1 a P2. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 6 MVS P1, -50......Se mueve desde P1 hasta una posición a 50mm en la dirección de la pinza. MVS , -50.......... Se mueve 50mm desde la posición actual en la dirección de la pinza. MVS P1 WTH M_OUT(7)=1.......... Empieza el movimiento hacia P1, y simultáneamente enciende la salida 7. MVS P1 WTHIF M_IN(9)=1, SKIP.............. Si durante el movimiento hacia P1 el bit 9 de entrada se activa, se para el movimiento y el programa sigue. MVS P1, TYPE 0, 2......... Se mueve hasta P1 con una interpolación ABC. MVS P1, TYPE 0, 1......... Se mueve a P1 con una interpolación ortogonal de 3 ejes. • HOPEN / HCLOSE Abre/cierra la pinza designada. Ejemplo de llamada de instrucción: HOPEN 1........... Abre la pinza 1 HCLOSE 1......... Cierra la pinza 1 • OVDR Designa la velocidad de movimiento según un porcentaje relativo a la velocidad máxima. Afecta a todos los movimientos posteriores, si es que no se vuelve a modificar el valor. Ejemplo de llamada de instrucción: OVRD 60............Fija la velocidad de todos los movimientos al 60% de la velocidad máxima. • SPD Define la velocidad de interpolación linear y circular(para instrucciones MVS, MVR y MVC) de la pinza en mm/s. Ejemplo de llamada de instrucción: SPD 30.............. Configura la velocidad de los movimientos lineales y circulares en 30mm/s. • DLY Espera los segundos indicados (el mínimo es 0.05), y luego sigue con el programa. Ejemplo de llamada de instrucción: DLY 3.................Espera 3 segundos antes de seguir. 3. Instrucciones de movimiento • MVR El robot se mueve por una circunferencia definida por tres puntos. Si al empezar el movimiento no se encuentra en el punto de inicio, se moverá linealmente hasta él antes de empezar. Se pueden introducir las declaraciones añadidas WTH o WTHIF. MVR: Se define el punto de inicio, uno de tránsito, y el punto final. MVR2: Se define la posición inicial, la final, y un punto de referencia por el que no pasará. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 7 MVR3: Se define el punto inicial, el final y el centro del círculo. El movimiento va del inicial al final por el camino más corto del círculo. MVC: Se define la posición de inicio (y final), punto de tránsito 1, y punto de tránsito 2. El movimiento sigue el recorrido: inicio tránsito1 tránsito2 final. Ejemplos de llamadas de instrucción: MVR P1, P2, P3...............Se mueve con una interpolación circular entre P1P2P3. MVR P1, P2, P3 WTH M_OUT(7)=1.........Interpolación circular entre P1P2P3, y el bit 7 se activa. MVR P1, P2, P3 WTHIF M_IN(9)=1, SKIP................Si el bit 9 se activa durante el movimiento, se para y sigue en el siguiente paso. MVR P1, P2, P3 TYPE 0, 1.............Se mueve con una interpolación circular entre P1P2P3. MVR2 P1, P2, P3............. Interpolación circular de P1 a P2, sin pasar por P3. MVR3 P1, P3, P4.............Se mueve con una interpolación circular de P1 a P3 por el camino más corto. El punto P4 es el centro. MVC P6, P8, P9............... Movimiento circular P6P8P9P6. Programa ejemplo: 10 MVR P1, P2, P3 20 MVR2 P3, P4, P5 30 MVR3 P4, P6, P7 40 MVC P6, P8, P9 50 END Figura 6. Ejemplo del tipo de movimiento circular en el lenguaje Melfa Basic IV. • CNT Define el principio y el final de un movimiento continuo. Ejemplos de llamadas de instrucción: CNT 1.................Define el inicio del movimiento continuo. CNT 1, 100, 200...............Define el inicio del movimiento continuo, la distancia de separación con el punto inicial, y la distancia de separación con el punto final. CNT 0.................Define el final del movimiento continuo. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 8 Programa ejemplo: 10 MOV P1 20 CNT 1 30 MVS P2 40 CNT 1, 50, 100 50 MVS P3 60 MVS P4 70 CNT 0 80 END Figura 7. Ejemplo de aplicación del movimiento continuo (CNT) en el lenguaje Melfa Basic IV. • ACCEL Define la aceleración y desaceleración durante el movimiento como un porcentaje del máximo. Ejemplos de llamadas de instrucción: ACCEL.................Configura la aceleración y la desaceleración al 100%. ACCEL 60, 80.......Configura la aceleración al 60% y la desaceleración al 80%. • JOVDR Define la velocidad de movimiento angular axial (para instrucciones MOV), como un porcentaje de la máxima. Ejemplo de llamada de instrucción: JOVRD 70...........Configura la velocidad del movimiento angular de cada eje al 70% de la máxima. • HLT Para la ejecución del programa y entra en el estado de paro. Ejemplos de llamadas de instrucción: HLT.....................Para la ejecución del programa. IF M_IN(8)=1 THEN HLT................Para la ejecución del programa cuando se activa la señal de entrada M_IN(8). MOV P3 WTHIF M_IN(9)=1, HLT................Para la ejecución del programa si la señal de entrada M_IN(9) se activa durante el movimiento a P3. • FINE Define las condiciones de posicionamiento final con un número de pulsos. Ejemplo de llamada de instrucción: FINE 100............Configura las condiciones de posicionamiento final a 100 pulsos. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 9 • TOOL Configura la forma de la herramienta que usamos, y configura el punto de control. Ejemplo de llamada de instrucción: TOOL P60.......... Define la forma guardada en P60. 4. Programación de trayectorias (Metodología Ford) Cuando se programan trayectorias generalmente ubicamos las siguientes posiciones: • Posición de HOME: Generalmente es la posición de privilegio en donde el efector final (Pinza en este caso) tiene acceso a las demás posiciones asegurándonos de que no existan colisiones en el entorno. • Posición de Acercamiento: Se ubica a poca distancia del objeto y a partir de esa posición se programan movimientos suaves y finos para llegar a la posición de agarre. • Posición de Agarre: es la coordenada en donde se ubica el objeto para su sujeción o agarre para manipularlo, trasladarlo, etc. Materiales y equipos 1 Computadora personal o portátil con Windows. 1 Software CIROS Robotics Procedimiento Parte I. Definición de posiciones en CIROS Robotics. 1. Ejecute el programa de simulación CIROS Robotics, de clic en la línea sombreada en la siguiente figura. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 10 Figura 8. Búsqueda del programa CIROS Robotics dentro de Todos los Programas de Windows 7. 2. Una vez abierta la aplicación, el primer paso es crear un proyecto en File→New→Project Wizard Figura 9. Menú File del programa CIROS Robotics. Un proyecto en este software significa todo el conjunto de situaciones particulares acerca de la simulación que se va a correr. Se abrirá una serie de ventanas que recopilará esta información. 3. La primera ventana recopila información acerca del nombre del proyecto. Proporcione el nombre que considere conveniente, en Program Name escriba una secuencia corta de letras mayúsculas y números. Recuerde bien el nombre del programa, es el nombre que llevará el programa principal del proyecto que usted desarrollará, y en el momento de crear su programa principal deberá tomar el nombre y ubicación que ha dado en esta etapa de la definición del proyecto. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 11 Figura 10. Ventana del Asistente del proyecto de CIROS Robotics. 4. La ventana siguiente pedirá información acerca del robot. Si desea trabajar con los modelos del iCIM escoja cualquiera de los siguientes, con las especificaciones que se muestran. Figura 11. Ventana del Parámetros del Robot del Asistente del proyecto de CIROS Robotics. 5. La tercera ventana preguntará por los cambios realizados a manera de comentario. No es un campo requerido pero puede escribir lo que usted considere le servirá después. 6. Presione finish para iniciar con el proyecto de simulación. 7. Le aparecerán en la pantalla de la aplicación cuatro ventanas con información acerca de su proyecto. La ventana superior izquierda muestra al robot que usted escogió, otra ventana muestra el listado de posiciones, otra muestra las líneas de comando del programa principal del robot y una tercera ventana muestra los mensajes de alarma del sistema. 8. A continuación se muestra la pantalla principal de un proyecto recién abierto. Tanto el nombre del Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 12 archivo del programa como el nombre del archivo de las posiciones llevan el nombre que se digitó en el campo Program Name en la inicialización del proyecto. Figura 12. Ventanas del modelo 3D, mensajes, programa y posiciones de CIROS Robotics. 9. Haga clic en la ventana del robot para que la atención de la aplicación se centre en ella. Vaya a View → Standard Views y pruebe cada una de las opciones para que pueda visualizar el robot que ha escogido. 10. Puede hacer la ventana del robot más grande o más pequeña según su percepción personal lo requiera. 11. También puede escoger en el menú View las opciones Zoom In y Zoom Out para aumentar o disminuir el tamaño de la visualización del objeto. 12. Puede moverse dentro de la ventana escogiendo Move en el menú View o presionando el botón e inmediatamente yendo a la ventana, haciendo clic y moviéndose al punto de vista deseado. 13. Puede rotar la vista escogiendo Rotate en el menú View o presionando el botón e inmediatamente yendo a la ventana, haciendo clic y rotando al punto de vista deseado. 14. Explore el menú View para que se sienta cómodo al trabajar en la programación del robot que ha escogido. 15. Para tomar control del robot vaya a Programming → Teach-In para que se le abra la ventana de modo Jog Operation: Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 13 Figura 13. Menú de programación (derecha) y ventana de la operación manual (izquierda) de CIROS Robotics. 16. En este momento usted tiene el control del robot. Con los botones al lado de los nombres de las articulaciones puede mover el robot dentro de la ventana gráfica intente todos los movimientos y compruebe los alcances de cada una de las articulaciones. También puede variar la velocidad de los movimientos del robot utilizando el control Figura 14. Ajuste de la velocidad de movimiento de las articulaciones del robot simulado. A mayor porcentaje, más velocidad. 100% es la velocidad máxima. 17. Puede abrir y cerrar las mordazas del robot presionando el botón Close Hand (al cerrar la pinza el botón cambiará a Open Hand) 18. Hasta este momento usted ha controlado el robot moviendo cada una de sus articulaciones. En procesos cotidianos usted requerirá que la pinza del robot se mueva desde una posición hasta otra llevando algo en ella. Hacer este desplazamiento moviendo una articulación a la vez le resultará muy difícil y tedioso. Afortunadamente hay otra manera de mover al robot todo a la vez cuidando la inclinación de la pinza constante durante todo el trayecto. Este es el modo XYZ 19. Para ingresar a este modo de control del robot escoja XYZ Jog en la ventana Jog Operation. La apariencia de la ventana cambiará, y podrá ver controles para mover el robot en línea recta en X, en Y y en Z. 20. Mueva el robot trazando un cuadrado alrededor de él, esto lo logrará fácilmente utilizando los controles X e Y. Note que existen límites para el movimiento rectilíneo, ya que el robot no puede alcanzar todos los puntos de la línea recta, algunos le resultarán muy lejanos (las esquinas del cuadrado) y algunos le resultarán tan cercanos que sus articulaciones no podrán proporcionar el punto sin antes cambiar la posición de las articulaciones. 21. Al usar el modo Joint se abre la posibilidad de mover individualmente cada articulación del robot. Al momento de elegir el modo JOINT podrá observar que los controles de movimiento cambian y se despliega un control para mover cada articulación en cada sentido. 22. Utilice este tipo de control cuando necesite desarrollar movimientos de alta complejidad que incluyen inclinación o direccionamiento específico del elemento terminal del robot. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 14 Figura 15. Ventana de operación manual del robot, por medio de cada articulación. 23. Se aprendió en el modo XYZ que en ese tipo de control de movimiento el elemento terminador del robot (pinza) conservaría su inclinación y sentido y que se movería siguiendo en forma paralela los ejes cartesianos absolutos. El modo Tool también permite el control de movimiento en forma paralela a los ejes, pero con la particularidad que los ejes que sigue el movimiento del modo Tool no son paralelos a los ejes absolutos. Al trabajar en el modo Tool el control de movimiento seguirá paralelamente los ejes que definen la inclinación y sentido del elemento terminador. De esta manera si la extremidad final del robot está inclinada en un sentido, los ejes en los cuales se moverá seguirán paralelamente los ejes inclinados que definen la extremidad final del robot. En la siguiente figura se muestran los ejes a lo largo de los cuales se movería el elemento terminador del robot al escoger este tipo de control de movimiento. Figura 16. Operación manual del robot, por medio del marco de referencia trasladado al elemento terminal. Observe que los ejes no son paralelos a X, Y, Z sino que tienen su propia dirección y sentido particular y están alineados con el elemento terminal. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 15 24. El robot se moverá desde una posición inicial a una posición final en cada uno de sus movimientos. Algunas posiciones están definidas para realizar una labor específica en esa posición, tal como asir un objeto, si se trata de un robot con pinza o mordaza u otra labor de ensamble, como apretar un tornillo o aplicar una sustancia adhesiva. Otras posiciones son simplemente el punto de origen para iniciar el movimiento hacia otra posición, y otras son simplemente el punto neutral entre muchas posiciones. Se ubicará la pinza del robot en la posición inicial en el plano de referencia horizontal (lo que la visualización representa como el piso) cualquier ubicación que sea en z=0. Se guardará esta posición como POSICION1. 25. Ubique la pinza del robot en el lugar indicado, y presione en la ventana de control de movimiento del robot (JOG Operation) el botón . 26. Si usted recién acaba de iniciar un proyecto usted tendrá en la pantalla principal la ventana del listado de posiciones, y en ella aparecerá la información de la posición que acaba de dar. Las posiciones en la tabla de posiciones quedan definidas como una serie de 6 coordenadas: (X,Y,Z,Roll,Pitch,Yaw) las coordenadas X, Y, Z definen las posiciones cartesianas del elemento terminal respecto al origen del robot. Las coordenadas ya se han explicado en el apartado de manipulación del robot de la práctica anterior. Si ha seleccionado el robot RV-2A sobre el eje lineal, le aparecerá una ventana con la información de la posición. Dé doble clic en la línea que tiene la posición que acaba de guardar. Aparecerá una ventana como la que se muestra: Figura 17. Propiedades de la posición absoluta P1. 27. En Position Name puede poner el nombre que desea dar a la ventana (puede colocar aquí la palabra “piso” si lo desea, o cualquier otra palabra que le indique algo para el procedimiento que se propone Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 16 desarrollar. 28. Coloque la pinza del robot en una posición bastante alta y asígnele un nombre que tenga significado para el proceso que está por desarrollar, puede ser P1. 29. Posiciónese en la ventana que muestra las posiciones, y presione el botón guardar en la barra de herramientas superior. Si usted recién acaba de crear el proyecto, usted guardará el archivo que ya existe y que lo creó el sistema al inicializar el proyecto. Si usted no está trabajando con un proyecto recién creado se le pedirá un nombre para el listado de posiciones que ha generado y un tipo de archivo, asigne el mismo nombre que usted dio en para el programa en el inicio de la definición del proyecto, y escoja como tipo de archivo un tipo POS. LOS NOMBRES DEL ARCHIVO DE POSICIONES Y DEL ARCHIVO DEL PROGRAMA DEBEN SER IGUALES, SU ÚNICA DIFERENCIA DEBE SER LA EXTENSIÓN (.POS, .MB4). DE LO CONTRARIO AL MOMENTO DE COMPILAR EL PROYECTO NO SE TOMARÁN COMO INFORMACIÓN COMPLEMENTARIA. 30. Con las posiciones guardadas, podemos proceder ahora a desarrollar el primer programa de secuencias de movimiento del robot. Para iniciar cualquier programa es necesario antes que nada estar en el CIROS Robotics dentro de un Proyecto. 31. Para abrir un listado de posiciones es necesario ir a: File → Open y en el cuadro de diálogo poner el y escoger el listado de posiciones que ya se ha tipo de archivo configurado. 32. Para iniciar un programa es necesario ir a: File → New → File y escoger en el tipo de ventana a abrir la opción que se muestra: Figura 18. Apertura de una nueva ventana del tipo programa Melfa Basic IV. Con lo anterior se abrirá la ventana para la edición de programas. 33. El primer programa consistirá en realizar un programa para que el brazo industrial recoja una pieza en un punto de recogida y la deposite en otro punto. Las aproximaciones a estos dos puntos debe hacerse suavemente (más despacio). Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 17 Figura 19. Espacio de trabajo y posiciones del primer programa de ejemplo. 34. Primero hay que definir las posiciones clave del movimiento, que en este caso serán cinco: -P1 : posición inicial o de reposo -P2 : posición de aproximación a la zona de carga -P3 : posición para coger la pieza -P4 : posición de aproximación a la zona de descarga -P5 : posición donde dejamos la pieza 35. Para definir las posiciones se utilizará la opción 'Jog Operation' que se mencionó en el paso 15. 36. Para insertar las posiciones se sitúa el brazo en la posición deseada y se guarda con el botón 'Current Position > Pos. List'. El programa crea una nueva posición en el listado de posiciones y le pone el nombre Px, donde x es el número de posición que aparece en la ventana anterior. Desde el listado de posiciones podemos cambiar las propiedades de las posiciones. Si ha colocado el eje líneal puede usar una posición de 300 mm constante para todas. En el caso del RV-3SB la orientación C será de 0 en todas las posiciones. Figura 20. Listado de las posiciones del primer programa de ejemplo. 37. Una vez se tienen las posiciones definidas, empezar a programar; para este ejercicio se utilizarán las siguientes instrucciones: - MOV > Realiza un movimiento suave, moviendo los ejes punto a punto. - OVRD > Porcentaje de la velocidad máxima. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 18 - HOPEN > Abre la pinza. - HCLOSE > Cierra la pinza. - DLY > Espera los segundos indicados. 10 '*****************UNIVERSIDAD DON BOSCO****************** 20 '* FUNDAMENTOS DE ROBÓTICA * 30 '* * 40 '* PRÁCTICA - 3 * 50 '* INSTRUCCIONES BÁSICAS * 60 '* PARTE 1 * 70 '* Fecha: * 80 '* Comentarios: * 90 '* * 100 '********************************************************* 110 HOPEN 1 ' Abrir Pinza 120 MOV P1 ' Movimiento no interpolado a la posición 1 130 OVRD 90 ' Velocidad al 90% 140 MOV P2 ' Movimiento no interpolado a la posición 2 150 OVRD 30 ' Velocidad al 30% 160 MOV P3 ' Movimiento no interpolado a la posición 3 170 HCLOSE 1 ' Cierra pinza 180 DLY 0.5 ' Espera de 0.5 segundos 190 MOV P2 ' Movimiento no interpolado a la posición 2 200 OVRD 90 ' Velocidad 90% 210 MOV P4 ' Movimiento no interpolado a la posición 4 220 OVRD 30 ' Velocidad al 30% 230 MOV P5 ' Movimiento no interpolado a la posición 5 240 HOPEN 1 ' Abre pinza 250 MOV P4 ' Movimiento no interpolado a la posición 4 260 OVRD 90 ' Velocidad 90% 270 MOV P1 ' Movimiento no interpolado a la posición 1 280 DLY 3 ' Espera de 3 segundos 290 END ' Fin del programa Figura 21. Código del programa en el lenguaje Melfa Basic IV. 38. Después de introducir el programa, se deben numerar las filas con la opción 39. Guardar el programa e incorporarlo al proyecto que se está desarrollando. Ubique el cursor en la ventana de programa y de clic en save: 'Renumber'. Figura 22. Opción Save del Menú File de CIROS Robotics. Se le abrirá un cuadro de diálogo que preguntará la ubicación del archivo con extensión .MB4 Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 19 LOS NOMBRES DEL ARCHIVO DE POSICIONES Y DEL ARCHIVO DEL PROGRAMA DEBEN SER IGUALES, SU ÚNICA DIFERENCIA DEBE SER LA EXTENSIÓN (.POS, .MB4). DE LO CONTRARIO AL MOMENTO DE COMPILAR EL PROYECTO NO SE TOMARÁN COMO INFORMACIÓN COMPLEMENTARIA. 40. Para compilarlo escoja la secuencia: Figura 23. Opción Compile+Link del Menú Programming de CIROS Robotics. 41. Y luego si emerge la ventana, escoja Add: Figura 24. Menú de gestión del proyecto para CIROS Robotics. 42. Una vez que el programa está guardado puede correrse antes que nada escogiendo el proyecto actual como el proyecto activo. En el menú Programming se escoge la opción Project Management. Figura 25. Opción Project Management... del menú Programming. 43. Con lo anterior se abre la una ventana llamada Project Management, y dentro de la ventana, en la pestaña Project se presiona el botón que se indica en el dibujo, el cual genera el texto de ayuda “Set as Active Project” Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 20 Figura 26. Activación del botón para colocar el proyecto activo en la ventana de gestión del proyecto. 44. En este momento el programa puede ser ya corrido presionando el icono que se muestra en la figura al lado, dicho icono se encuentra en las barras superiores en la pantalla. Figura 27. Arranque de la ejecución del programa por medio del botón Start (F5). Parte II. Ampliación del programa. 45. Eliminar las posiciones de aproximación P2 y P4. A) Utilizar la instrucción ampliada de MOV que permite mover hasta una distancia determinada, por encima de una posición (en la dirección del eje Z de la herramienta). MOV P9, -50...... Movimiento no interpolado hasta una posición 50mm encima de la posición P9. B) Utilizar una posición de offset, definiéndola al inicio del programa y utilizándola sumada a P3 y P5: DEF POS OFFSET OFFSET = (0, 0, +50, 0, 0, 0) … MOV P9 + OFFSET 46. Realice los cambios en el programa por los dos métodos y ejecute la simulación. Parte III. Movimientos circulares 47. Realizar un programa para que el brazo industrial recoja un objeto de un soporte elevado y luego realice dos círculos antes de volver a dejarlo. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 21 Figura 28. Espacio de trabajo y posiciones del segundo programa de ejemplo. Las posiciones necesarias serán: -P1 : posición inicial o de reposo -P2 : posición de recogida -P3 : posición de inicio del circulo -P4 : posición de tránsito 1 -P5 : posición de tránsito 2 Figura 29. Listado de las posiciones del segundo programa de ejemplo. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 22 10 '*****************UNIVERSIDAD DON BOSCO****************** 20 '* FUNDAMENTOS DE ROBÓTICA * 30 '* * 40 '* PRÁCTICA - 3 * 50 '* MOVIMIENTOS CIRCULARES * 60 '* PARTE 3 * 70 '* Fecha: * 80 '* Comentarios: * 90 '* * 100 '********************************************************* 110 HOPEN 1 ' Abrir Pinza 120 OVRD 70 ' Velocidad al 70% 130 MOV P1 ' Movimiento no interpolado a la posición P1 140 DLY 3 ' Espera de 3 segundos 150 MOV P2, -80 ' Movimiento no interpolado a una posición alejada 80mm de la posición P2 160 OVRD 30 ' Velocidad al 30% 170 MVS P2 ' Movimiento recto interpolado a la posición P2 180 HCLOSE 1 ' Cierra pinza 190 DLY 0.5 ' Espera de 0,5 segundos 200 MVS P2, -50 ' Movimiento recto interpolado a una posición alejada 50mm de la posición P2 210 OVRD 70 ' Velocidad al 70% 220 SPD 100 ' Velocidad de movimientos interpolados 100 mm/s 230 MOV P3, -150 ' Movimiento no interpolado a una posición alejada 150mm de la posición P3 240 MOV P3 ' Movimiento no interpolado a la posición P3 250 MVC P3, P4, P5 ' Movimiento circular 260 MVC P3, P4, P5 ' Movimiento circular 270 MOV P3, -150 ' Movimiento no interpolado a una posición alejada 150mm de la posición P3 280 MVS P2, -80 ' Movimiento recto interpolado a una posición alejada 80mm de la posición P2 290 OVRD 30 ' Velocidad al 30% 300 MVS P2 ' Movimiento recto interpolado a la posición P2 310 HOPEN 1 ' Abrir Pinza 320 DLY 0.5 ' Espera de 0,5 segundos 330 MVS P2, -50 ' Movimiento recto interpolado a una posición alejada 50mm de la posición P2 340 OVRD 70 ' Velocidad al 70% 350 MOV P1 ' Movimiento no interpolado a la posición P1 360 END ' Fin del programa Figura 30. Código del programa en el lenguaje Melfa Basic IV. 48. Modificar el programa para que realice 3 vueltas seguidas en vez de dos. Utilizar la instrucción CNT para que haga un movimiento continuo y no se pare entre vuelta y vuelta (en realidad no para del todo pero el sonido en el robot real cambia). CNT 1, 100, 100 ... CNT 0 49. Realizar un arco y/o circunferencia con centro definido, utilizando la instrucción MVR3. La posición del centro será como la posición de recogida, pero 100mm más baja. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 23 MVR3 P_inicial, P_final, P_centro 50. Realice el cambio en el programa para añadir el movimiento circular MVR3 y ejecute la simulación. 51. Salga del programa y apague la computadora. Análisis de resultado 1. Presente el programa modificado que realizó en la parte II del procedimiento. 2. Presente el programa modificado que realizó para el numeral 48 y el 49 en la parte III del procedimiento. 3. Realice un programa que apile dos objetos, el programa tendrá una posición de Home, dos posiciones en donde se encuentran originalmente cada objeto y una tercera posición para colocar los objetos apilados, una vez apilados, cada objeto debe regresar a su posición original. 4. Realice un programa que intercambie de posición dos objetos, el programa tendrá una posición de Home, una posición intermedia para colocar temporalmente al primer objeto que se mueve y dos posiciones para cada uno de los objetos a mover. Investigación Complementaria 1. Investigue las instrucciones del lenguaje Melfa Basic IV para el control de las entradas y salidas digitales del robot Mitsubishi. Bibliografía Manual de Instrucciones de COSIROP para el lenguaje MELFA BASIC IV. FESTO Didactic. Autor: Juan Olea Pastor. Designación: Manual de Prácticas para el brazo robot RV-2AJ. Marzo de 2005. PROGRAMACIÓN DE ROBOTS. Guía del estudiante. Universidad Don Bosco Versión 4. 16 de septiembre de 2011. Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019 Fundamentos de Robótica. Guía 2 24 Hoja de cotejo: 2 Guía 2: Programación del Robot Mitsubishi. Parte I. Estudiante: Estación No: Docente: GL: Fecha: EVALUACION % 1-4 5-7 8-10 Conocimiento deficiente de los fundamentos teóricos de la programación de robots Mitsubishi usando el lenguaje Melfa Basic IV. Conocimiento y explicación incompleta de los fundamentos teóricos. Conocimiento completo y explicación clara de los fundamentos teóricos de la programación de robots Mitsubishi. CONOCIMIENTO 25% APLICACIÓN DEL CONOCIMIENTO 10% No ejecutó los Necesitó la ayuda programas del del docente de procedimiento de la laboratorio guía de laboratorio. Ejecutó los programas del procedimiento de la guía de laboratorio. 30% No realizó el numeral 3 del Análisis de Resultados. Necesitó la ayuda del docente de laboratorio Realizó por sí mismo el numeral 3 del Análisis de Resultados. 30% No realizó el numeral 4 del Análisis de Resultados. Necesitó la ayuda del docente de laboratorio. Realizó por sí mismo el numeral 4 del Análisis de Resultados. 3% No tiene actitud proactiva. Participa ocasionalmente o lo hace constantemente pero sin coordinarse con su compañero. Tiene actitud proactiva y sus propuestas son concretas y factibles. 2% No es ordenado ni responsable en el uso del equipo Solo es ordenado o solo responsable con el uso del equipo Es ordenado y responsable en el uso del equipo ACTITUD TOTAL Nota 100% Propiedad de la Universidad Don Bosco Prohibida su reproducción total o parcial para otros fines 2019