Skip to main content

Panorama do projeto

Robô de alto desempenho da categoria Micro Mouse

Este trabalho de formatura tem como foco o desenvolvimento de um robô de alto desempenho respeitando o conjunto de limitações impostos pela categoria MicroMouse. O objetivo deste trabalho é projetar e construir um robô capaz de explorar labirintos, calcular rotas ótimas e percorrê-las com agilidade, em conformidade com os padrões de competição estabelecidos pela NTF - All Japan.

Para alcançar esse objetivo, o projeto é abordado sob três principais frentes: mecânica, elétrica e computacional, sendo que cada uma delas será detalhada ao longo do trabalho.

Em resumo, este trabalho visa desenvolver um robô de alto desempenho para a categoria MicroMouse, seguindo os padrões da competição NTF - All Japan. Com foco nas áreas mecânica, elétrica e computacional, buscamos criar um robô capaz de explorar labirintos, calcular rotas ótimas e percorrê-las com agilidade.

Regras da modalidade

  1. Estrutura do labirinto:

    • O labirinto é uma grade de 16x16 células, onde cada célula mede 18 cm x 18 cm.
    • As paredes do labirinto têm 5 cm de altura e devem ter seu topo pintado de cores contrastantes para facilitar a detecção.
    • A entrada do labirinto é localizada em um dos cantos, e a saída (meta) está em uma região central de 2x2 células.
  2. Características do robô:

    • O robô deve ser totalmente autônomo durante a competição.
    • Suas dimensões não podem exceder 25 cm x 25 cm na base, sem restrições de altura.
    • O robô não pode usar qualquer tipo de comunicação externa ou controle remoto durante a prova.
  3. Exploração e resolução:

    • O robô deve explorar o labirinto, mapear sua estrutura e encontrar o caminho mais curto até a saída.
    • É permitido que o robô execute múltiplas tentativas (corridas) para otimizar o tempo. A melhor corrida será considerada para a classificação.
  4. Tempo de competição:

    • Cada equipe tem um tempo total de 5 minutos para realizar quantas corridas desejar.
    • O tempo é contado a partir do momento em que o robô inicia sua exploração até o término das corridas ou o esgotamento do tempo total.
  5. Critérios de pontuação:

    • A pontuação é baseada no menor tempo registrado pelo robô para alcançar a saída.
    • Penalidades podem ser aplicadas caso o robô danifique o labirinto ou ultrapasse os limites especificados.
  6. Condições gerais:

    • Não é permitido tocar no robô durante as corridas, exceto para reinicializá-lo entre as tentativas.
    • Qualquer tentativa de manipulação externa, sabotagem ou violação das regras resultará em desclassificação.

Portanto com estas regras em mente, buscamos desenvolver, do zero, um robô que estivesse dentro destas limitações e também atendesse os seguintes requisitos:

Requisitos Funcionais

Para possibilitar o início do desenvolvimento do projeto e maximizar suas chances de êxito, os requisitos funcionais foram levantados e analisados cuidadosamente.

Abaixo encontram-se listados e descritos detalhadamente os requisitos identificados como necessários para a concretização do projeto proposto:

  1. Identificar as paredes do labirinto

    • O robô deve utilizar fototransistores em conjunto com LEDs infravermelhos para identificar e detectar paredes ao seu redor, enviando sinais ao microcontrolador que permitam o mapeamento e a resolução do labirinto.
  2. Mapear o labirinto com as paredes identificadas

    • Com as informações coletadas pelos sensores, o robô deve criar um “gêmeo digital” simplificado do labirinto, permitindo sua localização e o cálculo da rota mais rápida até o ponto final.
  3. Calcular a rota mais rápida até o fim do labirinto

    • Utilizando algoritmos de grafos e flood, o robô deve determinar rotas possíveis até o final do labirinto e identificar a mais rápida, permitindo maior aceleração e menor tempo de conclusão.
  4. Percorrer uma rota calculada

    • O robô deve seguir a rota calculada de forma precisa, utilizando sensores de inércia, corrente e encoders angulares para monitorar o deslocamento e algoritmos de controle (como PID) para evitar colisões e manter velocidade.
  5. Estimar sua posição e orientação atual no labirinto

    • Utilizando técnicas de odometria e os sensores disponíveis, o robô deve estimar continuamente sua posição e orientação no labirinto em relação ao gêmeo digital armazenado.
  6. Salvar as informações do labirinto na memória flash

    • O gêmeo digital deve ser armazenado e atualizado na memória flash durante a exploração, garantindo que as informações sejam preservadas entre diferentes modos de operação (exploração e corrida).
  7. Identificar o fim do labirinto

    • O robô deve ser capaz de reconhecer o final do labirinto, realizar uma parada no ponto de chegada e emitir um som através de um buzzer para sinalizar o objetivo alcançado, iniciando o retorno ao início.
  8. Calcular uma rota para o início do labirinto que mapeie outras partes do labirinto

    • O retorno ao ponto inicial deve ser realizado por uma rota que explore áreas não visitadas, permitindo um mapeamento mais completo do labirinto e buscando rotas mais eficientes para a solução.
  9. Parar no começo do labirinto

    • O robô deve finalizar a volta com uma parada total no ponto inicial, sinalizando o término da volta e permitindo o prosseguimento das próximas etapas da competição.

Requisitos Não Funcionais

As características mínimas inerentes ao projeto, representadas pelos seus requisitos não funcionais, foram levantadas e estão listadas a seguir:

  1. Sua projeção no chão deve caber em um quadrado de 25x25 cm:
    O regulamento da competição estabelece que nenhum robô apto a competir na categoria pode ter uma projeção maior que 25 cm². Esse requisito é essencial para garantir a elegibilidade do projeto.

  2. Ter bateria suficiente para durar 5 minutos em execução:
    O robô tem direito a 5 voltas no total, somando, no máximo, 5 minutos de execução. Como a bateria não pode ser trocada entre as voltas, ela deve ser capaz de sustentar o funcionamento do robô durante todo esse período.

  3. Ter uma capacidade de aceleração e freio de 30 m/s²:
    Para competir em alto nível, o robô deve possuir uma capacidade elevada de acelerar e desacelerar em espaços limitados, como o labirinto de 2,88 m de lado. Campeões mundiais da categoria alcançam acelerações de até 30 m/s², uma meta competitiva e atingível para este projeto.

  4. Ter uma velocidade máxima de 6 m/s:
    A velocidade máxima, embora não prioritária em um espaço pequeno, deve ser suficiente para permitir o desenvolvimento rápido de retas. O objetivo é atingir 6 m/s, que é a média dos principais competidores, possibilitando ao robô percorrer a maior reta do labirinto (2,8 m) em menos de 1 segundo. Essa velocidade será alcançada com motores de baixa rotação e alta potência, combinados com uma redução mecânica eficiente.

  5. Ser capaz de fazer curvas de 90° com mais de 1 m/s:
    Para manobrar de forma eficiente no labirinto, o robô deve ser capaz de realizar curvas de 90° e 45° sem desaceleração significativa, mantendo uma velocidade de pelo menos 1 m/s durante as manobras.

  6. Ter um tamanho máximo de 11,9 cm (Capacidade de percorrer caminhos diagonais no labirinto):
    O labirinto é composto por um grid de 16x16 quadrados de 18x18 cm. Com paredes de 1,2 cm de espessura, o espaço restante para o robô é de 16,8 cm. Para permitir o deslocamento em diagonais, o tamanho do robô deve respeitar o seguinte cálculo:

    dmax=16,8×22=11,879cmd_{max} = \frac{16,8 \times \sqrt{2}}{2} = 11,879cm

    Assim, o robô deve ter uma largura máxima de 11,9 cm para atender a esse requisito.