Projektverschiebung im Sirius Educational Center

Die erste Projektverschiebung im Sirius Educational Center geht zu Ende . In der Regel finden hier Bildungsschichten statt, bei denen sich die Schüler auf Olympiaden auf russischer und weltweiter Ebene vorbereiten. Zum Beispiel hielt ein Team von Mathematikern vor der Weltolympiade Trainingslager bei Sirius ab. Es ist geplant, diesen Ort in Zukunft zu einem der Hauptattraktionszentren für talentierte Jugendliche für die weitere Integration in High-Tech-Projekte zu machen , die auf besondere Rechnung des Staates gehen.

ITMO University TeamNeben ihrer umfassenden Teilnahme an Projekten im Bereich Nanotechnologie arbeitete sie mit Schülern an mehreren Roboterprojekten. Unsere Gruppe bestand aus 19 Schülern und 3 Lehrern. Im Voraus haben wir die grundlegenden Technologien und Designmerkmale festgelegt, die während des Projekts implementiert werden. Einige Projekte konzentrieren sich auf die Automatisierung bestimmter Prozesse, andere haben eine kreativere visuelle Komponente. Als Grundlage für die Erstellung von Robotern wurde der TRIC- Roboterdesigner gewählt . Beispiele für die Verwendung dieses Konstruktors wurden bereits hier veröffentlicht .



Von Anfang an haben wir versucht, die Schüler nach Programmier- und Designfähigkeiten in Gruppen einzuteilen. Zur Organisation der Arbeit verwendeten wir das Trello- Projektmanagementsystem . Da zweieinhalb Wochen für die Arbeit an Projekten vorgesehen waren, der Rest für Unterhaltungs- und Organisationsveranstaltungen verwendet wurde und es nur eine begrenzte Anzahl von Aufgaben gab, war Trello sehr zufrieden mit uns. Alle drei Tage trafen wir uns mit den Jungs und stellten Aufgaben für einen neuen Sprint. Das soll nicht heißen, dass dies nach allen Kanonen der Entwicklung in seriösen Unternehmen gemacht wurde, aber wir haben es geschafft, die Jungs in die Grundlagen des Projektmanagements einzuführen. Als nächstes gehen wir direkt zu den Projekten.

Das erste Projekt beinhaltet die Mensch-Roboter-Interaktion, sowohl unter dem Gesichtspunkt der Gestaltung des attraktiven Erscheinungsbilds des Roboters als auch unter dem Gesichtspunkt der Kommunikation mit einer Person und der Aufrechterhaltung der Aufmerksamkeit. Zuerst haben die Jungs mithilfe der Spracherkennungstechnologie herausgefunden. Hierfür wurde Yandex SpeechKit verwendet , mit dem per http-Anfrage in Antwortvarianten des erkannten Textes in absteigender Reihenfolge der Wahrscheinlichkeit einer korrekten Erkennung empfangen werden kann. Auf dem TRIC-Controller selbst befindet sich ein Unix-System, und die Entwickler haben dem System die Möglichkeit gegeben, Text in Sprache umzuwandeln. Hierzu ist im System ein eSpeak- Sprachsynthesizer installiert , der den gewünschten Text ausspricht .
Das Hauptprogramm wurde in Qt Script im TRIK Studio- System implementiertUnterstützt von den Entwicklern des Designers, wird der Teil mit der Übertragung der Audiodatei auf Yandex-Server über ein Bash-Skript implementiert. Dementsprechend ist es notwendig, Informationen vom Linux-Arbeitsbereich in den Speicherbereich des Qt Script-Programms zu übertragen. Dies wurde über eine zusätzliche Datei durchgeführt. Im Allgemeinen kann der Roboter Ihre Sprache aufzeichnen, eine Datei zur Erkennung senden und Phrasen aussprechen, die in der gemeinsamen Datenbank mit Anforderungen und Antworten registriert sind, oder bestimmte Aktionen ausführen.

Als nächstes bestand die Aufgabe darin, die Bewegungen des Roboters zu programmieren. Der Roboter richtet seinen Blick auf den Gesprächspartner und zieht seine Aufmerksamkeit auf sich. Per Sprachbefehl kann der Roboter Objekte mit dem Manipulator erfassen. Der Roboter hat zwei Steuerungen an Bord: Die erste steuert die Bewegung der Räder, nimmt Informationen von Mikrofonen und Sensoren entgegen; Der zweite überträgt das Videobild von der Kamera, steuert den Manipulator und die Augenbewegung und beleuchtet den LED-Streifen während der Aussprache des Textes. Es gibt viele Aufgaben, die Arbeit von Programmen auf verschiedenen Controllern zu synchronisieren, während alle Teile des Projekts über TCP / IP miteinander verbunden sind. Beispielsweise sollte in einem Block die Aussprache des Textes von einer Animation des Mundes begleitet sein, und in dem anderen sollte sich der LED-Streifen einschalten.

Die technische Vision des Roboters wird auf einen separaten Computer übertragen, auf dem OpenCV verwendet wird. Zuerst wird das Bild binärisiert, dann wird der Verlauf bestimmt, die verschachtelten Konturen werden gelöscht und Objekte werden nach geometrischen Abmessungen und Flächen ausgewählt. Auf diese Weise können Sie die Position von Objekten auf dem Tisch bestimmen, einen Roboter zu ihnen senden und sie mit einem Manipulator greifen. Alle beschriebenen Aufgaben werden auf verschiedenen Geräten gelöst, die Jungs in vollem Wachstum standen der Netzwerkinteraktion gegenüber und haben diese Aufgabe erfolgreich gemeistert. Die Präsentation des Projekts kann hier eingesehen werden .



Das zweite Projekt ist ein Roboter, der von der Platine gelöscht wird. In diesem Projekt haben wir eine Markierungstafel und einen zweirädrigen Roboter, der sich darauf bewegen kann. Der erste Roboter hält an und steht gegenüber dem Brett. Darauf befindet sich eine Kamera, von der das Bild über TRIC an einen Computer übertragen wird, wo das Bild verarbeitet wird und der Standort des Roboters und sein Zweck bestimmt werden. Der Roboter hat orange und gelbe Markierungen zur Bestimmung der Position des Roboters. Zuerst wählen wir alle gelben und orangefarbenen Pixel im Bild aus. Danach bestimmen wir die größten durchgehenden Bereiche dieser Farben und finden ihre Zentren, anhand derer wir die Koordinaten und den Drehwinkel des Roboters bestimmen können. Suchen Sie als Nächstes die Laplace-Bilder und lassen Sie nur die roten und roten Bereiche übrig, die gereinigt werden müssen. Das gesamte Bild erneut durchlaufenWir finden den Punkt, der dem Roboter am nächsten liegt und zum Ziel wird.

Nur die Entfernung und der Winkel zwischen dem Kurs des Roboters und der Richtung zum Ziel werden an den Roboter gesendet, der vom Brett gelöscht wird. Aus diesen Werten werden die Steueraktionen für die Motoren berechnet und der Roboter bewegt sich auf das Ziel zu.



Dieses Projekt umfasst auch einen Roboterpolierer. Wenn er eine Nachricht vom ersten Roboter empfängt, fährt er eine vorgegebene Strecke vorwärts und bewegt sich entlang eines vorgegebenen Bereichs, wobei er ein Reinigungselement darunter dreht. Am Ende der Zeit beginnt sich der Roboter um seine Achse zu drehen und sucht nach einer orangefarbenen Markierung. Nach dem Auffinden beginnt es sich in Richtung der Markierung zu bewegen, bis es einen signifikanten Bereich im Bild von der Kamera einnimmt. In diesem Fall wird die Bildverarbeitung vollständig am Roboter ausgeführt, es wird nur ein Startbefehl empfangen. Die Präsentation des Projekts kann unter dem Link und weitere Videoarbeiten angesehen werden.



Das dritte Projekt betrifft die Automatisierung von Parkplätzen. Ziel war es, einen Prototyp des automatisierten öffentlichen Parkens im Business Center zu erstellen. Zwei Autos mit Allradantrieb wurden zusammengebaut, das Gebäude errichtet und die Parkplätze selbst mit Markierungen (schwarze Kreise) versehen. Das Parksystem bestand aus einem Controller, Webcams und einer daran angeschlossenen Barriere.

Der Controller verfügt über einen DSP-Kern, der für die Verarbeitung von Audio und Video an Bord ausgelegt ist. Da die Projektteilnehmer jedoch keine Programmiererfahrung für die Controller hatten, wurde beschlossen, das Video einfach zu übertragen und den Status auf dem Parkplatz auf einem Computer zu verarbeiten.

Um die freien Parkplätze zu bestimmen, wurde das Bild binärisiert, Konturen ausgewählt und überschüssige Elemente entlang des Radius des Kreises verworfen. Der letzte Schritt war das Clustering mit Nummerierung.

Infolgedessen sah das Arbeitssystem folgendermaßen aus: Das
Auto fährt bis zur Barriere, sendet eine Anfrage an den Server, der seinerseits die Nummer des nächsten freien Platzes zurückgibt, und teilt dem Parksystem mit, dass die Barriere angehoben werden muss. Ferner bewegt sich das Auto mit der Nummer des Parkplatzes entlang des aufgezeichneten Pfades. Die Präsentation des Projekts kann hier eingesehen werden .

Alle Quellcodes von Programmen werden auf github veröffentlicht .



Im Allgemeinen ist alles ziemlich gut gelaufen. Die Schüler wurden ständig gebeten, länger zu bleiben und mehr Zeit mit der Arbeit an dem Projekt zu verbringen, was auf das Interesse der Schüler an Robotik hinweist.

Alle Schichtprojekte wurden in Ingenieurwesen unterteilt, wo an der Umsetzung eines bestimmten Entwurfs gearbeitet wurde, und in Forschung, wo Daten zu verschiedenen Phänomenen gesammelt und analysiert wurden. Meiner Meinung nach ist es nach der abschließenden Bewertung sinnvoll, solche Gebiete zu trennen, und es ist schwierig, die Analyse des Zustands des Mzymta-Flusses und des Smart Table zu vergleichen. Für die Forschung ist ein Präsentations- und Posterformat besser geeignet, und für Projekte ist ein Ausstellungsformat mit Ständen besser.

Diejenigen, die an solchen Verschiebungen teilnehmen möchten, sollten durch eine vorläufige sorgfältige Untersuchung des Bereichs, in dem sie teilnehmen möchten, verwirrt sein. Zu diesem Zweck gibt es eine Vielzahl von Kursen mit Videovorträgen und anderem Begleitmaterial. Erfahren Sie, wie Sie verschiedene Projektmanagementsysteme (Sie können mit dem von uns verwendeten beginnen ) und Versionskontrollsysteme verwenden.

Vielen Dank an alle Teilnehmer dieser Schicht, ihre Organisatoren und Lehrer. Ich hoffe mehr als einmal hier zu sein!

Source: https://habr.com/ru/post/de396233/


All Articles