Está en la página 1de 7

PRÁCTICA 1: ROBOT DIDÁCTICO SCORBOT-ER 3

1. Esquema de SCORBOT-ER 3
El esquema del sistema robótico SCORBOTER 3 del que se dispone en el laboratorio tiene el
siguiente diagrama de bloques mostrado en la figura 1.

COMPUTADOR
CENTRAL

(PC COMPATIBLE)

RS-232C

ROBOTVISION

CONTROLADOR VIDEO VIDEO

(INTEL 8031)
SEÑAL SEÑAL
ANALOGICA DIGITAL

REALIM. POSICION

ESPACIO DE
TRABAJO

CAMARA
ORDENES
POSICION
BRAZO
ARTICULADO

Figura 1: Diagrama de bloques de SCORBOTER 3

2. Brazo articulado
El brazo articulado tiene una pinza como elemento terminal para la manipulación de objetos.
Incluye encoders ópticos para realimientación. Estos encoders dan salida digital directamente
(no es necesario el uso de conversores A/D para que el controlador pueda manejar la señal
de realimentación). También incluye microinterruptores que detectan cuando una articulación ha
llegado al final de carrera.

1
3. El controlador
El controlador es un microcomputador de propósito especı́fico, especialmente diseñado pa-
ra las tareas de control de brazo articulado. Se compone de un microprocesador INTEL 8031,
como elemento principal, circuiteria adicional, y una serie de rutinas de control grabadas en una
memoria ROM.

Las funciones del controlador son:

1. Recepción de órdenes del computador principal a través del canal RS 232C. Comprobación
del canal.

2. Transmisión de respuestas al computador principal a través de dicho canal.

3. Actuación sobre los motores mediante la conmutación de transistores de potencia a ±12


Volt (según la dirección del movimiento) (ver figura 2).
MOTOR DC

Del 8031 Del 8031

-12 V +12 V

Figura 2: Actuación sobre los motores.

4. Seguimiento (control) del movimiento de cada motor, contando los impulsos que llegan de
los encoders, llevando cada uno hasta una posición 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ácticos) mediante los cuales recibe señales de su entorno. A petición 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úe en consecuencia.

6. Controla 8 lı́neas de salida para la activación de equipos externos.

2
7. El controlador dispone de una rutina que puede llevar al brazo articulado hasta una posición
predefinida (conocida como HOME) que marca el sistema de referencia en que se va a
mover el Robot. La forma de alcanzar la posición de HOME es mover cada articulación
hasta que llega al final de carrera, donde se conmuta un microinterruptor. Al detectar esta
conmutación, el controlador ya sabe donde se encuentra la articulacion y puede llevarla
(contando un cierto número de impulsos) hasta la posición de HOME.
8. El controlador puede parar todos los motores guardando información del estado de cada
uno para luego poder continuar el movimiento.
9. El controlador puede obtener información del progreso en el movimiento de un motor a
petición del PC, y responder de acuerdo con ella.
Microprocesador 8031. Caracterı́ticas técnicas:
Palabra de 8 bits.
128 bytes de RAM.
4 puertos de 8 bits.
128 Kb de memoria externa.
12 MHz de frecuencia de reloj.
1 µ s para la mayorı̈a de las instrucciones.
4 µ s para la multiplicación/división.

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ánico.
SCORBOT 3 provee un lenguaje de alto nivel para programación del robot. El PC también recibe
las imágenes digitalizadas de ROBOTVISION, las analiza y provee el interface entre el brazo
mecánico y el subsistema de visión.

5. Subsistema de visión
Los componentes de este subsistema son:
1. Módulo ROBOTVISION
Conversores A/D.
Tarjeta para conexión con PC.
Tarjeta gráfica.
2. Cámara de vı́deo.
3. Monitores para señal analógica y señal digitalizada.

3
6. Lenguaje de programación: SCORBASE (nivel 3)
6.1. Introducción
SCORBASE (nivel 3) es un lenguaje de programación de robots de alto nivel, interactivo y con
control de trayectoria punto a punto. Está pensado para trabajar en dos etapas:

1. ”Enseñar” al robot un conjunto de distintas posiciones con las que operará 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.

6.2. Enseñar posiciones y HOME


En este menú hay una serie de comandos para llevar al robot a posiciones que pueden ser
memorizadas y posteriormente usadas en un programa. Además es posible:

Activar/desactivar señales de output.

Ir a posición HOME.

Enseñar posiciones (x,y,z) absolutas.

También es posible dar posiciones pero de forma ”relativa” a otros puntos. Cuando se trabaja
conjuntamente con el módulo de visión es posible dar coordenadas ”relativas” a un objeto
que se encuentre en el campo de visión.

Además, También existe un menú para llevar el robot a HOME, lo que debe ser realizado al
principio de cada sesión de trabajo para que el robot fije su sistema de coordenadas.

6.3. Lenguaje SCORBASE


Comandos básicos:

1. Abrir/Cerrar pinza: Open/Close Gripper


2. Ir a la posición #: Go to position #(linea) #(velocidad)
3. Esperar : Wait #(seconds)
4. Detección 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)

4
Bucles:

1. Asignación 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ón 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ños en mm de objetos medidos con la pinza en 64 posiciones de memoria. Este me-
moria no sólo se usa en relación con el sensor de medición de la pinza, sino que además
puede usarse para albergar ”variables” no necesariamente relacionadas con el sensor:

1. Asignación 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ón de los valores de las memorias para salto condicionado:
if memory #(mem) <=> memory #(mem) jump to #(lı́nea)

Comandos de visión:

1. Explorar y analizar el campo de visión de una determinada cámara. También se realiza


un reconocimiento de cada objeto: scan frame #.
2. Realizar un análisis de la escena hasta que se encuentra el objeto especificado. El
orden de análisis es de arribar a abajo y de izquierda a derecha: scan for object # in
frame #
3. Explorar la escena, contando el número de objetos y localizando cada uno de ellos, sin
realizar ningún reconocimiento: overview frame #
4. Salto condicionado al valor true de la variable interna visuccess: if visuccess jump to
#(lı́nea). Visuccess será cierto si:
• El comando anterior ha sido un ”scan frame” y se ha conseguido reconocer algún
objeto.
• Después de un ”scan for objet #N in frame #” si:
a) N=Any. Es igual que ”scan frame” únicamente.
b) N=[1,254]. Visuccess será cierto si se ha encontrado el objeto N.
c) N=0. Si habı́a algún objeto (al menos 1) en la escena.
• Después de un ”overview frame” si habı́a al menos un objeto en la escena.
5. Saltar condicionalmente si se ha encontrado el objeto dado en la exploración anterior:
if object # exists jump to #

5
6. Ir a la posición de un determinado objeto, controlando (opcionalmente) la velocidad:
go to object # (fast/slow)
7. Pueden existir en la escena varios objetos del mismo tipo. El sistema de visión toma
como ”objeto actual” el primero que encuentra, y si se hace un ”go to object”, el robot
irá al objeto actual. El siguiente comando hace que el objeto actual sea el siguiente
que se encontró en la exploración:
next object #
8. Almacenar en la posición de memoria especificada el número de objeto que hay en la
escena:
set memory # to viscount

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ón se puede situar en cualquier punto del programa. El salto seproduce
con el error del motor, no con la instrucción.
• ”motor” puede ser el número de uno de ellos o ”ALL” (todos).
• ”lugar” puede ser un número de lı́nea o ”next”, con lo que el programa seguirá en
la lı́nea siguiente.
• ”tipo” puede ser ”continuously” (se ejecutará el salto siempre que haya error), ”sin-
gle” (solo se realizará el salto la primera vez que se produzca el error), ”off” (inva-
lida el efecto de la instrucción).
3. Almacenar la posición 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ón inicial un motor dado. Esta orden es útil para movimientos cı́cli-
cos.
Set axis #. to zero

6
7. Práctica con el robot SCORBOTER 3
Proponer una aplicación y diseñar un programa en SCORBASE para resolverla.

7.1. Recomendaciones
El software de control del robot se encuentra en el directorio i:\elect\scorbot3\new. Antes
de arrancar el programa es necesario cercionarse de que todos los dispositivos están encendidos.
El programa se ejecuta con ”go3”. Una vez arrancado el programa, es conveniente seguir la
siguiente secuencia de operaciones:

1. Hacer HOME. Esto hace que el robot ”busque” su sistema de referecia cartesiano.

2. Ir al menú de ”enseñar posiciones”. Enseñar y grabar las posiciones requeridas para imple-
mentar la aplicación.

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ón 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ñan previamente en el menú de ”teach positions”.
La cinta transportadora se usa como una articulación más.

También podría gustarte