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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 277: Linha 277:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
{{collapse top | Tabela de Mapeamento}}
+
{{collapse top | Tabelas de Mapeamento}}
 
[[Arquivo:tab2_mapeamento.jpg|1000px|thumb|center|<div style="TEXT-align: center;">Tabelas de mapeamento</div>]]
 
[[Arquivo:tab2_mapeamento.jpg|1000px|thumb|center|<div style="TEXT-align: center;">Tabelas de mapeamento</div>]]
 
{{collapse bottom}}
 
{{collapse bottom}}

Edição das 21h24min de 2 de setembro de 2018

Membros do grupo

  • Ameliza Souza Corrêa
  • Marcone Augusto P. Louzada
  • Yan Lucas Martins

Diário do projeto

06/08/2018 - Montagem e conexão
Durante a primeira aula que tivemos contato com o LEGO Mindstorms EV3, nos ocupamos em realizar a sua montagem, bem como a conexão por Bluetooth via SSH com o robô. Conforme a seguinte documentação: Getting Started with ev3dev
08/08/2018 - Primeiros testes com a classe Motor
Foram testadas algumas funções da classe para o uso dos motores, obtendo o sucesso esperado deste teste inicial.
13/08/2018 - Implementação do laboratório virtual
Visando a simplificação para elaborar as estratégias que serão tomadas pelo robô, resolvemos montar um laboratório de simulação em Java, onde realizaremos todos os testes.
  • OBJETIVOS
    • Analisa o tabuleiro e verifica quais caças estão mais próximas [OK]
    • Verifica a posição das caças a cada movimento [OK]
    • Quando encontra a fronteira (linha vermelha) ele não a ultrapassa [OK]
    • Orientar seu eixo na direção correta [NOK]
    • Modo autônomo [NOK]


  • REVISAR
    • Quando acha uma intersecção, o robô não se importa com a orientação de seu eixo.
    • Não possui estratégias de caça.
17/08/2018 - Testes com todos os sensores
Nesta etapa, realizamos testes com as demais classes que serão utilizadas no projeto: sensor de cor, sensor ultrassônico, LEDs e novos usos da classe motor.
  • OBJETIVOS
    • Seguir uma linha preta [OK]
    • Parar a 10 cm de distância de um obstáculo [OK]
    • Mudar cores dos LEDs [OK]
    • Ao sair da linha preta, procurar por outra linha preta [NOK]


  • REVISAR
    • Verificar montagem da estrutura de locomoção. As rodas não estão bem alinhadas.
    • O robô para quando encontra um obstáculo e sinaliza interrupção com um LED amarelo, porém não toma uma "atitude" sobre isso. Fica aguardando o obstáculo ser removido.
    • O robô ainda não possui uma forma eficaz de buscar novas linhas pretas quando sai da mesma.

Levantamento de Requisitos

Requisitos Funcionais e Não funcionais

Requisitos Funcionais

RF01 O sistema deve permitir criação e gerência de cadastro de um robô.

RF02 O sistema de deve manter um histórico das partidas realizadas.

RF03 O sistema deve ser capaz de fazer a autenticação dos robôs cadastrados.

RF04 Os robôs devem ser capazes de operar nos modos manual e autônomo.

RF05 O sistema deve validar e contabilizar as caças já encontradas pelo robô.

RF06 O sistema deve dar início a partida, sortear os locais das caças e informá-los aos robôs.

RF07 O sistema deve prover uma interface de monitoramento para o robô em modo autônomo.

RF08 O sistema deve prover uma interface de controle e monitoramento para o robôs em modo manual.

RF09 O sistema deve permitir que, quando em modo autônomo, o robô execute os movimentos programados a partir do algoritmo implementado.

RF010 O sistema deve permitir pausa e reset da partida.

RF011 O sistema deve permitir que os resultados do jogo sejam vistos pelos espectadores em tempo real.

RF012 O sistema não deve permitir que os robôs se choquem.

RF013 O sistema deve declarar um vencedor assim que todas as caças forem encontradas.

RF014 Os robôs devem ser capazes de informar suas coordenadas a cada movimento.




Requisitos Não Funcionais

RNF01 A interface do sistema de comunicação com o usuário deve ser intuitiva.

RNF02 O tabuleiro será composto por linhas pretas e todos com cor.

RNF03 O tabuleiro terá as dimensões definidas (2m x 2m).

RNF04 O tabuleiro será composto por 100 quadrados de dimensões: 20cm x 20cm.

RNF05 O tabuleiro será limitado por uma borda vermelha.

RNF06 O placar mostrado aos usuários deve ser de fácil identificação.

RNF07 O robô deve ter uma cor para identificação.

RNF08 Os robôs devem ser posicionados nos dois extremos do tabuleiro no início da partida.

Diagrama de Classe

Modelagem
Diagrama de classe

Casos de Uso

Sistema do Robô

Atores

Sensor ultrassônico

  • Identificador: SU
  • Descrição: Responsável por detectar obstáculos que possam interferir na trajetória do robô.


Sensor de cor

  • Identificador: SC
  • Descrição: Responsável por detectar variações de cor no tabuleiro. Sendo usado para seguir as linhas pretas e identificar regiões de caça (intersecções).


Sistema Supervisório

  • Identificador: SS
  • Descrição: Responsável por exibir a interface de controle, e por intermediar a comunicação entre SR e SA.
Descrição

Caso de uso: Tratar obstáculos

Ator Primário: Sensor ultrassônico

Identificador: CSR 01

Sumário: Evitar colisões com outros robôs analisando obstáculos.

Pré condições: Obstáculo estar no campo de visão do sensor ultrassônico

Fluxo Principal:

  • Sensor ultrassônico detecta um obstáculo.
  • Sensor ultrassônico solicita ao SR o travamento dos motores.

Pós-condições: SS envia a ordem para o robô se deslocar até a coordenada anterior a detecção do obstáculo.




Caso de uso: Encontrar intersecção

Ator Primário: Sensor de cor

Identificador: CSR 02

Sumário: Detecta uma outra cor que não seja preto, branco ou vermelho e define como zona de intersecção.

Pré condições: Robô deve estar se movimentando pelo tabuleiro.

Fluxo Principal:

  • Sensor de cor detecta variação de cor.
  • Sensor de cor informa ao SS que encontrou uma zona de intersecção.

Pós-condições: SS analisa e define qual será a próxima ação que o robô deve tomar.




Caso de uso: Informar ID

Ator Primário: SS

Identificador: CSR 03

Sumário: O SS solicita o identificador do robô.

Pré condições: SS estar conectado ao robô.

Fluxo Principal:

  • SS solicita o endereço MAC Bluetooth do robô.
  • e depois???

Pós-condições: O SS envia ao SA o ID do robô.




Caso de uso: Mover

Ator Primário: SS

Identificador: CSR 04

Sumário: Recebe as ordens de deslocamento do SS.

Pré condições: SS estar conectado ao robô.

Fluxo Principal:

  • SS envia os comandos “seguir em frente”, “virar para a direita” e “virar para a esquerda”

Pós-condições: O robô irá executar o comando solicitado.




Caso de uso: Modo de jogo

Ator Primário: SS

Identificador: CSR 05

Sumário: SS informa ao robô se está operando em modo manual ou em modo autônomo.

Pré condições: SS estar conectado ao robô.

Fluxo Principal:

  • SS envia ao robô os comandos “modo manual” e “modo autônomo”

Pós-condições: Robô entrará no modo solicitado e aguardará instruções do SS

Diagrama de casos de uso
Casos de uso do SR
Diagrama de classe
Diagrama de classe
Diagramas de sequência

Inicialização

Diagrama de sequência - Inicialização

Autônomo

Diagrama de sequência - Autônomo
Tabelas de Mapeamento
Tabelas de mapeamento