Seguimiento líneas mediante técnicas robótica evolutiva

Bookmark (0)
Please login to bookmark Close

Este TFG (Trabajo de Fin de Grado) se centra en el desarrollo de un controlador autónomo para robots móviles, utilizando el algoritmo evolutivo NEAT (NeuroEvolution of Augmenting Topologies). El objetivo principal es diseñar un sistema robótico capaz de seguir una línea de forma eficiente utilizando NEAT. Dicho sistema combina el procesamiento de imágenes captadas por una cámara integrada y la información proporcionada por sensores de tipo SONAR como entrada a la red neuronal para poder seguir la línea de manera eficiente. El proyecto se lleva a cabo en un entorno de simulación, empleando la plataforma CoppeliaSim. En ella se modela un robot virtual y una escena que incluye todos los componentes necesarios para la tarea. El controlador se entrena, incrementando la calidad de los individuos a través de generaciones. Se utiliza la información aportada por las entradas del robot para ajustar los pesos y estructuras de las redes y así optimizar su comportamiento. La calidad se define a través del fitness de los individuos, calculado por una función de evaluación personalizada. La implementación técnica se realiza en el lenguaje de programación Python, integrando librerías como neat-python para la evolución de redes neuronales y OpenCV para el procesamiento de imágenes. El desarrollo abarca tanto el diseño del sistema como su entrenamiento, validación y análisis de resultados. También se documentan las decisiones tomadas durante el proceso, los retos encontrados y las posibles mejoras para el futuro. Este enfoque permite explorar la aplicación práctica de algoritmos evolutivos en entornos de robótica autónoma, pudiendo contribuir al estudio de técnicas de control adaptativo y aprendizaje automático en tareas de navegación complejas. Para complementar el análisis del comportamiento evolutivo del controlador, se ha desarrollado código para procesar los datos. Se analizan los puntos de control guardados durante el entrenamiento, extrayendo información estadística útil por generación. Esta información facilita una mejor evaluación del rendimiento del algoritmo ya que permite identificar patrones de aprendizaje, posibles estancamientos o momentos de extinción de especies durante el proceso evolutivo.
ABSTRACT
This Bachelor’s Thesis focuses on the development of an autonomous controller for mobile robots using the NEAT algorithm (NeuroEvolution of Augmenting Topologies). The main objective is to design a system capable of efficiently following a line by combining image processing from an onboard camera and data from sonar-type sensors. The project is carried out in a simulated environment using the CoppeliaSim platform. A virtual robot and scenes with paths are modeled within it, including all the necessary components for the task. The controller is trained through a genetic evolution process, adjusting the weights and structures of neural networks by giving a fitness value to individuals. This fitness value is used to optimize its behavior based on a custom function, giving the neuronal network an objective to train towards. The technical implementation is done in the Python programming language, integrating libraries such as neat-python for neural network evolution and OpenCV for image processing. The development covers system design, training, validation, and results analysis. Decisions made during the process, challenges encountered, and potential future improvements are also documented. This approach enables the exploration of practical applications of evolutionary algorithms in autonomous robotics, possibly contributing to the study of adaptive control techniques and machine learning in complex navigation tasks. To complement the analysis of the controller’s evolution, code has been developed to process the data generated throughout training. Checkpoints saved during training are studied, extracting stadistical information per generation. This system allows for a better evaluation of the algorithm’s performance and helps identify learning patterns, potential stagnation, or species extinction events during the evolutionary process.

​Este TFG (Trabajo de Fin de Grado) se centra en el desarrollo de un controlador autónomo para robots móviles, utilizando el algoritmo evolutivo NEAT (NeuroEvolution of Augmenting Topologies). El objetivo principal es diseñar un sistema robótico capaz de seguir una línea de forma eficiente utilizando NEAT. Dicho sistema combina el procesamiento de imágenes captadas por una cámara integrada y la información proporcionada por sensores de tipo SONAR como entrada a la red neuronal para poder seguir la línea de manera eficiente. El proyecto se lleva a cabo en un entorno de simulación, empleando la plataforma CoppeliaSim. En ella se modela un robot virtual y una escena que incluye todos los componentes necesarios para la tarea. El controlador se entrena, incrementando la calidad de los individuos a través de generaciones. Se utiliza la información aportada por las entradas del robot para ajustar los pesos y estructuras de las redes y así optimizar su comportamiento. La calidad se define a través del fitness de los individuos, calculado por una función de evaluación personalizada. La implementación técnica se realiza en el lenguaje de programación Python, integrando librerías como neat-python para la evolución de redes neuronales y OpenCV para el procesamiento de imágenes. El desarrollo abarca tanto el diseño del sistema como su entrenamiento, validación y análisis de resultados. También se documentan las decisiones tomadas durante el proceso, los retos encontrados y las posibles mejoras para el futuro. Este enfoque permite explorar la aplicación práctica de algoritmos evolutivos en entornos de robótica autónoma, pudiendo contribuir al estudio de técnicas de control adaptativo y aprendizaje automático en tareas de navegación complejas. Para complementar el análisis del comportamiento evolutivo del controlador, se ha desarrollado código para procesar los datos. Se analizan los puntos de control guardados durante el entrenamiento, extrayendo información estadística útil por generación. Esta información facilita una mejor evaluación del rendimiento del algoritmo ya que permite identificar patrones de aprendizaje, posibles estancamientos o momentos de extinción de especies durante el proceso evolutivo.
ABSTRACT
This Bachelor’s Thesis focuses on the development of an autonomous controller for mobile robots using the NEAT algorithm (NeuroEvolution of Augmenting Topologies). The main objective is to design a system capable of efficiently following a line by combining image processing from an onboard camera and data from sonar-type sensors. The project is carried out in a simulated environment using the CoppeliaSim platform. A virtual robot and scenes with paths are modeled within it, including all the necessary components for the task. The controller is trained through a genetic evolution process, adjusting the weights and structures of neural networks by giving a fitness value to individuals. This fitness value is used to optimize its behavior based on a custom function, giving the neuronal network an objective to train towards. The technical implementation is done in the Python programming language, integrating libraries such as neat-python for neural network evolution and OpenCV for image processing. The development covers system design, training, validation, and results analysis. Decisions made during the process, challenges encountered, and potential future improvements are also documented. This approach enables the exploration of practical applications of evolutionary algorithms in autonomous robotics, possibly contributing to the study of adaptive control techniques and machine learning in complex navigation tasks. To complement the analysis of the controller’s evolution, code has been developed to process the data generated throughout training. Checkpoints saved during training are studied, extracting stadistical information per generation. This system allows for a better evaluation of the algorithm’s performance and helps identify learning patterns, potential stagnation, or species extinction events during the evolutionary process. Read More