Sadržaj:

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

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

Video: Programiranje na osnovu događaja u FTC-u: 4 koraka
Video: REVAN - THE COMPLETE STORY 2024, Decembar
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.

Preporučuje se: