Ci sò assai corsi eccellenti in u mondu di l'educazione di l'ingegneria, ma spessu u curriculum custruitu intornu à elli soffre di un difettu seriu - una mancanza di bona coerenza trà diversi temi. Un pò ughjettu: cumu pò esse?
Quandu un prugramma di furmazione hè furmatu, i prerequisiti è un ordine chjaru in quale e discipline devenu esse studiate sò indicati per ogni corsu. Per esempiu, per custruisce è prugramma un robot mobile primitivu, avete bisognu di sapè un pocu di meccanica per creà a so struttura fisica; basi di l'electricità à u livellu di e lege di Ohm / Kirchhoff, rapprisintazioni di signali digitali è analogichi; operazione cù vettori è matrici per discrìviri sistemi di coordenate è movimenti di u robot in u spaziu; basi di prugrammazione à u livellu di presentazione di dati, algoritmi simplici è strutture di trasferimentu di cuntrollu, etc. per discrive u cumpurtamentu.
Tuttu chistu hè coperto in i corsi universitari ? Di sicuru avè. Tuttavia, cù e lege di Ohm / Kirchhoff avemu a termodinamica è a teoria di u campu; in più di l'operazioni cù matrici è vettori, unu hà da trattà cù e forme di Ghjordanu; in a prugrammazione, studià u polimorfismu - temi chì ùn sò micca sempre necessarii per risolve un prublema pratica simplice.
L'educazione universitaria hè larga - u studiente passa in un front largu è spessu ùn vede micca u significatu è u significatu praticu di a cunniscenza chì riceve. Avemu decisu di turnà u paradigma di l'educazione universitaria in STEM (da e parolle Scienza, Tecnulugia, Ingegneria, Matematica) è creà un prugramma chì hè basatu annantu à a coerenza di a cunniscenza, chì permette un incrementu di cumpletu in u futuru, vale à dì implica una maestria intensiva di i sugetti.
Amparate un novu sughjettu pò esse paragunatu à l'esplorazione di una zona lucale. E quì ci sò duie opzioni: o avemu una mappa assai detallata cù una quantità enorme di ditaglii chì deve esse studiatu (è questu pigghia assai tempu) per capiscenu induve sò i punti di riferimentu principali è cumu si sò in relazione cù l'altri. ; o pudete aduprà un pianu primitivu, nantu à quale solu i punti principali è e so pusizioni relative sò indicati - una tale mappa hè abbastanza per cumincià immediatamente à muvimenti in a direzione ghjusta, clarificà i dettagli mentre andate.
Avemu pruvatu l'approcciu intensivu di apprendimentu STEM in una scola d'invernu, chì avemu tenutu inseme cù i studienti MIT cù u sustegnu di
Preparazione di materiale
A prima parte di u prugramma di a scola era una settimana di classi in i zoni principali, chì includenu l'algebra, i circuiti elettrici, l'architettura di l'informatica, a prugrammazione Python è una introduzione à ROS (Robot Operating System).
I direzzione ùn sò micca stati scelti per casu: cumplementendu l'altri, anu da aiutà i studienti à vede a cunnessione trà e cose apparentemente diverse à u primu sguardu - matematica, elettronica è prugrammazione.
Di sicuru, u scopu principale ùn era micca di dà assai lezioni, ma di dà à i studienti l'uppurtunità di applicà e so cunniscenze appena acquistate in pratica.
In a sezione di l'algebra, i studienti puderanu praticà l'operazioni matrici è risolve i sistemi di equazioni, chì eranu utili à studià i circuiti elettrici. Dopu avè amparatu nantu à a struttura di un transistor è l'elementi lògichi custruiti nantu à a so basa, i studienti puderanu vede u so usu in un dispositivu di processore, è dopu avè amparatu i principii di a lingua Python, scrive un prugramma per un robot veru in questu.
Duckietown
Unu di i scopi di a scola era di minimizzà u travagliu cù simulatori induve pussibule. Per quessa, hè statu preparatu un grande gruppu di circuiti elettronichi, chì i studienti anu da assemblà nantu à una breadboard da cumpunenti veri è pruvà in pratica, è Duckietown hè statu sceltu cum'è a basa per i prughjetti.
Duckietown hè un prughjettu open-source chì implica picculi robots autonomi chjamati Duckiebots è e rete di strade chì viaghjanu. Duckiebot hè una piattaforma di roti dotata di un microcomputer Raspberry Pi è una sola camera.
Basatu nantu à questu, avemu preparatu un inseme di travaglii pussibuli, cum'è a custruzzione di una mappa stradale, a ricerca di l'uggetti è a piantà vicinu à elli, è parechji altri. I studienti puderanu ancu prupone u so propiu prublema è micca solu scrive un prugramma per risolve, ma ancu eseguisce immediatamente nantu à un robot veru.
Insegnamentu
Durante a cunferenza, i prufessori anu prisentatu u materiale utilizendu presentazioni pre-preparate. Certi classi sò stati registrati in video per chì i studienti puderanu fighjà in casa. Durante e lezioni, i studienti anu utilizatu materiale nantu à i so computer, facianu dumande è risolve i prublemi inseme è indipindenti, à volte à a lavagna. Basatu nantu à i risultati di u travagliu, a qualificazione di ogni studiente hè stata calculata separatamente in diversi sugetti.
Fighjemu a cunduzione di e classi in ogni sughjettu in più detail. U primu sughjettu era l'algebra lineare. I studienti anu passatu un ghjornu à studià vettori è matrici, sistemi di equazioni lineari, etc. I travaglii pratichi sò stati strutturati in modu interattivu: i prublemi pruposti sò stati risolti individualmente, è u maestru è l'altri studienti furnianu cumenti è cunsiglii.
U sicondu sughjettu hè l'electricità è i circuiti simplici. I studienti anu amparatu i principii di l'elettrodinamica: tensione, corrente, resistenza, lege di Ohm è lege di Kirchhoff. I travaglii pratichi sò stati in parte fatti in u simulatore o cumpletu nantu à u bordu, ma più tempu hè statu passatu à custruisce circuiti veri cum'è circuiti lògichi, circuiti oscillanti, etc.
U prossimu tema hè l'Architettura di l'informatica - in un sensu, un ponte chì unisce a fisica è a prugrammazione. I studienti anu studiatu a basa fundamentale, u significatu di quale hè più teoricu chè praticu. In pratica, i studienti anu designatu in modu indipendenti circuiti aritmetici è logichi in u simulatore è anu ricevutu punti per i travaglii cumpletati.
U quartu ghjornu hè u primu ghjornu di prugrammazione. Python 2 hè statu sceltu cum'è a lingua di prugrammazione perchè hè quella utilizata in a prugrammazione ROS. Stu ghjornu era strutturatu cusì: i prufessori prisentanu u materiale, detti esempi di risolve i prublemi, mentre chì i studienti li ascoltavanu, pusendu à i so computer, è ripetenu ciò chì u maestru hà scrittu nantu à a tavula o slide. Allora i studienti anu risoltu prublemi simili per sè stessu, è i suluzioni sò stati dopu valutati da i prufessori.
U quintu ghjornu era dedicatu à ROS: i picciotti anu amparatu nantu à a prugrammazione di robot. L'intera ghjurnata di a scola, i studienti si sò pusati à i so computer, eseguendu u codice di u prugramma chì u maestru parlava. Puderanu eseguisce unità ROS basiche per sè stessu è sò stati ancu introdutti in u prughjettu di Duckietown. À a fine di stu ghjornu, i studienti eranu pronti à principià u prughjettu parte di a scola - risolviri prublemi pratichi.
Descrizzione di prughjetti selezziunati
I studienti sò stati dumandati à formà squadre di trè è sceglie un tema di prughjettu. In u risultatu, i seguenti prughjetti sò stati aduttati:
1. Calibrazione di u culore. Duckiebot hà bisognu di calibrerà a camera quandu e cundizioni di illuminazione cambianu, cusì ci hè un compitu di calibrazione automatica. U prublema hè chì i chjassi di culore sò assai sensittivi à a luce. I participanti anu implementatu una utilità chì mette in risaltu i culori necessarii in un quadru (rossu, biancu è giallu) è custruiscenu intervalli per ogni culore in formatu HSV.
2. Taxi Anatra. L'idea di stu prughjettu hè chì Duckiebot puderia piantà vicinu à un ughjettu, pigliallu è seguità una certa strada. Un anatra giallu brillanti hè statu sceltu cum'è l'ughjettu.
3. Custruzzione di un graficu stradale. Ci hè un compitu di custruisce un graficu di strade è intersezioni. L'obiettivu di stu prughjettu hè di custruisce un gràficu stradale senza furnisce dati ambientali a priori à Duckiebot, affindu solu à e dati di a camera.
4. Carru di patrulla. Stu prughjettu hè statu inventatu da i studienti stessi. Anu prupostu d'insignà à un Duckiebot, una "pattuglia", per perseguisce un altru, un "violatore". Per questu scopu, hè stata utilizata u mecanismu di ricunniscenza di mira cù u marcatore ArUco. Appena a ricunniscenza hè finita, un signalu hè mandatu à u "intrudu" per cumpiendu u travagliu.
Calibrazione di u culore
L'obiettivu di u prughjettu di Calibrazione di u Colore era di aghjustà a gamma di culori di marcatura ricunnisciute à e novi cundizioni di illuminazione. Senza tali aghjustamenti, a ricunniscenza di e linee di stop, i separatori di corsia è e fruntiere di strada sò diventate sbagliate. I participanti pruposti una suluzione basata nantu à mudelli di culore di marcatura di preprocessing: rossu, giallu è biancu.
Ognunu di sti culori hà una gamma predeterminata di valori HSV o RGB. Utilizendu sta gamma, si trovanu tutti i spazii di u quadru chì cuntenenu culori adattati, è u più grande hè sceltu. Questa zona hè presa cum'è u culore chì deve esse ricurdatu. E formule statistiche cum'è u calculu di a media è a deviazione standard sò allora aduprate per stimà a nova gamma di culori.
Questa gamma hè registrata in i schedarii di cunfigurazione di a camera di Duckiebot è pò esse usata dopu. L'approcciu descrittu hè statu appiicatu à tutti i trè culori, finamente furmendu intervalli per ognunu di i culori di marcatura.
I testi anu dimustratu un ricunniscenza quasi perfetta di e linee di marcatura, salvu in i casi induve i materiali di marcatura usavanu nastro lucido, chì riflette fonti di luce cusì forte chì da l'angolo di vista di a camera i marcati parevanu bianchi, indipendentemente da u so culore originale.
Duck Taxi
U prughjettu Duck Taxi implicava a custruzzione di un algoritmu per circà un passageru di anatra in a cità, è poi u trasportu à u puntu necessariu. I participanti divisu stu prublema in dui: rilevazione è muvimentu longu u graficu.
I studienti anu realizatu a deteczione di l'anatra facendu l'assunzione chì una anatra hè qualsiasi zona in u quadru chì pò esse ricunnisciuta cum'è giallu, cù un triangulu rossu (beccu) nantu à questu. Appena una tale zona hè rilevata in u prossimu quadru, u robot deve avvicinà è poi si ferma per uni pochi di seconde, simulendu l'atterrissimu di un passageru.
Allora, avè u gràficu stradale di tuttu u duckietown è a pusizione di u bot guardatu in memoria in anticipu, è ancu riceve u destinazione cum'è input, i participanti custruiscenu un percorsu da u puntu di partenza à u puntu d'arrivu, utilizendu l'algoritmu di Dijkstra per truvà camini in u graficu. . L'output hè prisentatu cum'è un inseme di cumandamenti - gira à ognuna di e seguenti intersezioni.
Graficu di Strade
U scopu di stu prughjettu era di custruisce un graficu - una reta di strade in Duckietown. I nodi di u graficu risultatu sò intersezioni, è l'arcu sò strade. Per fà questu, Duckiebot deve scopre a cità è analizà a so strada.
Duranti u travagliu nantu à u prugettu, l'idea di creà un gràficu ponderatu hè stata cunsiderata, ma dopu scartata, in quale u costu di un bordu hè determinatu da a distanza (tempu di viaghju) trà intersezioni. L'implementazione di sta idea hè stata troppu intensiva in u travagliu, è ùn ci era micca abbastanza tempu per questu in a scola.
Quandu Duckiebot ghjunghje à a prossima intersezzione, sceglie a strada chì porta fora di l'intersezzione chì ùn hà ancu pigliatu. Quandu tutte e strade in tutte l'intersezzione sò state passate, a lista generata di adiacenza di intersezzione resta in a memoria di u bot, chì hè cunvertita in una maghjina cù a biblioteca Graphviz.
L'algoritmu prupostu da i participanti ùn era micca adattatu per un Duckietown aleatoriu, ma hà travagliatu bè per una piccula cità di quattru intersezzione utilizata in a scola. L'idea era di aghjunghje un marcatore ArUco à ogni intersezzione chì cuntene un identificatore di intersezzione per seguità l'ordine in quale l'intersezzione eranu guidate.
U diagramma di l'algoritmu sviluppatu da i participanti hè mostratu in a figura.
Patru Car
L'obiettivu di stu prughjettu hè di circà, perseguite è detinenza un bot violante in a cità di Duckietown. Un bot di pattuglia deve muvimenti longu l'anellu esterno di una strada di a cità, in cerca di un bot intruso cunnisciutu. Dopu avè rilevatu un intruso, u bot di pattuglia deve seguità l'intrusu è u furzà à piantà.
U travagliu principia cù a ricerca di una idea per a deteczione di un bot in un quadru è ricunnosce un intruso in questu. A squadra hà prupostu d'equipà ogni bot in a cità cun un marcatu unicu in u spinu - cum'è e vitture veri anu numeri di registrazione statali. I marcatori ArUco sò stati scelti per questu scopu. Sò stati utilizati prima in duckietown perchè sò faciuli di travaglià è permettenu di determinà l'orientazione di u marcatore in u spaziu è a distanza da ellu.
In seguitu, era necessariu di assicurà chì u bot di patrulla si moveva strettamente in u circhiu esterno senza firmà in intersezzione. Per automaticamente, Duckiebot si move in una corsia è si ferma à a linea di stop. Allora, cù l'aiutu di i segni stradali, determina a cunfigurazione di l'intersezzione è face una scelta nantu à a direzzione di u passaghju di l'intersezzione. Per ognuna di e tappe descritte, unu di i stati di a macchina di u statu finitu di u robot hè rispunsevule. Per caccià i tappe à l'intersezzione, a squadra hà cambiatu a macchina statale in modu chì quandu si avvicinava à a linea di stop, u bot hà cambiatu immediatamente à u statu di guidà direttamente à traversu l'intersezzione.
U passu prossimu era di risolve u prublema di piantà u bot intrus. U squadra hà fattu l'assunzione chì u bot di patrulla puderia avè accessu SSH à ognuna di i bots in a cità, vale à dì, avè qualchì infurmazione nantu à quali dati d'autorizazione è quale id ogni bot hà. Cusì, dopu avè rilevatu l'intrudu, u bot di patrulla hà cuminciatu à cunnette via SSH à u bot d'intrudu è chjude u so sistema.
Dopu avè cunfirmatu chì u cumandamentu di spegnimentu hè statu cumpletu, u bot di patrulla hè ancu firmatu.
L'algoritmu di u funziunamentu di un robot di patrulla pò esse rapprisintatu cum'è u schema seguente:
U travagliu nantu à i prughjetti
U travagliu hè statu urganizatu in un formatu simili à Scrum: ogni matina i studienti pianificanu i travaglii per u ghjornu attuale, è à a sera anu infurmatu nantu à u travagliu fattu.
In u primu è l'ultimu ghjornu, i studienti preparanu presentazioni chì descrivanu u compitu è cumu risolve. Per aiutà i studienti à seguità i so piani scelti, i prufessori di Russia è di l'America eranu constantemente presenti in e stanze induve u travagliu nantu à i prughjetti hè statu fattu, risponde à e dumande. A cumunicazione hè stata principalmente in inglese.
I risultati è a so manifestazione
U travagliu nantu à i prughjetti durò una settimana, dopu chì i studienti presentanu i so risultati. Ognunu hà preparatu presentazioni in quale si parlava di ciò chì hà amparatu in sta scola, chì eranu e lezioni più impurtanti chì anu amparatu, ciò chì li piacia o ùn li piacia micca. Dopu quì, ogni squadra hà prisentatu u so prughjettu. Tutte e squadre anu cumpletu i so compiti.
A squadra chì implementa a calibrazione di u culore hà finitu u prughjettu più veloce di l'altri, cusì anu avutu ancu u tempu di preparà a documentazione per u so prugramma. È a squadra chì travaglia nantu à u graficu di a strada, ancu in l'ultimu ghjornu prima di a manifestazione di u prughjettu, hà pruvatu à raffinà è curreghje i so algoritmi.
cunchiusioni
Dopu avè finitu a scola, avemu dumandatu à i studienti di valutà l'attività passate è di risponde à e dumande nantu à quantu a scola risponde à e so aspettative, quali cumpetenze anu acquistatu, etc. Tutti i studienti anu nutatu chì anu amparatu à travaglià in una squadra, distribuisce i travaglii è pianificà u so tempu.
I studienti sò stati ancu dumandati à valutà l'utilità è a difficultà di i corsi chì anu pigliatu. È quì sò stati furmati dui gruppi di valutazioni: per certi i corsi ùn anu micca assai difficultà, altri l'hanu qualificatu cum'è estremamente difficili.
Questu significa chì a scola hà pigliatu a pusizione ghjusta per esse accessibile à i principianti in un campu particulare, ma ancu furnisce materiali per a ripetizione è a cunsulidazione da i studienti sperimentati. Hè da nutà chì u cursu di prugrammazione (Python) hè statu nutatu da quasi tutti cum'è pocu cumplicatu ma utile. Sicondu i studienti, u cursu più difficiule era "Architettura di l'informatica".
Quandu i studienti sò stati dumandati nantu à i punti di forza è debule di a scola, assai rispondenu chì li piacia u stilu d'insignamentu sceltu, in quale i prufessori furnianu assistenza rapida è persunale è rispondenu à e dumande.
I studienti anu ancu nutatu chì li piacia à travaglià in u modu di pianificazione di ogni ghjornu di e so attività è stabilisce e so scadenze. Cum'è disadvantages, i studienti anu nutatu a mancanza di cunniscenza furnita, chì era necessariu quandu u travagliu cù u bot: quandu si cunnetta, capiscenu i fundamenti è i principii di u so funziunamentu.
Quasi tutti i studienti anu nutatu chì a scola superava e so aspettative, è questu indica a direzzione ghjusta per urganizà a scola. Cusì, i principii ginirali deve esse mantinuti à l'urganizazione di a scola prussima, tenendu in contu è, s'ellu hè pussibule, eliminendu e carenze nutate da i studienti è i prufessori, possibbilmente cambiendu a lista di i corsi o u timing di u so insignamentu.
Autori di l'articulu: squadra
PS U nostru blog corporativu hà un novu nome. Avà serà dedicatu à i prughjetti educativi di JetBrains.
Source: www.habr.com