Roboter spielt "Schere, Stein, Papier" - Teil 2/3
Eine Vision App als simulierter Computergegner
Wie bringt man einen Roboter dazu, "Schere, Stein, Papier" zu spielen? Sebastian Trella - Robotik-Fan und Blogger - ist des Rätsels Lösung inzwischen einen entscheidenden Schritt näher gekommen. Kameraseitig nutzte er dafür IDS NXT, ein Komplettsystem für den Einsatz intelligenter Kameras. Es deckt den gesamten Workflow von der Aufnahme und dem Labeln von Trainingsbildern über das Trainieren der Netze, der Erstellung von Apps für die Auswertung bis hin zur tatsächlichen Ausführung von Anwendungen ab. In Teil 1 unserer Fortsetzungsgeschichte hatte er bereits die Gestenerkennung mittels KI-basierter Bildverarbeitung realisiert und damit auch die neuronalen Netze trainiert. Im Anschluss machte er sich an die Weiterverarbeitung der erkannten Gesten mittels eigens erstellter Vision App.
Weiterverarbeitung der ausgewerteten Bilddaten
Die App bildet die zweite Phase des Projekts und soll - allgemein gesprochen - das Spielen gegen einen simulierten Computergegner ermöglichen. Sie baut auf der trainierten KI auf und verwendet deren Ergebnisse weiter. Dabei stellt sie den KI-Gegenspieler, der zufällig eine der drei vorgegebenen Handbewegungen “ausgibt” und vergleicht diese mit der des Spielers. Anschließend entscheidet sie, wer gewonnen hat oder, ob es ein Unentschieden-Ergebnis gibt. Die Vision App ist also die Schnittstelle zum Spieler auf dem Computermonitor, die Kamera die Schnittstelle zum Erfassen der Spielergesten.
Die App-Erstellung fand ebenso, wie das Training der neutonalen Netze, im cloudbasierten AI-Vision-Studio IDS lighthouse statt. Der blockbasierte Code-Editor, der u.a. der kostenlosen, grafischen Programmierumgebung Scratch ähnelt, machte es Sebastian Trella einfach: "Die Vision App Programmierung mit Scratch/Blockly war mir schon von LEGO® MINDSTORMS® und diversen anderen Robotik-Produkten bekannt und ich fand mich sofort zurecht. Die Programmieroberfläche ist ja praktisch identisch und die benötigte Denkweise war mir daher schon geläufig. Denn, ob ich nun eine KI-gestützte Vision App auf einer IDS NXT Kamera oder einen Bewegungsablauf für einen Roboter entwickle, die Programmierung funktioniert genauso."
"Finetuning" direkt auf der Kamera
Neu war Trella allerdings das Darstellen von Text auf Bild: "Bisher von mir programmierte Roboter haben Ausgaben immer nur per Konsole geliefert. Die Ausgaben der Vision App nun direkt ins Kamerabild zu integrieren, war eine neue Herangehensweise für mich." Besonders die Möglichkeit, die Vision App sowohl in der Cloud als auch auf der Kamera selbst zu bearbeiten, überraschte ihn - aber letztendlich auch, wie komfortabel das Entwickeln auf dem Device funktionierte und wie performant die Kamera-Hardware arbeitete: "Kleine Änderungen am Programmcode können direkt auf der Kamera getestet werden, ohne alles in der Cloud neu kompilieren zu müssen. Die Programmierumgebung läuft hierbei sehr flüssig und stabil." Beim Debuggen von Fehlern auf dem Embedded Device sieht er allerdings noch Verbesserungspotential - speziell in Bezug auf die Synchronisation von Embedded Device und Cloudsystem nach Anpassungen auf der Kamera.
Einen echten Pluspunkt, den er nach eigenen Worten "großartig" fand, entdeckte Trella auf der Website-Oberfläche der Kamera. Denn dort findet sich die Swagger UI - eine Sammlung von Open-Source-Werkzeugen, die zur Dokumentation und zum Testen der integrierten REST Schnittstelle dienen - inklusive Beispielen. Das erleichterte ihm die Arbeit. In diesem Zuge formuliert er auch einige Anregungen für künftige Weiterentwicklungen des IDS NXT Systems: "Toll wären zuschaltbare Module zur Kommunikation mit 3rd Party Robotersystemen, um den Roboterarm direkt aus der Vision App Programmierumgebung “mit programmieren” zu können. Das spart Verkabelung zwischen Roboter und Kamera und vereinfacht die Entwicklung. Ansonsten habe ich den Import von Bilddateien direkt über die Programmierumgebung vermisst - geht bisher nur per FTP. In meiner App hätte ich dann z.B. das Bild eines Pokals für den Gewinner angezeigt."
Wie geht´s weiter?
"Das Vision App bauen hat mir großen Spaß gemacht und ich danke euch ganz herzlich für die tolle Möglichkeit, mit solch interessanter Hardware “spielen” zu dürfen", sagt Sebastian Trella. Als nächstes gilt es, die Möglichkeiten zur Kommunikation der Vision App mit dem Roboterarm genauer zu betrachten und auszuprobieren. Der virtuelle Computergegner soll seine Geste nicht nur auf dem Bildschirm - also im Kamerabild - anzeigen, sondern auch real durch den Roboterarm. Dieser Schritt ist gleichzeitig der letzte hin zum fertigen "Schere, Stein, Papier" Spiel: Der Roboter wird zum Leben erweckt.
Fortsetzung folgt...
Informationen zur Installation finden Sie in unserem Handbuch (nur für registrierte Nutzer).