
Seit einigen Jahren wird von Hochschulen der Region Oberrhein der Trinatronics Wettbewerb ausgerichtet. Zum zweiten Mal hat die HS Kaiserslautern in 2025/26 die Gelegenheit, daran teilzunehmen: Trinatronics

Seit einigen Jahren wird von Hochschulen der Region Oberrhein der Trinatronics Wettbewerb ausgerichtet. Zum zweiten Mal hat die HS Kaiserslautern in 2025/26 die Gelegenheit, daran teilzunehmen: Trinatronics
Wie man dem Veranstaltungskalender und unserer Social Media entnehmen kann, befinden wir – die R-ZWEI Kickers – uns gerade auf den deutschen Meisterschaften der RoboCup Standard Platform League (SPL). Und wer den Live Feed mit verfolgt, wird merken, dass wir bisher noch mehr schlecht, als recht, über den Rasen gestolpert sind.

Nachdem wir mehrere Jahre den Fridolin 1.0 erfolgreich in studentischen Projekte und bei Wettbewerben eingesetzt haben, wird es nun Zeit, seinen zeitgemäßen Nachfolger zu entwickeln. Die Arbeiten laufen in Pirmasens, Prof. Dr. Martin Wölker. Er und sein Team stellen dieses Teil-Projekt vor – für studentische Arbeiten, ein Studienprojekt usw.:
DualVolt Nano Shield
Stand der Arbeiten:
Hier die Spezifikationen:
Idee: https://www.instagram.com/reel/C-5NVUesFHD/
Test: https://www.instagram.com/reel/C_czvPWx7E2/
Aufgabenstellung:
https://youtu.be/4G3rjdPCMk0?si=BCS3AjGcnX-4Cxif
Das Thema KI ist aktuell schon auf einem Höhenflug und das scheint sich so schnell nicht zu ändern. Bekannt sind hierbei der Platzhirsch Chat-GPT, auch neuere Namen wie Microsoft Copilot. Was jedoch aktuell noch nicht im Fokus steht, ist die Steuerung von Robotern, welcher Art auch immer, durch eine KI.

Im Juli 2023 waren die R-ZWEI Kickers in Bordeaux, um mit ihrem Code die Weltmeisterschaft in der RoboCup Standard Platform League (SPL) zu bestreiten.
Warum mit ihrem Code? Warum nicht mit ihren Robotern?
Diese Frage ist recht simpel zu beantworten. Am Code haben wir selbst geschrieben, an den Robotern aber nicht selbst geschraubt. Die SPL erlaubt nämlich nur Standard-Platformen (sprich: Alle teilnehmenden Teams haben baugleiche Roboter zu verwenden).
Die Grundidee ist dabei simpel: Wenn alle Teams die gleichen Bots haben und nichts physisch am Bot verändern können, dann sind die Entwickler dazu gezwungen auf kreative programmatische Lösungen für verschiedene technische Probleme und Challenges zu kommen:
– Ein Roboter kann den Ball gegen das Sonnenlicht nicht richtig sehen? -> Das heißt das Kamerabild muss neu ausgewertet werden mit Filtern und Objekterkennung.
– Ein Roboter kann Objekterkennung, aber das Objekt (Ball) ist hinter einen Pfosten oder einen Mitspieler gerollt. -> Es werden Filter benötigt, die den Roboter schätzen lassen, wo der Ball ist.
– Der Roboter kann seine Umgebung sehen, aber was bedeutet seine Umgebung? -> Ein internes Weltmodell muss gebaut werden, welches der Roboter ständig mit den realen Daten abgleicht, um zu wissen, ob er sich auf einem Fußballfeld befindet und wenn ja, wo.
– usw ….
Da die R-ZWEI Kickers im RoboCup noch ein relativ frisches Team sind, haben wir nicht allen Code selbst geschrieben. In solch eine Liga einsteigen und dabei von komplett Null anfangen zu müssen ist für viele Teams, besonders für kleinere Teams, nicht tragbar.
Stattdessen sind wir von einem Release (CodeRelease 2021) des damaligen, so wie heutigen Weltmeisters, BHuman aus Bremen, abgezweigt und haben auf Basis dieses Codes eigene Verhaltens- und Steuerungsupdates für die Roboter geschrieben.
Da die SPL in den letzten Jahren etwas gewachsen ist, wurde sie in zwei Gruppen geteilt: Champions Cup und Challenge Shield, letztere Gruppe ist vor allem für Neulinge und kompetitiv schwächer aufgestellte Teams gedacht.
Da wir noch neu sind und dies unsere erste WM war, sind wir in der zweiten Gruppe angetreten.
Trotz unseres Status als Grünschnäbel in der Liga, waren wir in der Lage uns in unserer Gruppe auf Platz 2 vorzukämpfen und dementsprechend mit einer Trophäe heimzukommen.
Hallo,
Bist du auf der Suche nach einem praxisnahen technischem Wahlpflichtfach, in dem man sich mit Gleichgesinnten kreativ austoben kann? Dann möchten wir dich herzlich zur IMST Challenge einladen!

Das RoboCup SPL Team der Hochschule Kaiserslautern
Wir sind ein gemischtes Team von Berufsschülern, Studierenden, Professoren, Industriepartnern – gegründet 2020 – mit dem Ziel die Themen Robotik und KI in der Lehre praxisnäher zu gestalten. Wir freuen uns jederzeit über Neuzugänge!
Die KICKERS arbeiten OpenSource. Die aktuellen Entwicklungen finden Sie auf Github:
Mitglieder des R2K-Kickers Teams:
Ehemalige Mitglieder des R2K-Kickers Teams:
Über den Link unten könnt ihr unserem Chat auf Discord besuchen. Wenn ihr daran interessiert seid, mehr über uns und unsere Arbeit zu erfahren, dann besucht uns bei einem unserer wöchentlichen Treffen.
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 😃
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.
Wegen den letzten uns wohl bekannten, weltweiten Corona Restriktionen wurde der RoboCup 2019 remote abgehalten, wodurch auch einige Turniere wie der SPL nicht in der selben Form stattfinden konnten. Aber innerhalb der deutschen Community wurde schon damals ein „German Open Replacement Event“ geplant, um zumindest trotz reiner remote Teams das Event unter Turnier Bedingungen stattfinden lassen zu können. 2022 war es dann soweit, dass vor dem offiziellen Start des RoboCup 2022 das GORE sich widerholt hat und im vollen Umfang vor Ort statt fand in der Handelskammer Hamburg. Remote Teams nahmen dennoch teil weil diese sogar von außerhalb von Deutschland kamen!
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 oder vorzugsweise Visual Studio code. Als Betriebssysteme benutzten wir derzeit Ubuntu 18.04 LTS (empfohlen) und Windows 10 zum Einsatz.
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 vom amtierenden Weltmeister des RoboCup (B-Human – Uni Bremen und DFKI) entworfen.
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); } }

TurtleBot 2 ist ein mobiles Roboterkit mit Open-Source-Software, der mit einer Blackboard Architektur namens ROS (Robot Operating System) gesteuert wird. Durch diese Architektur können verschiedene Programmiersprachen im selben Projekt genutzt werden. Diese sind vorwiegend Python und C++. Durch seinen flexiblen Baustil können ebenso diverse Komponenten ergänzt werden, damit auch mehr Funktionalitäten hinzugefügt werden können.
Im Rahmen eines Projektes wurde er von Studenten liebevoll zu Botty McTurtleFace getauft oder kurz Botty.
Botty fährt vorwärts und umgeht ein Objekt.
Botty fährt ein Viereck.
Im Auslieferungszustand besaß der Turtlebot 2 mehrere Hardware Komponenten, um seine Umgebung wahrzunehmen und mit ihr interagieren zu können. Alle sind mit einem NUC PC mit Ubuntu 16.04 verbunden, der sich direkt als Onboard PC auf dem TurtleBot 2 befindet. Folgende Komponenten besitzt er:
Allerdings erlaubt seine besondere Baustruktur durch Halterungen und Platten mehrere Etagen über der Kobuki-Base zu stapeln, um auf diese Weise mehr Platz für weitere Komponenten hinzuzufügen. Daher wurden zu den ursprünglichen Komponenten noch ein Mikro für Spracherkennung und Sprachausgabe hinzugefügt. Ebenso wurde die 3D-Kamera ummontiert und an der Unterseite einer der Platten angebracht, damit sie ein besseres Sichtfeld hat.
Die Programmierung ist einfacher als man denkt. Wie bereits erwähnt unterstützt ROS sowohl Python, wie auch C++. Im folgenden wird ein Python Beispiel betrachtet, mit dem der TurtleBot 2 ein Viereck fahren soll. Ein Video davon ist weiter oben zu finden.
def drive(meter): # starte den Motor Service, um mit ihm kommunizieren zu können rospy.wait_for_service('motor') job = rospy.ServiceProxy('motor', call) # Die Nachricht ist in diesem Fall ein Objekt "call" # erzeuge die Nachricht param=[] param.append(meter) command=call() command.call="forwardByMeters" # die vom Motor erwünschte Aktion command.param=param # die zurück zu legende Distanz #sende die Nachricht response=job(command.call,command.param) # Übermittelung der Nachricht return response # Ausgabe der zurück erhaltenen Antwort def turn(angle): # starte den Motor Service, um mit ihm kommunizieren zu können rospy.wait_for_service('motor') job = rospy.ServiceProxy('motor', call) # Die Nachricht ist in diesem Fall ein Objekt "call" # erzeuge die Nachricht param=[] param.append(angle) command=call() command.call="turnRigthByAngle" # die vom Motor erwünschte Aktion command.param=param # die zurück zu legende Distanz in Gradzahl #sende die Nachricht response=job(command.call,command.param) # Übermittelung der Nachricht return response # Ausgabe der zurück erhaltenen Antwort if __name__ == "__main__": for x in range (0,4): print("Going Forward to "+str(drive(1.0))) sleep(0.1) print("Turning around to: "+str(turn(90))) sleep(0.1)