Breve descripción del medio ambiente.
El medio ambiente se desarrolla a partir del simulador 3D Simspark, el cual es el simulador oficial para las competencias dentro de la Robocup Standard League y contiene todas las reglas para oficiales para llevar a cabo partidos de fútbol con los robots bípedos llamados Nao. El simulador contiene diferentes elementos básicos que definen las dimensiones de la cancha, así como la ubicación de las porterías y la pelota. Además incluye a diferentes Naos para ambos equipos y con la posibilidad de especializar sus acciones para que sean porteros, defensas o delanteros. El objetivo final primordial para cada jugador de cada equipo será meter la bola en el arco contrario y así realizar un gol para aumentar en un punto el marcador de su equipo.
Para la realización de la fase 2 del proyecto en la implementación de los algoritmos del recocido simulado y LMS de aprendizaje, hemos utilizado el simulador Webots para Windows, el cual contiene características similares a las del Simspark pero posee una interfaz más útil para el desarrollo de nuestras pruebas.
Descripción detallada de la actividad o acción que va a aprender el agente.
La acción que el agente, en nuestro caso un robot Nao, va a aprender suena relativamente sencilla: en qué posición de la cancha es adecuado disparar a la portería contraria para anotar un gol, tomando en cuenta algunas otras variables como si algún robot enemigo podría bloquearle el tiro.
El Nao a través de su cámara integrada lo primero que hará será observar a su alrededor para detectar el medio en el que se encuentra en ese momento para poder dictaminar bien los resultados. En principio siempre pateará la bola sin importar qué haya o no haya enfrente ni cómo esté posicionado en la cancha, con esto se irán ajustando los pesos que posteriormente influirán en la toma de la decisión más adecuada. Lo ideal a aprender se va a basar en qué posición está en el campo, en qué ángulo se encuentra con respecto a la portería para analizar si debe girar un poco y también tomará en cuenta los robots contrarios.
Solución planteada al problema utilizando el Algoritmos LMS.
1) Selección de la experiencia de aprendizaje
La experiencia de aprendizaje será Directa; es decir, por cada vez que el robot haga un disparo (sin importar si este va a portería o no), se le dirá si hizo bien o hizo mal. Con esto se obtiene un resultado inmediato que nos dirá con precisión cuál fue su último movimiento y si fue correcto o incorrecto. Utilizar este tipo de aprendizaje nos ayudará a dar una respuesta con precisión, además de que no será necesario terminar una corrida completa (en este caso un partido de 10 min) para poder determinar si el robot ha aprendido o no.
2) Selección de la función objetivo
La función objetivo tendrá en cuenta 4 variables como ya se había mencionado. Éstas son:
· X1 = Posición del robot sobre la cancha.
· X2 = Existe un rival enfrente que pueda taparle el disparo.
· X3 = Ángulo del robot con respecto a la portería.
· X4 = Ángulo del robot con respecto a la pelota.
El resultado final será tomado con base en la función:
V(b) ->
Si el robot pateó la bola y consiguió meter gol V(b) = 100;
Si el robot pateó la bola y no consiguió meter gol V(b) = -100;
Si no es ninguno de estos estados finales se manda llamar la función
V^(b) = W0 + X1W1 + X2W2 + X3W3 + X4W4
Esta función recalculará los pesos para que en la siguiente iteración el robot ya sepa distinguir un poco mejor qué variables debe tomar más en cuenta para acertar en el resultado final.
3) Selección de la representación de la función objetivo
Seleccionamos la función objetivo basándonos en la capacidad del robot a hacer distintas actividades, o en las restricciones del mismo. La función es muy sencilla, si anota gol con un disparo (tomando en cuenta todas las variables ya establecidas), se le otorga un valor de 100, con esto se le dice que lo que hizo está bien, por el contrario, si dispara y no anota gol (por cualquier motivo) se le otorgará un valor de -100.
Conclusiones después de la programación.
Después de haber tenido un arduo trabajo programando los Naos en Java con la plataforma Webots, nos dimos cuenta que simular un robot no es programar cualquier otra cosa. Los robots son totalmente dinámicos y obtienen sus valores tratando de imitar el pensamiento y sentidos humanos, lo que complica aún más su buen desempeño.
La implementación del algoritmo LMS no fue sencilla ya que necesitamos manejar muchos datos en concordancia con el comportamiento del Nao, y por esta razón en algunos casos como para obtener la ubicación del Nao en la cancha tuvimos que desarrollar e implementar nuevas funciones que no incluían la simulación.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.