Controle de Movimento

Nossa primeira tentativa de movimentação, usando um simples controle on/off usando a câmera não surtiu o resultado esperado.

Primeiro fator considerando foi a velocidade de reação do carrinho ao movimento. Usamos threading para permitir acelerar o ciclo de leitura da câmara. Medições de tempo indicaram que cada ciclo passou a demorar aproximadamente 0.1s

Outra medida para reduzir a latência foi mover todo o código de controle para o python, evitando o atraso do node-red e da serialização e deserialização JSON que estava sendo usada.

Para garantir uma melhor qualidade no dado da câmera, usamos um ajuste flexível dos parâmetros da câmera que pode ser ajustado e observado durante o funcionamento para testar. Mais medidas para evitar a detecção de alvos incorretos foram adicionadas. Além disso, a câmara passou a usar uma media móvel ponderada para minimizar erros e oscilações momentâneas.

O motor estava tendo força insuficiente. Além de trocas regulares de baterias, usamos um segundo regulador, ajustado para uma tensão maior, que apos a queda de tensão no modulo do L298 forneceu mais força ao motor.

Com o motor com mais força, pudemos ajustar o PWM para podermos ter um controle proporcional do motor, que varia dependendo da posição do alvo na imagem da câmera.

Não conseguimos fazer uma solução do carrinho buscar um alvo perdido. Em geral, o carrinho girando piora a qualidade de aquisição de alvo e não consegue reencontrar o alvo. Então o carrinho perdido simplesmente espera o retorno do alvo.

Finalmente, tivemos uma implementação parcial de um controle PID para ajustar o PWM do motor, tentando manter o alvo no centro da imagem. Após o ajuste dos cerca de 15 parâmetros do sistema, o carrinho passou a se movimentar melhor.

Deixe um comentário

Crie um site como este com o WordPress.com
Comece agora