68
Definición y Evaluación de Jugadas para Fútbol Robótico Diego Fernando Castro Rojas Juan Sebastián Galarza Molina Universidad de los Andes Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Bogotá D.C Diciembre 2009

Definición y Evaluación de Jugadas para Fútbol Robótico

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico

Diego Fernando Castro Rojas

Juan Sebastián Galarza Molina

Universidad de los Andes

Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y Computación

Bogotá D.C

Diciembre 2009

Page 2: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico

Diego Fernando Castro Rojas

Juan Sebastián Galarza Molina

Proyecto de Grado para obtener el título de

Ingeniero de Sistemas y Computación

Profesor Asesor:

Fernando De la Rosa R., Ph.D.

Universidad de los Andes

Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y Computación

Bogotá D.C

Diciembre 2009

Page 3: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 1

CONTENIDO

TABLA DE ILUSTRACIONES .......................................................................................................................................... 3

Resumen ..................................................................................................................................................................... 5

1 Introduccion ............................................................................................................................................................. 6

2 Descripción general .................................................................................................................................................. 8

2.1 Objetivos ............................................................................................................................................ 8

2.1.1 Objetivo General ............................................................................................................... 8

2.1.2 Objetivos Específicos ........................................................................................................ 8

2.2 Antecedentes ..................................................................................................................................... 8

2.2.1 ¿Qué es una estrategia? ................................................................................................... 8

2.2.2 Estrategias, Estado del arte............................................................................................... 9

2.2.3 Acerca de Simurosot (Introduction To Robot Soccer Coding) ......................................... 19

2.3 Identificación del problema y de su importancia ............................................................................. 22

3 Diseño y especificaciones ......................................................................................................................................... 24

3.1 Definición del problema ................................................................................................................... 24

3.2 Solución del problema ...................................................................................................................... 24

3.3 Estado actual de la plataforma de experimentación ........................................................................ 25

4 Desarrollo del diseño ............................................................................................................................................... 28

4.1 Recolección de Información ............................................................................................................. 30

4.2 Alternativas de diseño ...................................................................................................................... 30

5 Implementacion ....................................................................................................................................................... 31

5.1 Algoritmo de selección de situación ................................................................................................. 31

5.2 Jugadas, conceptos y movimientos básicos...................................................................................... 33

5.2.1 Línea Libre ....................................................................................................................... 33

5.2.2 Interceptar ...................................................................................................................... 35

5.2.3 zonas ............................................................................................................................... 35

5.2.4 Área de Dominio ............................................................................................................. 35

5.2.5 patear balón .................................................................................................................... 35

Page 4: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 2

5.2.6 rotar robot ...................................................................................................................... 36

5.2.7 Juego Directo .................................................................................................................. 36

5.2.8 DISPARO 1-2-3 ................................................................................................................ 37

5.3 Detalle de las jugadas, conceptos y movimientos básicos ............................................................... 38

5.3.1 Línea libre ....................................................................................................................... 38

5.3.2 Intercepción .................................................................................................................... 40

5.3.3 Área de Dominio ............................................................................................................. 47

5.3.4 Zonas ............................................................................................................................... 50

5.3.5 Pegarle al balón .............................................................................................................. 52

5.4 Movimiento del Arquero .................................................................................................................. 53

6 Validación ................................................................................................................................................................. 55

6.1 Métodos de prueba .......................................................................................................................... 55

6.2 Validación de resultados .................................................................................................................. 55

6.2.1 validación de línea libre .................................................................................................. 55

6.2.2 validación de interceptar ................................................................................................ 56

6.2.3 validación de rotar .......................................................................................................... 57

6.2.4 validación de patear el balón .......................................................................................... 58

6.2.5 validación de áreas de dominio ...................................................................................... 59

6.2.6 validación de juego por zonas ......................................................................................... 60

6.2.7 validación Estrategia integración de jugadas .................................................................. 61

7 Conclusiones ............................................................................................................................................................ 63

7.1 Discusión .......................................................................................................................................... 63

7.2 Trabajo futuro .................................................................................................................................. 63

8 Bibliografía ............................................................................................................................................................... 64

9 Apéndices ................................................................................................................................................................. 65

9.1 Anexo 1 FIRA (Federation of International RobotSoccer Association)............................................. 65

9.2 Anexo 2 Robocup ............................................................................................................................. 65

Page 5: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 3

TABLA DE ILUSTRACIONES

.......................................................................................................................................................................

Ilustración 1. Modelo de robot para la liga Mirosot de fútbol robótico FIRA __________________________ 7

Ilustración 2. Punto de Intercepción. (Ilya Levner, 2006, pág. 565) _________________________________ 11

Ilustración 3. Formación Defensiva. (Ilya Levner, 2006, pág. 566) __________________________________ 11

Ilustración 4. Juego Directo y Regiones Dominantes (Ryota Nakanishi, 2006, pág. 3). _________________ 13

Ilustración 5. 1-2-3 Shoot (Ryota Nakanishi, 2006, pág. 4). ______________________________________ 14

Ilustración 6. Establecer quien tiene el balón (Saori Umemura, 2006, pág. 3). ________________________ 15

Ilustración 7. Curso de disparo (Saori Umemura, 2006, pág. 3). ___________________________________ 15

Ilustración 8. Parámetros de marcas (Saori Umemura, 2006, pág. 4). ______________________________ 16

Ilustración 9. Ejemplo de selección de la marca más importante (Saori Umemura, 2006, pág. 5). ________ 16

Ilustración 10. Marca más importante y la obtención de la orientación (Saori Umemura, 2006, pág. 5). __ 17

Ilustración 11. Estimación de la posición (Steffen Prüter, 2006, pág. 4). _____________________________ 18

Ilustración 12. Corrección de la posición del robot (Steffen Prüter, 2006, pág. 5). _____________________ 18

Ilustración 13. Predicción de la posición del robot (Steffen Prüter, 2006, pág. 5). _____________________ 19

Ilustración 14. Dimensiones Cancha Simulador ________________________________________________ 22

Ilustración 15. Componentes Plataforma Experimental. _________________________________________ 26

Ilustración 16. Campo de Juego Universidad de los Andes ________________________________________ 26

Ilustración 17. Cámara Matrox Meteor ______________________________________________________ 27

Ilustración 18. Equipo azul en Posición Defensiva. ______________________________________________ 28

Ilustración 19. Equipo Azul en Posición Ofensiva. _______________________________________________ 29

Ilustración 20. Línea libre entre el jugador y la bola. ____________________________________________ 33

Ilustración 21. Línea libre entre el jugador y otro. ______________________________________________ 34

Ilustración 22. Línea libre entre el jugador y el arco. ____________________________________________ 34

Ilustración 23. Movimiento Frontal y de reversa. _______________________________________________ 36

Ilustración 24. Juego Directo (Ryota Nakanishi, 2006, pág. 3). ____________________________________ 37

Ilustración 25. Disparo 1-2-3 (Ryota Nakanishi, 2006, pág. 4). ____________________________________ 37

Ilustración 26. Caso1 intersección de rectas, método pendientes. _________________________________ 38

Ilustración 27. Caso2 intersección de rectas, método pendientes. _________________________________ 39

Ilustración 28. Caso3 intersección de rectas, método pendientes. _________________________________ 39

Ilustración 29. Intersección de rectas paramétricas. ____________________________________________ 40

Ilustración 30. Intersección de rectas paramétricas. ____________________________________________ 40

Ilustración 31. Rotación al punto del balón. ___________________________________________________ 41

Ilustración 32. Intercepción, primer caso _____________________________________________________ 41

Ilustración 33. Predicción de la posición del balón. _____________________________________________ 42

Ilustración 34. Intercepción, Segundo caso. ___________________________________________________ 42

Ilustración 35. Centro Instantáneo de Rotación.________________________________________________ 43

Ilustración 36. Cinemática No Holonómica. ___________________________________________________ 43

Ilustración 37. Caminos de Dubins. __________________________________________________________ 44

Ilustración 38. Circulos generados por CIR. ____________________________________________________ 44

Ilustración 39. Tangentes comunes en círculos de igual radio. ____________________________________ 45

Ilustración 40. tangentes cruzadas ejemplo1. _________________________________________________ 46

Ilustración 41. tangentes cruzadas ejemplo2. _________________________________________________ 46

Ilustración 42. tangentes cruzadas ejemplo3. _________________________________________________ 47

Page 6: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 4

Ilustración 43. Área de dominio. ____________________________________________________________ 48

Ilustración 44. Elipse con focos F y F’. ________________________________________________________ 48

Ilustración 45. Intercepción de una recta con una elipse. ________________________________________ 49

Ilustración 46. Translación de elipse y recta al origen. ___________________________________________ 49

Ilustración 47. Balón en Zona dos donde hay un robot azul intentando recuperarla. ___________________ 50

Ilustración 48. Balón en Zona uno donde hay un robot azul intentando recuperarla. __________________ 50

Ilustración 49. Balón en Zona tres donde hay un robot azul intentando recuperarla. __________________ 51

Ilustración 50. Balón en Zona cuatro donde hay un robot azul intentando recuperarla. ________________ 51

Ilustración 51. Patear el balón. _____________________________________________________________ 52

Ilustración 52. Rotación a un punto objetivo. __________________________________________________ 53

Ilustración 53. Prueba de línea libre. _________________________________________________________ 56

Ilustración 54. Prueba Intercepción. _________________________________________________________ 57

Ilustración 55. Prueba Rotación. ____________________________________________________________ 58

Ilustración 56. Prueba Patear Balón. _________________________________________________________ 59

Ilustración 57. Prueba Áreas de Dominio1. ____________________________________________________ 60

Ilustración 58. Prueba Áreas de Dominio2. ____________________________________________________ 60

Ilustración 59. Prueba zonas _______________________________________________________________ 61

Ilustración 60. Funcionamiento small size Robocup (Informatik, 2009) _____________________________ 66

Page 7: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 5

RESUMEN

La idea de hacer el proyecto de grado en el área de fútbol robótico surge a través del curso de robótica

dictado por el profesor Fernando De la Rosa, en esa clase se conoció la plataforma con la que cuenta la

universidad, y además una motivación importante fue el interés por el fútbol en general. Lo cual tuvo como

consecuencia el realizar una contribución para que otras personas puedan aportar más fácilmente en un

futuro a este tema de investigación en la Universidad de los Andes. La problemática a resolver es definir un

conjunto de jugadas de base para un equipo de fútbol robótico que se puedan aplicar en un primer nivel de

decisión. Estas jugadas tienen en cuenta situaciones de juego a la ofensiva y a la defensiva. Se logró plantear

y desarrollar jugadas y movimientos básicos para poder lograr un juego en equipo dentro de una estrategia.

Page 8: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 6

1 INTRODUCCION

El fútbol robótico es una práctica que cada año va creciendo más y más en popularidad en las Universidades

alrededor del mundo. Anualmente se realizan torneos bajo la regulación de la FIRA (Ver Anexo 1) y de la

Robocup (Ver Anexo 2) las dos principales asociaciones encargadas de promover y regular la competencia

con el fin del progreso en el área de la robótica a nivel mundial.

En la Universidad de los Andes se inicio la participación en el área del fútbol robótico en el 2008 al introducir

la plataforma experimental compatible con FIRA liga Mirosot, la cual constan de cinco robots (ilustración 1),

una cancha y una cámara Samsung Matrox Intellicam. Esta plataforma introducida en la Universidad está

diseñada específicamente para la categoría Mirosot de la FIRA. Aunque presenta mucha similitudes con la

categoría “Small size” de su similar la Robocup.

El propósito es que a través de este documento se evidencie el proceso recorrido para poder plantear y

elaborar una propuesta en este campo de investigación. Este proceso se divide en cuatro etapas, la primera

es el estudio del fútbol robótico, su funcionamiento, reglas etc. En particular en la categoría Mirosot de la

FIRA y en la de la Small Size de Robocup, puesto que tienen muchas similitudes. Lo siguiente fue definir muy

bien que es una estrategia, su definición, sus componentes y otros aspectos claves como su ejecución a

partir de jugadas básicas, unas individuales y otras cooperativas, para el caso esta propuesta, la estrategia

consistirá en la selección y combinación de estas jugadas, donde dicha selección dependerá de la situación

de juego. Además de la investigación de la situación actual en cuanto estrategias usadas comúnmente

alrededor del mundo. Para lograr esto se realizó una investigación tomando como base distinta información

que se encontró en fuentes como la base de datos de la universidad, además de un proyecto anterior en el

cual introducían al ambiente que se tiene actualmente en la universidad, con esta investigación se pudo

tener una idea más clara de cómo está la situación actual de esta problemática alrededor del mundo. El

siguiente paso fue conocer y entender la estrategia que se encuentra implementada actualmente en el

laboratorio y además en el simulador ofrecido por la FIRA para la categoría Simurosot. Una vez entendido lo

anterior se procedió a implementar jugadas y movimientos básicos que permitieron mejorar la modalidad

de juego de los robots.

Agradecemos al profesor Fernando de la Rosa, por que sin su apoyo no hubiese sido posible la realización de

este proyecto de grado, ya que fue en gran apoyo a lo largo del desarrollo del mismo y gran guía en

momentos de confusión.

De igual forma queremos agradecer a nuestras familias, las cuales nos brindaron un apoyo incondicional el

cual fue fundamental para la realización de este proyecto.

Page 9: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 7

Ilustración 1. Modelo de robot para la liga Mirosot de fútbol robótico FIRA

Page 10: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 8

2 DESCRIPCIÓN GENERAL

2.1 OBJETIVOS

2.1.1 OBJETIVO GENERAL

Continuar con la investigación del fútbol robótico en la Universidad de los Andes para que cada vez sea un

tema de mayor interés entre los estudiantes especialmente de Ingeniería de Sistemas. Así mismo se

propone una base, a través de jugadas básicas tanto individuales como cooperativas, que se apliquen a

situaciones ofensivas y defensivas que pueden integrarse en la definición de una estrategia de futbol

robótico. La idea es que la estrategia define los criterios para seleccionar la mejor jugada de acuerdo a la

situación de juego en cada instante. Todo esto con el fin de dar un primer paso a que se amplíe este tema

de investigación y así llegar a poder competir en torneos oficiales y que la Universidad de los Andes se

pueda resaltar también en este tema a nivel nacional e internacional.

2.1.2 OBJETIVOS ESPECÍFICOS

Entender el funcionamiento, reglamentación etc. De la categoría Mirosot de la FIRA.

Entender la definición y composición de una estrategia de juego.

Conocer la estrategia implementada actualmente en el laboratorio.

Estudiar la aplicación de la robótica cooperativa en este campo.

Crear una estrategia con aspectos cooperativos de juego que mejore el funcionamiento actual de

los robots.

Diseñar distintas jugadas básicas para la implementación de una estrategia cooperativa.

2.2 ANTECEDENTES

Para poder llegar a realizar una propuesta interesante es necesario tener una base firme con el fin de lograr

entender la actualidad del problema. Primero es importante dejar claro como el término “estrategia” se

combina con el futbol robótico y posteriormente complementar un poco con el estado del arte de esta

gigantesca disciplina en la cual han participado gran cantidad de personas alrededor del mundo.

2.2.1 ¿QUÉ ES UNA ESTRATEGIA?

Hoy en día es claramente visible que para muchas actividades de la vida diaria o para el estudio de ciencias

determinadas se usen estrategias, hay infinidades para muchas situaciones y estudios creados por el

hombre. Desde estrategias para leer o analizar un documento hasta estrategias para el análisis del

desarrollo económico.

Una estrategia hace referencia a un conjunto de acciones planificadas que se ejecutan para poder cumplir

uno o varios objetivos. Para el caso específico de fútbol robótico, se tienen un conjunto amplio de acciones

Page 11: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 9

específicas dado el número de variables a considerar en el juego, asimismo hay que considerar que se está

manejando un estado de espacios continuos, múltiples robots y se maneja mucha incertidumbre en los

equipos usados. Se podría considerar como acciones importantes la cooperación y coordinación entre los

robots a través de tareas simples, donde el objetivo principal del juego es el lograr ganar el partido.

A la hora de realizar una estrategia generalmente lo que se hace es considerar cada una de las posibilidades

que va a tener una jugada por separado. Hoy en día se ha logrado avanzar mucho en inteligencia artificial y

en coordinación de multi-agentes, por lo cual se han creado algoritmos para generalizar las situaciones que

se pueden llegar a tener en este juego.

El fútbol en general tiene una infinidad de situaciones que pueden llegar a ser muy complejas de simular en

una aplicación. Pero aún así existen situaciones que siempre van tenerse en cuenta, por ejemplo el

momento en que se ataca y el momento en el que se defiende. Estas dos situaciones generalmente

definidas como estrategias son las más básicas a tener en cuenta, pero debido a que son muy generales, el

diseño y elaboración de las mismas puede variar considerablemente en cada equipo.

Para poder entender un poco más lo anterior se analizó un poco el estado del arte del fútbol robótico a

través de unos documentos elaborados por investigadores alrededor del mundo.

2.2.2 ESTRATEGIAS, ESTADO DEL ARTE

Se partió de la investigación de desarrollos recientes en cuanto a estrategias, para lo cual se encontraron

artículos interesantes que sirvieron de base para poder llegar a formular movimientos y conceptos básicos

para una estrategia según el contexto en el que nos encontramos. Además estas propuestas y proyectos

pueden ser inspiradores para trabajos a futuro en esta rama de investigación.

2.2.2.1 HEURISTIC SEARCH FOR COORDINATING ROBOT AGENTS IN ADVERSARIAL

DOMAINS (ILYA LEVNER, 2006)

Como idea general se va a ir descomponiendo un sistema global de coordinación en un conjunto de

búsquedas locales. Orientado en la liga de tamaño pequeño de la Robocup aunque el framework es

aplicable para cualquier tarea de coordinación múltiple.

La propuesta se originó debido a que se encontró en los torneos de Robocup que los equipos perdían

oportunidades en cuanto al control y al avance del balón. Los programadores usan código a mano con el

cual crean reacciones ante situaciones específicas que ellos definen. Pero el problema con este código es

que existe una cantidad indefinida de situaciones distintas, para las cuales finalmente un equipo termina

implementando unas pocas. También puede suceder que aunque se use la respuesta que para el

programador es la mejor en ese momento, no salga como él esperaba y termine siendo totalmente

desastrosa. Una ventaja de este código a mano es que es más fácil para el programador puesto que es fácil

comenzar e ir añadiéndole distintas situaciones.

Page 12: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 10

Búsqueda de la heurística

Se describen dos métodos aplicados en distintas áreas para la búsqueda de heurísticas.

Minimax Search, Monte carlo Sampling

Estos métodos son Minimax Search y Monte Carlo Sampling, el primero consiste en disminuir la perdida

máxima esperada a través de un algoritmo recursivo, y el segundo es un método no determinístico, usado

para problemas especialmente en juegos de azar, de ahí viene su nombre el cual hace referencia al casino de

Montecarlo en Mónaco.

Hay distintos obstáculos y es que estos algoritmos no han sido aplicados en espacios continuos, con tiempo

continuo y además la posibilidad de acciones simultaneas. Otro problema es el poder encontrar una

abstracción para este problema que maneja tantas variables.

Identificar la habilidad clave del robot en el dominio en el que se quiere aplicar el algoritmo, es lo más

importante. En el caso de futbol robótico identifican la probabilidad de intercepción del balón como la

habilidad clave. Esta habilidad es clave para pegarle al balón, para hacer pases y para las situaciones

defensivas.

Evaluación de Escenarios

Uno a Uno: En este escenario solo hay un robot el cual no podrá cruzar la línea del medio campo. Entonces

los robots solo se dedicaran a interceptar el balón cuando pase a su lado.

Dos a Dos: En este caso el equipo tiene dos robots los cuales en total pueden hacer máximo 3 toques antes

de disparar al arco. Después de un remate se predicen las posibles áreas donde puede volver a quedar el

balón. El que se combinen estrategias de ataque con defensa hace que esta situación se muy difícil de

elaborar con código a mano. Y cómo en el anterior escenario los robots no pueden cruzar la mitad.

Seudo-Código del Algoritmo:

Intercepción del balón.

Calcular la posición efectiva de los defensores.

Escoger y evaluar los ángulos de disparo.

Calcular las posibles ubicaciones de un pase.

Para calcular el punto de intercepción, dado la posición del balón, la velocidad del balón, la posición del

robot y la velocidad del robot, se resuelve para un tiempo de intercepción.

Page 13: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 11

Ilustración 2. Punto de Intercepción. (Ilya Levner, 2006, pág. 565)

Formación Defensiva

En este caso se define un triángulo que se forma desde las esquinas de la cancha y el balón, donde la

reacción de los defensas dependen de si el punto de intercepción esta por fuera o adentro del triángulo.

Ilustración 3. Formación Defensiva. (Ilya Levner, 2006, pág. 566)

Coordinación receptor-pasador

Seleccionar el robot más cercano al balón el cual va a hacer el pase o interceptar el balón para

hacer el pase.

Se genera aleatoria mente un conjunto de posibles ubicaciones de pase en un radio pre-

especificado alrededor del robot que va a recibir.

Borrar las posiciones de pase no validas, para eso se usa calcIntercept() para determinar si el

receptor puede alcanzar el balón.

Reducir el espacio de posibilidades. Cuando hay dos puntos muy cercanos se descarta uno de los

dos.

Evaluar el valor de cada uno de los puntos posibles de pase, dada la posición del balón y de los

robots rivales.

Page 14: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 12

2.2.2.2 COOPERATIVE 3-ROBOT PASSING AND SHOOTING IN THE ROBOCUP SMALL SIZE

LEAGUE (RYOTA NAKANISHI, 2006)

En este artículo se propone un método cooperativo para atacar. El cual a través de la cooperación entre tres

de los robots se logra esquivar a los rivales y disparar. La cooperación entre los robots en la small size ligue

es que algo que es necesario en los equipos actuales.

Al momento de la primera implementación obtuvieron problemas debido a que no tenían la capacidad para

procesar las imágenes y tampoco la capacidad en cuanto al robot para poder interceptar el balón en la

forma en que ellos deseaban.

Se llama Tiro 1-2-3, a la situación en la cual se tienen tres robots A, B y C, y A lleva el balón y va intentar

hacer un pase a B pero existe la posibilidad de que un rival intercepte el pase entonces A realiza el pase a C y

C hace el pase a B el cual remata.

¿Por qué es necesaria la cooperación?

Constantemente se está buscando que los robots lleguen a alcanzar un nivel similar de adaptación que los

humanos. La cooperación entre distintos robots es un inicio en la adaptabilidad a diferentes entornos.

¿Qué tipo de Cooperación usa?

La primera forma de cooperación usada por ellos es llamada "juego directo", la cual consiste en que el robot

cambia la dirección del balón y la velocidad pegándole apenas llega sin driblar o retener el balón. El juego

directo permite que el equipo esté realizando pases continuamente lo cual hace que sea más difícil para los

rivales el interceptar el balón.

La segunda forma de cooperación es el tiro 1-2-3 (A, B, C). A pasa el balón a B, este a C y C se encarga de

disparar.

¿Cómo se logra el juego directo?

Como bien se pudo ver le juego directo es la base del tiro 1-2-3. A continuación se va presentar la lógica del

algoritmo de juego directo entre dos robots A y B.

"Juego Directo"

A lleva el balón y B coopera con A.

1. B se mueve a una posición libre que tenga opción de disparo o donde haya opción de hacer pase a otro jugador.

2. A hace el pase a B. Se asume que no hay oponentes que puedan interceptar el pase. 3. Según la velocidad del balón y a través del sistema de visión se calcula cuando la pelota va alcanzar

al robot B. 4. El robot avanza a una nueva posición donde va a recibir el balón. 5. El sensor de proximidad detecta el momento en que la pelota toca al robot B el cual patea la bola

en ese momento.

Page 15: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 13

Ilustración 4. Juego Directo y Regiones Dominantes (Ryota Nakanishi, 2006, pág. 3).

Para lograr una jugada tiro 1-2-3, es importante tener en cuenta las regiones dominantes como se ve en la

figura 2. El método de la región dominante es una especie de diagrama de Voronoi. El cual se calcula

teniendo en cuenta dos agentes el oponente y el compañero de equipo. El diagrama divide la cancha en dos

regiones una en la cual el oponente puede alcanzar cualquier posición de esa región rápidamente y la otra

en la que el compañero de equipo puede hacer lo mismo.

Estas regiones se calculan a través de la velocidad, aceleración y posición del oponente y del compañero de

equipo.

Las regiones de dominación son la clave fundamental en esta estrategia propuesta, puesto estas son las que

determinan cuando se puede hacer un pase o no.

"Disparo 1-2-3"

Procedimiento básico para seleccionar el tiro 1-2-3:

Se tiene que A lleva el balón y B y C son compañeros de equipo de A.

Si (Robot A tiene línea de disparo){

Robot A dispara

} Sino {

Se busca un espacio libre de donde se pueda hacer un disparo.

Robot C se mueve a ese espacio libre.

Se calculan las regiones dominantes.

Si (la línea de pase está en la región dominante){

Juego directo entre A y C

Page 16: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 14

} Sino {

B se mueve a la posición adecuada.

Tiro 1-2-3 entre A, B y C.

}

}

Algoritmo 1-2-3 shoot:

1. El robot C se mueve a un espacio libre 2. Si la línea de pase cruza el área dominada por los oponentes, el robot B se mueve hacia una zona

donde pueda recibir la bola. Con lo cual se logra que la línea de pase entre al área dominada. 3. El robot A se la pasa a B y B se la pasa a C. 4. C dispara.

Ilustración 5. 1-2-3 Shoot (Ryota Nakanishi, 2006, pág. 4).

En los resultados de la implementación se obtuvieron más goles cuando el robot C recibía el balón de frente,

y se fallo más cuando el balón le llegaba perpendicular a su posición.

2.2.2.3 ORIENTATION EXTRACTION AND IDENTIFICATION OF THE OPPONENT ROBOTS IN

ROBOCUP SMALL-SIZE LEAGUE (SAORI UMEMURA, 2006)

Para llegar a proponer una estrategia en la Robocup, es necesario partir de entender muy bien cómo se

comportan los oponentes.

Page 17: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 15

En la Robocup se encuentra que algunos equipos usan unas macas adicionales en el patrón de la parte

superior para determinar la orientación e identificación de los robots. Por esta razón se hace más

complicado el poder reconocer estas marcas adicionales puesto que cada equipo tiene las propias.

¿Qué beneficios trae el poder saber la orientación de los rivales?

Trae muchos beneficios puesto que en esta categoría el evitar que los robots pateen o que driblen es

fundamental. Cuando se sabe que el balón esa cerca de un oponente se puede determinar si el robot está

reteniendo la pelota o si le va a pegar. En situaciones como los penaltis se puede llegar a determinar hacia

donde le va a pegar a través de la posición del robot.

Ilustración 6. Establecer quien tiene el balón (Saori Umemura, 2006, pág. 3).

Ilustración 7. Curso de disparo (Saori Umemura, 2006, pág. 3).

Al iniciar un juego se toma la primera imagen de la cancha y se guardan en una lista los parámetros de las

marcas adicionales que tengan los robots del equipo rival, tales como color, área, tamaño, centro de

gravedad, etc. Esto se logra usando un método de análisis discriminatorio.

Page 18: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 16

Ilustración 8. Parámetros de marcas (Saori Umemura, 2006, pág. 4).

De la lista se toma el marcador principal el cual será el parámetro más específico de la lista.

Ilustración 9. Ejemplo de selección de la marca más importante (Saori Umemura, 2006, pág. 5).

Después de tener parametrizada la lista de marcas, se puede reconocer el robot a través de del parámetro

más específico, con el centro de gravedad y con este parámetro se puede determinar la dirección del robot.

Page 19: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 17

Ilustración 10. Marca más importante y la obtención de la orientación (Saori Umemura, 2006, pág. 5).

Para poner a prueba lo planteado anteriormente escogieron un conjunto de marcas adicionales que usan los

equipos normalmente, 25 en total para las pruebas. Los resultados que se obtuvieron fue que podían

identificar a un robot el 99.8% de las veces y con error de 4.95° al determinar la orientación. Existen otros

métodos que permiten hallar la orientación más efectivamente pero gastan más tiempo de ejecución.

2.2.2.4 LOCAL MOVEMENT CONTROL WITH NEURAL NETWORKS IN THE SMALL SIZE

LEAGUE (STEFFEN PRÜTER, 2006)

Como bien ya sabemos el funcionamiento de la categoría small size de Robocup y la Mirosot de FIRA son

muy similares, los dos cuentan con una cámara que permite ubicar cada uno de los robots y de una unidad

central la cual se encarga de tomar decisiones y ordenarle los movimientos a los robots. Esta metodología ha

hecho que se presente un nuevo problema el cual consiste en conocer la posición exacta del robot, esto

debido a que cuando la cámara capta el robot este se encuentra en una determinada posición la cual no será

la misma una vez reciba la orden de la unidad central, debido a que habrá pasado un cierto tiempo lo que

hace que la posición varié. Esto quiere decir que si la unidad central no predice la posición del robot a la

hora de enviarle una instrucción, el movimiento del mismo no será el que la unidad de control esperaría por

ende inadecuado. En el documento tratan este problema y proponen una solución la cual involucra una

combinación entre la aplicación de redes neuronales y sensores locales de cada robot para estimar con gran

precisión su posición actual.

Sensores Locales

La idea es conocer la posición actual del robot y los sensores locales pueden ser de gran utilidad. Al instalar

unos sensores en las ruedas de los robots, por medio del número de giros de cada una se podría estimar con

exactitud la posición actual del robot. Esto funcionaría perfectamente en un ambiente de simulación pero

tendría sus errores aplicándolo a robots de verdad, ya que habría que tener en cuenta la fricción, si una

rueda patina sería un giro menos que tienen en cuenta los sensores etc.

Estimación de la posición

Page 20: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 18

Ilustración 11. Estimación de la posición (Steffen Prüter, 2006, pág. 4).

En esta figura podemos apreciar con claridad tres momentos de tiempo en donde se encuentra el robot. El

primero de ellos es la posición del robot en el instante en que la cámara captura la imagen, el segundo es en

el momento en el que se analiza la información recibida por la cámara y se toma una decisión, y el último es

la posición del robot cuando recibe la instrucción por la unidad central. Si no se hubiese calculado la posición

actual del robot, este hubiera recibido una orden de moverse a otro lugar viendo que en ese momento ya se

encontraba frente a la bola, lo que haría que realizara movimientos sin sentido y ajenos a cualquier

estrategia.

En un caso ideal en donde no exista la fricción y las ruedas no patinen la posición del robot se puede calcular

de la siguiente manera:

Ilustración 12. Corrección de la posición del robot (Steffen Prüter, 2006, pág. 5).

Redes Neuronales

Page 21: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 19

La idea de la aplicación de las redes neuronales es lograr conseguir una posición lo más exacta posible del

robot en situaciones reales. Para esto el robot utilizando un algoritmo de aprendizaje de los errores debido

al movimiento, lograría calcular con mayor precisión su ubicación en la cancha. Para esto, el algoritmo se

debe ejecutar y se deben almacenar todos los valores en la unidad central debido a que cada robot no

cuenta con la memoria suficiente para dicha tarea.

Ilustración 13. Predicción de la posición del robot (Steffen Prüter, 2006, pág. 5).

En esta figura podemos apreciar la posición del robot en tres situaciones. La primera es “Global” la cual es la

posición del robot en el momento de tomar la imagen, la segunda es “offset” la cual representa la posición

real del robot con base en el cálculo estimado de la posición, y “target” la cual es la posición a la cual tiene

que llegar el robot la cual también es calculada por la unidad central.

Como resultado se obtuvo una ganancia del 50% en la efectividad de los robots y el máximo error obtenido

fue del 8%.

2.2.3 ACERCA DE SIMUROSOT (INTRODUCTION TO ROBOT SOCCER CODING)

Simurosot es una de las categorías de la FIRA en la cual se compite a nivel de simulación, se hizo uso de la

aplicación Robot Soccer v1.5a, la cual esta implementada en macromedia director y donde cada equipo

define la estrategia que usará a través de dos lenguajes de programación Lingo y C++.

Debido a los conocimientos adquiridos a lo largo de la carrera la implementación de la estrategia se

desarrollo en el lenguaje de programación C++.

Para desarrollar la estrategia en C++ se debe tener en cuenta lo siguiente:

Page 22: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 20

Strategy.h: Este archivo es un header pre compilado, se incluye en las declaraciones de Strategy.cpp, debe estar en la misma carpeta del cpp.

stdAfx.h: En este archivo se definen los archivos estándar del sistema, y a lo igual que el anterior se debe incluir al cpp.

Strategy.cpp: Este es el archivo más importante puesto que es donde se define como tal la estrategia. Se compila como un archivo ".dll" puesto que este es el que ejecuta el simulador. El método donde se define la estrategia es llamado 60 veces por segundo cuando se ejecuta desde el simulador.

La estructura de estrategia genérica es la siguiente: (Introduction To Robot Soccer Coding)

#include "stdafx.h"

#include "Strategy.h"

BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call,LPVOID lpReserved){

switch (ul_reason_for_call){

case DLL_PROCESS_ATTACH:

case DLL_THREAD_ATTACH:

case DLL_THREAD_DETACH:

case DLL_PROCESS_DETACH: break;

}

return TRUE;

}

extern "C" STRATEGY_API void Create ( Environment *env ){

// allocate user data and assign to env->userData

// eg. env->userData = ( void * ) new MyVariables ();

}

extern "C" STRATEGY_API void Destroy ( Environment *env ){

// free any user data created in Create ( Environment * )

// eg. if ( env->userData != NULL ) delete ( MyVariables * ) env->userData;

}

Page 23: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 21

extern "C" STRATEGY_API void Strategy ( Environment *env ){

//Sus estrategias van aca

}

Es importante saber que a través de la variable Enviroment *env, se puede acceder a los elementos del

juego:

Posición del balón en x: env ->currentBall.pos.x;

Posición del balón en y: env ->currentBall.pos.y;

Coordenada superior o inferior y de la cancha: env ->fieldBounds.[top/bottom];

Devuelve los límites izquierdo o derecho en x: env ->fieldBounds.[left/right];

Se usa para saber el área de gol: env ->goalBounds.[top/bottom/left/right];

Estado del juego: env -> gameState;

Quíen tiene la bola?, define si esta en posesión del azul, amarillo o nadie: env->whosball;

Coordenada x del robot 0 de mi equipo: &env->home[0]->pos.x

Coordenada y del robot 0 del otro equipo: &env->opponent[0]->pos.y Se pueden obtener más variables del mismo estilo para obtener propiedades de los robots de ambos equipos:

o &env->home[0]->rotation o &env->home[0]->velocityLeft o &env->home[0]->velocityRight

Es útil saber que se puede usar Vector3d para guardar la posición de un robot.

Vector3d vector = &env->home[0].pos

Luego se puede saber las posición x o y del robot con "vector.x" o "vector.y".

La velocidad es una de las funciones más importantes que se va a usar puesto que es la que determina el

movimiento del robot.

void Velocity ( Robot *robot, int vl, int vr ){

robot->velocityLeft = vl; robot->velocityRight = vr;

}

Se tiene que el rango para vl y vr es de -125 < V < 125, donde vl es la velocidad de la rueda izquierda y vr la

velocidad de la rueda derecha.

Un ejemplo de uso sería:

Velocity ( &env->home[1] , 50, -20)

Page 24: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 22

En este caso se está cambiando la velocidad del robot 1, 50 para la rueda izquierda y -20 para la rueda

derecha.

Los robots según su posición inicial son los siguientes:

&env->home [0] -- Arquero

&env->home [1] -- Defensa Izquierdo

&env->home [2] -- Defensa Derecho

&env->home [3] -- Delantero Izquierdo

&env->home [4] -- Delantero Derecho

Las dimensiones en el simulador de Simurosot están dadas de acuerdo a la siguiente figura, donde el origen

se encuentra en la parte inferior izquierda y el rango de validez de los ejes están definidos por unas

constantes:

Ilustración 14. Dimensiones Cancha Simulador

2.3 IDENTIFICACIÓN DEL PROBLEMA Y DE SU IMPORTANCIA

El fútbol Robótico ha venido ganando importancia y obteniendo reconocimiento por distintas ciencias, como

la ingeniera y la robótica. El propósito del proyecto es dar un primer paso para que la Universidad de los

Andes participe a nivel nacional e internacional en este campo. Para esto es necesario empezar a investigar,

estudiar y realizar desarrollos en fútbol robótico.

Page 25: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 23

El problema a resolver es lograr diseñar e implementar una serie de jugadas básicas para que el equipo de la

universidad mejore su funcionamiento y pueda llegar a ser competitivo. Con este primer paso, lo que se

espera es que futuros proyectos sigan trabajando sobre esta base y que se vallan perfeccionando cada vez

más las jugadas propuestas para lograr que la Universidad de los Andes pueda competir en torneos

nacionales e internacionales y se distinga también en este ámbito como lo hace actualmente en muchos

otros.

Page 26: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 24

3 DISEÑO Y ESPECIFICACIONES

3.1 DEFINICIÓN DEL PROBLEMA

El Fútbol Robótico es un campo que ha venido creciendo exponencialmente en los últimos años alrededor

del mundo. Anualmente se realizan campeonatos de esta disciplina en distintas categorías en donde

participan muchas universidades de todo el mundo.

Desafortunadamente en Colombia este tema no ha tenido mucha fuerza lo que hace que no haya mucho

conocimiento del mismo. Por esta razón existen bastantes incertidumbres acerca de esta disciplina.

En la actualidad, el equipo de Fútbol Robótico de la Universidad de los Andes cuenta con la infraestructura

necesaria para competir en liga Mirosot de FIRA pero no tiene una estrategia lo suficientemente buena que

le permita ser competitivo.

El funcionamiento de los equipos (Cámara, computador, etc.) no siempre es el adecuado, en este momento

la cámara no distingue bien los colores, lo que hace que confunda jugadores entre si y jugadores con la

pelota, llevando a dar mal las ordenes lo que implica que los robots se estrellen entre si y no ejecuten la

estrategia tal y como está planeada.

La incertidumbre de la disciplina en la que se va a trabajar, el reto de diseñar y desarrollar una estrategia lo

suficientemente buena para que el equipo sea competitivo, que los equipos de la plataforma experimental

funcionen adecuadamente en todo momento, hacen un problema el cual requiere de mucha dedicación y

compromiso.

Debido al estado actual de la plataforma, se tienen varias problemáticas antes mencionadas, por lo cual para

este proyecto se tomo como reto el trabajar con el fin de realizar de una estrategia que pueda llegar a ser

competitiva en competencias oficiales.

3.2 SOLUCIÓN DEL PROBLEMA

Una vez definido el problema, el paso a seguir es proponer e implementar soluciones. Como primera

medida, para resolver la parte de incertidumbre, se investigó a fondo la FIRA especialmente la categoría

Mirosot la cual es del interés del proyecto. Una vez se entendió el funcionamiento, reglas, tipos de

competencias etc. De dicha categoría, se estudió en detalle la estrategia con la cual cuenta actualmente el

equipo de la Universidad. Paralelo a este paso se fue investigando sobre los antecedentes, trabajos

realizados, estrategias propuestas etc. Así mismo se realizó una investigación sobre el estado actual de este

campo a nivel mundial.

Page 27: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 25

Una vez realizada toda la investigación necesaria y habiendo obtenido la información requerida, se procedió

a diseñar e implementar jugadas básicas tanto individuales como cooperativas. Para esto fue necesario en

primera medida la elaboración de distintos movimientos básicos para que los robots puedan tener

comportamientos cooperativos. Una vez se desarrollaron y se probaron dichos movimientos por separado,

se procedió a integrarlos para lograr jugadas cooperativas entre los robots.

Con cada una de las jugadas básicas funcionando por aparte, el paso a seguir fue integrarlas, para esto se

ordenaron y se clasificaron para determinar con facilidad en qué momento del juego se ejecutaba cada una.

Se definieron dos situaciones básicas de juego, defensiva y ofensiva, dependiendo de la situación se

ejecutaba la jugada que mejor se ajustará al momento del juego. Así mismo cada situación consta de sub

situaciones, lo cual facilitaba la elección de la jugada, por ejemplo si la situación es defensiva y la bola se

encuentra en una determinada posición los robots actúan de la mejor manera posible para recuperar la

posesión del balón. El hecho que el algoritmo se ejecute varias veces por segundo y la forma como está

diseñado hacen que en todo momento se esté evaluando la mejor jugada posible. La primera opción será

rematar al arco en caso de tener línea libre y como segunda medida se realizará un pase a un compañero

que se encuentre libre. Todo robot evalúa esto lo que hace que siempre se realice la mejor jugada posible.

Adicional a esto el robot receptor de un pase entra a participar en la jugada una vez se haya realizado el

pase con éxito, es decir que el pasador haya impactado la bola hacia la posición deseada, esto garantiza que

en el caso que el robot pasador falle el receptor no se quede esperando el pase.

Para poder realizar una buena cantidad de pruebas de pruebas, por facilidad y por rapidez, se trabajó en la

plataforma de simulación de que ofrece la FIRA, dicha plataforma se utiliza en la liga Simurosot.

3.3 ESTADO ACTUAL DE LA PLATAFORMA DE EXPERIMENTACIÓN

Antes de elaborar nuestra propuesta, examinamos en qué estado se encontraba el sistema.

Este sistema de juego de futbol robótico está compuesto por:

Dispositivo de captura de video que funciona con el software Matrox Intellicam 2.0 el cual brinda

muchas opciones a través de los DCF (Digitizer Configuration Format) donde se pueden especificar

muchas propiedades según si se va a usar la cámara para capturar imágenes o video. El dispositivo

está conectado con la unidad central a través de una tarjeta Matrox Meteor 2.

Una unidad central en este caso un computador giron2 que a través de Meteor el software

encargado de ejecutar la estrategia del juego y de conectarse con la cámara para así poder tomar

decisiones de juego según las imágenes de video capturadas.

Cinco robots cada uno con un patrón de colores en su parte superior para poder ser diferenciados a

través de la cámara y una pelota de golf color naranja.

Una unidad de comunicación RF (Radio Frecuencia) entre giron2 y los 5 robots, donde cada robot

igualmente tiene su módulo de comunicación.

Page 28: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 26

Ilustración 15. Componentes Plataforma Experimental.

Ilustración 16. Campo de Juego Universidad de los Andes

Page 29: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 27

Ilustración 17. Cámara Matrox Meteor

Se Realizaron diversas pruebas para poder determinar el estado actual y se encontraron diversas

dificultades iníciales.

Se encontró que el computador giron2 estaba en malas condiciones tanto de hardware como en

organización en el software instalado, por lo cual fue formateado, con lo cual se logró un mejor desempeño

de la máquina.

La principal problemática está asociada con la detección de colores a través de la cámara, puesto que tiende

a confundir determinados colores lo cual hace imposible ejecutar como se quisiera la estrategia planeada.

Para esto se aumentó un poco el brillo de la imagen capturada y se consiguió que Meteor pudiera identificar

a los 5 jugadores y a al balón sin problemas. Pero al iniciarse el juego, debido al movimiento la aplicación

volvía a confundir los colores, confundiendo nuevamente a los robots entre sí y a los robots con la bola.

Esta dificultad en la detección de colores está dada debido a la forma en que se está capturando la

información de la imagen que da la cámara. En la cual dado un pixel trata de buscar pixeles similares dentro

de toda la imagen, razón por la cual se dan situaciones en las que llega a confundir el color naranja con el

rosado.

Meteor usa un DCF predeterminado de Intellicam al momento en que hace la conexión este documento de

configuración esta determinado bajo el tipo de grabación que se quiere, en este caso de tipo NTSC

(Ntsc.dcf).

Page 30: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 28

4 DESARROLLO DEL DISEÑO

Para dar solución al problema propuesto, se diseñó una estrategia la cual se ejecuta dependiendo de la

situación de juego. Se definieron dos situaciones de juego principalmente, cuando el adversario tiene

posesión de la bola y cuando no la tiene. En el primer caso se ejecuta una estrategia defensiva la cual

consiste en ubicar a los jugadores por zonas y cada robot tratará de interceptar el balón para recuperar la

posesión del mismo, esto se puede evidenciar con mayor facilidad en la siguiente imagen.

Ilustración 18. Equipo azul en Posición Defensiva.

El criterio que se tuvo en cuenta para determinar si el oponente tiene la bola es que ésta se encuentre en el

área de dominio de cualquier robot del equipo adversario, una vez la bola no se encuentre en ninguna de

estas zonas se asume que se puede atacar y se toma una actitud ofensiva. La posición de ataque consiste

en ubicar a los robots de una forma más ofensiva, para esto uno de los defensas se ubica en la mitad de

cancha y participa en la jugada ofensiva, ya sea realizando juego directo o disparo 1-2-3, mientras que el

otro defensor se ubica en el centro sobre la línea del área para contrarrestar algún ataque de contra golpe

como se muestra en la siguiente imagen.

Page 31: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 29

Ilustración 19. Equipo Azul en Posición Ofensiva.

El juego directo es la primera jugada que se realiza cuando se tiene una posición ofensiva, consiste

básicamente en que un jugador si no tiene línea libre al arco busca un compañero libre y le realiza un pase,

el robot que recibe si tiene línea libre al arco remata en busca de anotar un gol. El disparo 1-2-3 maneja la

misma lógica de juego directo pero esta vez involucra a tres robots y el tercero es quien remata al arco, la

estrategia implementada puede involucrar una cantidad n de pases entre los robots que se encuentra

atacando, esto debido a que todo el tiempo se encuentran buscando si tiene línea libre con el arco y en caso

de no tener realizarán un pase seguro a uno de sus compañeros, esto garantiza que al momento de realizar

un disparo al arco la probabilidad de anotar un gol sea mucho mayor si no hay obstáculos en la trayectoria

que seguirá la bola.

Básicamente cuando se está en una posición defensiva se usan las siguientes jugadas:

Position, movimiento que ya venía implementada en la estrategia ejemplo, con la cual se ubica a los

robots en una posición deseada.

Robot más cercano al balón, con este concepto se determina cual de los robots tiene más

posibilidades de llegar al balón más rápidamente.

Línea libre, con este concepto establece si el robot más cercano al balón no tiene oponentes que

obstaculicen su camino hacia su objetivo en este caso el balón.

Intercepción, este movimiento es fundamental para defender puesto que este es el que va a

permitir recuperar el balón, para poder cambiar a una posición ofensiva.

Cuando se está en posición ofensiva se usan las siguientes jugadas:

Position, movimiento que ya venía implementada en la estrategia ejemplo, con la cual se ubica a los

robots en una posición deseada.

Robot más cercano al balón, con este concepto se determina cual de los robots tiene más

posibilidades de llegar al balón más rápidamente.

Page 32: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 30

Línea libre, con este concepto establece si el robot más cercano al balón no tiene oponentes que

obstaculicen su camino hacia su objetivo, que puede ser el arco u otro compañero.

Rotar, este movimiento se usa cuando se quiere patear el balón lo que va a permitir orientarse en

dirección al objetivo.

Patear el balón, en la parte ofensiva este movimiento es de crucial importancia puesto que a través

de este se van a poder a hacer pases o tiros al arco.

Juego Directo, la parte ofensiva del equipo funciona a través de esta jugada que usa varios de los

movimientos anteriores especialmente patear y línea libre.

Todas estas jugadas, movimientos y conceptos se explicarán en detalle en la sección 5 la cual explica la

Implementación de la solución.

4.1 RECOLECCIÓN DE INFORMACIÓN

Para desarrollar el diseño, primero se realizó una investigación exhaustiva sobre la FIRA en especialmente

sobre la categoría Mirosot, así mismo se investigó sobre trabajos relacionados los cuales están descritos en

la sección 2.2 de antecedentes. Estos trabajos fueron la base para crear la estrategia y poder darle solución

al problema, se tomaron las jugadas y conceptos más importantes y útiles para desarrollar el diseño de la

solución. Estas jugadas claves fueron interceptar (Ilya Levner, 2006), predicción de la posición de la bola y de

un robot, el concepto de línea libre y la base de juego directo y disparo 1-2-3 (Ryota Nakanishi, 2006). Todos

esto trabajos se encuentran explicados con mayor detalle en la sección 2.2 Antecedentes.

4.2 ALTERNATIVAS DE DISEÑO

En un principio se tenían muchas alternativas de diseño las cuales consistían en cambiar la estrategia de

juego dependiendo de factores tales el tiempo restante de juego, el marcador etc. Así mismo también se

pensó en ubicar a todos los robots en posición defensiva cuando el adversario tuviese la posesión del balón,

la idea era que intentaran bloquear los remates al arco para evitar recibir goles. Junto con esta estrategia

también se pensó en jugar con un solo delantero y que los demás robots se dedicarán a defender y una vez

recuperado el balón buscarán la manera de pasárselo al delantero. El diseño finalmente implementado

cumple con estas ideas a excepción de la primera de una manera mucho más eficiente, los robots juegan en

equipo, de manera colectiva, realizándose pases y armando jugadas de ataque conjuntamente. El tiempo y

el marcador se consideraron que no eran factores fundamentales para definir situaciones de juego, la

estrategia implementada tomará acciones defensivas cuando sea necesaria sin tener en cuenta dichos

factores.

Page 33: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 31

5 IMPLEMENTACION

Para implementar la solución del problema y poder tener una estrategia para un equipo de fútbol robótico,

primero se tomaron en cuenta y se implementaron unas jugadas y movimientos básicos los cuales eran

fundamentales para el funcionamiento correcto de la estrategia y de las jugadas. Dichas jugadas y

movimientos se explican en detalle a continuación. La estrategia define los criterios que deciden la mejor

jugada de acuerdo a la situación de juego para el equipo.

5.1 ALGORITMO DE SELECCIÓN DE SITUACIÓN

Cada vez que se ejecuta la estrategia lo primero que hay que definir es si el equipo está atacando o está

defendiendo, por lo cual a continuación se muestra el algoritmo que determina si se toma una posición

ofensiva o defensiva:

//Se verifica si el balón está en posesión de algún oponente

bool is = false; for(int i=0;i<5;i++){

is = isInArea( &env->opponent [i],&env->home [2],env,0); if(is) break; } //Si el balón no está cerca de las bandas. if(!nearBounds(env)){

if(is){ //No se tiene la posesión del balón por lo cual se toma una posición defensiva defend(env); // Ubica a los robots en zonas para tratar de recuperar la posesión del balón.

} else{ //si se tiene la posesión del balón por lo cual se toma una posición ofensiva attack(env); // Ubica a los robots de manera de tener una posición ofensiva. } }

Cuando el balón se encuentra muy pegado a las bandas, se tienen problemas cuando se quiere interceptar el

balón en el caso en el cual se quieren evitar autogoles, puesto que el robot quiere rodear la posición del

balón. Para este se decidió implementar la función nearBounds, la cual devuelve verdadero si esta cerca a

las bandas, en caso de que este cerca, dentro de la misma función se ordena al robot que valla directamente

a interceptar y no que rodee la posición del balón.

Así mismo es necesario observar cómo funciona el algoritmo de ataque, el cúal es fundamental para que el

equipo tenga una buena y efectiva actitud ofensiva.

// Si el robot más cercano al balón es el número 1

if(env->robotNearBall==1){

Page 34: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 32

Position(&env->home [2],77.2,41.7);

Position(&env->home [3],28.8,18.6);

Position(&env->home [4],28.8,64.2);

//Si tiene línea libre con el arco, dispare.

if(freeLine(&env->home[1],env,4,42.15,SIDEROBOT)){

kickBall(&env->home[1],4,42.15,env);

}

//Si no hace un pase a un compañero.

else{

kickBall(&env->home [1],28.8,22.6,env);

}

}

// Si el robot más cercano al balón es el número 2

else if(env->robotNearBall==2){

Position(&env->home [1],77.2,41.7);

Position(&env->home [3],28.8,18.6);

Position(&env->home [4],28.8,64.2);

//Si tiene línea libre con el arco, dispare.

if(freeLine(&env->home[2],env,4,42.15,SIDEROBOT)){

kickBall(&env->home[2],4,42.15,env);

}

//Si no hace un pase a un compañero. else{

kickBall(&env->home [2],28.8,60.2,env);

}

}

// Si el robot más cercano al balón es el número 3

else if(env->robotNearBall==3){

Position(&env->home [1],46.4,41.7);

Position(&env->home [2],77.2,41.7);

Position(&env->home [4],28.8,64.2);

//Si tiene línea libre con el arco, dispare.

if(freeLine(&env->home[3],env,4,42.15,SIDEROBOT)){

kickBall(&env->home[3],4,42.15,env);

}

//Si no hace un pase a un compañero.

else{

kickBall(&env->home [3],28.8,60.2,env);

}

}

// Si el robot más cercano al balón es el número 4

else{

Position(&env->home [1],46.4,41.7);

Position(&env->home [2],77.2,41.7);

Position(&env->home [3],28.8,18.6);

//Si tiene línea libre con el arco, dispare.

if(freeLine(&env->home[4],env,4,42.15,SIDEROBOT)){

kickBall(&env->home[4],4,42.15,env);

}

//Si no hace un pase a un compañero.

else{

kickBall(&env->home [4],28.8,22.6,env);

}

}

Page 35: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 33

5.2 JUGADAS, CONCEPTOS Y MOVIMIENTOS BÁSICOS

A continuación se presentan las jugadas y movimientos básicos que dan la posibilidad de plantear una

estrategia cooperativa.

5.2.1 LÍNEA LIBRE

La línea libre consiste en determinar si existe un camino en línea recta entre un jugador y un objetivo, siendo

este otro jugador, la bola o el arco. El objetivo es poder determinar si el jugador o la bola pueden dirigirse

sin riesgo de colisionar con algún obstáculo hacia un objetivo.

Jugador-Bola

Ilustración 20. Línea libre entre el jugador y la bola.

En este caso la línea libre evalúa si un jugador no tiene obstáculos para dirigirse en línea recta hacia

la bola. Es útil prácticamente en todo momento en una situación de juego ya que el jugador tiene

que llegar a la posición de la bola ya sea para interceptarla, para rematar al arco o para hacer un

pase y esto lo debe hacer sin colisionar con otro jugador.

Page 36: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 34

Jugador-Jugador

Ilustración 21. Línea libre entre el jugador y otro.

Este caso es útil para realizar pases entre jugadores del mismo equipo, la línea libre determina si

hay algún obstáculo entre un jugador y otro en una trayectoria recta lo cual determinará si es

seguro realizar un pase de un jugador sin que la bola colisione con algún obstáculo.

Jugador-Arco

Ilustración 22. Línea libre entre el jugador y el arco.

Este es el último caso que se considera en línea libre, es fundamental para que un jugador dispare

al arco de manera segura. Consiste en determinar si hay otro jugador en la trayectoria que seguiría

la bola hacia el arco, en el caso que no haya un robot en dicha trayectoria se puede pegarle al arco

teniendo la certeza que la bola no va a colisionar con algún obstáculo. En el otro caso el jugador no

disparará al arco hasta el momento en que tenga línea libre con el mismo.

Page 37: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 35

5.2.2 INTERCEPTAR

Este movimiento es fundamental para la ejecución de las jugadas, la idea es que el jugador anticipe la bola

interponiéndose en la trayectoria que ésta esté siguiendo. Con esto el robot podrá recuperar la posesión del

balón, recibir un pase de manera segura etc. En este movimiento se consideran dos posibles situaciones, una

es en la que el robot esta delante de la bola y la otra cuando esta por detrás de la misma. En el primer caso

el robot esta de frente a su propio arco por lo que si intercepta la bola de frente puede que beneficie al

equipo contrario ya que llevaría la bola a un posición más cercana de su propio arco corriendo el riesgo de

cometer autogol. Por esta razón el robot debe llegarle detrás a la bola, con esto el jugador impacta la bola

de una manera segura alejando la bola se su arco y acerándola al arco contrario.

5.2.3 ZONAS

Según la situación de juego los robots se ubicaran y se harán responsables de un sector específico del área

de juego. Estas varían dependiendo si el equipo se encuentra con una actitud ofensiva o defensiva.

5.2.4 ÁREA DE DOMINIO

Para reducir la posibilidad de perder la posesión de la bola debido a que un robot del otro equipo intercepte

un pase o simplemente se haga a la posesión de la misma, se define un área de dominio de cada uno de los

robots oponentes. El área de dominio de cada robot es una elipse en la cual el robot se encuentra en el

centro de la misma. Se decidió utilizar elipses debido a que es mucho más fácil para un robot alcanzar una

bola que este delante de o detrás a alcanzarla si se encuentra hacia un lado. Esto debido a que el robot

puede moverse hacia adelante y hacia atrás con la misma facilidad, mientras que para alcanzar la bola que

se encuentre al lado, tendrá que girar haciendo que tome más tiempo en llegar a la posición de la bola. Con

el área de dominio definida, en el momento de realizar un pase se evalúa si la trayectoria que seguirá la bola

se intercepta con alguna de esta elipses, en tal caso no se realiza el pase.

5.2.5 PATEAR BALÓN

Este movimiento es fundamental a la hora de planear una estrategia cooperativa, en la cual dado un punto

objetivo se quiere que el robot mande el balón al objetivo. El patear el balón permite realizar pases a otros

robots o disparos al arco, lo cual es habitual en un partido real de fútbol y lo cual establece un

comportamiento cooperativo con el hecho de hacer que interactúe más de un robot en la jugada.

Page 38: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 36

5.2.6 ROTAR ROBOT

Esta jugada consiste en rotar el robot dado un punto objetivo, se uso principalmente como movimiento

básico a la hora de patear o hacer un pase.

Debido a que el robot es diferencial se tuvo en cuenta que el robot se podía mover con igual facilidad si su

objetivo esta atrás o delante, por lo anterior en el caso en que el balón está adelante del balón pero está

mirando en sentido contrario no hay necesidad de que cambie su orientación sino que se aplica velocidad

negativa.

Ilustración 23. Movimiento Frontal y de reversa.

5.2.7 JUEGO DIRECTO

La idea fundamental de juego directo es buscar y aprovechar los espacios libres del campo de juego. En el

momento en que se tiene la posesión del balón un robot del equipo que no tenga la bola se va a dirigir a un

espacio vacío en donde pueda tener línea libre con el arco para rematar o con otro jugador del mismo

equipo para realizar un pase. Una vez el jugador se encuentre haciendo el movimiento, el compañero que

tenga la bola calcula la posición a la cual llegará el robot al espacio libre y le realiza el pase después de

verificar que hay línea libre entre él y la posición a la cual llegará el balón.

Page 39: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 37

Ilustración 24. Juego Directo (Ryota Nakanishi, 2006, pág. 3).

5.2.8 DISPARO 1-2-3

Es el movimiento más importante de la estrategia, este movimiento es el ideal el cual está compuesto por

todos los movimientos y jugadas mencionadas anteriormente. En el disparo 1-2-3 participan 3 robots del

equipo, el primero de ellos evalúa si tiene línea libre hacia el arco para intentar hacer un disparo, en caso de

no tener línea libre le pasa el balón a un compañero que tenga opción de disparar al arco o de realizarle un

pase a otro robot que si tenga línea libre para disparar. El segundo robot dependiendo de la situación,

rematara o le realizará un pase al tercer jugador que si tenga opción de disparar. Esta jugada se va estar

ejecutando mientras se tenga la posesión del balón, se ejecutará completamente cuando se cumplan todas

las condiciones en donde se espera que la jugada termine en un gol a favor.

Ilustración 25. Disparo 1-2-3 (Ryota Nakanishi, 2006, pág. 4).

Page 40: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 38

5.3 DETALLE DE LAS JUGADAS, CONCEPTOS Y MOVIMIENTOS BÁSICOS

En esta sección se describe más a fondo como se llegó y se planteó a cada una de las jugadas descritas

anteriormente.

5.3.1 LÍNEA LIBRE

Esta es una jugada básica permite saber si un jugador tiene un obstáculo con respecto a una posición dada o

un objetivo. Para la implementación de ésta, se tiene como entrada, las coordenadas de la posición del

robot, las del objetivo y además las de los robots oponentes, que es lo que consideramos como posibles

obstáculos.

Al momento de implementar se encontraron dos posibles soluciones para esta jugada:

1. La primera es calcular la pendiente y la distancia del segmento que comienza en el punto de

ubicación del robot y termina en el del objetivo (R-O), y además también calcular lo mismo entre el

robot y un robot oponente (R-RO). Una vez se tienen estos valores se hace un comparación entre

el tamaño de los segmentos y la pendiente de estos. Si la pendiente es similar y además el

segmento R-RO es más pequeño que R-O, entonces se considera que no hay línea libre entre el

robot y su objetivo.

Podemos ver en las siguientes figuras unos ejemplos los posibles casos.

Ilustración 26. Caso1 intersección de rectas, método pendientes.

El robot tiene línea libre con su objetivo.

Page 41: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 39

Ilustración 27. Caso2 intersección de rectas, método pendientes.

El robot no tiene línea libre con su objetivo puesto que los dos segmentos tienen

pendientes similares y además R-O es más largo que R-RO.

Ilustración 28. Caso3 intersección de rectas, método pendientes.

El robot tiene línea libre puesto que a pesar de que sean pendientes similares, R-RO es

mayor que R-O.

2. La segunda es calcular la intersección entre dos rectas a través de las ecuaciones paramétricas de

las líneas.

Page 42: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 40

Ilustración 29. Intersección de rectas paramétricas.

Se decidió usar la segunda opción dado que la primera no es muy precisa, puesto que se debe definir un

rango donde las pendientes se considerarían similares, y principalmente falla cuando las coordenadas x de

los segmentos son iguales (líneas verticales).

Con la segunda opción se puede lograr encontrar una solución mucho más completa, puesto que se puede

definir por cada robot oponente, los cuatro segmentos que conformaban su forma. Y una vez calculando el

segmento entre el robot y su objetivo se puede determinar si ese segmento cruza algunos de los cuatro

segmentos definidos por cada robot.

Ilustración 30. Intersección de rectas paramétricas.

5.3.2 INTERCEPCIÓN

Para el caso de la propuesta se va considerar básica la acción de poder interceptar el balón. A través de este

movimiento se busca lograr una buena defensa, también es muy importante en la parte ofensiva de la

estrategia puesto que a la hora de recibir o realizar un pase o de pegarle el balón lo primero que debe hacer

el robot es interceptar la pelota.

Page 43: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 41

Para la elaboración de este movimiento se definió un seudo-código antes de la implementación:

1. Rotar el robot que va a interceptar en la dirección de la posición predicha del balón. El robot que

va a interceptar va a ser el que esté más cerca al balón.

Ilustración 31. Rotación al punto del balón.

2. Si el robot se encuentra en la zona que esta atrás de la línea vertical que pasa por el balón,

entonces debe ir directamente hacía la posición del balón predicha.

Ilustración 32. Intercepción, primer caso

Para este caso es de vital importancia la forma en que se planteo la forma de anticipar la

posición del balón:

Predicción de la posición

Lo primero que se tuvo en cuenta fue lo nombrado en el apartado de antecedentes en la

sección “Acerca de Simurosot”, en la cual se dijo que el método en cual se define la

estrategia es llamado aproximadamente 60 veces por segundo. Al saber el dato anterior y

además que la variable Enviroment del simulador ofrece la oportunidad de obtener la

Page 44: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 42

posición del balón en el momento de llamar al método, se planteó una forma de predecir

la posición del balón, guardando en una estructura de datos las posiciones del balón en

cada ejecución, y a través de un contador se decide con base a que dato de una

determinada ejecución se va a realizar la predicción. La base de la predicción es sencilla

fue calcular el cambio en la posición y con respecto a eso esperar que el balón se sigua

moviendo de forma similar como se ve en la figura.

Ilustración 33. Predicción de la posición del balón.

3. Si no, quiere decir que el robot estaba en la zona delante de la línea del balón, caso en el cual se va

a aplicar la cinemática de robots diferenciales o no holonómico con el fin de evitar autogoles,

como se ve en la figura.

Ilustración 34. Intercepción, Segundo caso.

Para poder plantear el movimiento alrededor del balón se tuvo en cuenta la cinemática no

holonómica y además principios básicos de geometría analítica.

Page 45: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 43

Dado que los robots que participan en la categoría de Mirosot, y además los del simulador

de Simurosot son diferenciales, tienen unas características de movimiento y locomoción

ya predefinidas y estudiadas. Como se puede ver en la siguiente imagen está ilustrado el

Centro Instantáneo de Rotación (CIR) o también se le suelen llamar Centro instantáneo de

Curvatura, el cual hace referencia a el punto de intersección de los ejes de las ruedas.

Ilustración 35. Centro Instantáneo de Rotación.

Para poder entender mejor el CIR y la cinemática diferencial podemos observar el

siguiente Gráfico. Donde cada robot tiene una velocidad independiente en cada rueda (Vl

y Vr), por lo cual siempre se genera un circulo dado por el centro instantáneo de rotación.

Ilustración 36. Cinemática No Holonómica.

Teniendo clara la forma en que se definía el movimiento de los robots, el siguiente paso

fue determinar cómo lograr que girara alrededor de la pelota para evitar el peligro en el

arco local. Dado que en el curso de Robótica se vio un poco sobre el movimiento

cinemático de robots no Holonómicos, el punto de partida fue el planteamiento realizado

Page 46: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 44

por Dubins acerca de “Caminos Geométricos de menor Longitud”. En la siguiente imagen

esta lo planteado por Dubins para llegar de un punto q0 a qf, para el cual existen cuatro

formas distintas de llegar dado el CIR.

Ilustración 37. Caminos de Dubins.

A partir de lo anterior la propuesta para resolver la problemática fue la siguiente:

Dada la posición del robot hallar los círculos dados por el CIR y el ángulo de dirección del

robot. Plantear estos mismos círculos en la posición Objetivo, en este caso la pelota.

Ilustración 38. Circulos generados por CIR.

Teniendo definidos los círculos la problemática se centra en hallar las rectas tangentes

entre los cuatro círculos, para poder calcular los puntos en los cuales el robot puede pasar

de un círculo al otro. Para cada dos circunferencias se tienen cuatro rectas tangentes en

común como se puede ver en la siguiente figura.

Page 47: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 45

Ilustración 39. Tangentes comunes en círculos de igual radio.

Las dos rectas rojas son las tangentes exteriores, mientras que las moradas son las

tangentes interiores. Cabe aclarar que para este problema los dos círculos tienen el

mismo radio. El circulo verde esta dado por el punto medio del segmento que unos los

dos centros de los círculos (C1-C2) que está en color naranja, y los puntos donde se

interseca con el C1 son los puntos por donde pasan las tangentes interiores.

Al analizar el problema que se quería resolver encontramos que las tangentes que nos

interesaban eran solo las dos interiores.

Para visualizar más claramente el problema y sus distintas posibilidades se hizo uso de

una herramienta llamada Cabri II plus (cabrilog), la cual sirve para dibujar geometrías. Las

siguientes imágenes fueron planteadas a través de la herramienta mencionada.

En estas imágenes el punto R describe la posición del robot y el punto O el del balón u

objetivo. Para este ejemplo los vectores dirección de R y de O están sobre la misma recta

pero en sentido contrario. Se pueden apreciar claramente los círculos en café que se

intersecan con los verdes y los azules dando los puntos de corte de las rectas tangenciales

internas que están en color rojo.

Page 48: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 46

Ilustración 40. tangentes cruzadas ejemplo1.

En este caso se evidencia que lo importante es que el vector de dirección del robot apunte

hacia la posición del objetivo.

Ilustración 41. tangentes cruzadas ejemplo2.

Page 49: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 47

A partir del análisis de las distintas situaciones se estableció que solo dos de las cuatro

rectas tangenciales nos sirven como caminos para solucionar la problemática, así el robot

debe llegar al punto de intersección que esta sobre su círculo y luego ir en línea recta

hasta el círculo del objetivo.

Ilustración 42. tangentes cruzadas ejemplo3.

5.3.3 ÁREA DE DOMINIO

Como se mencionó anteriormente, el área de dominio es fundamental para determinar y definir el un sector

del área de juego que se encuentre dominado por un jugador. Es decir que si la bola se encuentra en esa

región de dominio es muy probable que la posesión de la misma la tenga dicho robot.

Page 50: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 48

Ilustración 43. Área de dominio.

Para esto se definió una elipse definida por la ecuación (x-x1)2/a

2 + (y-y1)

2/b

2 = 1. El valor del semieje mayor

“a” y del semieje menor “b” se definieron como valores constantes 5 y 4 respectivamente, estos fueron

escogidos ya que después de realizar cierto tipo de pruebas eran los valores mejor cumplían con lo que se

estaba esperando del área de dominio.

Ilustración 44. Elipse con focos F y F’.

Esta área de dominio también es fundamental para determinar si a la hora de hacer un pase entre los robots

del equipo es posible que la bola sea interceptada por un adversario, para esto se determinó si la trayectoria

que sigue la bola definida por una ecuación de la forma y=mx+b se intercepta con la elipse.

Page 51: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 49

Ilustración 45. Intercepción de una recta con una elipse.

Para encontrar si hay o no intersección entre el área de dominio definida por una elipse y la trayectoria que

seguiría la bola dada por la ecuación de una recta de la forma y=mx+b, lo que se hizo fue reemplazar la

ecuación de la recta en la ecuación de la elipse (x-x1)2/a

2 + (y-y1)

2/b

2 = 1. Operando algébricamente la

ecuación se llegó a una ecuación de la forma ax2+bx+c=0 la cual tiene dos posibles soluciones calculadas

mediante la cuadrática definida como 𝑥 =−𝑏± 𝑏2−4𝑎𝑐

2𝑎. Una vez obtenidos los valores en x, se reemplazan en

la ecuación de la recta y nos dan los valores en y, con esto se obtienen los puntos exactos de intersección

entre la recta y la elipse en caso que existan. Para simplificar los cálculos de la intersección, lo que se hizo

fue rotar la elipse y la recta dejándolas como si el robot no estuviese rotado, es decir con un ángulo de

rotación de 0 grados. Una vez rotados se traslada la elipse al origen y se mueve la recta su equivalente. Es

decir si la elipse se encuentra centrada en x=8 y=9, los dos puntos de la recta se mueven -8 posiciones en x y

-9 en y. En caso que haya intersección con la elipse centrada en el origen y la recta rotada y traslada su

equivalente, necesariamente va a haber intersección en los puntos donde originalmente se encontraban.

Ilustración 46. Translación de elipse y recta al origen.

Page 52: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 50

En el caso de existir intersección entre la trayectoria de la bola y el área de dominio, el robot no hace el pase

a la posición x,y. Busca otra alternativa de pase en donde no haya intersección y por ende se reduzca la

posibilidad de que un robot adversario intercepte la bola.

5.3.4 ZONAS

Mientras el adversario tenga posesión de la bola los robots se ubicarán en el área de juego por zonas, cada

robot está encargado de una zona específica de la cancha. Esto con el fin de que por lo menos siempre un

robot se encuentre cerca de la ubicación de la bola y tener chances de poder interceptarla.

Ilustración 47. Balón en Zona dos donde hay un robot azul intentando recuperarla.

En este caso el robot ubicado en la zona dos puede llegar rápidamente a la posición de la bola e interceptar

la trayectoria de la misma reduciendo un ataque del equipo contrario.

Ilustración 48. Balón en Zona uno donde hay un robot azul intentando recuperarla.

Page 53: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 51

En este caso la bola se encuentra en la Zona 1 y únicamente el robot en cargado de dicha zona va a tratar de

interceptar el balón, los otros robots se mantienen en sus áreas esperando a que la bola se acerque a su

sector.

Ilustración 49. Balón en Zona tres donde hay un robot azul intentando recuperarla.

Acá también se puede apreciar como los robots mantienen su posición en cada zona y el robot que intenta

interceptar la trayectoria es el que se encuentra en la zona 3.

Ilustración 50. Balón en Zona cuatro donde hay un robot azul intentando recuperarla.

Aquí también se evidencia la ubicación de los robots por zonas, cada robot mantiene la posición de su zona y

espera que la bola ingrese a dicha área para interceptarla.

Page 54: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 52

5.3.5 PEGARLE AL BALÓN

Para poder pegarle al balón se buscó que el robot estuviera alineado con la pelota y el punto objetivo, de

esta forma cuando el robot se encuentre en la posición adecuada se acelera el robot para que le pegue a la

pelota en dirección al objetivo.

Lo primero que se buscó fue determinar la dirección dada por la posición del balón y el punto objetivo, una

vez se obtiene esta dirección se debe determinar en qué posición y distancia se va a ubicar el robot con

respecto al balón en un punto denominado “punto de disparo” como se puede apreciar en la imagen.

Ilustración 51. Patear el balón.

Una vez el robot llegue a la posición de disparo se debe rotar en la dirección que está dada por la recta que

forma el punto objetivo y el balón. Y por último el robot avanza a la posición del balón para pegarle.

Page 55: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 53

Ilustración 52. Rotación a un punto objetivo.

5.4 MOVIMIENTO DEL ARQUERO

El arquero es el único jugador del equipo que no utiliza las jugadas básicas mencionadas anteriormente

como si lo hacen sus compañeros. La función principal que tiene este jugador es impedir que el balón pase la

línea de gol de su arco, esto lo debe realizar adentro del área. Por esta razón se tomó la decisión de que el

arquero no utilizara ninguna de las jugadas básicas y más bien se implementó un movimiento básico y

efectivo para que el arquero pueda cumplir su función. Se fijó una posición en el eje X en donde se ubicará y

no cambiará en ningún momento del juego, así mismo se utiliza la función que predice la posición de la bola

y se utilizó únicamente para conocer la posición en Y del balón. Una vez se obtiene esta posición se ordena

al arquero ubicarse en dicha posición en Y única y exclusivamente si se encuentra dentro del tamaño de la

arco, en el caso que la bola se encuentre más arriba, el arquero se ubicará en la parte más arriba de la arco y

lo mismo hará si la bola se encuentre por debajo del límite del arco, se ubicará en la parte más baja, estos

límites son unas constantes ya definidas. Esto nos asegura que el arquero jamás abandone el área y mucho

menos el arco. Con esto lo que se consiguió fue que el arquero siguiera a lo largo del eje Y del arco al balón

y se interpusiera cuando este fuera directamente a la portería. Para entender un poco mejor el movimiento

del arquero a continuación se presenta el código que define el movimiento del mismo.

void goalKeeper( Robot *robot, Environment *env ){

double right = env->goalBounds.right;

Page 56: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 54

double bottom = env->goalBounds.bottom;

if(env->predictedBall.pos.y > right){

Position(robot,88.6,right);

}

else if(env->predictedBall.pos.y < bottom){

Position(robot,88.6,bottom);

}

else if(env->predictedBall.pos.y < right && env>predictedBall.pos.y

> bottom){

Position(robot,88.6, env->predictedBall.pos.y);

}

}

Page 57: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 55

6 VALIDACIÓN

6.1 MÉTODOS DE PRUEBA

Se uso la posibilidad de poder generar escenarios estáticos a través del simulador, dado que antes de

ponerlo en ejecución se pueden acomodar los robots tanto oponentes como los del equipo y la pelota en las

posiciones donde se deseen, además se pueden dejar estáticos los robots oponentes. Dada esta posibilidad

era fácil evaluar las jugadas que se iban realizando a medida de que se avanzaba en el desarrollo.

Para poder mostrar más fácilmente las pruebas que se realizaron se utilizó una aplicación llamada Camtasia

Studio 6, con la cual se grabaron las pruebas de cada movimiento y jugada. Los videos se encuentran anexos

a este proyecto.

Por cada prueba se realizaron quince ejecuciones.

6.2 VALIDACIÓN DE RESULTADOS

A continuación se explicara en que consistieron los escenarios estáticos de las pruebas realizadas, esto con

el fin de poder entender más fácilmente los videos anexos.

6.2.1 VALIDACIÓN DE LÍNEA LIBRE

Se pueden apreciar una de las pruebas realizadas en el simulador con el fin de poner a prueba la

funcionalidad de la jugada.

Se alinearon los robots oponentes, el robot más cercano al balón validaba si existía línea libre entre su

posición y el objetivo. En caso de que no existiera línea libre entonces el robot se quedaba quieto. De lo

contrario el robot va en busca de su objetivo.

Como resultado de esta prueba se obtuvo 100% de efectividad, siempre se determinó satisfactoriamente si

había línea libre con algún objetivo.

Page 58: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 56

Ilustración 53. Prueba de línea libre.

6.2.2 VALIDACIÓN DE INTERCEPTAR

Se probo la intercepción del balón en el caso dos, o sea cuando el balón está detrás de la línea de balón, en

la cual se quiere evitar el envío del balón al arco local, para esto se dejaron estáticos los robots oponentes,

se ordenó al robot más cercano al balón que lo interceptara, y se cambió la posición tanto del robot como

de la pelota, para probar los casos posibles.

Los resultados de las pruebas fueron satisfactorios pero se encontraron dificultades en los casos en el balón

se encontraba en movimiento y además en sentido al arco local, dado que el robot intentaba aplicar el caso

dos de intercepción, el robot al intentar rodear el balón terminaba empujándolo en dirección no deseada.

Se obtuvo el 60% de las veces se logró interceptar correctamente el balón.

Page 59: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 57

Ilustración 54. Prueba Intercepción.

6.2.3 VALIDACIÓN DE ROTAR

Esta prueba consistió en cambiar la posición del balón en posiciones cercanas al robot más cercano a este.

De este modo cuando se iba cambiando aleatoriamente la posición del balón el robot se iba orientando

según la ubicación de su objetivo en este caso la pelota. En los casos en que el balón se ubico detrás del

robot, este no cambio de orientación pues tiene la misma capacidad de alcanzar el balón. Los robots

oponentes se encontraban estáticos y solo reaccionaba el robot más cercano al balón.

Después de esta prueba, se encontraron resultados satisfactorios dado que el robot lograba orientarse en el

sentido del objetivo rápidamente, obteniendo un resultado de 93.3% de éxito en la prueba.

Page 60: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 58

Ilustración 55. Prueba Rotación.

6.2.4 VALIDACIÓN DE PATEAR EL BALÓN

En esta prueba se mantuvo a los robots oponentes estáticos, y solo intervenía el robot más cercano al robot.

Se fijo un punto objetivo donde para el disparo del robot, en este caso fue la esquina inferior del arco

oponente. Se probaron distintas posiciones tanto del robot como de la pelota.

La efectividad fue del 54%, en la mayoría de casos se logró que el balón llegara a la zona de objetivo.

Page 61: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 59

Ilustración 56. Prueba Patear Balón.

6.2.5 VALIDACIÓN DE ÁREAS DE DOMINIO

Para evaluar las áreas de dominio generadas por los oponentes, se evaluó un escenario en el cual si la pelota

estaba dentro una de estas áreas, el robot número tres se ubicaba en el centro de la cancha, de lo contrario

volvía a su posición normal. Para esto se probaba mover los robots oponentes manualmente y la pelota a

posiciones aleatorias.

El resultado de estas pruebas fueron satisfactorias, el 100% de las veces se obtuvieron los resultados

esperados.

Page 62: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 60

Ilustración 57. Prueba Áreas de Dominio1.

Ilustración 58. Prueba Áreas de Dominio2.

6.2.6 VALIDACIÓN DE JUEGO POR ZONAS

En este caso los robots oponentes jugaban con la estrategia hecha en lingo, que está por defecto en el

simulador, se acomodaron los robots por zonas donde el robot más cercano al balón intentaba interceptar el

balón cuando estuviera cerca a su zona.

Page 63: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 61

Se obtuvo un desempeño defensivo constante, en el cual se evitaba que el equipo contrario lograra generar

peligro en el arco local.

Ilustración 59. Prueba zonas

6.2.7 VALIDACIÓN ESTRATEGIA INTEGRACIÓN DE JUGADAS

Se probó la integración de las jugadas, conceptos y movimientos básicos implementados, jugando contra el

equipo amarillo el cual funcionaba bajo una estrategia que venía predeterminada en la aplicación del

simulador. El resultado de las pruebas fue satisfactorio ya que el juego del equipo azul fue superior en la

mayoría de veces que se probó y se lograba el objetivo de ganar el partido. En el transcurso de los partidos

se observó que las jugadas funcionaron tal y como lo hacían de forma individual, la integración de esta fue

un éxito el cual se debe a que se definió muy bien el momento de ejecutar una determinada jugada que

como se mencionó anteriormente depende única y exclusivamente de la situación de juego.

Para realizar la validación de esta integración de jugadas se realizaron análisis de 30 segundos de partido en

donde al finalizar estos 30 segundos se generó un archivo de texto el cuál muestra el número de veces que

se ejecuto cada jugada, a continuación se ven los resultados obtenidos:

Cantidad de Partidos Jugados 30

Porcentaje de Victorias 63.3% Tiempo por partido 30 sg

Page 64: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 62

Cantidad promedio de veces que uso una jugada en 30 segundos

Ofensivo Defensivo

Línea Libre 671 ● Patear Balón 216 ● Robot más cercano al balón 1228 ● ● Intercepción 906 ● ● Juego Directo 65 ● Disparo 1-2-3 92 ● Área Dominio 5870 ● ●

Tabla 1, Resultados de integración de jugadas.

Como se puede observar en la tabla anterior, intercepción, robot más cercano y área de dominio son las

jugadas que se aplican en las dos situaciones de juego, tanto ofensivas como defensivas luego son las que

más se ejecutan a lo largo del partido, esto es debido a que son las únicas que aplican a las dos posibles

situaciones de juego luego se ejecutarán más veces que las jugadas que solo aplican para una situación de

juego.

Page 65: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 63

7 CONCLUSIONES

7.1 DISCUSIÓN

El fútbol robótico tiene un campo de acción muy amplio, en el cual se pueden aplicar muchas ciencias y

conocimientos dependiendo de la categoría en la que se quiera trabajar. Para Mirosot se estuvo

desarrollando en este proyecto las bases para llegar a proponer una estrategia de juego eficiente y efectiva,

lo cual implicaba el tener en cuenta mucha geometría analítica. Se encontraron limitaciones en la

plataforma experimental que llevaron a que esta propuesta alcanzara un nivel de simulación más no de

experimentación en la plataforma real. Las jugadas elaboradas permitirán hacer una propuesta más solida

de jugadas cooperativas, tratando de alejarse poco a poco del gran principio de reactividad con el que

funciona el simulador y la plataforma experimental.

En la propuesta inicial se habían planteado las jugadas juego directo y disparo 1-2-3 que involucraban la

mayoría de movimientos básicos propuestos, después de implementar y probar los movimientos básicos, se

logro implementar una jugada más general que las dos propuestas en un principio, con lo cual se garantizó

tanto juego directo como disparo 1-2-3, en el cual se puede llegar hasta una cantidad de n pases antes de

disparar al arco.

En general los movimientos básicos fueron satisfactorios, aunque podrían volverse mucho más precisos,

especialmente a la hora de realizar una predicción más exacta del balón, al interceptar el balón, o al

momento de realizar un pase a un objetivo.

Lo ideal en este proyecto hubiese sido poder empezar a realizar pruebas en la plataforma experimental,

dado las complicaciones iníciales con los equipos no se logró.

7.2 TRABAJO FUTURO

Si se hubiese tenido mayor tiempo para desarrollar el proyecto probablemente se trabajaría sobre estos

posibles temas:

Aumentar la precisión de las jugadas básicas, realizando mejores predicciones sobre el cambio de

posición del balón, además incluir predicciones sobre el movimiento de los robots tanto oponentes

como locales que podrían ser útiles para mejorar movimientos básicos.

Aumentar la eficiencia y eficacia de los movimientos básicos con el fin de aumentar la probabilidad

de llegar a mejores jugadas compuestas.

Acoplar el desarrollo realizado en el simulador a la plataforma experimental compatible a la liga

Mirosot de FIRA.

Mejorar la técnica en que la plataforma experimental captura los colores de las imágenes

obtenidas.

Page 66: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 64

8 BIBLIOGRAFÍA

cabrilog. (s.f.). Cabri II plus. Grenoble, Francia.

Ilya Levner, A. K. (2006). Heuristic Search for Coordinating Robot Agents in Adversarial Domains. En A. K. Ilya

Levner. Edmonton, Canada.

Informatik. (Marzo de 2009). Obtenido de http://small-size.informatik.uni-bremen.de/

Introduction To Robot Soccer Coding. (s.f.). Recuperado el 11 de Octubre de 2009, de

http://www.cs.nott.ac.uk/~jmg/G52GRP/Introduction%20To%20Simurosot-part1.pdf

Laplagne, I. E. (2002). Aspectos de estrategia y control en un equipo de futbol de robots.

Ryota Nakanishi, J. B. (2006). Cooperative 3-Robot Passing and Shooting in the Robocup Small Size League.

Saori Umemura, K. M. (2006). Orientation Extraction and Identification of the Opponent Robots in Robocup

Small-Size League.

Steffen Prüter, R. S. (2006). Local Movement Control with Neural Networks in the Small Size League.

Telefónica, F. (s.f.). Educared. Recuperado el 10 de 10 de 2009, de

http://portales.educared.net/wikiEducared/index.php?title=Rectas_tangentes_a_dos_circunferencias

Wolf, J. C. (2008). The Secrets of Robot Football. Plymouth.

Page 67: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 65

9 APÉNDICES

9.1 ANEXO 1 FIRA (FEDERATION OF INTERNATIONAL ROBOTSOCCER ASSOCIATION)

La FIRA es una creación del Profesor Jong Hwan Kim, que inició en 1995 y el primer campeonato

internacional fue en Daejeon, Korea en 1996.

La Federación fue establecida como tal en Junio 5 de 1997, durante el campeonato de futbol de micro

robots (Mirosot97). El campeonato mundial de la FIRA se realiza todos los años a escala global, actualmente

participan equipos de todas partes del mundo, en los torneos los equipos envían y presentan documentos

donde explican el desarrollo de sus esquemas con el fin de compartir tecnología y conocimiento para así

mejorar el futbol robótico como campo de investigación.

Actualmente la FIRA cuenta con siete categorías oficiales:

HuroSot – Categoria de robots Humanoides.

KheperaSot – Un robot diferencial por equipo totalmente autónomo.

Mirosot – 5vs5 o 11vs11, robots diferenciales semiautónomos.

NaroSot – 5vs5, robots diferenciales muy pequeños, cubos de 4x4x5.5 cm.

AndroSot – Rango de peso de 600g, robots diferenciales controlados con control remoto.

RoboSot – 3vs3, robots pueden ser autónomos o semiautónomos.

Simurosot – Categoría de simulación.

Objetivos

Transmitir el espíritu de la ciencia y tecnología a las nuevas generaciones, además de a cualquier

persona.

Promover el desarrollo de robots autónomos multi-agentes con el fin de que puedan llegar a

cooperar con otros robots en un campo especializado.

Promover el trabajo en equipo de diversas personas con diferentes especialidades con el fin de

llegar crear equipos interdisciplinarios, que puedan llegar a crear robots autónomos inteligentes

que puedan jugar al futbol.

Organizar copas mundiales y congresos cada año.

Trabajar conjuntamente para lograr establecer la copa mundial de la FIRA como una copa mundial

de ciencia y tecnología.

9.2 ANEXO 2 ROBOCUP

Robocup es un proyecto de investigación internacional , creado con el propósito de incentivar la

investigación y el desarrollo de la Inteligencia Artificial en los robots de forma didáctica. Es una

organización que permite a distintas universidades e institutos a nivel mundial a investigar y a

Page 68: Definición y Evaluación de Jugadas para Fútbol Robótico

Definición y Evaluación de Jugadas para Fútbol Robótico. 66

desarrollar aplicaciones concernientes a la robótica. Su rama principal es la de fútbol robótico la

consta de cinco categorías principalmente: La simulation league, small size league, middle size

league, four legged league y humanoid league. La liga equivalente a la categoria Mirosot de la FIRA

es la small size league, la cual funciona bajo los mismos principios de Mirosot tales como, un

máximo de cinco robots diferenciales, una unidad central la cual identifica a los robots mediante un

patrón de colores, la comunicación de la unidad central con los robots es por radiofrecuencia etc.

Ilustración 60. Funcionamiento small size Robocup (Informatik, 2009)

El objetivo principal de Robocup es lograr avances cada vez mayores para poder en el año 2050

enfrentarse al equipo campeón del campeonato Mundial de la FIFIA de dicho año y lograr superarlo

en un campo tal y como se juega en dicho campeonato con un equipo de once robots humanoides.