Atividade #582
FechadaObjetivo #580: Melhorar a interação do LabView com o GrSim
Automatizar os testes de performance
Arquivos
Atualizado por Nicolas Oliveira há mais de 6 anos
- Atribuído para ajustado para Leonardo Gomes Goncalves
- Prioridade alterado de Normal para Imediata
Atualizado por Leonardo Gomes Goncalves há mais de 6 anos
A automatização dos testes a ser feita a partir do robot replacement e ball replacement packages enviados para o GRsim.
Para o ataque a bola será posicionada em diferentes pontos com diferentes velocidades no campo de ataque e o reposicionamento será feito toda vez que a bola sair dos limites do campo ou ao ser computado um gol.
Para a defesa a bola seria posicionada com velocidade de chute junto a um robô inimigo em diferentes pontos e em direção a diferentes pontos do gol, incluindo simulação de passes seguidos de chutes a gol, sendo a bola reposicionada da mesma maneira que no ataque.
As estatísticas do teste seriam analisadas para escolher e melhorar as personalidades de defesa e ataque
Atualizado por Nicolas Oliveira há mais de 6 anos
Atualizar a tarefa com o que já foi feito.
Atualizado por Luciano Barreira há mais de 6 anos
- Tipo alterado de Meta para Atividade
- Título alterado de Automatizar os testes para Automatizar os testes de performance do goleiro
É importante que ambos os algoritmos de goleiro comparados sejam submetidos aos mesmos pontos-teste, ainda que estes tenham sido gerados aleatoriamente, e que possamos controlar o número de chutes feitos.
Atualizado por Nicolas Oliveira há mais de 6 anos
- Data prevista ajustado para 29/04/2018
- Atribuído para alterado de Leonardo Gomes Goncalves para Rebeca Reis
Tarefa ajustada para a Rebeca devido ao prazo. Atualizar com o que foi feito ontem por favor.
Atualizado por Rebeca Reis há mais de 6 anos
A tarefa foi concluída ontem, foram feitas as VIs para automatizar os testes do goleiro e do atacante.
Primeiro, foi criada uma VI que gera um ponto aleatório no campo dos robôs do nosso time, sendo que esse ponto não está dentro da área e nem muito próximo das margens laterais. Em seguida, outra VI vai gerando um vetor com esses pontos aleatórios enquanto um botão "Generate new Random Points" localizado na tela principal do SSL Log Player está apertado. Daí, para realizar os testes, basta clicar em test Mode On, na aba dos "testes Grsim", e então ocorre o reposicionamento automático da bola num ponto aleatório e do robô atacante num ponto localizado 300 mm atrás da bola, ao longo do vetor que liga a bola ao gol. Com isso é possível fazer testes automáticos e gerar um histograma do erro do nosso goleiro, para validá-lo.
A VI para fazer os testes do atacante é muito parecida com a anterior, sendo que ocorre apenas o ball replacement, sem o robot replacement atrás da bola. Assim é possível validar nosso atacante gerando também um histograma de erro do chute ao gol.
Atualizado por Rebeca Reis há mais de 6 anos
- Arquivo replacement.mp4 replacement.mp4 adicionado
Foi adicionado outro botão na tela inicial: reset. Ao ser apertado, o teste é iniciado a partir do primeiro ponto guardado no vetor. Assim, podemos fazer testes com dois goleiros diferentes, por exemplo, usando o mesmo conjunto de pontos. Outra modificação é que agora são gerados N pontos aleatórios no início e concatenados ao vetor, sendo esse número já definido antes da execução da VI, não ocorrendo a geração de pontos enquanto o botão está sendo apertado como antes. Outro detalhe é que quando paramos o software, os pontos não são apagados. O vetor só fica vazio novamente caso o software seja fechado e aberto de novo em seguida.
Foi criada também uma VI chamada BooleanRise, que serve para fazer uma mesma conta que se repete várias vezes, e serve para identificar com o Feedback Node se o booleano da entrada está ligado no instante atual, e se ele acabou de mudar de estado pela primeira vez.
Segue vídeo de demonstração da execução dos testes:
Atualizado por Nicolas Oliveira há mais de 6 anos
- Data prevista alterado de 29/04/2018 para 04/05/2018
- Prioridade alterado de Imediata para Alta
- Versão ajustado para RoboCup 2018
Gerar testes agora simulando passe inimigo.
Além disso criar um wiki do grsim replacement, descrevendo como funciona, pra que serve, e como o controlamos.
Atualizado por Nicolas Oliveira há mais de 6 anos
- Arquivo hist.png hist.png adicionado
- Atribuído para alterado de Rebeca Reis para Leonardo Gomes Goncalves
Capitão, verifiquei a aleatoriedade dos pontos gerados para o teste (500):
![](hist.png)
a distribuição me parece bem uniforme, com exceção da área do goleiro aonde n deverão haver mesmo pontos.
Atualizado por Luiz Renault Leite Rodrigues há mais de 6 anos
Ótimo. As aparências realmente enganam.
Atualizado por Luiz Renault Leite Rodrigues há mais de 6 anos
Que tal levantar probabilidade de tomar gol condicionada à posição da bola antes do chute?
Atualizado por Luiz Renault Leite Rodrigues há mais de 6 anos
Luiz Renault Leite Rodrigues escreveu:
Que tal levantar probabilidade de tomar gol condicionada à posição da bola antes do chute?
Definitivamente precisamos de um estatístico na equipe.
Atualizado por Nicolas Oliveira há mais de 6 anos
Luiz Renault Leite Rodrigues escreveu:
Que tal levantar probabilidade de tomar gol condicionada à posição da bola antes do chute?
Já estava em nossos planos fazer. Vamos representar essa probablilidade através de um heatmap.
Atualizado por Nicolas Oliveira há mais de 6 anos
Irei realizar o merge da branch grsim_replacement como está atualmente, o desenvolvimento dela deve continuar.
Atualizado por Leonardo Gomes Goncalves há mais de 6 anos
Os teste estão sendo estendidos para a defesa como um todo, ocorrendo inclusive simulação de passes inimigos. O tipo de teste é escolhido por um enum na tela principal do programa e este será feito repetindo-se sempre com os mesmos pontos aleatórios gerados anteriormente até que se escolha mudá-los, também na tela principal. Os três tipos de testes são divididos em: Defesa; Defesa com passe e; Ataque. Selecionando, assim, em que área se quer focar os testes. Para o teste do atacante, adicionou-se, também uma velocidade randômica, que pode ser controlada pela tela principal, à bola, simulando melhor uma situação real de jogo.
Atualizado por Rebeca Reis há mais de 6 anos
- Arquivo teste_attacker.wmv teste_attacker.wmv adicionado
Foram implementados, na semana passada, os testes automáticos para o atacante (para ver sua eficiência na interceptação da bola). Foi feito da seguinte forma: gera-se um ponto aleatório no nosso campo e também no campo do inimigo. Coloca-se a bola na posição desse ponto aleatório do campo inimigo, com uma velocidade em direção ao ponto aleatório do nosso campo. O módulo dessa velocidade é escolhido por nós na VI principal Log Player (o default está definido como 2000). O reposicionamento automático da bola ocorre mediante duas condições: ou a bola saiu do campo ou sua velocidade adquiriu o sentido negativo do eixo x após ter sido chutada.
Para realizar o teste, primeiro é preciso entrar na aba de GrSim Modo Teste e clicar em Generate new random points. Esse botão vai gerar dois vetores de pontos aleatórios, um em cada lado do campo. Em seguida, selecionando Test Attacker e escolhendo-se o módulo da velocidade desejada, basta clicar em Test Mode para iniciar a sequência de testes. Um detalhe: o botão Replace Robots, por hora, deve ficar desligado. Ele serve para reposicionar automaticamente o robô atacante também, mas para esse teste a ideia é justamente observar a movimentação e rapidez desse robô para interceptar a bola. Entretanto, como futuramente talvez seja interessante reposicionar o atacante também para algum outro teste semelhante a esse, durante a implementação foi mantida essa opção, havendo uma VI de robot pose que só precisaria ser modificada quando quisermos.
Segue um vídeo do funcionamento do teste:
Atualizado por Rebeca Reis há mais de 6 anos
- Arquivo teste_attacker.mp4 teste_attacker.mp4 adicionado
Segue o vídeo, novamente:
Atualizado por Rebeca Reis há mais de 6 anos
- Arquivo TestePasse.mp4 TestePasse.mp4 adicionado
Foi finalizado o teste do passe, que funciona da seguinte forma: deixando ligados os botões TestMode, TestPasse e Replace Robots na vi principal SSL Log Player, a bola e o robô atacante são reposicionados automaticamente em um ponto aleatório do nosso campo, com o robô 500 mm atrás orientado para o gol inimigo. Nesse momento, o estado do jogo é alterado para Stop (durante 1 segundo) e após esse tempo o estado muda para Indirect Free Ally, o que faz o Pass State ficar ativado. Dessa maneira, o atacante se orienta e chuta a bola em direção ao ponto em que o striker deve estar para interceptá-la. O striker nesse teste não é reposicionado, ele fica livre para se movimentar conforme deveria durante o Pass State, para que possamos testar a eficiência de nosso passe e da interceptação da bola. A condição para dar um novo replace automático da bola e do robô foi definida para ser 3 segundos após o chute do atacante. Dessa forma é possível observar a conclusão do passe antes do próximo teste. Segue um vídeo do funcionamento:
Atualizado por Nicolas Oliveira há mais de 6 anos
- Título alterado de Automatizar os testes de performance do goleiro para Automatizar os testes de performance
Atualizado por Nicolas Oliveira há mais de 6 anos
Merge feito na branch development. Principal conflito foi a SSL Vision Log player, mantive a versão da rebeca e refiz as mudanças que n estavam presentes na brnach dela. Teste funcionando bem com a nova interceptação do passe.
Atualizado por Gabriel Borges da Conceição há mais de 6 anos
- Situação alterado de Em andamento para Resolvida
Atualizado por Gabriel Borges da Conceição há mais de 6 anos
- Situação alterado de Resolvida para Fechada