Im Bereich der Ingenieurausbildung gibt es viele groĂartige Kurse, doch oft haben die darauf basierenden LehrplĂ€ne einen wesentlichen Nachteil â sie weisen eine unzureichende Verbindung zwischen den verschiedenen Themen auf. Wie kann das sein, fragt man sich?
Bei der Erstellung eines Studienplans werden fĂŒr jeden Kurs die Voraussetzungen und eine klare Reihenfolge angegeben, in der die FĂ€cher zu lernen sind. Zum Beispiel benötigt man ein Grundwissen in Mechanik, um die physische Konstruktion eines einfachen mobilen Roboters zusammenzubauen und zu programmieren; Kenntnisse ĂŒber Elektrotechnik basierend auf den Gesetzen von Ohm/Kirchhoff, sowie das VerstĂ€ndnis von digitalen und analogen Signalen; Vektor- und Matrixoperationen, um Koordinatensysteme und die Bewegungen des Roboters im Raum zu beschreiben; sowie Grundlagen des Programmierens, einschlieĂlich DatenreprĂ€sentation, einfacher Algorithmen und Kontrollstrukturen, um das Verhalten zu definieren.
Gibt es das alles in UniversitĂ€tskursen? NatĂŒrlich. Neben den Gesetzen von Ohm und Kirchhoff behandelt man auch Thermodynamik und Feldtheorie; zusĂ€tzlich zu Matrix- und Vektoroperationen muss man sich auch mit Jordan-Formen vertraut machen; beim Programmieren lernt man Polymorphismus â Themen, die nicht immer fĂŒr die Lösung einfacher praktischer Aufgaben notwendig sind.
Die universitĂ€re Ausbildung ist umfangreich â die Lernenden bewegen sich breit und sehen oft keinen Sinn und keine praktische Bedeutung in dem Wissen, das sie erwerben. Wir haben uns entschieden, das Paradigma der universitĂ€ren STEM-Ausbildung (Wissenschaft, Technologie, Ingenieurwesen und Mathematik) zu revolutionieren und ein Programm zu entwickeln, das auf der Vernetzung des Wissens basiert und die kĂŒnftige Vertiefung ermöglicht, also eine intensive Auseinandersetzung mit den FĂ€chern voraussetzt.
Das Erlernen eines neuen Themengebiets lĂ€sst sich mit der Erkundung eines Gebiets vergleichen. Dabei gibt es zwei Möglichkeiten: Entweder haben wir eine sehr detaillierte Karte mit einer FĂŒlle von Informationen, die wir studieren mĂŒssen (was viel Zeit in Anspruch nimmt), um zu verstehen, wo die wichtigsten Orientierungspunkte liegen und wie sie zueinander stehen; oder wir nutzen einen einfachen Plan, auf dem nur die Hauptpunkte und ihre Anordnung eingezeichnet sind â eine solche Karte reicht aus, um sofort in die richtige Richtung zu gehen und die Details im Laufe des Weges zu klĂ€ren.
Der Ansatz des intensiven STEM-Trainings wurde wĂ€hrend der Winterakademie erprobt, die wir gemeinsam mit Studenten des MIT mit UnterstĂŒtzung von
Materialvorbereitung
Der erste Teil des Programms war eine Woche Unterricht zu den Hauptthemen, die Algebra, elektrische Schaltungen, Computerarchitektur, Programmierung in Python und eine EinfĂŒhrung in ROS (Robot Operating System) umfassten.
Die Themen wurden nicht zufĂ€llig ausgewĂ€hlt: Sie sollten einander ergĂ€nzen und den Studierenden helfen, die Verbindung zwischen scheinbar unterschiedlichen Dingen â Mathematik, Elektronik und Programmierung â zu erkennen.
NatĂŒrlich war das Hauptziel nicht, viele Vorlesungen zu halten, sondern den Studierenden die Möglichkeit zu geben, das neu erlernte Wissen praktisch anzuwenden.
Im Abschnitt Algebra konnten die Studierenden ihre FĂ€higkeiten im Umgang mit Matrizen und der Lösung von Gleichungssystemen ĂŒben, die sich beim Studium elektrischer Schaltungen als nĂŒtzlich erwiesen. Nachdem sie die Funktionsweise von Transistoren und logischen Elementen, die auf ihnen basieren, verstanden hatten, konnten die Lernenden deren Anwendung im Aufbau eines Prozessors erkennen und nach dem Erlernen der Grundlagen von Python ein Programm fĂŒr einen echten Roboter schreiben.

Duckietown
Eine der Aufgaben der Schule war es, die Arbeit mit Simulatoren dort zu minimieren, wo es möglich war. Daher wurde ein umfangreiches Set an Schaltungen vorbereitet, das die Studierenden auf einem realen Breadboard aus echten Komponenten zusammenbauen und in der Praxis testen sollten; als Basis fĂŒr die Projekte wurde Duckietown gewĂ€hlt.
Duckietown ist ein offenes Projekt, das kleine autonome Roboter namens Duckiebots und ein Netzwerk von StraĂen umfasst, auf denen sie sich bewegen. Der Duckiebot ist eine Radplattform, die mit einem Raspberry Pi Mikrocomputer und einer Kamera ausgestattet ist.
Auf dieser Grundlage haben wir eine Reihe von möglichen Aufgaben vorbereitet, wie das Erstellen von StraĂenkarten, das Finden von Objekten und das Anhalten in deren NĂ€he sowie viele andere. Auch Studenten konnten eigene Probleme vorschlagen und nicht nur ein Programm zu dessen Lösung schreiben, sondern es auch sofort auf einem echten Roboter ausfĂŒhren.
Unterricht
WĂ€hrend der Vorlesung prĂ€sentierten die Dozenten das Material anhand vorbereiteter PrĂ€sentationen. Einige Sitzungen wurden aufgezeichnet, sodass die Studenten die Möglichkeit hatten, sie zu Hause anzusehen. WĂ€hrend der Vorlesungen arbeiteten die Studenten mit Materialien auf ihren Computern, stellten Fragen, lösten Aufgaben gemeinsam und selbststĂ€ndig und manchmal auch an der Tafel. Am Ende der Arbeit wurde fĂŒr jeden Studenten eine Rangliste in verschiedenen FĂ€chern erstellt.

Lassen Sie uns die DurchfĂŒhrung der Unterrichtsstunden zu jedem Fach genauer betrachten. Das erste Fach war lineare Algebra. Die Studierenden lernten an einem Tag ĂŒber Vektoren und Matrizen, Systeme linearer Gleichungen usw. Die praktischen Aufgaben wurden interaktiv gestaltet: Die vorgeschlagenen Probleme wurden individuell gelöst, wĂ€hrend der Lehrer und andere Studierende Kommentare und Hinweise gaben.

Das zweite Fach â ElektrizitĂ€t und einfache Schaltungen. Die Studierenden lernten die Grundlagen der Elektrodynamik: Spannung, Strom, Widerstand, das Ohmsche Gesetz und die Kirchhoffschen Gesetze. Die praktischen Aufgaben wurden teilweise im Simulator durchgefĂŒhrt oder an der Tafel bearbeitet, doch mehr Zeit wurde fĂŒr den Bau realer Schaltungen verwendet, wie logische Schaltungen, Schwingkreise usw.

Das nĂ€chste Thema â die Architektur von Computersystemen â ist gewissermaĂen eine BrĂŒcke zwischen Physik und Programmierung. Die Studierenden erforschten das grundlegende Fundament, dessen Bedeutung eher theoretischer als praktischer Natur ist. In der Praxis entwarfen die Studierenden eigenstĂ€ndig arithmetisch-logische Schaltungen im Simulator und erhielten fĂŒr die abgeschlossenen Aufgaben Punkte.
Der vierte Tag war der erste Tag des Programmierens. Die Programmiersprache Python 2 wurde gewĂ€hlt, da sie in der Programmierung fĂŒr ROS verwendet wird. Dieser Tag war folgendermaĂen aufgebaut: Die Dozenten erklĂ€rten den Stoff, gaben Beispiele zur Lösung von Aufgaben, wĂ€hrend die Studenten an ihren Computern saĂen und das, was der Dozent an die Tafel oder auf die Folie schrieb, nachschrieben. AnschlieĂend arbeiteten die Lernenden selbststĂ€ndig an Ă€hnlichen Aufgaben, die dann von den Dozenten bewertet wurden.
Der fĂŒnfte Tag war dem ROS gewidmet: Die Teilnehmer lernten das Programmieren von Robotern kennen. Den ganzen Unterrichtstag ĂŒber saĂen die Studenten an den Computern und fĂŒhrten den Programmcode aus, den der Dozent vorstellte. Sie konnten eigenstĂ€ndig die grundlegenden Einheiten von ROS starten und machten sich zudem mit dem Projekt Duckietown vertraut. Am Ende dieses Tages waren die Studenten bereit, mit dem praktischen Teil der Schule â der Lösung praktischer Aufgaben â zu beginnen.

Beschreibung der gewÀhlten Projekte
Die Studenten wurden aufgefordert, sich in Teams von drei Personen zusammenzuschlieĂen und ein Projektthema auszuwĂ€hlen. Folgende Projekte wurden letztendlich angenommen:
1. Farbkalibrierung. Der Duckiebot benötigt eine Kalibrierung der Kamera, wenn sich die LichtverhĂ€ltnisse Ă€ndern. Daher gibt es die Aufgabe der automatischen Kalibrierung. Das Problem ist, dass die Farbbereiche sehr empfindlich auf die Beleuchtung reagieren. Die Teilnehmer haben ein Tool entwickelt, das die erforderlichen Farben (rot, weiĂ und gelb) im Bild hervorhebt und Bereiche fĂŒr jede Farbe im HSV-Format erstellt.
2. Duck Taxi. Die Idee dieses Projekts besteht darin, dass der Duckiebot an einem bestimmten Objekt anhalten, es aufnehmen und einem vorgegebenen Weg folgen kann. Als Objekt wurde eine leuchtend gelbe Ente ausgewÀhlt.

3. Aufbau eines StraĂennetzes. Es gibt die Aufgabe, ein StraĂennetz und Kreuzungen zu erstellen. Ziel dieses Projekts ist es, ein StraĂennetz zu konstruieren, ohne im Voraus Informationen ĂŒber die Umgebung fĂŒr den Duckiebot bereitzustellen, sondern nur auf Daten von der Kamera zu basieren.
4. Polizeiauto. Dieses Projekt wurde von den Studierenden selbst ins Leben gerufen. Sie haben vorgeschlagen, einen Duckiebot, den âPolizistenâ, zu trainieren, um einen anderen â den âĂbeltĂ€terâ â zu verfolgen. HierfĂŒr wurde ein Zielerkennungssystem mit ArUco-Markern verwendet. Sobald die Erkennung abgeschlossen ist, erhĂ€lt der âĂbeltĂ€terâ ein Signal zur Beendigung seiner AktivitĂ€t.

Farbkalibrierung
Ziel des Projekts Farbkalibrierung war die Anpassung des Erkennungsbereichs fĂŒr die Farben der Markierungen an die neuen LichtverhĂ€ltnisse. Ohne solche Anpassungen wurde die Erkennung von Haltelinien, Fahrbahnmarkierungen und StraĂenrand ungenau. Die Teilnehmer schlugen eine Lösung vor, die auf der Vorverarbeitung von Farbmustern basierte: rot, gelb und weiĂ.
FĂŒr jede dieser Farben wurde ein vorlĂ€ufiger HSV- oder RGB-Werterange festgelegt. Mit diesem Bereich werden im Bild alle Bereiche erfasst, die passende Farben enthalten, und der gröĂte wird ausgewĂ€hlt. Dieser Bereich wird als die Farbe betrachtet, die es zu speichern gilt. AnschlieĂend kommen statistische Formeln zum Einsatz, wie die Berechnung des Durchschnitts und der Standardabweichung, um den neuen Farbbereich zu bewerten.
Dieser Bereich wird in die Konfigurationsdateien der Duckiebot-Kamera geschrieben und kann spĂ€ter verwendet werden. Der beschriebene Ansatz wurde auf alle drei Farben angewendet, wodurch letztendlich Bereiche fĂŒr jede Farbe der Markierung erstellt wurden.
Tests zeigten nahezu perfekte Erkennung der Markierungslinien, es sei denn, es wurde glĂ€nzendes Band als Markierungsmaterial verwendet, das Lichtquellen so stark reflektiert, dass die Markierung in einem bestimmten Kamerawinkel weiĂ erschien, unabhĂ€ngig von ihrer ursprĂŒnglichen Farbe.

Duck Taxi
Das Projekt Duck Taxi beinhaltete die Entwicklung eines Algorithmus zur Suche nach einer Passagierente in der Stadt und deren Transport zum gewĂŒnschten Zielort. Die Teilnehmer teilten diese Aufgabe in zwei Teile: Erkennung und Navigation im Graph.
Die Studierenden fĂŒhrten die Erkennung der Ente durch und gingen davon aus, dass eine Ente jedes erkannte gelbe Gebiet im Bild mit einem roten Dreieck (Schnabel) ist. Sobald ein solches Gebiet im aktuellen Frame erkannt wird, sollte der Roboter sich ihm nĂ€hern und dann fĂŒr einige Sekunden anhalten, um die Landung des Passagiers zu imitieren.
AnschlieĂend, unter Verwendung des zuvor im GedĂ€chtnis gespeicherten StraĂennetzwerks von Duckietown und der Position des Roboters, sowie unter BerĂŒcksichtigung des Zielpunkts als Eingabedaten, konstruieren die Teilnehmer einen Weg vom Ausgangspunkt zum Zielort, indem sie den Dijkstra-Algorithmus zur Pfadsuche im Graphen verwenden. Die Ausgabedaten werden in Form einer Reihe von Kommandos â Abbiegungen an den nĂ€chsten Kreuzungen â prĂ€sentiert.

Graph der StraĂen
Ziel dieses Projekts war der Aufbau eines Graphen â eines StraĂennetzes in Duckietown. Die Knoten des resultierenden Graphen stellen die Kreuzungen dar, wĂ€hrend die Kanten die StraĂen sind. Zu diesem Zweck muss der Duckiebot die Stadt erkunden und seine Route analysieren.
Im Verlauf der Projektarbeit wurde die Idee untersucht, aber dann verworfen, einen gewichteten Graphen zu erstellen, bei dem die Kosten der Kante durch die Entfernung (die Zeit, die benötigt wird, um sie zu ĂŒberwinden) zwischen den Kreuzungen bestimmt wird. Die Umsetzung dieser Idee stellte sich als zu aufwendig heraus, und es wĂ€re nicht genug Zeit innerhalb der Schule geblieben.
Wenn der Duckiebot eine weitere Kreuzung erreicht, wĂ€hlt er die StraĂe aus, die von der Kreuzung ausgeht, auf der er noch nicht gefahren ist. Sobald alle StraĂen an allen Kreuzungen befahren wurden, verbleibt in den Speicher des Bots eine Liste von Nachbarknoten, die mithilfe der Graphviz-Bibliothek in ein Bild umgewandelt wird.
Der von den Teilnehmern vorgeschlagene Algorithmus ist nicht fĂŒr beliebige Duckietown geeignet, funktionierte jedoch gut in einer kleinen Stadt, die aus vier Kreuzungen besteht und im Rahmen der Schule verwendet wurde. Die Idee war, jede Kreuzung mit einem ArUco-Marker zu ergĂ€nzen, der die Identifikation der Kreuzung enthĂ€lt, um die Reihenfolge der Durchfahrt zu verfolgen.
Das Funktionsschema des von den Teilnehmern entwickelten Algorithmus ist im Bild dargestellt.

Patrouillenwagen
Ziel dieses Projekts ist die Suche, Verfolgung und Festnahme eines regelwidrigen Bots in der Stadt Duckietown. Der Patrouillenbot soll entlang des Ă€uĂeren StraĂenrings der Stadt fahren, um einen bereits bekannten regelwidrigen Bot zu finden. Nach der Entdeckung des Regelwidrigen muss der Patrouillenbot ihm folgen und ihn zum Anhalten bringen.
Die Arbeit begann mit der Suche nach einer Idee zur Bot-Erkennung im Bild und zur Identifizierung von VerstöĂen. Das Team schlug vor, jedem Bot in der Stadt hinten einen einzigartigen Marker anzubringen â Ă€hnlich wie echte Fahrzeuge Nummernschilder haben. DafĂŒr wurden ArUco-Marker ausgewĂ€hlt. Diese wurden bereits in Duckietown verwendet, da sie einfach zu handhaben sind und sowohl die Orientierung des Markers im Raum als auch den Abstand zu ihm bestimmen können.
Als nĂ€chstes war es notwendig, den Patrouillen-Bot so zu steuern, dass er ohne Stopps an Kreuzungen strikt dem Ă€uĂeren Kreis folgt. StandardmĂ€Ăig bewegt sich der Duckiebot in einer Spur und hĂ€lt an der Stopplinie. AnschlieĂend erkennt er die Konfiguration der Kreuzung mit Hilfe von Verkehrszeichen und trifft eine Entscheidung ĂŒber die Durchfahrt der Kreuzung. FĂŒr jeden der beschriebenen Schritte ist ein Zustand des endlichen Automaten des Roboters verantwortlich. Um Stopps an der Kreuzung zu vermeiden, hat das Team den Zustandsautomaten so geĂ€ndert, dass der Bot beim Erreichen der Stopplinie sofort in den Zustand der Durchfahrt der Kreuzung wechselt.
Der nĂ€chste Schritt bestand darin, das Problem des störenden Bots zu lösen. Das Team vermutete, dass der Patrouillenbot ĂŒber SSH-Zugriff auf jeden der Bots in der Stadt verfĂŒgen könnte, was bedeutet, dass er Informationen ĂŒber die Authentifizierungsdaten und die ID jedes Bots hat. Nachdem der Regelabweichler entdeckt wurde, verband sich der Patrouillenbot ĂŒber SSH mit dem störenden Bot und schaltete dessen System ab.
Nachdem bestĂ€tigt wurde, dass der Ausschaltbefehl erfolgreich ausgefĂŒhrt wurde, stoppte auch der Patrouillenbot.
Der Arbeitsalgorithmus des Patrouillenroboters kann in folgendem Schema dargestellt werden:

Arbeit an Projekten
Die Arbeit wurde in einem Ă€hnlichen Format wie Scrum organisiert: Jeden Morgen planten die Studierenden die Aufgaben fĂŒr den aktuellen Tag, und am Abend berichteten sie ĂŒber die geleistete Arbeit.
Am ersten und letzten Tag bereiteten die Studierenden PrĂ€sentationen vor, die die gestellten Aufgaben und deren Lösungen beschrieben. Um den Studierenden zu helfen, ihre gewĂ€hlten PlĂ€ne einzuhalten, waren in den RĂ€umen, in denen an den Projekten gearbeitet wurde, stĂ€ndig LehrkrĂ€fte aus Russland und Amerika anwesend, die Fragen beantworteten. Die Kommunikation fand ĂŒberwiegend in englischer Sprache statt.
Ergebnisse und deren PrÀsentation
Die Arbeit an den Projekten dauerte eine Woche, nach deren Ablauf die Studierenden ihre Ergebnisse prĂ€sentierten. Alle bereiteten PrĂ€sentationen vor, in denen sie erzĂ€hlten, was sie in dieser Schule gelernt hatten, welche Lektionen fĂŒr sie am wichtigsten waren und was ihnen gefallen oder nicht gefallen hat. Danach stellte jedes Team sein Projekt vor. Alle Teams haben ihre Aufgaben erfolgreich gemeistert.
Das Team, das die Farbkalibrierung umsetzte, schloss die Arbeit an ihrem Projekt schneller als die anderen ab, weshalb sie auch die Dokumentation zu ihrer Software vorbereiten konnten. Das Team, das sich mit Grafen von StraĂen beschĂ€ftigte, arbeitete sogar am letzten Tag vor der PrĂ€sentation daran, ihre Algorithmen zu verbessern und zu optimieren.

Fazit
Nach dem Schulabschluss baten wir die SchĂŒler, ihre Erfahrungen zu bewerten und Fragen dazu zu beantworten, inwieweit die Schule ihren Erwartungen entsprach, welche FĂ€higkeiten sie erworben hatten usw. Alle SchĂŒler hoben hervor, dass sie gelernt haben, im Team zu arbeiten, Aufgaben zu verteilen und ihre Zeit zu planen.
Den SchĂŒlern wurde auch angeboten, den Nutzen und die Schwierigkeit der absolvierten Kurse zu bewerten. Dabei entstanden zwei Gruppen von Bewertungen: FĂŒr die einen stellte der Kurs keine gröĂeren Schwierigkeiten dar, wĂ€hrend die anderen ihn als Ă€uĂerst herausfordernd einstuften.
Das bedeutet, dass die Schule die richtige Position eingenommen hat, indem sie fĂŒr AnfĂ€nger in verschiedenen Bereichen zugĂ€nglich bleibt, gleichzeitig aber auch Materialien fĂŒr Wiederholungen und Vertiefungen fĂŒr erfahrene SchĂŒler anbietet. Es ist erwĂ€hnenswert, dass der Programmierungskurs (Python) von nahezu allen als einfach, aber nĂŒtzlich eingestuft wurde. Am herausforderndsten empfanden die SchĂŒler den Kurs âArchitektur von Rechnernâ.
Als die Studenten nach den Vor- und Nachteilen der Schule gefragt wurden, antworteten viele, dass ihnen der gewĂ€hlte Unterrichtsstil gefiel, innerhalb dessen die Lehrer schnell und individuell UnterstĂŒtzung boten und auf aufkommende Fragen reagierten.
Die SchĂŒler hoben auch hervor, dass sie es mochten, ihre Aufgaben tĂ€glich zu planen und selbststĂ€ndig Fristen festzulegen. Als Nachteile nannten die Studenten den Mangel an Wissen, das sie beim Arbeiten mit dem Bot benötigten: bei der Verbindung, dem VerstĂ€ndnis der Grundlagen und Prinzipien seiner Funktionsweise.
Fast alle Studenten betonten, dass die Schule ihre Erwartungen ĂŒbertroffen hat, was auf die richtige Wahl der Organisationsrichtung der Schule hinweist. Daher sollten die allgemeinen Bedingungen bei der Organisation der nĂ€chsten Schule beibehalten werden, wobei die von den SchĂŒlern und Lehrern genannten MĂ€ngel berĂŒcksichtigt und nach Möglichkeit behoben werden sollten, eventuell durch eine Ănderung des Kursangebots oder der Unterrichtszeiten.
Autoren des Artikels: das Team in
P.S. Unser Unternehmensblog hat einen neuen Namen. Er wird nun den Bildungsprojekten von JetBrains gewidmet sein.
Quelle: habr.com
