Tartalomjegyzék:

Eseményvezérelt programozás az FTC-ben: 4 lépés
Eseményvezérelt programozás az FTC-ben: 4 lépés

Videó: Eseményvezérelt programozás az FTC-ben: 4 lépés

Videó: Eseményvezérelt programozás az FTC-ben: 4 lépés
Videó: Kiderült: Így keresi a pénzét PSGOgli7 2024, November
Anonim
Eseményvezérelt programozás az FTC-ben
Eseményvezérelt programozás az FTC-ben

Ebben az évben csapatunk nagy munkát végzett az eseményvezérelt szoftverfejlesztéssel robotunk számára. Ezek a programok lehetővé tették a csapat számára, hogy pontosan fejlesszék az autonóm programokat, és akár megismételhető távközlési eseményeket is. Mivel az általa megkövetelt szoftveres munka összetett, úgy döntöttünk, hogy megosztjuk az FTC robotok eseményvezérelt kódjának fejlesztésével kapcsolatos ismereteinket.

1. lépés: Mi az eseményvezérelt programozás?

Általánosságban elmondható, hogy az eseményvezérelt programozás a Techopedia szerint olyan programok kifejlesztése, amelyek reagálnak a felhasználói adatokra. Ebben az értelemben sok program eseményvezéreltnek tekinthető, köztük egy csapat távműveleti programja is, amely egy emberi irányítású vezérlő adataira támaszkodva hajt végre bármilyen műveletet. A csapatunk által végzett munka szempontjából azonban az eseményvezérelt programozás a különböző inputokból származó szoftverek létrehozásáról szól; Más szóval, a vezérlők és az érzékelők bemenetei alapján dokumentáljuk az eseményeket, majd sorba állíthatjuk ezeket az eseményeket, és a fájl segítségével újra futtathatjuk a rögzített eseményt.

Ez a módszer a robotjaink programjainak fejlesztésére számos előnnyel jár:

  • Lehetővé teszi számunkra, hogy pontos autonóm programokat készítsünk. Mivel a szoftvert valós időben készítjük az esemény alatt, az összegyűjtött és használt érzékelőértékek nagyon pontosak lesznek, mivel közvetlenül az eredeti eseményből származnak.
  • Lehetővé teszi, hogy gyorsan autonóm programokat hozzunk létre. Az autonóm programok készítése olyan egyszerű, mint eseménysorozat rögzítése és az esemény szükség szerinti beállítása.
  • Lehetővé teszi számunkra, hogy automatikus folyamatokat hozzunk létre a tele-opcióhoz. A tele-op ismételt műveletei esetén az eseményvezérelt programozás lehetővé teszi számunkra, hogy rögzítsük ezeket a műveleteket, és hozzárendeljük az eseményt egy gombhoz a vezető által ellenőrzött mérkőzések alatt. Ezeket az automatizált eseményeket érzékelők befolyásolhatják, hogy lehetővé tegyék azok pontos végrehajtását.

2. lépés: Az eseményvezérelt programozás logikai folyamata

Eseményvezérelt programozás logikai folyamata
Eseményvezérelt programozás logikai folyamata

Az alábbiakban egy eseményvezérelt program logikai folyamatát mutatjuk be: a piros egy esemény létrehozását, a kék pedig az esemény meghívását. Egy esemény létrehozásához egy bemeneti sorozatot vesz fel a robot akciója, és eseményként rögzíti; ezeket az eseményeket fájlba írják. Eseményhíváshoz ezt a fájlt olvassák, és a bemeneteket elküldik egy eseményfeldolgozónak, hogy a fájlkódot robotműveletre változtassa.

3. lépés: Eseménykészítő

Eseményteremtő
Eseményteremtő
Eseményteremtő
Eseményteremtő

Az eseményalkotókat különféle érzékelők és gombok alapján dokumentálják a műveletek vagy események dokumentálására. Miközben a robot műveleteket végez a terepen, egy eseményalkotó osztály mindegyik művelethez párhuzamosan eseményeket hoz létre, hivatkozva az eseményosztályba sorolt eseményekre. Létrehozása után az esemény az eseményosztály eseménysorába kerül: az első esemény az első helyet foglalja el, majd a második esemény az első helyet, és lenyomja az alatta lévő eseményeket, és ez addig folytatódik, amíg a program le nem áll. A program leállításakor az események ember által olvasható formátumú fájlba mennek, például JSON fájlba. Ez a fájl használható az autonóm rutinok javítására.

A fenti példakód az esemény paramétereit állítja be, amely ebben az esetben az IMU -érzékelőt használó fordulat. Ezután sorba állítjuk az eseményt az eseménysorba. Végül csonkoljuk az eseményt, ami lényegében visszaállítja az eseményt, hogy felhasználhassuk a jövőbeli események sorba állításához.

4. lépés: Eseményfeldolgozó

Eseményfeldolgozó
Eseményfeldolgozó
Eseményfeldolgozó
Eseményfeldolgozó

Az eseményosztályok az eseményalkotó osztályban előállított, ember által olvasható fájlt veszik fel, és az eseményfeldolgozó osztályban felvázolt metódusok meghívásával mindent megtesznek, amit az egyes sorba állított események kérnek. Az eseményfeldolgozó osztály ezután megmondja a robotnak, hogy milyen eseményt kell lejátszani. Legyen szó egyszerű "előrehajtás" eseményről, vagy összetett eseményről, tele távolságokkal, fordulatokkal és pántokkal, a processzor minden adott eseményt visszajátsz. Ez a folyamat nagyon hasznos az autonóm működés során, mivel egy csapat rögzítheti az érzékelőket és a Tele-Op műveleteket, mielőtt összeegyeztetné őket, majd egyszerűen újra lejátszhatja az eseményeket autonóm módon. Ezt a folyamatot Memory Replay -nek hívják. Ez lehetővé teszi, hogy egy autonóm program 100% -ban konfigurálható legyen egyetlen fájlon keresztül. Az esemény létrehozójának és feldolgozójának létrehozása után a csapat egyszerűen megváltoztathatja az autonóm rutinokat az ember által olvasható fájlon keresztül.

A fenti példa először azzal kezdődik, hogy ellenőrzi a JSON -fájlt egy eseményre, majd egy eset -utasítás segítségével ellenőrzi az eseményt, hogy megtudja, milyen eseményről van szó, ebben az esetben az IMU -érzékelő segítségével. Miután meg tudja állapítani, hogy ez egy fordulat az IMU -esemény használatával, akkor az esemény feldolgozásával foglalkozik, amely általában magában foglalja a kód futtatását, amelyből az esemény az esemény változóinak felhasználásával származik, és amelyet azelőtt megismételt.

Ajánlott: