Projeto

Geral

Perfil

Ações

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

« Anterior | Revisão 36/56 (diff) | Próximo »
Nicolas Oliveira, 18/07/2019 14:02 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ô que só anda sobre o eixo x) e uma classe herdada RoboBid (robô que 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. 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, 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.

  1. Planejamento de Tragetória
  2. Perfil de Velocidade
  3. Controle de Velocidade

  1. Transmissão

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

Atualizado por Nicolas Oliveiramais de 5 anos · 36 revisões