A lo largo de este curso hemos realizado una investigación en Second Life para descubrir sus posibilidades como entorno de simulación y las capacidades de su lenguaje de script para desarrollar Agentes Inteligentes.
Para comprobar todo esto decidimos desarrollar una simplificación de un sistema real ya existente como es la RoboCup.
La RoboCup es una competición anual en la que equipos de robots se enfrentan en un partido de fútbol. Existen distintas categorías dependiendo del tipo de robots usados: De dimensiones reducidas, de bípedos, de perros Aibo, etc. Para nuestra prueba hemos adaptado las reglas a las posibilidades que ofrece Second Life.
Lo primero fue diseñar un campo que nos permitiese realizar las primeras pruebas. Este campo es un campo normal de fútbol, pero rodeado de paredes para que la pelota no se escape fuera. A parte se le añadieron dos esferas sobre las porterías como objetos independientes que permiten a los bots guiarse.
Lo siguiente fue desarrollar la primera versión de nuestro robot. Esta sin duda fue la tarea más ardua de nuestro proyecto que nos ha llevado a estudiar con detalle algunas de las capacidades del Lindel Script.
Nuestros robots son cilindros achatados lo que simplifica mucho los cálculos para las colisiones. Son objetos "físicos" del Second Life, esto quiere decir que les afectan la gravedad y otras fuerzas.
Para detectar objetos Lindel Script permite manejar "sensores" que devuelven los objetos que se sitúan a una distancia máxima y dentro de cierto ángulo cada x milisegundos. De esta forma detectamos la posición de las porterías y de la pelota.
Necesitábamos alguna forma para configurar algunos de los datos de los bots por lo que tuvimos que usar "comandos de voz", estos en realidad son comandos escritos por el chat local que son interpretados por el bot. Funciona muy parecido a los sensores, solo que en este caso se interpretan de forma inmediata y no cada x milisegundos.
Una vez teníamos un bot jugando necesitábamos formar un equipo y para tener un equipo hace falta comunicación. Para ello usamos el chat, al igual que para los comandos de configuración, los bots se mandan comandos entre sí. Para que no saturasen la pantalla del chat los bots utilizan otros canales que no son visibles.
Los bots que hemos desarrollado presentan algunos problemas a la hora de jugar, debido principalmente a su programación simple. Debido a la forma en que es calculada la trayectoria para enviar la pelota hacia una portería es posible que el resultado sea enviarlo justo a la contraria ya que no son capaces de rodearla para situarse correctamente. También pueden quedarse bloqueados contra una pared al no tenerlas en cuenta en el cálculo de trayectorias.
Second Life parece ser un sitio apto para la simulación de algunas tareas aunque la visualización puede fallar por momentos parece que las simulaciones físicas son más o menos fieles. Esto puede ser un incentivo para el uso de Second Life, aunque existen entornos más aptos para este tipo de tareas.
Está disponible en Google Code la última versión del código desarrollado para los bots. Siempre podéis visitar el proyecto en la Isla de la ESEI en Second Life.
jueves 19 de junio de 2008
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios:
Publicar un comentario en la entrada