Taula de continguts:

Programació Conducida Per El Acontecimiento En FTC: 4 Steps
Programació Conducida Per El Acontecimiento En FTC: 4 Steps

Vídeo: Programació Conducida Per El Acontecimiento En FTC: 4 Steps

Vídeo: Programació Conducida Per El Acontecimiento En FTC: 4 Steps
Vídeo: Eudii 29 Apertura del Evento y Palabras de Bienvenida 2024, Desembre
Anonim
Programació Conducida Per El Acontecimiento En FTC
Programació Conducida Per El Acontecimiento En FTC

Aquest any, el nostre equip ha fet una gran quantitat de treball amb el desenvolupament de programari dirigit per esdeveniments per al nostre robot. Aquests programes han permès a l’equip desenvolupar-se amb precisions de programes autònoms i fins i tot esdeveniments tele-OP repetibles. Com el treball de programari que requereix és complex, decidim compartir el coneixement que hem guanyat en el desenvolupament de codi impulsat per esdeveniments per als robots de FTC.

Pas 1: Què és la programació dirigida per esdeveniments?

En termes generals, la programació dirigida per esdeveniments, segons Techopedia, és el desenvolupament de programes que responen a les entrades de l’usuari. En aquest sentit, molts programes es consideren dirigits per esdeveniments, inclòs el programa tele-OP, que es basa en entrades d’un control manejat per un humà per portar a terme qualsevol acció. Sin embargo, en términos del trabajo que nuestro equipo ha estado haciendo, la programación dirigida por eventos se trata de crear software a partir de diversas entradas; en altres paraules, documentem esdeveniments basats en les entrades de controladors i sensors, llavors podem posar en cola aquests esdeveniments i utilitzar l'arxiu per tornar a executar l'esdeveniment agafat.

Aquest mètode de desenvolupament de programes per al nostre robot té diverses ventasses:

  • Ens permet crear programes autònoms precisos. El dia que estem creant el programari en temps real mentre es produeixi algun esdeveniment, els valors del sensor recogits i utilitzats seran molt precisos, ja que tenen directament l’esdeveniment original.
  • Ens permet crear programes autònoms ràpidament. Fer programes autònoms és tan senzill com grabar una sèrie d’esdeveniments i ajustar l’esdeveniment segons sigui necessari.
  • Ens permet crear processos automàtics per a la tele-op. Per a accions repetides en tele-OP, la programació dirigida per esdeveniments ens permet registrar aquestes accions i assignar l’esdeveniment a un botó durant els períodes en quin el conductor està manejant el robot. Aquests esdeveniments automatitzats poden ser influenciats per sensors per permetre una execució precisa.

Step 2: Flujo Lógico De La Programación Dirigida Por Eventos

Flujo Lógico De La Programación Dirigida Por Eventos
Flujo Lógico De La Programación Dirigida Por Eventos

A continuació es mostra el fluix lògic d’un programa controlat per esdeveniments: el vermell representa la creació d’un esdeveniment i el blau representa la trucada de l’esdeveniment. Per crear un esdeveniment, es pren una secuència d’entrades a través de l’acció del robot i es registra com a esdeveniments; aquests esdeveniments s’escriuran en un arxiu. Per llamar a un esdeveniment, vegeu l'arxiu i les entrades s'envien a un processador d'esdeveniments per convertir el codi d'arxiu en una acció del robot.

Pas 3: Creador d'Esdeveniments

Creador De Eventos
Creador De Eventos
Creador De Eventos
Creador De Eventos

Els creadors d'esdeveniments s'utilitzaran per documentar accions o "esdeveniments" basats en una varietat de sensors i botons. Una mesura que el robot realitza accions en el camp, una classe de creador d’esdeveniments està creant esdeveniments per a cada una d’aquestes accions en paral·lel, fent referències a l’esdeveniment classificat en una classe d’esdeveniments. Després de ser creats, l’esdeveniment es posa en una cola d’esdeveniments a la classe d’esdeveniments: el primer esdeveniment pren el punt superior, després el segon esdeveniment es pren el punt superior i s’imposa cap a baix els esdeveniments debat d’ell, i això continua fins a que el programa es detiene. Quan es deté el programa, els esdeveniments es porten a un arxiu de format llegible per humans, com a un arxiu JSON. Aquest arxiu es pot utilitzar per millorar les rutines autònomes.

El codi d’exemple anterior configura els paràmetres per a l’esdeveniment, que en aquest cas és un gir utilitzant un sensor IMU. A continuació, col·loquem l’esdeveniment a la cola d’esdeveniments. Per últim, es trunca l’esdeveniment, que essencialment està restablint l’esdeveniment per a què es pugui utilitzar per posar en cola els esdeveniments futurs.

Pas 4: Procesador D'esdeveniments

Procesador De Eventos
Procesador De Eventos
Procesador De Eventos
Procesador De Eventos

Les classes d’esdeveniments prenen l’arxiu llegible pel ser humà produït en la classe de creador d’esdeveniments i hacen el que cada esdeveniment en cola li donen que fer trucant als mètodes descrits en una classe de processador d’esdeveniments. A continuació, la classe de processador d’esdeveniments indica al robot com a esdeveniment repit. Si es tracta d’un simple esdeveniment de "conducir dret" o un esdeveniment complejo lleno de distancias, giros y strafes, el processador reproduirà qualsevol esdeveniment que se li ha donat. Aquest procés és molt útil durant l’autonomia, ja que un equip pot grabar sensors i accions tele-OP abans del partit, després simplement reproduir els esdeveniments en autònom. Aquest procés es diu repetició de memòria. Això permet que un programa autònom sigui 100% configurable a través d'un sol arxiu. Una vegada que estableix el creador i el processador de l’esdeveniment, un equip pot simplement canviar les rutines autònomes a través de l’arxiu llegible pel ser humà.

L'exemple anterior comença primer comprenent l'arxiu JSON d'un esdeveniment i, a continuació, comprenent aquest esdeveniment utilitzant una instrucció del cas per a què tipus d'esdeveniment és, en aquest cas, un gir utilitzant el sensor IMU. Una vegada que es dedueix que és un gir utilitzant un esdeveniment IMU, a continuació, es procesa l’esdeveniment, que normalment implica l’execució del codi de l’esdeveniment amb variables de l’esdeveniment que es passa per replicar l’esdeveniment que es realitza anteriorment.

Recomanat: