Estoy considerando programar una línea que siga al robot usando algoritmos de aprendizaje de refuerzo. La pregunta que estoy considerando es cómo puedo hacer que el algoritmo aprenda a navegar por cualquier ruta arbitraria.
Después de seguir el Libro de Sutton y Barto para el aprendizaje de refuerzo, resolví un problema de ejercicio que involucraba una pista de carreras donde el agente del automóvil aprendió a no salir de la pista y regular su velocidad. Sin embargo, ese problema de ejercicio hizo que el agente aprendiera a navegar la pista en la que se entrenó.
¿Está en el ámbito del aprendizaje de refuerzo hacer que un robot navegue por caminos arbitrarios? ¿El agente tiene que tener absolutamente un mapa del circuito o ruta de la carrera? ¿Qué parámetros podría usar para mi espacio de estado?
Respuestas:
Una de las medidas clave de cualquier algoritmo de aprendizaje automático es su capacidad de generalizar (es decir, aplicar lo que ha aprendido a escenarios no vistos anteriormente). Los aprendices de refuerzo (RL) pueden generalizar bien, pero esta habilidad es en parte una función de la formulación del espacio de estado en mi experiencia. Esto significa que si puede encontrar la configuración correcta, el alumno RL no necesitará un mapa del circuito de carrera.
Esto deja la pregunta de qué parámetros usar. Sin saber más acerca de los sensores disponibles en su robot, solo puedo especular. Mi primera inclinación es tratar de codificar la orientación relativa de la línea y el robot (es decir, si el robot tiende hacia la derecha, la izquierda o simplemente se mueve en paralelo con la línea). Hacerlo daría como resultado un pequeño espacio de estado agradable. Aunque no es estrictamente necesario, sería una implementación rápida y sencilla. Además, si el robot no se va a mover a una velocidad constante, entonces puede ayudar codificar la velocidad de los robots, ya que el robot deberá reaccionar más rápidamente cuando se mueva a velocidades más altas.
fuente
No estoy seguro de qué tipo de robot tiene, pero he estado haciendo la línea de rescate robocup durante algunos años. Me di cuenta de que si quieres seguir bien una línea, usar PID es una buena opción. Déjame expandirme en esto. Si imagina dos sensores de luz a cada lado de la línea, desearía que tuvieran el mismo valor para que la línea esté en el medio. Luego puede usar la diferencia entre el valor de los dos sensores para cambiar el porcentaje de giro del robot. Con esta técnica, es posible hacer que un robot siga una línea a velocidades extraordinarias. Me gusta que hayas estado pensando en hacer que el robot aprenda a mejorar sus habilidades de rastreo de línea. Lo que se me ocurrió es comenzar con sus valores PID iniciales más altos de lo que desea que sean y usar un sensor giroscópico para medir la frecuencia de oscilación del robot mientras rastrea la línea. A partir de ahí, puede crear su propia función para determinar cuánto bajar sus valores para obtener un sistema estable, esto no es exactamente inteligencia artificial más como un algoritmo de optimización automatizado, pero bueno, tengo 18 años y aprendí a codificar desde el Internet. Espero que esto ayude. Si tiene alguna consulta, envíeme un correo electrónico, esta no es mi dirección de correo electrónico principal, por lo que no la revisaré regularmente. [email protected]
fuente