KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Insenerihariduse maailmas on palju suurepäraseid kursuseid, kuid sageli on neile rajatud õppeprogrammil üks tõsine puudus — erinevate teemade vahel puudub hea seotus. Võib vastu vaielda: kuidas see võimalik on?

Õppeprogrammi koostamisel määratakse igale kursusele eeltingimused ja selge järjestus, milles aineid õppida. Näiteks, et koguda ja programmeerida lihtsat mobiilset robotit, on vajalik osata natuke mehaanikat, et luua tema füüsiline konstruktsioon; elektri aluseid Ohmi/Kirchhoffi seaduste tasemel; digitaalsete ja analoogsignaalide mõistmist; vektorite ja maatriksite opereerimist, et kirjeldada koordinaatsüsteeme ja roboti liikumist ruumis; andmete esitamise, lihtsate algoritmide ja juhtimisstruktuuride programmimise aluseid ja nii edasi roboti käitumise kirjeldamiseks.

Kas see kõik on ülikooli kursustes? Loomulikult on. Siiski, Omi/Kirchhoffi seadustest saame termodünaamika ja väljateooria; lisaks maatriksite ja vektori operatsioonidele tuleb selgeks saada Jordan'i vormid; programmeerimises õppida polümorfismi — teemad, mis ei ole alati vajalikud lihtsa praktilise ülesande lahendamiseks.

Ülikooliharidus on ulatuslik — üliõpilane läheneb laial rinde ja tihti ei näe teadmiste, mida ta omandab, mõtet ega praktilist tähtsust. Otsustasime muuta STEM (teadus, tehnoloogia, inseneeria, matemaatika) ülikoolihariduse paradigmat ja luua programmi, mis tugineb teadmiste seotusele, võimaldades tulevikus täielikkuse kasvatamist, see tähendab intensiivset aine omandamist.

Uue teadusala uurimist võib võrrelda mingi ala uurimisega. Siin on kaks varianti: kas meie ees on väga detailne kaart, millel on palju detaile, mida tuleb uurida (ja see võtab aega), et mõista, kus on peamised suunavad punktid ja kuidas need üksteisega suhestuvad; või võime kasutada primitiivset plaani, kus on tähistatud vaid peamised punktid ja nende omavaheline asetus — selline kaart on piisav, et kohe õigesse suunda liikuda, täpsustades detaile teel.

Intensiivse STEM-õppe lähenemist katsetasime talveschool'is, mille korraldasime koos MIT üliõpilastega toetusel JetBrains Research.

Materjali ettevalmistamine


Kooli programmi esimene osa oli nädal peamiste teemadega, kuhu kuulusid algebra, elektriahelad, arvuti arhitektuur, Python programmeerimine ja tutvumine ROS-iga (Robot Operating System).

Suunad ei olnud juhuslikult valitud: nad pidid üksteist täiendades aitama tudengitel näha seoseid, mis näiliselt olid erinevad — matemaatika, elektroonika ja programmeerimine.

Muidugi, põhieesmärk ei olnud lugeda palju loenguid, vaid anda tudengitele võimalus rakendada just omandatud teadmisi praktikas.

Algebra osas said tudengid harjutada matriitside operatsioone ja võrrandisüsteemide lahendamist, mis osutus vajalikuks elektrikeeriste uurimisel. Tutvudes transistorite ülesehitusele ja nende põhjal loodud loogikate elementidele, said õpilased näha nende rakendust protsessori ülesehituses, ning pärast Python keele alusteadmiste omandamist, kirjutada selle abil programmi tõelisele robotile.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Duckietown


Kooli üheks ülesandeks oli simulatsioonide kasutamise minimeerimine seal, kus see oli võimalik. Seetõttu valmis suur hulk elektroonikaringe, mille tudengid pidid kokku panema reaalsest komponentide katseplaadil ja neid praktikas testima; projektide aluseks valiti Duckietown.

Duckietown — avatud projekt, mis hõlmab väikseid autonoomseid roboteid, mida nimetatakse Duckiebot'ideks, ja teede võrgustikku, mööda mida nad liikuvad. Duckiebot on rattaplatvorm, mis on varustatud Raspberry Pi mikrokontrolleri ja ühe kaameraga.

Selle alusel oleme koostanud hulga võimalikke ülesandeid, näiteks kaardistamine, objektide leidmine ja nende kõrvale peatumine, ning veel mitmeid teisi. Üliõpilased said samuti pakkuda oma probleeme ning mitte ainult kirjutada programmi nende lahendamiseks, vaid ka kohe käivitada see reaalses robotis.

Õpetamine


Loengu ajal tutvustasid õpetajad materjale, kasutades eelnevalt ette valmistatud esitusi. Mõned tunnid salvestati videotena, pakkudes üliõpilastele võimalust neid kodus vaadata. Loengute ajal kasutasid üliõpilased oma arvutites materjale, esitasid küsimusi, lahendasid ülesandeid ühiselt ja iseseisvalt, mõnikord tahvli ees. Töö tulemuste põhjal arvutati iga üliõpilase reiting eraldi erinevates ainetes.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Arutame iga aine kohta eraldi. Esimene aine oli lineaartootmine. Üliõpilased õppisid ühe päeva jooksul vektoreid ja maatrikseid, lineaarsete võrrandite süsteeme jne. Praktilised ülesanded viidi läbi interaktiivsel viisil: pakutavad ülesanded lahendati individuaalselt ning õppejõud ja teised üliõpilased andsid kommentaare ja vihjeid.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Teine aine on elektri ja lihtsad skeemid. Üliõpilased õppisid elektrodünaamika põhialuseid: pinge, vool, takistus, Ohmi seadus ja Kirchhoffi seadused. Praktilised ülesanded tehti osaliselt simulaatoris või viidi läbi tahvlil, kuid rohkem aega veedeti reaalskeemide, näiteks loogika skeemide, resonantsskeemide jne, ehitamiseks.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Järgmine teema on arvutiarhitektuur, mis on teatud mõttes sild füüsika ja programmeerimise vahel. Üliõpilased uurisid fundamentaalset baasi, mille tähtsus on pigem teoreetiline kui praktiline. Praktika raames projekteerisid üliõpilased iseseisvalt aritmeetika-loogilisi skeeme simulaatoris ning saadud ülesannete eest said nad hindeid.

Neljas päev - esimene päev programmeerimises. Programmeerimiskeeleks valiti Python 2, kuna just seda kasutatakse ROSi programmeerimisel. See päev toimus järgmiselt: õpetajad selgitasid teemat, tõid näiteid probleemide lahendamiseks, samal ajal kui üliõpilased kuulasid neid arvutite taga, kandes ette õpetaja tahvlil või slaidil kirjutatut. Seejärel lahendasid õpilased sarnaseid ülesandeid ise, mille lahendused hindasid õpetajad.

Viies päev oli pühendatud ROSile: noored tutvusid robotite programmeerimisega. Kogu õppepäeva jooksul istusid üliõpilased arvutite taga, käivitades õpetaja mainitud koodijuppe. Nad said ise käivitada ROSi põhikomponente ning tutvuda Duckietown projektiga. Päeva lõpus olid üliõpilased valmis alustama kooli projektitööd - praktiliste probleemide lahendamist.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Valitud projektide kirjeldus

Üliõpilastele pakuti võimalust ühenduda kolmesed gruppidesse ja valida endale projekti teema. Lõppkokkuvõttes olid vastu võetud järgmised projektid:

1. Värvide kalibreerimine. Duckiebot vajab kaamera kalibreerimist valgustingimuste muutumisel, mistõttu on olemas automaatse kalibreerimise ülesanne. Probleem seisneb selles, et värvide vahemikud on valgustuse suhtes väga tundlikud. Osalejad rakendasid utiliidi, mis eristaks kaadris nõutavaid värve (punane, valge ja kollane) ning ehitaks iga värvi jaoks HSV-formaadis vahemikud.

2. Duck Taxi. Selle projekti idee on see, et Duckiebot saaks peatuda teatud objekti juures, võtta selle peale ja järgida teatud marsruuti. Objektina valiti ere kollane pardipoeg.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

3. Teede graafi loomine. On olemas ülesanne luua teede ja ristmike graaf. Selle projekti eesmärk on luua teede graaf ilma eelneva teabeta Duckieboti ümbrusest, tuginedes ainult kaamera andmetele.

4. Patrullauto. See projekt sündis iseäranis üliõpilaste hulgas. Nad otsustasid õpetada üht Duckieboti, nn „patrulli”, jälitama teist – „rikkujat”. Selleks kasutati sihikutuvastamise mehhanismi ArUco-märgiste abil. Niipea kui tuvastamine on lõpule viidud, saadetakse „rikkujale” signaal töö lõpetamise kohta.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Värvi kalibreerimine

Värvi kalibreerimise projekti eesmärk oli kohandada tuvastatavate värvide spektrit uute valgustingimuste jaoks. Ilma selliste kohandusteta muutus peatuste, teepiirete ja teede servade tuvastamine mittetäielikuks. Osalejad pakkusid lahenduse, mis põhines maalimise värvide: punase, kollase ja valge mustrite eeltöötlusel.

Igaühe selle värvi jaoks on määratud eelhäälestatud HSV või RGB väärtuste vahemik. Selle vahemiku kasutamisel kaadris asuvad kõik alad, mis sisaldavad sobivaid värve, ja neist valitakse suurim. See ala võetakse värvina, mille tuleb meeles pidada. Seejärel kasutatakse statistilisi valemeid, nagu keskmise ja standardhälbe arvutamine, et hinnata uut värvivaliku vahemikku.

See vahemik salvestatakse Duckieboti kaamera konfiguratsioonifailidesse ja seda saab kasutada hiljem. Kirjeldatud lähenemist rakendati kõikidele kolmele värvile, luues lõpuks vahemikud iga märgistuse värvi jaoks.

Testid näitasid peaaegu ideaalset märgistusjoonte tuvastamist, välja arvatud juhtudel, kui märgistuse materjaliks kasutati läikivaid lint, mis peegeldasid valgustusallikaid nii tugevalt, et kaamera vaatenurgast tundus märgistus valge, olenemata selle algsest värvist.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Duck Taxi

Duck Taxi projekti hõlmas linna pardipoja otsingu algoritmi loomist ja selle edasiviimist soovitud punkti. Osalejad jagasid selle ülesande kaheks: tuvastamine ja graafis liikumine.

Üliõpilased viisid läbi pardipoja tuvastamise, tehes eeldust, et pardiks nimetatakse igat ala kaadril, mida saab ära tunda kui kollast, millel on punane kolmnurk (nokks). Kui selline ala tuvastatakse järgmisel kaadril, peaks robot selle poole liikuma ja seejärel peatuma paariks sekundiks, jäljendades reisija maandumist.

Seejärel, omades eelnevalt mällu pandud duckietowni teede graafi ja roboti asukohta, ning saadud sihtkoha sisendiga, koostavad osalejad tee väljaminekupunktist saabumispunkti, kasutades Dijkstra algoritmi graafidis teede leidmiseks. Väljund esitatakse käskude kogumina - pöörded igas järgmises ristis.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Teede graaf

Selle projekti eesmärk oli luua graaf — teedevõrk Duckietownis. Tulemuseks saadud graafi sõlmed on ristmiked ja kaared — teed. Selleks peab Duckiebot uurima linna ja analüüsima oma marsruuti.

Projekti käigus kaaluti, kuid seejärel loobuti idee rakendamisest, kus kaaluti kaalu graaf, kus serva maksumus määratakse ristmike vahelise kauguse (aega ületamiseks) järgi. Selle idee rakendamine osutus liiga ajakulukaks ja selleks poleks kooli raames piisavalt aega.

Kui Duckiebot jõuab järgmisse ristmikku, valib ta tee, mis väljub ristmikust, millega ta veel liikunud pole. Kui kõik teed kõikidel ristmikel on läbitud, jääb boti mällu kujundatud naabrusnimekiri ristmikest, mis muudetakse pildiks Graphvizi teegi abil.

Osalejate poolt pakutud algoritm ei sobi juhuslikuks Duckietowni, kuid see töötas hästi väikese linna puhul, mis koosneb neljast ristumisest ja mida kasutati kooli raames. Idee oli täiendada igat ristmikki ArUco-märgisega, mis sisaldab ristmiku identifikaatorit, et jälgida ristmike läbimise järjekorda.
Osalejate välja töötatud algoritmi tööselgitus on esitatud joonisel.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Patrulli auto

Selle projekti eesmärk on otsida, jälitada ja kinnipidada rikkumisbot Duckietownis. Patrulli bot peab liikuma linna ringteel, otsides eelnevalt tuntud rikkumisbot'i. Pärast rikkumise avastamist peab patrulli bot jälitama rikkumist ja sundima seda peatuma.

Töö algas idee leidmisest, kuidas tuvastada kaameral boti ja selles tuvastajat. Meeskond pakkus, et iga linna bot varustatakse taga unikaalse märkega — just nagu reaalsed autod omavad riiklikke registreerimisnumbreid. Selleks valiti ArUco-märgid. Need olid varem juba Duckietownis kasutusel, sest nendega on lihtne töötada ja nad võimaldavad määrata märgi orienteeritust ruumis ning kaugust sellest.

Edasi tuli tagada, et patrullibot liiguks rangelt mööda välist ringi, peatudes ristmikel. Vaikimisi liigub Duckiebot rajal ja peatub peatusjoonel. Seejärel tuvastab see liiklusmärkide abil ristmiku konfiguratsiooni ja teeb valiku sõidusuuna osas. Iga eelpool kirjeldatud etappi juhib roboti lõppautomaat. Üksikasjalike peatuste vältimiseks ristmikel muudeti olekute automaat nii, et peatudes peatusjoonel, liigub bot kohe otse ristmiku ületamise olekusse.

Järgmine samm oli pahatahtliku boti peatamise ülesande lahendamine. Meeskond tegi oletuse, et patrulliboti võib olla SSH-juurdepääs igale botile linnas, st tal on mingisugune teave selle kohta, milliseid autentimisandmeid ja millist ID-d iga bot omab. Nii et pärast pahatahtliku boti tuvastamist hakkas patrullibot ühenduma SSH kaudu pahatahtliku botiga ja selle süsteemi välja lülitama.

Pärast kinnitust, et väljalülitamise käsk on täidetud, seisis patrullibot ka ise paigal.
Patrullrobotite töö algoritmi saab esitada järgmise skeemina:

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Töö projektidega

Töö korraldati sarnases formaadis nagu Scrum: iga hommik planeerisid tudengid päevased ülesanded ja õhtul andsid aru tehtud töö kohta.

Esimese ja viimase päeva jooksul valmistasid üliõpilased ette esitusi, kus nad kirjeldasid antud ülesannet ja selle lahendamise meetodeid. Üliõpilaste aitamiseks olid projektide toimetamisruumides pidevalt kohal nii Venemaa kui ka Ameerika õppejõud, kes vastasid küsimustele. Suhtlemine toimus peamiselt inglise keeles.

Tulemused ja nende esitamine

Projektidega töötamine kestis ühe nädala, mille lõpus esitasid üliõpilased oma tulemused. Kõik valmistusid esitlusteks, kus nad rääkisid, mida nad selles koolis õppisid, millised olid kõige olulisemad õppetunnid, mis neile meeldis või ei meeldinud. Pärast seda esitas iga meeskond oma projekti. Kõik meeskonnad said oma ülesannetega hakkama.

Värvide kalibreerimise meeskond lõpetas oma projekti kiiremini kui teised, seega suutsid nad ette valmistada ka oma programmi dokumentatsiooni. Tee graafikuga tegeleva meeskonna, isegi viimase päeva jooksul enne projekti esitamist, üritas oma algoritme täiendada ja parandada.

KESKÕLAGE ÕPPELÄHENDUSTE REKLAAM

Kokkuvõte

Kooli lõpetamise järgselt palusime tudengitel hinnata varasemaid tegevusi ja vastata küsimustele, kuivõrd kool vastas nende ootustele, milliseid oskusi nad omandasid jne. Kõik tudengid märkisid, et nad on õppinud töötama meeskonnas, ülesandeid jagama ja oma aega planeerima.

Tudengitele pakuti ka võimalust hinnata läbitud kursuste kasulikkust ja keerukust. Siin kujunesid samuti välja kaks grupi hindamist: mõned leidsid, et kursused ei olnud keerulised, teised aga hindasid neid maksimaalselt keerukateks.

See tähendab, et kool on võtnud õige positsiooni, jäädes algajatele kergesti ligipääsetavaks, kuid pakkudes ka materjale edasijõudnud tudengitele kordamiseks ja kindlustamiseks. Tuleb märkida, et programmeerimiskursus (Python) oli enamikule osalejatest tähistatud kui mitte liiga keeruline, kuid kasulik. Kõige keerulisemaks, tudengite arvates, osutus kursus 'Arvutite arhitektuur'.

Kui üliõpilastelt küsiti kooli puudusi ja plusse, vastas paljud, et neile meeldis valitud õpetamisstiil, kus õpetajad pakkusid kiiresti ja individuaalselt abi ning vastasid tekkinud küsimustele.

Lisaks rõhutasid õpilased, et neile meeldis igapäevaste ülesannete planeerimise režiimis töötamine ja ise tähtaegade seadmine. Puudustena märkisid tudengid teadmiste nappust, mis oli vajalik robotiga töötamiseks: ühendamisel, põhimõtete mõistmisel ja tööprintsipide mõistmisel.

P practically kõik üliõpilased märkisid, et kool ületas nende ootused, mis näitab, et kooli korraldamine on õiges suunas. Seega tuleks järgmise kooli korraldamisel säilitada üldised põhimõtted, arvesse võttes ja võimaluse korral kõrvaldaud üliõpilaste ja õpetajate mainitud puudusi, muutes kursuste loetelu või nende õpetamise aega.

Artikli autorid: meeskond mobiilsete robotite algoritmide laboratoorium ühes JetBrains Research.

P.S. Meie ettevõtte blogil on uus nimi. Nüüd keskendub see JetBrains'i haridusprojektidele.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster