Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
ROBOCODE IRCROBOCODE IRC
Jorge CarrascoJorge Carrasco TroitiñoTroitiñoElisabeth Pérez GarcíaElisabeth Pérez García
ROBOCODEROBOCODE
�� Entorno de simulación para guerra de robotsEntorno de simulación para guerra de robotsJavaJava
�� Robot:Robot:
�� Cuerpo del robotCuerpo del robot�� Cañón giratorio del robotCañón giratorio del robot�� Radar giratorioRadar giratorio
Nuestros RobotsNuestros Robots
�� Robots de combate individualRobots de combate individual�� IRCeitorIRCeitor�� IRCBotIRCBot
�� Robots de combate en equipoRobots de combate en equipo�� IRCTeamBotIRCTeamBot�� TeamyTeamy
ROBOT INDIVIDUALROBOT INDIVIDUAL
�� Actividades principales a desarrollar por unActividades principales a desarrollar por unrobot para ser competitivo:robot para ser competitivo:�� MOVERSE inteligentementeMOVERSE inteligentemente�� ESQUIVAR ataquesESQUIVAR ataques�� APUNTAR con precisiónAPUNTAR con precisión�� DISPARAR adecuadamenteDISPARAR adecuadamente
IRCeitorIRCeitor, un robot calculador, un robot calculadorMovimiento y EsquivoMovimiento y Esquivo
�� campo de batallacampo de batalla�� Movimiento alrededorMovimiento alrededor
del adversariodel adversario�� distancia óptima a partirdistancia óptima a partir
de la experienciade la experiencia
�� Cambio de sentido yCambio de sentido yvelocidad en elvelocidad en elmovimiento cuando elmovimiento cuando elcontrincante nos alcanzacontrincante nos alcanza
IRCeitorIRCeitor, un robot calculador, un robot calculadorApuntamientoApuntamiento
�� Almacenar en variables la situación actualAlmacenar en variables la situación actual�� Variación con el instante posteriorVariación con el instante posterior�� Promediar el movimiento del adversarioPromediar el movimiento del adversario
�� Ángulo de movimientoÁngulo de movimiento�� A partir de los disparos erróneos cometidos yA partir de los disparos erróneos cometidos y
del promedio del movimiento del adversario:del promedio del movimiento del adversario:calcular dondecalcular donde posicionar el cañónposicionar el cañón para tenerpara tenermás posibilidades de aciertomás posibilidades de acierto
ApuntamientoApuntamientoPromedio Movimiento:Promedio Movimiento: instante 1instante 1
ApuntamientoApuntamientoPromedio Movimiento:Promedio Movimiento: instante 2instante 2
IRCeitorIRCeitor, un robot calculador, un robot calculador¿Cuándo Disparar?¿Cuándo Disparar?
�� Cañón esté fríoCañón esté frío�� potencia de disparopotencia de disparo
�� Cañón paradoCañón parado�� Distancias no demasiadoDistancias no demasiado
grandesgrandes�� Si tengo muy pocaSi tengo muy poca
energía sólo cuando laenergía sólo cuando ladistancia sea bastantedistancia sea bastantepequeñapequeña�� Para asegurar el disparoPara asegurar el disparo
IRCeitorIRCeitor, un robot calculador, un robot calculadorPotencia del disparoPotencia del disparo
�� La potencia del disparo depende de 3 variables:La potencia del disparo depende de 3 variables:1.1. La energía del adversarioLa energía del adversario2.2. La distancia al enemigoLa distancia al enemigo3.3. Mi propia energíaMi propia energía
IRCBotIRCBot
�� Movimiento ApropiadoMovimiento Apropiado
�� Evasión de peligrosEvasión de peligros
�� Registro de EnemigosRegistro de Enemigos
�� Disparo ApropiadoDisparo Apropiado
IRCBotIRCBotMovimiento ApropiadoMovimiento Apropiado
�� Factores que provocan o alteran el movimientoFactores que provocan o alteran el movimiento�� Número de enemigos vivosNúmero de enemigos vivos
�� UNO...UNO...Combate cuerpo a cuerpoCombate cuerpo a cuerpo, hay que ser, hay que serinteligentes...movimientos sucesivosinteligentes...movimientos sucesivos
�� MAS DE UNO...Qué enemigo constituye un mayorMAS DE UNO...Qué enemigo constituye un mayorpeligro?, alejémonos de élpeligro?, alejémonos de él
�� Estado de evasiónEstado de evasión, componente impredecible, componente impredecible�� Proximidad a los murosProximidad a los muros, los choques debilitan, los choques debilitan
innecesariamenteinnecesariamente
IRCBotIRCBot,,Cuerpo a cuerpo.Cuerpo a cuerpo.-- Instante 1Instante 1
El enemigo es detectado. El principio de su finEl enemigo es detectado. El principio de su fin
IRCBotIRCBot,,Cuerpo a cuerpo.Cuerpo a cuerpo.--Instante 2Instante 2
Ligeros acercamientos en media luna mientrasLigeros acercamientos en media luna mientrasabrimos fuegoabrimos fuego
IRCBotIRCBot,,Cuerpo a cuerpo.Cuerpo a cuerpo.-- Instante 3Instante 3
Rematando la faena a plena potencia de disparoRematando la faena a plena potencia de disparo
IRCBotIRCBot,,Evasión de peligrosEvasión de peligros
Objeto Evasor: cambia a cada evento, a cada ronda,Objeto Evasor: cambia a cada evento, a cada ronda,el enemigo no sacará nada útil al analizarnosel enemigo no sacará nada útil al analizarnos
�� Peligro: Combate cuerpo a cuerpoPeligro: Combate cuerpo a cuerpo�� Solución: Sucesión de movimientos marcados por elSolución: Sucesión de movimientos marcados por el
evasorevasor
�� Peligro: Nos están disparandoPeligro: Nos están disparando�� Solución: Cambiamos nuestro tipo de evasión, y enSolución: Cambiamos nuestro tipo de evasión, y en
consecuencia nuestro movimientoconsecuencia nuestro movimiento
IRCBotIRCBot,,Registro de enemigosRegistro de enemigos
�� Clase EnemigoClase Enemigo
�� Registro de enemigos:Registro de enemigos: HashtableHashtable�� Posibilidades: controlarlos, elegirlos...Posibilidades: controlarlos, elegirlos...
IRCBotIRCBot,,Disparo ApropiadoDisparo Apropiado
�� A quién disparar?A quién disparar?�� “target” asignado:“target” asignado:
�� Encontramos otro mejorEncontramos otro mejor�� Seguimos con élSeguimos con él
�� “target” sin asignar:“target” sin asignar:�� Al detectar un enemigo se asignará.Al detectar un enemigo se asignará.
�� Enemigo inmóvil: disparo directoEnemigo inmóvil: disparo directo�� Choque con enemigo: máxima potenciaChoque con enemigo: máxima potencia�� Disparo:Disparo:
�� dirección: función de orientación, velocidad...dirección: función de orientación, velocidad...�� potencia: función de energía, distancia...potencia: función de energía, distancia...
ROBOT DE EQUIPOROBOT DE EQUIPO
�� Opciones:Opciones:�� Líder yLíder y droidesdroides::�� RobotsRobots equiequi--funcionalesfuncionales
�� Inteligencia distribuida(radares)Inteligencia distribuida(radares)�� Aportación equitativa de todos los robotsAportación equitativa de todos los robots�� No perder funcionalidad al morir un compañeroNo perder funcionalidad al morir un compañero
�� Características de un robot de grupoCaracterísticas de un robot de grupo�� IndividualesIndividuales�� ColectivasColectivas
Robot de EquipoRobot de Equipo
�� Acciones IndividualesAcciones Individuales�� Movimiento del robot (podría depender también delMovimiento del robot (podría depender también del
colectivo)colectivo)�� Búsqueda de nuevos enemigosBúsqueda de nuevos enemigos�� Disparo una vez seleccionado el enemigoDisparo una vez seleccionado el enemigo
�� Acciones ColectivasAcciones Colectivas�� Evitar disparar a nuestros compañerosEvitar disparar a nuestros compañeros�� Ataque ordenado para acabar cuanto antes contra losAtaque ordenado para acabar cuanto antes contra los
enemigos, que también pasan a ser colectivosenemigos, que también pasan a ser colectivos
IRCTeamBot,IRCTeamBot,afrontando la lucha en equipoafrontando la lucha en equipo
IRCTeamBot,IRCTeamBot,afrontando la lucha en equipoafrontando la lucha en equipo
�� Movimiento:Movimiento:�� Imperativo no chocarse contra compañeros, restaríaImperativo no chocarse contra compañeros, restaría
vida a los dos robots, gran pérdida para el equipovida a los dos robots, gran pérdida para el equipo
�� Localización enemiga:Localización enemiga:�� “static Hashtable enemigos”, enemigos comunes“static Hashtable enemigos”, enemigos comunes�� Todos nuestros robots contribuyen a mantenerTodos nuestros robots contribuyen a mantener
actualizada la base de datos de enemigos: ampliarla,actualizada la base de datos de enemigos: ampliarla,actualizarla, descartar enemigos...actualizarla, descartar enemigos...
Teamy,Teamy,““ la máquina”la máquina”
Teamy,Teamy,“la máquina”“la máquina”
�� Robot de equipo basado en unaRobot de equipo basado en una MÁQUINA DEMÁQUINA DEESTADOSESTADOS
�� Similar a IRCTeamBot en aspectos puntualesSimilar a IRCTeamBot en aspectos puntuales�� Nuevo mecanismo de disparoNuevo mecanismo de disparo�� Uso de una matrizUso de una matriz enemyParametersenemyParameters que contendráque contendrá
gran cantidad de información del enemigo que nosgran cantidad de información del enemigo que nosocupe en cada momento.ocupe en cada momento.
Teamy,Teamy,“la máquina”“la máquina”
�� Ejecución más ordenada e intuitivaEjecución más ordenada e intuitiva�� Menos coste computacionalMenos coste computacional�� Maquina de cuatro estados:Maquina de cuatro estados:
INCIO TARGETING
CELEBRATING FIRING
Teamy,Teamy,“la máquina”“la máquina”
�� INICIO:INICIO:�� Cada vez que se llama aCada vez que se llama a runrun()()�� Inicialización de parámetros del robotInicialización de parámetros del robot
�� TARGETING:TARGETING:�� Se lanzan escaneos de radar y se espera a encontrarSe lanzan escaneos de radar y se espera a encontrar
algo interesantealgo interesante�� Se encuentran enemigos y se guarda su informaciónSe encuentran enemigos y se guarda su información
TeamyTeamy,,“la máquina”“la máquina”
�� FIRINGFIRING�� Una vez asignado el enemigo se abre fuego sobre élUna vez asignado el enemigo se abre fuego sobre él�� Hasta que el grupo no halla matado al robot objetivoHasta que el grupo no halla matado al robot objetivo
no se cambia de objetivo enemigono se cambia de objetivo enemigo�� Algoritmo distinto de disparo, con iteraciones paraAlgoritmo distinto de disparo, con iteraciones para
mejorar la punteríamejorar la puntería
�� CELEBRATINGCELEBRATING�� En caso de victoria nos regodeamos un pocoEn caso de victoria nos regodeamos un poco
Grado Letal de nuestros equiposGrado Letal de nuestros equipos
�� Contra equipo de muestraContra equipo de muestra RobocodeRobocode, 25 rondas, 25 rondas�� IRCTeamBotIRCTeamBot
�� TeamyTeamy
IRCTeamBotIRCTeamBot vs.vs. TeamyTeamy
�� Equipos de cuatro robots cada unoEquipos de cuatro robots cada uno�� 25 rondas25 rondas�� Resultados:Resultados:
IRCTeamBotIRCTeamBot vs.Teamyvs.TeamyTheThe riserise ofof thethe machinesmachines