Taula de continguts:

Programació basada en esdeveniments en FTC: 4 passos
Programació basada en esdeveniments en FTC: 4 passos

Vídeo: Programació basada en esdeveniments en FTC: 4 passos

Vídeo: Programació basada en esdeveniments en FTC: 4 passos
Vídeo: La historia completa de la programación (por EDteam) 2024, Desembre
Anonim
Programació basada en esdeveniments a FTC
Programació basada en esdeveniments a FTC

Aquest any, el nostre equip ha realitzat una gran feina amb el desenvolupament de programari basat en esdeveniments per al nostre robot. Aquests programes han permès a l’equip desenvolupar amb precisió programes autònoms i fins i tot esdeveniments teleoperatius repetibles. Com que el treball de programari que requereix és complex, hem decidit compartir el coneixement que hem adquirit sobre el desenvolupament de codi basat en esdeveniments per a robots FTC.

Pas 1: què és la programació basada en esdeveniments?

En termes generals, la programació basada en esdeveniments, segons Techopedia, és el desenvolupament de programes que responen a les aportacions dels usuaris. En aquest sentit, molts programes es consideren basats en esdeveniments, inclòs el programa de tele-op d’un equip, que es basa en les aportacions d’un controlador dirigit per humans per dur a terme qualsevol acció. Tanmateix, pel que fa a la feina que ha estat fent el nostre equip, la programació basada en esdeveniments consisteix a crear programari a partir de diverses entrades; en altres paraules, documentem els esdeveniments basats en les entrades de controladors i sensors, i després podem fer cua d’aquests esdeveniments i utilitzar el fitxer per tornar a executar l’esdeveniment gravat.

Aquest mètode de desenvolupament de programes per al nostre robot té diversos avantatges:

  • Ens permet crear programes autònoms precisos. Com que estem creant el programari en temps real mentre realitzem l'esdeveniment, els valors del sensor recollits i utilitzats seran molt precisos, ja que provenen directament de l'esdeveniment original.
  • Ens permet crear programes autònoms ràpidament. Fer programes autònoms és tan senzill com enregistrar una sèrie d'esdeveniments i ajustar l'esdeveniment com calgui.
  • Ens permet crear processos automàtics per a la tele-op. Per a accions repetides en tele-op, la programació basada en esdeveniments ens permet gravar aquestes accions i assignar l’esdeveniment a un botó durant els períodes de partides controlats pel conductor. Aquests esdeveniments automatitzats poden ser influenciats per sensors per permetre la seva execució precisa.

Pas 2: flux lògic de la programació basada en esdeveniments

Flux lògic de programació basada en esdeveniments
Flux lògic de programació basada en esdeveniments

A continuació es representa el flux lògic d’un programa basat en un esdeveniment: el vermell representa la creació d’un esdeveniment i el blau representa la convocatòria de l’esdeveniment. Per crear un esdeveniment, es pren una seqüència d'entrades mitjançant l'acció del robot i es registra com a esdeveniments; aquests esdeveniments s’escriuen en un fitxer. Per trucar a un esdeveniment, es llegeix aquest fitxer i les entrades s’envien a un processador d’esdeveniments per convertir el codi del fitxer en acció del robot.

Pas 3: creador d'esdeveniments

Creador d'esdeveniments
Creador d'esdeveniments
Creador d'esdeveniments
Creador d'esdeveniments

Els creadors d'esdeveniments s'utilitzen per documentar accions o "esdeveniments" basats en diversos sensors i botons. A mesura que el robot realitza accions sobre el terreny, una classe creadora d'esdeveniments crea esdeveniments per a cadascuna d'aquestes accions en paral·lel, fent referència a l'esdeveniment classificat en una classe d'esdeveniments. Després de crear-se, l'esdeveniment es col·loca en una cua d'esdeveniments de la classe d'esdeveniments: el primer esdeveniment ocupa el primer lloc, després el segon esdevé el primer lloc i empeny cap avall cap esdeveniment que hi ha a sota, i això continua fins que s'atura el programa. Quan s’atura el programa, els esdeveniments passen a un fitxer de format llegible per humans, com ara un fitxer JSON. Aquest fitxer es pot utilitzar per millorar millor les rutines autònomes.

El codi d'exemple anterior estableix els paràmetres de l'esdeveniment, que en aquest cas és un gir mitjançant un sensor IMU. A continuació, fem cua de l'esdeveniment a la cua d'esdeveniments. Finalment, trunquem l'esdeveniment, que bàsicament restableix l'esdeveniment perquè el puguem fer servir per fer cues d'esdeveniments futurs.

Pas 4: processador d'esdeveniments

Processador d'esdeveniments
Processador d'esdeveniments
Processador d'esdeveniments
Processador d'esdeveniments

Les classes d'esdeveniments agafen el fitxer llegible per humans produït a la classe de creador d'esdeveniments i fan allò que cada esdeveniment a la cua li diu que faci trucant als mètodes descrits en una classe de processador d'esdeveniments. A continuació, la classe de processador d’esdeveniments li diu al robot quin esdeveniment s’ha de reproduir. Ja sigui un simple esdeveniment "endavant" o un esdeveniment complex ple de distàncies, girs i tirants, el processador reproduirà qualsevol esdeveniment que se li doni. Aquest procés és molt útil durant els processos autònoms, ja que un equip pot enregistrar els sensors i les accions de Tele-Op abans de coincidir, i simplement reproduir els esdeveniments en forma autònoma. Aquest procés s’anomena Memory Replay. Això permet que un programa autònom sigui 100% configurable mitjançant un únic fitxer. Un cop establert el creador i el processador d’esdeveniments, un equip simplement pot canviar rutines autònomes mitjançant el fitxer llegible per humans.

L'exemple anterior comença primer comprovant el fitxer JSON d'un esdeveniment i, a continuació, comprovant aquest esdeveniment mitjançant una sentència de cas per veure quin tipus d'esdeveniment es tracta, en aquest cas d'un torn amb un sensor IMU. Un cop es pot dir que és un torn mitjançant l'esdeveniment IMU, es tracta de processar l'esdeveniment, que normalment consisteix a executar el codi que prové de l'esdeveniment mitjançant l'ús de variables de l'esdeveniment, transmès per reproduir l'esdeveniment que s'havia fet anteriorment.

Recomanat: