Satura rādītājs:

Notikumu vadīta programmēšana FTC: 4 soļi
Notikumu vadīta programmēšana FTC: 4 soļi

Video: Notikumu vadīta programmēšana FTC: 4 soļi

Video: Notikumu vadīta programmēšana FTC: 4 soļi
Video: Kā iemācīties programmēt (un kļūt par programmētāju)? 2024, Novembris
Anonim
Notikumu vadīta programmēšana FTC
Notikumu vadīta programmēšana FTC

Šogad mūsu komanda ir paveikusi lielu darbu, lai mūsu robotam izstrādātu uz notikumiem balstītu programmatūru. Šīs programmas ir ļāvušas komandai precīzi izstrādāt autonomas programmas un pat atkārtotus tele-op pasākumus. Tā kā programmatūras darbs, ko tas prasa, ir sarežģīts, mēs nolēmām dalīties zināšanās, ko esam ieguvuši, izstrādājot notikumu vadītu kodu FTC robotiem.

1. darbība. Kas ir notikumu vadīta programmēšana?

Vispārīgi runājot, notikumu vadīta programmēšana, saskaņā ar Techopedia, ir tādu programmu izstrāde, kas reaģē uz lietotāju ievadi. Šajā ziņā daudzas programmas tiek uzskatītas par notikumu vadītām, ieskaitot komandas tele-op programmu, kas jebkuras darbības veikšanai paļaujas uz cilvēka vadīta kontroliera ieguldījumu. Tomēr, ņemot vērā mūsu komandas darbu, notikumu vadīta programmēšana ir saistīta ar programmatūras izveidi no dažādiem ievadiem; citiem vārdiem sakot, mēs dokumentējam notikumus, pamatojoties uz kontrolieru un sensoru ievadi, pēc tam mēs varam ievietot šos notikumus rindā un izmantot failu, lai atkārtotu ierakstīto notikumu.

Šai programmu izstrādei mūsu robotam ir vairākas priekšrocības:

  • Tas ļauj mums izveidot precīzas autonomas programmas. Tā kā notikuma laikā mēs veidojam programmatūru reāllaikā, apkopotās un izmantotās sensora vērtības būs ļoti precīzas, jo tās nāk tieši no sākotnējā notikuma.
  • Tas ļauj ātri izveidot autonomas programmas. Autonomu programmu veidošana ir tikpat vienkārša kā notikumu sērijas ierakstīšana un notikuma pielāgošana pēc nepieciešamības.
  • Tas ļauj mums izveidot automātiskus procesus tele-op. Atkārtotām darbībām tele-op, notikumu vadīta programmēšana ļauj mums ierakstīt šīs darbības un piešķirt notikumu pogai vadītāja kontrolēto spēļu laikā. Šos automatizētos notikumus var ietekmēt sensori, lai tos varētu precīzi izpildīt.

2. darbība. Notikumu vadītas programmēšanas loģiskā plūsma

Notikumu vadītas programmēšanas loģiskā plūsma
Notikumu vadītas programmēšanas loģiskā plūsma

Tālāk ir attēlota notikumu vadītas programmas loģiskā plūsma: sarkans attēlo notikuma izveidi, bet zils-pasākuma izsaukumu. Lai izveidotu notikumu, ievades secība tiek uzņemta, izmantojot robotu darbību, un tiek reģistrēta kā notikumi; šie notikumi tiek ierakstīti failā. Lai izsauktu notikumu, šis fails tiek nolasīts un ievade tiek nosūtīta notikumu procesorim, lai faila kodu pārvērstu robota darbībā.

3. darbība: notikumu veidotājs

Pasākuma veidotājs
Pasākuma veidotājs
Pasākuma veidotājs
Pasākuma veidotājs

Notikumu veidotāji tiek izmantoti, lai dokumentētu darbības vai “notikumus”, pamatojoties uz dažādiem sensoriem un pogām. Kamēr robots veic darbības uz lauka, notikumu veidotāju klase paralēli veido notikumus katrai no šīm darbībām, atsaucoties uz notikumu klasē klasificēto notikumu. Pēc izveidošanas pasākums tiek ievietots notikumu rindā notikumu klasē: pirmais notikums ieņem augstāko vietu, tad otrais notikums ieņem augstāko vietu un nospiež visus notikumus zem tā, un tas turpinās, līdz programma apstājas. Kad programma tiek apturēta, notikumi tiek nodoti cilvēkam lasāmā formāta failā, piemēram, JSON failā. Šo failu var izmantot, lai labāk uzlabotu autonomās darbības.

Iepriekš minētais piemēra kods nosaka notikuma parametrus, kas šajā gadījumā ir pagrieziens, izmantojot IMU sensoru. Pēc tam mēs rindojam notikumu notikumu rindā. Visbeidzot, mēs saīsinām notikumu, kas būtībā atiestata notikumu, lai mēs varētu to izmantot, lai ierindotu turpmākos notikumus.

4. darbība. Notikumu procesors

Pasākumu procesors
Pasākumu procesors
Pasākumu procesors
Pasākumu procesors

Pasākumu klases ņem cilvēkam lasāmu failu, kas izveidots notikumu veidotāju klasē, un dara visu, ko katrs rindā esošais notikums liek, lai to izdarītu, izsaucot notikumu procesora klasē izklāstītās metodes. Pēc tam notikumu procesora klase robotam paziņo, kādu notikumu atkārtot. Neatkarīgi no tā, vai tas ir vienkāršs “brauc uz priekšu” notikums vai sarežģīts notikums, kas ir pilns ar attālumiem, pagriezieniem un stieņiem, procesors atskaņos jebkuru tam piešķirto notikumu. Šis process ir ļoti noderīgs autonomajā režīmā, jo komanda var ierakstīt sensorus un Tele-Op darbības pirms saskaņošanas, pēc tam vienkārši atkārtot notikumus autonomā režīmā. Šo procesu sauc par atmiņas atkārtošanu. Tas ļauj 100% konfigurēt autonomu programmu, izmantojot vienu failu. Kad notikumu veidotājs un apstrādātājs ir izveidots, komanda var vienkārši mainīt autonomas rutīnas, izmantojot cilvēkam lasāmu failu.

Iepriekš minētais piemērs vispirms sākas, pārbaudot notikuma JSON failu un pēc tam pārbaudot šo notikumu, izmantojot gadījuma paziņojumu, lai noskaidrotu, kāda veida notikums tas ir, šajā gadījumā pagrieziens, izmantojot IMU sensoru. Kad tas var noteikt, ka tas ir pagrieziens, izmantojot IMU notikumu, tas nodarbojas ar notikuma apstrādi, kas parasti ietver tā koda palaišanu, kas notikumam radies, izmantojot notikuma mainīgos, kas tika nodoti, lai atkārtotu iepriekš veikto notikumu.

Ieteicams: