trabajo extra de ia robocups - cs.upc.edubejar/ia/material/trabajos/robocups.pdf · trabajo extra...

32
Trabajo extra de IA Robocups Autor: Sergio García Fernández Versión: <1.0> Fecha: 16/06/2008

Upload: dinhquynh

Post on 03-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Trabajo extra de IA

Robocups

Autor: Sergio García FernándezVersión: <1.0>Fecha: 16/06/2008

Trabajo extra de IARobocups Primavera 07/08  

2

Primavera 06/07

Trabajo extra de IARobocups Primavera 07/08  

CONTENIDO1 INTRODUCCIÓN                                                                                                                                              ........................................................................................................................................   4  

2 HISTORIA                                                                                                                                                         ...................................................................................................................................................   5  

3 MODALIDADES                                                                                                                                               .........................................................................................................................................   5  

3.1 SIMULATION 2D                                                                                                                                               .........................................................................................................................................   6  3.2 SIMULATION 3D                                                                                                                                               .........................................................................................................................................   6  3.3 SMALL SIZE ROBOT                                                                                                                                          ....................................................................................................................................   7  3.4 MIDDLE SIZE ROBOT                                                                                                                                        ..................................................................................................................................   8  3.5 HUMANOID ROBOT                                                                                                                                           .....................................................................................................................................   8  3.6 STANDARD PLATFORM                                                                                                                                       .................................................................................................................................   9  3.7 ROBOCUPRESCUE SIMULATION                                                                                                                         ...................................................................................................................   10   3.8 ROBOCUPRESCUE ROBOT                                                                                                                               .........................................................................................................................   10   3.9 ROBOCUP JUNIOR                                                                                                                                         ...................................................................................................................................   11   3.10 NANOGRAM ROBOT                                                                                                                                      ................................................................................................................................   11   

4 RETOS                                                                                                                                                            ......................................................................................................................................................   12   

5 ROBÓTICA                                                                                                                                                     ...............................................................................................................................................   12   

5.1 DESCRIPCIÓN                                                                                                                                                ..........................................................................................................................................   12   5.2 PARTES DE UN ROBOT                                                                                                                                     ...............................................................................................................................   13   5.3 ROBOTS EN LA ROBOCUP                                                                                                                                ..........................................................................................................................   13   

6 GENERACIÓN Y APLICACIÓN DE ESTRATEGIAS                                                                                     ...............................................................................   14   

6.1 ROLES                                                                                                                                                         ...................................................................................................................................................   14   6.2 ASIGNACIÓN DE ROLES                                                                                                                                     ...............................................................................................................................   15   6.3 COORDINACIÓN                                                                                                                                              ........................................................................................................................................   16   6.4 ESTRATEGIA                                                                                                                                                  ............................................................................................................................................   17   

7 OBSERVACIÓN DEL ENTORNO                                                                                                                  ............................................................................................................   19   

7.1 RESTRICCIONES                                                                                                                                             .......................................................................................................................................   19   7.2 ESTRATEGIAS DE COMUNICACIÓN                                                                                                                        ..................................................................................................................   20   

7.2.1 Información del entorno ................................................................................................................................. 20 7.2.2 Información del estado e intenciones ............................................................................................................. 21 7.2.3 Información de actividad ............................................................................................................................... 21

8 APLICACIONES                                                                                                                                             .......................................................................................................................................   21   

8.1 ROBOCUP RESCUE                                                                                                                                        ..................................................................................................................................   21   8.1.1 Sistema multi-agente ...................................................................................................................................... 22 8.1.2 RoboCup Rescue Simulation .......................................................................................................................... 22 8.1.3 RoboCup Rescue Robot .................................................................................................................................. 24

8.1.3.1 Scout ...................................................................................................................................................... 24 8.1.3.2 COTS Scout .......................................................................................................................................... 26 8.1.3.3 MegaScout ............................................................................................................................................. 27

8.2 OTRAS APLICACIONES                                                                                                                                      ................................................................................................................................   28   8.2.1 Mascotas robóticas ........................................................................................................................................ 28 8.2.2 Asistentes personales ..................................................................................................................................... 29 8.2.3 Seguridad ....................................................................................................................................................... 30

8.3 POSIBLES FUTURAS APLICACIONES                                                                                                                      ................................................................................................................   31   

9 BIBLIOGRAFÍA                                                                                                                                              ........................................................................................................................................   31   

3

Trabajo extra de IARobocups Primavera 07/08  

1 Introducción

                                                                

By the year 2050,develop a team of fully autonomous humanoid robots

that can win against the human world soccer champion team.

RoboCupTM es una iniciativa internacional que intenta promover la investigación en Inteligencia Artificial, Robótica, y otros campos relacionados, proveyendo un problema estándar en el que una amplia gama de tecnologías pueden ser integradas y examinadas.

El proyecto RoboCup eligió utilizar partidos de fútbol como tema central de investigación, con miras a las innovaciones que se aplicarán para problemas socialmente significativos y aplicaciones industriales en el futuro. El objetivo final del proyecto RoboCup es en el año 2050, desarrollar un equipo totalmente autónomo de robots humanoides que puedan ganar contra el campeón del mundo de fútbol.

El problema que propone RoboCup es sumamente interesante ya que para que un equipo de robots pueda realizar un partido de fútbol, se deben incorporar diversas tecnologías, incluyendo: principios de diseño de agentes autónomos, colaboración multi­agente, adquisición estratégica, razonamiento en tiempo real, robotica y sensor­fusion. RoboCup es una tarea pensada para un equipo de múltiples robots de gran velocidad bajo un entorno dinámico.

Una de las principales aplicaciones de las tecnologías de la RoboCup es la búsqueda y rescate en desastres a gran escala. RoboCup ha iniciado el proyecto RoboCupRescue específicamente para promover la investigación en temas socialmente significativos como es el rescate de personas en desastres naturales, en el que un gran número de agentes heterogéneos en un ambiente hostil deben colaborar para un fin común.

4

Trabajo extra de IARobocups Primavera 07/08  

2 Historia

RoboCup nació en Japón el año 1992 promovido por un grupo de investigadores Japoneses con el fin de promover la investigación en IA y Robótica, inicialmente con el nombre de Robot J­League (J­League es el nombre de la liga profesional nacional de Japón). Sin embargo, debido a las numerosas peticiones, esta iniciativa japonesa pasó a ser una iniciativa mundial y fue renombrada como Robot Wold Cup Initiative, RoboCup para acortar el nombre.

Tras varios años de desarrollo de las reglas, software y hardware necesarios, en 1996 tuvo lugar en Osaka(Japón) el Pre­RoboCup­96 con el fin de identificar los principales problemas de organizar un torneo de RoboCup a gran escala, el que iba a tener lugar al año siguiente. En 1997 en Nagoya(Japón) se organizó el primer torneo oficial de RoboCup en el que 40 equipos de diferentes países compitieron con equipos simulados y reales, atrayendo a un total de 5.000 espectadores.

Tras más de 10 años de competición, se han ido añadiendo más modalidades y se han ido cambiando las reglas con el fin de ofrecer un amplio abanico en el que desarrollar nuevas tecnologías u ofrecer nuevos retos en los que utilizar nuevas tecnologías y mejorarlas. En estos años la competitividad ha aumentado y los avances han sido notables, aunque están todavía muy lejos de su objetivo final, el de ganar al campeón del mundo en el año 2050.

La competición se celebra cada año en una ciudad diferente. La competición ya ha pasado por Nagoya, París, Stockholm, Melbourne, Seattle, Fukuoka/Busan, Papua, Lisboa, Osaka, Bremen y Atlanta. Este año le tocará el turno a Suzhou(China) del 14 al 20 de Julio. Y el año 2009 será para Graz(Austria).

3 Modalidades

Aunque el objetivo principal es la creación de un equipo de robots de aspecto humanoide, el proyecto RoboCup consta de competiciones de varias modalidades, que pueden diferenciarse generalmente por su tamaño, aspecto y modo de juego. Cada modalidad ofrece diferentes aspectos en los que desarrollar e innovar tecnologías que posteriormente podrían tener uso en aplicaciones para la vida real o pueden servir como punto de partida para otras modalidades de RoboCup.

5

Trabajo extra de IARobocups Primavera 07/08  

Las reglas de cada modalidad han ido variando y siguen variando durante los años con el fin de ofrecer un entorno suficientemente dinámico en el que los equipos deben de adaptarse para conseguir buenos resultados y para aprovechar las nuevas tecnologías o la mejora de las tecnologías aplicadas al problema. No olvidemos que Inteligencia podría definirse como la capacidad de adaptarse a un ambiente impredecible.

3.1Simulation 2D

En esta liga se enfrentan equipos de 11 agentes de software en un campo virtual.

La idea principal de esta liga es poder utilizarla como escenario inicial de técnicas que posteriormente puedan ser implementadas en robots físicos reales de cualquier tipo de liga. De esta manera es posible avanzar en la investigación de varios campos paralelamente.

Los retos de investigación en esta competición incluyen coordinación de equipo y aprendizaje multi­agente.

3.2Simulation 3D

Es la evolución de la Simulation 2D, pero al ser en 3 dimensiones ofrece un entorno mucho más realista e interesante.

De igual manera, la competición se realiza de manera virtual con equipos de agentes de software.Inicialmente se empezó con agentes de software esféricas inarticuladas, ahora los agentes son recreaciones en 3 dimensiones de robots con diversas articulaciones.

Aunque esta competición se base en la simulación, esta posee un rico y gran dominio de problemas que incluyen características muy reales como son ruido en los sensores y actuadores, visión limitada, modelos de resistencia y comunicación limitada, a parte de los problemas compartidos con la competición Simulation 2D.

Los agentes interactúan directamente con el servidor por medio de mensajes de texto que el agente 

6

Trabajo extra de IARobocups Primavera 07/08  

además tiene que parsear. De esta manera la visión le llega a los agentes por medio de un mensaje de texto, dónde se le específica la distancia y orientación a cada bandera (una bandera es una referencia estática que sirve para poder calcular la posición del agente).

Cada una de las articulaciones(alrededor de 20) tiene que ser manejada por el código del agente. Por lo que cualquier acción del robot, como andar o chutar el balón, ha de ser manejada por el código del robot.

3.3Small Size Robot

En esta liga juegan equipos de 5 robots de no más de 18 centímetros de diámetro en un campo un poco más grande que una mesa de ping­pong.

Esta competición se centra en el problema de la cooperación y control multi­agente en un ambiente altamente dinámico con un sistema hibrido centralizado/distribuido y la integración de sub­componentes hardware en un espacio reducido.

El control de los robots es un sistema híbrido centralizado/distribuido utilizando una cámara de video aérea central. Los partidos se realizan en tiempos de 10 minutos. La comunicación se realiza a través de una red wireless.

7

Trabajo extra de IARobocups Primavera 07/08  

3.4Middle Size Robot

En esta liga juegan equipos de 4 robots en un campo de 12x8 metros con un balón de fútbol real.

El control de los robots es totalmente distribuido, todos los sensores de los robots deben ir a bordo y pueden utilizar comunicación inalámbrica entre robots. Los objetos son identificados por colores, ya sean porterías, corners y robots que son equipados con un dorsal de color.

Los partidos se dividen en tiempos de 15 minutos.

3.5Humanoid Robot

En esta liga se trata de usar robots con forma humanoide totalmente autónomos. Es la que en principio debería superar al Campeón del Mundo de Fútbol en el año 2050.

Una de las ligas más ambiciosas y con más retos por superar. Altamente limitada por la Robótica. Los robots no solo deben jugar a fútbol, además tienen que hacerlo tal y como un humano lo haría. Los robots han de caminar, correr, chutar e incluso levantarse del suelo igual que un ser humano.

Los partidos constan de equipos de 2 robots cada uno.

Esta liga tiene dos subcategorías dependiendo del tamaño de los robots. La KidSize que consta de robots de 30­60 centímetros de altura y la TeenSize en la que participan robots de 80­130 centímetros de altura.

Entre muchos de los temas de investigación se incluyen la dinámica de caminar, correr y chutar un balón manteniendo el equilibrio, percepción visual de la pelota, de otros robots y del terreno, auto­localización y localización del equipo y de los rivales.

8

Trabajo extra de IARobocups Primavera 07/08  

3.6Standard Platform

En esta competición los equipos están formados por robots idénticos que funcionan de manera totalmente autónoma.

Todos los equipos utilizan robots idénticos, de esta manera, los desarrolladores se concentran solamente en el desarrollo de software, sin tener que preocuparse del hardware de los robots.

Los equipos constan de 4 robots autónomos que pueden comunicarse mediante una red inalámbrica y cuyo hardware no puede ser modificado. Los partidos se desarrollan en un campo de 3x5 metros y se dividen en tiempos de 10 minutos.

Hasta ahora se utilizaban robots AIBO, unos perritos robóticos four­legged fabricados por Sony. Actualmente se utilizan los robots Nao, unos robots de forma humanoide fabricados por Aldebaran Robotics.

9

Trabajo extra de IARobocups Primavera 07/08  

3.7RoboCupRescue Simulation

Construido sobre el éxito del proyecto RoboCup Soccer.

Trata el problema de la participación de múlti­agentes, coordinación de trabajo en equipo, agentes robóticos de búsqueda y rescate, infraestructuras de información, asistentes digitales personales, sistemas de apoyo de decisiones, pruebas de evaluación para estrategias de rescate y sistemas robóticos que se integrarán en un sistema en el futuro.

Su principal objetivo es proporcionar apoyo a las decisiones de emergencia por la integración de información sobre desastres, la predicción, la planificación y la interfaz humana.

Un conjunto de desastres urbanos son recreados en un entorno de simulación virtual, incluidos agentes inteligentes heterogéneos, como los bomberos, los comandantes, las víctimas, voluntarios, etcétera y conducta de búsqueda y salvamento. Las interfaces sincronizan la virtualidad y la realidad de los datos de los sensores.

3.8RoboCupRescue Robot

En la liga de robots RoboCupRescue, los robots exploran un desastre simulado del tamaño de una pequeña casa.

El desastre incluye diversos maniquíes con signos de vida, tales como agitar las manos, gritar, hacer ruidos y calor, escondido entre un laberinto de paredes, puertas, escaleras, plataformas y la construcción de escombros.

Los robots, algunos bajo control humano, deben recorrer todos los rincones del escenario, y encontrar a las víctimas, identificar sus señales de vida y producir un mapa del sitio que muestre el lugar en el que se encuentran las victimas. El objetivo es proporcionar a los rescatadores humanos suficiente información para realizar un rescate con seguridad.

10

Trabajo extra de IARobocups Primavera 07/08  

Los robots han de demostrar sus capacidades en movilidad, percepción sensorial, planificación, elaboración de mapas y realización de interfaces. Los equipos son evaluados según la calidad de sus mapas, la exactitud de la información de la víctima y el número de víctimas encontradas.

3.9RoboCup Junior

RoboCupJunior es un evento de robótica para estudiantes de primaria y secundaria que proporciona desafíos alcanzables y que hace hincapié en el intercambio de ideas en un ambiente de aprendizaje amigable.

La modalidad Junior está dividida en 3 sub­modalidades: Dance, Rescue y Soccer.

3.10Nanogram Robot

En esta competición compiten robots del orden de nanogramos de peso y unas 300 micras de longitud. Todavía no ha habido competiciones de esta modalidad de forma oficial.

Los requisitos básicos para participar son: el robot debe caber en un cuadrado de 300 micras de lado,  no puede tener ningún tipo de cable y deben pesar del orden de nanogramos(de ahí el nombre de la competición). Por supuesto, los ordenadores que los controlan no están en el robot sino que transmiten las instrucciones remotamente y está permitido emplear energía externa para moverlos (pero siempre sin cables).

El campo de juego, por supuesto, es muy pequeño, cada campo mide unos 2 milímetros de largo. Los dieciséis campos de nanofútbol de la competición caben en una pequeña moneda y los espectadores pueden ver la actividad de los micro­robots mediante un microscopio.

De momento solo han tenido lugar pequeñas competiciones de demostración de “habilidades futbolísticas” de los micro­robots:

Pruebas de velocidad con una distancia de dos milímetros, carreras de portería a portería esquivando “defensores” (postes hechos de polímeros), por supuesto sin conocer la posición de los defensores antes 

11

Trabajo extra de IARobocups Primavera 07/08  

de empezar la prueba. Y pruebas de regate en la que los robots deben llevar la “pelota” de una portería a la otra esquivando los defensores y marcar gol.

Los 16 campos de un torneo de nanorobots

4 Retos

La iniciativa RoboCup con sus diferentes modalidades propone varios retos para ser solucionados, tales como la integración de componentes hardware en pequeños robots autónomos, la cooperación entre robots, la visión y construcción del mundo a través de los sensores de los robots y a la cooperación entre ellos, etcétera.

En este documento profundizaremos en algunos de los aspectos más significativos y más relacionados con la Inteligencia Artificial centrándonos en alguna de las modalidades más destacables de la iniciativa RoboCup.

5 Robótica

No podemos hablar de la RoboCup sin mencionar una de sus características más importantes y que más desarrollo necesita para cumplir los objetivos propuestos. Además de que sin ella, esta competición no tendría sentido alguno. Sin embargo al ser un tema poco relacionado con la inteligencia artificial solo comentaremos las características más esenciales.

5.1Descripción

La robótica es el conjunto de conocimientos teóricos y prácticos que permiten concebir, realizar y automatizar sistemas basados en estructuras mecánicas poli articuladas, dotados de inteligencia artificial y destinados a sustituir al hombre en diversas tareas.

La robótica es una ciencia o rama de la tecnología que estudia el diseño y construcción de maquinas capaces de desempeñar tareas realizadas por el ser humano o que requieren del uso de inteligencia.

La robótica como tecnología surge en 1960, desde entonces y hasta el día de hoy, el interés que hadespertado y el estudio del que ha sido objeto, han sido infinitamente superiores a cualquier previsión.

Aunque se han logrado avances impresionantes, el campo de desarrollo e innovación que esta ciencia ofrece es tan amplio que, cada día, los investigadores plantean formas robóticas cada vez más evolucionadas. Las posibilidades parecen infinitas.

12

Trabajo extra de IARobocups Primavera 07/08  

5.2Partes de un robot

Un robot puede estar dividido en diferentes partes o subsistemas:

• Chasis(encargado de darle forma al robot y sostener sus componentes).• Circuitos de control(permiten el adecuado gobierno del sistema completo, acoplando 

continuamente las habilidades de percepción y de acción).• Sensores(permiten al robot percibir ciertos fenómenos o eventos de su entorno local).• Efectores(sistemas de locomoción o que permiten al robot interactuar con su entorno local).• Controladores para los anteriores y Computador/es de control.• Memoria: Mapas(topológicos, métricos...).• Comportamientos(incorporados por el programador o aprendidos).• Comunicaciones humanas: Interfaz de usuario.• Comunicaciones con otros robots u ordenadores.• Fuente de energía (sistema encargado de alimentar a todas las partes).

Atendiendo al grado de diseño y funcionalidad, se puede establecer una clasificación de la complejidad que entraña un determinado robot:

• Nivel Físico: Comprende la estructura física, las unidades motoras, y las etapas de potencia.• Nivel de Reacción: Está formado por el conjunto de sensores, así como los sistemas básicos 

para su manejo(circuitos de polarización). Este tipo de unidades trabajan cumpliendo la premisa “acción­reacción”.

• Nivel de Control: Incluye los circuitos más básicos que relacionan las salidas de los sensores con las restantes unidades. Se dota al robot de la capacidad para procesar la información obtenida por los sensores y actuar de una manera controlada sobre los efectores.

• Nivel de Inteligencia: Abarca la planificación a largo plazo; en este nivel, se introducen los objetivos del robot que tienen relativa independencia de los sensores. Este es el más alto nivel de inteligencia que puede alcanzar un robot como una unidad individual.

• Nivel de Comunidad: Se trata de la puesta en funcionamiento de más de un robot dentro de un mismo entorno de forma simultánea y sin que ninguno de ellos tenga conocimientos explícitos de la existencia de los demás. A estos recintos se los denomina granjas.

• Nivel de Cooperación: Comprende los sistemas donde a partir de un nivel de comunidad, se planifican o programan los robots para que tengan conocimiento de la existencia de otros, de manera que posean la capacidad de cooperar para el buen desarrollo de una tarea.

5.3Robots en la RoboCup

Los robots participantes en la RoboCup pueden distinguirse en 2 tipos diferenciados:

Robots pequeños y medianos:

Muchos F180 y F2000 no llevan visión incorporada ni son autónomos: necesitan de un PC fuera del campo y una cámara aérea sobre ellos. En los últimos años los robots medianos sí deben llevar visión incorporada a bordo.Suelen utilizar comunicación inalámbrica (FM); también se ha probado con éxito IrDA(infrarrojos).

13

Trabajo extra de IARobocups Primavera 07/08  

Robots humanoides:

Hardware con frecuencia basado en robots y kits de robótica comerciales.Varias empresas comerciales desarrollan robots de este tipo: RoboSapien, Kondo, Bioloid de Robotis, etc.Los humanoides deben ser autónomos: PocketPC y cámara integrados.Suelen utilizar comunicación wifi para comunicarse entre ellos.

Hardware:

El procesado de imágenes utiliza arquitecturas especializadas en el tratamiento de imágenes en tiempo real.Las cámaras son de muy baja resolución y de un ángulo de visión reducido (alrededor de 60º).El reconocimiento de objetos se hace con visión basada en el movimiento y con Vergence Vision(los dos “ojos” miran hacia el mismo punto).Los robots soportan una implementación como agentes inteligentes y sistemas autónomos colaborativos: no se trata de un solo robot asilado, sino de un equipo que interactúa y colabora entre sí.Utilizan lógica y sistemas multi­agentes. Desarrollo del lenguaje 3APL, basado en reglas.

Software:

Software implementado en multitud de lenguajes. Los favoritos son C, C++, Python y  Java.También otros, como el caso de Utrecht y 3APL.Para seguir una recta, 17Bytes. El código fuente para un humanoide, puede estar entre 30 y 100MBytes.

6 Generación y aplicación de estrategias

El objetivo a más alto nivel de un partido de fútbol es meter goles. Para este fin es imprescindible dotar a los robots de comportamientos que vayan encaminados hacia este fin. Sin embargo estos comportamientos no pueden limitarse a un método “ve hacia la pelota y chútala hacia la portería contraria”, deben tener en cuenta el entorno dinámico en el que están: los rivales(estos son altamente dinámicos), los compañeros, el terreno de juego, la posición de la pelota, etcétera… Por lo tanto, en una situación idéntica(por ejemplo, tener el balón a 50 centímetros de distancia) dependiendo del estado del mundo habría que aplicar uno u otro comportamiento y además coordinado con los comportamientos de los compañeros de juego.

Para el análisis de este problema supondremos que lo hacemos bajo una competición de Standard Platform League en la que los equipos están formados por 4 robots totalmente autónomos, que pueden comunicarse entre sí a través de una red inalámbrica.

6.1Roles

Una manera bastante habitual de decidir qué comportamientos puede ejecutar un robot es asignando un rol a cada robot. Por ejemplo si un robot tiene el rol PORTERO sus comportamientos han de estar enfocados a cubrir la portería ante chutes del rival mientras que un robot con el rol DELANTERO ha de intentar ir a por el balón y lanzarlo hacia la portería contraria.

14

Trabajo extra de IARobocups Primavera 07/08  

Sin embargo, hay que tener en cuenta que no sería conveniente poner varios robots con el mismo rol ya que podrían molestarse entre sí, además de dejar roles “no cubiertos”, lo cual podría ser contraproducente.

No conviene por ejemplo tener 2 robots con el rol DELANTERO ya que los dos intentarían ponerse en disposición de chutar y uno no dejaría chutar al otro.

También hay ciertas restricciones en las reglas de juego que no permiten esto, como por ejemplo, poner 2 robots con rol PORTERO, estos 2 robots intentarían cubrir la portería y ciertamente lo harían pero esto violaría la regla de que solo puede haber un robot en su propia área.

Por lo tanto es necesaria una asignación de roles inteligente, que no viole las restricciones, que evite que los robots se molesten entre sí y que en la medida de lo posible cooperen para llevar la pelota hacia la portería rival.

6.2Asignación de roles

Hemos comprendido que los robots no pueden ir “a su bola” y que es más conveniente hacer una asignación de roles distribuida. A continuación se explicarán diferentes implementaciones para hacer una asignación de roles inteligente.

Una manera bastante sencilla y que puede funcionar como base es asignar roles según la cercanía del robot con los objetos del campo. Así el robot más cercano a la pelota se asignaría el rol de DELANTERO, que intentaría ir hacia la pelota lo más rápido posible y chutar hacia la portería contraria, el robot más cercano a la portería se asignaría el rol de PORTERO, el 2º robot más cercano a la portería se asignaría el rol de DEFENSA y el robot restante se asignaría el rol de MEDIOCENTRO e intentaría colocarse en una posición de soporte.

Sin embargo esta solución tiene sus lagunas. ¿Qué pasaría si 2 robots creyeran que están más cerca del balón que otro? Se asignarían el rol de DELANTERO y acabarían estorbándose. Para solventar este problema hay que añadir por lo menos un intercambio de información entre robots, los robots discutirían entre sí hasta que uno obtuviera el rol DELANTERO.

15

Trabajo extra de IARobocups Primavera 07/08  

En la Standard Platform League esto es posible ya que los robots pueden comunicarse vía wifi y en otras modalidades incluso es más fácil ya que los robot comparten información en un sistema externo o el propio comportamiento de todo el equipo se ejecuta en un único sistema externo.

Esto parece solventar el problema aunque puede traer nuevos problemas. La comunicación wifi en un entorno concurrido por múltiples dispositivos móviles puede hacer que la conexión wifi esté lleno de colisiones y la comunicación sea más lenta, conllevando un periodo de tiempo de discusión demasiado grande, en la que ninguno de los robots haría nada, dando tiempo a los otros robots a ganar la posición.

Unido a este nuevo problema hay otro de igual importancia. En un entorno tan dinámico, en el que en unos pocos segundos la pelota, los rivales y los compañeros pueden cambiar de posición continuamente, muy posiblemente hayan varios cambios de roles en pocos segundos y muchos de estos cambios sean innecesarios. El tiempo perdido en discusiones pasaría a ser un factor vital.

Este conjunto de problemas ha sido abordado de varias maneras, algunas de las cuales pueden combinarse entre sí:

• Asignar roles estáticamente, de manera que un robot es siempre de un tipo, es la manera más sencilla, pero la que menos se adapta a la situación del partido.

• Añadir una curva de histéresis al cambio de rol, de manera que si un robot tiene un rol asignado, no lo cambie a menos que otro robot sea significativamente más adecuado para tener ese rol. En esta solución sin embargo añadimos el problema de saber cuando un robot es significativamente mejor que otro para un tipo de rol. No es un cálculo nada trivial y muy difícil de averiguar.

• Asignar zonas de campo a cada robot, de manera que si la pelota está dentro de la zona de un robot, este robot se convertirá en atacante o pasador y tratará de enviar el balón hacia la portería contraria o hacia un compañero, mientras que los demás robots permanecerán en su zona ya sea defendiendo, colocándose para no estorbar el disparo o en posición para recibir el balón.

• Un robot asignado como capitán del equipo indica a sus compañeros el rol de cada uno de sus compañeros bajo su visión del mundo, evitando discusiones entre robots.

Hemos visto varias soluciones para afrontar el problema de decidir roles entre robots teniendo en cuenta básicamente los factores más importantes como su posición en el campo y la distancia a la pelota, pero esta asignación debería ser enriquecida por la posición de los rivales y la posición de los compañeros para tener una asignación de roles aún más adecuada.

6.3Coordinación

Una vez tenemos el rol de un robot, debe decidirse qué ha de hacer ese robot. En casos concretos como un portero o un atacante que tiene el balón cerca, la respuesta es obvia, pero hay casos más complejos y reglas que hacen que esta decisión no sea tan trivial. En concreto debemos decidir hacia donde debe ir un robot o qué lugar debe evitar.

Para esto se suelen definir, según la información de cada robot, puntos del campo atrayentes o repulsivos con más o menos peso y utilizar métodos “Potential Field”, “Forward Chaining”, etcétera… que calculan los puntos a los que dirigirse y cómo de una manera rápida.

Los métodos “Potential field” son utilizados con éxito en tareas de navegación y sorteo de obstáculos. Estos métodos se han ido extendiendo para que un grupo de robots mantengan formaciones usando solamente información local en sus cálculos.

16

Trabajo extra de IARobocups Primavera 07/08  

En la RoboCup varios equipos han añadido este tipo de funciones heurísticas para guiar a los robots hacia áreas cercanas a la portería rival o hacia una zona abierta en la que esté bien posicionado para recibir un pase.

Sin embargo este tipo de funciones tienen varias limitaciones en cuanto a desconfianza por mínimos locales y vacilación.

Una aproximación a estos métodos conocido como Forward Chaining dinámicamente rehace los “Potential field” usando métodos heurísticos que guían al robot hacia el objetivo a través de una serie de sub­objetivos o puntos de un camino, tratando así de evitar mínimos locales.

Forward Chaining es una de varias estrategias deductivas del control de las aplicaciones que existen o los datos nuevamente deducidos para accionar las deducciones y las conclusiones futuras sobre los datos. Se repite el proceso hasta que el programa alcanza su meta o se ejecuta de nuevas posibilidades. Esta técnica se utiliza típicamente para la búsqueda del estado­espacio o el razonamiento dirigido a los datos.

De esta manera, se definirían como puntos atrayentes la posición del balón, o las zonas vacías apropiadas, según el rol del robot, para recibir un pase, para chutar o para defender y como puntos repulsivos las posiciones de los demás robots, la posición la portería propia(si no es portero), etcétera… y utilizando métodos heurísticos y en tiempo real decidir la posición o el camino más apropiado para el robot al cual dirigirse.

6.4Estrategia

Ya hemos abordado la base de la decisión del comportamiento y posicionamiento de los robots según su rol y de una manera algo simplista la manera de escoger los roles de los robots. Sin embargo, aunque puede ser una buena base, hay mucha información que todavía no hemos tenido en cuenta a la hora de asignar roles y nos hemos limitado a escoger una estrategia colectiva muy estática que si bien puede ser adecuada en condiciones normales de juego, no lo es tanto cuando las condiciones están más al límite.

Por ejemplo, en el fútbol real, un equipo no juega igual si va ganando que si va perdiendo y faltan 5 minutos para el final. Tampoco jugará igual si juega con 11 jugadores que si le han expulsado 2. Su estrategia en un momento del partido será diferente. Y a un nivel de detalle más fino, su estrategia tampoco será igual si el que ataca es uno o es otro.

Todas estas condiciones; posesión y posición del balón, número de jugadores de cada equipo, resultado actual, tiempo restante, etcétera, hacen que la estrategia sea diferente en cada momento del partido. 

17

Trabajo extra de IARobocups Primavera 07/08  

Consecuentemente según una estrategia u otra, el conjunto de roles será diferente y es algo independiente de la asignación de qué rol tiene cada robot. Es algo que ha de decidirse a más alto nivel.

En la Standard Platform, esta decisión estratégica es lógico y normal dejarlo en manos de un solo robot capitán que teniendo en cuenta toda la información del estado del partido calcule, decida y comunique a sus compañeros qué estrategia han de seguir, e incluso, podría decidir qué roles debería tener cada uno de sus compañeros.

Una posible solución para el cálculo de la estrategia es definir condiciones de aplicabilidad y pesos a cada estrategia con el fin de escoger la mejor de entre todas las aplicables en un momento dado. Una vez escogida la mejor estrategia, asignar los roles que especifica esa estrategia a cada robot, por supuesto tratando en la medida de lo posible mantener los roles antiguos de los robots, minimizando el cambio.

Al igual que en la asignación de roles, sería muy conveniente añadir una curva de histéresis para que el cambio de estrategia no se efectúe a menos que la nueva estrategia sea significativamente mejor que la actual.

De esta manera, el equipo se adaptará a las condiciones del partido. Por ejemplo:

Se podría definir una estrategia “Catenaccio” que como condiciones de aplicabilidad tenga “el equipo va ganando por más de 2 goles” o “se tienen menos jugadores que el rival” y cuya acción sea asignar por orden los roles “Portero”, “Defensa”, “Defensa”, “Mediocentro”(si solo hay 2 jugadores, se asignarán 1 portero y 1 defensa).

Otra estrategia “Super Ofensivo” cuyas condiciones de aplicabilidad sean “Faltan menos de 1 minuto para terminar el partido y vamos perdiendo” y cuya acción sea asignar por orden los roles “Delantero”, “Mediocentro”, “Apoyo”, “Delantero”. Entonces hasta el portero subiría a rematar como sucede en partidos reales.

Siempre estaría la estrategia “Normal” con unas condiciones de aplicabilidad poco restrictivas y cuya acción sea poner los roles “Portero”, “Defensa”, “Mediocentro”, “Delantero”. Y tal vez se especializaría en estrategia “Normal atacando” y “Normal defendiendo”.

En cuanto al peso, las estrategias Catenaccio y Super Ofensivo al tener unas condiciones extremas y muy especiales de aplicabilidad, deberían un peso mayor que la estrategia “Normal”.

Por último, el peso en lugar de ser un cálculo estático hecho a mano, podría variar dependiendo de estadísticas de éxito recogidas con anterioridad o durante el partido actual, adaptándose mejor tanto a las condiciones del partido como a las características del rival.

Hay que decir también que en la Standard Platform League es posible cambiar el código de los robots durante el descanso o durante un tiempo muerto.

Con esto concluye la explicación de la generación y aplicación de estrategias, pero queda una parte sin la cual esto no sería posible, la observación del entorno y la cooperación entre los robots para construir un mundo virtual.

18

Trabajo extra de IARobocups Primavera 07/08  

7 Observación del entorno

De nada serviría tener una estrategia del equipo si no se sabe bien donde está cada objeto en el terreno de juego, para ello es necesario que los robots(totalmente autónomos) observen el entorno y junto con sus compañeros crean y compartan una virtualización del mundo en el que están.

Para el análisis de este problema supondremos que lo hacemos bajo varios robots totalmente autónomos, que integran todos los sensores a bordo(esencialmente la visión), que pueden comunicarse entre sí a través de una red inalámbrica.

Como ejemplo, este tipo de equipo de robots son los utilizados en las ligas Standard Platform, Médium Size y Humanoid Robot. Adicionalmente, se han implementado Robots Comentadores de partidos de fútbol de RoboCup que visualizan el terreno de juego, se comunican entre sí y comentan el partido a través de un sintetizador de voz. En el futuro tal vez, puedan incluirse Robots Entrenadores o incluso Robots Árbitros y Linieres o Robots Recoge­pelotas.

7.1Restricciones

19

Trabajo extra de IARobocups Primavera 07/08  

Autonomía total: Los robots son totalmente autónomos, han de llevar todos los sensores a bordo, incluida la visión.

Información distribuida: Los robots no pueden comunicarse con ningún ordenador externo, solo pueden comunicarse entre sí vía una red wifi.

Percepción limitada: Cada robot dispone de una visión muy limitada del mundo. Utilizan cámaras de baja resolución con campos de visión muy pequeños(unos 60º).

Mundo dinámico y hostil: El mundo es extremadamente dinámico. En unos segundos, el estado del mundo puede cambiar significativamente.

Restricciones temporales: El partido se realiza en tiempo real. Un tiempo de vacilación o de inanición puede dar una ventaja significativa al rival.

Comunicaciones poco fiables: La presencia de decenas de robots en el entorno significa una red wifi muy poco fiable, llena de colisiones y con retardos significativos. Un equipo debe asegurar la consistencia de su juego aún con comunicaciones poco robustas.

7.2Estrategias de comunicación

7.2.1 Información del entorno

Muchos equipos de robots autónomos hacen uso de la comunicación para compartir una visión del estado del mundo.

Debido a la limitada percepción visual del entorno y de la gran ocultación de objetos del entorno en un partido de fútbol de RoboCup, los equipos suelen beneficiarse de la comunicación entre robots para construir un modelo del mundo compartido.

Una solución que sirve como base de esta comunicación, es que cada robot envía periódicamente su visualización del mundo a todos sus compañeros, tales como su propia posición, la posición de la pelota y la posición de los robots rivales. Sin embargo, hay información mucho más importante que otra para el objetivo del equipo.

Una especialización de este sistema es comunicar cierta información independientemente del resto con más o menos frecuencia dependiendo de su importancia. Esta estrategia de comunicación permite a los robots compartir información importante más rápidamente, tales como el cambio de posición de la pelota, sin la necesidad de generar y transmitir largos mensajes a la red de comunicaciones, reduciendo así la probabilidad de colisión y el tiempo de transmisión.

Por ejemplo, cada robot indicará la posición de la pelota cuando esta tenga un cambio de posición y el robot tenga conocimiento de la posición. De esta manera los robots que no pueden ver la pelota porque hay obstáculos desde su punto de vista sabrán donde está la pelota y podrán seguirla en todo momento.

Aunque, puede darse el caso de que ningún robot del equipo pueda ver la pelota, por eso un robot enviará información de donde cree que está la pelota aunque no tenga una certeza del 100%. De esta manera, junto con las coordenadas globales en las que supone que está la pelota, también enviará información de certeza, ya sea con un porcentaje de certeza o con un mensaje predefinido, como por ejemplo: He perdido 

20

Trabajo extra de IARobocups Primavera 07/08  

la pelota, la estoy viendo, está en posesión de un rival, no está en mi vista, está en mi vista pero no la estoy viendo, está en mi vista pero me la está ocultando un objeto.

Compartiendo la información de esta manera cada robot puede saber la posición de la pelota, tomando como cierta la información más fiable recibida de sus compañeros.

7.2.2 Información del estado e intenciones

Otro tipo de mensajes es la información del estado e intenciones del propio robot. En periódicos intervalos de tiempo se envía la posición actual y orientación del robot, además de la intención del robot.

La intención es un concepto muy importante cuando por ejemplo un robot tiene el balón y va a chutar hacia la portería contraria o tiene la intención de dar un pase a otro robot o incluso tiene la intención de esperar a que otro robot le pase el balón.

Por ejemplo, cuando un robot quiere chutar el balón es importante que los demás robots se aparten de la trayectoria del balón cuando este lo lance. También puede interesar saber que un robot tiene la intención de atacar e ir hacia el balón, los demás intentarán no estorbarle o servirle de apoyo, independientemente tal vez de su rol actual.

7.2.3 Información de actividad

Como hemos comentado en varias ocasiones, la red wifi disponible suele ser poco fiable, los jugadores pueden ser expulsados o pueden dejar de estar operativos en un momento del partido.

Para evitar males mayores los robots usualmente envían un mensaje de actividad cada cierto tiempo para dar a conocer a los demás compañeros que están activos. Si en un momento del partido los robots activos dejaran de recibir la información de actividad de uno de sus compañeros sabrían que probablemente sean un menos y si no reciben ningún mensaje de sus compañeros sabrán que hay algún problema con la comunicación. Consecuentemente, los robots podrán amoldar su estrategia en tiempo real sin ayuda externa y tendrán una mejor tolerancia a fallos.

8 Aplicaciones

8.1RoboCup Rescue

Una de las aplicaciones con más proyección surgidas a partir de la RoboCup son sistemas que podrían ayudar en el rescate de personas en desastres naturales. Con este fin especifico, socialmente mucho más significativo e importante que un partido de fútbol, surgió una iniciativa al mismo nivel que RoboCup, la RoboCup Rescue.

Esta iniciativa se incorporó al proyecto RoboCup en el año 2001, casualmente coincidiendo con el atentado terrorista del 11 de Septiembre en Nueva York.

21

Trabajo extra de IARobocups Primavera 07/08  

8.1.1 Sistema multi­agente

Observando las definiciones de Sistema Multi­agente nos damos cuenta que el problema de RoboCup Rescue cumple las características más importantes de este paradigma:

Un conjunto de agentes autónomos, generalmente heterogéneos y potencialmente independientes, trabajan en común resolviendo un problema. Existen diferente agentes: bomberos, policías, ambulancias y civiles.

Realizan tareas distintas, trabajan en común resolviendo un problema. Todos los agentes unen sus acciones para resolver un estado de emergencia.Quizás se podría matizar que los agentes civiles forman parte del objetivo de los otros agentes(deben ser rescatados) y no son parte de la solución en sí, pero sí forman parte del Sistema Multi­agente en cuestión.

En la RoboCup Rescue ningún agente tiene la capacidad de resolver el problema por sí solo.Por lo tanto, para que todos los agentes consigan el objetivo común deben:

Cada agente debe compartir su conocimiento para que sus acciones en conjunto sean más eficientes. Un bombero, por ejemplo, podría “reclutar” a otros bomberos para sofocar un incendio.

Tener capacidad de tomar la iniciativa. Un agente debe informarse o seguir buscando zonas en las que pueda colaborar, ya sea apagando incendios o rescatando civiles.

8.1.2 RoboCup Rescue Simulation

En la sección anterior comentamos los tipos de agentes que intervenían. En este apartado vamos a ver las partes en que se divide el simulador que se utiliza en la competición simulada de RoboCup Rescue y cómo se comunican entre sí. También veremos cómo se comunican los agentes y las acciones que pueden realizar.

RoboCupRescue Simulation System

El simulador es un sistema de tiempo real distribuido compuesto por varios módulos. La comunicación entre estos se lleva a cabo a través de una red.

Los módulos pueden ejecutarse en distintos ordenadores, distribuyendo de esta manera la carga computacional. Los módulos de que consta son:

• Sub­simuladores: son varios sub­módulos, cada uno de los cuales simula un desastre concreto. Por ejemplo, existe un módulo dedicado a simular la expansión del fuego por los edificios.

• Agentes: los agentes se pueden considerar como módulos que se comunican a través de la red con el Kernel. Son los agentes que los desarrolladores deben implementar, como por ejemplo, los equipos de extinción o las ambulancias.

• Kernel: maneja las comunicaciones entre los módulos y la simulación.• Geographical information system (GIS): Provee las condiciones iniciales del espacio de 

desastre (la ciudad).• Visualizador: Nos ofrece una visualización del estado de la ciudad en tiempo real.

En la siguiente figura, sacada del manual del simulador, se aprecian los distintos módulos:

22

Trabajo extra de IARobocups Primavera 07/08  

El espacio del desastre se modela mediante orientación a objetos, compuesto por los edificios, las carreteras y los humanos. Cada uno tiene propiedades como su posición, un identificador único, etc. Existen objetos que no se pueden mover (ríos, carreteras, edificios) y objetos de tipo Humanoid (equipos de rescate o civiles).

Agentes de rescate

Los agentes controlan las acciones de los objetos que acabamos de ver. Así, el objeto pasa a ser un objeto controlado: son los civiles, equipos de ambulancia, brigada de incendios, policía, y centros para los tres últimos.

Un agente que controla las acciones de un objeto ambulancia se denomina agente ambulancia. Los agentes se denominan por tanto, según el objeto que controlan.

Para tomar decisiones, los agentes perciben las circunstancias que les rodean(cognición) mediante la información "visual" que reciben del kernel deciden la acción que deben tomar según se hayan programado, y lo envían al kernel. Además, los agentes pueden comunicarse entre sí asíncronamente.

23

Trabajo extra de IARobocups Primavera 07/08  

Según el tipo de agente que sea, tendrá distintas facultades para su cognición y acciones. Reciben información "visual" mediante la capacidad sentir, e información "auditiva" mediante la capacidad oír.

Las acciones que pueden efectuar son mover, rescatar, cargar, descargar, extinguir y despejar. Otras acciones son las capacidades say y tell. En el siguiente cuadro, sacado del How to Develop a RoboCup Rescue Agent, se muestran las capacidades de cada tipo de agente:

Por último, los agentes se comunican con el kernel a través de una red mediante un protocolo específico (RCRSS protocol). Este protocolo utiliza a su vez el UDP.

8.1.3 RoboCup Rescue Robot

En esta sección veremos la tecnología utilizada en los robots de rescate de la actualidad en la RoboCup Rescue Robot League.

8.1.3.1 Scout

Unos tipos de robots actualmente para este tipo de problemas son los denominados robots Scout.Estos robots son plataformas robustas y flexibles que operan en situaciones adversas y cambiantes en misiones de reconocimiento y vigilancia sin ser detectados. Los Scout pueden realizar estas misiones con eficacia debido a su pequeño tamaño, sin embargo, este reducido volumen limita su capacidad de carga, de movilidad, de sensores y comunicación.

En una misión de reconocimiento y vigilancia sin embargo este tipo de robots pueden toparse con varios obstáculos que impiden que un solo robot o un solo tipo de robot sea capaz de cumplir su misión.Estos obstáculos pueden ser caminos estrechos, superficies no atravesables, limitaciones de tiempo para completar la misión, o el funcionamiento en un entorno dinámico y adverso.

Robots más grandes podrían adaptarse a algunas situaciones como transportar cargas pesadas, pero serían incapaces de sortear varios obstáculos como pasar a través de caminos estrechos.

24

Trabajo extra de IARobocups Primavera 07/08  

Un método de manejar este tipo de problemas es desarrollar un equipo de robots especializados que pueden distribuirse las tareas adecuadamente, en lugar de dejarlo todo en manos de un solo robot más grande.

Funcionalidades de los Scout

Los robots Scout fueron inicialmente desarrollados para lanzarlos a un edificio para saber si un edificio estaba ocupado o si se consideraba a salvo.Este objetivo inicial fue expandido a una misión de reconocimiento que consistiría en buscar, dentro de un edificio, supervivientes, en lugar de arriesgar vidas humanas o de perros de rescate en este tipo de misiones de alto riesgo.

El robot Scout actual, de segunda generación, consiste en un pequeño robot cilíndrico de unos 110mm de largo y 40mm de diámetro con ruedas en los extremos. Capaz de moverse a una velocidad de unos 0.31m/s. Y llevan a bordo varios sensores como una videocámara en blanco y negro y acelómetros.

Además de su capacidad motora para moverse a través de superficies planas, incorpora sistemas más sofisticados para sortear obstáculos, como por ejemplo un “spring foot” que hace saltar al Scout unos 22 centímetros de altura.

Algunos Scout además tienen la capacidad de modificar el diámetro de las ruedas pudiendo así adaptarse al medio y atravesar superficies con muchos obstáculos con facilidad.

Otros Scout tienen una especie de gancho que es lanzado hacia un objeto a una gran altura y de esta manera poder sortear objetos aún más grandes o escalar pendientes pronunciadas, además de obtener una visión aérea del terreno.

El gancho sin embargo no es la solución definitiva ya que su movilidad estará limitada por los objetos que están a determinadas alturas y tampoco tendrán una visión aérea completa.Otra de las aplicaciones que pueden llevar a bordo los Scout es una especie de globo relleno de helio que puede elevar el Scout muchos metros por encima del terreno, sorteando todo tipo de objetos o escaleras y obteniendo una vista de pájaro de todo el entorno. La navegación entonces es controlada con 3 ventiladores.

En operaciones bajo una baja iluminación, lo cual es bastante frecuente en desastres naturales, los Scout pueden llevar pequeños emisores de luz infrarroja con baterías adicionales.

25

Trabajo extra de IARobocups Primavera 07/08  

Identificación humana

Sin duda es una de las características más importantes e indispensables de estos robots.Llegado un Scout a una zona debe comprobar si hay supervivientes. Hay muchas maneras de detectar si hay alguien en el entorno o no. Sonido proveniente de movimientos o gritos de supervivientes o movimientos visuales pueden indicar que un superviviente está cerca. Sin embargo si un superviviente está inconsciente estos signos no existirán.

Para mejorar la probabilidad de encontrar supervivientes en estas situaciones, algunos Scout pueden ser equipados con videocámaras de color en lugar de las de blanco y negro para distinguir tonos de color de piel que pueden indicar la existencia de un superviviente.

8.1.3.2 COTS Scout

Como su nombre indica, los COTS(Commercial­Off­The­Shelf) Scout han sido desarrollados como un pequeño robot de fácil manejo y fabricación con hardware lo más estándar posible. El principal fin es el de reducir el coste de fabricación y complejidad del dispositivo limitándolo a una cámara portátil sin ningún tipo de procesamiento. Lo que ha hecho de él una plataforma móvil robótica de bajo coste.

Esta limitada funcionalidad ha hecho que tenga que ir siempre acompañada en sus misiones por una entidad, humana o robótica que controle sus actos, para lo cual fue creado el MegaScout.

Mientras que los prototipos originales de robots Scout tienen un coste del orden de miles de dólares, los prototipos de robots COTS Scout tienen un coste por debajo de los 300$.

El Scout original se basa en un sistema digital. Tiene comunicación digitales y micro­controladores para manejar sus operaciones. Aunque esto le permite tener funcionalidades más sofisticadas y más usos, esto añade un gran complejidad a su fabricación.

Los COTS Scout fueron diseñados para ser lo más simple posible manteniendo los objetivos de su diseño que son:

• Fabricación de bajo coste,• Gran alcance de comunicación,• Facilidad de mantenimiento,• Operaciones de bajo coste.

26

Trabajo extra de IARobocups Primavera 07/08  

Los COTS Scout fueron diseñados con equipamiento suficiente para realizar comunicaciones por radio control. El “spring foot” fue eliminado por su alto coste de producción, pero sus ruedas de tamaño variable se mantuvieron para poder atravesar una gran variedad de terrenos.

La comunicación por radios es capaz de recibir instrucciones desde aproximadamente entre 45 y 90 metros de longitud. Y el transmisor de video puede transmitir en aproximadamente entre 15 a 18 metros de longitud.

8.1.3.3 MegaScout

El MegaScout es un Scout más grande y una plataforma de sensores más poderosa que puede realizar tanto misiones junto con varios robots Scout o con otros MegaScout.

En misiones de soporte, el robot MegaScout puede ser equipado con un transmisor de instrucciones y receptores de video para comunicarse con un grupo de Scout. Y puede a su vez comunicarse con una estación base, incrementando el rango de comunicación de los Scout, actuando como una especie de Hub.

El MegaScout además está equipado con suficiente poder computacional para controlar un grupo de robots Scout. También puede llevar sensores demasiado grandes para robots Scout y puede operar en una gran variedad de entornos.

El MegaScout fue diseñado para soportar diferentes funcionalidades y el robot fue diseñado en base a ellas:

Diseño del Software:

Una arquitectura robusta y estable era necesaria para soportar la plataforma. La arquitectura debía proveer al desarrollador con una interfaz suficientemente abstracta para que el hardware pudiera ser cambiado o se pudieran añadir hardware con pequeños cambios o sin cambios de las funciones de alto nivel.

Utiliza archivos XML para definir el conjunto de sensores y actuadores mecánicos del robot, de manera que el robot modifica su comportamiento sin necesidad de modificar el código del mismo.

Diseño electrónico:

La electrónica fue diseñada para soportar una gran variedad de sensores. El dispositivo necesita un procesador central de 32 bits. El sistema ha de ser suficientemente robusto para que los bugs de software no lo dañen.

Utiliza un procesador Pentium a 166MHz, 128MBytes de RAM y 128MBytes de memoria Flash.Debido a los rápidos cambios en los protocolos de comunicación, tiene soporte para instalar nuevas tarjetas de módulos de comunicación, como por ejemplo Wifi o Bluetooth.

Llevan transmisores analógicos similares a los del COTS Scout, pero con más alcance.

Diseño mecánico:

27

Trabajo extra de IARobocups Primavera 07/08  

El robot debía soportar el impacto de caída o al haber sido lanzado. Debía operar en diferentes tipos de terreno y tener un soporte modular adaptable a actualizaciones futuras.

Es resistente al agua y a condiciones climatológicas adversas. Los sensores están cubiertos por materiales transparentes como poli carbonato.

8.2Otras aplicaciones

A parte del rescate en desastres naturales, se ha adaptado la tecnología desarrollada a través de la RoboCup en diferentes aplicaciones de la actualidad, aunque de momento las aplicaciones surgidas sirven poco más que como un entretenimiento. No cabe duda que ya hayan sido utilizadas diferentes tecnologías desarrolladas en la RoboCup pero ninguna de momento ha sido significativamente importante.

8.2.1 Mascotas robóticas

Una de las aplicaciones promovidas por la RoboCup más populares son las mascotas robóticas o virtuales. Normalmente perritos o gatitos robóticos que simulan las capacidades motrices y sensoriales de sus semejantes reales.

El más popular es el robot AIBO de Sony, hasta hace poco el robot oficial en la Standard Platform League.

Presentado en 1999, AIBO es uno de los juguetes más sofisticados que se pueden encontrar en el mercado. Usa una combinación de tecnologías robóticas y multimedia e inteligencia artificial para hacer posible que una serie de hardware y software, normalmente “inanimado”, pueda tratarse como si fuera un compañero interactivo.

28

Trabajo extra de IARobocups Primavera 07/08  

Bajo una “vestimenta” en forma de perro, el Aibo genera interacción con su dueño: Es capaz de reconocer los gestos e incluso la actitud corporal de su dueño. Es sensible a las caricias, tiene una enorme capacidad de movimientos, equilibrio y flexibilidad, y lo más importante: aprende.

8.2.2 Asistentes personales

Ya existen empresas que se dedican a fabricar una especie de centro de asistencia personal robótico para discapacitados o gente muy caprichosa.

La empresa Robosoft Advanced Robotic Solucions es una de las empresas que ya fabrica y vende este tipo de productos.

29

Trabajo extra de IARobocups Primavera 07/08  

8.2.3 Seguridad

En el campo de la seguridad posiblemente sea uno de los campos que podría verse más beneficiado de las funcionalidades desarrolladas en al RoboCup. Los robots han de visualizar varios objetos del campo, compartir información, crear un modelo virtual del mundo y actuar consecuentemente. Este tipo de razonamiento encajaría perfectamente en un sistema de seguridad con cámaras de video, aunque seguramente este sea uno de los campos más desarrollados sin necesidad de utilizar la RoboCup como inspiración.

Aquí hay un ejemplo de cámara de seguridad inteligente, desarrollada por Sony.

Sony entra en el mercado de las cámaras de seguridad con la cámara inteligente SNC­CS50P. Esta cámara es inteligente porque puede detectar objetos no detectados previamente y movimientos humanos. Además, tiene funciones que hacen que funcione bajo condiciones de poca luminosidad. Incluso mejor, esta cámara puede funcionar sobre Ethernet, por lo tanto es plug­and­play.

30

Trabajo extra de IARobocups Primavera 07/08  

8.3Posibles futuras aplicaciones

En el futuro posiblemente este tipo de soluciones sea adaptada a problemas que hasta ahora no se han podido desarrollar debido a la falta de tecnología.

La creación de sistemas integrados robóticos inteligentes posiblemente sea uno de los campos con más proyección en el futuro. Por ejemplo, el desarrollo de un sistema que haga que los coches conduzcan solos sin la interacción de ningún ser humano. Y de hecho ya hay estudios que lo ven posible en un futuro no demasiado lejano:

Investigadores estadounidenses trabajan en el desarrollo del vehículo inteligente del mañana, que será capaz de conducir sin ayuda humana, una ficción que, según los investigadores, debería ser una realidad de aquí a 2030.

9 Bibliografía

RoboCup Official Site http://www.robocup.org/

RoboCup 2008 China http://www.robocup­cn.org/en/

Ejemplo programación portero http://www.colinm.org/blog/creating­robot­behaviors­with­python­generators

Publicaciones de Colin McMillen http://www.colinm.org/publications

Nanofutbol http://eltamiz.com/2007/06/29/nanofutbol­en­la­robocup/

Nanogram competition http://www.eeel.nist.gov/812/nanogram/index.html

Nanosoccer http://www.nist.gov/public_affairs/calmed/robocup_photos.html

Khepera III especificaciones http://www.k­team.com/kteam/index.php?site=1&rub=22&page=197&version=EN

Robosoft Advanced Robotic Solucions http://www.robosoft.fr/eng/

Borregos Robocup http://robocup.mty.itesm.mx/index.php/pages/home

Virtual Werder 3D http://anstoss.informatik.uni­bremen.de/index.php

Historia de la Robocup http://www.sonycsl.co.jp/person/kitano/RoboCup/RoboCup­old.html

31

Trabajo extra de IARobocups Primavera 07/08  

Fotos http://www.robocup2006.org/sixcms/detail.php?id=117&lang=en

RoboCup Rescue Blog http://robocuprescue.blogspot.com/ 

Robótica http://www.gsi.dit.upm.es/~gfer/ssii/trabajos2005/Robotica_y_Robocup_­_Emilio_Casamayor.pdf 

Robot Aibo http://es.wikipedia.org/wiki/Aibo 

Coches inteligentes http://www.laflecha.net/canales/ciencia/noticias/los­coches­inteligentes­dominaran­la­carretera­en­2030

32