Manipulación de un Brazo Robótico por medio de una ... -...

7
Manipulación de un Brazo Robótico por medio de una Tarjeta FPGA Felipe Santiago Espinosa, Yukio Rosales Luengas, Alejandro Rivera García, Adrián Humberto Martínez Vásquez Instituto de Electrónica y Mecatrónica, Universidad Tecnológica de la Mixteca, Carretera a Acatlima Km. 2.5, Huajuapan de León, Oaxaca, 69000, México Tel. 953-53-202-14, [email protected], [email protected], [email protected], [email protected] Resumen En el presente documento se describe el trabajo realizado durante la implementación de una interfaz usuario-máquina, para la manipulación de un brazo robótico de cuatro grados de libertad, incorporando la opción de grabar y reproducir una secuencia de movimientos. Se utilizó una tarjeta Nexys2, la cual es manufacturada por la empresa Digilent e incluye un FPGA Spartan-3E con 500 mil compuertas. La tarjeta sirve de controlador, estableciendo la comunicación entre un teclado de computadora, que es el dispositivo de entrada, y el brazo robótico, que es el dispositivo de salida. Para la creación del programa de configuración del FPGA, se hizo uso del lenguaje de descripción de hardware VHDL; con este lenguaje está hecho el driver para el teclado y con el mismo se crearon los módulos necesarios para la correcta manipulación del brazo, incluyendo la grabación y recuperación de secuencias. Palabras Clave: Brazo Robótico, FPGA, lenguaje VHDL, teclado. I. Introducción VHDL es un lenguaje de descripción de circuitos electrónicos digitales que utiliza distintos niveles de abstracción. En las siglas VHDL, la V se debe a VHSIC (Very High Speed Integrated Circuits) y HDL corresponde con Hardware Description Language. El lenguaje VHDL fue desarrollado para la descripción, modelado y simulación de sistemas digitales [1], aunque actualmente también es empleado para la síntesis e implementación asistida por computadora. El lenguaje es un estándar de la IEEE, con la norma ANSI/IEEE 1076-1993 [2]. Otros lenguajes para la descripción de hardware son Verilog y ABEL. Además de los HDLs, los métodos alternos para diseñar circuitos digitales son la captura de esquemas (con herramientas CAD) y los diagramas de bloques, pero éstos no son prácticos en sistemas complejos. El lenguaje VHDL fue empleado para la programación del FPGA Spartan-3E de Xilinx, el cual es un dispositivo con 500 mil compuertas [3] incluido en la tarjeta Nexys2, manufacturada y distribuida por la empresa Digilent [4], en la figura 1 se muestra la vista superior de esta tarjeta. Fig. 1. Vista superior de la tarjeta Nexys2. Los recursos incluidos en la tarjeta Nexys2 la hacen ideal durante el proceso de aprendizaje de FPGAs, ya que permiten crear sistemas completos en un solo dispositivo. La tarjeta contiene periféricos para su evaluación (8 LEDs, 4 displays de 7 segmentos, 4 botones y 8 interruptores deslizantes), puertos: PS/2, VGA y Semana Nacional de Ingeniería Electrónica al 28 de Octubre 2011, Tapachula, Chiapas, México. ISBN: 968-607-477-588-4

Transcript of Manipulación de un Brazo Robótico por medio de una ... -...

Page 1: Manipulación de un Brazo Robótico por medio de una ... - UTMfsantiag/Sist_Dig/Art_01_Brazo_con_FPGA.pdf · ... para la manipulación de un brazo robótico de cuatro grados de libertad,

Manipulación de un Brazo Robótico por medio de una Tarjeta FPGA

Felipe Santiago Espinosa, Yukio Rosales Luengas, Alejandro Rivera García, Adrián Humberto

Martínez Vásquez

Instituto de Electrónica y Mecatrónica, Universidad Tecnológica de la Mixteca, Carretera a Acatlima

Km. 2.5, Huajuapan de León, Oaxaca, 69000, México Tel. 953-53-202-14, [email protected],

[email protected], [email protected], [email protected]

Resumen

En el presente documento se describe el trabajo realizado durante la implementación de una interfaz

usuario-máquina, para la manipulación de un brazo robótico de cuatro grados de libertad, incorporando

la opción de grabar y reproducir una secuencia de movimientos. Se utilizó una tarjeta Nexys2, la cual

es manufacturada por la empresa Digilent e incluye un FPGA Spartan-3E con 500 mil compuertas. La

tarjeta sirve de controlador, estableciendo la comunicación entre un teclado de computadora, que es el

dispositivo de entrada, y el brazo robótico, que es el dispositivo de salida. Para la creación del

programa de configuración del FPGA, se hizo uso del lenguaje de descripción de hardware VHDL; con

este lenguaje está hecho el driver para el teclado y con el mismo se crearon los módulos necesarios para

la correcta manipulación del brazo, incluyendo la grabación y recuperación de secuencias.

Palabras Clave: Brazo Robótico, FPGA, lenguaje VHDL, teclado.

I. Introducción

VHDL es un lenguaje de descripción de circuitos

electrónicos digitales que utiliza distintos niveles

de abstracción. En las siglas VHDL, la V se debe

a VHSIC (Very High Speed Integrated Circuits)

y HDL corresponde con Hardware Description

Language. El lenguaje VHDL fue desarrollado

para la descripción, modelado y simulación de

sistemas digitales [1], aunque actualmente

también es empleado para la síntesis e

implementación asistida por computadora.

El lenguaje es un estándar de la IEEE, con la

norma ANSI/IEEE 1076-1993 [2]. Otros

lenguajes para la descripción de hardware son

Verilog y ABEL. Además de los HDLs, los

métodos alternos para diseñar circuitos digitales

son la captura de esquemas (con herramientas

CAD) y los diagramas de bloques, pero éstos no

son prácticos en sistemas complejos.

El lenguaje VHDL fue empleado para la

programación del FPGA Spartan-3E de Xilinx, el

cual es un dispositivo con 500 mil compuertas [3]

incluido en la tarjeta Nexys2, manufacturada y

distribuida por la empresa Digilent [4], en la

figura 1 se muestra la vista superior de esta

tarjeta.

Fig. 1. Vista superior de la tarjeta Nexys2.

Los recursos incluidos en la tarjeta Nexys2 la

hacen ideal durante el proceso de aprendizaje de

FPGAs, ya que permiten crear sistemas

completos en un solo dispositivo. La tarjeta

contiene periféricos para su evaluación (8 LEDs,

4 displays de 7 segmentos, 4 botones y 8

interruptores deslizantes), puertos: PS/2, VGA y

V�� Semana Nacional de Ingeniería Electrónica

2� al 28 de Octubre 2011, Tapachula, Chiapas, México. ISBN: 968-607-477-588-4 3��

Page 2: Manipulación de un Brazo Robótico por medio de una ... - UTMfsantiag/Sist_Dig/Art_01_Brazo_con_FPGA.pdf · ... para la manipulación de un brazo robótico de cuatro grados de libertad,

RS232 para aplicaciones y conectores para

manejar hardware externo.

En este trabajo, se desarrolló un sistema para

manipular un brazo robótico comercial,

comandándolo por medio de un teclado de

computadora estándar, dado que la tarjeta Nexys2

incluye un puerto PS/2 [5]. El sistema resultante

se compone de varios módulos, ya que se le

incorporó la capacidad de guardar movimientos,

con su correspondiente duración, para

posteriormente reproducirlos en forma

automática.

Se utilizó el brazo desarrollado y distribuido por

la empresa Steren, con número de parte K-682

[6], cuya imagen se muestra en la figura 2.

Fig. 2. Brazo robótico a manipular.

El brazo incluye 5 motores, 4 de movimiento y 1

para la abertura y cierre de unas pinzas. Sin

embargo, únicamente se manipularon 4 motores,

3 de movimiento y el de las pinzas, esto porque

con 3 motores es suficiente para alcanzar

cualquier posición en un espacio finito [7].

El control alámbrico incluido con el brazo se

basa en interruptores, por lo que se desarrolló una

etapa de acondicionamiento para que pudiera ser

manipulado desde la tarjeta Nexys2.

II. Desarrollo

El sistema que se diseñó tiene la capacidad de

controlar libremente cada uno de los 4 motores

que le proporcionan movimiento al brazo; para

esto se utilizan ocho teclas diferentes desde un

teclado PS/2, dos para cada motor; también se

emplea una tecla más, para iniciar el grabado de

una secuencia y para su finalización e inicio de la

reproducción.

III. Módulos del Sistema

El sistema se desarrolló bajo un enfoque

modular [8], proponiendo un diagrama a bloques

con los módulos necesarios, para luego codificar

a cada uno con VHDL. En la figura 3 se muestra

la propuesta modular del sistema; la función de

cada módulo se describe a continuación.

1. El Divisor genera un “reloj” con una

frecuencia inferior a la de la tarjeta; esto es

porque la frecuencia de la tarjeta es de 50

MHz, la cual resulta inadecuada para un

sistema de esta naturaleza, dado que el

teclado opera en frecuencias entre 20 y 30

KHz.

2. El módulo Teclado es el responsable de

hacer la comunicación entre la tarjeta y el

teclado de la computadora. Lee la trama

enviada por éste y entrega un código de

rastreo por cada tecla presionada. Es

importante mencionar que el módulo

mantiene el código de rastreo de la última

tecla presionada, aunque ya no lo esté. Por

ello, también genera una señalización de

cuando hay un nuevo código de rastreo

(CR_Listo).

3. El módulo deco_comp acepta el código de

rastreo que le entrega el módulo del teclado e

identifica si es una de las teclas asignadas

para el movimiento del brazo, de ser así, lo

que hace es transformar este código en uno

que se encargará de mover el brazo. También

detecta si se ha presionado la tecla que indica

el inicio de la grabación de movimientos,

para ello se destinó a la tecla G.

4. El módulo salida_a_motor acepta el código

que le entrega el módulo deco_comp y

genera las salidas que mueven a los motores

del brazo. También acepta los códigos

provenientes de la memoria, donde se

almacenará la secuencia a ejecutar, la

decisión de cual código ejecutar se toma con

base en las entradas de control: act1 y act2.

Siendo act2 de mayor jerarquía, pues indica

V�� Semana Nacional de Ingeniería Electrónica

2� al 28 de Octubre 2011, Tapachula, Chiapas, México. ISBN: 968-607-477-588-4 3��

Page 3: Manipulación de un Brazo Robótico por medio de una ... - UTMfsantiag/Sist_Dig/Art_01_Brazo_con_FPGA.pdf · ... para la manipulación de un brazo robótico de cuatro grados de libertad,

que se tiene que ejecutar la secuencia

grabada, es decir, mientras act2 esté en alto,

no importa que se presione otra tecla de

activación de motores, puesto que será

ignorada.

!

!Fig. 3. Diagrama a bloques del sistema para la manipulación de un brazo.

!

5. El módulo almacena se encarga de asegurar

que el código que se guarda en la memoria es

un código de movimiento, y no un código en

blanco; es necesario este módulo por los

tiempos perdidos en la máquina de estados.

6. El módulo control, como su nombre lo

indica, es el responsable de comandar a los

demás módulos del sistema.

7. El módulo cont1 cuenta el tiempo que se

mantiene presionada una tecla de activación

de motores.

8. El módulo fin_mov es empleado durante la

reproducción de movimientos. Del módulo

memoria obtiene una duración registrada y

con base en un contador determina si ya se

alcanzó el tiempo recibido, indicándolo con la

activación de su salida.

9. En el módulo memoria se guardarán claves

que identifican a los motores y los sentidos de

movimiento, siempre que se haya activado la

opción de grabar movimientos. También se

guardará en la misma dirección, pero en un

espacio diferente, el tiempo que duró la

V�� Semana Nacional de Ingeniería Electrónica

2� al 28 de Octubre 2011, Tapachula, Chiapas, México. ISBN: 968-607-477-588-4 3�2

Page 4: Manipulación de un Brazo Robótico por medio de una ... - UTMfsantiag/Sist_Dig/Art_01_Brazo_con_FPGA.pdf · ... para la manipulación de un brazo robótico de cuatro grados de libertad,

activación de esta tecla. Estos datos los

obtiene de los módulos almacena y cont1.

10. El módulo deco es el manejador de los

displays de 7 segmentos incluidos en la

tarjeta. Básicamente se emplea para mostrar

la dirección de acceso en la memoria, para

que el usuario conozca el movimiento que se

está grabando o reproduciendo.

11. El módulo direc es el contador responsable

de la dirección de la memoria a la que se va a

acceder.

IV. Control del Sistema

El control es el módulo principal del sistema, ya

que es quien coordina la operación de los demás

módulos. El control se basa en una máquina de

estados y su operación principal la realiza

mientras graba o recupera una secuencia de

movimientos. En las figura 4 se muestra el

comportamiento del control, en donde puede

notarse un estado jerárquico, el cuál es expandido

en la figura 5.

!

Fig. 4. Máquina de Estados del Control.

!

Fig. 5. Estados que conforman al Estado Jerárquico de la figura 4.!

V�� Semana Nacional de Ingeniería Electrónica

2� al 28 de Octubre 2011, Tapachula, Chiapas, México. ISBN: 968-607-477-588-4 3�3

Page 5: Manipulación de un Brazo Robótico por medio de una ... - UTMfsantiag/Sist_Dig/Art_01_Brazo_con_FPGA.pdf · ... para la manipulación de un brazo robótico de cuatro grados de libertad,

La grabación de la secuencia inicia y termina con

la tecla G, mientras el usuario no presione esa

tecla, el control se mantendrá en el estado 1, en el

cual se han acondicionado sus salidas para que

las acciones en las teclas de los movimientos se

vean reflejadas directamente en el brazo robótico

(la activación de la tecla G se indica con la señal

sig).

En el estado 2 el sistema espera a que ya no esté

presionada la tecla G. En los 4 estados que

conforman al estado jerárquico, el control

generará las señales para ir grabando la secuencia

de movimientos. La grabación también concluye

con la tecla G.

En los últimos 3 estados, después del estado

jerárquico, el sistema iniciará con la reproducción

de movimientos, la cual se realiza en el orden

inverso en que se fueron generando.

V. Acondicionamiento para el Manejo del

Robot

Las salidas del módulo salida_a_motor están

directamente conectadas a los pines de uno de

los conectores de la tarjeta Nexys2, por lo tanto,

es necesario desarrollar una etapa de

acoplamiento. En la figura 6 se puede ver como

el control alámbrico incluido básicamente cierra

unos interruptores, con lo que suministrará

voltaje a los motores. Los interruptores serán

remplazados por puentes H, para que los motores

sean manejados desde la tarjeta Nexys2.

Fig. 6. Control alámbrico del Brazo Robótico.

La etapa de acondicionamiento se implementó

con base en Puentes H integrados, modelo L293,

en la figura 7 puede verse su diseño [9], en donde

se observa que se incluyeron puentes de diodos

como protección [10].

!

Fig. 7. Etapa de acoplamiento para el manejo de

los motores.

VI. Resultados

El sistema cumplió los requerimientos planteados

y además, resultó muy robusto. Las grabaciones y

reproducciones de secuencias funcionaron

adecuadamente.

En la figura 8 se exhibe al brazo conectado con la

tarjeta Nexys2, por medio de la etapa de

acoplamiento. Además de mostrar al teclado de

computadora conectado en el puerto PS/2 de la

misma tarjeta.

!

Fig. 8. Sistema implementado.

En la figura 9 se pueden ver detalles en las

conexiones, mostrando a la tarjeta Nexys2

completa, para ilustrar como en los displays de 7

segmentos aparece la dirección de acceso. Se

conectó un teclado marca Dell, aunque no hay

restricciones, se podría conectar un teclado de

cualquier marca.

V�� Semana Nacional de Ingeniería Electrónica

2� al 28 de Octubre 2011, Tapachula, Chiapas, México. ISBN: 968-607-477-588-4 3��

Page 6: Manipulación de un Brazo Robótico por medio de una ... - UTMfsantiag/Sist_Dig/Art_01_Brazo_con_FPGA.pdf · ... para la manipulación de un brazo robótico de cuatro grados de libertad,

Fig. 9. Conexiones en la tarjeta Nexys2.

En la figura 10 está el primer nivel del modelo de

hardware, generado por la herramienta ISE de

Xilinx al momento de realizar la implementación.

Corresponde con la interfaz del sistema, las

señales dato_ps y tec_clk no son salidas,

realmente son señales bidireccionales.

!

Fig. 10. Modelo de hardware resultante.

En la tabla 1 se muestra un resumen con los

recursos empleados, se observa una amplia

disposición de recursos, para complementar la

funcionalidad del sistema.

VII. Conclusiones

En este proyecto se usó un módulo ya elaborado

con anterioridad, el controlador de un teclado de

computadora [11]. En el diseño de sistemas

basados en VHDL es común y conveniente

reutilizar módulos, como en este caso.

Recurso Usado Disponible Uso

Slices 205 4, 656 4 %

Bloques I/O 31 232 13 %

Bloques RAM 0 20 0 %

GCLKs 2 24 8 % Tabla 1. Resumen de los recursos.

Para el correcto funcionamiento de todos los

módulos fue preciso tomar en consideración la

operación del módulo del teclado, ya que como

se explicó con anterioridad, mantiene el código

de rastreo aunque la tecla ya no esté presionada.

Para ello, se realizó un cambio en la máquina de

estados que afectó al módulo de memoria:

cuando se reconoce un código de movimiento y

éste se va a grabar, primero se incrementa la

dirección de memoria y posteriormente se guarda

el dato en esa localidad. De la misma manera, al

momento de leer la memoria, primero se realiza

la lectura y posteriormente se disminuye la

dirección. Se hace la comparación con la

dirección de inicio de la memoria, y de haber una

coincidencia, se da por terminada la secuencia

grabada, de lo contrario se repetirá el ciclo. Esto

garantiza un correcto funcionamiento de la

máquina de estados, que además está

sincronizada con el módulo que lee el teclado.

Para trabajos futuros se podría proponer el

guardar varias secuencias de movimientos en la

memoria y tener un menú para decidir cuál de las

secuencias se ha de ejecutar. Por ejemplo, una

secuencia puede mover un objeto de un lugar a

otro, mientras que una secuencia diferente puede

hacer que el brazo regrese a la posición inicial,

para tomar nuevamente otro objeto.

También sería interesante acondicionar un

sistema de sensores para conocer la posición del

brazo en tiempo real, y así poder acondicionar

algún controlador automático tradicional, aunque

a este respecto, primero sería necesario introducir

en la tarjeta ciertos módulos de operaciones

matemáticas para poder llevar a cabo esta tarea.

V�� Semana Nacional de Ingeniería Electrónica

2� al 28 de Octubre 2011, Tapachula, Chiapas, México. ISBN: 968-607-477-588-4 3��

Page 7: Manipulación de un Brazo Robótico por medio de una ... - UTMfsantiag/Sist_Dig/Art_01_Brazo_con_FPGA.pdf · ... para la manipulación de un brazo robótico de cuatro grados de libertad,

VIII. Referencias

[1] S. Brown, Z. Vranesic, “Fundamentos de

Lógica Digital con Diseño VHDL”. 2ª Ed.,

2006, Editorial McGraw-Hill.

[2] F. Pardo, J. A. Boluda, “VHDL, Lenguaje

para síntesis y modelado de circuitos”, Ed.

Alfaomega, 2000

[3] Spartan-3E FPGA Family: Data Sheet,

http://www.xilinx.com/support/documentati

on/data_sheets/ds312.pdf, última visita:

Junio de 2011.

[4] Digilent Inc. - Digital Design Engineer’s

Source, http://www.digilentinc.com/,

última visita: Junio de 2011.

[5] Digilent Nexys2 Board Reference Manual,

Doc: 502-107, Copyright Digilent, Inc.,

June 21, 2008.

[6] Brazo Mecánico con Control Remoto

Alámbrico, modelo K-682, Manual de

Instrucciones V0608,

http://www2.steren.com.mx/doctosMX//K-

682-instr.pdf, última visita: Junio de 2011.

[7] R. Kelly, V. Santibáñez and A. Loría,

“Control of Robot Manipulators in Joint

Space”, Ed. Springer-Verlag, 2005.

[8] R. Romero Troncoso, “Sistemas Digitales

con VHDL”; Legaria Ediciones.

[9] P. Miles, T. Carroll, “Build Your Own

Combat Robot”, Ed. McGraw-

Hill/Osborne, 2002.

[10] A. P. Malvino, “Principios de Electronica”.

6ª Ed., 1999, Editorial McGraw-Hill.

[11] J. C. Tepozán Ríos, “Diseño de

controladores para la tarjeta de desarrollo

XSA-100”. Tesis de Ingeniería,

Universidad Tecnológica de la Mixteca,

Mayo de 2004. !

IX. Autores

M. C. Felipe Santiago Espinosa es Maestro en

Ciencias con especialidad en Electrónica por

parte del INAOE, Licenciado en Electrónica por

parte de la BUAP, desde 1998 labora como

Profesor –Investigador en la Universidad

Tecnológica de la Mixteca, adscrito al instituto

de Electrónica y Mecatrónica.

Yukio Rosales Luengas es estudiante de

Ingeniería Mecatrónica en la Universidad

Tecnológica de la Mixteca.

Alejandro Rivera García! es estudiante de

Ingeniería Mecatrónica en la Universidad

Tecnológica de la Mixteca.

Adrián Humberto Martínez Vásquez! es

estudiante de Ingeniería Mecatrónica en la

Universidad Tecnológica de la Mixteca.

!

!

!

!

V�� Semana Nacional de Ingeniería Electrónica

2� al 28 de Octubre 2011, Tapachula, Chiapas, México. ISBN: 968-607-477-588-4 3��