Sadržaj:

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

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

Video: Programiranje na temelju događaja u FTC-u: 4 koraka
Video: REVAN - THE COMPLETE STORY 2024, Studeni
Anonim
Programiranje na temelju događaja u FTC-u
Programiranje na temelju događaja u FTC-u

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

Korak 1: Što je programiranje na temelju događaja?

Općenito govoreći, programiranje na temelju događaja, prema Techopedia, razvoj je programa koji reagiraju na unos korisnika. U tom smislu, mnogi se programi smatraju upravljanima događajima, uključujući i teleoperacijski program tima, koji se oslanja na unose upravljačkog sklopa za provođenje bilo koje radnje. Međutim, u smislu posla koji je radio naš tim, programiranje zasnovano na događajima odnosi se na stvaranje softvera iz različitih ulaza; drugim riječima, dokumentiramo događaje na temelju ulaza kontrolera i senzora, a zatim te događaje možemo staviti u red i upotrijebiti datoteku za ponavljanje snimljenog događaja.

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

  • Omogućuje nam stvaranje točnih autonomnih programa. Budući da stvaramo softver u stvarnom vremenu tijekom trajanja 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 na temelju događaja omogućuje nam snimanje ovih radnji i dodjeljivanje događaja gumbu tijekom razdoblja utakmica koje kontrolira vozač. Senzori mogu utjecati na ove automatizirane događaje kako bi se omogućilo njihovo točno izvršavanje.

Korak 2: Logički tijek programiranja na temelju događaja

Logički tijek programiranja na temelju događaja
Logički tijek programiranja na temelju događaja

Slijedi prikaz logičkog tijeka programa vođenog događajem: crvena prikazuje stvaranje događaja, a plava prikazuje poziv događaja. Za stvaranje 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 u procesor događaja kako bi kod datoteke pretvorili u radnju robota.

Korak 3: Stvoritelj događaja

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

Kreatori događaja koriste se za dokumentiranje radnji ili "događaja" na temelju različitih senzora i gumba. Dok robot izvršava radnje na terenu, klasa kreatora događaja paralelno stvara događaje za svaku od tih radnji, pozivajući se na događaj razvrstan 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. Kad se program zaustavi, događaji izlaze u datoteku formata čitljivu za čovjeka, poput JSON datoteke. Ova se datoteka može koristiti za bolje poboljšanje autonomnih rutina.

Gornji primjer koda postavlja parametre za događaj, koji je u ovom slučaju zavoj pomoću IMU osjetnika. Zatim stavljamo događaj u red događaja u red događaja. Konačno, skraćujemo događaj, što u biti 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 čitljivu za čovjeka proizvedenu u klasi kreatora događaja i čine 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 "vozi 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 je postupak vrlo koristan tijekom autonomnog procesa, jer tim može snimiti senzore i akcije Tele-Op-a prije nego što se podudaraju, a zatim jednostavno ponoviti događaje u autonomnom. Taj se proces naziva Memory Replay. To omogućuje da se autonomni program 100% konfigurira kroz jednu datoteku. Nakon što se uspostavi kreator i procesor događaja, tim jednostavno može 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 o zavoju pomoću IMU osjetnika. 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 iz kojeg je događaj došao korištenjem varijabli iz događaja, proslijeđenog za replikaciju događaja koji je već učinjen.

Preporučeni: