Mudanças entre as edições de "Grupo1-PJI2-2018-1"
(29 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | = | + | =Informações - Grupo 1= |
− | + | '''Maria Fernanda S. Tutui - tutuimf@gmail.com''' | |
− | ==Decisão de robô== | + | '''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== | ||
"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] | "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] | ||
− | + | ||
[[imagem:PuppyEv3.jpeg|250px|center]] | [[imagem:PuppyEv3.jpeg|250px|center]] | ||
− | + | ||
"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]. | "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 25: | Linha 32: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
− | {{Collapse top | | + | {{Collapse top | Atividade 3 - Conhecendo robô - 02/03}} |
==Conhecendo robô== | ==Conhecendo robô== | ||
Linha 35: | 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== | + | ==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 45: | 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: | + | ** 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 64: | Linha 71: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
− | {{Collapse top | | + | {{Collapse top | Atividade 5 - Trabalhando com o robô - 05/03}} |
==Trabalhando com o robô== | ==Trabalhando com o robô== | ||
Linha 73: | Linha 80: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
− | {{Collapse top | | + | {{Collapse top | Atividade 6 - Sala de aula - 06/03}} |
==Sala de aula== | ==Sala de aula== | ||
Linha 134: | Linha 141: | ||
R: Um servidor será responsável. | R: Um servidor será responsável. | ||
− | + | ||
+ | |||
+ | '''Demais questões''' | ||
- Alcance do ultrassônico: 1 a 250cm | - Alcance do ultrassônico: 1 a 250cm | ||
Linha 152: | 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 160: | 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 166: | Linha 175: | ||
* Apresentação do sumário executivo | * Apresentação do sumário executivo | ||
− | + | '''Para a próxima aula 20/03''' | |
+ | |||
'''Levantamento de requisitos''' | '''Levantamento de requisitos''' | ||
Linha 184: | Linha 194: | ||
Regras de negócio | 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/] | ||
− | O | + | == 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
Informações - Grupo 1
Maria Fernanda S. Tutui - tutuimf@gmail.com
Paulo F. Sell - sellpaulof@gmail.com
Atividades realizadas durante o semestre
Atividade 1 - Decisão de robô, montagem e instalação do Ev3Dev - 27/02 |
---|
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 |
---|
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 |
---|
Conhecendo robô |
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
- 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 |
---|
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 |
---|
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 |
---|
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 |
---|
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 |
---|
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 |
---|
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 |
---|
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 |
---|
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 |
---|
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 |
---|
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 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Jogar manual
Recursos REST
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] 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. |