LEVANTAMENTO DE ESTRATÉGIAS DE GRANDES
Transcrição
LEVANTAMENTO DE ESTRATÉGIAS DE GRANDES
LEVANTAMENTO DE ESTRATÉGIAS DE GRANDES EQUIPES DA CATEGORIA SMALL-SIZE Autor: Denis de Castro Pereira Supervisão: André Luiz Carvalho Ottoni Departamento de Software – Equipe UaiSoccer Robot Team Universidade Federal de São Joao Del-Rei – UFSJ São João Del-Rei, 2010 Denis de Castro - Departamento de Software Equipe UaiSoccer Robot Team – 2010 1. RoboDragons (Japão) Ano: 2008 • Habilidade de cooperação entre 3 robôs: essa habilidade é chamada de “1-2-3 chuta”, que executa uma série de passes e, em seguida, um tiro à meta. Para colocar cada robô em sua posição adequada, é fundamental conseguir com sucesso essa cooperação. • Método da região dominante: O método de região dominante é um tipo de diagrama de Voronoi. É calculado com relação a dois agentes, um dos quais é um colega e o outro é um adversário. O diagrama divide a área do campo de futebol em duas regiões, onde uma região é a que a equipe pode chegar mais rápido do que o adversário, enquanto a outra é a que o adversário pode chegar mais rápido. • Algoritmo para o tiro 1-2-3: [Processo de Seleção de ação] Seja A o robô segurando a bola, e sejam B e C os robôs que colaboraram. if (Robot A have a shoot line) { Robot A shoots.} else { Search open space which is able to make a shooting line. Robot C moves to the open space. Calculate a dominant region. if (Pass line is in the dominant region of the teammate) {Direct play between robots A and C.} else { Robot B moves to the appropriate position. 1-2-3 shoot play among robots A, B and C. } } • Posicionamento inicial: O robô A tem a posse da bola e joga por um dos lados do campo, o robô B é o robô de posicionamento central (um pouco recuado em relação a A e C), e o robô C joga pelo outro lado. O objetivo é uma troca de passes rápida entre os 3 robôs a fim de ludibriar a marcação dos zagueiros do time rival e um conseqüente tiro ao gol numa linha livre, ou seja, sem nenhum corpo a frente do gol. 1º Passo: O robô C se move para o espaço aberto que tem uma linha de tiro ao objetivo. 2º Passo: Se a linha de passe atravessa a região dominante do oponente, o robô B se move para frente até sair dessa região. Como resultado, uma linha da passagem é feita nessa região dominante (se este não for o caso, um re-agendamento é realizado). O robô B vira para o robô C. 3º Passo: O robô A passa a bola para o robô B, então o robô B a passa para o robô C, de acordo com o algoritmo de execução direta. 4º Passo: O robô C chuta a bola em direção ao gol. 2 Denis de Castro - Departamento de Software Equipe UaiSoccer Robot Team – 2010 2. GEAR (USP - São Paulo) Ano: 2008 O time é primeiramente dividido entre goleiro e linha, onde o goleiro obviamente é responsável por não deixar a bola entrar no gol e ficar sempre protegendo o mesmo, enquanto os outros robôs do tipo linha têm um conjunto de comportamentos baseados em mapas potenciais. Assim, os robôs de linha usam um sistema de Inteligência Artificial (IA) híbrida. Esta IA é composta pelos seguintes comportamentos: • get ball - movimenta o robô para chegar até a bola; • make pass - o robô procura e executa um passe; • wait pass - o robô espera o passe de quem está com a bola; • shoot - tenta chutar para o gol; • defend - tenta ficar entre a bola e o gol. • Esses são os possíveis comportamentos dos robôs, sendo que um dado robô possui um destes comportamentos num dado momento do jogo. Este comportamento é dado por uma função de motivação, a qual é definida por um conjunto de variáveis que favorecem a utilização de um dado comportamento. • Todos os comportamentos citados acima utilizam os mapas potenciais para executar a navegação (quando necessária), ou para tomar uma decisão que leve a execução de um comportamento (como por exemplo, o robô que está menos marcado). 3 Denis de Castro - Departamento de Software Equipe UaiSoccer Robot Team – 2010 3. Furgbol (RS) Ano: 2008 • São Assumidos robôs e bola como agentes. A máquina de estado está associada a cada agente. Uma Central de Sistema Deliberativo percebe o ambiente (estado do agente) e possíveis planos de ações associados a cada membro da equipe. Esta fase tem dois módulos principais: o Módulo de Visão Global e o Módulo de Planejamento. • O sistema de captura e processamento de imagens da FURG em 2008 era o sistema RGB (red-green-blue), o módulo de Visão global se definia nesse sistema. • Todas as informações extraídas através do sistema de visão são enviadas para o sistema de estratégia que irá planejar e tomar decisões que nortearão os robôs através do campo de jogo. Com as posições atuais e passadas, o Módulo de planejamento nos dá a melhor ação associada a cada membro da equipe. • O módulo de planejamento é baseado em um modelo de mundo em que cada agente tem um estado no jogo. Ele está relacionado com o estado dos jogadores e da bola. As transições são dadas em função da dinâmica durante o jogo. • Etapa de percepção: Esta etapa transforma posição e informações de velocidade em estados associados a cada agente. Um conjunto de estados e transições (ações) são definidos para os estados da bola. Eles são definidos com base nas posições relativas entre robôs e bola. Estado DISPUTADO POSSSE LIVRE ADVERSÁRIO GOL Descrição 2 robôs adversários estão perto da bola Apenas robôs companheiros estão perto da bola Nenhum robô perto da bola Apenas robôs adversários estão perto da bola A bola está nos limites do gol Ação Recuperar a bola do adversário Se mover (com a bola) Se mover (sem a bola) Seguir o adversário Chutar • Para a estratégia do goleiro tem-se o cálculo da intersecção entre uma linha reta vertical (paralela à linha do meio) que cruza o centro do eixo do gol e uma linha reta obtida a partir da posição atual e anterior da bola. O ponto de intersecção é para onde o robô deve mover-se. • A estratégia do defensor usa como informação a posição topológica da bola, para mover o robô para a defesa da meta. Cada área tem uma linha vermelha vertical, que 4 Denis de Castro - Departamento de Software Equipe UaiSoccer Robot Team – 2010 representa o seu centro. Esta estratégia calcula a interseção entre esta linha vermelha e uma linha reta criada a partir da posição atual e anterior da bola. O ponto de interseção representa para onde um robô de defesa deve ir. • O papel do atacante é dividido em três diferentes estratégias, de acordo com a bola e localização de robôs. • A primeira é aplicada quando o robô mais próximo à bola pode atacar. Ele ativa o dispositivo de drible e vai em frente carregando a bola ou chuta na direção do gol oposto. Ela acontece quando uma linha reta do centro da bola e do centro deste robô cruza a linha reta vertical da meta, resultando em um ponto dentro dos limites da meta. • A segunda estratégia de ataque ocorre quando a interseção anteriormente descrita resulta em um ponto fora dos limites do gol oposto. Neste caso, o robô deve ser colocado em uma posição válida para que ele possa carregar a bola para o gol. Esta posição pode ser obtida pela interseção de uma linha reta que une os centros do gol adversário e da bola com uma circunferência de raio pré-definido centrado na bola. • A última abordagem acontece quando a interseção da primeira estratégia de aproximação resulta em um ponto fora dos limites da meta oposta e a bola não está entre o robô e a meta oposta. Neste caso, uma intersecção entre uma linha reta vertical que passa pelo centro da bola e uma circunferência com um raio prédefinido centrado na mesma é realizada. Depois disso, a segunda e a primeira estratégia de aproximação são aplicadas. • Cada uma destas três funções básicas fornece uma posição alvo para onde cada robô deve mover-se. Além disso, o módulo de planejamento decide quando um robô deve girar ou ativar o dispositivo de drible ou de chute. Estas ações acontecem quando o robô está suficientemente próximo da bola para carregá-la ou chutá-la. A fim de driblar ou chutar, o robô deve girar de forma que os dispositivos se posicionem em frente à bola. O robô gira se o ângulo entre a sua frente e a posição correta é menos de uma constante definida na interface. • A etapa de planejamento define o movimento do robô para chegar à posição alvo evitando obstáculos. Assim, primeiro é verificado se uma trajetória linear para a posição de destino é possível, sem qualquer colisão. Em seguida, a trajetória e os obstáculos no campo são considerados como polígonos. Se um dos vértices de um polígono que representa um obstáculo está dentro do polígono da trajetória, haverá uma colisão. • Se o caminho em linha reta não é possível, aplica-se o método de decomposição aproximada da pilha. Esta abordagem permite um planejamento de trajetória do robô, sem qualquer colisão. Este método foi escolhido por ser simples, para fornecer uma decomposição uniforme e de ser adequado para viabilizar a realização de Precisão. 5 Denis de Castro - Departamento de Software Equipe UaiSoccer Robot Team – 2010 • O método divide o campo em três células possíveis: vazia, ocupada ou de mistura. As células vazias não contêm obstáculos em seu interior. As cheias são completamente cheia de obstáculos. A célula de mistura contém uma parte cheia de obstáculos e algumas partes vazias. As células de mistura são obtidas dividindo-se o quadro principal pelo recuo das células até que ele receba um tamanho mínimo de células, ou até que não fique nenhuma célula vazia ou cheia. Se escolhermos um bom tamanho mínimo, suficiente para evitar obstáculos, temos um tempo de processamento razoável. • Partindo do princípio de que, no final do processo, as células que foram divididas estão cheias ou vazias, um gráfico é criado ligando as células vazias vizinhas. Para uma célula ser vizinha de outra, um ponto comum é o suficiente. Posteriormente, é executado um algoritmo de caminho mais curto que usa a ”Programação dinâmica de Dijkstra”. No nosso gráfico, este algoritmo dá o caminho mais curto entre dois nós (células vazias), dando uma trajetória otimizada prevista para cada robô, sem colisão. • O planejamento de caminho é convertido em Vetores de velocidade e enviado para os robôs. 6 Denis de Castro - Departamento de Software Equipe UaiSoccer Robot Team – 2010 4. Botnia Dragon Knights (China-Finlândia) Ano: 2008 A estratégia foi um pouco alterada em relação ao ano anterior. A mudança mais importante é a inexistência da atribuição de “posições” aos robôs, ou seja, não existem atacantes ou defensores. Em vez disso, concentrou-se na atribuição de tarefas mais adequadas para certos robôs em um determinado tempo: - Goleiro – a regra é única e exclusiva do goleiro, defesa da meta. - TakeBall - é uma tarefa confiada ao robô mais próximo da bola. Ele tenta chegar a bola e, se possível disparar para o gol ou passar para outro robô que têm melhor posição para disparar. - ProtectGoal - o robô tenta cobrir o caminho para o gol da melhor forma possível. Ele tenta chegar ao oponente a certa distância e bloqueia o caminho para a meta. - Defender - abrange os robôs adversários livre, torna-os incapazes de receber um passe. - FindClearSpot - vai para uma posição de onde se pode receber um passe de outro robô do time e tem o caminho da meta livre para o chute. • Para o Goleiro, a tarefa é atribuída de antemão, e não muda durante o jogo. TakeBall é atribuído ao robô mais próximo da bola. A estratégia calcula o custo de cada tarefa para cada robô e em seguida, atribui tarefas a robôs, de modo que o custo total seja o menor possível. • Este sistema garante que a eficiência seja muito alta, com os robôs fazendo menos trabalho, sendo mais rápidos, e consumindo menos energia. A maior vantagem do sistema é que a estratégia não é esquemática. As posições não são previamente definidas e, assim, torna mais difícil a previsão para as equipes adversárias. 7 Denis de Castro - Departamento de Software Equipe UaiSoccer Robot Team – 2010 5. B-Smart (Alemanha) Ano: 2008 A principal característica dessa equipe é a divisão entre três instantes de estratégia: antes, durante e depois do desenvolvimento da jogada. Um agente prevê a parte de inteligência artificial do sistema de software. Ele recebe uma representação abstrata do mundo (o modelo do mundo) e calcula vetores de movimento de cada robô da própria equipe. A fim de facilitar a leitura de dados, a aplicação é dividida em três módulos básicos: pré-comportamento, comportamento e pós-comportamento. O módulo de pré-comportamento extrai informações gerais, mas necessárias do modelo de mundo real, por exemplo, uma formação adequada. Alguns módulos tentam adivinhar se um comportamento anteriormente escolhido funcionou bem para a própria equipe e calcula dados utilizados mais tarde no processo decisório. Os módulos de comportamento consistem basicamente no cálculo do movimento desejado para cada robô, como por exemplo, o melhor caminho a seguir ou o melhor companheiro para o passe. Os resultados são então passadas para o módulo de pós-comportamento. Cada robô tem o seu próprio conjunto de módulos de pós-comportamento. A sua tarefa consiste em calcular o vetor de movimento para a posição de destino determinado. Portanto, o planejador faz a detecção de possíveis colisões, a fim de se evitar obstáculos e assim encontrar uma maneira segura para chegar ao destino dos robôs. Posteriormente, um controlador PID analisa o caminho. Assim, o comando final é passado para o módulo de comunicação. • Planejamento do Caminho: O sistema de planejamento do caminho é baseado na aleatoriedade em tempo real. A idéia é utilizar as vantagens de um caminho que se modifica a todo tempo para criar uma “árvore de possíveis caminhos” que se modificam a fim de encontrar aperfeiçoar o trajeto. O sistema cria uma árvore composta de vários pontos através do modelo de mundo real, e executa o melhor caminho livre de colisões para chegar ao objetivo escolhido como um alvo. Para a criação de testes, o sistema faz uma varredura nos caminhos dos 5 agentes. Após uma rápida exploração aleatória da árvore, um sistema reativo de pesquisa chamado Dynamic Safety é utilizado. Ele melhora desempenho do planejamento de caminhos, alterando a variação de valores e tentando evitar colisões. 8 Denis de Castro - Departamento de Software Equipe UaiSoccer Robot Team – 2010 6. Conclusão Estas equipes têm algumas diferenças quanto as suas estratégias, mas cada uma tem um ponto forte que pode ser trabalhado para gerar o melhor desempenho possível para a nossa equipe. • Botnia knight dragons: sem posições pré-definidas no campo de jogo, cada robô ganha mais autonomia, podendo realizar jogadas mais bem estruturadas. • B-Smart: Módulo baseado em três intantes: antes, durante e depois do desenvolvimento da jogada. Com essa divisão é mais fácil a extração máxima de detalhes do campo, dos robôs e da bola. • Furgbol: Assumir robôs e bola como agentes. Realização do método das células. Células vazias, ocupadas ou de mistura. Esse método é bem eficaz no que diz respeito às colisões com outros corpos durante o trajeto do robô de um ponto ao outro do campo de jogo. • Gear: Estratégias de jogadores de linha baseados em mapas potenciais. Em cada momento do jogo um robô executa a melhor estratégia baseada nos mapas potenciais. • RoboDragons: habilidade de cooperação entre 3 robôs, estratégia bastante eficiente como mostrado no vídeo da equipe. Consiste numa troca de passes entre três robôs e um conseqüente tiro à meta. 7. Referências http://www.fei.edu.br/~flaviot/LARC2008/equipesRobocup.html http://small-size.informatik.uni-bremen.de/robocup2008:teams 9