Eduardo José Torres Sampaio Rocha Paulo Gustavo Soares Fonseca O que é RoboCup RoboCup - abreviação de Robot World Cup Initiative é uma iniciativa internacional de educação e pesquisa que objetiva impulsionar as pesquisas na área de IA e robótica propondo um problema real onde diversas tecnologias podem ser integradas. Para este propósito, a RoboCup utiliza o jogo de futebol como framework para a aplicação destas diversas teconologias.. Histórico 1992: Prof. Alan Macworth propõe a idéia de robôs jogarem futebol em seu paper “On seeing robots” . Outubro/1992: Um grupo de pesquisadores japoneses promovem workshop para discutir os grandes desafios da robótica. Junho/1993: Um grupo de pesquisadores japoneses lançam uma competição de robótica - a Robot-J-League. 1993: Antendendo a apelos da comunidade científica, a Robot-J-League toma contornos internacionais e torna-se a Robot World Cup Initiative - RoboCup. Histórico 1994/5: Itsuki Noda e sua equipe da ETL (EletroTechnical Laboratories - Japão) anunciam o SoccerServer 0 (LISP), o primeiro siestema de simulação aberto para futebol baseado no princípio de multi-agentes. Esta versão fora brevemente substituída pela versão 1 (C++) distribuída via www. 1995: Durante a International Joint Conference of Artificial Intelligence (IJCAI) foram anunciados os jogos da 1a. RoboCup a serem realizados durante a IJCAI-97. Histórico Novembro 1996: É realizada a Pre-RoboCup96 durante a International Conference on Intelligent Robotics and Systems em Osaka Japão. 1997: Acontece 1a. RoboCup oficial com mais de 40 competidores e 5000 expectadores. 1998: A 2a. RoboCup Internacional é realizada paralelamente à Copa do Mundo da França em Paris . Organização Atualmente, a competição é dividida mas seguintes quatro categorias: Simulador Robôs Pequenos Robôs Médios Robôs Médios com pernas Sony Robôs Pequenos Esta categoria é disputada por times de no máximo 05 robôs. Cada robô ocupa um área máxima de 180cm2,. As dimensões do campo de jogo são 152.5cm x 274cm, o que equivale a uma mesa de pingue-pongue. A bola utilizada é uma bola de golf alaranjada. As partidas são disputadas em dois tempos de 10min. com morte súbita em caso de empate. Robôs Pequenos Robôs Médios Esta categoria é disputada por times de no máximo 05 robôs. Cada robô ocupa um círculo máximo de 50cm de diâmetro. As dimensões do campo de jogo são 457.5cm x 822cm. A bola utilizada é uma bola de Futsal tamanho 4. As partidas são disputadas em dois tempos de 5min. com morte súbita em caso de empate. Robôs Médios RoboCup Categoria Simulador Introdução A divisão simulador da RoboCup tem como objetivo oferecer um ambiente para experimentação com os conceitos de software envolvidos. É a categoria mais acessível da competição. Para participar basta saber programar e ter noções de IA. Pode ser implementado em qualquer paradigma de programação, desde que a linguagem escolhida tenha suporte a socket. Componentes O Servidor (Soccer Server) Responsável pela modelagem e manipulação do ambiente (campo de jogo). Simula o movimento da bola e dos jogadores atualizando o “estado” do mundo periodicamente em intervalos típicos de 100ms. Os Clientes Um cliente é um programa que se conecta ao servidor e controla exatamente um jogador. Cada time é composto de 1~11 clientes. Arquitetura A divisão simulador da RoboCup baseia-se na arquitetura cliente/servidor. Os clientes comunicam-se com o servidor via pacotes UDP/IP. A comunicação entre clientes é efetuada via servidor. O Conteúdo destes pacotes são strings ASCII. Arquitetura Time A Time B Client 1 Client 1 UDP/IP Client 11 Soccer Server UDP/IP Client 11 Soccer Server É um programa que cria um campo “virtual” por onde dois times podem jogar futebol. O campo e os objetos sobre ele são considerados em 2 dimensões. Tanto os jogadores como a bola são representados por círculos. Soccer Server O Cliente Clientes são programas conectados ao servidos que controlam jogadores. O cliente obtém informações sobre o ambiente (percepções) através do servidor. A partir destas informações, o cliente atualiza sua concepção do mundo e efetua ações sobre o ambiente (também através de mensagens transmitidas ao servidor). Os sentidos básicos do cliente são a audição e a visão. As ações básicas do cliente são: virar-se, deslocar-se, chutar e falar. Percepções do Cliente (Visão) O jogador é capaz de enxergar objetos que se encontram nos seguintes locais: No interior do seu campo visual ou cone de visão. Em qualquer direção no raio de 3m - entretanto, neste caso, se o objeto estiver fora do cone de visão, o jogador só será capaz de identificar o tipo do objeto (jogador, bola, gol, etc.) e não qual objeto especificamente. As informações visuais passadas pelo servidor ao cliente informam sua posição relativa a outros objetos no campo e não suas coordenadas absolutas em relação ao campo Percepções do Cliente (Visão) A visão do jogador possui dois parâmetros que podem ser ajustados durante os jogos: Ângulo do Cone de Visão: determina a amplitude do campo visual: - 45o (modo narrow) - 90o (modo normal) - 180o (modo wide) Qualidade da Visão: determina a quantidade de informação contida num estímulo visual: - Modo high - informa direção, distância, mudança na direção e mudança na velocidade- Modo low - informa apenas a direção. Percepções do Cliente (Visão) A freqüência da informação visual passada ao jogador depende do seu modo de visão: No modo normal/high, a taxa típica é de 1 estímulo a cada 300ms. Se o ângulo é incrementado, a taxa é reduzida à metade. Se o ângulo diminui, a taxa é dobrada. Exemplos: wide/high = 600ms, narrow/normal=150ms. A mesma relação é valida para a o critério qualidade. Exemplo: narrow/low = 75ms Percepções do Cliente (Visão) A precisão da informação visual passada ao jogador depende da sua distância em relação ao objeto enxergado: quanto mais próximo do objeto, maior a veracidade da informação passada pelo servidor com respeito exclusivamente ao parâmetro “distância”. Percepções do Cliente (Audição) O jogador também pode obter informações auditivas que são frutos de mensagens transmitidas por outros jogadores e pelo árbitro. Cada jogador pode escutar mensagens de objetos que estejam a uma distância de até 50m. Cada jogador pode receber no máximo uma informação auditiva a cada ciclo, sendo que a cada dois ciclos só uma mensagem pode ser do seu time, tendo a outra que ser do time adversário. Ações do Cliente Virar-se: Gira o jogador numa direção especificada. Deslocar-se: Movimenta o jogador com uma “energia” especificada. Chutar: Chuta a bola numa certa direção e com uma certa energia. Falar: Transmite uma mensagem para os demais jogadores. Ações do Cliente No início da partida cada jogador possui uma energia (stamina) de 2000 unidades. Ao efetuar uma ação (deslocar-se ou chutar) com uma certa energia X, sua energia total é decrescida deste valor. Se o jogador não dispuser das X unidades, a ação é efetuada com toda a energia que ele dispõe. A cada ciclo sem efetuar uma ação, o jogador recupera 20 unidades até o máximo de 2000 unidades. Arbitragem Algumas situações são controladas automaticamente pelo Soccer Server: gol bola fora distância regulamentar (tiro de meta e faltas) modos de jogo início, intervalo e fim de jogo Outras são julgadas pelo comissário (operador do Soccer Server): jogadas desleais O Processo de uma Partida 1. Cada cliente conecta-se ao servidor via um comando init. 2. Quando todos os clientes estiverem prontos, o comissário (operador do servidor) inicia a partida pressionando o botão kick-off. Iniciase o 1o. tempo. 3. O primeiro tempo dura cerca de 05 minutos. Após este tempo, o servidor suspende a partida. 4. O intervalo dura 05 minutos. Durante o intervalo, os competidores podem substituir os clientes. O Processo de uma Partida 5. Antes do 2o. Tempo, todos os clientes devem reconectar-se ao servidor via um comando reconnect. 6. Quando todos os clientes estiverem prontos, o comissário (operador do servidor) inicia a partida pressionando o botão kick-off. Iniciase o 2o. tempo. 7. O segundo tempo dura também cerca de 05 minutos. Após este tempo, o servidor pára a partida. 8. Em caso de empate, proceder-se-á a uma prorrogação com morte súbita. FIM