Introducción a RoboCup José Ignacio Núñez Varela jnunez@uaslp.mx josenunezvarela.com Universidad Autónoma de San Luis Potosí © The RoboCup Federation ¿Qué es RoboCup? • RoboCup es una iniciativa de educación e investigación internacional • Objetivo: • Proveer un problema estándar (fútbol) • Evaluación y prueba sencilla • Incrementar la investigación en I.A. y robótica • Acontecimiento histórico © The RoboCup Federation Meta de RoboCup “Para mediados del siglo 21, un equipo de jugadores robot humanoides completamente autónomos deberán ganar un juego de fútbol, de acuerdo con las reglas oficiales de la FIFA, contra el ganador de la copa mundial de fútbol más reciente.” The RoboCup Federation © The RoboCup Federation ¿Es Posible Alcanzar la Meta? Primer avión - 1903 ENIAC - 1946 Viaje a la Luna - 1969 IBM Deep Blue - 1997 © The RoboCup Federation ¿Es Posible Alcanzar la Meta? • Más de 4,000 investigadores de más de 40 países se encuentran trabajando en diversos proyectos: • Juegos internacionales • Conferencias • Talleres • Programas educacionales © The RoboCup Federation Ajedrez vs. RoboCup Ajedrez RoboCup Ambiente Estático Dinámico Cambio Estados Por turnos Tiempo real Información Completa Incompleta Sensores Simbólicos No simbólicos Control Central Distribuido © The RoboCup Federation Historia de RoboCup • 1993: Estudio de factibilidad • 1995: Anuncio oficial de RoboCup • 1997: RoboCup-97; Nagoya, Japan • 1998: RoboCup-98; Paris • 1999: RoboCup-99; Stockholm • 2000: RoboCup-2000; Melbourne • 2001: RoboCup-2001; Seattle • 2002: RoboCup-2002; Fukuoka/Busan © The RoboCup Federation Historia de RoboCup • 2003: RoboCup-2003; Padua • 2004: RoboCup-2004; Lisbon • 2005: RoboCup-2005; Osaka • 2006: RoboCup-2006; Bremen © The RoboCup Federation RoboCup-2007 http://www.robocup-us.org RoboCup-2008: Suzhou, China © The RoboCup Federation Dominios en RoboCup • RoboCupSoccer • RoboCupRescue • RoboCupJunior • RoboCup@Home © The RoboCup Federation RoboCup Soccer • El enfoque principal de las actividades de RoboCup es el fútbol competitivo • Los juegos de fútbol son una manera excelente de intercambiar información técnica y científica • El fútbol también sirve para entretener y educar al público © The RoboCup Federation RoboCup Soccer • RoboCupSoccer está dividido en las siguientes ligas: • Liga de Simulación • Liga de Robots de Tamaño Pequeño (f-180) • Liga de Robots de Tamaño Mediano (f-2000) • Liga de Robots Cuadrúpedos • Liga de Humanoides © The RoboCup Federation Liga de Simulación • Jugadores de software (agentes) con movimientos independendientes juegan fútbol en un campo virtual dentro de una computadora • Los juegos son de 5 minutos por tiempo © The RoboCup Federation Liga de Simulación • Dentro de esta liga se encuentran 5 categorías: • Simulación 2D • Simulación 3D • Desarrollo en 3D • Implementación del Coach • Exhibición de Comentaristas © The RoboCup Federation Liga de Robots de Tamaño Pequeño • Robots de no más de 18 cm de diámetro juegan con una pelota de golf naranja en equipos de máximo 5 robots en un campo del tamaño de una mesa de ping-pong • La duración es de 10 minutos por tiempo © The RoboCup Federation Liga de Robots de Tamaño Mediano • Robots de no más de 50 cm de diámetro juegan en equipos de máximo 4 robots con una pelota de fútbol naranja en un campo de 12 x 8 metros • La duración es de 10 minutos por tiempo © The RoboCup Federation Liga de Robots Cuadrúpedos • Equipos de 4 robots AIBO (de Sony) juegan fútbol en un campo de 3 x 5 metros • La duración es de 10 minutos por tiempo © The RoboCup Federation Liga Humanoide • Esta liga se introdujo en el 2002 • Robots humanoides bípedos autónomos juegan penalties y juegos de "1 vs. 1", " 2 vs. 2" • También se hacen competencias de categoría libre © The RoboCup Federation Liga Humanoide • Video Humboldt • Video BreDoBrothers • Video Osaka Team RoboCup Rescue • Su objetivo es promover la investigación y desarrollo en el dominio del rescate de desastres • RoboCupRescue se divide en dos ligas: • Liga de Robots de Rescate • Liga de Simulación de Rescate © The RoboCup Federation RoboCup Rescue • Involucra un gran número de robots heterogéneos en un ambiente hostil • Coordinación y trabajo de equipos multi-agente • Agentes robots para búsqueda y rescate • Infraestructura de la información • Asistentes personales digitales (PDA’s) • Sistemas de soporte a decisiones • Bases de evaluación para estrategias de rescate © The RoboCup Federation Liga de Simulación de Rescate • Se evalúa al equipo con la mejor estrategia de rescate • Simulación de un ambiente de desastre urbano genérico © The RoboCup Federation Liga de Robots de Rescate • Utilizando sitios duplicados de desastres reales, un equipo de múltiples robots (autónomos o teleoperados) compiten en velocidad y fidelidad en misiones de búsqueda y rescate © The RoboCup Federation RoboCup@Home • Se enfoca en aplicaciones del mundo real e interacción humano-computadora con robots autónomos • El objetivo es promover el desarrollo de robots que ayuden en nuestra vida diaria • El ambiente de trabajo involucra la cocina, la sala y otras habitaciones de una casa © The RoboCup Federation RoboCup@Home • La primera demostración fue en Bremen © The RoboCup Federation RoboCup Junior • RoboCupJunior es una iniciativa educacional orientada a proyectos que patrocina eventos locales, regionales e internacionales para estudiantes jóvenes • Está diseñada para introducir RoboCup a estudiantes de primaria y secundaria, así como de licenciatura que no tienen los recursos para involucrarse en las otras ligas © The RoboCup Federation RoboCup Junior • RoboCupJunior se divide en: • Desafío de Fútbol • Desafío de Baile • Desafío de Rescate © The RoboCup Federation Desafío de Fútbol • Equipos de 1 o 2 robots preprogramados • Juegos de 10 minutos por tiempo • Se utiliza una pelota infrarroja • El campo es de un tono gris © The RoboCup Federation Desafío de Baile • Los robots con la mejor secuencia de baile, de dos minutos de duración, ganan • Se compite en creatividad y coreografía © The RoboCup Federation Desafío de Rescate • Se compite para ver que robot es el primero en rescatar víctimas de escenarios de desastre artificiales © The RoboCup Federation Tecnologías de RoboCup • Sistemas Multi-Agentes • Comunicación y Atención Conjunta • Robótica en Red / Robótica Ubicua • Reconocimiento de Ambientes en Tiempo Real / Planeación / Predicción / Sistemas de Generación de Acciones • Desarrollo de Hardware/Software para Visión en Tiempo Real • Control y Generación de Comportamiento de Humanoides © The RoboCup Federation Tecnologías de RoboCup • Aprendizaje / Desarrollo / Computación Evolutiva para Robots • Asociación de Información de Múltiples Sensores • Sistemas de Acción para Apoyo a Rescates de Larga Escala • Kits de Robots para Educación y Entretenimiento • Simulador de Super Precisión de Cambio Ambiental en 3D y Tiempo Real © The RoboCup Federation Video RoboCup 2005 – Osaka, Japón RoboCup Soccer Server RoboCup Soccer Server • La liga de simulación fue la primera competencia formal • Es muy atractiva y popular porque no requiere usar robots reales • Nos podemos enfocar en problemas que no requieren el conocimiento de mecánica, electrónica, etc. © The RoboCup Federation RoboCup Soccer Server RoboCup Soccer Server • Comunicación Cliente/Servidor vía UDP/IP • Múltiples lenguajes pueden usarse (C++, Java, etc.) • Puede ejecutarse en la misma máquina o en red • Los clientes no se pueden comunicar entre ellos • Los monitores se usan para visualizar la simulación • Los entrenadores son opcionales y son una guía para los jugadores RoboCup Soccer Server Estrategia de Toma de Decisiones Entrada sensorial Servidor Cliente Comandos de salida RoboCup Soccer Server • Entrada sensorial: • Hear (instantáneamente) • See (150 ms) • Sense_body (100 ms) RoboCup Soccer Server • Mensaje para escuchar: (hear Time Sender “Message”) • Sólo se escucha en un cierto rango • Un mensaje enviado cada ciclo RoboCup Soccer Server • Mensaje para ver: (see Time ObjName Distance Direction DistChange DirChange BodyDir NeckDir) RoboCup Soccer Server RoboCup Soccer Server • Mensaje para sentir: (sense body Time (view_mode ViewQuality ViewWidth)(stamina Stamina Effort) (speed AmountOfSpeed DirectionOfSpeed) (neck_angle NeckAngle)(kick KickCount)(dash DashCount) (turn TurnCount)(say SayCount)(turn_neck TurnNeckCount) (catch CatchCount)(move MoveCount) (change_view ChangeViewCount)) RoboCup Soccer Server • Comandos de acciones: RoboCup Soccer Server • Árbitro: • Árbitro automático (no para algunas jugadas) • Controla las formas de juego durante el partido • Entrenador: • Entrenador Offline (entrenar) • Entrenador Online (Analiza el partido al momento de jugar) RoboCup Soccer Server RoboCup Soccer Server • Enfoques: • Redes neuronales • Comportamiento codificado • Comportamiento en scripts • Aprendizaje por capas • Programación genética Referencias http://www.robocup.org http://sserver.sourceforge.net Información Personal jnunez@uaslp.mx josenunezvarela.com