Grupo2-PJI2-2018-2: mudanças entre as edições
Sem resumo de edição |
|||
Linha 349: | Linha 349: | ||
[[Arquivo:tab3_mapeamento.jpg|1000px|thumb|center|<div style="TEXT-align: center;">Tabelas de mapeamento</div>]] | [[Arquivo:tab3_mapeamento.jpg|1000px|thumb|center|<div style="TEXT-align: center;">Tabelas de mapeamento</div>]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
</font> | |||
<!-- | <!-- | ||
==Sistema Supervisório== | |||
{{collapse top | Atores}} | <font size="3"> | ||
{{collapse top | Atores dos casos de uso }} | |||
'''Sistema do Robô''' | '''Sistema do Robô''' | ||
*'''Identificador:''' SR | *'''Identificador:''' SR | ||
*'''Descrição:''' Responsável por executar os comandos do SS, | *'''Descrição:''' Responsável por executar os comandos do SS, e por possuir a lógica de movimentos para encontrar as caças no modo autônomo, das quais devem ser informadas ao SS. | ||
Linha 361: | Linha 363: | ||
*'''Identificador:''' SA | *'''Identificador:''' SA | ||
*'''Descrição:''' Responsável pelo controle das partidas, histórico, cadastro de robôs e captura das caças. | *'''Descrição:''' Responsável pelo controle das partidas, histórico, cadastro de robôs e captura das caças. | ||
{{collapse bottom}} | |||
{{collapse top | Descrição dos casos de uso}} | |||
'''Caso de uso:''' Modo de jogo | |||
'''Ator Primário:''' SA | |||
'''Identificador:''' CSS 01 | |||
'''Sumário:''' SA informa ao SS se o jogo operará em modo manual ou autônomo. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*SA envia para o SS o modo escolhido. | |||
'''Pós-condições:''' | |||
*SS enviará o modo escolhido para o SR e ele executará o algoritmo no modo recebido. | |||
---- | |||
''' | |||
*'''Identificador:''' | '''Caso de uso:''' Verifica robôs disponíveis | ||
*''' | |||
'''Ator Primário:''' SA | |||
'''Identificador:''' CSS 02 | |||
'''Sumário:''' Antes da partida começar, o SA verifica se todos os robôs estão disponíveis. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*O SA pergunta para o SS se os robôs estão aptos para iniciar a partida. | |||
'''Pós-condições:''' | |||
*SS enviará para o SA quais robôs estão disponíveis. | |||
---- | |||
'''Caso de uso:''' Disponibilidade | |||
'''Ator Primário:''' SR | |||
'''Identificador:''' CSS 03 | |||
'''Sumário:''' SR informa ao SS se está apto a começar a partida. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*O SR verifica se tem todos os requisitos para iniciar a partida. | |||
*Se ele possuir todos os requisitos, manda para o SS se está ou não disponível. | |||
'''Pós-condições:''' | |||
*SS enviará para o SA que o robô está disponível | |||
---- | |||
'''Caso de uso:''' Configuração da partida | |||
'''Ator Primário:''' SA | |||
'''Identificador:''' CSS 04 | |||
'''Sumário:''' SA enviará para o SS, que por sua vez, enviará aos robôs que estão disponíveis, as configurações necessárias para o início da partida. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*SS envia para o SA os endereços MAC de cada robô. | |||
*O SA envia para o SS a cor do robô, escolhida a partir do endereço MAC. | |||
*O SA sorteia e envia para o SS em qual coordenada cada robô vai estar (0, 0) ou (20, 20). | |||
*O SA envia a lista inicial com as coordenadas sorteadas das caças. | |||
'''Pós-condições:''' | |||
*SR receberá as configurações e ficará aguardando o comando para iniciar a partida. | |||
---- | |||
'''Caso de uso:''' Estado da partida | |||
'''Ator Primário:''' SA | |||
'''Identificador:''' CSS 05 | |||
'''Sumário:''' O SA enviará para o SS comandos durante a partida. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*O SA envia comandos para o SS como: “pausa”, “continua” e “fim de jogo”. | |||
'''Pós-condições:''' | |||
*Quando o SR receber algum comando, o executará, alterando assim, o estado da partida. | |||
---- | |||
'''Caso de uso:''' Atualiza posições | |||
'''Ator Primário:''' SR | |||
'''Identificador:''' CSS 06 | |||
'''Sumário:''' O SR estará sempre informando suas coordenadas ao SS. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*SR informa ao SS sua posição atual. | |||
*SR informa ao SS sua próxima posição. | |||
*O SA informa ao SS, que por sua vez, informa ao SR a próxima posição do robô adversário. | |||
'''Pós-condições:''' | |||
*SR executa estratégia de acordo com a posição do adversário. | |||
*SA envia a próxima posição do robô para o adversário, quando solicitado. | |||
---- | |||
'''Caso de uso:''' Atualiza posição do adversário | |||
'''Ator Primário:''' SA | |||
'''Identificador:''' CSS 07 | |||
'''Sumário:''' O SA envia para o SS a próxima posição do adversário. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*O SA recebe a posição atual e a próxima posição do robô. | |||
*O SA envia como resposta ao SS, a próxima posição do adversário. | |||
'''Pós-condições:''' | |||
*O SA atualiza a posição do SR, para quando solicitado, enviá-la ao adversário. | |||
---- | |||
'''Caso de uso:''' Validar caças | |||
'''Ator Primário:''' SR | |||
'''Identificador:''' CSS 08 | |||
'''Sumário:''' O SR envia ao SS a coordenada em que está e pergunta se há uma caça. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*O SA recebe o pedido de validação da caça. | |||
*O SA envia ao SS se aquela caça foi ou não validada. | |||
'''Pós-condições:''' | |||
*O SR recebe a lista de caças atualizada, e atualiza sua estratégia. | |||
---- | |||
'''Caso de uso:''' Caças ativas | |||
'''Ator Primário:''' SA | |||
'''Identificador:''' CSS 09 | |||
'''Sumário:''' O SA atualiza sua lista de caças constantemente. | |||
'''Pré condições:''' SA estar conectado ao SS | |||
'''Fluxo Principal:''' | |||
*O SA recebe do SS a solicitação para validar uma caça. | |||
*O SA envia para o SS que a caça foi validada. | |||
*O SA atualiza a sua lista de caças retirando a caça validada. | |||
'''Pós-condições:''' | |||
*SR recebe a lista de caças atualizada, e atualiza sua estratégia. | |||
{{collapse bottom}} | {{collapse bottom}} | ||
{{collapse top | Diagrama}} | {{collapse top | Diagrama de casos de uso}} | ||
[[Arquivo: | [[Arquivo:uc_ss1.jpg|1000px|thumb|center|<div style="TEXT-align: center;">Casos de uso do SS</div>]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
</font> | |||
--> | --> | ||
Edição das 00h23min de 1 de outubro de 2018
1 Membros do grupo
- Ameliza Souza Corrêa
- Marcone Augusto P. Louzada
- Yan Lucas Martins
2 Repositório git
https://github.com/yanmartins/ProjetoIntegradorII.git
3 Cronograma

4 Diário do projeto
06/08/2018 - Montagem e conexão |
---|
|
08/08/2018 - Primeiros testes com a classe Motor |
---|
|
13/08/2018 - Implementação do laboratório virtual |
---|
|
17/08/2018 - Testes com todos os sensores |
---|
|
30/08/2018 - Teste com algoritmos PID seguidor de linha |
---|
|
05/09/2018 - Ajustes de montagem e implementação da classe Movimento |
---|
|
10/09/2018 - Implementação da classe Movimento (modo manual) - GITHUB |
---|
|
11/09/2018 - Implementação das classes Movimento e Posicionamento - GITHUB |
---|
|
12/09/2018 - Implementação das classes Manual, Comunicação e Inicialização - GITHUB |
---|
|
21/09/2018 - Implementação das classes Posicionamento e Autônomo - GITHUB |
---|
|
5 Levantamento de Requisitos
Requisitos Funcionais e Não funcionais |
---|
5.1 Requisitos FuncionaisRF01 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.
5.2 Requisitos Não FuncionaisRNF01 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. |
6 Sistema do Robô
- Os casos de uso foram modelados de acordo com essa página, que é baseada no livro Princípios de Análise e projetos de sistemas com UML do Eduardo Bezerra.
Atores dos casos de uso |
---|
Sensor ultrassônico
|
Descrição dos casos de uso |
---|
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:
Pós-condições: SS envia a ordem para o robô se deslocar até a coordenada anterior a detecção do obstáculo.
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:
Pós-condições: SS analisa e define qual será a próxima ação que o robô deve tomar.
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:
Pós-condições: O SS envia ao SA o ID do robô.
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:
Pós-condições: O robô irá executar o comando solicitado.
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:
Pós-condições: Robô entrará no modo solicitado e aguardará instruções do SS |
Diagramas de sequência |
---|
Inicialização
![]() Diagrama de sequência - Inicialização
Autônomo
![]() Diagrama de sequência - Autônomo |