Ferramentas do usuário

Ferramentas do site


cursos:introrobotica:2017-1:grupo09:tp02

Objetivo

Este trabalho prático consistiu na realização de algumas tarefas específicas, listadas abaixo: - Desenvolver um robô móvel capaz de realizar um determinado caminho que será selecionado através do menu. A figura abaixo mostram os caminhos que poderiam ser escolhidos através do menu de opções: Figura 1 - Opções de caminhos para o robô executar

- Identificação de cor: O robô deveria ser capaz de identificar a cor dos blocos posicionados à sua frente (os blocos poderiam ser da cor azul, verde, vermelho ou amarelo), utilizando de um sensor LDR e três LEDs, ou um LED RGB - A cor identificada deve ser exibida na tela da handy board

- A ultima tarefa consistia na implementação de multitarefa e tomada de decisão, ou seja, o robô deve realizar duas tarefas simultaneamente, sendo elas: - Locomover-se por uma trajetória em linha reta e identificar a presença de um bloco à sua frente. O robô deverá tomar uma decisão com base na cor do bloco identificado, sendo as seguintes ações possíveis:

  1. Bloco Azul → vire à direita 90 graus e ande para frente;
  2. Bloco Amarelo → vire à esquerda 90 graus e ande para frente;
  3. Bloco Vermelho → gire 180 graus e ande para frente;
  4. Bloco Verde → pare e dê um giro de 360 graus.

- Todas as tarefas devem ser interrompidas se o robô não encontrar nenhum bloco no intervalo de 10s.


Estrutura

Para a realização das trajetórias especificadas, utilizamos dois motores, um conectado a cada roda dianteira do robô. Também utilizamos uma roda esférica na parte de trás do robo, dando maior estabilidade à ele.
Para possuirmos um maior torque, utilizamos duas caixas de redução de 243:1, uma para cada motor, mostradas na “figura 2”
Figura 2 - Caixas de redução de cada motor.

Por questões de espaço (em nossa base, não havia espaço para fixar um motor ao lado do outro), a transmissão do motor para as rodas foi construída de duas maneiras diferentes, como mostrado na figura abaixo: Figura 3 - Roda dianteira (esquerda) Figura 4 - Roda dianteira (direita)

Uma das nossas preocupações era posicionar a placa de forma que tornasse fácil a visualização dos valores exibidos em sua tela, além da facilidade de utilizar os botões start e stop para controlar o menu do robô. Sendo assim, optamos por criar uma pequena estrutura acima do nível dos motores para colocá-la, o que de fato resultou em grande facilidade uma para manusear a placa.
Figura 5 - Robô visto de cima (posicionamento da placa)

O último passo da estrutura consistiu em definir a posição dos LEDs e do sensor LDR. Decidimos fixar os LEDs e o LDR na parte frontal e inferior do robô, pois assim, tanto os LEDs quanto o LDR ficariam direcionados para o centro de cada bloco. Sendo assim, fixamos o LDR e colocamos 3 LEDs ao seu redor, um azul, um verde e um vermelho. No entanto, esta construção não foi funcional para nosso robô. O principal problema é que cada LED utilizado apresentava uma intensidade diferente do outro, sendo assim, o LDR fazia uma medição muito maior do LED mais intenso quando comparado aos outros.
Para solucionar este problema, optamos por substituir os 3 LEDs por um único LED RGB. Dessa forma, a fonte de luz estaria sempre na mesma posição, e a intensidade de cada cor seria mais uniforme.
Por fim, para melhorar a leitura do nosso sensor LDR, utilizamos fita isolante para “encapsular” o sensor, fazendo com que ele recebesse menos luz do ambiente a sua volta, “direcionando-o” para medir a luz refletida pelo bloco.
Figura 6 - LDR fixado na parte inferior do robô

Ao final do processo descrito acima, obtivemos uma estrutura estável e bem resistente.  Figura 7 - Visão frontal do robô Figura 8 - Visão frontal do robô com LED aceso


Software

O software possui duas partes importantes neste trabalho, lidar com o sensor de modo a identificar obstáculos e controlar a execução de multitarefas permitindo a Adam mover, avaliar os sensores e manter a contagem do tempo limite.

Para o sensor foi implementado um filtro que tira média dos últimos valores lidos e uma função de atualização responsável por fazer todas as medidas e correções necessárias. As cores e obstáculos são identificados com base na diferença entre os valores lidos e a medida do ambiente obtida com todos leds apagados.
O bloco verde era identificado quando o retorno do LDR fosse maior para o led verde do que para o azul e o vermelho. O bloco azul, por sua vez, era identificado quando o retorno do LDR fosse maior para o led azul do que para os outros dois. Já o bloco vermelho e amarelo, em ambos o LDR retornava um valor alto para o led vermelho, sendo assim, quando a diferença entre o retorno para o led vermelho e para o led verde fossem próximos, o bloco era considerado amarelo, caso fossem distantes, o bloco era vermelho.

Para realização da multitarefa foi implementado um relógio com funções para ativar despertador, desativar e o seu alarme. Assim sempre que uma tarefa é identificada o alarme é desativado e sempre que ele inicia o movimento para procurar blocos o alarme é ativado novamente, sendo responsável por parar o robô quando nenhuma nova tarefa é identificada


Testes

Para a verificação do funcionamento do Adam foram realizados diversos testes. Foram testados as rotinas relativas ao percurso de uma das formas geométricas especificadas (linha reta, ida e volta, quadrado e triângulo). Erros foram relatados, como mostra os testes 1, e 2, por exemplo, nos vídeos abaixo.

Teste 1:

Teste 2:

No entanto, os erros foram corrigidos, de tal forma que tais rotinas foram realizadas com sucesso, como mostram os vídeos de teste abaixo:

Testes de acertos para linha reta, quadrado e triângulo:

Para a rotina de multitarefa, na qual o Adam deve identificar a cor e daí realizar uma determinada ação, houve alguns erros, mas o principal foi o de identificar as cores de forma correta e estável. O amarelo foi uma das cores que houve maior instabilidade, como mostra os vídeos de testes abaixo. Assim como a multitarefa sendo realizada com êxito.

Teste ao identificar o amarelo (FALHA):

Teste Multitarefa (ÊXITO)


Principais dificuldades

Após a experiência do primeiro Trabalho Prático, podemos dizer que as coisas andaram de forma mais compassada. A construção da estrutura foi feita de forma rápida e consciente, tivemos um bom resultado em resistência e estabilidade e as reduções se encaixaram bem para o tamanho e peso da estrutura.

Por ser o nosso primeiro contato com os sensores ópticos reflexivos, e por não sabermos muito bem sobre o seu comportamento e padrão, encontramos nossa maior dificuldade nessa área. Precisamos fazer muitas alterações em nossos projetos para eliminar ruídos da luz ambiente, por exemplo, criamos um encapsulamento ao redor da resistência LDR e utilizamos um led único RGB que atua de forma igual para todas as cores.
Superando esses desafios intrínsecos aos materiais, podemos dizer que conseguimos lidar bem com a tarefa proposta e entregamos um bom resultado. Tivemos algumas falhas de montagem ao utilizar materiais indevidos, que acabaram causando certa desorganização, como cola quente em excesso, mas nada que já não tenhamos a solução em mente.

cursos/introrobotica/2017-1/grupo09/tp02.txt · Última modificação: por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki