Projeto

Geral

Perfil

Ações

Atividade #1226

Fechada

PassObserver

Adicionado por Gabriel Borges da Conceição mais de 4 anos atrás. Atualizado aproximadamente 4 anos atrás.

Situação:
Fechada
Prioridade:
Normal
Atribuído para:
Início:
13/02/2020
Data prevista:
28/02/2020

Descrição

Esta tarefa destina-se a explicar a lógica feita para a role dada ao robô que não recebe a bola no passe e deve se movimentar para atrapalhar o time inimigo.

Também iremos testar mais em campo e fazer possíveis melhorias


Arquivos

exemplo.jpeg (58,1 KB) exemplo.jpeg Davi Pontes, 03/06/2020 17:34 h
Ações #1

Atualizado por Gabriel Borges da Conceiçãomais de 4 anos

Coloque aqui a explicação do que fez na tarefa. Pode ser algo parecido com o que fez para o tdp.

Ações #2

Atualizado por Davi Pontesaproximadamente 4 anos

  • Situação alterado de Em andamento para Resolvida

Existiam alguns problemas com a lógica que estava anteriormente no PassObserver(PO), esses problemas eram relacionados principalmente com o PassObserver cruzando a linha de chute dos robos.
A nova lógica implementada se baseia principalmente na posição do PassKicker(PK) e PassReceiver(PR) durante a jogada, e como o PassObserver esta posicionado em relação aos outros robos envolvidos. A ideia do PassObserver é avançar o máximo possível no campo adversário sem cruzar as linhas de chute, que são: PassKicker-PassReceiver e PassReceiver-Gol. Para atingir esse objetivo a lógica esta dividida em 2 momentos da jogada, os momentos antes de o PassReceiver receber a bola e os momentos depois.

  • Antes de o PassReceiver ter a posse da bola:
    Antes de o PR receber o passe o PO pode se posicionar de duas formas diferentes, dependendo da sua posição em relação à reta que une o PK e o PR.
    A reta que une PK e PR divide o campo em duas zonas, a ideia é manter o PO dentro da zona em que ele estava anteriormente, dessa forma garantimos que ele não cruzará a linha de passe PK-PR. Analisando essas duas zonas é fácil perceber que existem duas situações diferentes. A primeira situação ocorre quando há espaço para o PO se movimentar dentro da zona e continuar avançando no campo adversário, nesse caso o posicionamento do PO é feito na reta que liga o robô(PK ou PR) que esta mais a retarguada até o escanteio do lado adversário mais próximo de tal robô, a coordenada X de PO é calculada para que ele fique a uma distância igual à largura da área mais 1/4 da distância do robô base até o começo da área, essa distância é relativa ao extremo do campo. Na segunda situação o PO já não tem tanto espaço para se movimentar, pois não pode cruzar a reta entre PK e PR, então o posicionamento é feito a partir do robô(PK ou PR) que esta mais a frente, pegamos a reta que passa por tal robo até o escanteio, no lado adversário, mais próximo, e posicionamos PO na metade desse segmento de reta, de forma que PO fique na frente do outro robô mas sem impedir o chute ou passe.
    ![](exemplo.jpeg)
  • Depois de o PassReceiver ter a posse da bola:
    Após o PR receber o passe temos a preocupação do PO não cruzar a linha de chute ao gol, dessa foi implementado uma checagem se a próxima posição do PO iria cruzar a reta formada por PR e o Gol, se cruzar é mantida a posição anterior, caso contrario o PO vi para a nova posição. Essas posições citadas são calculadas da mesma forma que antes de o PR receber o passe.
Ações #3

Atualizado por Davi Pontesaproximadamente 4 anos

Ações #4

Atualizado por Gabriel Borges da Conceiçãoaproximadamente 4 anos

  • Situação alterado de Resolvida para Fechada

Muito bom! Já foi testado no grSim e mostrou muito bom funcionamento!

Vou encerrar a tarefa!

Ações

Exportar para Atom PDF