prof.rodrigoluiz
Ter Out 26, 2021 9:39 am
Robô Seguidor deParede com controlador PID
Olá.
Estou deixando aqui o meu código de robô seguidor de parede.
Além do hardware que vem na caixa da plataforma Falcon, usei um sensor de distância HC-SR04 acoplado na parte de cima do chassi da Falcon montado sobre um motor servo que pretendo usar para as próximas etapas deste projeto. No código que estou deixando aqui o servo não é utilizado.
Para fixar o servo e o sensor de distância adicional, o ideal seria usar um suporte Blackskull - que dá pra comprar na loja da Robocore. Como eu não tinha esse suporte, improvisei com umas peças de LEGO e elásticos. Queria postar uma imagem aqui, mas me parece que não tenho permissão para adicionar imagens e nem para anexar arquivos.
O sensor frontal é usado para detectar obstáculos e fazer o robô girar em 90 graus caso ele detecte um obstáculo a uma certa distância determinada no código.
Para testar a ideia de criar um seguidor de parede, eu fiz uma versão sem PID, mas o robô oscila muito e se perde muito facilmente em curvas - mesmo em curvas não muito fechadas. Por isso decidi implementar o PID. Mesmo esta versão que estou deixando aqui tende a se perder na curva caso ela seja uma curva de 180 graus - quando o robô tenta contornar a extremidade de uma parede, por exemplo. Não passei muito tempo calibrando as constantes para o cálculo do PID, mas o resultado obtido com este código é satisfatório o suficiente na minha opinião.
O código é basicamente uma adaptação do controlador PID que implementei para um robô seguidor de linha e que postei aqui no fórum https://www.robocore.net/...opic&t=7130. Como não tenho muita experiência com programação, imagino que o código possa ser melhorado bastante. Agradeço quaisquer dicas, sugestões ou críticas que possam melhorar este projeto.
Código: