Projeto

Geral

Perfil

Goleiro » Histórico » Versão 1

Gabriel Borges da Conceição, 04/06/2020 14:49 h

1 1 Gabriel Borges da Conceição
# Goleiro
2
3
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)