Semana 6 - Control por velocidad y entrenamiento
Seguiremos con la red neuronal y añadiremos control por velocidad en el drone.
Index
Control en velocidad
Tras mirar el ejemplo de Robotics infrastructure, se añadió un motion_ref_handler desde el cual podremos controlar la velocidad. Investigamos también un poco el código de mas bajo nivel de aerostack2 y de la plataforma de px4 pero la forma más óptima fué esta.
El problema que al comandar velocidades, se realizaba en las posiciones absolutas del simulador por lo que se calcularon las componentes verticales y horizontales dependiendo de la orientación del drone y así se consiguió el movimiento deseado.
Sin embargo nos encontramos con un problema, al lanzar la simulación, hay veces que el drone se arma, pasa a estado aterrizado y posteriormente se vuelve a desarmar sin cambiar de estado por lo que no despega.
Entrenamiento de red neuronal
- Se utiliza la función de error de mínimos cuadrados, pero paraa disctribuciones que no son gausianas no suelen ser óptimas.
- Después de una reunión con varios compañeros trabajando en el mismo area me di cuenta que el principal problema era la extensión del dataset ya que este no tenía suficientes muestras. Por lo que para las siguientes pruebas ya que con el drone se realizarán con un dataset bastante mas amplio.
- También se discutieron técnicas complementarias como desplazar imágenes y añadir una estimación de velocidad para aumentar las situaciones, además de no hacer excesivo énfasis en sobrebalancear los datos, ya que aunque nuestro modelo tenga que se capaz de sobrepasar situaciones concretas, en la mayoría de casos estará en situaciones “normales”.
- Además recordamos el punto clave del TFG, actualmente la conducción autónoma viene dada por redes neuronales modulares, pero cada vez mas se está investigando en una red neuronal por la que pase como entrada todas las medidas sensoriales y tenga como salida la respuesta directa, en este caso las velocidades de los motores.
- En los tests se debería mostrar el tiempo de inferencia por lectura para ver si la red neuronal es lo suficientemente rápida como para que reaccione bien a los estímulos. La gráfica anteriormente mencionada también nos ayudará a ver si los fallos vienen dados por las predicciones o los tiempos de inferencia.
El dataset conseguido esta semana fué el siguiente, se balancearon el número de direcciones curvas y rectas dando la siguiente forma:
Un aspecto a añadir es que se deberían representar de esta misma manera la salida de la red neuronal por encima de estas gráficas para ver los valores predecidos de forma directa.