Projeto

Geral

Perfil

Ações

Atividade #112

Fechada

Meta #80: Melhorar o estimador do Juiz

Resolver Toque Duplo

Adicionado por Luciano Barreira mais de 7 anos atrás. Atualizado quase 7 anos atrás.

Situação:
Fechada
Prioridade:
Normal
Atribuído para:
Início:
19/05/2017
Data prevista:
27/05/2017
Tempo gasto:
12:00 h (Total: 14:22 h)

Descrição

Atualmente, a possibilidade de toque duplo na bola não está sendo tratada.

[Regras de 2017](http://redmine.roboime.com.br/documents/10) (veja seção 9.3)
![avoid](avoid.png)


Arquivos

avoid.PNG (26,7 KB) avoid.PNG Luciano Barreira, 13/05/2017 20:28 h

Subtarefas 1 (0 aberta1 fechada)

Atividade #154: Implementar um gerador de eventosFechadaNicolas Oliveira19/05/201727/05/2017Ações
Ações #1

Atualizado por Nicolas Oliveiramais de 7 anos

  • Atribuído para alterado de Intel para Nicolas Oliveira
  • Versão ajustado para RoboCup 2017

Foi criado um gerador de eventos aonde é criado o estado do jogo, sendo um desses eventos o toque de bola por parte de algum robô.
Tornei a parte de escolha de personalidade um pouco mais simples e bem mais fácil de ser modificada.
Em seguida implementei um algorítimo de forma que após o pontapé inicial de um force start esse robô não poderia chutar novamente até haver toque por parte de outro robô.

O único problema encontrado é que eu calculo quantos chutes foram dados a partir do começo do force start para saber se é o primeiro chute - que é livre para qualquer robô - ou se é o segundo chute - que n é permitido para o robô que executou o anterior - porém quando há um toque, são contados vários, devido ao evento de toque ser apenas uma proximidade ao robô.

Assim dependendo do frame rate e do jeito que o robô se aproxima da bola é contada uma quantidade diferente de toques, o q está impossibilitando a minha implementação completa.
Já tentei alterar a distância que considero como toque e n foi muito efetivo.
Como faço para que seja contado o toque apenas uma vez??

Ações #2

Atualizado por Nicolas Oliveiramais de 7 anos

Esta na branch feature-avoid
[Link](https://github.com/roboime/SSLView/blob/feature-avoid/DynamicPersonality.vi) da VI principal

Ações #3

Atualizado por Luciano Barreiramais de 7 anos

Concorda que o número de transições é um parâmetro melhor para alterar o estado Normal e de Avoid? Conte o número de transições TRUE->FALSE em vez de TRUE->TRUE, e observe o resultado obtido.

Ações #4

Atualizado por Nicolas Oliveiramais de 7 anos

Resolvido problema de toques múltiplos.
VI para decidir se estamos no estado que n podemos dar dois toques funcionando bem.
Porém ainda temos pequenas situações n contempladas pela escolha de personalidade dinâmica, porém com os testes ele estão sendo corrigidos.

No entanto, às vezes, um toque é considerado antes do robô executar realmente um chute, o que leva o robô a conduzir a bola.

Ações #5

Atualizado por Nicolas Oliveiramais de 7 anos

Na VI [Avoid](https://github.com/roboime/SSLView/blob/feature-avoid/Intel/AvoidCarla.vi) que é uma máquina de estados para saber se estamos no estado normal de jogo ou no avoid (devemos evitar o toque duplo), precisamos saber se a uma troca no comando do juiz de algum comando para Force Start.

Para tal precisamos armazenar o valor do comando do juiz da ultima execução da VI com um feedback node, porém não estava sendo detectada a transição dessa forma.

Quando adicionamos um delay de 10 no feedback node, ou seja, ele pega agora um valor de cmd de 10 execuções da VI atrás, funciona bem.

Porém estamos na dúvida se isso pode ser afetado pelo frame rate ou outras coisas foras do nosso controle.

Ações #6

Atualizado por Nicolas Oliveiramais de 7 anos

  • Situação alterado de Em andamento para Resolvida
Ações #7

Atualizado por Nicolas Oliveiramais de 7 anos

Na vdd a regra fala sobre quando a bola entra em jogo * sem ser por um force-star * não podemos dar toque duplo.
Só mudar as condições de entrada no estado de avoid.

Ações #8

Atualizado por Nicolas Oliveiramais de 7 anos

  • Situação alterado de Resolvida para Em andamento

A troca de personalidades entre striker e attacker é satisfatória, porém entre attacker e defender ficou bem ruim, os robôs n são rápidos suficiente para n perdermos a posse de bola durante a troca.

O que realmente resolve o toque duplo é o robô conseguir se aproximar bem da bola, utilizar drible e ter sensor de chute funcionando bem.

Ações #9

Atualizado por Nicolas Oliveiramais de 7 anos

O avoid considera o toque do inimigo para sair do avoid, q é correto, porém considera o toque do inimigo para entrar em avoid, o q está incorreto.

Ações #10

Atualizado por Leonardo Gomes Goncalvesquase 7 anos

  • Situação alterado de Em andamento para Fechada

Fechamento de todas atividades passadas visando renovação para 2018 do redmine da inteligência.

Ações

Exportar para Atom PDF