Mudanças entre as edições de "Grupo1-PJI2-2018-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
 
=Apresentação inicial=
 
=Apresentação inicial=
  
{{Collapse top | Encontro 1 - 27/02}}
+
{{Collapse top | Encontro 1 - Decisão de robô, montagem e instalação do Ev3Dev - 27/02}}
  
 
==Decisão de robô, montagem e instalação do Ev3Dev==
 
==Decisão de robô, montagem e instalação do Ev3Dev==
Linha 15: Linha 15:
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  
{{Collapse top | Encontro 2 - 01/03}}
+
{{Collapse top | Encontro 2 - Conectividade WiFi e sensores - 01/03}}
  
 
==Conectividade WiFi e sensores==
 
==Conectividade WiFi e sensores==
Linha 26: Linha 26:
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  
{{Collapse top | Encontro 3 - 02/03}}
+
{{Collapse top | Encontro 3 - Conhecendo robô - 02/03}}
  
 
==Conhecendo robô==
 
==Conhecendo robô==
Linha 36: Linha 36:
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  
{{Collapse top | Encontro 4 - 03/03}}
+
{{Collapse top | Encontro 4 - Escolha do modelo do sistema de localização e definição das regras - 03/03}}
  
 
==Escolha do modelo do sistema de localização e definição das regras==
 
==Escolha do modelo do sistema de localização e definição das regras==
Linha 94: Linha 94:
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  
{{Collapse top | Encontro 5 - 05/03}}
+
{{Collapse top | Encontro 5 - Trabalhando com o robô - 05/03}}
  
 
==Trabalhando com o robô==
 
==Trabalhando com o robô==

Edição das 14h08min de 6 de março de 2018

Apresentação inicial

Encontro 1 - Decisão de robô, montagem e instalação do Ev3Dev - 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 - Conectividade WiFi e sensores - 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 - Conhecendo robô - 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 - Escolha do modelo do sistema de localização e definição das regras - 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 5 - Trabalhando com o robô - 05/03

Trabalhando com o robô

  • Durante o encontro desenvolvemos um código base para a apresentação do robô em sala. Nesta rotina usamos como atuadores dois motores e como sensores um ultrassônico, um sensor de cores e um sensor de toque.
    • O código desenvolvido faz com que o robô, montado no formado te um cachorro ao ser tocado sente e levante, ao aproximar-se de algo, "lata", identifica as cores: vermelho, amarelo, azul e verde.
    • Todo o código encontra-se no projeto "puppy.Ev3" no github.