Obsah:

Programovanie podľa udalostí vo FTC: 4 kroky
Programovanie podľa udalostí vo FTC: 4 kroky

Video: Programovanie podľa udalostí vo FTC: 4 kroky

Video: Programovanie podľa udalostí vo FTC: 4 kroky
Video: Лучшие страшные видео 2023 года [Mega Scary Comp. V4] 2024, November
Anonim
Programovanie podľa udalostí vo FTC
Programovanie podľa udalostí vo FTC

Tento rok náš tím vykonal veľký kus práce s vývojom softvéru riadeného udalosťami pre nášho robota. Tieto programy umožnili tímu presne vyvinúť autonómne programy a dokonca aj opakovateľné teleoperačné udalosti. Keďže softvérová práca, ktorú si vyžaduje, je komplexná, rozhodli sme sa podeliť sa o znalosti, ktoré sme získali pri vývoji kódu riadeného udalosťami pre FTC roboty.

Krok 1: Čo je programovanie na základe udalostí?

Vo všeobecnosti je programovanie založené na udalostiach podľa Techopedia vývoj programov, ktoré reagujú na vstupy používateľov. V tomto zmysle sa mnohé programy považujú za riadené udalosťami, vrátane tímového teleoperačného programu, ktorý pri vykonávaní akejkoľvek akcie závisí od vstupov od ovládača riadeného ľuďmi. Pokiaľ však ide o prácu, ktorú náš tím robí, programovanie založené na udalostiach je o vytváraní softvéru z rôznych vstupov; inými slovami, dokumentujeme udalosti na základe vstupov ovládačov a senzorov, potom môžeme tieto udalosti zaradiť do frontu a pomocou súboru znova spustiť zaznamenanú udalosť.

Tento spôsob vývoja programov pre nášho robota má niekoľko výhod:

  • Umožňuje nám vytvárať presné autonómne programy. Pretože softvér vytvárame v reálnom čase počas akcie, zozbierané a použité hodnoty senzorov budú veľmi presné, pretože pochádzajú priamo z pôvodnej udalosti.
  • Umožňuje nám rýchlo vytvárať autonómne programy. Vytváranie autonómnych programov je také jednoduché, ako zaznamenávať sériu udalostí a podľa potreby ich upravovať.
  • Umožňuje nám vytvárať automatické procesy pre tele-op. Pri opakovaných akciách v rámci tele-opu nám programovanie založené na udalostiach umožňuje zaznamenať tieto akcie a priradiť udalosť tlačidlu počas období zápasov ovládaných vodičom. Tieto automatizované udalosti môžu byť ovplyvnené senzormi, aby bolo možné ich presné vykonanie.

Krok 2: Logický tok programovania riadeného udalosťami

Logický tok programovania riadeného udalosťami
Logický tok programovania riadeného udalosťami

Nasledujúci text zobrazuje logický tok programu riadeného udalosťami: červená znázorňuje vytvorenie udalosti a modrá znázorňuje vyvolanie udalosti. Na vytvorenie udalosti sa sekvencia vstupov zachytí prostredníctvom akcie robota a zaznamená sa ako udalosť; tieto udalosti sú zapísané do súboru. Na vyvolanie udalosti sa tento súbor načíta a vstupy sa odošlú do procesora udalostí, aby sa kód súboru zmenil na akciu robota.

Krok 3: Tvorca udalostí

Tvorca udalostí
Tvorca udalostí
Tvorca udalostí
Tvorca udalostí

Tvorcovia udalostí sa používajú na dokumentáciu akcií alebo „udalostí“na základe rôznych senzorov a tlačidiel. Keďže robot vykonáva akcie na poli, trieda tvorcov udalostí vytvára udalosti pre každú z týchto akcií súbežne a odkazuje na udalosť zaradenú do triedy udalostí. Po vytvorení sa udalosť zaradí do radu udalostí v triede udalostí: prvá udalosť zaujme prvé miesto, potom druhá udalosť zaujme prvé miesto a potlačí všetky udalosti pod ňou, a to pokračuje, kým sa program nezastaví. Keď je program zastavený, udalosti prejdú do súboru vo formáte čitateľnom pre človeka, napríklad do súboru JSON. Tento súbor je možné použiť na lepšie zlepšenie autonómnych rutín.

Vyššie uvedený príkladový kód nastavuje parametre pre udalosť, ktorou je v tomto prípade obrat pomocou senzora IMU. Udalosť potom zaradíme do frontu udalostí. Nakoniec udalosť skrátime, čo je v podstate resetovanie udalosti, aby sme ju mohli použiť na zaradenie do frontu budúcich udalostí.

Krok 4: Procesor udalostí

Procesor udalostí
Procesor udalostí
Procesor udalostí
Procesor udalostí

Triedy udalostí preberajú ľudsky čitateľný súbor vytvorený v triede tvorcov udalostí a robia všetko, čo im každá fronta vo fronte prikáže, volaním metód uvedených v triede procesora udalostí. Trieda procesora udalostí potom robotovi oznámi, akú udalosť má prehrať. Bez ohľadu na to, či ide o jednoduchú udalosť „vpred“alebo o komplexnú udalosť plnú vzdialeností, zákrut a bleskov, procesor prehrá akúkoľvek udalosť, ktorá mu bola zadaná. Tento proces je veľmi užitočný počas autonómnej prevádzky, pretože tím môže zaznamenávať senzory a akcie Tele-Op predtým, ako sa zhodujú, a potom jednoducho prehrávať udalosti autonómne. Tento proces sa nazýva opakovanie pamäte. To umožňuje, aby bol autonómny program 100% konfigurovateľný prostredníctvom jedného súboru. Akonáhle je vytvorený tvorca udalostí a procesor, tím môže jednoducho zmeniť autonómne rutiny prostredníctvom súboru čitateľného pre človeka.

Vyššie uvedený príklad najskôr začína kontrolou udalosti v súbore JSON a potom pomocou príkazu case skontroluje danú udalosť, aby zistil, o aký druh udalosti ide, v tomto prípade odbočenie pomocou senzora IMU. Akonáhle dokáže zistiť, že je na rade udalosť IMU, zaoberá sa spracovaním udalosti, ktorá zvyčajne zahŕňa spustenie kódu, z ktorého udalosť pochádza, pomocou premenných z udalosti odovzdaných na replikáciu udalosti, ktorá bola vykonaná predtým.

Odporúča: