Índice:

Programação orientada a eventos em FTC: 4 etapas
Programação orientada a eventos em FTC: 4 etapas

Vídeo: Programação orientada a eventos em FTC: 4 etapas

Vídeo: Programação orientada a eventos em FTC: 4 etapas
Vídeo: Aula 10 - Programação Orientada a Eventos 2024, Novembro
Anonim
Programação orientada a eventos em FTC
Programação orientada a eventos em FTC

Este ano, nossa equipe fez um grande trabalho de desenvolvimento de software orientado a eventos para nosso robô. Esses programas permitiram que a equipe desenvolvesse com precisão programas autônomos e até mesmo eventos tele-op repetíveis. Como o trabalho de software que ele exige é complexo, decidimos compartilhar o conhecimento que adquirimos no desenvolvimento de código orientado a eventos para robôs FTC.

Etapa 1: O que é programação orientada a eventos?

Em termos gerais, a programação orientada a eventos, de acordo com a Techopedia, é o desenvolvimento de programas que respondem à entrada do usuário. Nesse sentido, muitos programas são considerados orientados a eventos, incluindo o programa tele-op de uma equipe, que depende de entradas de um controlador operado por humanos para realizar qualquer ação. No entanto, em termos do trabalho que nossa equipe tem feito, a programação orientada a eventos trata da criação de software a partir de várias entradas; em outras palavras, documentamos eventos com base nas entradas de controladores e sensores, então podemos enfileirar esses eventos e usar o arquivo para executar novamente o evento registrado.

Este método de desenvolvimento de programas para nosso robô tem várias vantagens:

  • Isso nos permite criar programas autônomos precisos. Como estamos criando o software em tempo real durante o evento, os valores do sensor coletados e usados serão muito precisos, pois vêm diretamente do evento original.
  • Isso nos permite criar programas autônomos rapidamente. Fazer programas autônomos é tão simples quanto registrar uma série de eventos e ajustar o evento conforme necessário.
  • Isso nos permite criar processos automáticos para tele-op. Para ações repetidas em tele-op, a programação orientada a eventos nos permite registrar essas ações e atribuir o evento a um botão durante os períodos de jogos controlados pelo motorista. Esses eventos automatizados podem ser influenciados por sensores para permitir sua execução precisa.

Etapa 2: Fluxo lógico de programação orientada a eventos

Fluxo lógico de programação orientada a eventos
Fluxo lógico de programação orientada a eventos

O seguinte descreve o fluxo lógico de um programa orientado a eventos: vermelho representa a criação de um evento e azul representa a chamada do evento. Para criar um evento, uma sequência de entradas é obtida por meio da ação do robô e registrada como eventos; esses eventos são gravados em um arquivo. Para chamar um evento, esse arquivo é lido e as entradas são enviadas a um processador de eventos para transformar o código do arquivo em ação de robô.

Etapa 3: criador do evento

Criador de Eventos
Criador de Eventos
Criador de Eventos
Criador de Eventos

Os criadores de eventos são usados para documentar ações ou “eventos” com base em uma variedade de sensores e botões. À medida que o robô realiza ações em campo, uma classe criadora de eventos está criando eventos para cada uma dessas ações em paralelo, referenciando o evento classificado em uma classe de eventos. Depois de ser criado, o evento é colocado em uma fila de eventos na classe de eventos: o primeiro evento ocupa o primeiro lugar, então o segundo evento toma o primeiro lugar e empurra quaisquer eventos abaixo dele, e isso continua até que o programa pare. Quando o programa é interrompido, os eventos vão para um arquivo de formato legível, como um arquivo JSON. Este arquivo pode ser usado para melhorar melhor as rotinas autônomas.

O código de exemplo acima configura os parâmetros para o evento, que neste caso é uma volta usando um sensor IMU. Em seguida, colocamos o evento na fila de eventos. Por fim, truncamos o evento, o que basicamente redefine o evento para que possamos usá-lo para enfileirar eventos futuros.

Etapa 4: Processador de eventos

Processador de Eventos
Processador de Eventos
Processador de Eventos
Processador de Eventos

As classes de eventos pegam o arquivo legível por humanos produzido na classe do criador do evento e fazem tudo o que cada evento enfileirado diz para fazer, chamando os métodos descritos em uma classe do processador de eventos. A classe do processador de evento então informa ao robô qual evento repetir. Quer se trate de um simples evento de "avanço" ou um evento complexo cheio de distâncias, curvas e strafes, o processador irá repetir qualquer evento dado a ele. Este processo é muito útil durante o modo autônomo, uma vez que uma equipe pode gravar sensores e ações de Tele-Op antes de combinar, então simplesmente reproduzir os eventos em modo autônomo. Este processo é denominado Memory Replay. Isso permite que um programa autônomo seja 100% configurável por meio de um único arquivo. Depois que o criador e o processador do evento são estabelecidos, uma equipe pode simplesmente alterar as rotinas autônomas por meio do arquivo legível por humanos.

O exemplo acima começa primeiro verificando o arquivo JSON para um evento e, em seguida, verificando esse evento usando uma instrução case para ver que tipo de evento é, neste caso, uma volta usando um sensor IMU. Uma vez que pode dizer que é uma vez usando o evento IMU, ele então lida com o processamento do evento, o que geralmente envolve a execução do código de origem do evento usando variáveis do evento, transmitidas para replicar o evento que foi feito antes.

Recomendado: