CONTROL DE ROBOTS LABORATORIO N°1: Introducción a los Scorbots 1. 2. 3. 4. Lectura manual, especificaciones de Robot Scorbot ER-V plus. Lectura Informe interno IACI00-01 ‘Scorbot ER-V plus y Scorbot ER-IX’. Manejo de programas, back ups desde el ‘Back up manager’. Elaboración de informe resumido de lo visto en los dos puntos anteriores, incluyendo la descripción de los comandos del ‘Teach pendant’ para el Robot Scorbot ER-V plus. Control de Robots ContRobots_labs 1 CONTROL DE ROBOTS LABORATORIO N°2: Parámetros D-H, Cinemática directa 1. Medición, y obtención de tabla de parámetros de D-H del robot Scorbot ER-V. 2. Obtención de las matrices de la cinemática, a partir de los parámetros anteriores. 3. Corroboración de las matrices anteriores con al menos dos puntos (observar la posición de los mismos en ACL con el comando SHOW ENCO, solo hasta el origen del frame 4). 4. Elaboración de informe resumido con lo visto en los puntos anteriores. Control de Robots ContRobots_labs 2 CONTROL DE ROBOTS LABORATORIO N°3: Tensiones a motores de CC, Repetibilidad lazo abierto y cerrado 1. 2. 3. 4. 5. 6. 7. Observación de salidas a motores de CC (ANOUTs), con aplicación del programa ACT1. Ídem punto 1, ejerciendo una leve presión en algún eje. Posicionamiento basado en el tiempo, con aplicación del programa ACT2, más el comando SHOW ENCO. Elaboración de tabla comparativa para 6 ciclos. Ídem punto 3, con un peso de 1kg en la herramienta. Posicionamiento con realimentación, con aplicación del programa ACT4, más el comando SHOW ENCO. Elaboración de tabla comparativa para los 10 ciclos. Ídem punto 5, con velocidad de aproximación, con aplicación del programa AC41, más el comando SHOW ENCO. Elaboración de tabla comparativa para los 10 ciclos. Comparación con punto 5. Conclusiones. Elaboración de informe resumido con lo visto en los puntos anteriores, con las correspondientes conclusiones para cada uno. Programas: ***ACT1*** LABEL 1 PRINT ANOUT[1] ANOUT[2] ANOUT[3] ANOUT[4] PRINT ANOUT[5] ANOUT[6] PRINLN GOTO 1 *********** ***ACT2*** DEFINE VOLT (definición variable que contiene el voltaje de salida) DEFINE T (variable de homing) SET VOLT=1500 (voltaje inicial=1500mV) LABEL 1 (comienza el bucle) SET VOLT=0-VOLT (cambia la polaridad del voltaje en cada ciclo) SET ANOUT[1]=VOLT (seteo del voltaje al motor del eje 1) DELAY 300 (retardo 3 segundos) DET ANOUT[1]=0 (detiene el motor) PRINLN ”PRESIONE ALGUNA TECLA PARA CONTINUAR” GET T GOTO 1 (comienza un nuevo ciclo) ************ Control de Robots ContRobots_labs 3 ***ACT4*** DEFINE N FOR N=0 TO 10 LABEL 1 IF ENC[1]<20000 SET ANOUT[1]=-3000 GOTO 1 ENDIF SET ANOUT[1]=0 DELAY 300 LABEL 2 IF ENC[1]<-10000 SET ANOUT[1]=3000 GOTO 2 ENDIF SET ANOUT[1]=0 DELAY 300 ENDFOR *********** ***AC41*** DEFINE N FOR N=0 TO 10 LABEL 1 IF ENC[1]<19500 SET ANOUT[1]=-3000 GOTO 1 ENDIF LABEL 3 IF ENC[1]<20000 SET ANOUT[1]=-1000 GOTO 3 ENDIF SET ANOUT[1]=0 DELAY 300 LABEL 2 IF ENC[1]>-9500 SET ANOUT[1]=3000 GOTO 2 LABEL 4 IF ENC[1]>-10000 SET ANOUT[1]=1000 GOTO 4 ENDIF SET ANOUT[1]=0 DELAY 300 ENDFOR *********** Control de Robots (definición de variable conteo de ciclos) (10 ciclos) (voltaje a motor eje 1: -3000mV) (si se alcanza la posición se detiene el motor) (espera por 3 segundos) (voltaje a motor eje 1: 3000mV) (si se alcanza la posición se detiene el motor) (espera por 3 segundos) (definición de variable conteo de ciclos) (10 ciclos) (voltaje a motor eje 1: -3000mV) (voltaje a motor eje 1: -1000mV) (si se alcanza la posición se detiene el motor) (espera por 3 segundos) (voltaje a motor eje 1: 3000mV) (voltaje a motor eje 1: 1000mV) (si se alcanza la posición se detiene el motor) (espera por 3 segundos) ContRobots_labs 4 CONTROL DE ROBOTS LABORATORIO N°4: Lead by nose 1. ¿Qué es ‘Lead by Nose? 2. Reconocimiento del módulo de interface LBN, y del programa LBN.CBU. 3. Realizar un homing, y asegurarse que el programa LBN.CBU se encuentre en el procesador. 4. Describir la secuencia operativa para correr esta aplicación, para un tiempo de scan de 10 (1000 posiciones cada segundo), y un tiempo de grabación de 10 segundos. 5. Repetir el punto anterior para un tiempo de scan de 0.005 (1 posición cada 2 segundos), y un tiempo de grabación de 7 segundos. ¿Qué sucede con la trayectoria descripta entre dos muestreos? 6. Elaboración de informe resumido con lo visto en los puntos anteriores, con las correspondientes conclusiones para cada uno. Control de Robots ContRobots_labs 5 CONTROL DE ROBOTS LABORATORIO N°5: Trayectorias, perfiles de velocidad 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Realizar un homing. Corroborar que el perfil de velocidad sea parabólico: MPROFILE PARABOLE. Setear 10% de velocidad. Grabar una posición determinada. Luego mover la base y grabar una segunda posición. Editar el programa ACT5 ***ACT5*** DEFINE N (definición de variable conteo de ciclos) FOR N=0 TO 3 (3 ciclos) MOVED 1 (mueve a la posición #1) DELAY 100 (pausa de 0.1 segundo) MOVED 2 (mueve a la posición #2) DELAY 100 (pausa de 0.1 segundo) ENDFOR (fin del bucle for) *********** Ejecutar ACT5 para corroborar su buen funcionamiento Editar el programa READ: ***READ*** DEFINE N (definición de variable conteo de ciclos) RUN ACT5 (corre el programa ACT5 en modo multitasking) FOR N=0 TO 200 (200 muestras) DELAY 10 (cada 0.1 segundo) PRINTLN TIME ENC[1] (escribe tiempo y valor de encoder 1) END FOR (fin del bucle for) Ejecutar el programa READ, y observar los datos muestreados. Salir a modo DOS y ejecutar la instrucción SEND RUN READ /C2 /F fpar10.prn. Los datos muestreados se guardarán en el archivo fpar10.prn. Setear 20% de velocidad y repetir el punto anterior (fpar20.prn). Repetir el punto 6 para 50, 75, y 100% de velocidad. Setear perfil de velocidad trapezoidal con MPROFILE TRAPEZE. Repetir los puntos 6, 7, 8 (archivos ftrpXX.prn). Para los 10 archivos anteriores, editarlos con excel con el fin de graficar los perfiles de velocidades, esto es, ∆enc[1]/ ∆tiempo. Elaboración de informe resumido con lo visto en los puntos anteriores, con las correspondientes conclusiones para cada uno. Definir un vector de 5 posiciones: DIMP ACT6[5]. Grabar dos posiciones: ACT6[1], y ACT6[5] tal que las mismas se encuentren en un plano horizontal. Posicionar un fibrón en el extremo de la herramienta. Mover de un punto al otro con MOVE. Grabar más posiciones intermedias tal que se encuentren alineadas con las anteriores. Ejecutar los comandos MOVES ACT6 1 5, y MOVEL ACT6[1]. Explicar lo observado en los puntos 13, 14, y 15, y adjuntarlo al mismo informe. Control de Robots ContRobots_labs 6 CONTROL DE ROBOTS LABORATORIO N°6: Control de una junta. Parámetros PID. 1. Concepto de controlador proporcional. a. Realizar un homing. Asegurarse que exista un back de parámetros (C:\ATS\ACT) b. Mediante en Teach pendant, grabar una posición, mover la junta 1, y luego grabar otra posición. c. LET PAR 21 100: Pone en 100 el parámetro 21 (Cte. proporcional de la junta 1), y luego poner en cero el 41, 61, 81, y 78. INIT CONTROL: inicializar para que tome los cambios. SPEED 40: seteo de velocidad en 40 d. Editar el programa ACT7 ***ACT7*** DEFINE REF1 (definición de variable posición #1) DEFINE REF2 (definición de variable posición #2) DEFINE ERR (definición de variable error) SET REF1=0 (escribe la posición del ENC[1] para la posición#1) SET REF2=14612 (escribe la posición del ENC[1] para la posición#2) MOVE 2 (mueve hasta la posición#2) DELAY 2000 (pausa de 20 segundos) SET ERR=REF2 – ENC[1] (calculo del error) PRINT “POSICION #2” (cartel) PRINTLN ERR ANOUT[1] (muestra el error y la salida analógica#1) DELAY 2000 (pausa de 20 segundos) SET ERR=REF1 – ENC[1] (calculo del error) PRINT “POSICION #1” (cartel) PRINTLN ERR ANOUT[1] (muestra el error y la salida analógica#1) *********** e. RUN ACT7: ejecutar el programa anterior, para distintos valores de la constante proporcional (100, 200, 600, 800, 1000, y 1500). Completar una tabla con las siguientes columnas: pos#, par21, error, anout[1], ganancia calculada, y par21/ganancia calculada. 2. Concepto de controlador derivativo. a. LET PAR 41 100: Pone en 100 el parámetro 41 (Cte. derivativa de la junta 1), y luego poner en cero el 21, 61, 81, y 78. INIT CONTROL: inicializar para que tome los cambios. SPEED 40: seteo de velocidad en 40 b. RUN ACT7: ejecutar el programa, y observar que sucede. c. LET PAR 21 500 (constante proporcional), INIT CONTROL, y luego RUN ACT7: ejecutar el programa, para distintos valores de la constante derivativa (100, 200, 500, 1000, y 2000). Completar una tabla con las siguientes columnas: pos#, par41, error, anout[1], ganancia calculada, y par21/ganancia calculada. d. LET PAR 21 800 (constante proporcional), INIT CONTROL, y repetir el punto anterior. e. Observar que sucede con el error de estado estacionario. 3. Concepto de controlador integrativo. a. LET PAR 61 100: Pone en 100 el parámetro 61 (Cte. integrativa de la junta 1), y luego poner en cero el 21, 41, 81, y 78. INIT CONTROL: inicializar para que tome los cambios. Control de Robots ContRobots_labs 7 SPEED 40: seteo de velocidad en 40 b. RUN ACT7: ejecutar el programa, y observar que sucede. c. LET PAR 21 500 (constante proporcional), INIT CONTROL, y luego RUN ACT7: ejecutar el programa, para distintos valores de la constante derivativa (100, 200, 500, 1000, y 2000). Completar una tabla con las siguientes columnas: pos#, par41, error, anout[1], ganancia calculada, y par21/ganancia calculada. d. LET PAR 21 800 (constante proporcional), INIT CONTROL, y repetir el punto anterior. 4. LET PAR 78 1: este parámetro duplica las Cte. PI para un entorno cercano al set point de posición. Probar correr el programa para valores de la Cte. proporcional muy bajos. 5. Restaurar los parámetros mediante el Back up Manager. 6. Elaboración de informe resumido con lo visto en los puntos anteriores, con las correspondientes conclusiones para cada uno. Control de Robots ContRobots_labs 8 CONTROL DE ROBOTS LABORATORIO N°7: Programación Advanced Control Language. 1. Realizar la programación en ACL de los programas necesarios para lograr ejecutar la siguiente tarea: el manipulador debe dibujar a través de un fibrón sujeto en su herramienta un círculo, o un rectángulo en una pizarra ubicada en forma vertical (plano paralelo al plano X-Z o Y-Z). El comienzo de cada tarea y la selección de la figura geométrica debe realizarse a través de dos entradas discretas del controlador. 2. Realizar la programación en ACL de los programas necesarios para lograr ejecutar la siguiente tarea: el manipulador debe realizar un seguimiento o tracking de un punto fijo de la cinta transportadora (sin tocarla). Este seguimiento debe ser función de la velocidad de la cinta, y además puede ser en ambos sentidos. El comienzo de la tarea y la selección del sentido de giro debe realizarse a través de una entrada discreta del controlador, y cuando se la herramienta llega a un extremo debe hacerse una salida discreta. 3. Realizar la programación en ACL de los programas necesarios para lograr ejecutar la siguiente tarea: el manipulador debe transportador un objeto pesado (el máximo peso admisible por especificación) desde un punto x1, y1, z1 hasta un punto x2, y2, z2. (este movimiento se inicia cuando se detecta sobrecarga en uno de los motores de las juntas debido a la colocación del peso), y luego volver al punto inicial sin la carga cuando se detecte la liberación de la sobrecarga mencionada. En el transporte, la trayectoria deberá sortear un obstáculo. 4. Realizar la programación en ACL de los programas necesarios para lograr ejecutar la siguiente tarea: a partir de un obstáculo determinado (por ejemplo cubo), el manipulador debe realizar el pintado del mismo. Suponer que en el extremo de la herramienta se dispone de un pico tipo spray el cual siempre debe ubicarse en forma perpendicular a 2 cm de las caras del objeto. 5. Realizar la programación en ACL y de algún software de animación tal que, leyendo la posición de los distintos encoders, se observe en pantalla una simulación en 3 dimensiones de los brazos del manipulador. 6. Realizar la programación en ACL de los programas necesarios para lograr ejecutar la siguiente tarea: debe transportarse una carga de 300 gramos colgando en forma de péndulo con hilo desde la herramienta a unos 15 cm. Realizar el control sobre las juntas tal que el hilo siempre se encuentre en forma perpendicular. 7. Diseñar circuito impreso interface del controlador del robot Scorbot tal que se pueda realizar el control sobre el motor de CC de una junta. Debe leerse la posición del encoder correspondiente, y poder ejecutar variantes sobre la estrategia de control elegida.. Control de Robots ContRobots_labs 9