Mündəricat:

FTC-də hadisəyə əsaslanan proqramlaşdırma: 4 addım
FTC-də hadisəyə əsaslanan proqramlaşdırma: 4 addım

Video: FTC-də hadisəyə əsaslanan proqramlaşdırma: 4 addım

Video: FTC-də hadisəyə əsaslanan proqramlaşdırma: 4 addım
Video: İmkanlara əsaslanan icma inkişafı | Ağalar Ağalarlı 2024, Noyabr
Anonim
FTC-də hadisəyə əsaslanan proqramlaşdırma
FTC-də hadisəyə əsaslanan proqramlaşdırma

Bu il komandamız robotumuz üçün hadisələrə əsaslanan proqram təminatı hazırlamaqla çox iş gördü. Bu proqramlar komandaya avtonom proqramları və hətta təkrarlanan tele-op hadisələrini dəqiq şəkildə inkişaf etdirməyə imkan verdi. Çağırdığı proqram işi mürəkkəb olduğundan, FTC robotları üçün hadisəyə əsaslanan kod hazırlamaqla bağlı əldə etdiyimiz bilikləri bölüşmək qərarına gəldik.

Addım 1: Hadisəyə əsaslanan proqramlaşdırma nədir?

Ümumiyyətlə, hadisəyə əsaslanan proqramlaşdırma, Techopedia-ya görə, istifadəçi girişinə cavab verən proqramların inkişafıdır. Bu mənada, bir çox proqram hadisəyə əsaslanan hesab olunur, o cümlədən hər hansı bir hərəkəti həyata keçirmək üçün insan tərəfindən idarə olunan nəzarətçinin girişlərinə əsaslanan bir komandanın tele-op proqramı. Bununla birlikdə, komandamızın gördüyü işlər baxımından, hadisəyə əsaslanan proqramlaşdırma, müxtəlif girişlərdən proqram yaratmaqdır; başqa sözlə, hadisələri nəzarətçilərin və sensorların girişlərinə əsaslanaraq sənədləşdiririk, sonra bu hadisələri sıraya qoya bilərik və qeyd olunan hadisəni yenidən işə salmaq üçün faylı istifadə edə bilərik.

Robotumuz üçün proqram inkişaf etdirməyin bu üsulunun bir sıra üstünlükləri var:

  • Dəqiq avtonom proqramlar yaratmağa imkan verir. Proqramı hadisəni keçirərkən real vaxtda yaratdığımız üçün, toplanan və istifadə olunan sensor dəyərləri çox dəqiq olacaq, çünki onlar birbaşa orijinal hadisədən gəlir.
  • Avtonom proqramları tez bir zamanda yaratmağa imkan verir. Avtonom proqramlar hazırlamaq, bir sıra hadisələri qeyd etmək və hadisəni lazım olduğu qədər tənzimləmək qədər sadədir.
  • Tele-op üçün avtomatik proseslər yaratmağa imkan verir. Tele-opdakı təkrar hərəkətlər üçün hadisəyə əsaslanan proqramlaşdırma, bu hərəkətləri qeyd etməyimizə və sürücünün idarə etdiyi matçlar zamanı hadisəni bir düyməyə təyin etməyə imkan verir. Bu avtomatlaşdırılmış hadisələr, dəqiq yerinə yetirilməsi üçün sensorlar tərəfindən təsir edilə bilər.

Addım 2: Hadisəyə əsaslanan Proqramlaşdırmanın məntiq axını

Hadisəyə əsaslanan proqramlaşdırmanın məntiq axını
Hadisəyə əsaslanan proqramlaşdırmanın məntiq axını

Aşağıdakılar hadisəyə əsaslanan proqramın məntiqi axınını təsvir edir: qırmızı hadisənin yaradılmasını, mavi isə hadisənin çağırışını əks etdirir. Bir hadisə yaratmaq üçün robot hərəkətləri ilə bir sıra girişlər alınır və hadisələr kimi qeyd olunur; bu hadisələr bir fayla yazılır. Bir hadisəni çağırmaq üçün bu fayl oxunur və fayl kodunu robot hərəkətinə çevirmək üçün girişlər bir hadisə prosessoruna göndərilir.

Addım 3: Hadisə Yaradan

Tədbir Yaradıcısı
Tədbir Yaradıcısı
Tədbir Yaradıcısı
Tədbir Yaradıcısı

Hadisə yaradıcıları, müxtəlif sensorlar və düymələrə əsaslanan hərəkətləri və ya "hadisələri" sənədləşdirmək üçün istifadə olunur. Robot sahədəki hərəkətləri edərkən, hadisə yaradıcı sinfi bir hadisə sinifində təsnif edilən hadisəyə istinad edərək bu hərəkətlərin hər biri üçün paralel olaraq hadisələr yaradır. Yaradıldıqdan sonra hadisə hadisələr sinifindəki hadisələr sırasına qoyulur: birinci hadisə birinci yeri tutur, sonra ikinci hadisə ən yüksək yeri tutur və altında olan hər hansı bir hadisəni aşağı salır və bu proqram dayanana qədər davam edir. Proqram dayandırıldıqda, hadisələr JSON faylı kimi insan tərəfindən oxunan bir format faylına keçir. Bu fayl muxtar rutinləri daha yaxşı təkmilləşdirmək üçün istifadə edilə bilər.

Yuxarıdakı nümunə kodu, bu vəziyyətdə bir IMU sensoru istifadə edərək növbədə olan hadisə üçün parametrləri təyin edir. Daha sonra hadisəni hadisə növbəsinə sıralayırıq. Nəhayət, hadisəni əsas etibarilə sıfırlayan hadisəni kəsirik ki, bundan gələcək hadisələri növbəyə qoymaq üçün istifadə edək.

Addım 4: Hadisə Prosessoru

Hadisə Prosessoru
Hadisə Prosessoru
Hadisə Prosessoru
Hadisə Prosessoru

Hadisə sinifləri, hadisə yaradan sinifdə istehsal olunan insan tərəfindən oxunan bir faylı götürür və hər bir hadisənin bir hadisə prosessor sinifində qeyd olunan üsulları çağıraraq söylədiyi hər şeyi edir. Hadisə prosessoru sinfi daha sonra robotun hansı hadisəni təkrarlayacağını söyləyir. İstər sadə bir "irəli sürün" hadisəsi, istərsə də məsafələr, döngələr və bantlarla dolu kompleks bir hadisə olsun, prosessor ona verilən hər hansı bir hadisəni təkrarlayacaq. Bu proses muxtariyyət zamanı çox faydalıdır, çünki bir komanda matçdan əvvəl sensorlar və Tele-Op hərəkətlərini yaza bilər, sonra hadisələri avtonom rejimdə təkrarlaya bilər. Bu prosesə Memory Replay deyilir. Bu, müstəqil bir proqramın bir fayl vasitəsilə 100% konfiqurasiya olunmasına imkan verir. Tədbirin yaradıcısı və prosessoru qurulduqdan sonra, bir komanda sadəcə insan tərəfindən oxunan fayl vasitəsilə avtonom iş rejimini dəyişə bilər.

Yuxarıdakı nümunə əvvəlcə bir hadisə üçün JSON faylını yoxlamaqla başlayır və sonra hadisənin hansı bir hadisə olduğunu öyrənmək üçün bir hadisə ifadəsi istifadə edərək yoxlamaqla başlayır, bu halda bir IMU sensoru istifadə edərək növbədədir. IMU hadisəsini istifadə edərək bir növbə olduğunu söylədikdən sonra, daha əvvəl edilən hadisəni təkrarlamaq üçün ötürülən hadisədən alınan kodu işə salmağı özündə ehtiva edən hadisənin işlənməsi ilə məşğul olur.

Tövsiyə: