Projeto

Geral

Perfil

Ações

Defeito #119

Fechada

Resolver Overshoot no Attacker

Adicionado por Nicolas Oliveira mais de 7 anos atrás. Atualizado mais de 7 anos atrás.

Situação:
Fechada
Prioridade:
Alta
Atribuído para:
Início:
15/05/2017
Data prevista:
17/05/2017
Tempo gasto:

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
Ações #1

Atualizado por Nicolas Oliveiramais de 7 anos

  • Atribuído para ajustado para Nicolas Oliveira
Ações #2

Atualizado por Luciano Barreiramais 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.

Ações #3

Atualizado por Nicolas Oliveiramais de 7 anos

Luciano Barreira escreveu:

Sugiro que upe um vídeo da resposta do debug visual.

ok

Ações #4

Atualizado por Luciano Barreiramais de 7 anos

  • Título alterado de (BUGFIX) Resolver Overshoot no Attacker para Resolver Overshoot no Attacker
Ações #5

Atualizado por Nicolas Oliveiramais de 7 anos

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.

Ações #6

Atualizado por Luiz Renault Leite Rodriguesmais de 7 anos

Sempre que cadastrarem um problema deste tipo, coloquem um link também para a VI a que se referem.

Ações #7

Atualizado por Nicolas Oliveiramais 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.

Ações #8

Atualizado por Luiz Renault Leite Rodriguesmais de 7 anos

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.

picture206-1.png

Ações #9

Atualizado por Nicolas Oliveiramais de 7 anos

Capitão

Retirei do atacante todas as variáveis locais, porém isso n influenciou o overshoot.

Ações #10

Atualizado por Luiz Renault Leite Rodriguesmais de 7 anos

Faça o push, para que eu possa ver por aqui.

Ações #11

Atualizado por Nicolas Oliveiramais de 7 anos

Feito

Atualizado por Nicolas Oliveiramais de 7 anos

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)

Ações #13

Atualizado por Nicolas Oliveiramais de 7 anos

  • % Terminado alterado de 10 para 70
Ações #14

Atualizado por Luciano Barreiramais 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.

Ações #15

Atualizado por Luiz Renault Leite Rodriguesmais de 7 anos

Sugiro sempre isolar os elementos sendo testados.

Substituí o GoTo pelo GoToTang conforme figura abaixo:

picture311-1.png

Só ocorre o overshoot na parte inferior do campo, como visto no vídeo:

{{youtube(FIpraA8Mox8 , width=640, height=360, autoplay=false)}}

Atualizado por Luiz Renault Leite Rodriguesmais de 7 anos

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.

Com derivative kick: picture594-1.png

Sem derivative kick: picture594-2.png

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)}}

Ações #17

Atualizado por Luiz Renault Leite Rodriguesmais de 7 anos

  • Situação alterado de Resolvida para Feedback
Ações #18

Atualizado por Luiz Renault Leite Rodriguesmais de 7 anos

  • Situação alterado de Feedback para Fechada
Ações

Exportar para Atom PDF