Programování založené na chování

Složitost programování
Roboty lze navrhnout tak, aby vykonávaly širokou škálu úkolů. Některé z těchto úkonů jsou velmi jednoduché, například otevření automatických dveří. Jiné mohou být mnohem složitější, například autonomní vůz pohybující se v městském prostředí. Bez ohledu na to, jak složitý je úkol, lze jej rozdělit na jednodušší úkoly. Tyto úkoly jsou známé jako chování a jsou stavebními kameny programování robotiky.
Chování je způsob, jakým se robot chová, a jeho složitost se může lišit v závislosti na tom, jak je robot postaven nebo naprogramován. Jednoduchý mobilní robot jako VEX V5 Speedbot má pouze dva motory, zatímco Clawbot má čtyři motory, včetně dvou dalších motorů pro paži a dráp. Chování obou robotů bude zahrnovat otáčení těchto motorů k dosažení stanovených cílů. S větším množstvím designu a programování můžete začít od tohoto jednoduchého chování a provádět složitější chování.
Níže je uveden seznam chování robotů, postupně od jednoduchého po složité, a to jak pro Speedbota, tak pro Clawbota. V závorkách vidíte jednodušší chování, které tvoří každý z nich.
- Otočení motoru přiřazeného k určitému portu
- Jízda vpřed (otáčejte levý i pravý motor pomocí hnacího ústrojí)
- Jeďte 5 metrů (jeďte vpřed a poté zastavte)
- Uchopte vzdálený předmět (urazte 2 metry, otočte drápovým motorem, abyste ho uchopili)
- Vyzvedněte předmět a položte ho na vysokou polici (uchopte vzdálený předmět, otočte se, ujeďte 2 metry, použijte motory ramene a čelistí k jeho zvednutí a uvolnění)
Můžete vidět, jak můžete rozložit jakékoli složitější chování na jednodušší. Ty se stávají stavebními kameny jakéhokoli složitého úkolu.
Tipy pro učitele
-
Poučte studenty, aby rozložili složité chování robotů na menší, jednoduché kroky. Tento proces je známý jako rozklad.
-
Vysvětlete studentům, že rozklad (rozdělení) složitého chování na jednodušší úkoly je důležitou součástí plánování a programování.
-
Pokud je dostatek času na výuku, umožněte studentům realizovat jejich autonomní projekty.
Rozšiřte si své znalosti
Abyste tuto aktivitu propojili s výpočetním myšlením a dekompozicí, požádejte studenty, aby zmapovali nebo vyjmenovali kroky chování, které by robot provedl k dokončení níže uvedených aktivit:
-
Aktivita jedna: Ujdi 1 metr a vrať se do výchozího bodu.
-
Druhá aktivita: Otočte krabici umístěnou 60 cm před robotem.
-
Aktivita tři: Zvedněte předmět, zatřeste s ním, udělejte 30 cm, položte předmět na zem a vraťte se do výchozího bodu.
Motivovat diskusi
Studenti by se měli podělit o kroky chování, které uvedli pro aktivity z výše uvedeného dokumentu „Rozšíření znalostí“. Každou z následujících otázek lze položit po kterékoli nebo všech aktivitách.
Otázka:Jaké kroky nebo chování každá skupina uvedla pro úspěšné dokončení této aktivity?
Odpověď:Studenti budou muset zvážit délku, kterou musí robot urazit, a pohyb a rychlost ramene, a to kromě toho, že uvedou jednoduché chování robota potřebné k dokončení aktivity nebo úkolu (jízda vpřed, couvání, otáčení doleva nebo doprava). Studenti by si měli vytvořit seznamy chování tak, aby byl každý krok zastoupen.
Otázka:Jaké byly podobnosti a rozdíly mezi řešeními (seznamy kroků) pro tuto aktivitu?
Odpověď:Studenti provedou porovnání na základě svých řešení. Vennův diagram by mohl být dobrým způsobem, jak uspořádat kroky, které studenti sdílejí. Pokud většina studentů pojmenuje konkrétní krok, přidejte ho do středu, kde se kruhy překrývají. Pokud konkrétní krok pojmenuje pouze jeden nebo několik studentů, přidejte ho do jednoho nebo druhého kruhu. Po dokončení by měly být kroky uprostřed spolehlivě jednoduché a nedaly by se dále rozdělit, zatímco kroky uvedené pouze v jednom z kruhů pravděpodobně nejsou tak jednoduché, jak by mohly být. Tento vzorec se však může obrátit v závislosti na zkušenostech třídy s rozkladem složitého chování na nejjednodušší kroky.
Otázka:Existovaly podobnosti s úspěšnými řešeními? Pokud ano, jaká to byla?
A:Nejúspěšnější řešení byla ta, která obsahovala nejvíce detailů a specifičnosti. Robot je naprogramován v jazyce s velmi specifickým chováním, které bylo rozděleno na nejmenší komponenty. Například by se mohlo běžně říkat, že robot „ujede 1 metr a vrátí se do výchozího bodu“, ale tento stručný popis se při programování snadno nepřekládá. Musíte to dále rozložit: pojedete 1 metr dopředu, otočíte se o 180 stupňů a pojedete 1 metr dopředu. Ale ani to nemusí být dostatečně přesné a k programování potřebujete tuto úroveň detailů: nastavte rychlost pohonu a otáčení na 40 %, jeďte 1 metr vpřed, počkejte 3 sekundy, otočte doleva o 180 stupňů, počkejte 1 sekundu a jeďte 1 metr vpřed. Čím dále rozebereme složité chování, abychom z něj udělali chování robota připravené k programování, tím lépe jsme připraveni na dokončení projektu.