Felix Pfarr

Projekte · Bachelorthesis

KI-gestützte Roboter-Manipulationspipeline

Ein Roboterarm greift ein chirurgisch nachempfundenes Instrument, hebt es an und legt es an einer Zielpose ab, gelernt allein in der Simulation. Ein zweites Modell liest aus dem Kamerabild ab, ob das Instrument gerade getragen wird. Die eigentliche Frage der Arbeit war nicht, ob beides funktioniert, sondern was passiert, wenn die Bedingungen nicht mehr die des Trainings sind.

Rolle
Bachelorarbeit, Einzelarbeit
Betreuung
Prof. Dr. Martin Prause, AKAD University Stuttgart
Stand
eingereicht 08/2026, Bewertung ausstehend
Umfang
eine Greifpolicy, zehn Segmentierungsmodelle, drei synthetische Datensätze mit je 2.800 Bildern
Stack
Fusion 360, NVIDIA Isaac Sim, Isaac Lab, Replicator, rsl_rl, PPO, U-Net, Python
Unterlagen
Arbeit und Code auf Anfrage, siehe Kontakt

Vorgehen

Grundlage ist die Isaac-Lab-Beispielumgebung Isaac-Lift-Cube-Franka-v0, die ich für den Anwendungsfall erweitert habe. Statt eines Würfels greift der Arm ein selbst in Fusion 360 konstruiertes Instrument, statt reinem Anheben verlangt die Aufgabe ein Halten auf geforderter Zielhöhe, dazu kommen angepasste Belohnungs-, Beobachtungs- und Abbruchstrukturen.

Das Objekt wiegt 0,15 kg und bekommt einen SDF-basierten Kollider, der die kantige Form punktgenau nachzeichnet. Mit einfachen Box-Kollidern rutschte das Werkzeug regelmäßig aus dem Greifer, das war keine Feinheit, sondern der Unterschied zwischen lernbar und nicht lernbar.

Greifen lernen

Trainiert wurde mit PPO über rsl_rl, mit 4.096 parallelen Umgebungen auf einer RTX 3060 und rund 13.000 Iterationen. Ein Signal nur für den erfolgreichen Abschluss wäre viel zu selten, deshalb ist die Belohnung in Teilterme für Annähern, Greifen, Anheben, Transportieren und Ablegen zerlegt. Die Terme für das präzise Ablegen konkurrieren allerdings mit denen für das Anheben. Von Beginn an aktiv, konvergierte das Training nicht, erst das Zuschalten nach 9.000 Iterationen als Curriculum stabilisierte es.

Der größere Teil der Arbeit steckte im Schließen von Schlupflöchern. Sich selbst überlassen, fand der Agent Abkürzungen, die den Erfolgsterm formal erfüllten. Er balancierte das Werkzeug auf dem Unterarm, statt es im Greifer zu halten, oder der Arm sackte während der Annäherung in sich zusammen. Beides habe ich über zusätzliche Bedingungen im Belohnungsentwurf ausgeschlossen.

Ein früherer Trainingsstand, in dem der Arm während der Annäherung kollabiert

Bewertet wurde die fertige Policy auf drei Testszenarien, die sich einzig im erlaubten Bereich der Objektstartpose unterscheiden, nämlich dem Trainingsbereich, einer Erweiterung um 30 Prozent und einer um 60 Prozent. Die Erfolgsrate zählt nur Durchläufe, in denen das Objekt gegriffen, angehoben, transportiert und an der Zielpose abgelegt wurde.

Erfolgsrate der Greifpolicy Trainingsbereich 95,6 % Bereich +30 % 89,0 % Bereich +60 % 78,0 %
Erfolgsrate über die drei Testszenarien

Der Abfall verläuft kontinuierlich und leicht beschleunigt, die zweite Erweiterungsstufe kostet etwa das 1,7-fache der ersten. Einen Schwellenwert, ab dem die Policy sprunghaft versagt, gibt es im untersuchten Bereich nicht. Erhöht man zusätzlich die geforderte Haltedauer an der Zielpose, verliert der Trainingsbereich nur 2,1 Prozentpunkte, das am weitesten erweiterte Szenario dagegen 7,4. Außerhalb ihrer Verteilung erreicht die Policy die Zielpose also nicht nur seltener, sie hält das Objekt dort auch weniger stabil.

Die Breite der Randomisierung

Für den zweiten Teil brauchte ich Bilder mit pixelgenauen Masken. Die entstehen aus dem laufenden Greifzyklus. Die trainierte Policy steuert den Arm, die Kamerasensorik liefert in festen Abständen das gerenderte Bild samt Maske, und der wahre Greifzustand kommt direkt aus dem Physikzustand und nicht aus irgendeiner Vorhersage. Weil eine gute Policy kaum noch Fehlgriffe produziert, habe ich sie gezielt provoziert. In einem Teil der Episoden reißt der Greifer mitten im Transport auf, in einem anderen schließt er ins Leere.

Randomisiert wurden Lichtfarbe und -intensität, Lichteinfall, Hintergrund- und Objekthelligkeit, laterale Objektpose und Kamerawinkel. Davon gibt es drei Profile, eine schwache und eine starke Trainingsstufe sowie ein Prüfprofil, dessen Wertebereiche auf sechs der sieben Achsen vollständig außerhalb beider Trainingsstufen liegen. Je Stufe habe ich fünf U-Net-Modelle mit unterschiedlichen Zufallsstartwerten trainiert, sonst wäre nicht zu trennen, was am Datensatz liegt und was an der Initialisierung.

Gerendertes Kamerabild einer Greifsituation unter den Bedingungen des Prüfprofils
Eingabebild aus dem Prüfprofil
Exakte Segmentierungsmaske derselben Szene mit Roboter in Grün, Ablagefläche in Blau und dem Objekt als kleiner rosa Fläche
Die exakte Maske dazu

Dieselbe Aufnahme, zehnmal vorhergesagt. Oben die fünf schwach randomisierten Modelle, darunter die fünf stark randomisierten. Beide Gruppen teilen Architektur, Trainingsverfahren und Hyperparameter, unterschiedlich ist allein die Breite der Trainingsverteilung.

Fünf Vorhersagen schwach randomisierter U-Net-Modelle auf demselben Prüfbild, in denen Hintergrund und Ablagefläche großflächig falsch zugeordnet werden
Fünf schmal trainierte Modelle auf dem Prüfbild
Fünf Vorhersagen stark randomisierter U-Net-Modelle auf demselben Prüfbild, die Roboter und Ablagefläche sauber trennen
Fünf breit trainierte Modelle, dasselbe Bild
mIoU auf der eigenen Verteilung schwach randomisiert 0,9540 stark randomisiert 0,9439 mIoU auf dem Prüfdatensatz schwach randomisiert 0,2080 stark randomisiert 0,7604
Mittelwerte aus je fünf Modellen, gleiche Skala in beiden Blöcken

Auf der eigenen Verteilung kostet die breite Randomisierung 0,0101 mIoU. Auf dem Prüfdatensatz trennen beide Stufen 0,5523. Die schwach randomisierten Modelle werden dort nicht ungenauer, sie brechen zusammen. Ihre Pixelgenauigkeit fällt auf 0,3626 und damit unter das, was schon eine Vorhersage von reinem Hintergrund erreichen würde.

Auffällig ist auch die Streuung. Bei der schwachen Stufe reicht die mIoU der fünf Modelle von 0,1251 bis 0,2709, bei der starken von 0,7106 bis 0,7928. Die schmale Trainingsverteilung erzeugt also nicht nur schlechtere, sondern auch untereinander schlechter vergleichbare Modelle. Aus dem Validierungsverlauf ist dabei nicht abzulesen, welches Modell später versagen wird, beide Stufen enden auf demselben Niveau.

Beides zusammen

Im dritten Teil läuft die Segmentierung während der Simulation mit. Aus der vorhergesagten Maske leitet eine geometrische Regel ab, ob das Objekt getragen wird, und dieser Wert wird mit dem tatsächlichen Zustand aus der Physik verglichen, je Bedingung über 8.000 Bilder. Damit ein schlechter Wert nicht pauschal dem Netz angelastet wird, läuft dieselbe Regel zusätzlich auf der exakten Maske. Das ist die Referenz, also das Beste, was bei fehlerfreier Segmentierung überhaupt möglich wäre.

Unter kalibrierten Bedingungen erreichen beide Stufen einen F1-Wert von etwa 0,94 bei einer Referenz von 0,9548, die Segmentierung arbeitet dort praktisch verlustfrei. Unter dem Prüfprofil fällt die starke Stufe auf 0,7831 und die schwache auf 0,3320, während die Referenz mit 0,9360 fast unverändert bleibt. Der Einbruch liegt also an der Wahrnehmung, nicht an der Regel.

Drei Ansichten nebeneinander: gerendertes Kamerabild, exakte Segmentierungsmaske und eine Vorhersage, in der der Hintergrund großflächig als Roboter zugeordnet wird
Eingabe, exakte Maske und eine Vorhersage, die auseinanderfällt

Das Objekt macht je nach Aufnahme nur 0,03 bis 0,05 Prozent aller Bildpunkte aus, in der Maske oben ist es die kleine rosa Fläche. Deshalb kombiniert die Verlustfunktion einen Dice-Anteil mit gewichteter Kreuzentropie, eine reine Kreuzentropie würde vom Hintergrund dominiert.

Gegen die Instabilität unter fremden Bedingungen habe ich zwei Maßnahmen geprüft, die ohne erneutes Training auskommen. Ein Ensemble der fünf Modelle einer Stufe hebt den F1-Wert um 0,067, eine zeitliche Glättung über aufeinanderfolgende Bilder um weitere 0,036, zusammen auf 0,8859 und damit auf 95 Prozent der Referenz. Die Glättung hilft allerdings nur dort, wo die Erkennung tatsächlich schwankt. Wo sie bereits stabil ist, verschmiert sie die echten Zustandswechsel an den Phasenübergängen.

Erkenntnisse

  • Die Greifpolicy verliert außerhalb ihrer Trainingsverteilung kontinuierlich an Leistung, von 95,6 auf 78,0 Prozent, ohne erkennbaren Kipppunkt. Der Verlust ist gutmütig, aber er ist da.
  • Über Erfolg und Zusammenbruch des Segmentierungsmodells entscheidet die Breite der Trainingsverteilung, nicht das Modell. Breit zu randomisieren kostet auf der eigenen Verteilung fast nichts und bringt auf unbekannten Bedingungen alles.
  • Ein Gesamtwert je Modell verdeckt zu viel. Erst die Aufschlüsselung nach Greifphase zeigte, dass der schwächste Punkt der Pipeline nicht gelernt, sondern geometrisch bedingt ist.
  • Tragend waren drei methodische Entscheidungen. Die Labels stammen aus dem Physikzustand und nicht aus dem zu bewertenden Modell, dieselbe Ableitungsregel läuft zusätzlich auf der exakten Maske als Referenz, und jedes Training wurde mit fünf Startwerten wiederholt. Ohne diese Referenz wäre eine geometrisch bedingte Schwäche fälschlich dem Netz zugeschrieben worden.
  • Offen bleibt die Übertragung auf reale Hardware. Alle Aussagen sind simulationsintern gewonnen und gegen einen ebenfalls synthetischen Prüfdatensatz gemessen.

Die Simulationsumgebung baut auf der öffentlich verfügbaren Beispielumgebung Isaac-Lift-Cube-Franka-v0 von NVIDIA auf. Der Quellcode liegt aus urheberrechtlichen Gründen nicht öffentlich vor. Die vollständige Arbeit und Einblick in das Repository stelle ich auf Anfrage zur Verfügung, die Kontaktangaben stehen auf der Startseite.

Zurück zu den Projekten