Defeito #119
FechadaResolver Overshoot no Attacker
Adicionado por Nicolas Oliveira mais de 7 anos atrás. Atualizado mais de 7 anos atrás.
Descrição
No estado de ir até a tangente, o attacker está com overshoot. Coloquei um debugger visual para mostrar para que ponto ele estava sendo enviado, e quando ele se aproximava do ponto, o ponto trocava de lugar rapidamente o que fazia o robô avançar mais do que deveria e voltar.
Arquivos
gototangent.png (8,13 KB) gototangent.png | Descrisão do algoritimo do GoTo Tangent | Nicolas Oliveira, 15/05/2017 12:24 h | |
Debugger Visual.mp4 (6,6 MB) Debugger Visual.mp4 | Nicolas Oliveira, 15/05/2017 23:59 h | ||
picture206-1.png (45,3 KB) picture206-1.png | Luiz Renault Leite Rodrigues, 19/05/2017 16:14 h | ||
Attacker.mp4 (12,4 MB) Attacker.mp4 | Nicolas Oliveira, 24/05/2017 00:09 h | ||
GotoTangent.png (2,5 KB) GotoTangent.png | Nicolas Oliveira, 24/05/2017 00:09 h | ||
picture311-1.png (6,74 KB) picture311-1.png | Luiz Renault Leite Rodrigues, 24/05/2017 21:35 h | ||
picture594-1.png (13,7 KB) picture594-1.png | Luiz Renault Leite Rodrigues, 25/05/2017 01:31 h | ||
picture594-2.png (12,2 KB) picture594-2.png | Luiz Renault Leite Rodrigues, 25/05/2017 01:31 h |
Atualizado por Nicolas Oliveira há mais de 7 anos
- Atribuído para ajustado para Nicolas Oliveira
Atualizado por Luciano Barreira há mais de 7 anos
- Tipo alterado de Atividade para Defeito
- Título alterado de Resolver Overshoot no Attacker para (BUGFIX) Resolver Overshoot no Attacker
Sugiro que upe um vídeo da resposta do debug visual.
Atualizado por Nicolas Oliveira há mais de 7 anos
Luciano Barreira escreveu:
Sugiro que upe um vídeo da resposta do debug visual.
ok
Atualizado por Luciano Barreira há mais de 7 anos
- Título alterado de (BUGFIX) Resolver Overshoot no Attacker para Resolver Overshoot no Attacker
Atualizado por Nicolas Oliveira há mais de 7 anos
- Arquivo Debugger Visual.mp4 Debugger Visual.mp4 adicionado
Video do debugger visual, aonde o ponto vermelho representa a coordenada para aonde o robô deveria ir. Podemos ver que quando o robô vem com uma velocidade alta o ponto muda de lado rapidamente, atrapalhando a movimentação do atacante.
Atualizado por Luiz Renault Leite Rodrigues há mais de 7 anos
Sempre que cadastrarem um problema deste tipo, coloquem um link também para a VI a que se referem.
Atualizado por Nicolas Oliveira há mais de 7 anos
[Link da VI GoTo tangent](https://github.com/roboime/SSLView/blob/development/Control/GoTo%20Tangent.vi) que causa o overshoot. [Link para a vi Attacker](https://github.com/roboime/SSLView/blob/development/Intel/AttackerFSM.vi) que utiliza o GoTo tangent como um dos estados, o primeiro mais especificamente.
Atualizado por Luiz Renault Leite Rodrigues há mais de 7 anos
- Arquivo picture206-1.png picture206-1.png adicionado
Já percebi um problema nesta VI.
Deve sempre ser evitado utilizar referências ou variáveis locais.
Em uma linguagem de programação textual, a sequência das ações é determinada pela sequência das linhas.
Na linguagem gráfica, pelas conexões. Assim, um dado que é requerido para cálculo deve ser por sua vez computado antes da realização do cálculo que o requer. Isso é feito com as conexões em sequência.
Atualizado por Nicolas Oliveira há mais de 7 anos
Capitão
Retirei do atacante todas as variáveis locais, porém isso n influenciou o overshoot.
Atualizado por Luiz Renault Leite Rodrigues há mais de 7 anos
Faça o push, para que eu possa ver por aqui.
Atualizado por Nicolas Oliveira há mais de 7 anos
- Arquivo Attacker.mp4 Attacker.mp4 adicionado
- Arquivo GotoTangent.png GotoTangent.png adicionado
Ainda n descobri o pq do overshoot no atacante, mas percebi q o fato de calcularmos frame a frame um novo ponto para enviar o robô causava grande instabilidade na movimentação. Então, baseado na ideia q o Luciano me apresentou de criarmos GoTo que pudéssemos escolher a posição e a velocidade com q o robô deveria chegar lá, modifiquei essa VI para q o robô primeiro fosse ao ponto P1 (na imagem) "ao lado" da bola, porém, antes que ele chegue lá alterno seu destino para o ponto P2. Assim ele executa um movimento quase contínuo e muito satisfatório. Segue também um vídeo.
![Atacante](GoToTangent.png)
Atualizado por Nicolas Oliveira há mais de 7 anos
- % Terminado alterado de 10 para 70
Atualizado por Luciano Barreira há mais de 7 anos
Proponho que adicione um critério de recalculo do ponto. Um criterio simples pode ser passar um determinado intervalo de tempo permanecendo no mesmo estado. Veja como se comporta.
Atualizado por Luiz Renault Leite Rodrigues há mais de 7 anos
- Arquivo picture311-1.png picture311-1.png adicionado
Atualizado por Luiz Renault Leite Rodrigues há mais de 7 anos
- Arquivo picture594-1.png picture594-1.png adicionado
- Arquivo picture594-2.png picture594-2.png adicionado
- Situação alterado de Em andamento para Resolvida
Resolvido problema de overshoot no atacante, que estava sendo gerado pelo fato de desprezar o fator derivativo quando havia mudança do setpoint.
Resolvida a questão do Setpoint Derivative Kick, com derivação da variável controlada ao invés do erro.
Há algum problema no cálculo do posicionamento dos bloqueadores, que não
funcionam com controle Derivativo.
{{youtube(-Q6UTJhUeko, width=640, height=360, autoplay=false)}}
Atualizado por Luiz Renault Leite Rodrigues há mais de 7 anos
- Situação alterado de Resolvida para Feedback
Atualizado por Luiz Renault Leite Rodrigues há mais de 7 anos
- Situação alterado de Feedback para Fechada