Turinys:

Įvykiais pagrįstas programavimas FTC: 4 žingsniai
Įvykiais pagrįstas programavimas FTC: 4 žingsniai

Video: Įvykiais pagrįstas programavimas FTC: 4 žingsniai

Video: Įvykiais pagrįstas programavimas FTC: 4 žingsniai
Video: JavaScript testavimas: vardo ir email validavimas TDD būdu (test driven development) - 28 grupė (57) 2024, Lapkritis
Anonim
Įvykiais pagrįstas programavimas FTC
Įvykiais pagrįstas programavimas FTC

Šiais metais mūsų komanda nuveikė daug darbo kurdama įvykius pagrįstą mūsų roboto programinę įrangą. Šios programos leido komandai tiksliai sukurti autonomines programas ir net pakartotinius tele-op renginius. Kadangi programinės įrangos darbas, kurio reikia, yra sudėtingas, nusprendėme pasidalyti žiniomis, kurias įgijome kurdami įvykiu pagrįstą kodą FTC robotams.

1 žingsnis: kas yra įvykiu pagrįstas programavimas?

Apskritai, įvykiu pagrįstas programavimas, anot „Techopedia“, yra programų, kurios reaguoja į vartotojo įvestį, kūrimas. Šia prasme daugelis programų yra laikomos įvykiu, įskaitant komandos tele-op programą, kuri, remdamasi žmogaus valdytojo įnašais, atlieka bet kokį veiksmą. Tačiau kalbant apie darbą, kurį atliko mūsų komanda, į renginius orientuotas programavimas yra programinės įrangos kūrimas iš įvairių įėjimų; Kitaip tariant, mes dokumentuojame įvykius, remdamiesi valdiklių ir jutiklių įvestimis, tada galime sudaryti eilę prie šių įvykių ir naudoti failą pakartotinai įrašytam įvykiui paleisti.

Šis mūsų robotui skirtų programų kūrimo metodas turi keletą privalumų:

  • Tai leidžia mums sukurti tikslias autonomines programas. Kadangi mes rengiame programinę įrangą realiuoju laiku, kai vyksta įvykis, surinktos ir naudojamos jutiklių vertės bus labai tikslios, nes jos gaunamos tiesiogiai iš pradinio įvykio.
  • Tai leidžia greitai sukurti autonomines programas. Sukurti autonomines programas yra taip paprasta, kaip įrašyti įvykių seriją ir prireikus koreguoti įvykį.
  • Tai leidžia mums sukurti automatinius tele-op procesus. Dėl pakartotinių veiksmų nuotolinio valdymo sistemoje, įvykiais pagrįstas programavimas leidžia mums įrašyti šiuos veiksmus ir priskirti įvykį mygtukui vairuotojo kontroliuojamų rungtynių metu. Šiuos automatizuotus įvykius gali paveikti jutikliai, kad būtų galima juos tiksliai įvykdyti.

2 žingsnis: Įvykiais pagrįsto programavimo loginis srautas

Įvykiais pagrįsto programavimo loginis srautas
Įvykiais pagrįsto programavimo loginis srautas

Toliau pavaizduota logiška įvykio pagrindu vykdomos programos eiga: raudona-įvykio sukūrimas, o mėlyna-įvykio iškvietimas. Kuriant įvykį, roboto veiksmuose įvedama įvesties seka ir įrašoma kaip įvykiai; šie įvykiai įrašomi į failą. Skambinant įvykiui tas failas nuskaitomas ir įvestys siunčiamos įvykių procesoriui, kad failo kodas taptų roboto veiksmu.

3 žingsnis: įvykių kūrėjas

Renginio kūrėjas
Renginio kūrėjas
Renginio kūrėjas
Renginio kūrėjas

Įvykių kūrėjai naudojami dokumentuoti veiksmus ar „įvykius“, remiantis įvairiais jutikliais ir mygtukais. Kai robotas atlieka veiksmus lauke, įvykių kūrėjų klasė kiekvienam iš šių veiksmų lygiagrečiai sukuria įvykius, remdamasi įvykių klasei priskirtu įvykiu. Sukūrus įvykį, jis įtraukiamas į įvykių eilę įvykių klasėje: pirmasis įvykis užima aukščiausią vietą, tada antrasis įvykis užima aukščiausią vietą ir nuspaudžia visus po juo vykstančius įvykius, ir tai tęsiasi tol, kol programa sustoja. Kai programa sustabdoma, įvykiai pereina į žmogaus skaitomo formato failą, pvz., JSON failą. Šis failas gali būti naudojamas siekiant pagerinti autonomines procedūras.

Aukščiau pateiktas pavyzdinis kodas nustato įvykio parametrus, kurie šiuo atveju yra posūkis naudojant IMU jutiklį. Tada mes įterpiame įvykį į įvykių eilę. Galiausiai sutrumpiname įvykį, kuris iš esmės iš naujo nustato įvykį, kad galėtume jį naudoti eilėje būsimiems įvykiams.

4 žingsnis: įvykių procesorius

Renginių procesorius
Renginių procesorius
Renginių procesorius
Renginių procesorius

Įvykių klasės ima žmonių skaitomą failą, sukurtą įvykių kūrėjo klasėje, ir daro viską, ką liepia kiekvienas eilėje esantis įvykis, iškviesdamas metodus, aprašytus įvykių procesoriaus klasėje. Tada įvykių procesoriaus klasė nurodo robotui, kokį įvykį pakartoti. Nesvarbu, ar tai būtų paprastas „vairavimo į priekį“įvykis, ar sudėtingas įvykis, kupinas atstumų, posūkių ir juostų, procesorius pakartos bet kokį jam suteiktą įvykį. Šis procesas yra labai naudingas autonominio režimo metu, nes komanda gali įrašyti jutiklius ir „Tele-Op“veiksmus prieš suderindama, tada tiesiog pakartoti įvykius autonomiškai. Šis procesas vadinamas atminties atkūrimu. Tai leidžia 100% konfigūruoti autonominę programą per vieną failą. Nustačius įvykių kūrėją ir procesorių, komanda gali tiesiog pakeisti savarankišką tvarką per žmogaus skaitomą failą.

Anksčiau pateiktas pavyzdys pirmiausia pradedamas tikrinant įvykio JSON failą, o paskui tikrinant tą įvykį naudojant atvejo teiginį, kad pamatytumėte, koks tai įvykis, šiuo atveju - posūkis naudojant IMU jutiklį. Kai jis gali pasakyti, kad tai posūkis naudojant IMU įvykį, tada jis nagrinėja įvykio apdorojimą, kuris paprastai apima kodo, kurio įvykis kilo iš įvykio, paleidimą naudojant įvykio kintamuosius, perduotus pakartoti įvykį, kuris buvo padarytas anksčiau.

Rekomenduojamas: