STEM Intensa Lernado-Aliro

Estas multaj bonegaj kursoj en la mondo de inĝenierado, sed ofte la instruplano konstruita ĉirkaŭ ili suferas de unu grava difekto - manko de bona kohereco inter diversaj temoj. Oni povus kontraŭi: kiel tio povas esti?

Kiam trejna programo estas formita, antaŭkondiĉoj kaj klara ordo en kiu la disciplinoj devas esti studitaj estas indikitaj por ĉiu kurso. Ekzemple, por konstrui kaj programi primitivan moveblan roboton, vi bezonas koni iom da mekaniko por krei ĝian fizikan strukturon; bazoj de elektro je la nivelo de la leĝoj de Ohm/Kirchhoff, reprezentado de ciferecaj kaj analogaj signaloj; operacioj kun vektoroj kaj matricoj por priskribi koordinatsistemojn kaj movojn de la roboto en spaco; bazoj de programado je la nivelo de datenprezento, simplaj algoritmoj kaj kontroltransigaj strukturoj, ktp. priskribi konduton.

Ĉu ĉio ĉi estas kovrita en universitataj kursoj? Kompreneble havas. Tamen, kun la leĝoj de Ohm/Kirchhoff ni ricevas termodinamikon kaj kampan teorion; krom operacioj kun matricoj kaj vektoroj, oni devas trakti Jordanajn formojn; en programado, studu polimorfismon - temojn kiuj ne ĉiam estas bezonataj por solvi simplan praktikan problemon.

Universitata edukado estas ampleksa - la studento iras sur larĝan fronton kaj ofte ne vidas la signifon kaj praktikan signifon de la scio, kiun li ricevas. Ni decidis turni la paradigmon de universitata edukado en STEM (el la vortoj Scienco, Teknologio, Inĝenieristiko, Matematiko) kaj krei programon kiu baziĝas sur la kohereco de scio, ebligante pliigon de kompleteco en la estonteco, tio estas, ĝi. implicas intensan majstradon de temoj.

Lerni novan temon povas esti komparita kun esplori lokan regionon. Kaj ĉi tie estas du ebloj: aŭ ni havas tre detalan mapon kun grandega kvanto da detaloj, kiujn oni devas studi (kaj tio bezonas multan tempon) por kompreni kie estas la ĉefaj orientiloj kaj kiel ili rilatas unu al la alia. ; aŭ vi povas uzi primitivan planon, sur kiu estas indikitaj nur la ĉefaj punktoj kaj iliaj relativaj pozicioj - tia mapo sufiĉas por tuj ekmoviĝi en la ĝusta direkto, klarigante la detalojn dum vi iras.

Ni testis la intensan STEM-lernadon en vintra lernejo, kiun ni tenis kune kun studentoj de MIT kun la subteno de JetBrains Research.

Preparado de materialo


La unua parto de la lerneja programo estis semajno da klasoj en la ĉeflokoj, kiuj inkludis algebron, elektrajn cirkvitojn, komputilarkitekturon, Python-programadon kaj enkondukon al ROS (Robot Operating System).

La direktoj ne estis hazarde elektitaj: kompletigante unu la alian, ili devis helpi studentojn vidi la ligon inter ŝajne malsamaj aferoj unuavide - matematiko, elektroniko kaj programado.

Kompreneble, la ĉefa celo estis ne fari multajn prelegojn, sed doni al la studentoj la ŝancon apliki la nove akiritajn sciojn mem praktike.

En la algebrosekcio, studentoj povis praktiki matrikoperaciojn kaj solvi sistemojn de ekvacioj, kiuj estis utilaj en studado de elektraj cirkvitoj. Lerninte pri la strukturo de transistoro kaj la logikaj elementoj konstruitaj sur ĝia bazo, studentoj povis vidi ilian uzon en procesora aparato, kaj lerninte la bazaĵojn de la lingvo Python, skribi programon por vera roboto en ĝi.

STEM Intensa Lernado-Aliro

Duckietown


Unu el la celoj de la lernejo estis minimumigi laboron per simuliloj kie eble. Tial, granda aro da elektronikaj cirkvitoj estis preparita, kiujn studentoj devis kunveni sur pantabulo el veraj komponentoj kaj testi ilin praktike, kaj Duckietown estis elektita kiel la bazo por la projektoj.

Duckietown estas malfermfonta projekto implikanta malgrandajn aŭtonomiajn robotojn nomitajn Duckiebots kaj la retojn de vojoj laŭ kiuj ili vojaĝas. Duckiebot estas radplatformo ekipita per mikrokomputilo Raspberry Pi kaj ununura fotilo.

Surbaze de ĝi, ni preparis aron da eblaj taskoj, kiel konstrui vojmapon, serĉi objektojn kaj halti apud ili, kaj kelkajn aliajn. Studentoj povus ankaŭ proponi sian propran problemon kaj ne nur skribi programon por solvi ĝin, sed ankaŭ tuj ruli ĝin sur vera roboto.

Instruado


Dum la prelego, instruistoj prezentis la materialon per antaŭpreparitaj prezentoj. Kelkaj klasoj estis registritaj en vidbendo tiel studentoj povis spekti ilin hejme. Dum prelegoj, studentoj uzis materialojn en siaj komputiloj, faris demandojn kaj solvis problemojn kune kaj sendepende, foje ĉe la nigra tabulo. Surbaze de la rezultoj de la laboro, la takso de ĉiu studento estis kalkulita aparte en malsamaj temoj.

STEM Intensa Lernado-Aliro

Ni konsideru pli detale la konduton de klasoj en ĉiu temo. La unua temo estis lineara algebro. Studentoj pasigis unu tagon studante vektorojn kaj matricojn, sistemojn de linearaj ekvacioj, ktp. Praktikaj taskoj estis strukturitaj interage: la proponitaj problemoj estis solvitaj individue, kaj la instruisto kaj aliaj lernantoj donis komentojn kaj konsilojn.

STEM Intensa Lernado-Aliro

La dua temo estas elektro kaj simplaj cirkvitoj. Studentoj lernis la bazojn de elektrodinamiko: tensio, kurento, rezisto, la leĝo de Ohm kaj la leĝoj de Kirchhoff. Praktikaj taskoj estis parte faritaj en la simulilo aŭ kompletigitaj sur la tabulo, sed pli da tempo estis pasigita konstrui realajn cirkvitojn kiel ekzemple logikaj cirkvitoj, oscilaj cirkvitoj, ktp.

STEM Intensa Lernado-Aliro

La sekva temo estas Komputila Arkitekturo - iusence, ponto liganta fizikon kaj programadon. Studentoj studis la fundamentan bazon, kies signifo estas pli teoria ol praktika. Kiel praktiko, studentoj sendepende dizajnis aritmetikajn kaj logikajn cirkvitojn en la simulilo kaj ricevis poentojn por plenumitaj taskoj.

La kvara tago estas la unua tago de programado. Python 2 estis elektita kiel la programlingvo ĉar ĝi estas tiu uzita en ROS-programado. Tiu ĉi tago estis strukturita jene: instruistoj prezentis la materialon, donis ekzemplojn pri solvado de problemoj, dum studentoj aŭskultis ilin, sidante ĉe siaj komputiloj, kaj ripetis tion, kion la instruisto skribis sur la tabulo aŭ lumbildo. Tiam la studentoj mem solvis similajn problemojn, kaj la solvoj estis poste taksitaj de la instruistoj.

La kvina tago estis dediĉita al ROS: la infanoj lernis pri robotprogramado. La tutan lernejan tagon, studentoj sidis ĉe siaj komputiloj, kurante la programkodon pri kiu la instruisto parolis. Ili povis prizorgi bazajn ROS-unuojn memstare kaj ankaŭ estis prezentitaj al la Duckietown-projekto. Fine de tiu ĉi tago, la studentoj estis pretaj komenci la projektan parton de la lernejo - solvi praktikajn problemojn.

STEM Intensa Lernado-Aliro

Priskribo de elektitaj projektoj

Studentoj estis petitaj formi teamojn de tri kaj elekti projekttemon. Kiel rezulto, la sekvaj projektoj estis adoptitaj:

1. Kolora kalibrado. Duckiebot bezonas kalibri la fotilon kiam lumkondiĉoj ŝanĝiĝas, do ekzistas aŭtomata kalibra tasko. La problemo estas, ke koloraj gamoj estas tre sentemaj al lumo. Partoprenantoj efektivigis servaĵon kiu elstarigus la postulatajn kolorojn en kadro (ruĝa, blanka kaj flava) kaj konstruus intervalojn por ĉiu koloro en HSV-formato.

2. Anasa Taksio. La ideo de ĉi tiu projekto estas, ke Duckiebot povus halti proksime de objekto, preni ĝin kaj sekvi certan itineron. Helflava anaso estis elektita kiel la objekto.

STEM Intensa Lernado-Aliro

3. Konstruado de vojgrafeo. Estas tasko konstrui grafeon de vojoj kaj intersekciĝoj. La celo de ĉi tiu projekto estas konstrui vojgrafeon sen provizi apriorajn mediajn datumojn al Duckiebot, fidante nur je fotilaj datumoj.

4. Patrola aŭto. Tiu ĉi projekto estis elpensita de la studentoj mem. Ili proponis instrui unu Duckiebot, "patrolon", por postkuri alian, "deliktulon". Por tiu celo, la mekanismo de celrekono uzanta la ArUco-signon estis uzita. Tuj kiam rekono estas kompletigita, signalo estas sendita al la "entrudiĝinto" por kompletigi la laboron.

STEM Intensa Lernado-Aliro

Kolora Kalibrado

La celo de la Kolorkalibrado-projekto estis alĝustigi la gamon da rekoneblaj markkoloroj al novaj lumkondiĉoj. Sen tiaj alĝustigoj, rekono de haltlinioj, lenapartigiloj kaj vojlimoj iĝis malĝustaj. Partoprenantoj proponis solvon bazitan sur antaŭtraktado de markaj kolorpadronoj: ruĝa, flava kaj blanka.

Ĉiu el ĉi tiuj koloroj havas antaŭfiksitan gamon de HSV aŭ RGB-valoroj. Uzante ĉi tiun gamon, ĉiuj areoj de la kadro enhavantaj taŭgajn kolorojn estas trovitaj, kaj la plej granda estas elektita. Ĉi tiu areo estas prenita kiel la koloro kiu devas esti memorita. Statistikaj formuloj kiel ekzemple kalkulado de la meznombro kaj norma devio tiam estas utiligitaj por taksi la novan kolorintervalon.

Ĉi tiu gamo estas registrita en la fotilaj agordaj dosieroj de Duckiebot kaj povas esti uzata poste. La priskribita aliro estis aplikita al ĉiuj tri koloroj, finfine formante intervalojn por ĉiu el la markadkoloroj.

Testoj montris preskaŭ perfektan rekonon de markadlinioj, krom en kazoj kie la markadmaterialoj uzis brilan glubendon, kiu reflektas lumfontojn tiel forte ke de la rigardangulo de la fotilo la markadoj prezentiĝis blankaj, sendepende de sia origina koloro.

STEM Intensa Lernado-Aliro

Anasa Taksio

La Duck Taxi-projekto implikis konstrui algoritmon por serĉi anaspasaĝeron en la grandurbo, kaj tiam transporti ĝin al la postulata punkto. La partoprenantoj dividis ĉi tiun problemon en du: detekto kaj movado laŭ la grafikaĵo.

Studentoj aranĝis anasdetekton farante la supozon ke anaso estas ajna areo en la kadro kiu povas esti rekonita kiel flava, kun ruĝa triangulo (beko) sur ĝi. Tuj kiam tia areo estas detektita en la sekva kadro, la roboto devas alproksimiĝi al ĝi kaj poste halti dum kelkaj sekundoj, simulante la surteriĝon de pasaĝero.

Tiam, havante la vojgrafeon de la tuta duckietown kaj la pozicion de la bot konservita en memoro anticipe, kaj ankaŭ ricevante la cellokon kiel enigo, partoprenantoj konstruas vojon de la forirpunkto ĝis la alvenpunkto, uzante la algoritmon de Dijkstra por trovi padojn en la grafeo. . La eligo estas prezentita kiel aro de komandoj - turniĝas ĉe ĉiu el la sekvaj intersekcoj.

STEM Intensa Lernado-Aliro

Grafiko de Vojoj

La celo de ĉi tiu projekto estis konstrui grafeon - reton de vojoj en Duckietown. La nodoj de la rezulta grafeo estas intersekcoj, kaj la arkoj estas vojoj. Por fari tion, Duckiebot devas esplori la urbon kaj analizi ĝian itineron.

Dum la laboro pri la projekto, la ideo krei pezigitan grafeon estis pripensita, sed poste forĵetita, en kiu la kosto de rando estas determinita de la distanco (tempo por vojaĝi) inter intersekcoj. La efektivigo de ĉi tiu ideo montriĝis tro laboriga, kaj ne estis sufiĉe da tempo por ĝi ene de la lernejo.

Kiam Duckiebot venas al la venonta intersekciĝo, ĝi elektas la vojon gvidantan for el la intersekciĝo kiun ĝi ankoraŭ ne prenis. Kiam ĉiuj vojoj ĉe ĉiuj intersekciĝoj estas preterpasitaj, la generita listo de intersekciĝo apudecoj restas en la memoro de la bot, kiu estas konvertita en bildon uzante la Graphviz-bibliotekon.

La algoritmo proponita de la partoprenantoj ne estis taŭga por hazarda Duckietown, sed funkciis bone por urbeto de kvar intersekciĝoj uzitaj ene de la lernejo. La ideo estis aldoni ArUco-signon al ĉiu intersekciĝo enhavanta intersekcidentigilon por spuri la ordon en kiu la intersekciĝoj estis movitaj.
La diagramo de la algoritmo evoluigita de la partoprenantoj estas montrita en la figuro.

STEM Intensa Lernado-Aliro

Patruja Aŭto

La celo de ĉi tiu projekto estas serĉi, persekuti kaj deteni malobservantan roboton en la urbo Duckietown. Patrola roboto devas moviĝi laŭ la ekstera ringo de urbovojo, serĉante konatan entrudiĝintan roboton. Post detektado de entrudiĝinto, la patrola roboto devas sekvi la entrudiĝinton kaj devigi lin ĉesi.

La laboro komenciĝis per la serĉo de ideo por detekti roboton en kadro kaj rekoni entrudiĝinton en ĝi. La teamo proponis ekipi ĉiun roboton en la urbo per unika signo sur la dorso - same kiel realaj aŭtoj havas ŝtatajn registritajn numerojn. ArUco-signoj estis elektitaj por tiu celo. Ili estis uzataj antaŭe en Duckietown ĉar ili estas facile labori kun ili kaj permesas vin determini la orientiĝon de la markilo en la spaco kaj la distancon al ĝi.

Poste, estis necese certigi, ke la patrola roboto moviĝas strikte en la ekstera rondo sen halti ĉe intersekciĝoj. Defaŭlte, Duckiebot moviĝas en leno kaj haltas ĉe la haltlinio. Tiam, helpe de vojsignoj, li determinas la agordon de la intersekciĝo kaj faras elekton pri la direkto de trairejo de la intersekciĝo. Por ĉiu el la priskribitaj stadioj, unu el la statoj de la finhava ŝtatmaŝino de la roboto respondecas. Por forigi haltojn ĉe la intersekciĝo, la teamo ŝanĝis la ŝtatmaŝinon tiel ke alproksimiĝante al la haltlinio, la bot tuj ŝanĝis al la stato de veturado rekte tra la intersekciĝo.

La sekva paŝo estis solvi la problemon haltigi la entrudiĝintan bot. La teamo faris la supozon, ke la patrola roboto povus havi SSH-aliron al ĉiu el la robotoj en la urbo, tio estas, havi iujn informojn pri kiaj rajtigaj datumoj kaj kian identigilon havas ĉiu roboto. Tiel, post detektado de la entrudiĝinto, la patrola roboto komencis konekti per SSH al la entrudiĝinta roboto kaj fermis sian sistemon.

Post konfirmi ke la malŝalta komando estis finita, la patrola roboto ankaŭ ĉesis.
La operacio-algoritmo de patrola roboto povas esti reprezentita kiel la sekva diagramo:

STEM Intensa Lernado-Aliro

Laborante pri projektoj

La laboro estis organizita en formato simila al Scrum: ĉiumatene la studentoj planis taskojn por la nuna tago, kaj vespere ili raportis pri la farita laboro.

En la unua kaj lasta tagoj, studentoj preparis prezentojn priskribantajn la taskon kaj kiel solvi ĝin. Por helpi studentojn sekvi siajn elektitajn planojn, instruistoj el Rusio kaj Ameriko konstante ĉeestis en la ĉambroj, kie okazis laboro pri projektoj, respondante demandojn. Komunikado okazis ĉefe en la angla.

Rezultoj kaj ilia pruvo

Laboro pri la projektoj daŭris unu semajnon, post kio la studentoj prezentis siajn rezultojn. Ĉiuj preparis prezentojn, en kiuj ili parolis pri tio, kion ili lernis en ĉi tiu lernejo, kiuj estis la plej gravaj lecionoj, kiujn ili lernis, kion ili ŝatis aŭ ne ŝatis. Post tio, ĉiu teamo prezentis sian projekton. Ĉiuj teamoj plenumis siajn taskojn.

La teamo efektiviganta kolorkalibradon kompletigis la projekton pli rapide ol aliaj, do ili ankaŭ havis tempon por prepari dokumentadon por sia programo. Kaj la teamo laboranta pri la vojgrafeo, eĉ en la lasta tago antaŭ la projekta pruvo, provis rafini kaj korekti siajn algoritmojn.

STEM Intensa Lernado-Aliro

konkludo

Post fino de lernejo, ni petis studentojn taksi pasintajn agadojn kaj respondi demandojn pri kiom bone la lernejo renkontis iliajn atendojn, kiajn kapablojn ili akiris, ktp. Ĉiuj studentoj rimarkis, ke ili lernis labori en teamo, distribui taskojn kaj plani sian tempon.

Studentoj ankaŭ estis petitaj taksi la utilecon kaj malfacilecon de la kursoj kiujn ili sekvis. Kaj ĉi tie formiĝis du grupoj de taksadoj: por iuj la kursoj ne prezentis multe da malfacilaĵo, aliaj taksis ilin ege malfacilaj.

Ĉi tio signifas, ke la lernejo prenis la ĝustan pozicion restante alirebla por komencantoj en aparta kampo, sed ankaŭ disponigante materialojn por ripetado kaj firmiĝo de spertaj studentoj. Oni devas rimarki, ke la programada kurso (Python) estis notita de preskaŭ ĉiuj kiel nekomplika sed utila. Laŭ studentoj, la plej malfacila kurso estis "Komputila Arkitekturo".

Kiam studentoj estis demanditaj pri la fortoj kaj malfortoj de la lernejo, multaj respondis ke ili ŝatis la instrustilon elektitan, en kiu instruistoj disponigis rapidan kaj personan asistadon kaj respondis demandojn.

Studentoj ankaŭ rimarkis, ke ili ŝatis labori laŭ la maniero de ĉiutaga planado de siaj taskoj kaj fiksi siajn proprajn limdatojn. Kiel malavantaĝoj, studentoj rimarkis la mankon de scio provizita, kiu estis postulata kiam oni laboras kun la bot: kiam oni koneksas, oni komprenas la bazojn kaj principojn de ĝia funkciado.

Preskaŭ ĉiuj studentoj rimarkis, ke la lernejo superis siajn atendojn, kaj tio indikas la ĝustan direkton por organizi la lernejon. Tiel oni devas konservi la ĝeneralajn principojn dum la organizado de la venonta lernejo, konsiderante kaj, se eble, forigante la mankojn notitajn de studentoj kaj instruistoj, eble ŝanĝante la liston de kursoj aŭ la tempon de ilia instruado.

Artikolo-aŭtoroj: teamo laboratorio de moveblaj robotalgoritmoj в JetBrains Research.

PS Nia kompania blogo havas novan nomon. Nun ĝi estos dediĉita al edukaj projektoj de JetBrains.

fonto: www.habr.com

Aldoni komenton