Desarrollo de un sistema de navegación para un robot móvil usando aprendizaje por refuerzo
Abstract
El motivo principal que ha dado lugar al desarrollo de este proyecto ha sido que consideramos que la inteligencia artificial, y en concreto el aprendizaje por refuerzo, es el futuro en cuanto a la optimización de procesos y, ante la necesidad de lograr optimizar el control de nuestro robot virtual para las clases de laboratorio de ciertas asignaturas de ICAI, hemos decidido probar su eficacia en este proyecto.
El proyecto se ha llevado a cabo inicialmente en el entorno de una máquina virtual de Linux sobre Windows mediante la plataforma de simulación de CoppeliaSim y programando el código de manera externa en Python. Posteriormente se realizó el cambio de entorno a Windows para mayor simplicidad.
En cuanto al desarrollo del proyecto se ha comenzado por una primera fase de preparación del entorno y puesta a punto de las herramientas necesarias. Le ha seguido una fase de ajuste del control PD. Tras ella se ha procedido diseñar una versión preliminar del algoritmo de aprendizaje por refuerzo y el ajuste de los hiperparámetros. Finalmente y tras el cambio de entorno a Windows se ha obtenido una versión depurada y exitosa del algoritmo de aprendizaje por refuerzo. Tras ella se ha llevado a cabo un análisis en profundidad de los resultados y la elaboración de la correspondiente memoria.
Como conclusión principal del proyecto es conveniente recalcar la enorme efectividad que ha resultado tener el método de aprendizaje por refuerzo a la hora de obtener una solución óptima para nuestro caso de estudio y frente a la solución aportada por el algoritmo de control convencional. Ha resultado sorprendente la enorme importancia del tamaño máximo de la memoria del robot para lograr un resultado exitoso. Se recomienda para futuros estudios poner cuidado en alcanzar siempre una política determinista que demuestre la eficacia del método. The main reason that has given rise to the development of this project has been that we consider that artificial intelligence, and specifically reinforcement learning, is the future in terms of process optimization and, given the need to optimize the control of Our virtual robot for the laboratory classes of certain ICAI subjects, we have decided to test its effectiveness in this project.
The project was initially carried out in the environment of a Linux virtual machine on Windows using the CoppeliaSim simulation platform and programming the code externally in Python. Subsequently, the environment change to Windows was made for greater simplicity.
As for the development of the project, a first phase of preparing the environment and fine-tuning the necessary tools has begun. This was followed by an adjustment phase of the PD control. After that, a preliminary version of the reinforcement learning algorithm and the adjustment of the hyperparameters were designed. Finally, after the change of environment to Windows, a refined and successful version of the reinforcement learning algorithm has been obtained. After it, an in-depth analysis of the results and the preparation of the corresponding report has been carried out.
As the main conclusion of the project, it is convenient to emphasize the enormous effectiveness that the reinforcement learning method has proved to have in obtaining an optimal solution for our case study and compared to the solution provided by the conventional control algorithm. The enormous importance of the maximum memory size of the robot to achieve a successful result has been surprising. Care is recommended for future studies to always achieve a deterministic policy that demonstrates the effectiveness of the method.
Trabajo Fin de Grado
Desarrollo de un sistema de navegación para un robot móvil usando aprendizaje por refuerzoTitulación / Programa
Grado en Ingeniería en Tecnologías IndustrialesMaterias/ UNESCO
12 Matemáticas1203 Ciencias de los ordenadores
Palabras Clave
Robot móvil, Navegación, Inteligencia artificial, Aprendizaje por refuerzo, Simulación, CoppeliaSim, PythonMobile Robot, Navigation, Artificial Intelligence, Reinforcement Learning, Simulation, CoppeliaSim, Python