Projeto

Geral

Perfil

Ações

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

« Anterior | Revisão 30/56 (diff) | Próximo »
Gabriel Borges da Conceição, 21/05/2019 12:15 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. 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çãomais de 5 anos · 30 revisões