Home

Práctica 2. Sistemas basados en reglas en Robocode

image

Contents

1. e Importante o En el caso de enfrentar a dos o m s robots basados en DROOLS siguiendo el esquema utilizado ambos robots usar an el mismo fichero de reglas o Se deber n crear dos paquetes distintos y establecer el fichero de reglas de cada robot en la cons tante FICHERO_REGLAS de las clases RobotDroo1ls java respectivas o definir un nombre de property espec fico para cada robot Mediante la propiedad robot debug se indica si se mostrar n o no los mensaje de DEBUG en la consola del robot El robot RobotDrools deber aparecer en el grupo drools_robocode 7 Compilaci n y uso en MS Windows XP script windows bat Nota Antes de ejecutar el fichero bat ajustad las variables ROBOCODE_PATH y DROOLS_PATH a los valores que correspondan 4 2 3 Verificaci n del fichero de reglas Se incluye una clase ComprobarReglas java que permite ejecutar el compilador de reglas de DROOLS sin tener que cargar el robot en el entorno Robocode Tambi n permite insertar hechos en la memoria activa a mano desde el c digo de ComprobarReglas java requiere recompilar ver paso 5 Desde el directorio SROBOCODE_PATH robots java Drobot reglas PATH ABSOLUTO A FICHERO_REGLAS dr1 Drobot debug true cp JARS drools_robocode ComprobarReglas
2. de simulaci n de batallas Robocode cuyo control se realice mediante un conjunto de reglas de producci n ejecutadas sobre el motor de reglas JBoss Drools Expert Se deber n implementar y documentar dos juegos de reglas para dos tipos de robots 3 Herramientas a utilizar Informaci n sobre Robocode P gina principal de Robocode descargas documentaci n y ejemplos e Robowiki Robocode Argentina tutoriales muy completos e Guia de programaci n Tutorial de programaci n Incluye un resumen bastante completo sobre los eventos manejados por los robots de Robocode muy til para la realizaci n de la pr ctica e Manejo de ngulos y posiciones Tutorial de programaci n P gina de Manuel Lucena U Jaen r plica de los tutorial de Robocode Argentina e Guia de programaci n Tutorial de programaci n e Manejo de ngulos y posiciones Tutorial de programaci n Informaci n sobre JBoss Drools Expert P gina principal de JBoss Drools Expert e Descarga Drools 5 4 0 Final Copia local drools distribution 5 4 0 Final zip e Manual de usuario Drools Expert Prestad especial atenci n al cap tulo 5 The Rule Language en concreto a la secci n 5 8 donde se explica el lenguaje de definici n de reglas DRL 4 C digo de partida Se partir de un esqueleto de Robot fichero RobotDroo1s java que delega la gesti n de sus eventos y la decisi n de acciones al motor de reglas Drools El RobotDrools es de
3. robots de la instalaci n de Robocode tar xzvf drools_robocode tar gz cp r drools_robocode ROBOCODE_PATH robots 4 Establecer los ficheros jar necesarios en una variable de entorno export JARS ROBOCODE_PATH libs robocode jar export JARS JARS DROOLS_PATH droo1s core 5 4 0 Final jar DROOLS_PATH drools compiler 5 4 0 Final jar export JARS JARS DROOLS_PATH knowledge api 5 4 0 Final jar DROOLS_PATH binaries knowledge internal api 5 4 export JARS JARS DROOLS_PATH ecj 3 5 1 jar DROOLS_PATH antlr runtime 3 3 jar export JARS JARS DROOLS_PATH mve12 2 1 0 droo1s16 jar Nota indicad las versiones concretas de vuestra instalaci n 5 Compilar el robot necesario la primera vez y siempre que se cambie o a ada c digo java al paquete droo1s_robocode javac cp JARS ROBOCODE_PATH robots drools_robocode java 6 Arrancar Robocode con las opciones necesarias para integrar el robot DROOLS java Xmx512M Dsun io useCanonCaches false DNOSECURITY true DWORKINGDIRECTORY ROBOCODE_PATH Drobot reglas ROBOCODE_PATH robots droo1s_robocode reglas reglas_robot drl Drobot debug true cp JARS robocode Robocode Mediante la propiedad robot reglas se indica el path absoluto del fichero de reglas drl a utilizar a si no se indica esta propiedad se cargar n las reglas del fichero indicado en la constante FICHERO_REGLAS de la clase RobotDroo1ls java que por defecto utiliza el fichero KROBOCODE_ PATH robots drools_robocode reglas
4. Pr ctica 2 Sistemas basados en reglas en Robocode Inteligencia Artificial 2012 13 FJRP VMDB SFL CCIA 2012 Octubre 2012 Indice 1 Descripci n de la pr ctica 1 IR AA AN E E TE MEDA a a a odio iodo o QO do do dro de d 1 1 2 Tareas a realizar q acire DU ea a a y E A E E RA a a a AE E ET a 1 ld Normas de entregala m n Dan e a aaan do dedo de aa a a E anana TN a A AA 2 2 Descripci n del problema 2 3 Herramientas a utilizar 2 4 C digo de partida 3 4 1 M todo run de RobotDrools LL LL LL LL LL LL RR RR 4 4 2 Uso del c digo aportado e integraci n en Robocode 5 4 2 1 Ficheros incluidos TA TA a A AA E dada da NS RA A D U G a sa RA 5 42 2 Compilaci n y USO masea a e eda aa E E AA E o ado a o AA 6 4 2 3 Verificaci n del fichero de reglas 7 1 Descripci n de la pr ctica 1 1 Objetivos Conocer y utilizar el motor de reglas JBoss Drools Expert a Experimentar con reglas de control para un robot de juguete 1 2 Tareas a realizar Se deber n implementar dos juegos de reglas DROOLS que definan el comportamiento de dos robots diferentes Opcionalmente se puede plantear una peque a comparativa informal del comportamiento de los robots imple mentados ante batallas y enemigos equivalentes 1 3 Normas de entrega La pr ctica se realizar de forma individual o en parejas La fecha l mite de entrega para la convocatoria de febrero ser el XX 12 2012 en el despacho 303 A
5. _IZQ gira el ca n hacia la izquierda el n m de grados indicados por parametro invocar el m todo setTurnGunLeft par metro 4 1 M todo run de RobotDrools package drools_robocode public class RobotDrools extends AdvancedRobot 4 public void run Y DEBUG habilitarModoDebug System getProperty robot debug true equals true Crear Base de Conocimiento y cargar reglas crearBaseConocimiento Hacer que movimiento de tanque radar y ca on sean independientes setAdjustGunForRobotTurn true setAdjustRadarForGunTurn true setAdjustRadarForRobotTurn true while true DEBUG mensaje inicio turno cargarEventos se hace en los m todos onXXXXXEvent cargarEstadoRobot cargarEstadoBatalla Lanzar reglas DEBUG mensaje hechos en memoria activa DEBUG volcarHechos ksession ksession fireAllRules limpiarHechosIteracionAnterior Recuperar acciones Vector lt Accion gt acciones recuperarAcciones DEBUG mensaje acciones resultantes DEBUG volcarAcciones acciones Ejecutar Acciones ejecutarAcciones acciones DEBUG mensaje fin turnoWn execute Informa a robocode del fin del turno llamada bloqueante Fin RobotDrools 4 2 Uso del c digo aportado e integraci n en Robocode Descarga C digo de partida drools_robocode tar gz incluye Javadoc 4 2 1 Ficheros incluidos drools_robocode RobotDrools java implementaci n
6. ar se encapsulan en hechos objetos de tipo Accion donde se indica el tipo de acci n junto con un par metro de tipo double para cada acci n y su respectiva prioridad Tipos de acciones est ndar considerados o o Accion AVANZAR avanza el n m de pixels indicados por par metro invocar el m todo setAhead par metro Accion RETROCEDER retrocede el n m de pixels indicados por parametro invocar el m todo setAhead par metro Accion STOP detiene el moviento del robot no tiene en cuenta el valor de par metro invocar el m todo setStop Accion DISPARAR dispara con la intensidad indicada por parametro invocar el m todo setFire par metro Accion GIRAR_TANQUE_DER gira el tanque hacia la derecha el n m de grados indicados por parametro invocar el m todo setTurnRight par metro Accion GIRAR_TANQUE_IZO gira el tanque hacia la izquierda el n m de grados indicados por parametro invocar el m todo setTurnLeft par metro Accion GIRAR_RADAR_DER gira el radar hacia la derecha el n m de grados indicados por para metro invocar el m todo setTurnRadarRight par metro Accion GIRAR_RADAR_IZQ gira el radar hacia la izquierda el n m de grados indicados por pa rametro invocar el m todo setTurnRadarLeft par metro Accion GIRAR_CANON_DER gira el ca n hacia la derecha el n m de grados indicados por para metro invocar el m todo setTurnGunRight par metro Accion GIRAR_CANON
7. del robot guiado por DROOLS EstadoBatalla java encapsula la informaci n sobre el estado actual del campo de batalla EstadoRobot java encapsula la informaci n sobre el estado actual del robot Accion java encapsula las posibles acciones a realizar por el robot Posicion java encapsula las coordenadas X e Y de una posici n del campo de batalla Auxiliar java funciones auxiliares para calulo de ngulos posiciones distancias basadas en http www robocode argentina com ar descargas trig doc en caso de necesitar implementar funciones adicionales este es el lugar m s c modo para hacerlo ComprobarReglas java clase cargadora de ficheros de reglas permite comprobar que los ficheros de reglas se compilan sin errores sin tener que lanzar el robot y realizar peque as pruebas insertando hechos 7 a mano 29 DEBUG java clase con m todos para mostrar mensajes de depuraci n drools_robocode reglas directorio de reglas reglas_robot drl fichero de reglas de ejemplo implementa un robot trazador simple 4 2 2 Compilaci n y uso 1 Pasos previos a Descargar e instalar Robocode Jar autoinstalable java jar robocode 1 7 4 2 setup jar Descargar y descomprimir DROOLS 2 Establecer los directorio de instalaci n en un par de variables de entorno export ROBOCODE_PATH home robocode export DROOLS_PATH home drools distribution 5 4 0 Final binaries 3 Copiar el directorio del robot droo1s_robocode en directorio
8. ntes de esa fecha es posible entregar la pr ctica en horario de pr cticas o de tutorias a Se deber entregar e C digo fuente reglas creadas clases Java adicionales preferiblemente en CD o en USB para copiarlo e Memoria en papel con la estructura que se indica En el momento de la entrega se comprobar el funcionamiento de la pr ctica y el modo en que fue desarrollada por lo que salvo causas de fuerza mayor ser necesaria la presencia de todos los miembros del grupo Estructura de la memoria aproximadamente 5 8 p ginas 1 Descripci n breve del problema y de las herramientas utilizadas 2 Descripci n de los dos robots implementados Para cada uno e Descripci n breve de la estrategia que se pretende que guie al robot e Descripci n textual de cada una de las reglas implementadas junto con su c digo e Descripci n de los elementos adicionales definici n de nuevos tipos de hechos reglas de apoyo etc 3 Descripci n del c digo adicional aportado en caso de que exista e Describir las clases Java y los m todos a adidos sobre el c digo de partida 4 Experimentos realizados en caso de llevarlos a cabo y resultados obtenidos 5 Conclusiones y problemas encontrados 6 Bibliograf a consultada libros enlaces c digo Nota Incluir Nombre DNI y e mail en la portada No es necesario ning n tipo especial de encuadernaci n 2 Descripci n del problema Se trata de construir un robot para el entorno
9. partir de los anteriores o getPosicion encapsula en un objeto Posicion las coordenadas actuales del robot o getAnguloRelativoCanon proporciona el ngulo relativo del ca n respecto al a gulo abso luto del tanque desplazamiento entre 180 y 180 grados respecto a la direcci n de avance o getAnguloRelativoRadar proporciona el ngulo relativo del radar respecto al a gulo abso luto del tanque desplazamiento entre 180 y 180 grados respecto a la direcci n de avance 3 Incorpora a la memoria activa un objeto EstadoBatalla con el estado actual del entorno de Robocode n m de oponentes tama o del campo de batalla etc 4 Lanza el proceso de inferencia de DROOLS pidiendo la ejecuci n de todas las reglas activadas por los hechos actuales 5 Elimina de la memoria activa los hechos actuales eventos estado robot etc 6 Recupera los hechos de tipo Accion insertados por las reglas ejecutadas e inicia su ejecuci n 7 Pasa el control a Robocode con el m todo execute indic ndole que el Robot ha terminado su turno El comportamiento de este robot est determinado por las reglas presentes en el fichero de reglas reglas_robot drl que se carga en el motor de inferencias nada m s iniciar el robot e Dichas reglas ser n activadas por los eventos introducidos en la memoria activa por los gestores de eventos y por los objetos EstadoRobot y EstadoBatalla introducidos por el m todo run e Las posibles acciones a realiz
10. tipo AdvancedRobot lo que permite ejecutar distintas acciones a la vez El m todo run es llamado por el framework Robocode y junto con los manejadores de eventos contiene el c digo Java que controla el comportamiento del robot a En este caso en m todo run delega las decisiones al motor de reglas realizando el siguiente ciclo en cada turno 1 Todos los eventos recibidos desde el turno anterior ya habr n sido capturados por sus respectivos m todos gestores onScannedRobot onHitByBullet e incorporados a la Memoria Activa de DROOLS objeto ksession de tipo StatefulKnowledgeSession del motor de reglas e Los tipos de evento a disposici n de DROOLS y susceptibles de ser utilizados en las reglas son o ScannedRobotEvent o HitByBulletEvent o HitRobotEvent o HitWallEvent o Bullet Hit BulletEvent o Bullet HitEvent o Bullet MissedEvent o RobotDeathEvent e Los eventos producidos en cada turno estar n disponibles en la memoria activa y podr n incluirse en el lado izquierdo de las reglas usando la sintaxis de DROOLS y accediendo a las propiedades disponibles ver en los respectivos JavaDoc los m todos getPROPIEDAD para ver con que propiedades cuenta cada evento 2 Incorpora a la memoria activa un objeto EstadoRobot con el estado actual del robot posici n energ a etc El objeto EstadoRobot ofrece las mismas propiedades que el objeto de Robocode Por comodidad se incluyen tres m todos adicionales calculados a

Download Pdf Manuals

image

Related Search

Related Contents

Manual del Usuario T17  Philips Spiral 871829114605600  Guia del especialista      Procesador de imágenes láser Kodak DryView 8900 Guía de usuario  Integrated Refrigeration Installation Guide - Sub    Asrock AD2550B-ITX  Guía rápida de uso  

Copyright © All rights reserved.
Failed to retrieve file