Grupo1-PJI2-2018-2
Responsáveis pelo projeto
- Douglas Amorim dos Santos
- Allex Magno
- Filipe Kuhnen
Diário de bordo |
---|
17/09Testes para execução da Classe autônomo e manual realizados. Código está disponível em repositório git. Aula 4 - 20/08
|
Detalhes iniciais
Conexão ao EV3
Efetuamos a conexão ao ev3 por meio do bluetooth, seguindo as instruções descritas em https://www.ev3dev.org/docs/tutorials/using-bluetooth-tethering/. Após conectarmos via bluetooth acessamos o ev3 via ssh utilizando o putty.
CRONOGRAMA DE ATIVIDADES FUTURAS
Desenvolvimento
A implementação estará disponível no repositório github do projeto
Sistema Supervisor - SS
Sistema Supervisor é responsável pelo controle e monitoração do robô, que pode ser manual ou autônomo.
Atores do Sistema Supervisor |
---|
|
Casos de uso |
---|
Caso de uso: Autônomo <br\>
Ator Primário: SS <br\>
Pré condições: Comunicação ativa entre SS e SR e comunicação ativa entre SS e SA.<br\>
Fluxo Principal: <br\>
[1] SS recebe do SA o modo de jogo
|
Sistema Arbitro - SA
Sistema Arbitro é responsável pelo cadastros dos robôs, define lista de caças e modo de jogo.
Atores do Sistema Arbitro |
---|
|
Casos de uso |
---|
Caso de uso: Modo de jogo <br\>
Ator Primário: SA <br\>
Pré condições: Comunicação ativa com os dois SS's.<br\>
Fluxo Principal: <br\>
[1] SA define se jogo é manual ou autônomo. Caso de uso: Cadastro de robô <br\>
Ator Primário: SA <br\>
Pré condições: Comunicação ativa com os dois SS's.<br\>
Fluxo Principal: <br\>
[1] SA solicita os Id´s dos robôs. Caso de uso: Validar caça <br\>
Ator Primário: SA <br\>
Pré condições: Comunicação ativa com os dois SS's.<br\>
Fluxo Principal: <br\>
[1] SA aguarda do SS as coordenadas da caça. |
Mensagens trafegadas
Lista de mensagens |
---|
SS solicita para a Classe Controle o MAC do robô; Classe Controle encaminha ao SS o MAC do robô; Classe Controle encaminha ao SS o próximo movimento a ser feito pelo robô, que foi calculado pela classe Autônomo; Classe Controle encaminha ao SS a posição atual do robô, que fora lhe informado pela classe Autônomo; SS envia para a Classe Controle a lista atual de caças, o controle por sua vez repassa a informação para Autônomo; SS envia para a Classe Controle a coordenada atual do Adversário, o controle por sua vez repassa a informação para Autônomo; Classe Controle encaminha ao SS uma solicitação de validação de caça, que fora lhe informado pela classe Autônomo; SS envia para a Classe Controle a confirmação de que a caça foi validada, o controle por sua vez repassa a informação para Autônomo; SS envia para a Classe Controle um aviso de Pausa/Retomada da Partida; SS envia para a Classe Controle um aviso de final de Partida;
SS solicita para a Classe Controle o MAC do robô; Classe Controle encaminha ao SS o MAC do robô; SS envia para a classe Controle o próximo movimento a ser feito, o controle por sua vez repassa a informação para Manual; SS envia para a Classe Controle um aviso de Pausa/Retomada da Partida; SS envia para a Classe Controle um aviso de final de Partida; |
Diagrama de Sequencia
Diagramas de Classe
Diagrama de classes | ||
---|---|---|
|
Requisitos
Requisitos funcionais e não Funcionais |
---|
Requisitos funcionaisRF01 O sistema deve permitir criação e gerência de cadastro de um robô. Cadastrar no S.A dados do robô via interface de controle: Nome, Usuário, Cor para identificação. RF02 O sistema de deve manter um histórico das partidas realizadas. Quando a partida encerrar, o S.A. irá armazenar nome dos participantes e pontuação. Irá armazenar as 10 últimas partidas. RF03 O sistema deve ser capaz de fazer a autenticação dos robôs cadastrados. Quando a partida for "cadastrada" o S.A. irá autenticar os dados antes de iniciar a partida. Também irá registrar a posição inicial e zerar o score. RF04 Os robôs devem ser capazes de operar nos modos manual e autônomo. O SA vai definir se a partida será modo manual ou mono autônomo. O SS irá configurar o modo no SR. O SR terá uma interface comandos de deslocamento. RF05 O sistema deve validar e contabilizar as caças já encontradas pelo robô. O S.R enviará a localização ao S.A que irá validar a “captura da caça”/chegada primeiro ao ponto. Quando validada a captura, irá incrementar a pontuação. RF06 O sistema deve dar início a partida, sortear os locais das caças e informá-los aos robôs. Quando os robôs estiverem posicionados (ficaram em vértices opostos), o S.A. irá sortear a posição das caças e enviar aos robôs. Após isso se dará o início da partida. RF07 O sistema deve prover uma interface de monitoramento para o robô em modo autônomo. O S.A irá enviar a pontuação das caças validadas para o S.R. O S.R. irá também descrever em sua tela os movimentos do robô e as coordenadas. RF08 O sistema deve prover uma interface de controle e monitoramento para o robôs em modo manual. Será necessário criar para o S.R. uma interface comandos de deslocamento e o monitoramento pode aproveitar a estrutura descrita no RF07. RF09 O sistema deve permitir que, quando em modo autônomo, o robô execute os movimentos programados a partir do algoritmo implementado. Será implementado um algoritmo que irá fazer uso dos sensores de luz e ultrassom para o S.R que será executado quando o modo da partida for autônomo. RF010 O sistema deve permitir pausa e reset da partida. Os jogadores ao requisitar pausa, enviará um comando para S.A, o qual enviará aos S.R. uma requisição de pausa.Com isso todos movimentos que estão organizados na fila serão pausados aguardando uma mensagem para retorno. Quando o S.A enviar um comando de reset ele mandará o robô para posição inicial e irá zerar o score. Após nova autenticação, dará o comando para iniciar novamente. RF011 O sistema deve permitir que os resultados do jogo sejam vistos pelos espectadores em tempo real. Contemplado no RF07 e RF08, através do monitoramento. RF012 O sistema não deve permitir que os robôs se choquem. O S.R. usará o sensor ultrasônico do robô para detectar a presença de outro robô e obstáculos. Ao detectar impedimento ou possibilidade de choque, o S.R. para o deslocamento em curso e manda retornar para a posição imediatamente anterior. RF013 O sistema deve declarar um vencedor assim que todas as caças forem encontradas. Quando todas as caças forem validadas/capturadas, o S.A irá comparar a pontuação e definir o vencedor. Após isso irá registrar a partida na memória (nomes e pontuações dos jogadores) Requisitos não funcionaisRNF01 A interface do sistema de comunicação com o usuário deve ser intuitiva. Será via interface web. RNF02 O tabuleiro será composto por linhas pretas e todos com cor. O tabuleiro será com linhas pretas e os pontos de intersecção será de cor verde. RNF03 O tabuleiro terá as dimensões definidas (2m x 2m). OK RNF04 O tabuleiro será composto por 100 quadrados de dimensões: 20cm x 20cm. OK RNF05 O tabuleiro será limitado por uma borda vermelha. OK, linha vermelha não pode ser tratada como obstáculo, mas robô não pode transpo-la. RNF06 O placar mostrado aos usuários deve ser de fácil identificação. Será implementado na interface web. RNF07 O robô deve ter uma cor para identificação. Contemplado no RF01. |
Testes Funcionais
Teste dos Motores |
---|
Em primeiro momento fizemos um teste básico da movimentação do robô, testamos primeiro a movimentação para frente, e em seguida fizemos um esboço de como o robô faria sua movimentação para virar a esquerda ou direita.
|
Teste dos Sensores |
---|
|
Sistema Robo - SR
Atores do Sitema robo |
---|
|
Casos de uso | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Caso de uso: Identidade <br\>
Ator Primário: SS <br\>
Identificador: UCID <br\>
Sumário: O SS fornece ao robô uma cor de identificação<br\>
Pré condições: Iniciar o Sistema robô <br\>
Fluxo Principal: <br\>
[1] SS informa ao SR qual sua cor
Caso de uso: Monitoramento <br\>
Ator Primário: SS <br\>
Identificador: UCMNT <br\>
Sumário: Obter a localização do robô<br\>
Pré condições: Robô estar ativo no tabuleiro<br\>
Fluxo Principal: <br\>
[1] SS solicita ao SR que deseja informações de localização Caso de uso: Controle Autônomo<br\>
Ator Primário: SS<br\>
Identificador: UCATN <br\>
Sumário: Informar ao SR em que modo de operação ele vai atuar<br\>
Pré condições: Robô estar conectado e estar no ponto inicial do tabuleiro<br\>
Fluxo Principal: <br\>
[1] SS informa ao SR modo autônomo
Caso de uso: Validar Caça <br\>
Ator Primário: SR<br\>
Identificador: UCEC<br\>
Sumário: O SR, ao chegar em algum ponto, informa que encontrou a caça<br\>
Pré condições: Robô estar no tabuleiro<br\>
Fluxo Principal: <br\>
[1] SR indica que encontrou a caça
Caso de uso: Definir Estratégia <br\>
Ator Primário: SR <br\>
Identificador: UCDE<br\>
Sumário: Definir sequências de movimentos <br\>
Pré condições: SR receber lista de caças atualizadas <br\>
Fluxo Principal: <br\>
[1] SR verifica as coordenadas do robô adversário
Caso de uso: Parada de emergência <br\>
Ator Primário: SR <br\>
Identificador: UCPE<br\>
Sumário: impedir o robô de continuar se movimentando <br\>
Pré condições:SR precisa estar ativo no tabuleiro <br\>
Fluxo Principal: <br\>
[1]Sendor ultrassom identifica a presença de algum objeto
|