Professional Documents
Culture Documents
Posgrado de Mecatrnica, Departamento de Ingeniera Electrnica, Abstract En el siguiente trabajo se presentalaimplementacin de una estrategiaauto-guiadapara un vehculo evasor deobstculos, utilizando como base de la estrategia unaredneuronal desarrollada y entrenada en el entorno de softwaredeMatLab, donde hemos creado ysimuladola red neuronal. Enla fase de desarrollose han tenido encuenta la peculiaridad dela plataformaArduino en donde se implementala red fsicamente, finalmente los sensores utilizados para la deteccin de objetos y obstculos tienen como especificacin el siguiente modelo:SRF02. Keywords:navegacin en entornos; redes neuronales; Evasin de obstculos; bsqueda de caminos; implementacin en tiempo real; sensores ultrasnicos; SRF02, Arduino.
I. INTRODUCCIN. La navegacin de un mvil es uno de los ms importantes desafos en el campo de la robtica mvil, ya que estos, para decir que navegan correctamente en trayectoria cualquiera evadir los obstculos que se le presenten y llegar a un objetivo. Actualmente un gran nmero de investigadores centran sus estudios en las tcnicas de control y navegacin inteligente de vehculos, ya que las tcnicas convencionales de control son limitadas debido a la incertidumbre del entorno en donde se pretende mover el vehculo, as nace la necesidad de estudiar las estrategias de control inteligentes, como lo son las redes neuronales, ya que ofrecen una solucin muy acertada al problema de navegacin de los vehculos, por su capacidad de aprender las relaciones no lineales que existen entre los valores de entrada de los sensores y los valores de salida. En resumen, el problema se plantea de la siguiente manera, un vehculo ubicado en un entorno particular, este entorno contiene una serie de obstculos aleatorios y una meta, se pueden plantear diversas formas para tratar de resolver este problema; por un lado se pueden plantear mtodos clsicos como el de planificacin de ruta, tales como grficos de visibilidad, y por otro lado tenemos el planteamiento del uso de un sistema de control inteligente basado en tcnicas de inteligencia artificial, tales como redes neuronales, control difuso, etc.; estos sistemas son capaces de resolver muchos problemas de control, gracias a su capacidad de emular algunas caractersticas humanas. En [1], un camino libre de colisiones entre el origen y el destino se construye basndose en redes neuronales para la navegacin de robots mviles en entornos parcialmente estructurados. El esquema propuesto utiliza dos redes neuronales para realizar la tarea. La red neural del tipo perceptron multicapa (MLP) usando retropropagacin. El esquema propuesto se lleva a cabo en tiempo real implementado en un procesador Intel Pentium 350 MHz, el robot logra evitar todos los obstculos para llegar a su objetivo desde el punto de partida inicial. En [3], el problema de navegacin de un robot mvil se resuelve con la ayuda de un modelo de redes neuronales locales. Esta red es un conjunto de submodelos que representan al sistema dinmico modelado en varios puntos de operacin. Cada submodelo es una red neuronal feed forward entrenada con un algoritmo back-propagation. La salida de estos submodelos es ponderado con la ayuda de una red neuronal con una funcin de base para generar los comandos de movimiento para el robot. El rendimiento de la red neuronal local es comparado con un perceptron multicapa y con una red con una funcin base tipo radial, como parmetro para medir el rendimiento se toma el tiempo medido que le toma el robot en llegar a su objetivo o destino. En [4], se disea un controlador para la navegacin que se compone principalmente de un conjunto de tres subredes neuronales. Las primeras dos son responsables de los comportamientos ms importantes de un vehculo inteligente que son la localizacin del objetivo y la evasin de obstculos. Ambos controladores son clasificadores y son entrenados con tcnicas back propagation supervisados. La tercera red neuronal acta como un supervisor y esta es responsable de la decisin final basndose en las salidas de las primeras dos redes. Este controlador o red neuronal es entrenada por el algoritmo variant of the associative reward-penalty para su aprendizaje. Debido a su estructura jerrquica, la complejidad del sistema se reduce, resultando en un tiempo de respuesta rpido. II. METODOLOGA. A. Construccin robot mvil. EL robot mvil fue elaborado de tal forma que pudiera ser fcilmente modificable o adaptable ante nuevas y futuras investigaciones en este campo. Se evalu el aspecto fsico del robot, y se defini el diseo con base en criterios de funcionalidad, materiales disponibles, movilidad y esttica. Despus de analizar las diferentes Estructuras se escogi por su tamao reducido y simplicidad de la estructura mostrada en la figura 1, otro factor que se tuvo en cuenta fue la experiencia al trabajar previamente con esta clase de estructura mecnica. Se inici con planteamiento del modelo mostrado a continuacin.
Fig. 1 Esquema planteado para el modelo del robot mvil.
De la figura podemos distinguir varias reas numeradas que corresponden a lo descrito en seguida: 1. Llantas traseras. 2. Motorreductores. 3. Estructura base fabricada en Zintra de 5mm. 4. Placa de control formada por la tarjeta Arduino. 5. Circuito L293B para el manejo de los motores. 6. Rueda loca para permitir el giro del robot. 7. Sensor SRF02 Izquierdo 8. Sensor SRF02 Central 9. Sensor SRF02 Derecho B. Tarjeta Arduino Duemilanove, sensores SRF02 y Motorreductores.B02_1-180 Los motores utilizados para dotarle de movimiento al robot mvil fueron los Motoreductores modelo nmero: B02_1-180. Las caractersticas ms destacables son las siguientes: y Motorreductor CD y Voltaje nominal 5Vdc y Torque 3 KgF*cm. y Velocidad 43 RPM. y Consumo de corriente sin carga: 75 mA. y Consumo de corriente atrancado: 670mA. y Salida con eje de 5mm de dimetro y Orificios para su montaje con tornillos. y Medidas: 65mm X 22 mm X 18.5mm. Peso: 32gr. EL motor es el mostrado en la figura 2.
Fig. 2 Motorreductor B02_1-180
La tarjeta Arduino Duemilanove es una plataforma de desarrollo con las siguientes caractersticas: y MicrocontroladorATmega368. y Voltaje de funcionamiento: 5V. y Voltaje de entrada: 7-12V. y Pines E/S digitales14 y Pines de entrada analgica y Intensidad por pin: 40 mA y Intensidad en pin 3.3V: 50 mA y Memoria Flash: 16 KB (ATmega168) o 32 KB (ATmega328) SRAM: 1 KB (ATmega168) o 2 KB (ATmega328) y Velocidad de reloj16 MHz La figura 3 nos muestra la tarjeta empleada en el prototipo.
Fig. 3 Tarjeta Arduino Duemilanove empleada en el robot.
Los sensores SRF02 tienen las siguientes caractersticas: y Rango de 15 a 600 cm. y Voltaje de alimentacin de 5V. y Consumo corriente de 4mA. y Frecuencia de 40KHz y Nivel TTL. y Dimensiones del dispositivo 24x20x17mm. y Comunicacin va Serial y protocolo I2C. y Bajo Coste. La figura 4 muestra el sensor utilizado para la deteccin de obstculos.
Fig. 4 Sensor Ultrasnico SRF02 utilizado en el robot
C. Diseo de la red neuronal. Existen varias definiciones sobre Redes Neuronales Artificiales RNAs: Una nueva forma de computacin, inspirada en modelos biolgicos. Un modelo matemtico compuesto por un gran nmero de elementos procesales organizados en niveles. Un sistema de computacin compuesto por un gran nmero de elementos simples, muy interconectados, los cuales procesan informacin por medio de su estado dinmico como respuesta a entradas externas.
En la red neuronal, se interconectan varias unidades de procesamiento en capas, las neuronas de cada capa no se interconectan entre s. Sin embargo, cada neurona de una capa proporciona una entrada a cada una de las neuronas de la siguiente capa, es decir, cada neurona transmitir su seal de salida a cada neurona de la capa siguiente, hasta llegar a la salida. En la actualidad existen diversidad de estudios acerca de las Redes Neuronales Artificiales (RNA`s) donde las aplicaciones como clasificacin de patrones, reconocimiento de imgenes y habla, filtrado de seales, sntesis de voz y control de movimiento de un brazo robot entre otras son aplicaciones desarrolladas por un tipo de red neuronal especfica. El control de los movimientos del robot mvil que debe realizar para generar una trayectoria que le permita navegar evitando obstculos sin colisionar se identific como un problema de Clasificacin de Patrones. Para este tipo de problemas podemos encontrar redes como: perceptron simple, perceptron multicapa, las redes Backpropagation, las Redes de Base Radial y las Redes Neuronales Probabilsticas PNN entre otras, como las ms utilizadas en este tipo de aplicacin. La red neuronal elegida para el desarrollo del sistema de control del robot es un MLP (Multi-Layer Perceptron), debido a que este tipo de redes por sus caractersticas son buenas para resolver problemas de clasificacin como el que nos ocupa. A esto cabe aadir que presentan una arquitectura relativamente sencilla para su implementacin en el robot. La Figura 5 muestra la estructura de la red empleada, Se utiliz una red neuronal de tres entradas y un vector salida de 4 elementos, compuesta de 4 capas con configuracin: [5, 4, 4, 4], en la primera capa oculta con una funcin de activacin tipo tansig , en la segunda capa oculta y la tercera capa oculta con una funcin tipo logsig al igual que la capa de salida con una funcin de activacin logsig . Las entradas a la red es la informacin de los sensores ubicados a la izquierda, en el centro y a la derecha, y dichos sensores se activan de acuerdo a la proximidad de un obstculo en dicha orientacin. La red va a tener una salida de acuerdo a esta entrada lo cual va a permitir corregir la posicin y as evadir el obstculo. Como sabemos la funcin de salida de la red hace que los valores de salida sean nmeros decimales comprendidos en el intervalo [0 1], entonces programamos una sencilla funcin de comparacin dentro del Arduino para establecer la salida de mayor valor a 1 y las otras dos a 0.
Fig. 5 Estructura de la red neuronal propuesta.
El vector de salida est formado por tres elementos, correspondientes a cada una de las acciones bsicas de control que puede realizar el robot. Los valores de estos elementos estn codificados, de forma que el correspondiente al movimiento que se debe ejecutar es1 y los otros tres a 0. As, la red ofrecer como respuesta el vector (1,0,0,0) si la accin de control es girar derecha; (0,1,0,0) si es girar a la izquierda,(0,0,1,0) si la accin es avanzar y por ltimo (0,0,0,1) si la accin es retroceder. El algoritmo planteado se muestra en la figura 6.
Fig. 6 Algoritmo de procesamiento del sistema.
Este algoritmo es programado en lenguaje C para su implementacin en la tarjeta Arduino Duemilanove. La red neuronal se cre y entreno en el entorno de MatLab el cual nos arroj los pesos sinpticos necesarios para la implementacin en la tarjeta de Arduino Duemilanove. La red neuronal se entren con los siguientes parmetros: En la figura 7 se muestra la imagen obtenida en el momento de entrenamiento de la red en MatLab, podemos observar que los resultados del entrenamiento son satisfactorios.
Fig. 7. Entrenamiento de la red neuronal.
Ahora en la figura 8 se aprecia que la red neuronal se entren satisfactoriamente con un error significativamente bajo.
Fig. 8 Red Neuronal con 17 neuronas.
En lo relacionado a la programacin de la red neuronal en la tarjeta Arduino Duemilanove se toman en cuenta los siguientes puntos: y Los pesos sinpticos de las capas ocultas. y Los pesos sinpticos de la capa de salida. y La bias o pesos extra de cada capa. y Conocer las funciones de activacin usadas en cada una de las capas. En la primera capa oculta se utiliztansig y en las restantes se emple logsig. Para obtener los pesos de las capas de entrada se hizo uso del comando: net.IW{} , y los pesos de las capas restantes se obtuvieron con el comando: net.LW{} , finalmente los valores de las bias se obtienen con: net.b{} . Estos datos obtenidos de pesos y bias son almacenados en la memoria del Arduino Duemilanove en forma matricial, para ser aplicadas a las formulas de verificacin de la red MLP las cuales son las siguientes: