Grupo1-PJI2-2018-1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Apresentação inicial

Encontro 1 - 27/02

Decisão de robô, montagem e instalação do Ev3Dev

  • "Montagem:" Após a análise das peças disponíveis no box Lego Mindstorms Ev3 Education 45544, escolhemos o robô a ser montado, sendo o escolhido: Puppy


PuppyEv3.jpeg


  • "Ev3Dev:" Instalação do Ev3Dev, um sistema operacional baseado em Debian que roda no bloco EV3, como num dual boot. A partir da utilização deste SO pode-se programar o robô utilizando linguagem de programação C, Python, por exemplo. A instalação foi feita com base no site do desenvolvedor.
Encontro 2 - 01/03

Conectividade WiFi e sensores

  • A partir da página do Ev3Dev estabelecemos com sucesso as conexões via Bluetooh, Wi-Fi (usando um dongle e a rede de dados móveis) utilizando SSH.

- A conexão Wi-Fi através da rede do IFSC não foi possível por ser uma rede baseada em EAP (Protocolo de Autenticação Extensiva).

  • Neste encontro testamos os motores do robô, bem como o auto falante integrado.
Encontro 3 - 02/03

Conhecendo robô

  • Definição da linguagem de programação que será utilizada e estudo da mesma: Python.
  • Foram feitos testes com o sensor de toque, LEDs embutidos na base do robô.
  • Estudo do artigo do Borenstein.
Encontro 4 - 03/03

Escolha do modelo do sistema de localização e definição das regras

  • Após a leitura e análise das condições atuais do robô (sensores já disponíveis) foi decidido que o modelo a ser utilizado será baseado em:

- Odometria, por proporcionar altas taxas de amostragem, e basear-se no movimento da roda.

- Navegação inercial, por já termos disponível um giroscópio.

- Navegação Landmark, pela possibilidade de usar marcos artificiais e termos disponível um sensor de cores.

  • Como definido pelos professores, a partir da orientação para "tentar fazer regras mais simples possíveis" foi definido que:

Regras:

Objetivo: encontrar no tabuleiro as cores sorteadas na ordem correta e em menos tempo possível.

Encontrar cores no tabuleiro

  • Azul
  • Vermelho
  • Amarelo
  • Verde


  • Sorteio

Estando ambos os robôs nas suas respectivas posições iniciais é dado início ao jogo. O servidor sorteia a ordem para a procura das cores para ambos os robôs. A localização de cada uma das cores já é conhecida pelo servidor previamente, assim que o sorteio acontece juntamente com cada cor o robô recebe também a localização dela no tabuleiro (cada robô deve receber uma ordem de cores diferente).

  • Procurando as cores

Os robôs se movimentam sobre o tabuleiro de acordo com o sistema de localização escolhido pela equipe em busca da sequencia de cores sorteada. Caso aja colisão entre os dois robôs, o robô responsável pela mesma deve retornar à sua posição inicial para então dar continuidade à procura das cores (não será necessário reencontrar as todas as cores, o robô deverá procurar pelas cores ainda não descobertas) .

  • Tabuleiro e servidor

Durante todo o jogo o tabuleiro será monitorado por uma câmera IR (infravermelho) para que as colisões sejam reportadas aos jogadores. A partir da acusação da câmera feita pelo servidor para os robôs, o robô com menor distância indicada pelo seu próprio sensor infravermelho será o culpado pela colisão e deverá voltar para a posição inicial de partida.

  • Extra

Sendo o tabuleiro monitorado pela câmera IR, é possível que os dados das localizações de cada um dos robôs esteja disponível durante a partida. A partir desta informação cada robô dele fazer o possível para que não esbarre no seu adversário.

O robô que encontrar todas as cores primeiro é o vencedor!

— Todas as regras serão iguais para os dois modos de operação

  • Modo manual
  • Modo autônomo com sistema de localização

— A comunicação entre os robôs e o servidor será feita por meio de uma API comum entre os participantes.


  • PENDÊNCIA - REFAZER AS REGRAS
Encontro 6 - 04/03

Estudo da linguagem escolhida

  • Curso Python 2: Programando com a linguagem - ALURA

Anotações - EVERNOTE