MoraSot - Equipo de Fútbol Robótico Simulado


 

§         MoraSot en inglés

§         Sitio MoraSot

§         Acceso público CVS

§         Página de proyecto MoraSot

§         Página de Administración MoraSot

§         Download MoraSot!  

§         Tarball diario del árbol CVS MoraSot

§         Licencia de MoraSot

Extendiendo Robot Soccer (NUEVO!!!)

MoraSot es un equipo de fútbol propuesto para el simulador RoboSoccer versión 1.4. El equipo cuenta con 5 jugadores cuyas acciones interpreta el simulador desde una dll (dynamic link library). El equipo se entrega por lo tanto como una dll que hemos desarrollado, por el momento, en Visual C++ 6. Esta es cargada por el simulador 60 veces por segundo. Las técnicas de juego que se muestran en el proyecto están por lo tanto programadas en C++ utilizando un diseño orientado a objetos.

Actualmente utilizamos CVS para desarrollar MoraSot en equipo. Las instrucciones de uso y el cliente para Windows pueden descargarse aquí.

¿Por qué elegimos fútbol de robots?

El fútbol de robots ofrece un conjunto de desafíos para la investigación de agentes inteligentes usando una forma competitiva amigable en un dominio multi-agente, dinámico y de tiempo real.

Nos permite investigar:

a) técnicas de aprendizaje de agentes individuales y de equipo,

b) planeamiento de equipo multi-agente y planeamiento de ejecución al servicio de trabajo en equipo,

c) modelización del oponente,

d) técnicas de inteligencia artificial y algoritmos genéticos (machine learning)

¿Optamos por un enfoque centralizado o descentralizado?

Una de las interrogantes que surgió pronto en el desarrollo de MoraSot fue si deberíamos mover al equipo como si nuestro código simulara a un gran director técnico que todo lo ve y da indicaciones a robots tontos sin autonomía. O si deberíamos dotar de autonomía a cada robot y dejarlos organizarse solos mientras se intercambian mensajes.

El primer enfoque es atractivo porque permite aplicar ciertas técnicas de inteligencia artificial que requieren de una mente que dirija al equipo, pero implica cierto irrealismo si consideramos que los robots que simulamos bien podrían ser físicos y no simulados (sería un problema mover nuestra arquitectura de equipo a un equipo de fútbol de robots reales autónomos que solo cuentan con una visión parcial de la realidad). El segundo enfoque también es importante porque se delega la responsabilidad de hacer surgir una estrategia (proceso emergente) a los robots, el programador solo se encarga de programar ciertas primitivas (ej. patear al arco) y ciertas precondiciones que disparan las primitivas (ej. no hay un obstáculo en frente). Este último es el approach que eligió UBA-Sot, el equipo de fútbol simulado de la Universidad de Buenos Aires, que calificó tercero en el 2002 FIRA Cup Korea.

¿Optamos por un enfoque más reactivo o más deliberativo?

Un equipo reactivo reacciona rápido a los cambios del ambiente pero no reflexiona demasiado en lo que hace, responde a primitivas y condiciones que se evalúan rápidamente. Un equipo deliberativo analiza sus jugadas pasadas, estudia los movimientos del oponente, busca sus debilidades, aprende de la situación de juego, etc. Hemos visto patrones de comportamiento complejos emergiendo de reglas simples asignadas a individuos (como en una colmena o un hormiguero) pero no sabemos si la complejidad del juego de fútbol puede modelarse satisfactoriamente desde esta óptica. En el caso del equipo de la UBA las estrategias no se ingresan directamente sino que emergen de primitivas individuales en agentes autónomos.

¿Grupo de robots homogéneo o heterogéneo?

En un grupo de robots homogéneo todos los individuos son iguales pero dividen sus tareas según roles, en uno heterogéneo se asignan las tareas de acuerdo a las características físicas de cada individuo. Esta claro que en nuestro el simulador las características físicas de cada robot son idénticas pero podemos diferenciar o no sus roles. ¿Realizamos rutinas especiales para el robot que ataja o dotamos a todos los robots con la capacidad de atajar si son los que se encuentran más cerca de nuestro arco?

¿Aplicamos algoritmos genéticos?

Supongamos que dotamos a cada jugador de una cadena de información que determina sus movimientos. Si generamos esa cadena al azar para digamos 5000 individuos la mayoría de ellos se moverá erráticamente, quizás unos pocos muestren cierta conducta diferenciada, como por ejemplo avanzar. Si agregamos la posibilidad de apareamiento entre jugadores donde las cadenas de información se combinan para generar una nueva generación de jugadores (cross-over) y a su vez alimentamos al sistema con reglas que indican cuales jugadores son más idóneos (por ejemplo sobreviven los que se dirigen hacia el arco) ya tenemos una arquitectura que nos permite criar jugadores modelo luego de varias generaciones de jugadores. (Criá a tu propio Maradona!)

Algunas consideraciones:

A)           La cancha es un espacio bidimensional con un eje x y un eje y.
B)           En todo momento sabemos la posición de cada jugador, de cada 
  oponente y de la pelota.
C)           Los únicos elementos que podemos modificar del ambiente son los dos 
  motores que tiene cada robot de nuestro equipo.
D)           Podemos leer el ángulo a donde está mirando cada robot de nuestro equipo.
E)           La velocidad y vectores de cada robot y la pelota debemos calcularla 
  por nuestra cuenta.
F)           Es importante tener cierta memoria de estados previos en el juego para 
  poder realizar rutinas que nos permitan predecir el movimiento de los 
  distintos elementos en la cancha. Si no predecimos donde estará la pelota, 
  por ejemplo, y mandamos a un robot a buscarla este llegará tarde!
G)           Si no devolvemos el control de la dll el juego no continua así que tenemos 
  bastante tiempo para decidir que acción tomar.
 
 
Download RoboSoccer Simulator v1.4 (es la versión que usamos actualmente con MoraSot):
http://www.dc.uba.ar/people/cafr2003/down.htm
http://www.fira.net/soccer/simurosot/version7.zip
 
Download RoboSoccer Simulator v1.5:
http://www.fira.net/soccer/simurosot/overview.html
http://www.fira.net/soccer/simurosot/R_Soccer_v15a_030204.exe
 
 

 

  MoraSot SimSoccer Team
  Copyright (C) 2003 Agustín Petrini, Anibal Potenza, German Viscuso
  E-mail: netquake@netquake.com.ar
 
  This program is free software; you can redistribute it and/or modify
  it , under the terms of the GNU General Public License as published
  by the Free Software Foundation; either version 2 of the License,
  or (at your option) any later version.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  See the GNU General Public License for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.


MoraSot SimSoccer Team

por:

 

Agustín Petrini <asd@oxidized.com.ar>,

Anibal Potenza <anibalpotenza@fibertel.com.ar>,

German Viscuso <netquake@netquake.com.ar>

 

supervisado por:

Prof. Jorge Ierache <jierache@yahoo.com.ar>


SourceForge Logo