RoboCup German Open DRZ Edition 2023

Auch dieses Jahr nehmen wir wieder am RoboCup German Open in Dortmund beim Deutschen Rettungsrobotik Zentrum teil. Dieses Jahr ist unser Ziel mehr Autonomie und weniger teleoperierte Aufgaben zu bewältigen. Aus diesem Grund liegt der Fokus diesmal stark auf der Software und weniger auf der Mechanik.

Es treten mit 10 Teams deutlich mehr Herausforderer an als die letzten Jahre. Wir freuen uns bereits auf den Wettbewerb!

Wir sind diemsal mit vier Leuten von FRANCOR vertreten:

  • Martin Bauernschmitt
  • Helmut Engelhardt
  • Michael Schmidpeter
  • Tobias Zech

Zum ersten Mal mit dabei ist unser neues Vereinsmitglied Tobias Zech.

0. Tag, 22.04.2023 – Anfahrt

Im Gegensatz zu den Jahren zuvor wurde beschlossen einen Tag vorher anzureisen, um den kompletten Sonntag für vorbereitende Arbeiten zu nutzen. Die Fahrt nach Dortmund war wie immer anstrenged aber ereignislos. Mit einigen Pausen und wenig Verkehr waren wir knapp 6,5 Stunden unterwegs und erreichten unser Nachtlager für die nächsten Tage in Castrop Rauxel. Danach ging es ins Bett, um erholt in den ersten Tag zu starten.

1. Tag, 23.04.2023 – Aufbau und Setup

Am nächsten Morgen ging es direkt zur Halle der DRZ in Dortmund. Erstmal ging es darum alle Werkzeuge, PCs und Arbeitsplätze einzurichten. Dabei mussten wir zunächst ein Malheur im Anhänger beseitigen, nachdem sich unsere zuckerhaltigen Kaltgetränke nach der holprigen Fahrt auf den Autobahnen des bevölkerungsreichsten Bundeslands Deutschlands etwas Leckage geschlagen haben. Unser Roboter Frank hat schon Schlimmeres erlebt und konnte im nächsten Schritt anstandslos in Betrieb genommen werden. Neu bespeert mit der Frankenflagge in der Hand und einem Auge weniger ist unser Roboter bereit. Ein Daumen Hoch für den ersten produktiven Tag hier in Dortmund!

Um die bevorstehenden Hindernisparkours auch autonom zu bewältigen, ist eine genaue Positionsangabe des Roboters essentiell. Deswegen war einer der kritischen Punkte die Verbesserung und Kalibrierung der Odometrie in ROS. Außerdem wurden einige Softwarepakete auf die neueste ROS2 Version von „Galactic“ auf „Humble“ umgezogen. Aufgrund dieser Umstellung musste der für die Steuerung des Roboterarms zuständige Raspberry Pi ebenfalls aktualisiert werden. Ubuntu Server und ROS2 Humble neu zu installieren stellte sich als die praktikablere Vorgehensweise heraus. Des weiteren wurde noch microros installiert, mit dem die Firmware der an dem Roboterarm angebrachten Microcontroller geupdated werden konnte. Der Greifer am Roboterarm hat sich über die Fahrt lose gerüttelt. Deshalb musste dieser sukzessive zerlegt werden, um an die gelockerte Schraube zu kommen und den Greifer wieder befestigen zu können. Danach wurden die ersten zögerlichen Bewegungen des Roboterarms durchgeführt. Weiterhin arbeiteten wir an der Auflösung des Kamerasystems.

Unsere Herausforderungen waren im wesentlichen:

  • Odometrie
  • Von ROS galactic auf humble migrieren
  • Mechanische Ausbesserungen
  • Kamera kalibrieren
  • QR Code Detection

Schlussendlich wurde der Tag mit der ersten erfolgreichen Testfahrt von Frank vor unserem Stand beendet.

2. Tag, 24.04.2023 – Vorbereitungen für den Wettbewerb

  • Erste Testläufe von Frank im Hinderniskurs
  • Hazmat Detection in schwarz/weiß mit Yolo
  • QR Code Detekction
  • find object 2D

Der 3D Drucker lief an diesem Tag auf Hochtouren. Zunächst wurde eine neue Lösung für die Nivellierungselektronik des Laserscanners benötigt. Nach einigen Prototypen haben alle Komponenten ihren Platz gefunden und die Nivellierungselektronik mit der IMU sitzt nun plan zu den horizontalen Achsen des Roboters. Da einige Activities und Hindernisparkours in suboptimalen Lichtverhältnisen stattfinden, die Hazmat bzw. Objekterkennung diese allerdings voraussetzt, musste eine Lösung gefunden werden. Mit Hilfe einiger Neopixel, eines ESP8266 und ein wenig Code und Lötarbeit wurde das Cover für die Kamera am Roboterarm umdesigned und erstrahlt nun in weiß (bzw. RGB). Zuguterletzt kam noch eine befreundete Gruppe aus der Schweiz, das Team Solidus, mit zwei STL Dateien zu uns, die wir natürlich ebenfalls über Nacht haben drucken lassen.

Am Abend kamen alle Teamleiter zusammen, um eine Einführung in die Hindernisparkours und zugehörigen Activities zu bekommen. Danach wurden die entsprechenden Zeitslots der ersten 6 Herausforderungen des Folgetages nacheinander von den Teamleitern gesetzt. Am Ende des Tages hat sich auch gezeigt, dass sich von den zunächst 10 angemeldeten Teams nur 7 in Dortmund eingefunden haben. Mit einem weinenden Auge bedauern wir die Abmeldung des befreundeten Teams ResQBot aus Österreich, die aufgrund eines Totalschadens am Antriebsstrang nicht antreten können.

3. Tag, 25.04.2023 – Jetzt gehts los….

… jedenfalls haben das die anderen Teams gesagt, nachdem am Morgen der Gong für die ersten 3 Herausforderungen geschlagen wurde. Allerdings haben sich unsere beiden Senior Teammitglieder, Michael und Martin, strategisch klug entschlossen, am Morgen drei Hindernisläufe zu planen, die von Frank physikalisch nicht befahren werden können. So hatten wir die Chance und die Zeit weiter an der Software und Mechanik zu feilen und Systeme ausgiebig zu testen. Wir haben die Chance zudem genutzt, einen der beiden Hindernisläufe des heutigen Tages zu testen. Dieser Testlauf war recht kurz, nachdem eine instabile Wifi Verbindung eine exakte Steuerung des Roboters und Roboterarms unmöglich machte. Die Vermutung lag auf einer zu hohen Auflösung des Kamerabildes, welches die drahtlose Verbindung überlastete. Eine kleine Anpassung in der Konfiguration des ROS nodes konnte vermeintlich Abhilfe bei diesem Problem schaffen.

Nach einer mittaglichen Stärkung folgte sogleich der erste Hindernislauf unseres Roboters. Dort wurde Frank manuell über angewinkelte und teilweise lockere Sperrholzplatten gefahren und musste weitere visuelle Aufgaben bestehen, die analog auch in anderen Hindernisparkours gefordert sind. Der Roboter schaffte 9 von 10 Durchläufen, bevor er aufgrund eines bis dahin unbekannten Motorproblems streikte. Ein gutes, wenn auch nicht ganz zufriedenstellendes Ergebnis für den ersten Run. Nach einer kurzen, fieberhaften und letztendlich ergebnislosen Suche nach dem Problem starteten wir in den zweiten Parkour. Dort erschwerte am Boden angebrachtes Fachwerk die Fahrt. Auch hier stießen wir wieder auf das mysteriöse Motorproblem, allerdings nachdem die Verbindung zum Roboter durch ein fremdes Signal unbrauchbar gemacht wurde und der Run letztendlich abgebrochen werden musste. In der zweiten Pause konnten wir den Fehler identifizieren. Die Motoren streikten aufgrund von unzureichender Batteriespannung. Nachdem wir die Ersatzbatterien in Betrieb genommen haben, lief Frank im 3. Lauf des Tages beinahe problemlos. Der Boden dieses Parkours war zweigeteilt und knöcheltief mit Schotter oder feinem Sand bedeckt. Beides stellte für Frank kein Hindernis dar und durch die meisterhaften Fahrkünste unseres Operators Michael, konnten 9 Durchläufe und diverse Activities erfolgreich abgeschlossen werden. Im letzen Durchlauf zwang ein überlaufender RAM Speicher, aufgrund eines ROS Cam Nodes, die Verbindung zum Roboter in die Knie und damit den Run zum Abbruch. 2 von 3 erfolgreichen Runs stellten kein zufriedenstellendes Ergebnis für unser Team dar. Dennoch sind wir sehr zuversichtlich, die letzten 6 Parkours am nächsten Tag mit Bravour zu bestehen.

Zum Abschluss des Tages sicherte sich Martin unsere gewünschten Zeitslots an den Hindernisläufen für den nächsten Tag, nachdem wir die momentane Punkteskala studiert haben.

4. Tag, 26.04.2023 – Ein Tag voller Herausforderungen

Heute war zweifellos der wichtigste Tag für unser Team, da wir eine Reihe von Hinderniskursen mit unserem Roboter bewältigen mussten. Bisher verlief alles reibungslos, ohne größere Probleme, abgesehen von einem lockeren USB-Kabel am CAN-Adapter, das jedoch rasch behoben wurde. Allerdings funktionierte die Autonomie während der ersten Durchläufe nicht wie geplant. Dies war eine anfängliche Herausforderung, die wir jedoch im Laufe des Tages erfolgreich bewältigen konnten, sodass am Abend nach den Wettläufen die Autonomie das erste Mal einwandfrei funktionierte. Dies gab unserem Team neuen Schwung und Selbstvertrauen.

Am späten Nachmittag wurden die Ergebnisse der einzelnen Durchläufe, die wir am gestrigen und heutigen Tag bestritten hatten, durchgegeben:

  • MAN3: 430 Punkte, 100%
  • MAN7: 920 Punkte, 88%
  • OBS2: 0 Punkte
  • OBS3: 0 Punkte
  • TER1: 140 Punkte, 30%
  • TER2: 140 Punkte, 64%
  • TER3: 660 Punkte, 80%
  • DEX6: 60 Punkte, 43%

Nach der Wertung befanden wir uns auf Platz 4, wodurch wir uns neben 3 weiteren Teams unerwartet für das Finale qualifiziert hatten. Das Ziel stand fest: das Podium. Allerdings standen wir damit vor einer neuen Herausforderung, als wir uns über die Anforderungen im finalen Hindernislauf weiter informiert haben. Dichter Nebel soll in diesem Lauf starke Rauchentwicklung in einem geschlossen Raum simulieren und wird die Sicht erheblich erschweren. Um dieses Problem zu lösen, hatten wir drei mögliche Lösungswege ausgetüftelt:

  1. Ultraschallsensoren: Wir wollten Ultraschallsensoren als Gürtel um den Roboter anbringen, um Hindernisse in der Nähe zu erkennen und ggf. die Autonomie zu verbessern.
  2. Stärkere Beleuchtung: Eine weitere Überlegung war die Verwendung einer stärkeren Beleuchtung, um den Nebel zu durchdringen und die Sicht zu verbessern.
  3. Verbesserung der Infrarotkamera: Eine Verbesserung der Infrarotkamera durch Kalibrierung, um die Hindernisse im Nebel besser erkennen zu können, würde mit Abstand die beste Lösung darstellen.

Mit diesen Maßnahmen hofften wir bereit zu sein, uns der Herausforderung des finalen Hindernislaufs zu stellen, sofern wir diese in der begrenzten Zeit umsetzen können. Unser unerwartetes Qualifikationsergebnis hat unsere Motivation noch weiter gesteigert und wir sind zuversichtlich, dass wir unser Bestes geben werden, um gute Ergebnisse zu erzielen und das Rennen erfolgreich abzuschließen.

5. Tag, 27.04.2023 – Finale! und Rückreise

Obwohl uns der gestrige Abend noch in den Knochen steckt, starteten wir motiviert in unseren letzten Tag. Das Finale ruft und trotz der Rückschläge erhofften wir uns ein gutes Ergebnis. Die Beleuchtung wurde angebracht, um im abgedunkelten Raum und dichten Nebel halbwegs Sicht zu erhalten. Die Infrarotkamera funktionierte zwar und übermittelte ein Bild. Die Qualtität des Bildes ist aufgrund der Temperaturauflösung des SEEK Wärmebildkameramoduls zu gering. Eine spontane Lösung mit Hilfe von Ultraschallsensoren zu bauen war aufgrund der limitierten Zeit und Abdeckung (ungenügende Anzahl an Ultraschallsensoren) nicht erfolgreich. Besonders bei dieser versuchten Lösung hat sich wiedermal gezeigt, dass der Robocup nicht nur Teamgeist innerhalb der einzelnen Crews sondern auch über Teamgrenzen hinaus existiert.

Ein letztes Mal bereiteten wir Frank auf die ihm bevorstehende Herausforderung vor. Diese besteht im Prinzip aus drei zusammenhängenden Etappen. Zuerst muss analog zu DEX6 eine Tür geöffnet werden. Ein Unterschied zu jener Aufgabe bestand aber darin, dass der Henkel der Tür im Finaldurchlauf ein paar cm höher angebracht war. Der hastig angebrachte Haken war zu tief um den Türgriff zu betätigen, weswegen wir hier vermutlich auf einen Trick angewiesen waren. Die 2. Etappe fand in einem abgedunkelten Raum statt, der mit verschiedenen Hindernissen wie Querbalken, Tonnen und anderen am Boden angebrachten Gegenständen ein Vorankommen erschweren sollen. Die Hauptherausforderung ist allerdings der Grund, warum wir uns die Nacht zuvor um die Ohren geschlagen haben -> der Nebel. Von unseren drei Lösungswegen konnten wir nur die Beleuchtung realisieren. Dementsprechend waren wir nervös, ob wir überhaupt eine Möglichkeit haben, den Raum zu durchqueren. Die letzte Etappe bestand aus einem Raum, gefüllt mit kleinen Aufgaben. Unter anderem musste man mit einem Holzdorn eine Öffnung eines Containers verschließen und ein Ventil abdrehen.

Wir waren das 2. Team, das den finalen Hindernisparkour befahren durfte. Die Nervosität stand uns ins Gesicht geschrieben. Bereits die erste Etappe stellte sich als unüberwindliches Hindernis heraus. Die fehlenden cm waren zu viel für Frank und beim verzweifelten Versuch die Türklinke zu betätigen, verlor er leider seinen Greifarm. Trotz dieses Fehlschlags wurde uns erlaubt die zweite Etappe zu bestreiten. Doch auch dort war aufgrund der starken Nebelentwicklung schnell Schluss. Frank passierte zunächst souverän den Durchgang, drehte sich allerdings nicht genug im Gang was unserem Operator Michael Schmidpeter aufgrund der fehlenden Sensorik nicht auffiel. Frank bewegte sich langsam vorwärts. Durch die leicht schräge Trajektorie zog sich Frank mit seinem linken Rad die Wand hinauf, wodurch er ins Kippen kam und seinen (Sensorik)Kopf verlor. Damit war der Wettbewerb für uns vorbei. Mit diesem doch sehr desaströsen Findaldurchlauf verteidigten wir zwar unseren 4. Platz, aber nur da Team 5 aus Aachen ihren Roboterhund Spot nicht in dem Hindernislauf riskieren wollten.

Und damit endete unsere xte Teilnahme am RoboCup Rescue German Open in Kassel. Nach der Siegerehrung gratulierten wir Team Hector und unserem ewigen Rivalen Team AutonOhm 😉 zu ihren wohlverdienten 1. und 2. Plätzen. Somit packten wir unsere sieben Sachen und traten als Sieger der Herzen unsere Heimfahrt an.

Es hat wie immer sehr viel Spaß gemacht. Wir wollen uns auch bei allen teilnehmenden Teams bedanken, die den RoboCup Rescue erst zu dem genialen Ereignis machen das es ist. Wir waren leider nicht so erfolgreich wie erhofft, lassen uns allerdings durch diese Rückschläge nicht entmutigen. Letztendlich konnten wir die Zeit am RoboCup nutzen, um Frank wieder ein paar Funktionen mehr zu spendieren und nächstes Jahr von einer gestärkten Position zu starten. We will be back!