Obsah:

Programování řízené událostmi ve FTC: 4 kroky
Programování řízené událostmi ve FTC: 4 kroky

Video: Programování řízené událostmi ve FTC: 4 kroky

Video: Programování řízené událostmi ve FTC: 4 kroky
Video: Maturita #48 - Událostmi řízené programování 2024, Červenec
Anonim
Programování řízené událostmi ve FTC
Programování řízené událostmi ve FTC

Tento rok náš tým odvedl velký kus práce s vývojem softwaru řízeného událostmi pro našeho robota. Tyto programy umožnily týmu přesně vyvíjet autonomní programy a dokonce i opakovatelné tele-op události. Protože je softwarová práce, kterou vyžaduje, složitá, rozhodli jsme se sdílet znalosti, které jsme získali při vývoji kódu řízeného událostmi pro FTC roboty.

Krok 1: Co je programování řízené událostmi?

Obecně řečeno, programování řízené událostmi je podle Techopedia vývoj programů, které reagují na vstupy uživatelů. V tomto smyslu je mnoho programů považováno za událostmi řízené, včetně týmového tele-op programu, který při provádění jakékoli akce spoléhá na vstupy z ovladače řízeného lidmi. Pokud jde o práci, kterou náš tým vykonával, programování založené na událostech je o vytváření softwaru z různých vstupů; jinými slovy, dokumentujeme události na základě vstupů řadičů a senzorů, poté můžeme tyto události zařadit do fronty a pomocí souboru znovu spustit zaznamenanou událost.

Tato metoda vývoje programů pro našeho robota má několik výhod:

  • Umožňuje nám vytvářet přesné autonomní programy. Vzhledem k tomu, že vytváříme software v reálném čase a procházíme událostmi, shromážděné a použité hodnoty senzorů budou velmi přesné, protože pocházejí přímo z původní události.
  • Umožňuje nám rychle vytvářet autonomní programy. Vytváření autonomních programů je stejně jednoduché jako zaznamenávání série událostí a jejich přizpůsobování podle potřeby.
  • Umožňuje nám vytvářet automatické procesy pro tele-op. U opakovaných akcí v tele-op nám programování řízené událostmi umožňuje zaznamenat tyto akce a přiřadit událost tlačítku během zápasů ovládaných řidičem. Tyto automatizované události mohou být ovlivněny senzory, aby bylo umožněno jejich přesné provedení.

Krok 2: Logický tok programování řízeného událostmi

Logický tok programování řízeného událostmi
Logický tok programování řízeného událostmi

Následující text zobrazuje logický tok programu řízeného událostmi: červená zobrazuje vytvoření události a modrá znázorňuje volání události. Pro vytvoření události je sekvence vstupů převzata prostřednictvím akce robota a zaznamenána jako události; tyto události jsou zapsány do souboru. Při volání události se tento soubor načte a vstupy se odešlou do procesoru událostí, aby se kód souboru proměnil v akci robota.

Krok 3: Tvůrce událostí

Tvůrce událostí
Tvůrce událostí
Tvůrce událostí
Tvůrce událostí

Tvůrci událostí se používají k dokumentaci akcí nebo „událostí“na základě řady senzorů a tlačítek. Když robot provádí akce na poli, třída tvůrce událostí vytváří události pro každou z těchto akcí souběžně a odkazuje na událost zařazenou do třídy událostí. Po vytvoření je událost zařazena do fronty událostí ve třídě událostí: první událost zaujímá první místo, poté druhá událost zaujímá první místo a tlačí dolů všechny události pod ním, a to pokračuje, dokud se program nezastaví. Když je program zastaven, události přejdou do souboru formátu čitelného pro člověka, například do souboru JSON. Tento soubor lze použít k lepšímu zlepšení autonomních rutin.

Výše uvedený kód kódu nastavuje parametry pro událost, což je v tomto případě obrat pomocí senzoru IMU. Událost pak zařadíme do fronty událostí. Nakonec událost zkrátíme, což v podstatě resetuje událost, abychom ji mohli použít k zařazení do budoucích událostí.

Krok 4: Procesor událostí

Procesor událostí
Procesor událostí
Procesor událostí
Procesor událostí

Třídy událostí přebírají soubor čitelný pro člověka vytvořený ve třídě tvůrců událostí a dělají vše, co jim každá událost ve frontě řekne, aby volaly metody popsané ve třídě procesorů událostí. Třída procesoru událostí pak sděluje robotovi, jakou událost má přehrát. Ať už se jedná o jednoduchou událost „drive forward“nebo složitou událost plnou vzdáleností, zatáček a úskoků, procesor přehraje jakoukoli událost, která mu byla zadána. Tento proces je velmi užitečný během autonomního řízení, protože tým může zaznamenávat senzory a akce Tele-Op, než se shodují, a pak jednoduše přehrávat události autonomně. Tento proces se nazývá opakování paměti. To umožňuje, aby byl autonomní program 100% konfigurovatelný prostřednictvím jednoho souboru. Jakmile je vytvořen tvůrce událostí a procesor, tým může jednoduše změnit autonomní rutiny prostřednictvím souboru čitelného člověkem.

Výše uvedený příklad nejprve začíná kontrolou souboru JSON pro událost a poté kontrolou této události pomocí příkazu case, aby se zjistilo, o jaký typ události se jedná, v tomto případě odbočení pomocí snímače IMU. Jakmile je možné zjistit, že je na řadě událost IMU, pak se zabývá zpracováním události, která obvykle zahrnuje spuštění kódu, ze kterého událost pochází, pomocí proměnných z události předaných k replikaci události, která byla provedena dříve.

Doporučuje: