Semanas 28 y 29: Creación de dataset y programa de entrenamiento
En la primera semana he terminado de programar un controlador PID sencillo que complete el circuito simple. Después, con el controlador ya creado era hora de generar un dataset inicial. He hecho una clase “CustomImageDataset” para poder cargar las imágenes como datos de entrada y las velocidad lineal(V) y angular(W) como datos de salida. Para reducir la complejidad de cómputo he decidido recortar la imagen que se obtiene de la cámara a la mitad como preprocesamiento inicial, quedando de un tamaño 239x640:
En la segunda semana me he centrado en el programa para entrenar la red y la configuración de la misma. Una vez entrenada se exporta al formato onnx para poder cargarla. Junto al HAL casero que se utiliza en el controlador PID, el script de prueba de la red utiliza la librería “onnxruntime” para hacer inferencias a partir de las imágenes de la simulación. A su vez envía las respuestas como órdenes de velocidad para mover el coche:
Con las dos redes entrenadas no se obtienen resultados muy buenos, ya que se chocan al poco de empezar a moverse. Pero ya es un punto de partida para refinar el dataset y la configuración de las capas del modelo.