Sisällysluettelo:

Tapahtumapohjainen ohjelmointi FTC: ssä: 4 vaihetta
Tapahtumapohjainen ohjelmointi FTC: ssä: 4 vaihetta

Video: Tapahtumapohjainen ohjelmointi FTC: ssä: 4 vaihetta

Video: Tapahtumapohjainen ohjelmointi FTC: ssä: 4 vaihetta
Video: Событийно-ориентированное программирование 2024, Marraskuu
Anonim
Tapahtumapohjainen ohjelmointi FTC: ssä
Tapahtumapohjainen ohjelmointi FTC: ssä

Tänä vuonna tiimimme on tehnyt paljon työtä tapahtumapohjaisen ohjelmistokehityksen kanssa robotillemme. Nämä ohjelmat ovat antaneet tiimille mahdollisuuden kehittää tarkasti itsenäisiä ohjelmia ja jopa toistettavia teletapahtumia. Koska sen vaatima ohjelmistotyö on monimutkaista, päätimme jakaa tietämyksemme, jonka olemme saaneet tapahtumapohjaisen koodin kehittämisestä FTC-roboteille.

Vaihe 1: Mikä on tapahtumapohjainen ohjelmointi?

Yleisesti ottaen tapahtumapohjainen ohjelmointi on Techopedian mukaan käyttäjien syötteisiin vastaavien ohjelmien kehittämistä. Tässä mielessä monia ohjelmia pidetään tapahtumapohjaisina, mukaan lukien tiimin tele-ohjelma, joka perustuu ihmisen ohjaaman ohjaimen panokseen minkä tahansa toiminnon suorittamiseen. Tiimimme tekemän työn kannalta tapahtumapohjainen ohjelmointi on kuitenkin ohjelmiston luomista eri panoksista; Toisin sanoen, me dokumentoimme tapahtumia ohjainten ja antureiden tulojen perusteella, sitten voimme asettaa nämä tapahtumat jonoon ja käyttää tiedostoa tallennetun tapahtuman suorittamiseen uudelleen.

Tällä menetelmällä ohjelmien kehittämiseksi robotillemme on useita etuja:

  • Sen avulla voimme luoda tarkkoja itsenäisiä ohjelmia. Koska luomme ohjelmiston reaaliajassa tapahtuman aikana, kerätyt ja käytetyt anturiarvot ovat erittäin tarkkoja, koska ne tulevat suoraan alkuperäisestä tapahtumasta.
  • Sen avulla voimme luoda itsenäisiä ohjelmia nopeasti. Itsenäisten ohjelmien tekeminen on yhtä helppoa kuin tapahtumasarjan tallentaminen ja tapahtuman säätäminen tarpeen mukaan.
  • Sen avulla voimme luoda automaattisia prosesseja teleoperaatioon. Toistuvissa toiminnoissa teleopissa tapahtumapohjaisen ohjelmoinnin avulla voimme tallentaa nämä toiminnot ja määrittää tapahtuman painikkeelle kuljettajan ohjaamien otteluiden aikana. Anturit voivat vaikuttaa näihin automaattisiin tapahtumiin niiden tarkan suorittamisen mahdollistamiseksi.

Vaihe 2: Tapahtumapohjaisen ohjelmoinnin logiikka

Tapahtumapohjaisen ohjelmoinnin logiikka
Tapahtumapohjaisen ohjelmoinnin logiikka

Seuraava kuvaa tapahtumapohjaisen ohjelman loogista kulkua: punainen kuvaa tapahtuman luomista ja sininen kuvaa tapahtuman kutsumista. Tapahtuman luomiseksi syötesarja otetaan robottitoiminnalla ja tallennetaan tapahtumiksi; nämä tapahtumat kirjoitetaan tiedostoon. Tapahtuman kutsumista varten kyseinen tiedosto luetaan ja syötteet lähetetään tapahtumaprosessorille, jotta tiedoston koodi muutetaan robotin toimintaksi.

Vaihe 3: Tapahtuman luoja

Tapahtuman luoja
Tapahtuman luoja
Tapahtuman luoja
Tapahtuman luoja

Tapahtumien luojat dokumentoivat toimintoja tai tapahtumia erilaisten antureiden ja painikkeiden perusteella. Kun robotti suorittaa toimia kentällä, tapahtumien luojaluokka luo tapahtumia kullekin toiminnolle rinnakkain viitaten tapahtumaluokkaan luokiteltuun tapahtumaan. Luomisen jälkeen tapahtuma asetetaan tapahtumaluokan tapahtumajonoon: ensimmäinen tapahtuma ottaa kärkipaikan, sitten toinen tapahtuma ykköspisteen ja työntää alas kaikki tapahtumat, ja tämä jatkuu, kunnes ohjelma pysähtyy. Kun ohjelma pysäytetään, tapahtumat siirtyvät ihmisen luettavaan muotoon, kuten JSON-tiedostoon. Tätä tiedostoa voidaan käyttää parantamaan itsenäisiä rutiineja paremmin.

Yllä olevassa esimerkkikoodissa asetetaan parametrit tapahtumalle, joka tässä tapauksessa on kierros käyttäen IMU -anturia. Järjestämme tapahtuman sitten tapahtumajonoon. Lopuksi lyhennämme tapahtuman, joka nollaa tapahtuman, jotta voimme käyttää sitä tulevien tapahtumien jonottamiseen.

Vaihe 4: Tapahtumaprosessori

Tapahtumien prosessori
Tapahtumien prosessori
Tapahtumien prosessori
Tapahtumien prosessori

Tapahtumaluokat ottavat tapahtumien luojaluokassa tuotetun ihmisen luettavan tiedoston ja tekevät mitä tahansa jokainen jonossa oleva tapahtuma määrää sen kutsumalla tapahtumaprosessoriluokassa kuvattuja menetelmiä. Tapahtumaprosessoriluokka kertoo robotille, mikä tapahtuma toistetaan. Olipa kyseessä yksinkertainen "ajaa eteenpäin" -tapahtuma tai monimutkainen tapahtuma, joka on täynnä etäisyyksiä, käännöksiä ja hihnoja, prosessori toistaa kaikki sille annetut tapahtumat. Tämä prosessi on erittäin hyödyllinen autonomisen aikana, koska joukkue voi tallentaa antureita ja Tele-Op-toimintoja ennen ottelua, ja sitten yksinkertaisesti toistaa tapahtumat itsenäisesti. Tätä prosessia kutsutaan muistin toistamiseksi. Tämä mahdollistaa itsenäisen ohjelman 100 -prosenttisesti konfiguroitavan yhden tiedoston kautta. Kun tapahtuman luoja ja prosessori on muodostettu, tiimi voi yksinkertaisesti muuttaa itsenäisiä rutiineja ihmisen luettavan tiedoston kautta.

Yllä oleva esimerkki alkaa ensin tarkistamalla JSON -tiedosto tapahtuman varalta ja sitten tarkistamalla tapahtuma tapauslausuman avulla nähdäksesi, millainen tapahtuma on kyseessä, tässä tapauksessa kierros IMU -anturia käyttäen. Kun se voi kertoa, että se on vuoropuhelu IMU -tapahtuman avulla, se käsittelee sitten tapahtuman käsittelyä, joka yleensä sisältää koodin suorittamisen, jonka tapahtuma on peräisin käyttämällä tapahtuman muuttujia, jotka on syötetty toistamaan aiemmin tehty tapahtuma.

Suositeltava: