Differential Drive Simulator

Differential drive é um método para controlar um robot com apenas duas rodas. O termo “differencial” significa que a velocidade de rotação do robot é determinada pela diferença de velocidade aplicada a cada uma das rodas, por exemplo manter a roda esquerda parada e aplicar velocidade a roda direita fará com que o robot vire para a esquerda, aplicar a mesma velocidade a ambas as rodas fará com que o robot ande em frente.

Existem várias técnicas para optimizar este tipo de movimento tal como PID Control,  um dos principais desafios que encontrei é o facto de existirem muitas variaveis que podem afectar o desempenho como por exemplo a carga das baterias o estado do piso, etc….

Por isso, e de forma a testar o código para controlar o meu robot, decidi criar um simulador em Processing. O simulador permite desenhar um circuito e utilizar o teclado para fazer o robot percorrer esse mesmo circuito. A tecla UP faz o robot andar em frente, a tecla LEFT faz virar a esquerda, a tecla RIGHT faz virar a direita e a tecla DOWN faz o robot parar.

Para já o robot tem que ser controlado manualmente, o proximo passo é simular as leituras do sensor de modo a implementar a função de piloto automático e fazer o robot navegar sozinho. Em baixo coloco todo o código desenvolvido até ao momento e um ficheiro executável para quem não tem o processing e quiser experimentar o simulador.

Download do código e ficheiro executável

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s