Projeto

Geral

Perfil

Goalie » Histórico » Versão 2

Gabriel Borges da Conceição, 14/02/2020 01:45 h

1 1 Carla Cosenza
# Goalie
2
3 2 Gabriel Borges da Conceição
Funcionamento do goleiro:
4
5
seja d a distância do inimigo mais próximo da bola a ela:
6
7
se d>500mm: Usar DefBallTrajSkill
8
se 500mm<= d< 400mm: Usar DefBallEnemySkill
9
se d <=400mm: Usar DefBallOrientSkill.
10
11
Onde:
12
-> DefBallTrajSkill: Pega-se a reta da trajetória da bola usando-se a posição da bola e vy/vx para coeficiente angular para definir a reta. Faz-se a interseção dessa reta com a reta paralela à linha de fundo mas a 150mm à frente. O goleiro se posiciona no ponto de interseção caso esse ponto seja no gol (entre as balizas)
13
14
-> DefBallEnemySkill: Faz o mesmo que dito acima, porém a reta da direção do chute é calculada usando posição da bola e a posição do centro do robô inimigo.
15
16
-> DefBallOrientSkill: Faz o mesmo que os acima, mas a reta da direção do chute é calculada usando posição da bola e orientação do inimigo como coeficiente angular.
17
18
Em qualquer das situações, se a reta apontar para fora do gol, deve-se proceder da seguinte maneira:
19
seja alfa o ângulo que a reta (bola--centro do gol) faz com o eixo x.
20
21
se módulo de alfa > 45°(pi/4 rad): posição do goleiro é x = -fieldlenght/2 + 100mm e y = +-goalwidth/2(o sinal é o mesmo sinal do y da bola). Isso é feito para fechar as quinas.
22
23
se módulo de alfa < 45°(pi/4 rad): posição do goleiro é no meio do gol (x = -fieldlenght/2 + 100mm e y = 0)