Sommario:

Programmazione guidata dagli eventi in FTC: 4 passaggi
Programmazione guidata dagli eventi in FTC: 4 passaggi

Video: Programmazione guidata dagli eventi in FTC: 4 passaggi

Video: Programmazione guidata dagli eventi in FTC: 4 passaggi
Video: Vai a lettoooo! 2024, Novembre
Anonim
Programmazione guidata dagli eventi in FTC
Programmazione guidata dagli eventi in FTC

Quest'anno, il nostro team ha svolto un grande lavoro con lo sviluppo di software basato su eventi per il nostro robot. Questi programmi hanno permesso al team di sviluppare con precisione programmi autonomi e persino eventi tele-op ripetibili. Poiché il lavoro software richiesto è complesso, abbiamo deciso di condividere le conoscenze acquisite nello sviluppo di codice guidato dagli eventi per i robot FTC.

Passaggio 1: cos'è la programmazione basata sugli eventi?

In termini generali, la programmazione guidata dagli eventi, secondo Techopedia, è lo sviluppo di programmi che rispondono all'input dell'utente. In questo senso, molti programmi sono considerati guidati dagli eventi, incluso il programma tele-op di una squadra, che si basa sugli input di un controller gestito da umani per condurre qualsiasi azione. Tuttavia, in termini di lavoro svolto dal nostro team, la programmazione basata sugli eventi riguarda la creazione di software da vari input; in altre parole, documentiamo gli eventi in base agli input di controller e sensori, quindi possiamo mettere in coda questi eventi e utilizzare il file per eseguire nuovamente l'evento registrato.

Questo metodo di sviluppo dei programmi per il nostro robot ha diversi vantaggi:

  • Ci permette di creare programmi autonomi accurati. Poiché stiamo creando il software in tempo reale durante l'evento, i valori del sensore raccolti e utilizzati saranno molto precisi, poiché provengono direttamente dall'evento originale.
  • Ci permette di creare programmi autonomi velocemente. Fare programmi autonomi è semplice come registrare una serie di eventi e regolare l'evento se necessario.
  • Ci permette di creare processi automatici per tele-op. Per le azioni ripetute in tele-op, la programmazione basata su eventi ci consente di registrare queste azioni e assegnare l'evento a un pulsante durante i periodi di partita controllati dal pilota. Questi eventi automatizzati possono essere influenzati da sensori per consentirne l'esecuzione accurata.

Passaggio 2: flusso logico della programmazione guidata dagli eventi

Flusso logico della programmazione guidata dagli eventi
Flusso logico della programmazione guidata dagli eventi

Quanto segue descrive il flusso logico di un programma basato su eventi: il rosso rappresenta la creazione di un evento e il blu rappresenta la chiamata dell'evento. Per creare un evento, una sequenza di input viene acquisita tramite l'azione del robot e registrata come eventi; questi eventi vengono scritti in un file. Per chiamare un evento, quel file viene letto e gli input vengono inviati a un processore di eventi per trasformare il codice del file in un'azione del robot.

Passaggio 3: creatore di eventi

Creatore di eventi
Creatore di eventi
Creatore di eventi
Creatore di eventi

I creatori di eventi vengono utilizzati per documentare azioni o "eventi" basati su una varietà di sensori e pulsanti. Mentre il robot esegue azioni sul campo, una classe di creatore di eventi crea eventi per ciascuna di tali azioni in parallelo, facendo riferimento all'evento classificato in una classe di eventi. Dopo essere stato creato, l'evento viene messo in una coda di eventi nella classe events: il primo evento prende il primo posto, quindi il secondo evento prende il primo posto e spinge verso il basso gli eventi sottostanti, e questo continua fino all'arresto del programma. Quando il programma viene interrotto, gli eventi vengono inviati a un file in formato leggibile dall'uomo, come un file JSON. Questo file può essere utilizzato per migliorare meglio le routine autonome.

Il codice di esempio sopra imposta i parametri per l'evento, che in questo caso è una svolta che utilizza un sensore IMU. Quindi accodiamo l'evento nella coda degli eventi. Infine, tronchiamo l'evento, che essenzialmente reimposta l'evento in modo da poterlo utilizzare per accodare eventi futuri.

Passaggio 4: processore di eventi

Processore di eventi
Processore di eventi
Processore di eventi
Processore di eventi

Le classi di eventi prendono il file leggibile prodotto nella classe creatore di eventi e fanno tutto ciò che ogni evento in coda gli dice di fare chiamando i metodi delineati in una classe del processore di eventi. La classe del processore di eventi indica quindi al robot quale evento riprodurre. Che si tratti di un semplice evento "drive forward" o di un evento complesso pieno di distanze, svolte e strafe, il processore riprodurrà qualsiasi evento assegnatogli. Questo processo è molto utile durante l'autonomia, poiché una squadra può registrare sensori e azioni Tele-Op prima di abbinare, quindi semplicemente riprodurre gli eventi in autonomia. Questo processo è chiamato Memory Replay. Ciò consente a un programma autonomo di essere configurabile al 100% tramite un unico file. Una volta stabiliti il creatore e il processore dell'evento, un team può semplicemente modificare le routine autonome attraverso il file leggibile dall'uomo.

L'esempio sopra inizia prima controllando il file JSON per un evento, quindi controllando quell'evento usando un'istruzione case per vedere che tipo di evento è, in questo caso una svolta usando un sensore IMU. Una volta che può dire che si tratta di un turno utilizzando l'evento IMU, si occupa quindi dell'elaborazione dell'evento, che di solito comporta l'esecuzione del codice da cui proviene l'evento utilizzando le variabili dell'evento, passate per replicare l'evento che è stato fatto prima.

Consigliato: