Arquitetura de Software » Histórico » Versão 51
Antonio de Souza Gomes Pereira, 07/03/2020 23:14 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 | ## Orientação a objeto em labVIEW |
||
| 29 | |||
| 30 | 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/ |
| 31 | |||
| 32 | 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). |
| 33 | 28 | Gabriel Borges da Conceição | |
| 34 | 47 | Gabriel Borges da Conceição | ### [[Instalação do UML no LabVIEW]] |
| 35 | 46 | Gabriel Borges da Conceição | |
| 36 | 26 | Gabriel Borges da Conceição | ### [[Encapsulamento]] |
| 37 | |||
| 38 | 25 | Gabriel Borges da Conceição | ### [[Criar uma classe]] |
| 39 | |||
| 40 | 29 | Gabriel Borges da Conceição | |
| 41 | ### [[Adicionando atributos a uma classe]] |
||
| 42 | 30 | Gabriel Borges da Conceição | |
| 43 | |||
| 44 | ### [[Adicionando métodos a uma classe]] |
||
| 45 | |||
| 46 | 32 | Gabriel Borges da Conceição | ### [[Encapsulamento dos métodos da classe]] |
| 47 | |||
| 48 | 31 | Gabriel Borges da Conceição | |
| 49 | ### [[Criar uma classe por herança]] |
||
| 50 | |||
| 51 | 33 | Gabriel Borges da Conceição | |
| 52 | |||
| 53 | ### [[Aplicando as classes criadas numa função main]] |
||
| 54 | 34 | Gabriel Borges da Conceição | |
| 55 | |||
| 56 | ### [[Utilizando passagem de parâmetros por referência em classes]] |
||
| 57 | 24 | Gabriel Borges da Conceição | --- |
| 58 | 22 | Gabriel Borges da Conceição | |
| 59 | 13 | Luciano Barreira | ## Inteligência Artificial |
| 60 | 1 | Luciano Barreira | |
| 61 | 5 | Luciano Barreira | |
| 62 | 13 | Luciano Barreira | ### [[Decisão de Personalidades (Role Set)]] |
| 63 | |||
| 64 | 1 | Luciano Barreira | Neste módulo é definido o papel de cada robô consoante estado de jogo. |
| 65 | 5 | Luciano Barreira | |
| 66 | 15 | Luciano Barreira | ### [[Personalidades]] |
| 67 | 1 | Luciano Barreira | |
| 68 | 8 | Luciano Barreira | Neste módulo é definido o comportamento de cada personalidade de acordo com o estado do jogo. |
| 69 | |||
| 70 | 20 | Lucas Germano | ### [[Gerador de eventos]] |
| 71 | 19 | Lucas Germano | |
| 72 | Descreve os eventos usados para a inteligência interpretar situações como chute, passe, posse de bola, etc. |
||
| 73 | |||
| 74 | 21 | Leonardo Gomes Goncalves | ### [[Módulo de Testes para o GrSim]] |
| 75 | |||
| 76 | Descreve rotinas de testes autônomos das personalidades. |
||
| 77 | |||
| 78 | 38 | Gabriel Borges da Conceição | --- |
| 79 | 21 | Leonardo Gomes Goncalves | |
| 80 | 38 | Gabriel Borges da Conceição | ## Implementação da Arquitetura STP |
| 81 | 21 | Leonardo Gomes Goncalves | |
| 82 | 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). |
| 83 | |||
| 84 | Esta parte da wiki tem o objetivo de descrever diretamente como foi feita a implementação da arquitetura no código, explicando cada etapa. |
||
| 85 | 1 | Luciano Barreira | |
| 86 | 40 | Gabriel Borges da Conceição | ### [[Escolha das Plays]] |
| 87 | 1 | Luciano Barreira | |
| 88 | 40 | Gabriel Borges da Conceição | ### [[Escolha dos Robôs]] |
| 89 | 39 | Gabriel Borges da Conceição | |
| 90 | 40 | Gabriel Borges da Conceição | ### [[Execução das Plays]] |
| 91 | 39 | Gabriel Borges da Conceição | |
| 92 | --- |
||
| 93 | |||
| 94 | 49 | Antonio de Souza Gomes Pereira | ## Planejamento de trajetória |
| 95 | |||
| 96 | 51 | Antonio de Souza Gomes Pereira | ### [[Algoritmo A*]] |
| 97 | 49 | Antonio de Souza Gomes Pereira | |
| 98 | --- |
||
| 99 | |||
| 100 | 1 | Luciano Barreira | ## Controle |
| 101 | 36 | Nicolas Oliveira | |
| 102 | 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. |
||
| 103 | |||
| 104 | 48 | Antonio de Souza Gomes Pereira | ### [[Planejamento de Tragetória]] |
| 105 | 36 | Nicolas Oliveira | ### [[Perfil de Velocidade]] |
| 106 | ### [[Controle de Velocidade]] |
||
| 107 | 9 | Luciano Barreira | |
| 108 | 13 | Luciano Barreira | --- |
| 109 | |||
| 110 | ## Transmissão |
||
| 111 | 12 | Luciano Barreira | |
| 112 | Responsável pelo envio de informação para o robô ou para o simulador. |