Las respuestas que recibí a la pregunta sobre el entrenamiento de una línea que sigue al robot usando técnicas de aprendizaje de refuerzo , me hicieron pensar en cómo entrenar a un robot. Creo que hay esencialmente dos formas:
- Entrena al robot físico.
- Modele el robot y simule el entrenamiento.
- ¿Me he perdido algo?
El enfoque 2 es definitivamente el mejor enfoque. Sin embargo, a priori el conocimiento del movimiento (respuesta), una cierta señal PWM (estímulo) causaría cuando el robot está en un estado dado. El movimiento causado por una señal PWM puede depender del ( 1 ) voltaje actual de la batería, ( 2 ) la masa del robot y la ( 3 ) velocidad actual (¿me perdí algo?).
¿Cómo modelo un robot así? ¿Y cómo lo modelo rápido? Si cambio la batería o agrego algunas placas y otros periféricos y cambio la masa del robot, tendría que remodelar y volver a entrenar el robot. ¿Puedo hacer esto proporcionando algunos PWM de estímulo aleatorio y midiendo la respuesta?
agregado: Mi pregunta relacionada en dsp.SE
Actualización: Una edición sugerida al título por Ian que vale la pena mencionar: " ¿Cómo modelo entrenar a un robot para que si su dinámica cambia, no necesita un reentrenamiento completo? " Creo que esta es una buena pregunta también, pero diferente de uno que estoy preguntando aquí. Estoy de acuerdo con volver a entrenar por ahora.
fuente
Respuestas:
A mi modo de ver, hay dos preguntas principales aquí. La primera es, ¿cómo modelo un robot? Esto se hace frecuentemente con una formulación de espacio de estado de las ecuaciones de movimiento . Las ecuaciones exactas dependen de la construcción física de su robot. Sí, para modelarlos con la entrada PWM, debe determinar la función de transferencia a partir de los valores PWM que suministra a la salida de sus actuadores. Luego conecta esa función para la señal de control en su modelo. Nuevamente, la derivación de esta función es específica del robot. El voltaje actual de la batería y la masa del robot probablemente serían útiles, pero no sé acerca de la velocidad.
La segunda pregunta es, dado un modelo matemático de mi robot, ¿cuál es la mejor manera de entrenar un algoritmo de aprendizaje por refuerzo (RL) para controlarlo? En resumen, no hay una mejor manera. El entrenamiento directo en el robot tiende a llevar mucho tiempo porque le lleva más tiempo ejecutar pruebas. Sin embargo, las simulaciones pueden dar como resultado políticas menos precisas porque la física de la simulación se simplifica necesariamente. Otro enfoque es entrenar al alumno en la simulación para obtener una aproximación razonable y luego transferir la política resultante al robot para un mayor refinamiento. Por supuesto, esto falla si el modelo no es lo suficientemente preciso. También requiere desarrollo adicional.
Finalmente preguntas "¿Puedo [remodelar y volver a entrenar al robot] proporcionando algunos PWM de estímulo aleatorio y midiendo la respuesta?" En el caso de RL, no hay ninguna razón para pensar que la nueva política óptima es similar a la política óptima anterior y, como tal, no hay muchas razones para pensar que algunos controles aleatorios proporcionarán información suficiente para cambiar la política de manera adecuada. Por supuesto, el reentrenamiento solo debe ocurrir si los cambios que realiza en su robot afectan la formulación del modelo de espacio de estado y / o el modelo de acción que utiliza. Por ejemplo, si su modelo de acción es en términos de acciones de alto nivel ("ir a la izquierda", "ir a la derecha", "ir hacia adelante"), cambiar la dinámica requiere cambiar la forma en que implementa estas mociones, pero la política aún debe mantenerse .
fuente
Para modelar, la cinemática
Denavit–Hartenberg parameters
se usa comúnmente. el curso Introducción a la robótica proporcionado por la Universidad de Stanford está disponible en YouTubefuente