PR ´
ACTICA 1: ROBOT DID ´
ACTICO SCORBOT-ER 4u
1.
Esquema de SCORBOT-ER 4u
El esquema del sistema rob ´otico SCORBOTER 4u del que se dispone en el laboratorio tiene el siguiente diagrama de bloques mostrado en la figura 1.
Figura 1:Diagrama de bloques de SCORBOTER 4u
2.
Brazo articulado
El brazo articulado tiene una pinza como elemento terminal para la manipulaci ´on de objetos. Es un robot vertical con 5 articulaciones de revoluci ´on (5 grados de libertad). Esto le permite posicionarse en un amplio espacio de trabajo con una orientaci ´on cuasi-arbitraria. La figura 2 identifica las articulaciones y enlaces del robot.
El brazo articulado incluye encoders ´opticos de realimentaci ´on.Al ser ´opticos producen una salida directamente digital, es decir, no es necesario el uso de conversores A/D para que el controlador pueda manejar la se ˜nal de realimentaci ´on. Tambi ´en incluye microinterruptores que
Figura 2:Articulaciones y Enlaces del brazo articulado
detectan cuando una articulaci ´on ha llegado al final de carrera. Gracias a ello, el robot es capaz de establecer su sistema de referencia.
3.
El controlador
El controlador es un microcomputador de prop ´osito espec´ıfico, especialmente dise ˜nado para las tareas de control de brazo articulado. Las funciones del controlador son:
1. Recepci ´on de ´ordenes del computador principal a trav ´es del canal USB. Comprobaci ´on del canal.
2. Transmisi ´on de respuestas al computador principal a trav ´es de dicho canal.
3. Actuaci ´on sobre los motores mediante la conmutaci ´on de transistores de potencia a ±12 Volt (seg ´un la direcci ´on del movimiento) (ver figura 4).
4. Seguimiento (control) del movimiento de cada motor, contando los impulsos que llegan de los encoders, llevando cada uno hasta una posici ´on final (aqu´ı se aplica un algoritmo de control).
5. Controla 8 l´ıneas de entrada (mas otras 2 en forma de interruptores manuales con fines did ´acticos) mediante los cuales recibe se ˜nales de su entorno. A petici ´on del computador principal (PC) puede comprobar el estado de alguna(s) de estas l´ıneas, para que el progra-ma que corre en el PC act ´ue en consecuencia.
6. Controla 8 l´ıneas de salida para la activaci ´on de equipos externos.
7. El controlador dispone de una rutina que puede llevar al brazo articulado hasta una posici ´on predefinida (conocida como HOME) que marca el sistema de referencia en que se va a mover el Robot. La forma de alcanzar la posici ´on de HOME es mover cada articulaci ´on hasta que llega al final de carrera, donde se conmuta un microinterruptor. Al detectar esta
Figura 3:Actuaci ´on sobre los motores.
conmutaci ´on, el controlador ya sabe donde se encuentra la articulacion y puede llevarla (contando un cierto n ´umero de impulsos) hasta la posici ´on de HOME.
8. El controlador puede parar todos los motores guardando informaci ´on del estado de cada uno para luego poder continuar el movimiento.
9. El controlador puede obtener informaci ´on del progreso en el movimiento de un motor a petici ´on del PC, y responder de acuerdo con ella.
En el frontal del controlador pueden encontrarse los siguientes elementos (identif´ıquelos en el robot):
1. Indicador de encendido/apagado. Indica si el controlador est ´a encendido. Si se torna verde adem ´as hay conexi ´on con el PC.
2. Indicador de motores encendidos. Indica si los motores est ´an encendidos (orden con) o apagados (ordencoff).
3. LEDs y conectores de entrada/salida. Permiten la comunicaci ´on entre robots.
4. Conectores de ejes perif ´ericos. Permiten conectar accesorios al robot (por ejemplo, la cinta transportadora).
5. Bot ´on de Emergencia. En situaciones de riesgo para el robot o sus operarios debe ser inmediatamente pulsado.
4.
El computador principal
Proporciona un interface adecuado con el usuario o con los programas de usuario. Desde el PC se pueden usar las distintas rutinas del controlador para actuar sobre el brazo mec ´anico. SCORBOT 4 provee un lenguaje de alto nivel para programaci ´on del robot denominadoscorbase.
5.
Lenguaje de programaci ´
on: SCORBASE (nivel 3)
5.1. Introducci ´onSCORBASE (nivel 1,2 y 3 o “Pro”) es un lenguaje de programaci ´on de robots de alto nivel, interactivo y con control de trayectoria punto a punto. Est ´a pensado para trabajar en dos etapas:
1. ”Ense ˜nar” al robot un conjunto de distintas posiciones con las que operar ´a posteriormente. Se trata de definir de antemano una serie de puntos en el espacio (x,y,z).
2. ”Programar” el robot: se escribe un programa utilizando los comandos que provee el len-guaje SCORBASE.
Figura 4:Scorbase en ejecuci ´on. 5.2. Ense ˜nar posiciones
Las posici ´on se ense ˜nan empleando dos ventanas. La primera (Movimiento Manual) nos per-mite mover el robot hasta la posici ´on deseada. Esto puede hacerse en el dominio de las articula-ciones (poco recomendado) o en el dominio cartesiano (XYZ). Junto a esta ventana se encuentra una segunda (Ense~nar Posiciones) que nos permite almacenar la posici ´on, ya sea de forma ab-soluta o relativa. Para ello se debe asignar una etiqueta a la posici ´on. Se recomienda al alumno que explore los elementos de esta ventana (puede recibir “tips” dejando el puntero del rat ´on sobre ellos).
5.3. Lenguaje SCORBASE
La programaci ´on se realiza en la ventana Programa. En esta ventana no se puede escribir directamente sino que las ordenes se seleccionan de la ventana contigua (Zona de Trabajo).
El n ´umero de ordenes que se muestran en esta ventana depender ´a del nivel al que estemos trabajando. As´ı, para el nivel 1 (bot ´on L1 bajo el men ´u), se muestran las ordenes m ´as b ´asicas, mientras que para el nivel 3 (bot ´onPro) se muestran todas las ordenes disponibles.
Para insertar una orden se pincha dos veces en la Zona de Trabajo. Si la orden tiene op-ciones, emerger ´a una nueva ventana para que las rellenemos. Por ejemplo, si pulsamos sobre la ordenIP (ir a posici ´on) aparecer ´a una ventana preguntando la posici ´on a la que queremos ir (la etiqueta de la posici ´on ense ˜nada), si queremos que los ejes se muevan libremente o se siga una trayectoria rectil´ınea o circular, as´ı como la velocidad. Como puede observarse, el programa resulta extraordinariamente intuitivo pero engorrosamente “user-friendly”.
A continuaci ´on se describen algunos comandos: Comandos b ´asicos:
1. Abrir/Cerrar pinza: Open/Close Gripper
2. Ir a la posici ´on #: Go to position #(linea) #(velocidad) 3. Esperar : Wait #(seconds)
4. Detecci ´on de estado activo o inactivo de una linea externa de entrada, y salto condicio-nal : if input #(no.) jump to #(l´ınea)
5. Activar/desactivar una salida : turn output #(no.) on/off 6. Salto incondicional: jump to line #(l´ınea)
Bucles:
1. Asignaci ´on de un contador (cont⇐#): set counter #(cont.) to #(valor) 2. Decremento de un contador (cont⇐cont - 1): decrement counter #(cont.)
3. Salto condicionado al valor del contador respecto a 0: if counter #(cont.)<=>0 jump to #(l´ınea)
Comandos de subrutinas:
1. Declaraci ´on de una subrutina: set subroutine #(no. subrut.) 2. Retorno de subrutina: return from subroutine.
3. Llamada a subrutina: call subroutine #(no. subrut.)
Comandos del sensor de medida de la pinza. Se pueden memorizar hasta 64 valores de tama ˜nos en mm de objetos medidos con la pinza en 64 posiciones de memoria. Este me-moria no s ´olo se usa en relaci ´on con el sensor de medici ´on de la pinza, sino que adem ´as puede usarse para albergar “variables” no necesariamente relacionadas con el sensor:
1. Asignaci ´on de un valor a una memoria: set memory #(mem) to #(valor). 2. Cargar la memoria con la medida del sensor: set memory #(mem) to sensor. 3. Comparaci ´on de los valores de las memorias para salto condicionado:
if memory #(mem)<=>memory #(mem) jump to #(l´ınea) Otros comandos:
1. Presentar por pantalla un texto dado: print.
2. Saltar condicionalmente cuando se produce un error en un motor: on motor #(motor) error jump to #(lugar) * (tipo)
Esta instrucci ´on se puede situar en cualquier punto del programa. El salto seproduce con el error del motor, no con la instrucci ´on.
• ”motor” puede ser el n ´umero de uno de ellos o ”ALL” (todos).
• ”lugar” puede ser un n ´umero de l´ınea o ”next”, con lo que el programa seguir ´a en la l´ınea siguiente.
• ”tipo” puede ser ”continuously” (se ejecutar ´a el salto siempre que haya error), ”sin-gle” (solo se realizar ´a el salto la primera vez que se produzca el error), ”off” (inva-lida el efecto de la instrucci ´on).
3. Almacenar la posici ´on actual como HOME: set preent position as HOME.
4. Comprobar el estado (ON/OFF) de los finales de carrera de los microinterruptores de las articulaciones:
if limit switch # jump to #
5. Reponer a la posici ´on inicial un motor dado. Esta orden es ´util para movimientos c´ıcli-cos.
6.
Pr ´actica con el robot SCORBOTER 4
Proponer una aplicaci ´on y dise ˜nar un programa en SCORBASE para resolverla.
6.1. Recomendaciones
Antes de arrancar el programa es necesario cerciorarse de que todos los dispositivos est ´an encendidos.
1. Hacer HOME. Esto hace que el robot “busque” su sistema de referencia cartesiano.
2. Ir al men ´u de “ense ˜nar posiciones”. Ense ˜nar y grabar las posiciones requeridas para imple-mentar la aplicaci ´on.
3. Hacer un nuevo HOME.
4. Escribir y ejecutar el programa.
Observaciones Generales:
NO es lo mismo ”hacer HOME” que ”ir a HOME”. Lo primero recalcula el sistema de referencia, mientras que lo segundo es ir a una posici ´on prefijada.
Realizar siempre una trayectoria ”punto a punto” (definiendo varios puntos intermedios) para evitar choques debidos a trayectorias inesperadas. Los puntos de las trayectorias se ense ˜nan previamente en el men ´u de ”teach positions”.