Roboterwettbewerbe


Außenstehende glauben vielleicht, dass Robotik ein Thema der Inforamtik wäre wo es darum geht den perfekten Kampfroboter zu programmieren um so unendlich viel Macht zu erhalten. Doch das ist nicht wahr. In Wahrheit ist Robotik eine Methode um „computional thinking“ zu erlernen, also ein Lernprogramm für einen selber. Das heißt, der Roboter selber ist egal, sondern es geht um die Leute die sie programmieren. Aber wie lernt man am besten Robotik? Natürlich durch eine Robotics-Challange. Davon gibt es nicht soviele. Wikipedia sagt, dass es aktuell folgende größeren Roboterwettbewerbe gibt:
– Robocup
– Darpa Robotics Challange
– Micromouse
– First Lego League

Gehen wir die Challanges durch: First Lego League ist etwas für Jugendliche und Schüler. Micromouse gilt als weitestgehend gelöst weil im Grunde ein pathplanner ausreicht um die Mouse zu steuern und wie der programmiert wird ist allgemein bekannt. Die Darpa Challange ist etwas für Teams die zuviel Geld haben und mit fetten Etats und Kleinbussen anreisen, bleibt also nur noch die Robocup Challange übrig. Das ist zwar nicht direkt eine Jedermann Veranstaltung aber immerhin ist man so offen, dass die Paper publiziert werden, dass es Youtube-Videos gibt und die Veranstaltung medial supported wird.

Worum geht es bei Robocup? Es geht darum, Spielzeugroboter die der obeneren Preisklasse entstammen Fußball spielen zu lassen. Sie müssen dort als Team agieren und es gilt zu gewinnen, also besser zu sein als die gegnerische Mannschaft. Trotz intensiver Recherche konnte ich keine vergleichbare Challange ausfindig machen, wo also ebenfalls eine Roboterchallange durchgeführt wird, sondern Robocup ist wohl das was als Marktführer in dem Bereich gilt.

Bleibt noch die Frage zu klären ob man womöglich auch ohne Challange Roboter programmieren kann. Also einfach nur ein Paper veröffentlichen und den Studenten erklären wie es gemacht wird. Leider nein, das wurde gemacht bevor es Robocup gab, was dazu geführt hat, dass zwar viel Material über Roboter entstand, das aber alles nicht in der Praxis getestet wurde. Bei Robocup geht es primär um die Demonstration als solche. Und erst wenn eine Mannschaft 10 Tore hintereinander schießt interessiert sich jemand für die technischen Details.

Bleibt als letzte und wichtigste Frage noch zu klären was man mitbringen muss um bei Robocup zu gewinnen? Meiner Ansicht nach reicht es aus, wenn man einen Robotercontroller programmiert der ein Team steuert und das gegnerische Tor mit Treffern überzieht.

Kann man bei Robocup irgendwas gewinnen? Wohl eher nicht. Es sei denn man bezeichnet den Applaus im Publikum als erstrebenswert. Manchmal erhält man bei der Siegerehrung auch eine Auszeichnung überreicht. Aber ich glaube, im Kern geht es darum, das gegnerische Team kaputt zu machen.

Robocup ist aus mehreren Gründen interessant: einmal die Möglichkeit eine Challange durchzuführen bei der es gerne auch etwas aggressiver zugehen kann, dann das Herumspielen mit der allerneuesten Technologie und als drittes die öffentliche Wahrnehmung. Das heißt Robocup wird auch vom Mainstream reflektiert.

DETAILS
https://www.robocup2017.org/eng/leagues_football.html stellt den Wettbewerb nochmal mit etwas Videomaterial da. Es gibt verschiedene Leaguen wobei die Small Size League mit radgetriebenen Robotern funktioniert während die humanoide League schon etwas anspruchsvoller auf die bekannten Nao Modelle setzt.

Programmtechnisch am leichtesten dürfte die Simulation League zu realisieren sein. Dort ist einfach nur eine simulierte Draufsicht enthalten die eine Physik-Engine? verwendet um den Spielausgang zu bestimmen. Aus spieltheoretischer Sicht handelt es sich um ein Realtime-Strategy Game bei dem ein Ball, usw usw. Steht alles im Regelwerk drin. Doch gehen wir mal in die Detail, wie spielt man da mit?

Zunächst einmal fällt auf, dass die Antwort niemand kennt. Was es gibt, sind jedoch wissenschaftliche Paper der einzelnen Teams in denen erläutert wird, wie die jeweilige Software funktioniert. Im Laufe der Jahre wurden Fortschritte erzielt aber die eine Software mit der alle arbeiten gibt es nicht. Vielmehr ist handarbeit angesagt, überlichweise versuchen die Teams das an Wissen in die Software einzubringen was sie schon haben: seien es Kenntnisse über C++ Programmierung, über Suchalgorithmen oder was auch immer. Robocup besteht aus zwei Layern, einmal das öffentlich wahrnehmbare Spiel auf dem Platz und dann die Programmierung der Roboter. Im folgenden versuche ich eine Beschreibung zu liefern wie eine KÜnstliche Intelligenz für Robocup auszusehen hat. Leider ist es bisher nur ein Konzept, der passende Sourcecode muss noch programmiert werden. Aber vielleicht sind ja dennoch wichtige Dinge dabei.

Die Künstliche Intelligenz nutzt eine linguistische Taxonomie. Damit ist ein Wortnetz gemeint was hierarchisch beschreibt was die Motion Primitive sind. wie z.B. „goto ball“, „kick ball“, „standup“ usw. Jedes dieser Motion Primitive wird als Finite State Machine programmiert. Das heißt, mit Sourcecode hinterlegt, der die Parameter und die Lowlevelkommandos enthält. Bei „goto Ball“ wird beispielsweise der Ball lokalisiert und der Roboter bewegt sich dorthin. Die Taxonomie wird in eine GUI eingeblendet um sie interaktiv von einem Human-Operator als Interface zu nutzen. Das heißt, ein Mensch klickt auf die Kommandos und steuert so den Schwarm. Vergleichbar wie bei einem Echtzeitstrategiespiel. Der Unterschied ist jedoch, dass die Roboter mehr können als einfach nur zu einem Punkt zu gehen, sondern es gibt eine reichhalte Auswahl an Motion Primitiven, die bishinunter zur inversen Kinematik jedes Detail des Roboters beeinflussen.

Ist die linguistische interaktive Taxonomie funktioniertfähig und reagiert sie auf menschliche Kommandos geht es im nächsten Schritt darum, den Automatisierungsgrad zu erhöhen. Das Regelwerk von Robocup sieht vor, dass nicht geschummelt werden darf, das heißt, die Roboter müssen autonom agieren. Das bedeutet man muss den Human Operator out-of-the-loop bekommen. Das heißt, man benötigt einen Globalplanner, der aus der Taxonomy den passenden Motion Primitive auswählt. Ein solcher Globalplanner benötigt als Hilfestellung einen Parser, der das Spielfeld visuell analyisert und daraus berechnet welche Aktionen anstehen.

Das heißt, die Künstliche Intelligenz ist kein monolitscher Algorithmus der denken kann, sondern es handelt sich um eine Layer-Architektur die stückweise entwickelt wird und wo erst ganz am Ende eine autonome Steuerung entsteht. In der Literatur wird dieses Design als Bottom up Robotics bezeichnet.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s