Robô Móvel III (TP4)

O principal objetivo do trabalho prático 4 consiste em realizar quatro tarefas. Na primeira delas, o robô deve se alinhar com duas fontes diferentes de luz polarizadas no campo utilizando um LDR diferencial. Após isso, o robô deve ser capaz de seguir uma parede utilizando o algoritmo Wall Following e um sensor óptico para medir a distância existente entre eles. O robô ainda deve ser capaz de realizar caminhos tais como retas, quadrados e triângulos utilizando um sistema de controle PD, que controlará a velocidade do robô. Por fim, o TP visa analisar a capacidade de tomada de decisões do robô. Para isso, devem-se localizar blocos de diferentes cores no campo, e para cada cor encontrada realizar algum tipo de decisão.


Para implementação dos sensores, decidimos manter o sensor de detectar cores na parte frontal do robô e protegido de luz, assim como foi feito no TP 3. Para implementação dos sensores de identificação de luz, por sua vez, decidimos implementar uma plataforma elevada, de tal forma que o robô conseguisse identificar as luzes com um ângulo de incidência de 90º, o que aparentemente melhora o desempenho deste. Quanto aos sensores ópticos para o algoritmo Wall Following, um foi colocado na extremidade esquerda do robô enquanto o outro na extremidade dianteira. Desta forma, Spark conseguia detectar paredes em sua frente (assim como blocos) e em seu lado esquerdo. Por fim, as chaves ópticas foram colocadas no interior do robô, de tal forma q envolvesse parte da roda, para conseguir verificar o número de voltas da roda e auxiliar no controle.

Optamos ainda por realizar uma mudança de esteiras para rodas. Desta forma, garantimos um menor deslize, o que permitiu uma melhor implementação do controle, além de que esperávamos rampas no TP4 ou na competição.

Decidimos também manter as características físicas do robô. Desta forma, este apresenta uma excelente robustez, resistência e uma velocidade consideravelmente boa.

  1. Identificação de Luz

Para identificação da luz, utilizamos sensores LDR diferenciais, em conjunto com um filtro polarizador. Cada sensor identificava luzes polarizadas em uma direção (horizontal ou vertical). Assim, para realizar a identificação, garantimos que o robô desse ao menos uma volta completa antes de parar. Nesta volta, assim que o sensor que estivesse programado para identificar cor retornasse um sinal 1, o robô parava.

  1. Wall Following

A função de seguir a parede funciona com o robô detectando qualquer coisa que esteja na sua frente e qualquer coisa que esteja em seu lado. Para garantir que este não se afastasse muito da parede lateral, foi colocado um limite máximo de distância que este poderia estar da parede. Assim, o robô sempre que o robô se perdesse, ele se deslocava ligeiramente para a esquerda e para frente, até encontrar uma parede e retornasse à sua rota original.

  1. Shaft-encoders

Para percorrer os caminhos necessários, foi implementado um controlador PD, de tal forma que o robô percorria uma reta. A partir disso, conseguimos implementar um conjunto de retas que percorriam os caminhos desejados: quadrado (conjunto de quatro retas) e triângulo (conjunto de três retas).


As dificuldades encontradas no trabalho foram estruturais, com exceção da implementação da controladora PD. O grupo não tinha certeza de como ficaria essa implementação, então foi necessário uma grande pesquisa e várias tentativas.

Quanto à parte estrutural, no dia da apresentação dois fios foram danificados, o que prejudicou o grupo na melhoria da controladora e na implementação das tarefas de tomada de decisão (tanto que o grupo não conseguiu concluir de forma satisfatória esta tarefa).

Um outro problema ocorrido foi a largura e a altura que as chaves ópticas precisavam ter. Cortar as peças e os sensores de forma a realizar o incremento de contador para verificar a velocidade de rotação das rodas gerou algumas complicações.


Quanto às partes de identificação de luz e andar seguindo a parede, o robô realizou as tarefas sem maiores dificuldades. Mesmo quando se perdia ou era colocado fora de posição, o robô conseguia voltar para a parede, e conseguia identificar qualquer luz desde que estivesse a uma distância aceitável desta (70% do tamanho da arena da competição).

Na parte de percorrer os caminhos, o robô realizou satisfatoriamente a tarefa controlada, apesar de sofrer leves desvios em algumas ocasiões. O problema, contudo, não era devido à falhas na programação, mas sim em falhas mecânicas.

Por fim na parte de encontrar blocos e realizar as ações, como o led azul queimou, não foi possível realizar as ações de forma satisfatória, mas foi possível observar que o robô conseguiu identificar o bloco e realizar algum tipo de ação.