Projeto

Geral

Perfil

Ações

Arquitetura de Software » Histórico » Revisão 34

« Anterior | Revisão 34/56 (diff) | Próximo »
Gabriel Borges da Conceição, 06/06/2019 00:24 h


  1. Arquitetura de Software

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.
Os módulos que compõem estes estágios estão descritos a seguir:
1. Leitura : SSL-Vision e Ref Box
2. Pré-Processamento: Game State e Judge State
3. Tomada de Decisão: Role Set e Tactics
4. Controle : Obstacle Avoidance e Path Planning
5. Transmissão : Transmission


  1. Leitura

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.

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).


  1. Pré-Processamento
  • 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.
  • 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.

  1. Orientação a objeto em labVIEW

Antes de mais nada, é importante que se leia: https://zone.ni.com/reference/en-XX/help/371361P-01/lvconcepts/creating_classes/

Para efeito de exemplo, criaremos uma classe chamada RoboUni (robô só anda sobre o eixo x) e uma classe herdada RoboBid (robô anda sobre o plano xy).

  1. Encapsulamento
  1. Criar uma classe
  1. Adicionando atributos a uma classe
  1. Adicionando métodos a uma classe
  1. Encapsulamento dos métodos da classe
  1. Criar uma classe por herança
  1. Aplicando as classes criadas numa função main
  1. Utilizando passagem de parâmetros por referência em classes
    ---
  1. Inteligência Artificial

  1. Decisão de Personalidades (Role Set)

Neste módulo é definido o papel de cada robô consoante estado de jogo.

  1. Personalidades

Neste módulo é definido o comportamento de cada personalidade de acordo com o estado do jogo.

  1. Planejamento de Tragetória
  1. Gerador de eventos

Descreve os eventos usados para a inteligência interpretar situações como chute, passe, posse de bola, etc.

  1. Módulo de Testes para o GrSim

Descreve rotinas de testes autônomos das personalidades.


  1. Controle

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.


  1. Transmissão

Responsável pelo envio de informação para o robô ou para o simulador.

Atualizado por Gabriel Borges da Conceiçãoaproximadamente 5 anos · 34 revisões