HS KL geht zur RoboCup German Open 2021!

Wer sind wir, die RZWEI-KICKERS ?

Wir sind ein gemischtes Team von Berufsschülern, Studierenden, Professoren, Industriepartnern – gegründet 2020 – und wir freuen uns jederzeit über Neuzugänge!

  • Adrian (Prof. Informatik): Hybride KI, Projektleitung
  • David (AI, 5. Sem.): Bilderkennung
  • Felix (AI, 5.Sem.): Teach-In, Optimierung Steuerung
  • Jonas (BBS KL): Cards, Deployment
  • Markus (AI, 5.Sem): Agiles Testen, Optimierung
  • Thomas (MI, 5. Sem): “the Trainer”, Code Quality
  • Yannis (AI., 1. Sem): RobCup Junior League Weltmeister (unser Joker)
  • und als unser Berater: Philipp (abat+): für den Transfer der Inhalte auf Industrie 4.0 und KI Projekte

Wir arbeiten agil, Scrum mit zwei-Wochen Sprints. Unsere “daily standups” sind jeden Morgen um 10.oo – 10.15 Uhr im Discord https://discord.gg/gTzSkj2 . Unsere Sprint Reviews sind öffentlich, Mittwochs, 14.oo – 15. Uhr und werden hier angekündigt.

Warum wir uns “R-ZWEI KICKERS” nennen?

Darum 🙌

Was findet ihr auf dieser Webseite? So ziemlich alles: worum es geht, wie wir arbeiten, welche Arbeitsmaterialien wir für neue Team Mitglieder vorbereitet haben – und ganz unten auf der Seite eine Liste der aktuellen Projekte und offenen Arbeiten. Viel Spaß beim Lesen😉

Worum geht es? Der RoboCup soll die Robotik und KI Forschung fördern und das vor einem öffentlichen Publikum. Ein Fußball spielender Roboter mag  wie eine eher wissenschaftliche Herausforderung aussehen, aber man muss dabei eine Fülle von Standard Problemen – wie man sie aus der heutigen Industrie kennt – lösen, und ist damit ein guter Einstieg in die Welt der KI.

Unser Kooperationspartner abat+ unterstützt uns deshalb bei Projekt- und Bachelor-Arbeiten in den Feldern robuste Bildverarbeitung, innovative Roboter Programmierung und Prozessoptimierung in der diskreten Fertigung, um neue Geschäftsfelder für die Industrie 4.0 zu erschließen.

Unsere Naos 😃

Macht sie nicht kaputt!

“kick their asses!”

Achtung, die neuen Corona Regeln beachten.

Unsere drei Roboter Regeln😎

Was ist die RoboCup Standard Platform League?

RoboCup 2014, Joao Pessoa, Brasilien. Quelle: Uni Bonn

Der Robot Soccer World Cup ist die Fußball WM für Roboter. Der erste Wettkampf wurde 1997 bestritten und heute werden neben Fußball auch viele andere Wettkampf Arten ausgefochten, wie z. Bsp. auch die RoboCup Rescue League, bei dem die Roboter auf eine Rettungsmission entsandt werden.

Beim RoboCup lassen verschiedene Teams aus aller Welt ihr 5 Roboter in 2 Mannschaften gegeneinander wetteifern und dabei um den Fußball kämpfen, den Gegner austricksen und Tore schießen.  Die “Standard Platform League” (SPL) verwendet ausschließlich den gleichen Roboter, den NAO v6.

Die kleinen Roboter müssen sich vollständig autonom über das Spielfeld bewegen und dürfen nur wenig miteinander kommunizieren, um dennoch eine Team Strategie zu entwickeln, die zum Sieg führt. Dabei sollen sie trotz allem unabhängig voneinander agieren können.

Arbeiten mit dem NAO



Arbeitsumgebung

Der kleine humanoide Roboter NAO ist unser Spieler auf dem Spielfeld und wir sind sein Trainer.
Bei uns wird er sowohl mit C++ als auch mit Python programmiert. Dabei wird Python bei der Bilderkennung, wie zur Erkennung des Balls und des Tors, verwendet und C++ für den ganzen Rest. Darunter fällt zum Beispiel seine Bewegung über den Fußball Rasen.

Voraussetzung hierfür ist die im Projekt bereits mitgelieferte IDE CodeLite und das Betriebssystem Ubuntu 18.04 LTS.

Außerdem gibt es auch einen Simulator. Dann muss man nicht immer vor Ort sein um seinen Code zu testen. Der Simulator ‘SimRobot’ ist sogar von einem mehrfachen Siegerteam des RoboCup (B-Human – Uni Bremen und DFKI) entworfen. 


Beispiel Code

Wie gut müsst ihr programmieren können? Beantwortet es euch selbst.

Unten seht ihr ein Code Beispiel. Wenn ihr in der Lage seid, nachzuvollziehen was dort passiert, dann seid ihr bestens vorbereitet.

Sollte der NAO umfallen muss er laut Regelwerk selbst in der Lage sein wieder auf zu stehen. Der folgende Code erreicht das.

void FallEngine::safeFall(FallEngineOutput& output) const
{
  // set stiffness of each joint
  for(int i = 0; i < Joints::numOfJoints; i++)
    output.stiffnessData.stiffnesses[i] = 10;

  // falling backwards ? sit up.
  if(output.fallingBackwards)
  {
    MotionUtilities::sit(output);
  }

  // falling forward ? stand up.
  else if(output.fallingForward)
  {
    MotionUtilities::stand(output);
  }
}

Zuerst wird die Festigkeit alle Gelenke des Roboters festgelegt und anschließend das Bewegungsmuster zum Aufstehen zu starten. Dabei wird unterschieden, ob er nach vorne oder hinten umgefallen war. Als humanoider Roboter muss der NAO ebenso wie wir Menschen unterschiedliche Bewegungen ausführen um aufzustehen, je nachdem in welche Richtung er gefallen ist.

Der Nao wird im Simulator und “in Echt” mit dem gleichen Code gesteuert. Für die Programmierung verwenden wir C++, Python, TensorFlow (Keras), und “wenn->dann” Karten für die Steuerung des Verhaltens. Diese Karten sind sehr übersichtlich zu programmieren und steuern das Umschalten von bspw. Verteidigung auf Angriff, Passspiel und Torschuss.

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist map_of_cards.jpg

Wir nennen es unsere “Map of Cards” (wurde erstellt und wird weiterhin aktualisiert in Mural).

Teilnahme des AK Smart Machines

Der Arbeitskreis Smart Machines der HS KL plante eine Teilnahme zur Qualifikationsphase der German Open in Magdeburg, April 2021. Dieses Event wird – Corona-bedingt – in ein “remote Turnier” umgewandelt. Die Planung ist – Stand 02/2021 – noch nicht abgeschlossen.

Durch die Teilnahme wollen wir allen Studenten für die KI begeistern und sie im selben Moment fördern. Das bietet ihnen die einzigartige Möglichkeit den kleinen NAO als Freund und Helfer kennen zu lernen und mit ihm zu arbeiten. Vielleicht ergibt sich sogar Kontakt zu einer KI orientierten Firma, da der RoboCup auch außerhalb Deutschlands sehr populär ist.

Also was brauchen wir noch für eine erfolgreiche Teilnahme am RoboCup German Open 2021?

5x NAO V6
Ein Fußballfeld als Testumgebung
Eine Arbeitsumgebung
Einen Simulator
Einen Monster PC mit 3 GPUs und 64 GB RAM
Insider Wissen von ehemaligen Weltmeistern
Einen Gitlab Server
Ein Team  

Ein Link zum Gitlab Server findet ihr hier. Der Zugang ist nur für das Team – wenn Du neugierig bist, laden wir dich gerne als Gast ein.

Wenn Du ganz neugierig bist, findest Du hier das Laborbuch, indem unser derzeitiger Fortschritt und unsere Arbeitsweise beschrieben wird.

Da wir selbst über die nötigen NAOs verfügen, ist man keineswegs auf den Simulator angewiesen. Es kann ebenso mit den realen NAOs gearbeitet werden. Diese sind im Labor des AK Smart Machines im O-Gebäude, und können jederzeit ausgeliehen werden.

Die Vorarbeit ist also bereits getan; das einzige was fehlt bist du!

Hast du Interesse? Dann melde dich einfach und mach mit. Es gibt keinen Zwang, keine Verpflichtungen, keine Bürokratie. Also wenn du mitmachen möchtest, dann meld’ dich einfach bei uns. Im nächsten Abschnitt findest du die aktuelle Liste aller Projekte; Deine Vorschläge für weitere Themen sind willkommen.

 

Projekte, Bachelorarbeiten

Hier findest Du eine Übersicht über aktive und offene Arbeiten (Stand: 02/2020)

StatusFormTitelBeschreibung
aktivPraxisphase + Bachelor (Kooperation mit abat+)Robuste Bildererkennung in Echtzeit bei Verfügbarkeit nur geringer Ressourcen – TensorFlow Lite im praktischen Einsatz“ / Robuste Klassifikation und Lokalisation mittels Deep Learning in Simulation und Realität am Beispiel Roboter-FußballSysteme zur Bilderkennung wie TensorFlow und Torch büßen drastisch an Performanz ein unter wechselnden Bedingungen wie geänderten Lichtverhältnisse, verwackelten und verschmutzten Kamerasystemen, unbekannten Objekten.
aktivPraxisphase + Bachelor (Kooperation mit abat+)Vereinfachtes Teach-In von Robotern durch Muster-Analyse des Einlernens mittels Data Mining ModellenModellierung einer Robotersteuerung auf drei Ebenen (Maschinenbewegungen, Muster von Bewegungen, Arbeitsabläufe) Erfassung von Rohdaten im Simulator von B-Human, Teach-In von Bewegungsmustern Erfassung und automatische Analyse von komplexen Abläufen
offenStudienprojekt o. Praxisprojekt (Kooperation mit abat+)Physik-Engine im Simulator realitäts-naher programmierenBsp.: Schussweite, Genauigkeit, Logging zur Gewinnung von Datenspuren Team-Stärke: 1-2 Personen
offenStudienprojekt o. Praxisprojekt (Kooperation mit abat+)Visuelle Objektverfolgung im RaumDie Kameras der Roboter erfassen z.Z. Objekte individuell und erstellen ein geschätztes Weltmodell; basierend auf dem Stand einer Bachelorarbeit zur Sequenzanalyse bewegter Objekte soll dieses Modell bessere Werte enthalten.
Stärke: 1-2 Personen
offenStudienprojekt o. PraxisprojektRoboter Kooperation verbessernBisher wurde die Roboter Kooperation vorwiegend durch Analyse von Spielen im Simulator verbessert. Nach der deutschen Qualifikation im April haben wir reale Spiel-Daten (Logs), die es auszuwerten gilt.
Stärke: 1-3 Personen
aktivBachelorarbeitEine integrative Teststrategie für eine komplexe Roboterprogrammierung am Beispiel RoboCup SPL – ein systematischer Übergang vom Simulator zur RealitätGlobale Optimierung der Systemleistung, bei Beachtung der Nutzen (Verschleiß, Energie)
Stärke: 2 Personen
    

Historie: Erste Schritte, aus dem Juli 2020

Auf den folgenden Videos sieht man unsere Naos im Keller des O028 auf einem 1/4 Wettbewerbsfeld:

Und hier kommt ein Verteidiger zur Hilfe, und klärt die Situation:


Teile diese Seite