Atividade #1226
FechadaPassObserver
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
Atualizado por Gabriel Borges da Conceição há quase 5 anos
Coloque aqui a explicação do que fez na tarefa. Pode ser algo parecido com o que fez para o tdp.
Atualizado por Davi Pontes há mais de 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.
Atualizado por Davi Pontes há mais de 4 anos
- Arquivo exemplo.jpeg exemplo.jpeg adicionado
Atualizado por Gabriel Borges da Conceição há mais de 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!