Introdução
Diversas são as formas que um ser possui para perceber o ambiente ao seu em torno e poder assim atuar sobre ele ou modificá-lo. Nos seres humanos, por exemplo, os diversos sentidos da percepção são os responsáveis pela coleta de informação, que corretamente interpretadas pelo cérebro, são capazes de fazer com que o corpo se desloque sem trombar em algo e em equilíbrio. E com a junção de outras informações são capazes de compor raciocínios mais complexos para agir de forma independente. Nos robôs móveis algo similar também acontece, pois para que o mesmo possa se situar e agir em um ambiente, ele deve ser capaz de colher informações sobre o mesmo, interpretá-las corretamente e escolher a ação correta. E, como os sentidos nos humanos, a coleta de dados são normalmente feitas por sensores acoplados ao robô. Assim, para um bom funcionamento dos robôs móveis, o uso de sensores se torna indispensável.
Objetivos
Estudar o comportamento de alguns sensores aplicados à robótica móvel, levantando seus comportamentos temporais, reações a interferências externas e outras. Serão realizadas também aplicações que exigiram a coleta de informações do ambiente pelo robô para atuação simultânea no mesmo, como deslocamento em uma linha preta e identificação de padrões de cores.
Decisões de desenvolvimento
Como neste trabalho o robô deveria ser capaz de se deslocar em uma linha, para melhorar a precisão do movimento do mesmo, alterou-se completamente o robô desenvolvido para o trabalho prático 1. O primeiro robo priorisava a velocidade ao invés do torque, por isso não conseguia se deslocar com baixa potência. O segundo robo, além do maior torque, trocou-se o par de rodas para um conjunto maior que apresenta maior atrito com o solo. Os demais detalhes sobre a construção do robô e posicionamento dos sensores serão apresentadasnos itens correspondentes ao processo de seguir a linha preta e identificar a cor do bloco.
Caracterização do sensor ótico
O sensor ótico é um sensor do tipo ativo, onde um LED emite sua luz que irá se refletir no objeto análisado e a luz será recebida por um diodo foto-recepitor. Em MARTIN (2001), uma melhor explicação sobre o funcionamento deste sensor pode ser obtida. Para se caracterizar este sensor, foram realizados alguns experimentos que esclarecem seu funcionamento.
O primeiro experimento teve como objetivo observar a resposta do sensor a variações luminosas. Assim, com uma peça lego azul a 3mm, adquiriu-se dados por 5 segundos em duas situações distintas, com luz externa e sem luz externa. O resultado está nos gráficos da figura 1, juntamente com a média dos valores e seus desvios padrões. Analisando os gráficos, observa-se que a variação da situação iluminada para a não iluminada foi pequena, o que mostra certa robustez à variações de iluminação devido também ao sensor possuir luz própia.
O segundo experimento proposto foi para verificar a variação da resposta com a distância, no caso da peça lego azul. Levantando-se os gráficos dos valores retornados em função da distância, apresentados na figura 2a. Na figura 2b estão apresentados a média e o desvio padrão para cada distância. A tabela 1 apresenta os valores das médias e desvios padrão encontrados.
Fig. 1: Respostas do sensor ótico no escuro (a) e no claro (b).
Fig. 2: Respostas do sensor ótico para difentes ditâncias da peça lego (a) e a média e desvio padrão das medidas (b).
Como pode ser observado nos resultados do segundo experimento, o valor lido para cada distância varia muito pouco. Pórem, entre as distâncias a variação acontece de formas diferentes. Primeiramente, permanece constante entre 0 e 8 mm, depois varia próximo de uma função linear entre 8 e 15 mm e a acima de 15 mm a resposta passa a ser amortecida, tendendo a 255, limite de leitura do sensor. A função resultante pode ser aproximada como apresenta em (1).
y = 25,65x -194,2 para o bloco entre 8 e 15 mm (1)
Para verificar a veracidade da equação proposta em (1), levantou-se 4 novos valores de distância, dentro do limite proposto para linearização. Os resultados estão na tabela 2, onde o resultado apresentou sempre um erro a mais no valor estimado. Este erro pode ter sido causado pela dificuldade na precisão das medidas, muito pequenas e próximas ao sensor.
O último experimento com este sensor foi o com os dois motores ligados, objetivando verificar a existência de variações ou oscilações na leitura do sensor com esse em movimento. A figura 3 apresenta o gráfico encontrado com esse experimento.
Fig. 3: Leitura do sensor ótico com os motores ligados em 100%.
Analisando este gráfico, pode se perceber uma pequena oscilação na leitura do sensor, que no caso talvez nem seja pela energia que o motor necessita, e sim pela vibração que o mesmo acrescenta no sistema.
influência da superfície na cor do objeto
Outro fator que deve ser considerado na utilização dos sensores óticos é a superfície do material trabalhado. No caso, foram utilizados blocos rugosos de 4 cores diferentes, azul, vermelho, verde e amarelo. Assim, levantaram-se histogramas para cada distância que estão nas figuras 4, 5 6 e 7.
Analisando os histogramas percebe em todos que há um vazio muito grande entre os valeres de 3 mm e de 6 mm, como também, são os valores mais distintos dentre os demais blocos. Assim, optou-se pela distância de 3 mm como sendo a melhor para reconhecer a cor. Mas é importante observar que os valores do vermelho com amarelo e o azul com o verde são um pouco próximos (cerca de 10 pontos), podendo causar erros na identificação das cores.
Algoritmo para detecção de cores
O programa desenvolvido para a identificação das cores considera que a distância dos blocos ao sensor seja fixa em torno de 3 mm. Seu funcionamento pode ser dividido em 5 passos, como mostra o diagrama de fluxo da figura a seguir
.
Fig. 8: Diagrama de blocos do processo de identificação de cor.
Como pode ser observado na figura 8, o primeiro passo do processo é a calibração das cores. Isto foi feito adquirindo 15 pontos a 3 mm da peça e retirando a média desses pontos, para todos os 4 blocos. A próxima etapa é ordenar crescentemente os valores das médias, o que será importante para o próximo passo. No terceiro passo é feito a média entre as cores para assim definir o limite de mudança de cor, a figura 9 esclarece melhor este processo. Os próximos dois passos consistem o processo de detecção propriamente dito, porque nele serão feitos a leitura do sinal do bloco desejado (média de 15 pontos) e a comparação com os valores das médias das médias entre as cores, retornando a cor encontrada.
Fig. 9: Exemplo de funcionamento do algoritmo para detecção de cores.
Em testes realizados pelo grupo, quando a calibração retornou valores bem distintos entre si, a cor encontrada para os blocos apresentou alto índice de acerto. O erro mais comum encontrado foi o gerado pelo bloco amarelo, devido sua proximidade com os demais blocos.
Interface de Sensores
Neste item trabalhou-se com os sensores foto-resistivos (LDR), a fim de observar suas sensibilidades com a variação luminosa. Para compreender melhor seu funcionamento, os exercícios sobre normalização da página 85 do livro de Fred Martin foram feitos e se encontram a seguir.
Item 4 pág. 85
Ex. 1: Os valores para MAX_LIGHT e MIN_LIGHT são respectivamente iguais a 0 e 255, referentes à maior variação possível destes sensores.
Ex. 2: A função normalize funcionou corretamente como deveria e valores para o sensor entre 0 a 100 como proposto.
Ex. 3: Os valores poderão ser maior 100 ou menor que 0 (zero) quando o sinal recebido do sensor for maior que MIN_LIGHT ou menor que MAX_LIGHT.
Depois de termos compreendido melhor o funcionamento teórico do sensor, o mesmo foi montado conforme a figura 10, direcionando o sensor para evitar a captura de ruídos externos gerados por luzes advindas de diferentes direções.
Com o sensor devidamente montado, o teste foi realizado para diferentes intensidades luminosas e visualmente foi observado como o sensor é realmente rápido à variação luminosa, alterando seus valores de resistência e, consequentemente, os valores da entrada analógica de 0 a 255.
Sensoriamento avançado
Neste item foi realizada uma montagem no robô que fosse capaz de fazer com que o mesmo pudesse seguir uma linha escura no chão.
Para se movimentar sobre a linha o robô utilizou 3 sensores, sendo 1 próximo ao eixo de rotação do robô e os outros dois em sua parte frontal. Os sensores frontais foram colocados de modo a ficar um sobre a linha e um fora. Dessa maneira o robô poderia ter uma melhor estimativa de sua posição relativa a linha e se orientar melhor sobre essa.
A movimentação do robô foi implementada de maneira completamente reativa. Para cada sensor existia uma thread que capturava seus dados e o escrevia em um vetor de modo a receber a resposta dos sensores de maneira mais rápida possível. Dependendo das respostas o robô poderia ter diferentes ações: Girar sem se deslocar, Fazer uma curva, andar para frente ou fazer um movimento em espiral. O sensor do centro de rotação era usado para detectar se o robô estava ou não na linha em orientação correta e os outros dois eram usados para detectar a direção da linha. Dessa maneira conseguimos uma melhor estimativa do tipo de ação a ser realizado.
Conclusão
Com a elaboração deste trabalho pode ser observado como ocorre o funcionamento dos sensores óticos e foto-resistivos. Foi possível observar a variação dos mesmos com a intensidade luminosa do ambiente e quanto a oscilações na mesma. Verificou-se também a possibilidade de se poder aplicar os sensores em sistemas de reconhecimento de cores e auxiliando no reconhecimento de padrões com mais e menos intensidade luminosa (superfície negra e branca). Nas aplicações desenvolvidas, o funcionamento do robô foi como previsto, conseguindo reconhecer cores com pequenos desvios e seguindo a linha preta no chão, onde mostrou também robustez ao procurar a linha em uma espiral elíptica.
Referencias
MARTIN, Fred. Robotic Explorations: A Hands-on Introduction to Engineering. Prentice Hall, 2001.