O objetivo deste trabalho era nos familiarizar com os problemas de localização, desenvolvimento de odometria e técnicas de controle e navegação.
Para tal, era necessário o cumprimento de 3 tarefas básicas:
- Em relação à localização, deveríamos utilizar os conceitos de um LDR diferencial e fazer com que o robô se alinhasse à fonte de luz polarizada mais próxima.
- Na questão da odometria, utilizando sensores break-beam, era necessário implementarmos um controlador PD para controlar a velocidade do robô, que executaria rotas pré-determinadas (Linha, Triângulo e Quadrado) com o comprimento escolhido no momento da apresentação.
- Por fim, o robô deveria navegar pelo campo, seguindo as linhas marcadas na mesa. Essa tarefa deveria ser executada utilizando um máximo de dois sensores óptico-reflexivos ou LDR
Neste trabalho, executamos apenas algumas poucas modificações na estrutura do robô em relação ao trabalho passado (três, para ser mais exato).
Primeiramente, pela falta de espaço na frente do robô (algo a se pensar para melhorar o nosso projeto para a apresentação final) retiramos o LDR e o LED responsáveis ´pela identificação das cores dos blocos, e inserimos dois sensores LDR. A função destes sensores era de permitir a identificação da linha preta no campo para que o robô pudesse segui-la. Sendo assim, colocamos os LDRs apontando para a mesa, junto com um LED que contribuiu para aumentar a diferença da leitura dos LDRs quando estivessem voltados para a face branca da mesa ou para a linha preta. A Figura 2 mostra uma visão frontal do robô, permitindo uma visualização dos LDRs descritos acima.
A segunda modificação foi o acréscimo de sensores break beam nas rodas, para que um pudéssemos projetar um controle de velocidade.
Utilizando o break beam, foi possível controlar o número de rotações tanto da roda esquerda quanto da roda direita, nos permitindo modificar a potência de cada motor para controlar a velocidade e a direção do robô.
Utilizando o break beam também foi possível controlarmos melhor a distância percorrida.
Uma imagem dos sensores break beam pode ser vista logo abaixo na Figura 1
Figura 1 - Visão da parte inferior do robô, mostrando os sensores break beam nas rodas
Por fim, adicionamos na parte superior um LDR diferencial. Este LDR foi responsável por identificar uma maior variação na intensidade de luz quando o robô alinhava-se com as lâmpadas polarizadas, permitindo assim, localizá-las no campo.
A imagem abaixo mostra uma visão frontal do robô com todas as modificações estruturais indicadas acima
Figura 2 - Visão Frontal do robô (estrutura final para este trabalho)
Como as tarefas neste trabalho eram bem diferentes entre si, adotamos uma estratégia para cada uma delas.
Para identificar a luz mais próxima optamos por dar uma volta completa buscando a maior variação para a iluminação ambiente e depois rotacionar até encontrar novamente este valor máximo. Depois de observarmos bastante variação nas medidas adicionamos um filtro de média.
Na odometria temos um contador para cada roda que é adicionado sempre que o break-beam troca seu estado. Para andar em linha resetamos os contadores no início do movimento e deixamos um motor em potência menor caso seu contador seja maior.
A navegação foi o maior desafio já que inicialmente tentamos posicionar os sensores dentro da linha. Depois de trocar os sensores para frente com um maior espaçamento entre eles, de modo que os sensores fiquem fora da linha, o código ficou bem simples.
Com os dois sensores fora da linha movemos para frente. Quando um deles está na linha colocamos potência alta no motor oposto e baixa no sentido de ré no motor adjacente, a ideia por trás disso é além de rotacionar o robô remover o sensor de cima da linha pro mesmo lado que ele entrou. Por último quando os dois sensores estão na linha basta manter a ação que estava sendo executada anteriormente.
—-
Os primeiros dois testes do Adam referem-se a atividade de se alinhar a luz polarizada mais próxima. O resultado foi o esperado, o nosso robô ficou satisfatoriamente alinhada com a fonte de luz mais perto dele.
Os próximos três testes referem-se às atividades de seguir a trajetória de linha reta (ida e volta), um triângulo e um quadrado, respectivamente. Novamente, o resultado foi satisfatório.
Por fim, a atividade testada foi seguir a trajetória da linha preta, presente na superfície. O que foi realizado de forma correta.
Já tendo experienciado os dois últimos TPs, não encontramos tantas dificuldades na elaboração do terceiro Trabalho Prático. Exceto pela utilização do conjunto polarizadores-LDRs, pois nosso grupo dispunha de um polarizador relativamente pequeno, o que permitia a leitura de muito ruido pelo sensor LDR. Conseguimos através de muitas tentativas, encontrar uma posição que favorecia a leitura mais correta possível, e obtivemos um resultado satisfatório em relação ao alinhamento à luz polarizada mais próxima. Outra dificuldade inicial que encontramos foi quanto a disposição dos LDRs para Line Follower. Primeiramente tínhamos os colocado muito próximos e no meio da plataforma robótica. A correção foi feita ao colocarmos o conjunto de LDRs na frente do robô, e com um maior espaçamento entre eles.