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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 213: Linha 213:
  
 
== Requisitos Não Funcionais ==
 
== Requisitos Não Funcionais ==
# O sistema de auditoria deve ser compartilhado entre os robôs.
+
'''RNF01''' O sistema de auditoria deve ser compartilhado entre os robôs. <br>
# O sistema de auditoria deve conter um banco de dados com as informações sobre os alvos e um placar para consulta dos robôs.
+
'''RNF02''' O sistema de auditoria deve conter um banco de dados com as informações sobre os alvos e um placar para consulta dos robôs. <br>
# O tabuleiro deve ter dimensões de 2 metros por 2 metros.
+
'''RNF03''' O tabuleiro deve ter dimensões de 2 metros por 2 metros. <br>
# O tabuleiro deve ser formado por 100 blocos com dimensões de 0,2 metros por 0,2 metros.
+
'''RNF04''' O tabuleiro deve ser formado por 100 blocos com dimensões de 0,2 metros por 0,2 metros. <br>
# O tabuleiro deve ter 6 cores (vermelho, azul, amarelo, verde, branco e marrom).
+
'''RNF05''' O tabuleiro deve ter 6 cores (vermelho, azul, amarelo, verde, branco e marrom). <br>
# Ao redor do tabuleiro deve ter um contorno preto de 0,15 metros.
+
'''RNF06''' Ao redor do tabuleiro deve ter um contorno preto de 0,15 metros. <br>
 
+
'''RNF07''' Cada robô deve ter uma cor. <br>
 
 
 
 
O servidor web deve ser compartilhado entre os robôs.
 
O servidor web deve conter um banco de dados com as informações sobre os alvos e um placar para consulta dos robôs.
 
‎O tabuleiro deve ter dimensões de 2 metros por 2 metros.
 
O tabuleiro deve ser formado por 100 blocos de cores com dimensões de 0,2 metros por 0,2 metros.
 
O tabuleiro deve ter 6 cores (vermelho, azul, amarelo, verde, branco e marrom).
 
Ao redor do tabuleiro deve ter um contorno preto de 0,15 metros.
 
  
 
== Restrições ==
 
== Restrições ==

Edição das 14h45min de 27 de março de 2018

Equipe

Luísa Machado
Marina Souza
Natália Miranda


Cronograma de Atividades

Atividades 26/02 - 03/03 03/03 - 10/03 10/03- 17/03 17/03 - 24/03 24/03 - 31/03 31/03 - 07/04 10/04 - 17/04 17/04 - 24/04 24/04 - 01/05 - 08/05
Estrutura do EV3 OK
SD Card com sistema operacional embarcado OK
Acesso via WiFI OK
Execução de programas na linguagem Python OK
Teste de sensores e motor parcial
Estudo do artigo do Borenstein e pesquisas sobre métodos de localização OK
Definir método para localização OK
Definir regras do jogo OK
Entrega do sumário executivo OK
Casos de uso e requisitos parcial

Estrutura do EV3

A equipe optou por utilizar um modelo adaptado do Gyro Boy LEGO® MINDSTORMS® Education EV3.
As interfaces de entrada e saída utilizadas no controle do robô seguem a nomenclatura tabela:

Interfaces
Input Output
1 Sensor de Cor A Motor Direita
2 Sensor de Toque B
3 Sensor Ultrassônico C
4 Sensor de Giro D Motor Esquerda
EV3 montado pela Equipe

Acesso via WiFI

Para acessar o robô via rede Wi-Fi utilizamos um dispositivo Wi-Fi (TP-Link N500) conectado à porta USB do EV3 e acessamos as configurações de rede na tela do EV3 para obter o endereço IP.
A partir de um computador conectado na mesma rede local que o robô, configuramos o software Moba para gerar uma interface gráfica de programação e permitir o envio de arquivos via SSH ao software do EV3.
O tutorial completo pode acessado neste link.

Execução de programas na linguagem Python

O primeiro código em Python enviado ao EV3 foi um teste no sensor de toque. O objetivo do programa é acionar o led verde do EV3 quando o sensor de toque for pressionado.

Teste do Sensor de Toque

Teste de sensores e motor

Teste dos Motores
Teste do Sensor de Cor
Teste do Sensor de Giro
Teste do Sensor de Ultrassônico


Estudo do artigo do Borenstein e pesquisas sobre métodos de localização

Review Técnicas de Indoor Positioning

Implementação e Teste de Soluções de Navegação de Robôs Móveis com Base no Sistema NXT/EV3 da LEGO®

Mobile Robot Positioning & Sensors and Techniques

Sumário Executivo

Arquivo:Artigo Redes.pdf

Levantamento de Requisitos

Requisitos Funcionais

RF01 O robô entra em funcionamento a partir de instruções originadas no sistema de auditoria.
RF02 O robô inicia em uma posição aleatória.
RF03 O robô deve descobrir sua localização no tabuleiro.
RF04 O robô deve encontrar alvos aleatoriamente escolhidos pelo sistema.
RF05 O robô deve informar ao sistema supervisor quando um alvo for encontrado.
RF06 O robô deve funcionar de modo autônomo ou manual.
RF07 O robô em modo autônomo deve ser capaz de tomar decisões quanto ao seu deslocamento evitando chocar-se com outro robô.
RF08 O sistema de auditoria notifica o sistema supervisor sobre o início e o término de uma partida e quando um alvo for alcançado por um adversário.
RF09 O sistema de auditoria deve gerenciar os dados da partida e ser capaz de apresentar esses dados ao público em tempo real.
RF10 O sistema de auditoria deve gerar randomicamente a quantidade de alvos escolhido pelo juiz.
RF11 O sistema de auditoria deve permitir a pausa ou reinício de uma partida.
RF12 O sistema de auditoria deve permitir que se escolha o modo de funcionamento manual ou autônomo para o robô.
RF13 O sistema supervisor deve repassar ao robô as informações sobre a partida recebidas do sistema de auditoria.

Requisitos Não Funcionais

RNF01 O sistema de auditoria deve ser compartilhado entre os robôs.
RNF02 O sistema de auditoria deve conter um banco de dados com as informações sobre os alvos e um placar para consulta dos robôs.
RNF03 O tabuleiro deve ter dimensões de 2 metros por 2 metros.
RNF04 O tabuleiro deve ser formado por 100 blocos com dimensões de 0,2 metros por 0,2 metros.
RNF05 O tabuleiro deve ter 6 cores (vermelho, azul, amarelo, verde, branco e marrom).
RNF06 Ao redor do tabuleiro deve ter um contorno preto de 0,15 metros.
RNF07 Cada robô deve ter uma cor.

Restrições

As limitações encontradas pela equipe para o desenvolvimento do projeto envolvem:

  1. A quantidade de sensores disponíveis para integrar ao robô.
  2. Atraso no processamento de programas grandes ou travamento da plataforma do EV3.
  3. Limitação de horas livres semanalmente que a equipe pode se dedicar ao desenvolvimento do projeto.

Casos de uso

Atores

  1. Sistema do robô
  2. Sistema de auditoria
  3. Sistema supervisor
  4. Jogador (modo manual)
  5. Juiz

Diagramas de Casos de Uso

Sistema do Robô:

  • Operar Robô: O jogador será capaz de operar o robô em modo manual;
  • Repassar Informações: O Sistema Supervisor do Robô repassará as informações referente a partida;
  • Decidir Deslocamento: Em modo autônomo, o Sistema Supervisor do Robô auxiliará o sistema do Robô a decidir como este se deslocará no tabuleiro.

UseCase Diagram2.png

Sistema Supervisor do Robô

  • Escolher Modo de Operação: O jogador escolherá se o robô será guiado modo manual ou autônomo;
  • Receber informações: O sistema de Auditoria informa ao sistema Supervisor as informações da partida, como a posição do robô, o início e o término de uma partida e quando um alvo for alcançado por um adversário;
  • Repassar informações: O sistema Supervisor repassa as informações obtidas pelo sistema de Auditoria ao Sistema do Robô;
  • Detectar Alvo: Ao detectar um alvo o Sistema do Robô informará ao Sistema Supervisor.

UseCase Diagram1.png

Sistema de Auditoria

  • Iniciar Partida: O Juiz dará início a partida pelo sistema de Auditoria;
  • Cadastrar Jogadores: O juiz será capaz de cadastrar os jogadores no sistema de auditoria;
  • Gerar Alvos: O Juiz solicitará a geração, de modo randômico, das posições dos alvos ao Sistema de Auditoria;
  • Receber Informações: O sistema de Auditoria informa ao sistema Supervisor as informações da partida, como a posição do robô, o início e o término de uma partida e quando um alvo for alcançado por um adversário;
  • Enviar Informações: O sistema Supervisor enviará informações do robô ao Sistema de auditoria.

UseCase Diagram0.jpg

Regras de Negócio

Nome Descrição
Acesso ao Sistema O robô terá acesso constantemente ao sistema para verificar o mapeamento e as posições dos alvos no tabuleiro
Tomada de Decisão Ao realizar a leitura da cor através do sensor de cor, o robô saberá seu posicionamento atual e por consequência tomará a decisão referente ao posicionamento seguinte.
Atualização do Placar Ao encontrar um alvo o robô enviará uma mensagem ao sistema, para atualização do placar.
Delimitação do Tabuleiro A faixa preta ao redor do tabuleiro indicará as limitações do mesmo.
Sorteio de Posições O sistema gerará randomicamente as posições dos alvos.
Detecta Adversário Através do sensor ultrassônico o robô detecta outro robô e altera seu caminho.

Links Auxiliares