DESARROLLO DE CONTROLADORES DIFUSOS EMPOTRADOS MEDIANTE TÉCNICAS DE CODISEÑO HARDWARE/SOFTWARE



Documentos relacionados
SÍNTESIS DE SISTEMAS DE CONTROL DIFUSOS MEDIANTE HERRAMIENTAS DE DISEÑO DSP SOBRE FPGAS 1

DESARROLLO DE MÓDULOS-IP DE CONTROLADORES DIFUSOS PARA EL DISEÑO DE SISTEMAS EMPOTRADOS SOBRE FPGAS 1

Tipos de Dispositivos Controladores

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

CONTROL DIFUSO DE NAVEGACIÓN DE UN ROBOT MÓVIL MEDIANTE DISPOSITIVOS PROGRAMABLES

Electrónica Digital II

GUÍA DOCENTE. Sistemas Integrados

CAPÍTULO 1 Instrumentación Virtual

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

ENTORNO CAD PARA LA ENSEÑANZA DE LA LÓGICA DIFUSA Y SUS APLICACIONES

PLATAFORMA RECONFIGURABLE PARA EL DESARROLLO DE SISTEMAS DE CONTROL BASADOS EN LÓGICA DIFUSA

NOMBRE DEL EXPERIMENTO AUTOR CATEGORÍA PALABRAS CLAVE QUÉ SE PRETENDE MOSTRAR? DIRIGIDO A. Construye y Controla tu Robot en un día.

MAXHC11. TARJETA DE BAJO COSTE PARA EL DISEÑO MIXTO HARDWARE-SOFTWARE

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

Elementos requeridos para crearlos (ejemplo: el compilador)

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Encuesta sobre utilización de la microelectrónica en la Argentina

TEMA 4. Unidades Funcionales del Computador

Metodologías de diseño de hardware

Motores de Corriente Continua...3 Motores Paso a Paso...7 Bibliografía...9

IMPLEMENTACIÓN DE ALGORITMO DE CONTROL FUZZY PI EN UN DISPOSITIVO DE LÓGICA PROGRAMABLE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR

Simulación 4D en el Control de Sistemas Mecatrónicos

Sistemas de Computadoras Índice

Capítulo 5. Cliente-Servidor.

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

DESCRIPCION DEL SITEMA MASTER.

Clase 20: Arquitectura Von Neuman

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

2 EL DOCUMENTO DE ESPECIFICACIONES

18. Camino de datos y unidad de control

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

OBJETIVOS DE LA MATERIA... 4 PROGRAMA ANALÍTICO. CONTENIDOS TEÓRICOS Y PRÁCTICOS... 5 BIBLIOGRAFIA... 7

UNIVERSIDAD DE SALAMANCA

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

ES T3 DESCRIPCIÓN

6. SISTEMAS CAD-CAM (CAM) 6.1. CONCEPTO DE CAM

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

LABORATORIO I DE CONTROL

Determinación del nivel de influencia

Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica

Ahorro de energía visualizando páginas Web en dispositivos móviles heterogéneos

UTILIZACIÓN DE SOFTWARE LIBRE EN ASIGNATURAS DE INTRODUCCIÓN A LOS MICROPROCESADORES.

capitulo3 MARCO TEÓRICO Para el diseño de la reubicación de los procesos se hará uso de la Planeación

Arquitectura Básica para Controladores de Lógica Difusa a Programarse en FPGAs

Reproducción de una Imagen en un Monitor VGA Utilizando un FPGA

SIMULACIÓN EN TIEMPO REAL DE UNA ESTACION DE TRABAJO INDUSTRIAL ROBOTIZADA.

Introducción a LabVIEW FPGA y CompactRIO

1.2 Análisis de los Componentes. Arquitectura de Computadoras Rafael Vazquez Perez

Estructuras de Control - Diagrama de Flujo

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo

CONTROLADORES DIFUSOS ADAPTATIVOS COMO MÓDULOS DE PROPIEDAD INTELECTUAL PARA FPGAS 1

Curso Completo de Electrónica Digital

Ingeniería de Software. Pruebas

DISEÑO E IMPLEMENTACIÓN DE UNA TARJETA DE ADQUISICIÓN DE DATOS PARA EL LABORATORIO DE TELECOMUNICACIONES DE LA FIEC.

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech

Laboratorio Nacional de Cómputo de Alto Desempeño: Fortalecimiento de la Infraestructura 2015

NOTA DE APLICACIÓN AN-P002. Programando Wiring con NXProg

Desarrollo de una interfaz RS-232 para el manejo de un coche de radiocontrol desde el PC

Información comercial sobre el Software de Captura de datos de Almacén INVSCAN+ para gestión de stocks.

DISEÑO, IMPLEMENTACIÓN Y VERIFICACIÓN DE UN SISTEMA DE HARDWARE RECONFIGURABLE PARA APLICACIONES DE CONTROL.

Introducción. Componentes de un SI. Sistema de Información:

SOFTWARE. Software para pruebas automáticas y adquisición de datos

CAPITULO III MARCO METODOLÓGICO. La presente investigación plantea como objetivo el diseño de un prototipo

CLASIFICACIÓN DE LAS COMPUTADORAS. Ing. Erlinda Gutierrez Poma

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

CICLO DE VIDA DEL SOFTWARE

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Wireless Sensor Network in a nuclear facility: A technology aplication proposal

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

DIAGRAMA DE GANTT. Este gráfico consiste simplemente en un sistema de coordenadas en que se indica:

Novedades. Introducción. Potencia

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

forma de entrenar a la nuerona en su aprendizaje.

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

Entre los más conocidos editores con interfaz de desarrollo tenemos:

TARJETA DE DESARROLLO CPLD

PLATAFORMA i-datum Desarrollo e Implementación

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. Introducción. Fabricantes. Elevada complejidad. Facilitar tareas de diseño

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

1. Introducción. Universidad de Cantabria 1-1

Adquisición de Datos usando Matlab

Capítulo 5 Programación del algoritmo en LabVIEW

Versión final 8 de junio de 2009

Gestión de la Configuración

GRADO EN INGENIERÍA ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL

3 er premio Categoría de instituciones, organizaciones y centros. Programa Remote Controler para la empleabilidad juvenil

Eficacia operativa en el sector público. 10 recomendaciones para reducir costes

Laboratorio de Diseño de Sistemas Digitales

La presente tesis pretende que los estudiantes observen la teoría de las acciones de control

Capítulo 4 Análisis y diseño del software de los Robots

Introducción a las redes de computadores

INFORME Nº GTI INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE

Grado en Ingeniería Informática

Transcripción:

DESARROLLO DE CONTROLADORES DIFUSOS EMPOTRADOS MEDIANTE TÉCNICAS DE CODISEÑO HARDWARE/SOFTWARE S. Sánchez-Solano 1, A. Cabrera 2, I. Baturone 1, A. Barriga 1, F. J. Moreno-Velo 1, P. Brox 1 1 Instituto de Microelectrónica de Sevilla, Centro Nacional de Microelectrónica, Avda. Reina Mercedes s/n, 41012-Sevilla, España. <santiago@imse.cnm.es> 2 Dpto. Automática y Computación, Facultad de Ingeniería Eléctrica, ISPJAE, Ciudad de la Habana, Cuba. <alex@electrica.ispjae.edu.cu> ABSTRACT This paper describes the realization using hardware/software codesign techniques of a control system for navigation of autonomous mobile robots. The physical implementation of the controller is carried out by means of a reconfigurable platform based on FPGAs. This platform combines a general purpose processor with specific hardware to implement fuzzy inference modules. Both the processing system and the inference modules are configurable using available CAD tools which make the development of the controllers easier. RESUMEN En esta comunicación se describe la realización mediante técnicas de codiseño hardware/software de un sistema de control difuso para aplicaciones de navegación de robots móviles. La implementación física del controlador se lleva a cabo por medio de una plataforma reconfigurable basada en FPGAs. Dicha plataforma, combina un procesador de propósito general con hardware específico para la implementación de módulos de inferencia difusos. Tanto el sistema de procesado como los módulos de inferencia son configurables, disponiéndose de herramientas de CAD que facilitan el desarrollo de los controladores.

DESARROLLO DE CONTROLADORES DIFUSOS EMPOTRADOS MEDIANTE TÉCNICAS DE CODISEÑO HARDWARE/SOFTWARE 1 S. Sánchez-Solano 1, A. Cabrera 2, I. Baturone 1, A. Barriga 1, F. J. Moreno-Velo 1, P. Brox 1 1 Instituto de Microelectrónica de Sevilla, Centro Nacional de Microelectrónica, Avda. Reina Mercedes s/n, 41012-Sevilla, España. <santiago@imse.cnm.es> 2 Dpto. Automática y Computación, Facultad de Ingeniería Eléctrica, ISPJAE, Ciudad de la Habana, Cuba. <alex@electrica.cujae.edu.cu> RESUMEN En esta comunicación se describe la realización mediante técnicas de codiseño hardware/software de un sistema de control difuso para aplicaciones de navegación de robots móviles. La implementación física del controlador se lleva a cabo por medio de una plataforma reconfigurable basada en FPGAs. Dicha plataforma, combina un procesador de propósito general con hardware específico para la implementación de módulos de inferencia difusos. Tanto el sistema de procesado como los módulos de inferencia son configurables, disponiéndose de herramientas de CAD que facilitan el desarrollo de los controladores. 1. INTRODUCCIÓN La capacidad de la lógica difusa para describir el comportamiento de sistemas complejos mediante reglas lingüísticas simples ha motivado su aplicación a la realización de numerosos sistemas de control [1], [2]. De forma paralela, se han desarrollado diferentes alternativas para la implementación de sistemas de control difusos. Una de las soluciones más ampliamente adoptadas es aquella en que todas las tareas del sistema se realizan por software mediante la ejecución de un programa en un computador. La tendencia actual hacia el desarrollo de sistemas empotrados, que presentan restricciones en cuanto a peso, tamaño, consumo de potencia y costo, ha hecho que muchas de estas realizaciones utilicen microprocesadores o microcontroladores empotrados en lugar de las CPUs más potentes habituales en plataformas de tipo PC [3]. Estas realizaciones se caracterizan por un elevado grado de flexibilidad. Sin embargo, su tiempo de respuesta viene limitado por la inherente ejecución secuencial de los programas. Para las aplicaciones en que la velocidad de operación es un factor determinante la única alternativa viable consiste en recurrir a la implementación hardware del sistema de control [4]. Con independencia de la técnica de diseño que se utilice, en las realizaciones hardware es fundamental reducir al mínimo el área del circuito integrado resultante, de aquí que sea preciso recurrir en la mayoría de las ocasiones a estrategias de realización que limitan en gran medida la flexibilidad de los sistemas. A medio camino entre las soluciones puramente software y hardware, las técnicas de codiseño hardware/ software (HW/SW) tratan de obtener un compromiso adecuado entre las ventajas e inconvenientes de ambas alternativas [5]. La distribución entre el hardware y el software de las tareas que debe realizar el sistema de control difuso permite obtener una solución que sea a la vez rápida y flexible, donde las tareas de configuración y procesado convencional se realizarán por software mientras que aquellas que requieren recursos específicos serán implementadas mediante hardware dedicado [6]. El vertiginoso desarrollo de la industria microelectrónica y la aparición de nuevas estrategias de diseño digital hacen posible actualmente la implementación de sistemas completos sobre un único circuito integrado. Por otra parte, la disponibilidad de dispositivos lógicos programables como FPGAs que incorporan una elevada cantidad de recursos facilita la implementación de dichos sistemas sobre un dispositivo programable (System on Programmable Chip, SoPC). Esta tendencia se ve favorecida por la existencia de potentes entornos de diseño que facilitan la realización de los sistemas y por el uso intensivo de módulos de propiedad intelectual (IP) que proporcionan una gran diversidad de elementos hardware bien desarrollados y depurados. En esta comunicación se describe la realización de un sistema de control difuso para aplicaciones de navegación de robots móviles. De acuerdo con las consideraciones 1 Este trabajo ha sido parcialmente financiado por los proyectos TIC2001-1726 (CICYT) y DGAECE-58/02 (Junta de Andalucía).

anteriores, la implementación se lleva a cabo mediante técnicas de codiseño HW/SW y con ayuda de una plataforma reconfigurable para el desarrollo de sistemas de control basados en lógica difusa que puedan ser implementados como SoPC. 2 PLATAFORMA DE DESARROLLO PARA SISTEMAS DE CONTROL DIFUSOS La Figura 1 ilustra la estrategia de codiseño HW/SW para controladores difusos consistente en la partición a priori de las tareas del sistema. De acuerdo con dicha estrategia, todas aquellas tareas que no requieren el uso de recursos específicos (inicialización del sistema, definición de objetivos, preprocesado de información, monitorización de comportamiento, etc.) serán ejecutadas por un procesador de propósito general. La realización de las tareas relacionadas con la aplicación de técnicas neurodifusas en un procesador convencional resulta poco eficiente. Por este motivo, dichas tareas, junto con los circuitos de interfaz del sistema serán implementados mediante módulos hardware dedicados. Para dar soporte físico a los controladores difusos se ha empleado una placa de desarrollo de FPGAs Digilab2E (de Digilent Inc). Esta placa dispone de una FPGA SpartanIIE de 200.000 puertas y 56 Kbits de memoria de tipo bloque [7]. También se dispone de una placa auxiliar de entrada/salida (DIO2, de Digilent Inc.) que puede utilizarse para introducir la condición de arranque del controlador y visualizar los resultados, así como de una placa de expansión de memoria externa (con dos SRAM AS7C34098 de 256Kx16 cada una) para aumentar el espacio de memoria disponible. El conjunto formado por estas tres placas constituye una plataforma reconfigurable para el desarrollo de controladores difusos. El elemento utilizado para soportar las tareas de software es el procesador MicroBlaze de Xilinx [8]. Dicho procesador está disponible como módulo IP Procesado Inferencia Fuzzy conjuntamente con una gran diversidad de periféricos, controladores y estructuras de buses que permiten configurar el sistema según las necesidades de una determinada aplicación. MicroBlaze es un procesador RISC de 32 bits, basado en arquitectura Harvard, que puede ser implementado sobre FPGAs de Xilinx del tipo SpartanII y superiores. Posee soporte para el bus OPB (On-chip Peripheral Bus) y para múltiples periféricos compatibles con este estándar, que pueden ser parametrizados y disponen de drivers de software que facilitan su utilización. Para la implementación hardware de los módulos de inferencia difusos se ha empleado la arquitectura y la metodología de diseño de circuitos difusos para aplicaciones específicas previamente desarrollada por nuestro grupo [9]. Las técnicas utilizadas en esta arquitectura para reducir el consumo de recursos en las realizaciones hardware de módulos de inferencia difusos son el procesado de reglas activas, la limitación del grado de solapamiento de las funciones de pertenencia y la utilización de métodos de defuzzificación simplificados. Una característica importante de dicha arquitectura es la existencia de diferentes opciones de implementación para los distintos bloques que la forman. El diseñador puede seleccionar distintas estrategias para la generación de funciones de pertenencia, diferentes operadores difusos para los conectivos de antecedentes de las reglas y distintos métodos de defuzzificación simplificados. Además del core de MicroBlaze, configurado con buses para acceso a memoria externa de instrucciones y datos, el sistema de procesado incluye otros componentes (Figura 2-a). Para el acceso a la memoria externa se han incorporado un controlador de memoria y el árbitro correspondiente. La interfaz con el módulo de inferencia difuso (FIM) se realiza a través de tres puertos de entrada/salida de 32 bits (GPIO 1-3). El temporizador está formado por dos contadores descendentes de 32 bits, que se utilizan para la generación de señales periódicas que controlan la operación del sistema. Por último, el UART se utiliza inicialmente para cargar el programa del controlador en la memoria externa y, posteriormente, como interfaz de comunicación. La Figura 2-b muestra una fotografía de la plataforma de desarrollo. 3. FLUJO DE DISEÑO Drivers I/O SW I/O HW Fig 1. Codiseño hardware/software de un sistema de control basado en lógica difusa. MicroBlaze dispone de un entorno de desarrollo que facilita tanto la síntesis hardware del sistema como la compilación y depuración del software. La zona izquierda de la Figura 3 muestra el flujo de diseño de un sistema basado en MicroBlaze. Los componentes del sistema se declaran en un fichero de especificaciones de hardware (.mhs), en donde se configura el procesador así como los diferentes periféricos y controladores utilizados (espacio de direcciones de E/S, buses de datos y direcciones,

256KX32 SRAM (AS7C34098) Controlador de Memoria Externa Árbitro CORE microprocesador MicroBlaze GPIO 1 GPIO 2 FIM Generador de reloj Memoria Local 4 KBytes GPIO 3 UART Timer FPGA (a) (b) Fig 2. Diagrama de bloques (a) y placas de desarrollo (b) de la plataforma reconfigurable. señales, etc.). Este fichero constituye la entrada a la herramienta platgen encargada de integrar todo el hardware del sistema MicroBlaze. Opcionalmente se generará una descripción VHDL que puede ser utilizada para crear un sistema jerárquicamente superior, como se requiere para la inclusión del módulo de inferencia. La implementación final del sistema completo se lleva a cabo utilizando las herramientas de desarrollo de FPGAs de Xilinx incluidas en el entorno ISE. De forma similar los drivers de los diferentes periféricos, el modo de operación del sistema y los enlaces a las rutinas de interrupción, se declaran en un fichero de especificaciones de software (.mss). Utilizando esta información, la herramienta libgen compila las funciones de los diferentes periféricos, obteniéndose las librerías y ficheros de cabecera que facilitarán la codificación de los programas en lenguaje C. Especificaciones de software Especificaciones de hardware Especificaciones del módulo de inferencia Librerías y drivers.mss.mhs XFL.c.h Código fuente libgen platgen Simulación Xfsim, Xfsl Aprendizaje supervisado.c.h Código ejecutable mb-gcc.out VHDL Herramientas de desarrollo de FPGAs (ISE) Hardware adicional VHDL Síntesis software Opciones del programa xfc Opciones de arquitectura xfvhdl Síntesis hardware xmd FPGA.bit C VHDL Fig 3. Combinación de los flujos de diseño de MicroBlaze y Xfuzzy para la implementación de sistemas de control difusos.

Por último el compilador mb-gcc genera el código ejecutable correspondiente a dicho programa. El entorno se completa con la herramienta de depuración xmd que facilita la carga y verificación del programa. En la zona de la derecha de la Figura 3 se ilustra el desarrollo de los módulos de inferencia difusos con ayuda del entorno Xfuzzy [10]. Las distintas herramientas de dicho entorno permiten realizar la descripción del sistema difuso, simular su comportamiento, ajustar la base de conocimiento y realizar el proceso de síntesis del mismo. La herramienta de síntesis hardware (xfvhdl) genera una descripción VHDL del sistema difuso a partir de su especificación XFL. La herramienta permite dimensionar los bloques del sistema y seleccionar entre las distintas opciones de la arquitectura, generando código VHDL sintetizable compatible con las herramientas de síntesis de FPGAs. Al ejecutar el proceso de síntesis el usuario puede seleccionar diferentes opciones de implementación de la base de conocimiento [11]. Como Xfuzzy incorpora herramientas para la síntesis software del módulo de inferencia difuso, es posible también realizar una implementación totalmente software del controlador difuso utilizando para su ejecución el procesador empotrado en la FPGA. De esta forma, la misma plataforma realizada sobre la FPGA permite ser configurada para la realización de un controlador difuso software o de uno basado en codiseño HW/SW. 4 SISTEMA DE CONTROL DE NAVEGACIÓN DE ROBOTS MÓVILES El problema de aparcamiento de vehículos autónomos es un problema típico de control de navegación en robótica. En particular, el control de la trayectoria que debe seguir el vehículo para aparcar en batería cuando parte de una situación cercana a la posición objetivo (Figura 4) es una variante del problema clásico de aparcamiento marcha atrás que complica sensiblemente el sistema de control a utilizar, ya que en este caso deben incorporarse estrategias para planificar la dirección de marcha [12]. La plataforma de desarrollo descrita anteriormente ha sido aplicada en la realización de un sistema de control difuso para el aparcamiento del vehículo Romeo4R. Dicho vehículo, diseñado y construido en la Escuela Superior de Ingenieros de la Universidad de Sevilla, está equipado con motores de tracción y de dirección, y diferentes sensores que permiten determinar el estado del vehículo. El control a bajo nivel de los motores, así como la adquisición de la información procedente de los sensores y su procesado para determinar la velocidad, curvatura, orientación y posición del vehículo se realiza mediante un procesador digital de señal (DSP) TMS- 320LF de Texas Instruments. De esta forma se libera al controlador de alto nivel de las tareas de adquisición y procesado de la información procedente de los sensores Fig 4. Representación del problema de aparcamiento en batería y estructura jerárquica del controlador. así como del control directo de los motores, pudiendo dedicarse a la ejecución del algoritmo de control de navegación del vehículo. La comunicación entre ambos niveles se realiza mediante un protocolo de comunicación serie incorporado en el DSP y que debe también ser incorporado en el programa que se ejecute en el controlador difuso. De acuerdo con la estrategia de codiseño HW/SW utilizada, el procesador MicroBlaze realiza las tareas de interfaz con el controlador de bajo nivel, secuencialización de las diferentes etapas del sistema e intercambio de información con el módulo de inferencia difusa. Este último implementa la estrategia de navegación del vehículo mediante un conjunto de reglas de actuación similares a las que emplearía cualquier conductor. El módulo de inferencia difuso está compuesto por las seis bases de conocimiento mostradas en la Figura 5. Las bases de conocimiento Position, Planning y Direction corresponden a estructuras de toma de decisiones. Position decide si el vehículo se encuentra cerca o lejos de la posición objetivo en función del valor de las coordenadas (x,y). Su salida se combina con la orientación del vehículo (φ) en la base Planning para obtener la propuesta de sentido de circulación (plan). Sin embargo, dado que no se puede invertir bruscamente la polaridad del voltaje aplicado al motor de tracción, se combina esta salida con el valor anterior de la velocidad (v - ) en la base Direction, cuya salida way indica el sentido que definitivamente debe seguir el vehículo. En la implementación de estas bases de conocimiento se utilizan

x y φ v γ FIM Position pos Planning Celerity Forward Backward plan Direction Fig 5. Estructura del módulo de inferencia difuso del sistema de control de navegación para el vehículo Romeo4R. antecedentes basados en memoria y el método de defuzzyficación MaxLabel. En todos los casos se emplearon 5 bits para codificar las entradas y salidas y 3 bits para los grados de pertenencia. Las restantes bases de conocimiento corresponden a sistemas con salidas interpoladas, utilizándose en todas ellas una resolución de 8 bits en entradas y salidas así como 6 bits para codificar los grados de pertenencia. En ellas se emplean técnicas aritméticas para generar los antecedentes y el método de defuzzificación FuzzyMean. La base de conocimiento Celerity determina el valor absoluto de la velocidad (cel), mientras que las bases Backward y Forward determinan la curvatura de Romeo4R en un sentido u otro (bw, fw). Dado que estas bw way cel fw bw dos bases comparten las mismas entradas, es posible su unificación en un solo módulo. La operación del controlador incluye la combinación de la salida que decide el sentido de la circulación (way) con las correspondientes al valor absoluto de la velocidad (cel) y las de curvatura de Romeo4R en un sentido u otro (bw y fw) de acuerdo con las siguientes expresiones: newv = way cel fw newγ = bw 0 if if if v > 0 v < 0 v = 0 Siguiendo el flujo de diseño discutido en la sección 3, las descripciones VHDL de las diferentes bases de conocimiento se combinan con la descripción del sistema MicroBlaze para proceder a la implementación conjunta de todos los componentes del sistema. Como resultado, se obtiene el fichero que contiene la configuración de la FPGA y puede ser descargado en la misma mediante la herramienta impact. Los resultados de implementación de este controlador indican un consumo de recursos de 1.899 slices (80% de la Spartan-IIE200), con un periodo mínimo para la señal de reloj de 17,70 ns. 5. RESULTADOS EXPERIMENTALES Una vez implementado el sistema de control, se realizaron múltiples experimentos en los que se ubicó el vehículo en diferentes posiciones iniciales y se fue registrando su comportamiento durante toda la trayectoria almacenando en ficheros los datos correspondientes a las coordenadas y orientación del vehículo, así como los valores de velocidad y curvatura establecidos por el FIM, y los reales de Romeo4R. Estos ficheros fueron posteriormente procesados y analizados con el objetivo de evaluar los resultados. Entre otros aspectos, se compararon las trayectorias obtenidas experimentalmente con los resultados de la simulación del fichero de especificaciones XFL utilizando las herramientas del entorno Xfuzzy. GPIO 2 (a) Fig 6. Resultados experimentales frente a simulación. a) Trayectorias; b) Control de curvatura. (b)

(a) (b) Fig 7. Resultados experimentales frente a simulación. a) Trayectorias; b) Control de curvatura. La figura 6 muestra dos trayectorias reales de Romeo4R (en colores violeta y verde) obtenidas mediante el control difuso híbrido y las trayectorias equivalentes obtenidas como resultado de la simulación (en colores azul y rojo). Ambos casos corresponden a situaciones iniciales en las que la maniobra de aparcamiento puede realizarse marcha atrás. Las diferencias entre las mismas se deben a las irregularidades existentes en el terreno, no contempladas en el modelo de la simulación. Nótese no obstante cómo el controlador difuso corrige la desviación y logra aparcar correctamente. El caso mostrado en la Figura 7 corresponde, sin embargo, a una situación en la que el vehículo se dirige en primer lugar hacia delante hasta llegar a una posición centrada con respecto a la posición final y, posteriormente, completa la maniobra marcha atrás. 6. CONCLUSIONES Se ha descrito una plataforma reconfigurable basada en FPGAs que permite la implementación de diversas opciones de controladores difusos, tanto software como basadas en codiseño hardware/software. Dicha plataforma se basa en la utilización del sistema MicroBlaze como procesador empotrado y del entorno de desarrollo Xfuzzy y sus herramientas de síntesis para la generación del módulo de inferencia difuso, existiendo diversas opciones de implementación hardware del mismo. Tanto el sistema de procesado basado en MicroBlaze como el hardware del sistema de inferencia pueden ser fácilmente configurados para obtener una estructura del controlador difuso acorde a las necesidades del proceso a controlar. La aplicación de la plataforma al control de un vehículo autónomo utilizando una placa comercial de desarrollo de FPGAs permite validar su aplicabilidad. Los resultados obtenidos ponen de manifiesto la similitud existente entre las implementaciones software y hardware del módulo de inferencia con diferencias significativas en la velocidad de respuesta y el consumo de recursos. Referencias [1] Passino, K. M., Yurkovich, S., Fuzzy Control, Addison-Wesley, 1998. [2] Yen, J., Langari, R., Zadeh, L. A., Eds., Industrial Applications of Fuzzy Logic and Intelligent Systems, IEEE Press, 1995. [3] C. Von Altrock, Adapting existing Hardware for Fuzzy Computation, in Handbook of Fuzzy Computation, Institute of Physics Publishing, 1998. [4] Baturone, I., Barriga, A., Sánchez-Solano, S., Jiménez, C.J., López, D. Microelectronic Design of Fuzzy Logic-Based Systems, CRC Press, 2000. [5] Reyneri, L., Implementation issues of neuro-fuzzy hardware: going toward HW/SW codesign, IEEE- Transactions-on-Neural-Networks, vol. 14, n.1, pp. 176-194, Jan. 2003. [6] Cabrera, A., Sánchez-Solano, S., Senhadji, R., Barriga, A., Jiménez, C.J. Hardware/software codesign methodology for fuzzy controllers implementation, IEEE International Conference on Fuzzy Systems, pp. 464-469, Honolulu, May 2002. [7] Digilab 2E Reference Manual, Digilent Inc, 2002. [8] MicroBlaze Reference Guides, Xilinx, Inc. [9] Sánchez-Solano, S., Barriga, A., Jiménez, C.J., Huertas, J.L, Design and Applications of Digital Fuzzy Controllers, IEEE International Conference on Fuzzy Systems, pp. 869-874, Barcelona, Jul. 1997. [10] López, D.R., Jiménez, C.J., Baturone, I., Barriga, A. Sánchez-Solano, S., Xfuzzy: A Design Environment for Fuzzy Systems, IEEE International Conference on Fuzzy Systems, pp. 1060-1065, Anchorage, May 1998. [11] Lago, E., Jiménez, C.J., López, D.R., Sánchez-Solano, S., Barriga, A., Xfvhdl: A Tool for the Synthesis of Fuzzy Logic Controllers, DATE 98, pp. 102-107, Paris, Feb. 1998. [12] Baturone, I., Moreno-Velo, F. J., Sánchez-Solano, S., Martín de Agar, R., Ollero, A., Automatic Design of Fuzzy Control Systems for Autonomous Mobile Robots, Proc. 28th Annual Conference of the IEEE Industrial Electronics Society, pp. 2457-2462, Sevilla, Nov. 2002.