PR ´ACTICA 3: ROBOT DID ´ACTICO SCORBOT

Anuncio
PRÁCTICA 3: ROBOT DIDÁCTICO SCORBOT-ER V+
MANIPULACIÓN DE OBJETOS
1. Introducción
El robot SCORBOT-ER V plus es estructuralmente idéntico al modelo ER III. La principal diferencia entre ambos modelos está en el tipo de control realizado, que permite un control continuo
de la trayectoria. Para ello, se ha sustituido el microprocesador del controlador, que ahora es un
Motorola 68010. Además se permite la ejecución simultánea de hasta 20 programas distintos.
Aunque es posible realizar programas en una versión avanzada de SCORBASE (nivel 5),
para obtener un máximo aprovechamiento de todas las posibilidades que ofrece este sistema
es aconsejable usar el lenguaje ACL (Advanced Control Language). Mediante ACL es posible
manejar de forma directa una serie de rutinas escritas en las EPROMs del controlador.
El interfaz de usuario que acompaña al ACL se denomina ATS (Advanced Terminal Software).
Este software implementa un emulador de terminal que permite el acceso a las rutinas del ACL
desde un ordenador PC. Incluye un editor que permite desarrollar programas ACL.
1.1. Acceso al ATS
Para arrancar el interfaz ATS debe ejecutarse el siguiente comando:
> i:\elect\scorbot5\ats\ats /c2
Una vez dentro del ATS, para comenzar a operar se debe realizar la operación de HOME
(comando home), para que el sistema robótico sitúe el robot en una posición inicial conocida.
Además, pueden comprobarse las funciones E/S del controlador con el comando test.
En este momento el control sobre el robot está activado, y es posible acceder a cualquiera de
las rutinas del controlador. En caso de producirse algún error o accidente en movimiento, la tecla
de EMERGENCIA interrumpirá el movimiento inmediatamente. También puede desactivarse el
controlador desde la lı́nea de comando del ATS mediante el comando coff, y volver a activarse con
el comando con. Es posible interrumpir cualquier programa mediante la ejecución del comando,
> a <programa>
Comprobar el funcionamiento de este comando mientras se está ejecutando test. Sin argumentos, el comando a abortará todos los programas en ejecución. Pulsar la combinación
shift+f10 y cargar el fichero de demos demo.dnl, seleccionando la opción ERASE memoria.
También puede comprobarse el funcionamiento de este comando ejecutando el programa de
demostración picp mediante el comando:
> run picp
1
2. Modo Manual
Hasta ahora se visto como mover el robot mediante programas o comandos (modo directo).
El software ATS dispone de un modo manual que permite al usuario realizar directamente movimientos en el brazo articulado. Para entrar en este modo hay que pulsar la combinación de teclas
alt+m. Al entrar en este modo nos encontraremos, a su vez, en modo de ejes, es decir, que podemos mover independientemente cada una de las articulaciones de la siguiente manera:
teclas Movimiento
1-Q
Mueve el eje 1 (base)
2-W
Mueve el eje 2 (hombro)
3-E
Mueve el eje 3 (codo)
4-R
Mueve el eje 4 (inclinación)
5-T
Mueve el eje 5 (balanceo)
6-Y
Abre/Cierra la pinza (eje 6)
También pueden usarse las combinaciones 7-U, 8-I, 9-O, 0-P y -[, para activar los ejes 7-11,
si es que estos tienen conectado algún otro dispositivo.
Existe, también, en modo manual un modo cartesiano mediante el que puede moverse el robot
en las direcciones XYZ. Para pasar a este nuevo modo hay que pulsar la tecla x. Ahora tendremos
disponibles los siguientes movimientos:
teclas Movimiento
1-Q
X+, X2-W
Y+, Y3-E
Z+, Z4-R
inclinación arriba/abajo mientras el extremo de la pinza mantiene su posición
El resto de los ejes se manejan como en el modo de ejes. Para volver a este último modo,
debe pulsarse la tecla j.
Otras posibilidades del modo manual son:
Ajuste de la velocidad en la escala de 1 (mı́nimo) a 100 (máximo): comando s.
Activar/Desactivar control: c (activar) y f (desactivar).
Finalmente, para salir al modo directo, basta con volver a pulsar la secuencia alt+m.
3. Gestión de Posiciones y Movimiento
Para definir y grabar una posición, debe procederse de la siguiente forma:
1. Entrar en modo manual y llevar al robot a la posición deseada. Salir después del modo
manual.
2. Hay que definir la posición, igual que si se tratase de una variable. Ésto se hace con el
comando defp:
> defp <posición>
2
3. La posición actual queda grabada en la variable <posición> mediante el comando:
> here <posición>
Mediante el comando listp pueden listarse todas las posiciones pregrabadas (la posición 0
está reservada a home). Es conveniente obtener un listado de posiciones antes de grabar nuevas posiciones, con el objeto de conocer que números de posición se encuentran disponibles. El
comando listpv es similar al anterior, pero además proporciona las coordenadas XYZ de la posición (en décimas de milı́metro), ası́ como los ángulos de pitch y roll del robot (en décimas de
grado). Para borrar una posición es necesario ejecutar el comando:
> delp <posición>
Una vez grabadas las posiciones, es posible realizar movimientos entre ellas. Para ello, se
tienen las siguientes opciones:
move <posición> [<duración>]
Mueve el brazo desde la posición actual hasta <posición>. Opcionalmente, puede incluirse
la duración del movimiento (en centésimas de segundo) en la lı́nea de comando.
moved <posición> [<duración>]
Este comando es idéntico al anterior, salvo por el hecho de que se garantiza que no se
continúa la ejecución hasta que no se ha alcanzado la posición final. Sólo puede usarse en
programas. Evita movimientos inesperados.
movec <pos1> <pos2>
Realiza un movimiento cartesiano circular desde la posición actual hasta <pos1>, pasando
por <pos2>. También existe la variante movecd que asegura la conclusión del movimiento.
movel <pos> [<duración>]
Realiza un movimiento cartesiano lineal desde la posición actual hasta <pos>. También existe la variante moveld que asegura la conclusión del movimiento.
IMPORTANTE: las posiciones implicadas por los comandos movec, movecd, movel y moveld deben grabarse cuidadosamente para asegurar la obtención de un movimiento posible
y no forzado. En caso contrario, pueden encontrarse obstáculos o limitaciones mecánicas
que pueden dañar el sistema. Como medida de precaución, deberá reducirse la velocidad
a 20. El comando para la modificación de la velocidad es speed.
open y close
Comandos para abrir/cerrar la pinza.
NOTA: Todas las unidades de longitud y duración son las indicadas anteriormente.
4. Edición y Ejecución de Programas
El software ATS dispone de un editor de programas. Para crear un programa, hay que ejecutar:
> edit <programa>
3
tras lo cual se entra en el modo de edición. En cada lı́nea hay que introducir un comando. Por
ejemplo:
373:
374:
375:
376:
moved 11
moved 12
moved 13
exit
Con el comando exit se abandona el modo de edición. Los números de lı́nea son asignados por
el propio editor (no son accesibles al usuario).
La ejecución del programa se realiza mediante el comando run, como ya se ha comentado
anteriormente. La ejecución puede ser suspendida, continuada o abortada:
> suspend <programa>
> continue <programa>
> a <programa>
Para borrar un programa de la memoria del controlador se usa el comando remove seguido
del nombre del programa.
El lenguaje ACL permite la definición y manipulación de variables. Existen dos tipos de variables:
Locales: sólo pueden ser usadas por el programa especı́fico en el que fueron definidas. Se
declaran como:
define <var>
Globales: pueden utilizarse en modo directo y por cualquier otro programa. Se declaran
como:
global <var>
Las intrucciones básicas para el manejo de variables son:
Adjudicación de valores a variables:
set <var> = <valor>
Control de flujo:
if (condición)
...
else
...
endif
También se pueden etiquetar lı́neas de programa y realizar saltos a ellas:
4
Y
4
(300,100)
(300,0)
(200,0)
(400,0)
3 X
1
(300,−100)
2
Figura 1: Movimiento circular.
label <n>
goto <n>
Bucles:
for <var>=<valor1> to <valor2>
...
endfor
El controlador del SCORBOT-ER V dispone de 16 salidas y 16 entradas que permiten la comunicación del sistema con otros dispositivos. Dentro de un programa ACL, las entradas y salidas
se consideran como variables. Estas variables son in[1-16] y out[1-16], y toman los valores [0,1].
Para más información, sobre niveles de tensión en las entradas y salidas, consultar el manual del
usuario.
5. Posicionamiento y Manipulación
Además de definir posiciones manualmente mediante el comando here, es también posible
definirlas mediante sus coordenadas cartesianas (x, y, z) y los ángulos de pitch P (elevación) y roll
R (giro). Para ello puede usarse el comando teach. Éste comando sólo funciona en modo directo y
no dentro de programas. Las posiciones también pueden definirse relativas a una dada mediante
teachr.
Vamos a desarrollar un ejemplo en el que se desea que el robot realice un movimiento circular
en el plano XY de radio 100 mm y centro en (300,0) mm a una altura de Z = 200 mm. Dicho
movimiento se representa en la figura 1.
La posición inicial (1) la definiremos en coordenadas absolutas, fijando X = 2000, Y = 0, Z =
2000, P = −900 y R = 0. El resto de las posiciones se definirán en coordenadas relativas a la
posición 1, según se indica en la siguiente tabla:
5
HOME
P1R1
P1R2
P1R3
P1R4
P2R4
P3R4
25 cm
P4R4
P1
P2
P3
P4
Figura 2: Diagrama de posiciones para apilar cubos.
Posición
2
3
4
X
1000
2000
1000
Y
-1000
0
1000
Z
0
0
0
P
0
0
0
R
0
0
0
Para mayor mayor comodidad editaremos el programa en fichero (con extensión dnl) que
contenga todos los comandos que se especifican a continuación, en lugar de introducirlos con el
editor edit.
program circ
**************
label 1
moved 1
movecd 3 2
movecd 1 4
goto 1
end
Tras editar el programa hay que llamar a la utilidad ACL-offline (en el mismo directorio que el
ATS):
> offline /c2
Una vez dentro del offline, pulsando f1 podemos transferir el programa al controlador a la vez que
se depuran los posibles errores del programa. Después podemos entrar en el ATS pulsando f4 y
ejecutar los programas. Con shift+f9 volvemos al offline. Ejecutar ambos programas y comprobar
su funcionamiento.
Como ejercicio se desarrollará un programa que apile 4 cubos situados inicialmente sobre la
mesa. Para ello habrá que grabar manualmente las posiciones de los 4 cubos (P1,P2,P3,P4).
A continuación se grabarán otras 4 posiciones relativas a las de los cubos que queden en la
vertical de las anteriores y a 25 cm sobre las mismas (P1R1,P1R2,P1R3,P1R4), que servirán
como posiciones intermedias para desplazar los cubos linealmente desde su posición original
hasta ellas. Los cubos se irán apilando sobre el cuarto de ellos. Para llevarlos hasta sus posiciones
finales (P2R4,P3R4,P4R4), habrá que pasar previamente sobre la posición vertical sobre el cubo
4 (P1R4). El esquema de posiciones se representa en la figura 2.
6
Descargar