O robô utilizado no desenvolvimento do TP3 é aquele do TP2, porém aqueles sensores que não seriam utilizados nesta etapa foram removidos, deixado apenas um dos sensores óticos.
A realização dos exercícios propostos na seção 5.1.3 se deu com a utilização de apenas um sensor ótico, constituído de um par diodo-emissor e fototransistor. O sensor adotado nesta etapa é o mais sensível, ou seja, aquele que apresenta no sinal de saída, uma maior diferença para as situações de “objeto próximo” e “nenhum objeto”.
Nos exercícios de 1 a 4, implementou-se diferentes algoritmos para a tarefa de seguir paredes, mantendo distância constante da mesma: gentle-turn, hard-turn, e o three-state. A partir das observações feitas nos ensaios pode-se apontar que:
Inicialmente, definem-se dois limiares (thresholds), com base em duas situações: “sensor próximo à parede” e “sensor distante da parede” (nada). Assim, derivam-se as possíveis combinações, como exemplificado abaixo:
Suponha que o valor na saída do sensor para a situação “próximo à parede” seja 10 e para “distante da parede” seja 200.
Com esses valores definem-se os intervalos e as respectivas ações:
O gráfico abaixo expressa esse comportamento para um curto intervalo de tempo:
A implementação do algoritmo wavefront não apresentou grandes problemas. Utilizou-se o exemplo disponível no site e para que este rodasse, alterou-se as constantes (potências) do algoritmo.
O algoritmo utiliza um grid 10×10, composição inicial 1×1, pois 0x0 resultava em erro em tempo de execução. Considerando-se a frente do robô posicionado na coordenada 1×1, definiu-se como posição Y, as linhas, e X as colunas.
Na inicialização do procedimento, devem ser informadas as posições inicial e final do robô, bem como o número de obstáculos e as coordenadas do grid que possuem tais obstáculo. Considerou-se que cada obstáculo ocupava uma célula do grid. Inseridas as informações na handy-board, esta processa bastante e define a rota a ser traçada pelo robô para cumprir a missão, contornando os obstáculos.
O deslocamento do robô pelo grid não utilizou nenhuma estratégia de controle, e sim uma rotina de calibração por aprendizagem, através da qual é indicado para o robô, como é o ambiente. Basicamente, registram-se os tempos gastos para percorrer uma célula do grid em linha reta, girar 90 graus para a esquerda e para a direita. Assim, é possível que o robô realize o wavefront com sucesso, para qualquer que seja a dimensão de uma célula do grid, e também para diferentes tipos de assoalho.
Talvez o maior problema para este algoritmo sejam as dimensões do grid, uma vez que a handy-board não dispõe de memória extensa para armazenamento de código e processamento.