Esse projeto foi desenvolvido para servir de base para a participação da competição Mini-Sumo 500g, representando a equipe Atena - USP (Grupo SEMEAR). Tal categoria de competição, consiste em robôs autônomos de no máximo 500g com o objetivo de empurrar o oponente para fora do Dohyo (arena).
Projeto • Organização • Como testar • Tecnologias
Retomando os objetivos da competição de forma mais detalhada, ela é realizada num sistema de rodadas, nos quais os robôs são colocados em posições iniciais numa arena, como está exemplificado na figura abaixo, junto as dimensões do Dohyo. Vale ressaltar que a posição inicial do robô é escolhida pela equipe, assim como a estratégia que ele realizará na rodada.
Para criar uma base lógica para sua futura utilização na implementação do controle de um robô desenvolvido para competições dessa categoria foi desenvolvida um algoritmo com um conjunto de funções que foram julgadas bases para formação de qualquer estratégia, considerando um desenvolvimento de um robô com 2 rodas. Desse modo, foi pensando em como modularizar qualquer possível movimentação do robô em determinada estratégia. Para tanto, foi utilizado o framework Arduino para escrever o código na plataforma PlatformIO disponível como extensão do VSCode. Além disso, foi considerando a utilização de um microcontrolador também do tipo Arduino.
Com tais funções é possível executar o controle dos motores, verificar os sensores de linha e distância, fazer movimentações para todas direções e curvas. Para facilitar a construção dos algoritmos das estratégias foi criado duas funções derivadas dessas funções, denominadas, básicas:
- return_battle: Executa uma rotação no eixo da roda para retirar o robô da linha externa do Dohyo (borda)
- follow_enemy: Executa um método de busca que verifica os sensores de distância e realiza ajustes de sentido para ir em direção ao oponente
Por fim, foi adaptado tais códigos para o simulador Webots, junto a implementação de um CAD no ambiente para poder construir protótipos de estratégias e testá-las sem a necessidade da finalização da construção física do robô.
Para o projeto foi utilizado a seguinte árvore de arquivos:
- assets: Arquivos adicionais
- docs: Arquivos relacionados a competições
- images: Imagens utilizadas
- controller: Arquivos de implementação no microcontrolador
- lib: Biblioteca desenvolvida com funções básicas
- src: Algoritmo main
- webots: Arquivos de implementação no simulador
- libraries: Biblioteca desenvolvida com funções básicas
- source: Algoritmo main
Para testar os códigos no simulador, primeiramente se deve fazer o download do mesmo no seguinte link. Vale ressaltar que o simulador é gratuito e open source.
Com isso, se deve abrir o ambiente disponibilizado no simulador e acessar a pasta do mundo, adicionando os arquivos de controle presentes nesse repositório, incluindo o makefile. A seguir o comando no terminal necessário para baixar esse repositório:
$ git clone https://github.com/Grupo-SEMEAR-USP/Mini-Sumo2021.git
Por fim, durante o desenvolvimento desse repositório foram utilizadas as seguintes tecnologias:
- C/C++
- Webots
- Framework Arduino
- PlatformIO
Desenvolvido por Francisco Affonso e Gianluca Capezzuto