DUO DE ROBOFUTBOL

Jorge Arturo García Moreno
Eduardo Díaz Díaz

Universidad Anáhuac de Xalapa
Ingeniería en Tecnologías Estratégicas de la información

Ver documentación

Fig. 1 Cancha, portero y tirador.

INTRODUCCIÓN

En el presente proyecto se describe la programación de un par de robots que simulan un par de jugadores de futbol que hacen tiros libres. Uno de los robots golpea una pelota en una dirección y el otro robot bloquea el tiro para evitar que la pelota entre en en el área de portería. La utilidad del proyecto reside en su valor como aplicación práctica en términos de hardware y software, además de presentar un interesante potencial de comercialización como juguete. En el primer capitulo presentaremos el estado del arte en el área, estableciendo el marco teórico y los avances actuales que serán el punto de partida de la tesis. En el segundo capítulo entraremos a una etapa de análisis del problema y diseño de los robots, determinando con precisión sus capacidades y limitaciones, así como las funciones que serán capaces de desempeñar. El cuarto capítulo presentaremos la construcción y la programación de los robots. Es en dicha parte donde veremos a los robots en funcionamiento y evaluaremos los resultados obtenidos. Para terminar presentaremos nuestros comentarios finales y que es lo que hemos obtenido de este proyecto como experiencia de aprendizaje y desarrollo profesional, además de proponer interesantes aplicaciones alternativas del trabajo realizado.

Definición del problema

Tenemos una cancha de fútbol, en la cual se coloca la pelota en cualquier parte y el portero se encuentra cubriendo su arco. El tirador puede empezar en cualquier lugar de la cancha y su primer objetivo es buscar la pelota y encontrarla, evitando chocar con las paredes. Una vez encontrada la pelota, se coloca para tirar de acuerdo a la ubicación de la portería. En el momento que se coloca el tirador, el portero busca pelear por la pelota y detenerla. La pelota es de hule y mide 2 cm de diámetro. Está recubierta con papel aluminio, buscando con ello que los robots detecten su presencia según la luz que refleje.

Las actividades que deberá realizar el tirador son:

Detectar la pelota La idea es que el portero recorra un ángulo de vision adecuado; en busca de la pelota (objetivo) con ayuda de algún sentido.

Se propone el uso de un sensor de luz y una pelota de goma forrada de papel aluminio que sirva como superficie reflejante de la luz emitida por el sensor de luz de modo que el sensor detecte su propio reflejo y vaya tras él.

El resultado de este experimento no fue el esperado. La superficie no era suficiente para hacer que el robot la siguiera.

La segunda propuesta fue un una pelota plástica transparente en cuyo interior se aloja un foco. La luz emitida fue suficiente para hacer que el sensor la detectara con ayuda de un valor de umbral apropiado que de forma ideal no cambia.

El resultado de este experimento fue bastante bueno aunque aún queda el problema de tener que reemplazar continuamente la batería que alimenta el foco para evitar un cambio de valor significativo del umbral.

Evitar obstáculos

El tirador tiene que continuamente estar alerta mediante su sentido de “tacto” para poder detectar al instante, en caso de ocurrir, que se ha topado con algún obstáculo (pared) que impida su libre desplazamiento en busca de la pelota. En caso de que se encuentre con dicho obstáculo, el tirador es capaz de corregir su desplazamiento para alejarse de él y continuar su movimiento en otra dirección.

El programa realizado para cumplir con esta actividad funcionó de forma satisfactoria y cumplió por completo con su cometido.

Comunicarse con el portero

Una vez encontrada la pelota, el tirador comunica al portero que está listo para tirar y le informa la ubicación del esférico, ocasionalmente proporcionándole información incorrecta que proporcione una ventaja al tirador.

Esta actividad y las siguientes no fueron implementadas para el planteamiento inicial debido a que éste fue descartado antes de llegar al momento de elaborar el respectivo programa, en la sección 2.4 se discute dicha situación a detalle.

    • Colocación para tiro

    • De acuerdo a la ubicación del tirador en relación con la portería al momento de encontrar la pelota, éste se coloca apropiadamente para tirar.
  • Tirar

El robot lleva a cabo el tiro de la pelota, presentándose un grado de variabilidad en la potencia y dirección entre distintas ocasiones de tiro.

Las actividades que deberá realizar el portero son:

    • Esperar el mensaje del tirador

    • El portero se encuentra inmóvil en el centro de la portería, en espera de recibir un mensaje del tirador que le comunique la inminencia del tiro de la pelota y de donde provendrá éste.
  • Salir a detener la pelota

El portero sale de su arco y busca desplazarse a la ubicación del punto de tiro, ello con la misión de detener la pelota y evitar que el tirador pueda hacer un gol.

Programas realizados

Los programas ejecutan las siguientes operaciones (refiérase a la biblioteca de programas que se encuentra en la sección de Anexos para ver el código completo de estos programas):

1. Sigue la luz

El tirador se pone a girar sobre su propio eje hasta detectar la presencia de una luz cuya intensidad sea mayor a un determinado umbral, desplazándose hacia la dirección en que detecte este umbral.

2. Evitar obstáculos

El robot se desplaza en el entorno. Si choca con una pared, es capaz de corregir su desplazamiento para alejarse de ella y continuar moviéndose en otra parte del entorno. En caso de que se encuentre atrapado en un callejón sin salida, es capaz de salir de él.

3. Encontrar la luz

El tirador está en constante búsqueda de una fuente de luz con una luminosidad superior a un umbral determinado. En el momento que la encuentra se acerca a la misma hasta el punto en que el aumento del umbral indica cierta cercanía, deteniéndose el tirador.

4. Evitar obstáculos mientras se busca la luz

El tirador está en constante búsqueda de una fuente de luz según lo especificado en el programa tres, evitando obstáculos según lo establecido en el programa dos.

Las actividades que deberá realizar el robot son:

1. Buscar pelota

El tirador busca en cual de los tres puntos de tiro preestablecidos se encuentra la pelota mediante la detección de su luz. Se aproxima a la pelota hasta una distancia a la cual el umbral de luz rebasa cierto valor.

2. Colocarse y tirar

El tirador se coloca para realizar el tiro según cuál de los tres puntos de tiro posibles sea indicado mediante una función aleatoria. Después de que se ha colocado el robot, se realiza el tiro a máxima potencia y los motores detienen su marcha.

3. Buscar la pelota y tirar

El tirador busca en cual de los tres puntos de tiro preestablecidos se encuentra la pelota mediante la detección de su luz, asignando a una variable un valor que indique en que punto se encuentra. El tirador se aproxima a la pelota hasta una distancia a la cual el umbral de luz rebasa cierto valor. A continuación, el tirador se coloca para cobrar el penal según cuál de los tres puntos de tiro posibles sea indicado mediante la variable almacenada. El siguiente paso es realizar el tiro a máxima potencia, después de lo cual los motores detienen su marcha.

4. Comunicar situación de tiro

El tirador indica al portero que está en posición de tirar un penal y le señala en cual de los puntos de cobro preestablecidos se encuentra la pelota.

5. Buscar detener pelota

El portero intenta detener la pelota una vez que detecta su aproximación mediante el sensor de luz. Detecta si fue capaz o no de evitar el gol y le comunica el resultado al tirador.

6. Movimiento de celebración

El robot ganador hace movimientos de celebración para festejar su victoria sobre su contrincante.

7. Tirador

Este programa integra todo el código que requiere el robot tirador para cumplir con el planteamiento del proyecto, conjunta aquellos programas mencionados anteriormente que sean de interés para el tirador.

8. Portero

Este programa integra todo el código que requiere el robot portero para cumplir con el planteamiento del proyecto, conjunta aquellos programas mencionados anteriormente que sean de interés para el portero.

CONCLUSIONES

Durante la realización del presente proyecto nos encontramos con diferentes tipos de problemas. Estos, más allá de ser de índole intelectual, fueron más bien problemas de obtención de recursos; ya que elaborar un proyecto de ésta magnitud con los recursos disponibles, durante el corto lapso de tiempo establecido, es un reto para nuestra imaginación e ingenio.

Nuestra investigación inicial nos mostró que existen varios proyectos de robots que juegan fútbol realizados a partir de Lego Mindstorms, pero estos no se apoyan meramente en el kit básico que viene con un robot Lego, sino que lo complementan con otros sensores, cámaras y hardware especializado que facilita enormemente la tarea de hacerlos jugar fútbol. Para este proyecto tuvimos que aprovechar al máximo lo que el software nos podía proporcionar, ya que las carencias en hardware lo demandaban.

Como se pudo observar en el planteamiento inicial, nuestros objetivos eran mucho más ambiciosos, pero se vieron aminorados por la necesidad de optimizar los recursos disponibles. Sin embargo, estamos más que satisfechos con el trabajo realizado y consideramos que la propuesta final es muy buena e interesante, ya que pudimos vencer satisfactoriamente los problemas que tuvimos con el factor más difícil de dominar: la detección certera de los niveles de luz de la pelota en relación con el entorno.

En cuanto a la experiencia de aprendizaje obtenida, pudimos resolver problemas relacionados con umbrales de luz a través del software y no del hardware como inicialmente lo habíamos pensado, al mismo tiempo que reforzamos conocimientos de procesos paralelos a pesar de haber sido este paralelismo causa del replanteamiento inicial del proyecto. Comparando lo que sabíamos antes del proyecto con lo que sabemos al momento de concluirlo, no nos queda duda alguna de que la experiencia práctica obtenida acrecentó nuestras habilidades de análisis y resolución de problemas.

REFERENCIAS

[AIBO] Sony Corporation. Sony Aibo. http://www.us.aibo.com

[CRIS] Constructopedia, Robotics Invention System 2.0, The LEGO Group, Dinamarca, 2000.

[FURB] The Fabulous Furby and Poo-Chi Fan Site http://www.cs.umd.edu/~mstark/furby/welcome.html

[LEGa] The LEGO Group. LEGO MINDSTORMS. http://mindstorms.lego.com

[LEGb] LEGO MindStorms. http://www.robotbooks.com/Lego-Mindstorms.htm

[OVMa] Mark Overmars. Programming Lego Robots using NQC. Universidad de Utrecht, Departamento de Ciencias Computacionales, Marzo de 1999. http://www.cs.uu.nl/people/markov/lego/tutorial.pdf

[OVRO] Overview of Robotics, Introduction to Artificial Intelligence, University of the West Indies. http://athena.uwimona.edu.jm:1104/archives/site/DMCS/ compsci/CS33Q/projects/Robotics1.pdf

[OVMb] Mark Overmars. RCX Command Center. http://www.cs.uu.nl/people/markov/lego/rcxcc/index.html

[RCUP] RoboCup Official Website. http://www.robocup.org

[RTIC] Víctor Hugo Pérez Cordero, La Robótica: conceptos, definiciones e historia. http://www.geocities.com/Eureka/Office/4595/robotica.html

[STNO] Stuart Russell y Peter Norvig, Artificial Intelligence: a modern approach, Prentice-Hall, Estados Unidos de América, 1995.

[TOYa] Toy Robotics Initiative. Carnegie Mellon University, Robotics Institute. http://www-2.cs.cmu.edu/~illah/EDUTOY/index.html

[TOYb] Insect Telepresence, Toy Robotics Initiative Projects. http://www-2.cs.cmu.edu/~illah/EDUTOY/projects.html#insect

[ULLA] ULLANTA Performance Robotics. http://www-robotics.usc.edu/~barry/ullanta/

Hosted by www.Geocities.ws

1