Tabela de conteúdos

Trabalho Prático 2

O segundo trabalho prático tem como objetivo fazer com que todos se familiarizem com sensores, pela construção, avaliação e processamento dos sinais medidos. Esses sinais, devidamente processados serão utilizados em algumas tarefas a serem realizadas pelo robô.

Desenvolvimento do Trabalho

Montagem

A estrutura do robô apresentado no tp1 é bastante robusta, por isso, decidiu-se manter a estrutura básica já construída. O robô possui dois motores, um para cada roda, posicionados na parte traseira, o roll continua posicionada na parte dianteira e a handy board continua posicionada na parte superior traseira numa estrutura feita especialmente para esse fim.

A estrutura responsável por subir e descer a caneta foi retirada poi não havia necessidade dela nesse trabalho.

Dois sensores ópticos foram acoplados na parte inferior, próximos as rodas, com a função de detectar linhas.

Próximos aos leds, que já estavam posicionados no tp1, foi posicionado mais um sensor óptico para detecção da cor dos blocos de isopor.

Além disso, dois sensores LDR foram colocados na parte dianteira. Os sensores foram ligados juntos(para formar apenas um sensor) de forma a diminuir o ruído. Cada um dos sensores tem um filtro polarizador colocados em posições diferentes. Dessa forma um sensor capta melhor a luz de um lado e o outro sensor capta melhor a luz do outro lado do campo

Calibração

A primeira tarefa a ser feita foi a calibração. Os motores das rodas forma calibrados no tp anterior por isso não houve necessidade de nova calibração.

Para calibrar os sensores ópticos acoplados na parte inferior do robô foi utilizado a função calcula_threshold. Essa função faz um número razoável de medições e utiliza a soma dos valores medidos como referência(o resultado é armazenado em uma variável persistente). Os sensores LDR também são calibrados nessa mesma função utilizando o mesmo princípio.

A calibração do sensor que detecta a cor do bloco é feita pela função encontra_cor. Essa função utiliza o mesmo princípio da função anterior. Existem quatro leds: branco, verde, vermelho, azul. Cada um dos sensores é ligado separadamente e algumas medições são realizadas. A soma dessas medições são armazenadas em variáveis persistentes(uma variável para cada cor). Esse procedimento é realizado para cada bloco. Dessa forma é armazenado os valores da leitura do sensor para cada led e para cada cor de bloco.

Seguir Linha

Para realizar essa tarefa foi utilizado os dois sensores ópticos que estavam posicionados na parte inferior do robô. O objetivo da função é manter o sensor esquerdo sobre a linha e o sensor direito lendo branco(fora da linha).

Dessa forma, se o sensor da direita estiver lendo preto, a trajetória é corrigida para a direita. Em seguida é testado se o sensor da esquerda está lendo branco. Caso afirmativo, a trajetória é corrigida para a esquerda.

Localização

O algoritmo utilizado para resolver essa tarefa é parecido com o algoritmo anterior. Primeiro, seleciona-se qual luz polarizada o robô deve seguir. No estágio inicial, o robô gira até chegar a um limiar(obtido na calibração). Nesse instante, o robô anda em linha reta enquanto o valor lido pelo sensor estiver em um limiar pré-definido. Caso a leitura fique fora desse limiar, o robô gira novamente e repete-se o processo novamente.

Identificação do Bloco

Para detectar blocos é necessário fazer a calibração. Depois que essa parte foi concluída basta colocar o bloco na frente do robô(próximo ao led óptico) e chamar a função cor.

A função cor foi implementada utilizando o algoritmo de calculo da distância euclidiana entre os valores armazenados(variáveis persistentes) e os valores lidos. A cor do bloco é deduzida verificando qual medidas obtiveram a menor distância euclidiana.

Problemas Enfrentados

Calibrar os sensores foi uma parte bastante trabalhosa. Além disso, mesmo tendo os sensores calibrados, os algoritmos exigiram bastante. O algoritmo para seguir em linha reta principalmente demandou muito tempo para ser implementado de forma satisfatória.

Conclusão

As tarefas propostas foram executadas com sucesso. O grupo aprendeu bastante sobre sensores além de vários algoritmos tanto para calibração como para a utilização dos valores obtidos. Percebeu-se que a utilização de sensores demanda um estudo de como será utilizado o sensor, como será feita sua calibração e como será utilizado os valores obtidos nas leituras.

Referências

As referências utilizadas foram o manual da handy board, o manual do IC e o livro Robotics Explorations: A Hands-On Introduction to Engineering, Fred Martin, Prentice Hall.

Documentação

tp2.pdf