Mudanças entre as edições de "Grupo1-PJI2-2018-1"
(41 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
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. |