Projeto

Geral

Perfil

Arquitetura de Software » Histórico » Versão 56

Gabriel Borges da Conceição, 12/08/2021 22:26 h

1 14 Luciano Barreira
# Arquitetura de Software
2 1 Luciano Barreira
3 2 Luciano Barreira
O Software é basicamente subdividido em cinco estágios, conforme fluxo de informação: Leitura, Pré-Processamento, Tomada de Decisão (Inteligência Artificial), Controle e Transmissão.
4
Os módulos que compõem estes estágios estão descritos a seguir:
5 13 Luciano Barreira
1. Leitura : SSL-Vision e Ref Box
6
2. Pré-Processamento: Game State e Judge State
7
3. Tomada de Decisão: Role Set e Tactics
8
4. Controle : Obstacle Avoidance e Path Planning
9
5. Transmissão : Transmission
10 1 Luciano Barreira
11 13 Luciano Barreira
---
12 1 Luciano Barreira
13 13 Luciano Barreira
## Leitura
14
15 1 Luciano Barreira
Os módulos SSL-Vision e Ref Box são responsáveis por receber os pacotes, respectivamente, do SSLVision e do RefBox, softwares padronizados da liga. As informações coletadas são então enviadas para os módulos Game State e Judge State, responsáveis por processar estas informações.
16 3 Luciano Barreira
17 17 Onias Castelo Branco
Há a opção também de se rodar um log, seja de partida ou um treinamento. Mais informações de como a leitura do log funciona [aqui](http://redmine.roboime.com.br/projects/inteligencia/wiki/Log).
18 16 Onias Castelo Branco
19 13 Luciano Barreira
---
20 1 Luciano Barreira
21 13 Luciano Barreira
## Pré-Processamento
22
23
* Game State : Neste módulo é estimado um estado de jogo confiável, ou seja, é neste módulo em que ocorrem filtragens, com objetivo de mitigar erros de observação das câmeras. O principal algoritmo utilizado para filtragem é um [Filtro de Kalman](http://robotsforroboticists.com/kalman-filtering/) . É possível escolher entre métodos de filtragem na interface gráfica (GUI) principal e observar as diferenças em tempo real entre os métodos.
24 4 Luciano Barreira
* Ref Box : Com base em comandos atuais e anteriores, é possível obter uma relação entre os comandos enviados pelo Juiz e estados da partida, como Meio de Campo, Tiro Direto e Pênalti. Neste módulo, são tratados os modos do Juiz a fim de gerar informações mais "amigáveis" para o desenvolvimento de algoritmos de tomada de decisão.
25 1 Luciano Barreira
26 23 Gabriel Borges da Conceição
---
27 22 Gabriel Borges da Conceição
28 56 Gabriel Borges da Conceição
## Protobuf - Codificação e decodificação de pacotes
29
30
Módulo destinado a explicar como realizar a codificação/decodificação de pacotes protobuf enviados pela rede para ler dados da visão e enviar comandos aos simuladores.
31
32
### [[Protobuf]]
33
34
---
35
36 22 Gabriel Borges da Conceição
## Orientação a objeto em labVIEW
37
38 27 Gabriel Borges da Conceição
Antes de mais nada, é importante que se leia: https://zone.ni.com/reference/en-XX/help/371361P-01/lvconcepts/creating_classes/
39
40 35 Gabriel Borges da Conceição
Para efeito de exemplo, criaremos uma classe chamada RoboUni (robô que só anda sobre o eixo x) e uma classe herdada RoboBid (robô que anda sobre o plano xy).
41 28 Gabriel Borges da Conceição
42 47 Gabriel Borges da Conceição
### [[Instalação do UML no LabVIEW]]
43 46 Gabriel Borges da Conceição
44 26 Gabriel Borges da Conceição
### [[Encapsulamento]]
45
46 25 Gabriel Borges da Conceição
### [[Criar uma classe]]
47
48 29 Gabriel Borges da Conceição
49
### [[Adicionando atributos a uma classe]]
50 30 Gabriel Borges da Conceição
51
52
### [[Adicionando métodos a uma classe]]
53
54 32 Gabriel Borges da Conceição
### [[Encapsulamento dos métodos da classe]]
55
56 31 Gabriel Borges da Conceição
57
### [[Criar uma classe por herança]]
58
59 33 Gabriel Borges da Conceição
60
61
### [[Aplicando as classes criadas numa função main]]
62 34 Gabriel Borges da Conceição
63
64
### [[Utilizando passagem de parâmetros por referência em classes]]
65 24 Gabriel Borges da Conceição
---
66 22 Gabriel Borges da Conceição
67 13 Luciano Barreira
## Inteligência Artificial
68 1 Luciano Barreira
69 5 Luciano Barreira
70 13 Luciano Barreira
### [[Decisão de Personalidades (Role Set)]]
71
72 1 Luciano Barreira
Neste módulo é definido o papel de cada robô consoante estado de jogo.
73 5 Luciano Barreira
74 15 Luciano Barreira
### [[Personalidades]]
75 1 Luciano Barreira
76 8 Luciano Barreira
Neste módulo é definido o comportamento de cada personalidade de acordo com o estado do jogo.
77
78 20 Lucas Germano
### [[Gerador de eventos]]
79 19 Lucas Germano
80
Descreve os eventos usados para a inteligência interpretar situações como chute, passe, posse de bola, etc.
81
82 21 Leonardo Gomes Goncalves
### [[Módulo de Testes para o GrSim]]
83
84
Descreve rotinas de testes autônomos das personalidades.
85
86 38 Gabriel Borges da Conceição
---
87 21 Leonardo Gomes Goncalves
88 38 Gabriel Borges da Conceição
## Implementação da Arquitetura STP
89 21 Leonardo Gomes Goncalves
90 45 Gabriel Borges da Conceição
A partir do início de 2019 a Inteligência passou a utilizar Arquitetura STP, baseando-se nos documentos adicionados [aqui] (http://redmine.roboime.com.br/documents/33). 
91
92
Esta parte da wiki tem o objetivo de descrever diretamente como foi feita a implementação da arquitetura no código, explicando cada etapa.
93 1 Luciano Barreira
94 54 Felipe Welington
### [[Plays]]
95 55 Felipe Welington
### [[Tactics]]
96
### [[Skills]]
97
98
99
100 1 Luciano Barreira
101 39 Gabriel Borges da Conceição
102
---
103
104 49 Antonio de Souza Gomes Pereira
## Planejamento de trajetória
105
106 51 Antonio de Souza Gomes Pereira
### [[Algoritmo A*]]
107 52 Antonio de Souza Gomes Pereira
### [RRT](http://redmine.roboime.com.br/projects/inteligencia/wiki/Planejamento_de_Traget%C3%B3ria)
108 49 Antonio de Souza Gomes Pereira
109
---
110
111 1 Luciano Barreira
## Controle
112 36 Nicolas Oliveira
113
Responsável pelo controle do robô em campo. Neste módulo é feito o cálculo de trajetória dos robôs, de modo a atingir o objetivo de maneira ótima e evitar colisão com outros robôs, além de gerar o perfil de velocidade otimizado (bang-bang) para essa trajetória e garantir que o robô assuma esse perfil durante sua movimentação.
114
115 48 Antonio de Souza Gomes Pereira
### [[Planejamento de Tragetória]]
116 36 Nicolas Oliveira
### [[Perfil de Velocidade]]
117
### [[Controle de Velocidade]]
118 9 Luciano Barreira
119 13 Luciano Barreira
---
120
121
## Transmissão
122 12 Luciano Barreira
123
Responsável pelo envio de informação para o robô ou para o simulador.