STEM Intensive Learning Approach

Ve světě inženýrského vzdělávání existuje mnoho vynikajících kurzů, ale často mají osnovy na nich postavené jednu vážnou nevýhodu - nedostatek dobré propojenosti mezi různými tématy. Někdo by mohl namítnout: jak je to možné?

Když se tvoří vzdělávací program, u každého kurzu jsou uvedeny předpoklady a jasné pořadí, ve kterém je třeba obory studovat. Například, abyste mohli sestavit a naprogramovat primitivního mobilního robota, musíte vědět trochu o mechanismu vytváření jeho fyzické struktury; základy elektřiny na úrovni Ohmových / Kirchhoffových zákonů, reprezentace digitálních a analogových signálů; operace s vektory a maticemi za účelem popisu souřadnicových systémů a pohybů robota v prostoru; základy programování na úrovni prezentace dat, nejjednodušší algoritmy a řídicí struktury přenosu atd. popsat chování.

Je to všechno v univerzitních kurzech? Samozřejmě že ano. Nicméně k Ohmovým/Kirchhoffovým zákonům dostáváme termodynamiku a teorii pole; kromě operací s maticemi a vektory se člověk musí vypořádat s Jordanovými formami; v programování studovat polymorfismus – témata, která nejsou vždy potřebná k řešení jednoduchého praktického problému.

Vysokoškolské vzdělání je rozsáhlé – student jde na širokou frontu a často nevidí smysl a praktický význam získaných znalostí. Rozhodli jsme se otočit paradigma vysokoškolského vzdělávání STEM (ze slov Science, Technology, Engineering, Math) a vytvořit program, který se opírá o koherenci znalostí, umožňující zvýšení úplnosti v budoucnu, to znamená, že vyžaduje intenzivní zvládnutí předmětů.

Učení se nové předmětové oblasti lze přirovnat k učení určité oblasti. A zde jsou dvě možnosti: buď máme velmi podrobnou mapu s velkým množstvím detailů, které je třeba prostudovat (a to zabere hodně času), abychom pochopili, kde jsou hlavní orientační body a jak spolu souvisí. ; nebo můžete použít primitivní plán, který ukazuje pouze hlavní body a jejich vzájemnou polohu - taková mapa stačí k tomu, abyste se okamžitě začali pohybovat správným směrem a objasňovali podrobnosti po cestě.

Intenzivní STEM learningový přístup jsme otestovali na zimní škole, kterou jsme za podpory pořádali společně se studenty MIT Výzkum JetBrains.

Příprava materiálu


První částí školního programu byl týden výuky v hlavních oblastech, které zahrnovaly algebru, elektrické obvody, architekturu počítačů, programování v Pythonu a znalost ROS (Robot Operating System).

Směry nebyly zvoleny náhodou: vzájemně se doplňovaly a měly studentům pomoci vidět souvislosti mezi zdánlivě odlišnými věcmi na první pohled – matematikou, elektronikou a programováním.

Hlavním cílem samozřejmě nebylo hodně přednášet, ale dát studentům možnost uplatnit nově nabyté znalosti v praxi.

V části algebra si studenti mohli procvičit maticové operace a řešit soustavy rovnic, což se hodilo při studiu elektrických obvodů. Poté, co se studenti seznámili se zařízením tranzistoru a logickými prvky na jeho základě postavenými, mohli vidět jejich aplikaci v procesorovém zařízení a poté, co se naučili základy jazyka Python, mohli napsat program pro skutečného robota, který jej používá.

STEM Intensive Learning Approach

Duckietown


Jedním z cílů školy bylo minimalizovat práci se simulátory tam, kde je to možné. Proto byla připravena velká sada elektronických obvodů, které museli studenti sestavit na prkénku z reálných součástek a vyzkoušet je v praxi a jako základ projektů byl vybrán Duckietown.

Duckietown je open-source projekt, který zahrnuje malé, autonomní roboty zvané Duckiebots a sítě silnic, po kterých cestují. Duckiebot je platforma na kolečkách vybavená mikropočítačem Raspberry Pi a jednou kamerou.

Na jeho základě jsme připravili sadu možných úkolů, jako je sestavení automapy, hledání objektů a zastavování v jejich blízkosti a řadu dalších. Studenti také mohli navrhnout svůj vlastní problém a nejen napsat program na jeho vyřešení, ale také jej okamžitě spustit na skutečném robotovi.

Výuka


Během přednášky vyučující látku sdělili pomocí předem připravených prezentací. Některé třídy byly natočeny na video, takže je studenti mohli sledovat doma. Během přednášek studenti používali materiály na svých počítačích, ptali se, řešili problémy společně i samostatně, někdy u tabule. Na základě výsledků práce bylo vypočítáno hodnocení každého studenta zvlášť v různých předmětech.

STEM Intensive Learning Approach

Pojďme se na každý předmět podívat podrobněji. Prvním předmětem byla lineární algebra. Studenti se jeden den učili vektory a matice, soustavy lineárních rovnic atd. Praktické úkoly byly sestaveny v interaktivním režimu: navržené úkoly byly řešeny individuálně, učitel a ostatní studenti přidávali připomínky a tipy.

STEM Intensive Learning Approach

Druhým předmětem je elektřina a jednoduché obvody. Studenti se naučili základy elektrodynamiky: napětí, proud, odpor, Ohmův zákon a Kirchhoffovy zákony. Praktické úkoly byly částečně prováděny na simulátoru nebo na desce, ale více času bylo věnováno stavbě reálných obvodů, jako jsou logické obvody, oscilační obvody atd.

STEM Intensive Learning Approach

Dalším tématem je Počítačová architektura – v jistém smyslu most spojující fyziku a programování. Studenti studovali základní základ, jehož význam je spíše teoretický než praktický. V rámci cvičení studenti samostatně navrhovali aritmeticko-logické obvody v simulátoru a za splněné úkoly získávali body.

Čtvrtý den je prvním dnem programování. Jako programovací jazyk byl vybrán Python 2, protože právě on se používá při programování pod ROS. Tento den byl strukturován takto: učitelé přednášeli látku, uváděli příklady řešení problémů, studenti je poslouchali vsedě u počítačů a opakovali, co učitel napsal na tabuli nebo diapozitiv. Poté studenti řešili podobné úlohy samostatně, následně byla řešení hodnocena učiteli.

Pátý den byl věnován ROS: kluci se seznámili s programováním robotů. Po celý školní den seděli studenti u počítačů a spouštěli programový kód, o kterém hovořil učitel. Dokázali sami uvést do provozu hlavní jednotky ROS a také se seznámili s projektem Duckietown. Na závěr tohoto dne byli žáci připraveni zahájit projektovou část školy – řešení praktických problémů.

STEM Intensive Learning Approach

Popis vybraných projektů

Studenti byli požádáni, aby vytvořili tříčlenné týmy a vybrali si téma pro svůj projekt. V důsledku toho byly přijaty tyto projekty:

1. Kalibrace barev. Duckiebot potřebuje kalibrovat kameru, když se změní světelné podmínky, takže existuje automatická kalibrační úloha. Problém je, že barevné rozsahy jsou velmi citlivé na světlo. Účastníci implementovali nástroj, který by vybral požadované barvy (červenou, bílou a žlutou) na rámu a vytvořil rozsahy pro každou z barev ve formátu HSV.

2. Kachní taxi. Myšlenkou tohoto projektu je, že Duckiebot může zastavit poblíž nějakého předmětu, zvednout ho a sledovat nějakou trasu. Jako objekt byla vybrána jasně žlutá kachna.

STEM Intensive Learning Approach

3. Konstrukce grafu silnic. Existuje problém sestrojit graf silnic a křižovatek. Cílem tohoto projektu je vytvořit silniční graf bez poskytování a priori environmentálních dat pro Duckiebot, spoléhat se pouze na data z kamery.

4. Hlídkový vůz. Tento projekt vymysleli sami studenti. Nabídli, že jednoho Duckiebota, „hlídkaře“, naučí pronásledovat jiného – „narušitele“. K tomu byl použit mechanismus rozpoznávání cíle pomocí markeru ArUco. Jakmile je rozpoznání dokončeno, je „narušiteli“ vyslán signál k dokončení práce.

STEM Intensive Learning Approach

Kalibrace barev

Cílem projektu Color Calibration bylo přizpůsobit rozsah rozpoznatelných značkovacích barev novým světelným podmínkám. Bez těchto úprav se rozpoznání zastávkových čar, oddělovačů jízdních pruhů a hranic silnic stalo nesprávným. Účastníci navrhli řešení založené na předzpracování šablon barev značek: červené, žluté a bílé.

Každá z těchto barev má předem definovaný rozsah hodnot HSV nebo RGB. Pomocí tohoto rozsahu jsou na rámu nalezeny všechny oblasti obsahující vhodné barvy a je z nich vybrána ta největší. Tato oblast je považována za barvu, kterou je třeba si zapamatovat. K odhadu nového barevného rozsahu se pak použijí statistické vzorce, jako je výpočet průměru a směrodatné odchylky.

Tento rozsah je zapsán do konfiguračních souborů kamery Duckiebot a lze jej použít později. Popsaný přístup byl aplikován na všechny tři barvy, nakonec vytvořil rozsahy pro každou z značkovacích barev.

Testy ukázaly téměř dokonalé rozpoznání značkovacích čar, kromě případů, kdy byly značkovacími materiály lesklá páska, která tak silně odráží světelné zdroje, že se značky z úhlu kamery jeví jako bílé, bez ohledu na jejich původní barvu.

STEM Intensive Learning Approach

Kachní taxi

Projekt Duck Taxi zahrnoval vytvoření vyhledávacího algoritmu pro kachnu cestujícího ve městě a jeho následné převoz na požadované místo. Účastníci rozdělili tento úkol na dva: detekce a pohyb po grafu.

Studenti prováděli detekci kachen za předpokladu, že kachna je jakákoliv oblast na rámu, kterou lze rozpoznat jako žlutou, s červeným trojúhelníkem (zobákem). Jakmile je taková oblast detekována na dalším snímku, robot by se k ní měl přiblížit a poté se na několik sekund zastavit, čímž simuluje přistání cestujícího.

Poté, s ohledem na silniční graf celého duckietownu a pozici robota v paměti, a daný cíl jako vstup, sestaví účastníci cestu od počátku k cíli pomocí Dijkstrova algoritmu k nalezení cest v grafu. Výstup je prezentován jako sada příkazů - odbočení na každé z následujících křižovatek.

STEM Intensive Learning Approach

Graf silnic

Cílem tohoto projektu bylo vybudovat graf - síť silnic v Duckietownu. Uzly výsledného grafu jsou křižovatky a oblouky jsou silnice. K tomu musí Duckiebot prozkoumat město a analyzovat jeho trasu.

Během práce na projektu byla myšlenka vytvoření váženého grafu zvažována, ale poté vyřazena, ve kterém jsou náklady na hranu určeny vzdáleností (časem k překonání) mezi křižovatkami. Realizace této myšlenky se ukázala jako příliš pracná a v rámci školy by na ni nebyl dostatek času.

Když se Duckiebot dostane na další křižovatku, zvolí cestu opouštějící křižovatku, kterou ještě nepohnul. Po projetí všech silnic na všech křižovatkách zůstane vytvořený seznam sousedících křižovatek v paměti robota, který se převede na obrázek pomocí knihovny Graphviz.

Algoritmus navržený účastníky není vhodný pro libovolný Duckietown, ale fungoval dobře pro malé město sestávající ze čtyř křižovatek používaných v rámci školy. Cílem bylo přidat značku ArUco obsahující ID křižovatky ke každé křižovatce, aby bylo možné sledovat pořadí, ve kterém křižovatky procházely.
Schéma práce algoritmu vyvinutého účastníky je znázorněno na obrázku.

STEM Intensive Learning Approach

Hlídkové auto

Účelem tohoto projektu je najít, pronásledovat a zadržet robota vetřelce ve městě Duckietown. Hlídkový robot se musí pohybovat po vnějším okruhu ve městě a hledat známého vetřelce. Po odhalení vetřelce musí hlídkový bot vetřelce následovat a přimět ho zastavit.

Práce začala hledáním myšlenky detekce robota na rámu a rozpoznání vetřelce v něm. Tým navrhl vybavit každého robota ve městě jedinečnou značkou na zadní straně, stejně jako skutečná auta mají státní registrační čísla. K tomu byly vybrány značky ArUco. Byly použity již dříve v duckietown, protože se s nimi snadno pracuje a umožňují vám určit orientaci značky v prostoru a vzdálenost k němu.

Dále bylo nutné zajistit, aby se hlídkový bot pohyboval striktně po vnějším kruhu, aniž by zastavoval na křižovatkách. Ve výchozím nastavení se Duckiebot pohybuje v jízdním pruhu a zastavuje na zastávkové čáře. Poté pomocí dopravních značek určí konfiguraci křižovatky a zvolí směr křižovatky. Za každou z popsaných fází je zodpovědný jeden ze stavů stavového automatu robota. Aby se tým zbavil zastávek na křižovatce, změnil stavový automat tak, že při přiblížení k zastávkové čáře robot okamžitě přešel do stavu projíždění křižovatkou rovně.

Dalším krokem bylo vyřešit problém se zastavením robota vetřelce. Tým vycházel z předpokladu, že hlídkový bot může mít SSH přístup ke každému z botů ve městě, to znamená, že má nějaké informace o tom, jaká autorizační data a jaké id každý bot má. Po detekci narušitele se tedy hlídkový bot začal připojovat přes SSH k narušitelskému botovi a vypínat svůj systém.

Po potvrzení, že příkaz k vypnutí byl dokončen, se hlídkový robot také zastavil.
Algoritmus hlídkového robota lze znázornit jako následující diagram:

STEM Intensive Learning Approach

Projektová práce

Práce byla organizována ve formátu podobném Scrumu: každé ráno si studenti naplánovali úkoly na aktuální den a večer referovali o vykonané práci.

První a poslední den si studenti připravili prezentace popisující úkol a způsob jeho řešení. Aby studentům pomohli dodržet zvolené plány, byli v místnostech, kde probíhala práce na projektech, neustále učitelé z Ruska a Ameriky, kteří odpovídali na otázky. Komunikace probíhala převážně v angličtině.

Výsledky a jejich demonstrace

Práce na projektech trvala jeden týden, poté studenti prezentovali své výsledky. Všichni si připravili prezentace, ve kterých řekli, co se na této škole naučili, jaké byly nejdůležitější lekce, co se jim líbilo nebo nelíbilo. Poté každý tým představil svůj projekt. Všechny týmy splnily své úkoly.

Tým pro kalibraci barev dokončil projekt rychleji než ostatní, takže měl čas připravit dokumentaci pro svůj program. A tým zapojený do silničního grafu se i poslední den před demonstrací projektu snažil své algoritmy zpřesnit a opravit.

STEM Intensive Learning Approach

Závěr

Po absolvování jsme požádali studenty, aby zhodnotili minulé aktivity a odpověděli na otázky, jak škola splnila jejich očekávání, jaké dovednosti získali atd. Všichni studenti poznamenali, že se naučili pracovat v týmu, rozdělovat úkoly a plánovat si čas.

Studenti byli také požádáni, aby ohodnotili užitečnost a složitost kurzů, které absolvovali. A zde se vytvořily dvě skupiny hodnocení: pro některé nebyly kurzy příliš těžké, jiní je hodnotili jako nejtěžší.

To znamená, že škola zaujala správný postoj, zůstala přístupná začátečníkům v určitém oboru, ale zároveň poskytuje materiály pro opakování a upevňování pro zkušené studenty. Je třeba poznamenat, že kurz programování (Python) byl téměř všemi označen jako jednoduchý, ale užitečný. Nejtěžší byl podle studentů kurz „Počítačová architektura“.

Když byli studenti dotazováni na silné a slabé stránky školy, mnozí odpověděli, že se jim líbí zvolený styl výuky, kdy učitelé pohotově a individuálně pomáhali a odpovídali na dotazy.

Studenti také poznamenali, že se jim líbila práce v režimu denního plánování úkolů a samostatného stanovování termínů. Jako nevýhody studenti zaznamenali nedostatek poskytnutých znalostí, které byly vyžadovány při práci s robotem: při připojování, porozumění základům a principům jeho práce.

Téměř všichni studenti konstatovali, že škola předčila jejich očekávání, což naznačuje správný směr organizace školy. Při organizaci příští školy by tedy měla být zachována obecná ustanovení s přihlédnutím a pokud možno odstraněním nedostatků, které studenti a učitelé zaznamenali, případně změnou seznamu kurzů nebo doby jejich výuky.

Autoři článku: tým laboratoře algoritmů mobilních robotů в Výzkum JetBrains.

PS Náš firemní blog má nový název. Nyní bude věnován vzdělávacím projektům společnosti JetBrains.

Zdroj: www.habr.com

Přidat komentář