Ferramentas do usuário

Ferramentas do site


cursos:introrobotica:2018-1:grupo10:trabalho_pratico_3

O trabalho prático três consiste na construção de um robô capaz de realizar três tarefas que são:

  1. Localização
  2. Odometria e Controle
  3. Navegação

Localização: O robô deveria se posicionar em relação a uma das luzes laterais da plataforma. O circuito foi montado através da conexão de dois sensores LDR's ligados em série. Cada sensor foi coberto por um filtro polarizador que, ao ser posicionado em direção às luzes da plataforma, retornavam valores de acordo com a polaridade da luz.

Quando o robô está posicionado próximo à luz de feixe horizontal (lado esquerdo da plataforma): • Quando os sensores estão virados para luz de feixe horizontal o valor obtido pela porta analógica é máximo (acima de 800);

• Quando os sensores estão virados para a luz de feixe vertical, o valor obtido pela porta analógica é mínimo (pelo menos 300);

Quando o robô está posicionado próximo à luz de feixe vertical (lado esquerdo da plataforma): • Quando os sensores estão virados para luz de feixe horizontal o valor obtido pela porta analógica é máximo (acima de 500);

• Quando os sensores estão virados para a luz de feixe vertical, o valor obtido pela porta analógica é mínimo (pelo menos 100);

Implementação: O robô girava 360° e executava leituras constantes do sensor em relação às luzes da plataforma. Os valores máximo e mínimo eram salvos em um vetor. Caso o valor mínimo medido fosse menor que 150, o robô estava próximo da luz polarizada verticalmente, como observado nos experimentos. Caso contrário, estava próximo da luz horizontal.

Depois de detectada a luz mais próxima, o robô girava até encontrar novamente a leitura mais baixa no caso da luz vertical ou a leitura mais alta, no caso da leitura horizontal. Essa busca foi feita utilizando uma tolerância. Ou seja, encontrou-se a primeira orientação cuja leitura variava em até uma constante de tolerância da medida procurada.

Odometria e controle:

A odometria e controle foram feitos através de dois sensores break beam que analisavam sinais por meio de engrenagens conectadas às rodas do robô. Cada engrenagem possuia 6 furos e cada vez que o um dos furos se alinhava ao sensor break beam a porta digital retornava a leitura “1”. A cada sete picos de leitura, uma volta da roda era completada. Sabendo que o comprimento da roda era de 25.8 cm, foi possível calcular a distância percorrida pelo robô, já que, a cada intervalo de picos de leitura o robo teria caminhado 4.3 cm.

O controle foi feito de forma independente para cada uma das rodas.

Estipulada uma velocidade alvo para cada roda, o controle atuava em cada uma delas de forma a atingir a velocidade desejada.

Foi utilizado um controle PD em cada uma das rodas.

Os principais problemas dessa implementação do controle foram a falta de sincronia, já que cada roda tinha um tempo diferente de acomodação do controle e a escolha das constantes multiplicativas. A depender das constantes, uma roda poderia entrar em equilíbrio fora da velocidade desejada.

Assim, a definição dessas constantes teve de ser feita na tentativa e erro.

Seguidor de linha:

O robô, para a realização da terceira e última tarefa, lançou mão de dois sensores ópticos montados de maneira tal que a distância entre os dois leitores era maior que a largura da faixa preta. Dessa maneira, o robô buscava sempre ficar com a faixa entre os sensores.

Buscando isso, o procedimento era simples: Se o sensor da direita visualiza a faixa, acelera-se o motor esquerdo. Se o sensor da esquerda visualiza a faixa, acelera-se o motor direito.

Isso não funcionou muito bem pois, apesar de um tratamento feito de forma a evitar que as velocidades atingissem valores muito altos, a correção dos erros ia gerando tortuosidade no caminho percorrido pelo robô e com isso, o robô escapava da linha.

Uma possível solução para esse problema é fazer os ajustes de um ou outro motor de forma temporária. No caso do nosso robô, se o sensor da esquerda vê a faixa, o motor da direita é acelerado e só é desacelerado quando atinge um valor máximo estipulado. Com essa solução alternativa, o motor da direita seria acelerado e após algum tempo, desacelerado para retornar ao percurso normal.

Essa alternativa previne o robô de perder o controle numa reta, por exemplo.

Dificuldades encontradas pelo grupo:

Infelizmente, devidos aos imprevistos causados pela greve,o grupo ficou impossibilitado de reunir o tanto quanto necessário, com isso tornando complicado a realização de alguns testes.Dessa forma, não foi possível corrigir todos os bugs relacionados a tarefa 3 e melhorar a sua implementação,assim tendo a sua apresentação diversos problemas associado, com o robô não realizando a tarefa da maneira esperada

cursos/introrobotica/2018-1/grupo10/trabalho_pratico_3.txt · Última modificação: por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki