Hergestellt mit Unity: Fußballroboter mit ML-Agenten

ANTHONY NAVARRO / UNITY TECHNOLOGIESSenior Technical Product Manager
Aug 6, 2021|8 Min.
Hergestellt mit Unity: Fußballroboter mit ML-Agenten
Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.

Unsere Made with Unity: In der Serie AI werden Unity-Projekte vorgestellt, die von Entwicklern für eine Reihe von Zwecken erstellt wurden, bei denen unsere Produkte für künstliche Intelligenz zum Einsatz kommen. In diesem Beispiel haben ML-Agents den KI-Entwicklern die Möglichkeit gegeben, schnell und einfach maschinelle Lernumgebungen einzurichten und einen Agenten für das Fußballspielen zu trainieren, bevor dieser schließlich auf einen echten Roboter übertragen wird.

Das Unity Machine Learning Agents Toolkit (ML-Agents) ermöglicht Benutzern den einfachen Einstieg in das Reinforcement Learning (RL) mit Unity. ML-Agents bietet den Benutzern eine Vielzahl von Beispielumgebungen und Modellarchitekturen, die sie für den Einstieg in die Arbeit mit RL nutzen können. Die Benutzer können dann die Hyperparameter anpassen, um zu experimentieren und die resultierenden Modelle zu verbessern. All dies kann geschehen, ohne dass sich der Benutzer um die Erstellung einer Unity-Umgebung oder den Import von Assets kümmern muss - und es besteht auch kein unmittelbarer Bedarf an Programmierung. Dieses Projekt aus Japan von Ghelia Inc. verwendet die ML-Agents Fußballumgebung, um einen Agenten für das Fußballspielen zu trainieren. Das daraus resultierende RL-Modell wurde dann auf echten Sony-Toio-Robotern zum Fußballspielen eingesetzt. Dies ist ein spannendes Beispiel für den Übergang von der Simulation zur realen Welt in der Robotik unter Verwendung von ML-Agents zum Training.

Wir haben Ryo Shimizu, CEO und Präsident von Ghelia, Hidekazu Furukawa, leitender Programmierer im Büro für Innovations- und Markenstrategie, und Masatoshi Uchida, Leiter der Innovationsabteilung des Büros für Innovations- und Markenstrategie, befragt, um herauszufinden, was sie zu diesem Projekt inspiriert hat. Lesen Sie weiter, um herauszufinden, wie sie ML-Agents Toolkit für das Training eines realen Roboters verwendet haben, um Fußball zu spielen und wie ein Golfball in dieses Szenario passt.

Roboterfußball mit ML-Agenten und Sony toio

Was hat Sie zu Ihrem Projekt inspiriert?
Ghelia ist ein Unternehmen, das sich auf Anwendungen des Reinforcement Learning konzentriert. Der Gründer von Ghelia, Hiroaki Kitano, brachte RobocupSoccer auf den Markt und entwickelte den AIBO bei Sony. Unser Team hatte zuvor eine Air-Hockey-Demo gebaut, aber da sie aus vielen verschiedenen Komponenten bestand, war sie nicht sehr tragbar. Als wir über eine weitere Demo nachdachten, um den Kunden zu erklären, was Reinforcement Learning ist, wollten wir etwas, das leichter zu transportieren ist. Da ML-Agents bereits über eine Fußballumgebung verfügte, lag es nahe, die kleinen und tragbaren Sony toio-Roboter zu nutzen, um ein Fußballspiel zu erstellen, das auch zu viralen Inhalten führen könnte.

Bild einer quadratischen MLA-Fußballdemonstration mit einer 3D-Darstellung einer Fußballarena
Wie haben Sie das ML-Agenten-Modell auf den realen Roboter übertragen?

Um Verstärkungslernen auf einen realen Roboter anzuwenden, muss der Roboter in einer Simulationsumgebung existieren. Glücklicherweise hat toio bereits einen Simulator namens toio SDK für Unity. Indem wir das Paket ML-Agents hinzufügten, konnten wir es sofort für Schulungen verwenden. Während das toio SDK die Robotermodelle für Unity bereitstellte, mussten wir noch den Ball erstellen. Wir verwendeten die Physik-Engine von Unity, um den Ball im Simulator nachzubilden, und mussten einen realen Ball finden, der den Simulationsergebnissen entsprach. Es stellte sich heraus, dass ein Golfball reale Ergebnisse lieferte, die den Trainingsergebnissen entsprachen. Die Position des Balls wurde in der Simulation mit Hilfe von Unity-Transformationswerten und in der realen Welt durch Bilderkennung mit OpenCV und einer Kamera ermittelt.

MLA-Fußballvorführung mit Legostein-Robotern
Wie haben Sie Ihre Hardware eingerichtet, um dies in der realen Welt auszuführen?

Wir haben einen Golfball verwendet, um den Fußball darzustellen, aber um die Erkennungsrate zu erhöhen, haben wir ihn rot angemalt. Erstaunlicherweise waren wir in der Lage, mit nur einem iPhone und dessen Kamera den Ball zu erkennen, alle acht Roboter zu steuern (es war ein Vier-gegen-Vier-Fußballspiel) und mit dem ML-Agents-Modell Inferenzen durchzuführen.

Demonstration von ML-Agents Fußball mit einem Fußball-Layout und ML Agents aus Lego und einem roten Golfball als Fußball
Wie haben Sie Ihre Belohnungsfunktion gestaltet?

Am Anfang gab es viele Eigentore, also haben wir versucht, ein Eigentor negativ zu belohnen. Dies führte jedoch dazu, dass die Torhüter ihr Tor nicht verteidigten. Als wir versuchten, eine positive Belohnung für das Bewegen des Balls zu geben, gingen beide Teams einfach hin und her, ohne den Ball ins Tor zu bringen, und hielten im Grunde die Zeit an. Schließlich beschlossen wir, einen Punkt für das Einschießen des Balls in das gegnerische Tor zu belohnen und einen Punkt für ein Gegentor abzuziehen.

Was war die größte Herausforderung bei diesem Projekt?

Manchmal war es schwierig festzustellen, warum die tatsächlichen Roboter nicht so gut funktionierten wie in der Simulation. Zum Beispiel funktionierte die Inferenz manchmal nicht, weil wir den Roboter auf einem leicht geneigten Boden betrieben. In anderen Fällen prallte der Ball anders als in der Simulation zurück, so dass die Roboter nicht wie erwartet reagierten. Auch die Positionierung der Kamera war sehr empfindlich und erforderte eine Präzision im Millimeterbereich, so dass sie am Veranstaltungsort nicht jeden Tag neu eingestellt werden konnte. Nach jeder größeren Verbesserung des Modells haben wir etwa drei Tage lang trainiert. Am Ende hatten wir etwa sechs Trainingseinheiten, um unsere Ergebnisse zu erreichen.

Virtuelle Roboter können ohne reale Auswirkungen zusammenstoßen, aber reale Roboterkollisionen können Probleme verursachen. Wie haben Sie dieses Problem gelöst?

In der ML-Agents-Demo stellen sich die Agenten nach einem Tor an ihrer ursprünglichen Position auf, aber bei echten Robotern ist das nicht so einfach. Einige Probleme, wie z. B. das Vermeiden von Kollisionen zwischen Toios, waren mit Hilfe von Reinforcement Learning allein nur schwer zu lösen. Wir haben zwar zunächst versucht, eine Belohnungsfunktion für dieses Szenario zu entwerfen, haben es aber schließlich heuristisch gelöst.

Gif von MLA Agent Simulation von Fußball spielen
Ist Ihr Projekt quelloffen, und sind weitere Informationen verfügbar?

Bei entsprechender Nachfrage würden wir auf jeden Fall in Erwägung ziehen, dieses Projekt als Open Source zu veröffentlichen. Weitere Einzelheiten zu diesem Projekt finden Sie in unserem Blogbeitrag (auf Japanisch).

Welchen Rat haben Sie für Unity-Entwickler, die maschinelles Lernen für ihre Projekte nutzen möchten?

Künstliche Intelligenz, insbesondere Deep Learning, ist faszinierend, wird aber nicht gut verstanden. Man kann die Schönheit und Komplexität von Unity erst richtig schätzen, wenn man selbst damit arbeitet, und das ist schade. Ich möchte betonen, wie viel Spaß das maschinelle Lernen macht und dass Unity ML-Agents ein System ist, mit dem Sie leicht in das maschinelle Lernen einsteigen oder es in Ihr Projekt einbauen können.

Erfahre mehr

Starten Sie noch heute mit Unity ML-Agents oder erfahren Sie mehr über die Unity Robotics-Pakete. Wenn Ihr Projekt erfordert, dass Sie mehrere Schulungssitzungen parallel starten, kontaktieren Sie uns, um mehr über unser ML-Agents Cloud-Angebot zu erfahren.

Hidekazu Furukawa hat auch ein japanisches Buch mit dem Titel Unity ML-Agents Practical Game Programming veröffentlicht, das detailliert beschreibt, wie man mit ML-Agents in das Reinforcement Learning einsteigen kann.