Skip to main content

Wie die Roboter laufen lernen

Autor: Prof. Dr. Falko Kötter

Roboter, die im virtuellen Raum etwas fürs echte Leben lernen? Virtual Prototyping verspricht genau das. Mit dem KI-Verfahren Reinforcement Learning macht ein kleiner Roboter seine ersten Schritte und lernt durch Belohnungen, wie er seine Beine am besten nutzt. Ob das in der virtuellen Theorie gelernte auch in der physischen Praxis funktioniert, ist allerdings die entscheidende Frage.

Künstliche Intelligenz hat zahlreiche Anwendungsgebiete in der Robotik, sowohl in der Sensorik (Bild-, Objekt-, Druckpunkterkennung) als auch in der Aktorik (Fortbewegung, Greifen). Verwendet man allerdings Machine Learning, also das Lernen aus großen Datenmengen, stellt sich eine Herausforderung. Daten mit einem physischen Roboter-Prototypen zu generieren ist kostspielig und langwierig. Hardware muss gebaut und gewartet werden und jede Messreihe erfordert einen eigenen Versuchsaufbau. Virtual Prototyping verlegt das Training in den virtuellen Raum, sodass diese Messreihen automatisiert mit einem simulierten Roboter ablaufen. Erst, wenn so ein vielversprechendes Modell trainiert wurde, kommt es zur aufwändigeren physischen Erprobung mit realer Hardware. 

Ein Studienprojekt an der DHBW Stuttgart hat diesen Ansatz erforscht, indem ein sechsbeiniger Roboter mithilfe von Maschine Learning und Simulation im Computer und dann real laufen lernte (vgl. [1]). Dazu wurde ein kommerzieller Roboter „von der Stange“ verwendet. Mittels einer Schnittstelle kann man einen vorprogrammierten Bewegungsablauf abspielen. Zur Erprobung läuft der Roboter durch einen manuell konfigurierten Ablauf, bei dem er entgegengesetzte Beine abwechselnd bewegt. Als Simulationsumgebung für das Virtual Prototyping wurde die Spiele-Engine Unity verwendet, die eine eigene Physiksimulation mitbringt. In dieser Umgebung wurde ein virtueller Zwilling eines Hardware-Roboters modelliert und mit Sensoren und Aktoren ausgestattet, mit dem trainiert werden kann.
Ziel war es, dem virtuellen Roboter das Laufen beizubringen und zu überprüfen, wie gut die resultierenden Bewegungsabläufe sich zur Fortbewegung des realen Roboters eignen.

Abbildung 1: Virtueller und realer Roboter Hexapod

Reinforcement Learning – Lernen durch Belohnung!

Unity bietet mittels der Bibliothek Unity-ML-Agents Toolkit eine Integration mit Machine-Learning-Bibliotheken wie Tensorflow. Das Trainingsverfahren für den Roboter ist Reinforcement Learning: Mit einer Belohnungsfunktion wird festgelegt, welches Verhalten gewünscht ist. Das Training versucht nun, diese Belohnung zu maximieren. Dazu werden Algorithmen erzeugt, die Belohnung in einzelnen Versuchen (sog. Episoden) gemessen und nach dem Prinzip der Evolution die besten miteinander rekombiniert. So entstehen nach vielen Epochen immer bessere Algorithmen mit dem gewünschten Verhalten. Konkret erzeugt das Training einen Algorithmus, der die nächste Stellung der 6 Beine abhängig von der aktuellen Stellung sowie der Position des Roboters im Raum wählt.

Entscheidend für die Ergebnisqualität im Reinforcement Learning ist die Belohnungsfunktion, die festlegt, mit welchem Gewicht welches Verhalten belohnt oder bestraft wird. Erste Versuche mit einer komplexeren Belohnungsfunktion, die Strafen für Bewegungen in die falsche Richtung vergab, führte zu einem unvorhergesehenen Verhalten: Der Roboter lernte, sich auf den Rücken zu drehen, da das für den Abbruch der Episode und damit ein Ende der Bestrafung sorgte. Diese Strategie stellte ein lokales Verhaltensoptimum dar, sodass keine sinnvolle Vorwärtsbewegung erlernt wurde.

Im zweiten Versuch wurde deswegen eine einfachere Belohnungsfunktion gewählt: Belohnt wird die Vorwärtsgeschwindigkeit des Roboters. Die Simulation versucht mit Reinforcement Learning, die Belohnung zu maximieren. Ab 200 Mio. Epochen mit ca. 2 Wochen Rechenzeit zeigte sich eine deutliche Verbesserung der erzielten Belohnung. Es entstand ein brauchbarer Laufalgorithmus, mittels dem sich der Roboter ähnlich einem Krebs seitwärts voranbewegt.

Die Probe aufs Exempel

Mittels der nach 300 Millionen Epochen im virtuellen Training erlernten Bewegungsabläufe wurde dann der reale Roboter gesteuert. Hier zeigte sich allerdings, dass es große Unterschiede in der realen und simulierten Performance des Roboters gibt. Versuche mit verschiedenen Untergründen (glatt, rau, etc.) zeigten ebenfalls verschiedene Ergebnisse. Mögliche Gründe für die verminderte Performance des realen Roboters sind wahrscheinlich Impräzisionen in der Physiksimulation sowie Abweichungen im Gewicht, Reibung und Verhalten der Gliedmaßen zwischen Simulation und Realität. Eine genaue und realitätsgetreue Simulation ist also eine Voraussetzung für den Einsatz von Virtual Prototyping, die ihrerseits erheblich Zeit und Aufwand erfordert.

Bewegungsabläufe im virtuellen und realen Raum

Kernerkenntnisse

Virtual Prototyping in Verbindung mit Reinforcement Learning verspricht günstigere, schnellere und bessere intelligente Hardwareprodukte. Während es sich im vorgestellten Beispiel um ein Laborexperiment handelt, bestehen zahlreiche Anwendungsfelder bei den Ausbildungsunternehmen der DHBW, beispielsweise in der Regelungstechnik, beim autonomen Fahren, oder bei Drohnen und Robotern.

Die Unity-Engine mit Integration für Machine Learning hat sich als geeignetes, kostenfreies Werkzeug für die Durchführung von Lehrveranstaltungen und Studienprojekten an der DHBW erwiesen. Für kommerzielle Anwendungen sind spezialisierte Simulationsumgebungen ggfs. geeigneter, weisen aber auch höhere finanzielle und fachliche Einstiegshürden auf. 

Ein besonderer Dank gilt Makss Golubs, der dieses Projekt unter Anleitung von Prof. Kötter umgesetzt hat.

Literaturverzeichnis

[1] B. Qin, Y. Gao and Y. Bai, "Sim-to-real: Six-legged Robot Control with Deep Reinforcement Learning and Curriculum Learning," 2019 4th International Conference on Robotics and Automation Engineering (ICRAE), 2019, pp. 1-5, doi: 10.1109/ICRAE48301.2019.9043822.

[2] T. Haarnoja, S. Ha, A. Zhou and J. Tan, "Learning to Walk via Deep Reinforcement Learning," 19 June 2019. [Online]. Available: https://arxiv.org/pdf/1812.11103.pdf (PDF). [Accessed 14 September 2022].
 

Blog von Prof. Dr. Falko Kötter