domingo, 10 de febrero de 2008

APLICACIÓN DE UNA FPGA EN EL SISTEMA DE CONTROL DE UN BRAZO MECÁNICO

Basanta Ingrid
dergrid@hotmail.com, edgar010170@cantv.net
Santiago Lemus
santi@hotmail.com
Universidad Nacional Experimental Politécnica
“Antonio José de Sucre”
Vicerrectorado Puerto Ordaz
Departamento de Ingeniería Electrónica

Maestría de Ingeniería Electrónica

Cátedra Electrónica Integrada


Resumen: Son variadas las técnicas para el control de la posición y orientación de los robots industriales en especial aquellos en forma de brazos mecánico. En tal sentido, se presenta en este trabajo una descripción de la implementación de los arreglos de compuertas de campo programables (Field Programmable Gate Array, FPGA) para el control de la posición de un brazo mecánico de dos grados de libertad (dos barras). Como elementos sensores se presentan los acelerómetros de Analog Divices Modelo ADXL202E y como elemento de control se considera la FPGA Xilinx XC2S200E sobre una tarjeta de desarrollo Digilent 2SB-DIO4.

Palabras Claves: Brazo Mecánico, FPGA, Acelerómetro, Control Digital.


1. INTRODUCCIÓN.

Los brazos mecánicos son muy utilizados, hoy en día en diferentes tipos de industrias, tales como: automotriz, química, electrónica, entre otras. También son utilizados en medicina como asistentes en cirugía, en ambientes radioactivos, desactivación de explosivos, exploración de planetas, entre otros.
Adquiere gran importancia el poder manipular estos brazos mecánicos en tiempo real y en forma remota, por lo que se requieren sistemas de control de respuestas rápidas. En ese sentido las FPGAs representan una tecnología interesante en aplicaciones de control en tiempo real cuando se requiere implementar un determinado algoritmo de control sobre un dispositivo [1].

En el siguiente trabajo se presenta el uso de la FPGA Xilinx XC2S200E para el diseño de un brazo robot de dos grados de libertad, cuya tarea es del tipo “PICK AND PLACE”, es decir, tareas donde únicamente nos interesa tomar un objeto desde una posición y orientación inicial y ubicarlo en otra sin importar la trayectoria que se ejecuta durante el movimiento.


2. DESARROLLO.

2.1. Modelo Matemático.

La Figura 1 muestra el esquema físico del brazo mecánico de dos (2) grados de libertad, el cual se desea manipular utilizando dos servomotores ubicados en las dos rótulas del manipulador. El punto "A", representa la posición que se desea determinar, dado que allí estará ubicada la pinza de sujeción.
De la Figura 1 se pueden obtener las ecuaciones que rigen la posición del punto "A" como función de los ángulos de giro de los servomotores, donde resulta que:



Como se puede observar, determinando los ángulos de giro de los servomotores se puede calcular la posición del punto A (pinza) del brazo mecánico.


2.2. Arquitectura del Sistema de Control.

En forma general un sistema de control para un manipulador (brazo mecánico) tiene la estructura mostrada en la Figura 2. Estos sistemas poseen sensores que se encargan de medir el ángulo de giro de cualquiera de las partes del sistema y transmitir dicha información al control del sistema. La data del sensor es tomada por un sistema de adquisición de datos, el cual a su vez la decodifica y envía al sistema de control, el sistema de control procesa la información y toma la decisión requerida por el sistema o el operador y la transmite al actuador (en este caso un servomotor), el cual ejecuta la acción ordenada por el controlador.






2.2.1. Descripción del Sensor utilizado.


En este trabajo el sensor seleccionado es un acelerómetro modelo ADXL202E de Analog Divices cuyo diagrama de bloque se muestra en la Figura 3 [2].

El acelerómetro contiene un sensor micro-máquina de poli-silicio y un circuito que prepara la señal de aceleración para implementarla en una arquitectura de lazo abierto. En cada eje, un circuito de salida convierte la señal analógica a un ciclo de trabajo modulado, donde la señal digital es decodificada con un microcontrolador.

Este tipo de acelerómetro es utilizado para medir ángulos de inclinación que van desde a a través de la longitud de los pulsos T1 y T2 mostrados en la Figura 3.

La Tabla 1 presenta las salidas de las aceleraciones medidas por los sensores X y Y del acelerómetro como función del ángulo de inclinación de este. Se puede observar que cuando el ángulo de inclinación es -90° la salida X es -g y Y es cero, por otra parte, sí la inclinación es +90°, el valor de X es g y Y es cero. Cuando el ángulo es 0° la salida X es cero y Y es igual a g.





Dado que el servomotor del brazo L1 tendrá un giro de 0° a 180° el acelerómetro a instalar debe estar a +90° desde la posición 0° de dicho servomotor, es decir, para un ángulo de giro del servomotor de 90° el sensor tendrá un ángulo de 0° y para un ángulo de giro de 180° del servomotor el sensor tendrá un ángulo de -90°.

Para el brazo L2, el sensor medirá el ángulo phi de la ecuación (3), el cual también tiene un ángulo de 0° a 180° por lo que la instalación del sensor es similar al brazo L1.


2.2.2. Descripción del sistema de Control (FPGA).

El sistema de control recibe la data de los sensores, la decodifica, la procesa y envía la señal modulada por ancho de pulso (PWM por sus siglas en ingles) a los actuadores (servomotores). El dispositivo lógico programable utilizado es un FPGA Xilinx XC2S200E [3], montado sobre una tarjeta de desarrollo Digilent 2SB-DIO4.

La FPGA es un arreglo lógico y digital que puede ser programado por diferentes softwares tales como el VHDL, el Verilog, ABEL, entre otros. La arquitectura de una FPGA consiste de un arreglo de varias celdas lógicas que se comunican entre sí a través de canales de posición horizontal y vertical (ver Figura 4). Cada celda lógica funciona en forma similar a los bloques lógicos de los dispositivos lógicos programables complejos (CPLD), pero se diferencian en que la FPGA utiliza generadores de funciones en vez de compuertas lógicas.



Cada generador de función es como una memoria que en vez de implementar la función lógica por compuerta se precalcula el resultado y se almacena en el generador. Las entradas al generador funcionan como un bus de direcciones que mediante combinación de las diferentes entradas se selecciona el resultado correcto. Por esta razón es que las FPGA tardan menos tiempo en procesar la información en comparación con las compuertas.


2.2.3. Descripción del Actuador.

El actuador utilizado es un servomotor Marca Futaba, Modelo S3004, cuyas características son [4]:

Para 4,8 V: Veloc. = 0,23 s/60º, Torque = 3,06 kg-cm.
Para 6,0 V: Veloc. = 0,19 s/60º, Torque = 3,57 kg-cm.
Peso: 37,2 g (1,3 oz)
Largo: 41 mm (1,6")
Ancho: 20 mm (0.8")
Alto: 36 mm (1,4")

El voltaje que se utilizará es de 4,8 V donde los tiempos de los ciclos de trabajo de , y son 0,9 ms, 1,5 ms y 2,1 ms respectivamente [5].En forma general los servomotores son un sistema compuesto por un motor eléctrico de corriente continua al cual se le acopla una pequeña caja de engranajes que se encarga de aumentar el torque del motor eléctrico disminuyendo la velocidad angular. El motor eléctrico es controlado por un sistema de control que permite regular la velocidad y sentido de giro del mismo. La Figura 5 muestra un esquema general del servomotor utilizado.


2.2.4. Funcionamiento del Sistema.

La Figura 6 muestra el diagrama de control del sistema, donde la adquisición de los datos se realiza a través de un contador de doble reset (uno asíncrono y otro sincrónico). Este bloque cuenta el tiempo de encendido del ciclo de trabajo de la señal PWM proveniente de los acelerómetros. Al comienzo del tiempo de encendido de la señal PWM el registro del contador se resetea e incrementa su cuenta y cuando la señal se apaga el registro queda almacenado para luego ser procesado (cálculo).


El procesamiento de datos regula los diferentes niveles de inclinación de los sensores, los cuales están relacionados por las ecuaciones (1), (2) y (3). Esta data después de procesada se convierte en un valor de posición para los servomotores. El servomotor posee un controlador de lazo cerrado que ajusta su posición de acuerdo al incremento o decremento del error de retroalimentación.

3. CONCLUSIONES.

- Las FPGAs procesan la información a altas velocidades, son fáciles de implementar y compatibles con muchos dispositivo.

- Los acelerómetros son dispositivos económicos, compatibles con las FPGAs, que son utilizados para medir ángulos de inclinación en un rango de a , por lo que limita el ángulo de giro de cada brazo a un ángulo de a (o en algunas aplicaciones de a ). Para medir ángulos de 360° se deben instalar dos acelerómetros en cada articulación desfasados 90°.

- Este tipo de mecanismo puede simular el movimiento de un brazo humano moviéndose en un solo plano.

- La velocidad de los servomotores y su posición es controlada por pulsos PWM.


5. BIBLIOGRAFÍAS.

[1] Martinez, J. J., Guerrero, A. y López, J. "Herramienta para la Implementación Hardware de Controladores Sobre FPGAs.". Universidad Politécnica de Cartagena.

[2] Analog Divices, Inc., (2000). “Manual del Fabricante". Disponible: http://www.analog.com/. [Consulta: 2007, diciembre, 27].

[3] Xilinx, Inc,. (2001). "Data Sheets Catalog". Disponible: http://www.xilinx.com/. [Consulta: 2007, diciembre, 27].

[4] Futaba. "Radio Control (RC-R/C) Sistemns and Accessories". Disponible: http://www.futaba-rc.com/. [Consulta: 2007, diciembre, 29].

[5] Castillo, A. A., et al. "Control Digital de Posición con Acelerómetros Utilizando FPGA". Universidad Autónoma de Yucatán, Facultad de Ingeniería.Pérez M. C. y Yáñez S. O. "Demodulador Digital para Acelerometría Dinámica". Universidad Autónoma Metropolitana, Iztapalapa. México.