Programiranje na osnovu događaja u FTC-u: 4 koraka
Programiranje na osnovu događaja u FTC-u: 4 koraka
Anonim
Programiranje na osnovu događaja u FTC-u
Programiranje na osnovu događaja u FTC-u

Ove godine, naš tim je obavio veliki posao s razvojem softvera za našeg robota upravljanog događajima. Ovi programi su omogućili timu da precizno razvije autonomne programe, pa čak i ponavljajuće tele-op događaje. Kako je rad na softveru koji zahtijeva složen, odlučili smo podijeliti znanje koje smo stekli o razvoju koda za FTC robote koji se zasniva na događajima.

Korak 1: Šta je programiranje zasnovano na događajima?

Uopšteno govoreći, programiranje zasnovano na događajima, prema Techopedia, je razvoj programa koji reaguju na unos korisnika. U tom smislu, mnogi programi se smatraju upravljanim događajima, uključujući i tele-op program tima, koji se oslanja na ulazne podatke upravljača koje vodi čovjek za provođenje bilo koje radnje. Međutim, u smislu posla koji je naš tim obavljao, programiranje zasnovano na događajima odnosi se na stvaranje softvera iz različitih ulaza; drugim riječima, dokumentujemo događaje na osnovu ulaza kontrolera i senzora, zatim možemo te događaje staviti u red i koristiti datoteku za ponavljanje snimljenog događaja.

Ova metoda razvoja programa za našeg robota ima nekoliko prednosti:

  • Omogućuje nam stvaranje preciznih autonomnih programa. Budući da softver stvaramo u stvarnom vremenu dok smo u toku događaja, prikupljene i korištene vrijednosti senzora bit će vrlo točne jer dolaze izravno iz izvornog događaja.
  • Omogućuje nam brzo stvaranje autonomnih programa. Izrada autonomnih programa jednostavno je kao snimanje niza događaja i prilagođavanje događaja prema potrebi.
  • Omogućuje nam stvaranje automatskih procesa za tele-op. Za ponovljene radnje u teleoperaciji, programiranje zasnovano na događajima omogućava nam snimanje ovih radnji i dodjeljivanje događaja dugmetu tokom perioda utakmica koje kontroliše vozač. Senzori mogu utjecati na ove automatizirane događaje kako bi se omogućilo njihovo točno izvršavanje.

Korak 2: Logički tok programiranja zasnovanog na događajima

Logički tok programiranja zasnovanog na događajima
Logički tok programiranja zasnovanog na događajima

Sledeće prikazuje logički tok programa vođenog događajem: crvena prikazuje kreiranje događaja, a plava prikazuje pozivanje događaja. Za kreiranje događaja, niz unosa se uzima kroz radnju robota i bilježi kao događaji; ti se događaji zapisuju u datoteku. Za pozivanje događaja ta se datoteka čita, a ulazi se šalju procesoru događaja kako bi kod datoteke pretvorili u robotsku akciju.

Korak 3: Kreator događaja

Kreator događaja
Kreator događaja
Kreator događaja
Kreator događaja

Kreatori događaja koriste se za dokumentovanje radnji ili „događaja“na osnovu različitih senzora i dugmadi. Dok robot vrši radnje na terenu, klasa kreatora događaja paralelno stvara događaje za svaku od tih radnji, pozivajući se na događaj klasifikovan u klasu događaja. Nakon stvaranja, događaj se stavlja u red događaja u klasi događaja: prvi događaj zauzima prvo mjesto, zatim drugi događaj zauzima prvo mjesto i gura sve događaje ispod njega, a to se nastavlja sve dok se program ne zaustavi. Kada se program zaustavi, događaji izlaze u datoteku formata čitljivu za čovjeka, poput JSON datoteke. Ova datoteka se može koristiti za bolje poboljšanje autonomnih rutina.

Gornji primjer koda postavlja parametre događaja, koji je u ovom slučaju okret pomoću IMU senzora. Zatim stavimo događaj u red događaja u red događaja. Konačno, skraćujemo događaj, koji u suštini poništava događaj tako da ga možemo koristiti za stavljanje budućih događaja u red.

Korak 4: Procesor događaja

Procesor događaja
Procesor događaja
Procesor događaja
Procesor događaja

Klase događaja uzimaju datoteku koju može čitati čovjek proizvedenu u klasi kreatora događaja i čini sve što joj svaki događaj u redu kaže da učini pozivajući metode navedene u klasi procesora događaja. Klasa procesora događaja tada govori robotu koji događaj treba ponoviti. Bilo da se radi o jednostavnom događaju "vožnja naprijed" ili o složenom događaju punom udaljenosti, zavoja i poteškoća, procesor će ponoviti svaki događaj koji mu je dan. Ovaj proces je vrlo koristan za vrijeme autonomije, jer tim može snimiti senzore i radnje Tele-Op-a prije nego što se podudaraju, a zatim jednostavno ponoviti događaje u autonomnom režimu. Ovaj proces se naziva Reprodukcija memorije. Ovo omogućava da se autonomni program 100% konfigurira kroz jednu datoteku. Nakon što se kreira kreator i procesor događaja, tim može jednostavno promijeniti autonomne rutine kroz datoteku čitljivu za ljude.

Gornji primjer prvo započinje provjerom JSON datoteke za događaj, a zatim provjerom tog događaja pomoću izraza slučaja da se vidi o kakvom se događaju radi, u ovom slučaju skretanjem pomoću IMU senzora. Nakon što može reći da je riječ o zaokretu pomoću IMU događaja, tada se bavi obradom događaja, što obično uključuje pokretanje koda koji je događaj došao pomoću varijabli iz događaja, proslijeđenih za replikaciju događaja koji je već učinjen.