Tabela de conteúdos

Trabalho Prático 3: V.I.N.I.C.I.U.S.

Introdução

O TP3 A missão foi desenvolver um robô com o objetivo de nos prepararmos para a prévia/competição batalha final. Ele deveria ser capaz de identificar e seguir uma luz polarizada com visão infra-vermelho, identificar blocos de cores diferentes e ver através de paredes com visão raio-x, seguir uma linha preta marcada no chão, seguir um percurso por uma parede e calibrar os seus motores dinamicamente através de shaft-encoders.

Dificuldades

Começamos o trabalho a batalha com quatro integrantes gurreiros. Quando estávamos nos aproximando da aprensentação da parte A do primeiro embate, nos deparamos com uma situação crítica: não tínhamos nenhum sensor estávamos com a retaguarda descoberta! A única opção foi não apresentar o trabalho ir para a batalha desarmados.

Sobrevivemos à primeira parte, mas, logo após, tivemos um guerreiro abatido por ferimentos de combate. Restou nos prepararmos para a próxima luta recomeçando tudo do zero. A partir desse ponto, o único problema que tivemos foi com a parte mecânica do robô, que não estava bem projetada, impedindo testes e simulações práticas com os sensores construídos.

Após várias remontagens da parte mecânica, foi possível avançar em alguns aspectos. Mas então nos deparamos com um novo problema: a bateria descarregava muito rápido consumo excessivo de combustível. Tentamos contornar esse problema como possível, mas não o solucionamos.

Apesar de tudo, considerando que tentamos fazer todo o desenvolvimento de três semanas em apenas três dias, devido à necessidade de reformulação do robô e da construção de novos sensores, obtivemos um resultado aceitável.

Implementação

A implementação final do robô consistiu em uma estrutura alta, com as caixas de engrenagens na vertical e a Handy Board posicionada em seu centro, ficando um pouco elevada com relação às rodas.

Uma caixa de luz foi construída para a identificação das cores dos blocos, sendo utilizado um sensor LDR para obter a leitura. Tanto o algoritmo utilizado quanto o esquema de montagem do sensor se mostraram eficientes e robustos, sendo esse o módulo que foi implementado com o maior sucesso.

Para a identificação das luzes polarizadas dois sensores LDRs foram utilizados com filtros de polarização ajustados de forma a obtermos leituras diferentes para as luzes distintas do campo. O controle do robô seguiu um modelo diferencial e se mostrou bastante robusto, dadas as condições de iluminação adequadas.

Para o robô seguir as linhas do campo foram utilizados três sensores de distância que funcionaram perfeitamente ao serem conectados nas portas digitais, infelizmente o tempo não foi suficiente para o desenvolvimento de um bom algoritmo de controle, mas as respostas do robô pela utilização de um algoritmo simples mostrou-se que é possível completar essa tarefa com certa facilidade para as próximas apresentações.

Foram utilizados dois sensores break beam para a construção dos shaft encoders utilizados em ambas as rodas do robô. A biblioteca da Handy Board para a leitura básica desses sensores foi carregada com êxito. Infelizmente, um dos sensores não respondeu de forma esperada quanto à leitura, prejudicando o algoritmo desenvolvido.

Conclusão

Aprendemos na prática que sensores são essenciais para um controle eficiente do robô, mas são suscetíveis a muitos erros. Boa parte da dificuldade do trabalho se localizou na parte do controle e da montagem dos sensores, dado que não possuíamos uma experiência prévia.

No geral, dados os problemas mencionados, o resultado final foi aceitável, já que os módulos que foram concluídos se portaram de forma robusta e eficiente. Para a próxima apresentação iremos nos concentrar nos erros que cometemos no desenvolver deste trabalho.

Arquivos

Relatório
Código Fonte