Atividade #1193
FechadaFazer nova skill de posicionamento para o 2ndStriker
Adicionado por Felipe Welington aproximadamente 5 anos atrás. Atualizado mais de 4 anos atrás.
Descrição
Essa tarefa destina-se a criação/reformulação do antigo posicionamento do 2nd striker para o passe.
Arquivos
angulos.png (11,9 KB) angulos.png | Gustavo Atala Testoni, 01/03/2020 14:40 h | ||
incentro.png (18,3 KB) incentro.png | Gustavo Atala Testoni, 01/03/2020 14:40 h | ||
regiaodesenhada.png (11,9 KB) regiaodesenhada.png | Gustavo Atala Testoni, 01/03/2020 14:40 h | ||
robosextremidades.png (12,8 KB) robosextremidades.png | Gustavo Atala Testoni, 01/03/2020 14:40 h |
Atualizado por Gabriel Borges da Conceição há quase 5 anos
- Atribuído para ajustado para Gustavo Atala Testoni
Tarefa já realizada. Faltam testes.
Atualizado por Nicolas Oliveira há mais de 4 anos
mudou algo na lógica? reportar oq foi feito.
Atualizado por Gustavo Atala Testoni há mais de 4 anos
- Arquivo angulos.png angulos.png adicionado
- Arquivo incentro.png incentro.png adicionado
- Arquivo regiaodesenhada.png regiaodesenhada.png adicionado
- Arquivo robosextremidades.png robosextremidades.png adicionado
O 2nd Striker seria um robô que dá mais opções de passe, mas sem "roubar" a posição do Striker, e, além disso, em caso de contra-ataque adversário, o 2nd deveria voltar para ajudar na defesa. Por isso, ele deve ter um avanço limitado. E, para achar sua posição, ele procura a maior abertura na defesa adversária, respeitando o limite no avanço dele.
Primeiramente, para restringir o posicionamento dele, o campo de ataque é dividido em 3 regiões. O ângulo alpha pode ser alterado mudando o ponto P caso necessário, mas inicialmente, foi decidido que o ponto P é o ponto (L/6,-h/2).
Para achar a maior abertura, considera-se as retas que ligam os robôs inimigos (exceto o goleiro) ao centro do gol e calcula-se os ângulos entre as retas adjacentes. Se todos os robôs inimigos estiverem na região delimitada anteriormente, as extremidades da região são consideradas no cálculo dos ângulos.
Depois, escolhe-se a "sub-região" com maior ângulo, e é calculado o incentro do triangulo formato pelas retas dessa sub-região, e a reta que liga o centro do campo ao ponto P. No entanto, caso o incentro esteja fora da região delimitada no início, procura-se o segundo maior ângulo e calcula-se o incentro, para ser a posição do 2nd Striker.
Para analisar completamente todos os ângulos possíveis, deve-se considerar os ângulos entre os robôs inimigos que estão dentro da região, mais proximos da extremidades desta, e as extremidades. Caso esse ângulo seja maior que o calculado anteriormente, calculá-se o incentro dessa ultima sub-região, e essa será a posição do 2nd Striker.
Por fim, há 2 situações que devem ser evitadas.
1- O 2nd Striker ficar entre a bola e o gol, atrapalhando um chute direto (ficar a uma distancia menor que 250mm da reta que liga a bola ao gol):
Caso isso aconteça, o 2nd Striker se move sobre a reta perpendicular a reta anterior em direção ao centro do campo, até que a distância seja respeitada.
2- O 2nd Striker fica muito perto do Striker (fica a uma distância menor que (diagonal_do_campo/10):
Caso isso aconteça, o 2nd Striker se move em direção ao centro do campo, até que a distância seja respeitada.
Atualizado por Gabriel Borges da Conceição há mais de 4 anos
Muito bom!
Em breve vamos testar o comportamento do robô no campo e realizar alguns ajustes se for necessário.
Atualizado por Gabriel Borges da Conceição há mais de 4 anos
- Situação alterado de Em andamento para Fechada