Kazalo:

Programiranje na podlagi dogodkov v FTC: 4 koraki
Programiranje na podlagi dogodkov v FTC: 4 koraki

Video: Programiranje na podlagi dogodkov v FTC: 4 koraki

Video: Programiranje na podlagi dogodkov v FTC: 4 koraki
Video: Встреча №2-24.04.2022 | Диалог и ориентация членов команды Е... 2024, November
Anonim
Programiranje na podlagi dogodkov v FTC
Programiranje na podlagi dogodkov v FTC

Letos je naša ekipa opravila veliko dela pri razvoju programske opreme za našega robota, ki temelji na dogodkih. Ti programi so skupini omogočili natančen razvoj avtonomnih programov in celo ponavljajočih se teleoperacijskih dogodkov. Ker je delo programske opreme, ki ga zahteva, zapleteno, smo se odločili deliti znanje, ki smo ga pridobili pri razvoju kode za robote FTC, ki temelji na dogodkih.

1. korak: Kaj je programiranje na podlagi dogodkov?

Na splošno je programiranje, ki temelji na dogodkih, po Techopediji razvoj programov, ki se odzivajo na vnos uporabnikov. V tem smislu mnogi programi veljajo za dogodke, vključno s teleoperativnim programom ekipe, ki za izvedbo kakršnih koli dejanj opira na vložke krmilnika, ki ga upravlja človek. Kar zadeva delo, ki ga opravlja naša ekipa, pri programiranju na podlagi dogodkov gre za ustvarjanje programske opreme iz različnih vhodnih podatkov; z drugimi besedami, dokumentiramo dogodke na podlagi vhodov krmilnikov in senzorjev, nato pa lahko te dogodke postavimo v čakalno vrsto in uporabimo datoteko za ponovni zagon posnetega dogodka.

Ta način razvoja programov za našega robota ima več prednosti:

  • Omogoča nam ustvarjanje natančnih avtonomnih programov. Ker programsko opremo ustvarjamo v realnem času med dogajanjem, bodo zbrane in uporabljene vrednosti senzorjev zelo natančne, saj prihajajo neposredno iz prvotnega dogodka.
  • Omogoča nam hitro ustvarjanje avtonomnih programov. Izdelava avtonomnih programov je tako preprosta, kot da posnamete vrsto dogodkov in po potrebi prilagodite dogodek.
  • Omogoča nam ustvarjanje samodejnih procesov za tele-op. Za ponavljajoča se dejanja v teleoperaciji nam programiranje na podlagi dogodkov omogoča snemanje teh dejanj in dodelitev dogodka gumbu med obdobji tekem, ki jih nadzira voznik. Senzorji lahko vplivajo na te avtomatizirane dogodke, kar omogoča njihovo natančno izvedbo.

2. korak: Logični tok programiranja, ki temelji na dogodkih

Logični tok programiranja, ki temelji na dogodkih
Logični tok programiranja, ki temelji na dogodkih

V nadaljevanju je prikazan logični tok dogodkov usmerjenega programa: rdeča prikazuje ustvarjanje dogodka, modra pa klic dogodka. Za ustvarjanje dogodka se zaporedje vnosov vnese z robotovim dejanjem in zabeleži kot dogodke; ti dogodki so zapisani v datoteko. Za klic dogodka se ta datoteka prebere, vhodi pa se pošljejo v procesor dogodkov, da kodo datoteke spremenijo v dejanje robota.

3. korak: Ustvarjalec dogodkov

Ustvarjalec dogodkov
Ustvarjalec dogodkov
Ustvarjalec dogodkov
Ustvarjalec dogodkov

Ustvarjalci dogodkov se uporabljajo za dokumentiranje dejanj ali "dogodkov" na podlagi različnih senzorjev in gumbov. Ko robot izvaja dejanja na terenu, razred ustvarjalca dogodkov vzporedno ustvarja dogodke za vsako od teh dejanj in se sklicuje na dogodek, razvrščen v razred dogodkov. Po ustvarjanju je dogodek postavljen v čakalno vrsto dogodkov v razredu dogodkov: prvi dogodek zavzame najvišje mesto, nato drugi dogodek zavzame prvo mesto in potisne vse dogodke pod njim, kar se nadaljuje, dokler se program ne ustavi. Ko se program ustavi, se dogodki razširijo v datoteko, ki je berljiva, na primer datoteko JSON. To datoteko lahko uporabite za boljše izboljšanje avtonomnih rutin.

Zgornja primerna koda nastavi parametre za dogodek, ki je v tem primeru obrat s senzorjem IMU. Nato dogodek postavimo v čakalno vrsto dogodkov. Nazadnje skrajšamo dogodek, ki v bistvu ponastavi dogodek, tako da ga lahko uporabimo za postavitev prihodnjih dogodkov v čakalno vrsto.

4. korak: Procesor dogodkov

Procesor dogodkov
Procesor dogodkov
Procesor dogodkov
Procesor dogodkov

Razredni dogodki prevzamejo človeško berljivo datoteko, ustvarjeno v razredu ustvarjalca dogodkov, in storijo vse, kar ji naroči vsak dogodek v čakalni vrsti, tako da pokliče metode, opisane v razredu procesorja dogodkov. Razred procesorja dogodkov nato pove robotu, kateri dogodek naj predvaja. Ne glede na to, ali gre za preprost dogodek »vožnja naprej« ali za kompleksen dogodek, poln razdalj, ovinkov in potez, bo procesor predvajal vse dogodke, ki so mu dani. Ta postopek je zelo koristen med avtonomijo, saj lahko ekipa posname senzorje in dejanja Tele-Op, preden se ujemajo, nato pa preprosto predvaja dogodke v avtonomiji. Ta postopek se imenuje Memory Replay. To omogoča, da je avtonomni program 100% nastavljiv prek ene datoteke. Ko sta ustvarjalec in procesor dogodka ustanovljena, lahko ekipa preprosto spremeni avtonomne rutine prek datoteke, ki jo lahko bere človek.

Zgornji primer se najprej začne s preverjanjem dogodka v datoteki JSON, nato pa z uporabo stavka primera preveri, kateri dogodek je, v tem primeru obrat s senzorjem IMU. Ko lahko ugotovi, da gre za obrat z uporabo dogodka IMU, se nato ukvarja z obdelavo dogodka, ki običajno vključuje izvajanje kode, ki je prišla iz dogodka z uporabo spremenljivk iz dogodka, posredovanih za ponovitev dogodka, ki je bil opravljen že prej.

Priporočena: