Grupo1-PJI2-2018-1: mudanças entre as edições
(40 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
= | =Informações - Grupo 1= | ||
{{Collapse top | | '''Maria Fernanda S. Tutui - tutuimf@gmail.com''' | ||
'''Paulo F. Sell - sellpaulof@gmail.com''' | |||
=Atividades realizadas durante o semestre= | |||
{{Collapse top | Atividade 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== | ||
"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: [http://robotsquare.com/wp-content/uploads/2013/10/45544_puppy.pdf/ Puppy] | |||
Linha 11: | Linha 17: | ||
"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 [http://www.ev3dev.org/docs/getting-started/ site do desenvolvedor]. | |||
{{Collapse bottom}} | {{Collapse bottom}} | ||
{{Collapse top | | {{Collapse top | Atividade 2 - Conectividade WiFi e sensores - 01/03}} | ||
==Conectividade WiFi e sensores== | ==Conectividade WiFi e sensores== | ||
Linha 26: | Linha 32: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
{{Collapse top | | {{Collapse top | Atividade 3 - Conhecendo robô - 02/03}} | ||
==Conhecendo robô== | ==Conhecendo robô== | ||
Linha 36: | Linha 42: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
{{Collapse top | | {{Collapse top | Atividade 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== | ||
* 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: | * 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: | ||
- [http://www.prppg.ufpr.br/siga/visitante/trabalhoConclusaoWS?idpessoal=38931&idprograma=40001016034P5&anobase=2016&idtc=1313 Odometria], por proporcionar altas taxas de amostragem, e basear-se no movimento da roda. | - [http://www.prppg.ufpr.br/siga/visitante/trabalhoConclusaoWS?idpessoal=38931&idprograma=40001016034P5&anobase=2016&idtc=1313 Odometria], por proporcionar altas taxas de amostragem, e basear-se no movimento da roda. | ||
Linha 47: | Linha 52: | ||
- Navegação Landmark, pela possibilidade de usar marcos artificiais e termos disponível um sensor de cores. | - Navegação Landmark, pela possibilidade de usar marcos artificiais e termos disponível um sensor de cores. | ||
* | *Regras | ||
* | ** Como definido pelos professores, a partir da orientação para "tentar fazer regras mais simples possíveis" foi definido pelo grupo que: | ||
Objetivo: encontrar no tabuleiro as cores sorteadas na ordem correta e em menos tempo possível. | Objetivo: encontrar no tabuleiro as cores sorteadas na ordem correta e em menos tempo possível. | ||
Linha 60: | Linha 65: | ||
(inicialmente) | (inicialmente) | ||
Estando o robô na posição inicial é dado início ao jogo. | *Estando o robô na posição inicial é dado início ao jogo. | ||
O sistema escolhe aleatoriamente as cores a serem procuradas e as envia para o robô. | **O sistema escolhe aleatoriamente as cores a serem procuradas e as envia para o robô. | ||
Os robôs se movimentam sobre o tabuleiro a fim de encontrar as cores sorteadas. | **Os robôs se movimentam sobre o tabuleiro a fim de encontrar as cores sorteadas. | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
{{Collapse top | | {{Collapse top | Atividade 5 - Trabalhando com o robô - 05/03}} | ||
==Trabalhando com o robô== | ==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 [https://github.com/paulosell/puppy_ev3 github]. | |||
{{Collapse bottom}} | {{Collapse bottom}} | ||
{{Collapse top | | {{Collapse top | Atividade 6 - Sala de aula - 06/03}} | ||
==Sala de aula== | ==Sala de aula== | ||
''' | '''Perguntas''' | ||
'''- Qual o tamanho do tablado? Quantos quadrados?''' | '''- Qual o tamanho do tablado? Quantos quadrados?''' | ||
Linha 137: | Linha 142: | ||
'''Demais questões | |||
'''Demais questões''' | |||
- Alcance do ultrassônico: 1 a 250cm | - Alcance do ultrassônico: 1 a 250cm | ||
Linha 155: | Linha 161: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
{{Collapse top | | {{Collapse top | Atividade 7 - Sumário executivo - 07/03 a 12/03}} | ||
==Sumário executivo== | ==Sumário executivo== | ||
Linha 163: | Linha 169: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
{{Collapse top | | {{Collapse top | Atividade 8 - Sala de aula e Novo documento no ShareLaTeX- 13/03}} | ||
==Sala de aula== | ==Sala de aula== | ||
Linha 169: | Linha 175: | ||
* Apresentação do sumário executivo | * Apresentação do sumário executivo | ||
'''Para a próxima aula 20/03''' | |||
'''Levantamento de requisitos''' | |||
Funcionais | |||
Não funcionais | |||
Restrições | |||
'''Casos de uso'''' | |||
Atores (diagramas) | |||
Lista do custo de uso detalhados | |||
Regras de negócio | |||
{{Collapse bottom}} | |||
{{Collapse top | Atividade 9 - Levantamento de requisitos - 13/03 a 20/03}} | |||
==Levantamento de requisitos versão 1== | |||
O documento com a análise de requisitos e casos de uso encontra-se no ShareLaTeX. | |||
{{Collapse bottom}} | |||
{{Collapse top | Atividade 10 - Discussão sobre levantamento de requisitos - 20/03}} | |||
==Sala de aula== | |||
Durante este encontro lemos os levantamentos de ambas as equipes e discutimos. Todas as observações feitas pelo professor foram anotadas e serão aplicadas a nova versão do levantamento. | |||
{{Collapse bottom}} | |||
{{Collapse top | Atividade 11 - Levantamento de requisitos - 20/03 a 27/03}} | |||
==Levantamento de requisitos versão 2== | |||
A partir das considerações feitas em sala de aula o levantamento foi refeito. | |||
O documento com nova análise de requisitos e casos de uso encontra-se no ShareLaTeX. | |||
{{Collapse bottom}} | |||
{{Collapse top | Atividade 12 - Discussão sobre levantamento de requisitos - 27/03}} | |||
==Sala de Aula == | |||
Durante este encontro lemos os levantamentos de ambas as equipes e discutimos. Todas as observações feitas pelo professor foram anotadas e serão aplicadas a nova versão do levantamento. | |||
Proposta para distribuição de cores no tabuleiro. | |||
{{Collapse bottom}} | |||
{{Collapse top | Atividade 13 - Discussão sobre levantamento de requisitos - 03/04}} | |||
==Sala de Aula == | |||
Durante este encontro lemos os levantamentos de ambas as equipes e discutimos. Todas as observações feitas pelo professor foram anotadas e serão aplicadas a nova versão do levantamento. | |||
De acordo com o email enviado pelo professor Eraldo devemos trazer para a prox aula: | |||
*um texto bem definido do caso de uso jogar manual do SS e SA (penso que já temos); | |||
*diagramas de sequência destes casos; | |||
*diagrama de classe se for possível; | |||
*uma cronograma com as iterações previstas; | |||
{{Collapse bottom}} | |||
{{Collapse top | Atividade 14 - Modo manual - 10/04}} | |||
==Sala de Aula == | |||
Durante esta aula foram discutidos os prazos para entrega do mínimo requerido para o caso de uso "Modo manual" do robô. | |||
Todas as questões discutidas, bem como suas datas, estão definidas no Trello, como pedido pelos professores. | |||
{{Collapse bottom}} | |||
{{Collapse top | Atividade 15 - Diagrama de sequência - 17/04}} | |||
==Sala de Aula == | |||
:[[Arquivo:Button image.png | 800px]] | |||
{{Collapse bottom}} | |||
{{Collapse top | Atividade 16 - Documentação - Jogar manual - 24/04}} | |||
==Jogar manual == | |||
* Diagrama de classe Sistema Supervisório | |||
:[[Arquivo:Sistema robot.png | 800px]] | |||
* Diagrama de classe Sistema Robô | |||
:[[Arquivo:Supervisorio22.png | 800px]] | |||
* Diagrama de sequẽncia - jogar manual | |||
:[[Arquivo:Diagrama_sequencia_manual.png | 800px]] | |||
== Recursos REST == | |||
{| border="1" cellpadding="5" cellspacing="0" | |||
!Path | |||
!Método | |||
!Descrição | |||
|- | |||
||/frente || GET || Movimenta o robô para frente | |||
|- | |||
||/re || GET || Movimenta o robô para trás | |||
|- | |||
||/direita || GET || Movimenta o robô para direita | |||
|- | |||
||/esquerda || GET || Movimenta o robô para esquerda | |||
|- | |||
||/ || GET || Retorna uma string de "bem-vindo" | |||
|- | |||
|} | |||
== Instalação do FLASK no ev3dev == | |||
Para instalar o ''framework'' Flask no ev3dev utilizando a versão 3 do Python foram necessários os seguintes passos: | |||
* | *sudo apt-get update | ||
*sudo apt-get install python3-pip | |||
*sudo pip3 install flask | |||
- | Faz-se necessário ter acesso à Internet para a instalação. Qualquer outra informação pode ser obtida no site oficial do Flask[http://flask.pocoo.org/] | ||
- | == Descrição da interface de comunicação Sistema Supervisório - Sistema Robô == | ||
No Sistema Robô desenvolvemos um ''web service'' na linguagem de programação Python utilizando o ''framework'' Flask. O ''web service'' é baseado na arquitetura REST. Aproveitando os métodos do protocolo HTTP, podemos consumir os recursos do ''web service'', passando como parâmetros o caminho (''path'') do recurso e seu método (GET, POST, PUT, etc...). Uma vez que o ''web service'' esteja em execução é possível movimentar o robô por qualquer navegador de internet. Desenvolvemos também uma interface de usuário para que seja possível controlar o robô de uma maneira mais usual. Aproveitando das facilidades que a IDE ''Netbeans'' fornece, bastou criar uma classe em Java que, aproveitando da API JAX-RS, implementasse métodos que consumissem os recursos do ''web service''. Uma outra classe em Java foi desenvolvida para implementar a interface do usuário e esta mesma classe invoca métodos da classe que consome os recursos do ''web service''. | |||
Edição atual tal como às 10h55min de 8 de maio de 2018
1 Informações - Grupo 1
Maria Fernanda S. Tutui - tutuimf@gmail.com
Paulo F. Sell - sellpaulof@gmail.com
2 Atividades realizadas durante o semestre
Atividade 1 - Decisão de robô, montagem e instalação do Ev3Dev - 27/02 |
---|
2.1 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
![]()
|
Atividade 2 - Conectividade WiFi e sensores - 01/03 |
---|
2.2 Conectividade WiFi e sensores
- 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).
|
Atividade 3 - Conhecendo robô - 02/03 |
---|
2.3 Conhecendo robô |
Atividade 4 - Escolha do modelo do sistema de localização e definição das regras - 03/03 |
---|
2.4 Escolha do modelo do sistema de localização e definição das regras
- 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.
Objetivo: encontrar no tabuleiro as cores sorteadas na ordem correta e em menos tempo possível.
(inicialmente)
|
Atividade 5 - Trabalhando com o robô - 05/03 |
---|
2.5 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. |
Atividade 6 - Sala de aula - 06/03 |
---|
2.6 Sala de aulaPerguntas
R: 2x2 metros. Provavelmente 20x20 cm. O tablado deve ter ter uma borda extra de aproximadamente 5 cm.
R: 100 quadrados.
R: Randomicamente.
R: Cerca de 6 caças, serão comuns.
R: A partir do monitoramento feio pela câmera infravermelho que captará os dados e transmitirá através de um Arduino para a auditoria. Quem ganhará será o robô que em menos tempo pegar o maior numero de caças.
R: Cada grupo terá que mostrar para o publico as informações correspondentes ao seu robô.
R: Fica a critério de cada grupo.
R: Fica a critério de cada grupo.
R: 7 cores.
R: Sim. O tabuleiro será impresso já com as cores.
R: Um servidor será responsável.
Demais questões - Alcance do ultrassônico: 1 a 250cm
|
Atividade 7 - Sumário executivo - 07/03 a 12/03 |
---|
2.7 Sumário executivoDurante o período indicado produzimos o sumário executivo. Ele encontra-se no ShareLaTeX. |
Atividade 8 - Sala de aula e Novo documento no ShareLaTeX- 13/03 |
---|
2.8 Sala de aula
Para a próxima aula 20/03
Funcionais Não funcionais Restrições Casos de uso' Atores (diagramas) Lista do custo de uso detalhados Regras de negócio |
Atividade 9 - Levantamento de requisitos - 13/03 a 20/03 |
---|
2.9 Levantamento de requisitos versão 1O documento com a análise de requisitos e casos de uso encontra-se no ShareLaTeX. |
Atividade 10 - Discussão sobre levantamento de requisitos - 20/03 |
---|
2.10 Sala de aulaDurante este encontro lemos os levantamentos de ambas as equipes e discutimos. Todas as observações feitas pelo professor foram anotadas e serão aplicadas a nova versão do levantamento. |
Atividade 11 - Levantamento de requisitos - 20/03 a 27/03 |
---|
2.11 Levantamento de requisitos versão 2A partir das considerações feitas em sala de aula o levantamento foi refeito. O documento com nova análise de requisitos e casos de uso encontra-se no ShareLaTeX. |
Atividade 12 - Discussão sobre levantamento de requisitos - 27/03 |
---|
2.12 Sala de AulaDurante este encontro lemos os levantamentos de ambas as equipes e discutimos. Todas as observações feitas pelo professor foram anotadas e serão aplicadas a nova versão do levantamento. Proposta para distribuição de cores no tabuleiro. |
Atividade 13 - Discussão sobre levantamento de requisitos - 03/04 |
---|
2.13 Sala de AulaDurante este encontro lemos os levantamentos de ambas as equipes e discutimos. Todas as observações feitas pelo professor foram anotadas e serão aplicadas a nova versão do levantamento. De acordo com o email enviado pelo professor Eraldo devemos trazer para a prox aula:
|
Atividade 14 - Modo manual - 10/04 |
---|
2.14 Sala de AulaDurante esta aula foram discutidos os prazos para entrega do mínimo requerido para o caso de uso "Modo manual" do robô. Todas as questões discutidas, bem como suas datas, estão definidas no Trello, como pedido pelos professores. |
Atividade 16 - Documentação - Jogar manual - 24/04 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2.16 Jogar manual
2.17 Recursos REST
2.18 Instalação do FLASK no ev3devPara instalar o framework Flask no ev3dev utilizando a versão 3 do Python foram necessários os seguintes passos:
Faz-se necessário ter acesso à Internet para a instalação. Qualquer outra informação pode ser obtida no site oficial do Flask[1] 2.19 Descrição da interface de comunicação Sistema Supervisório - Sistema RobôNo Sistema Robô desenvolvemos um web service na linguagem de programação Python utilizando o framework Flask. O web service é baseado na arquitetura REST. Aproveitando os métodos do protocolo HTTP, podemos consumir os recursos do web service, passando como parâmetros o caminho (path) do recurso e seu método (GET, POST, PUT, etc...). Uma vez que o web service esteja em execução é possível movimentar o robô por qualquer navegador de internet. Desenvolvemos também uma interface de usuário para que seja possível controlar o robô de uma maneira mais usual. Aproveitando das facilidades que a IDE Netbeans fornece, bastou criar uma classe em Java que, aproveitando da API JAX-RS, implementasse métodos que consumissem os recursos do web service. Uma outra classe em Java foi desenvolvida para implementar a interface do usuário e esta mesma classe invoca métodos da classe que consome os recursos do web service. |