290 likes | 390 Views
Eduardo José Torres Sampaio Rocha Paulo Gustavo Soares Fonseca. O que é RoboCup.
E N D
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-RoboCup-96 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 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.
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.
Time A Time B Client 1 Client 1 UDP/IP UDP/IP Client 11 Client 11 Arquitetura Soccer Server
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.
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. Inicia-se 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. Inicia-se 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.