Bewertung von Roboterframeworks


Damit ein Roboter sinnvoll eingesetzt werden kann, müssen zwei grundlegende Probleme gelöst werden: erstens, Umgebungserkennung mit Hilfe von SLAM Verfahren; zweitens, Task Planning mit Hilfe von Behavior Trees. Derzeitige Roboter die im Consumer-Segment verkauft werden (Lego Mindstorms, Nao Aldebaran, Roboterarm von Reichelt Versand) erfüllen keines dieser Kriterien. Weder sind derartige Systeme in der Lage ihre Umgebung zu erkennen, noch verfügen sie über einen Task Planner.

Als eigentliche Künstliche Intelligenz in einem Roboter kann vermutlich der Task-Planner gewertet werden. Er ist es, der letzlich darüber entscheidet, wann die Gelenke des Roboters verändert werden, gewissermaßen löst der Task Planner das Optimal Control Problem. Es gibt für diese Aufgabe zwei unterschiedliche Varianten: einmal klassisches proaktives Planen was in der Informatik als Piano Movers Problem diskutiert wird und zur dessen Lösung Simulated Annealing, RRT oder genetische Algorithmen zum Einsatz kommen. Dieses Plannungsprinzip hat sich in der Praxis jedoch nicht bewährt, weil der Suchraum viel zu groß ist um ihn planen zu können. Deshalb werden im Bereich „ingame AI“ und Robotik zunehmend reaktive Planer eingesetzt, bei der die Aktionen manuell als Sourcecode festgelegt werden und zwar mit Hilfe eines Behavior Trees.

Im Gegensatz zu proaktiven Plannern, die über Bruteforce arbeiten und damit auf schnelle Computer angewiesen sind, müssen Behavior Trees manuell in einem Softwareentwicklungsverfahren erstellt werden. Es gibt dafür spezielle reaktive Action-Languages wie ABL, deren Programmierung jedoch fehleranfällig ist und in der Regel nur für ein konkretes Problem anwendbar bleiben. Das bedeutet, ein Behavior Tree der für Starcraft AI erstellt wurde, kann nicht für einen Unreal Bot verwendet werden und umgekehrt. Dennoch sind Behavior Trees State-of-the-art in Sachen künstlicher Intelligenz weil damit sinnvolle Entscheidungen automatisiert herbeigeführt werden können.

Bisher wurde der technische Stand bis ungefähr ins Jahr 2005 beschrieben. Und danach kam ROS und hat alles verändert (ROS wurde ab 2008 ausgehend von der Stanford Uni entwickelt). Man kann sagen, die „neue Robotik“ von der in den Medien so oft berichtet wird, besteht im Grunde erst seit 2005 und sie ist primär ROS-getrieben. Es wird zwar immer von Dingen wie kogntive Architekturen, BigData oder Machine Learning zur konkretenn Realisierung von Robotik diskutiert, und es gibt viele unterschiedliche Softwareprojekte wie ADAPT, SOAR, BehaviorTree Frameworks oder DeepLearning Algorithmen, doch wirklich eingesetzt in der Praxis wird nur eine Architektur: ROS in Verbindung mit Knowrob. ROS liefert dabei mit Hilfe von Visual-SLAM Verfahren, die über rviz auf dem Monitor dargestellt werden, die Umgebungserkennung, und knowrob liefert den konkreten Behaviortree der für die Task-Plannung zuständig ist. Eine alternative Software, die ebenfalls beide Kernelemente der „new robotik“ realisiert gibt es praktisch nicht. Das einzige, was ROS derzeit nicht mitbringt ist eine nutzerfreundliche Bedienoberfläche. Diese würde in einem App-Store bestehen wo man sich Robot-Apps für Android oder iphone herunterladen kann und mit denen auch Gelegenheitsnutzer ihren Roboter leicht steuern können. Es ist anzunehmen, dass an einem solchem App-Store bereits von Google im Geheimen gearbeitet wird und dass dieser App-Store dann auch für den Durchbruch von ROS im Massenmarkt sorgen wird.

Im Grunde hätte man damit so eine Art von Robotik-Framework geschaffen, welche Roboterprogrammierer, Herstellerfirmen und Nutzer zusammenbringt. Die Entwicklerseite hat mit ROS eine ideale Entwicklungsumgebung, für die sie BehaviorTrees für jeden möglichen Einsatzzweck erzeugen können und sogar Multi-Agenten-Systeme umsetzen könnte. Die Konsumenten hingegen hätten mit dem Robot-App-Store eine leicht zu überblickende Oberfläche welche das komplexe Softwareframework im Hintergrund versteckt und Hardware-Herstellerfirmen hätten ein Biotop, für das es sich lohnt preiswerte und qualitativ hochwertige Systeme zu entwickeln.

Und obwohl die Möglichkeiten faszinieren, ist Eile nicht angebracht. Vielmehr scheint die Entwicklung eine Art von Selbstläufer geworden zu sein. Das kann man am bisherigen zeitlichen Verlauf erkennen. Vor dem Jahr 2008 gab es noch gar kein ROS. D.h. das Framework ist geradeeinmal 8 Jahre alt, und bisher ist es lediglich eine Spielwiese für Robotik-Programmierer nicht jedoch für den Endverbraucher. In dieser kurzen Zeitspanne wurde in dieses Framework das meiste von dem integriert, was im Bereich Automatisierung und Künstlicher Intelligenz die letzten 50 Jahre davor erforscht wurde. Das bedeutet, selbst Knowrob ist keine komplette Neuentwicklung sondern basiert auf Forschungen zum Thema kognitive Architekturen, OWL-Semantiken und Action Task Languages die davor durchgeführt worden. Beispielsweise hatte die NASA im Jahr 1998 eine Sonde namens Deep Space 1 gestartet, welche ebenfalls über einen Task Action Planner verfügte und der sich heute fast Eins-zu-Eins in Knowrob wiederfindet. Aber das nur als Exkurs, woher die Einzelideen stammen.

Wichtig für den weiteren Verlauf werden vor allem zwei Elemente sein: erstens, wird sich die wissenschaftliche Community (wenn nicht ohnehin bereits stark in der ROS Entwicklung engagiert) stark auf dieses Framework fokussieren und vor allem die Erforschung von Multi-Agenten-Robotik vorantreiben. Und zum Zweiten wird der Durchbruch im Massenmarkt durch den bereits erwähnten ROS Appstore erfolgen, der eine extrem komplexe Software sehr leicht bedienbar machen wird. Denn mal ehrlich, einen Endanwender zu nötigen, ROS unter Ubuntu zu installieren und auf der Kommandozeilen mit „rosrun“ irgendwelche Prolog-Shells zu starten ist keine gute Idee. Wenn man es aber schafft, diese komplexe Technologie hinter einer hübschen App zu verstecken die nicht schwerer zu bedienen ist als eine Runde „Angry Birds“ auf dem iphone, dann dürfte sich die passende Robotik-Hardware wie warme Semmeln verkaufen. Wann es soweit sein wird, ist schwer zu sagen. Frühestens aber ab dem Jahr 2020.

Die gesellschaftliche Relevanz von ROS dürfte ungefähr mit dem des Internets vergleichbar sein. D.h. es wird alles verändern. Im Grunde ist ROS das Bindeglied zwischen Robotik-Hardware (die es schon länger gibt) und einer konkreten Anwendung in der Praxis. Denn, wie man Roboter baut weiß die Wirtschaft schon seit mehreren Jahrzehnten. Es wurden schon in den 1980’er preiswerte Spielzeugroboter verkauft, mit denen man nützliche Dinge anstellen konnte. Auch der techniche Aufwand für eine Segway-Plattform mit einem Roboter-Arm ontop ist nicht besonders hoch. Im Grunde handelt es sich dabei um eine Luxus-Version eines Rollstuhls. Zwar nichts, was man für unter 1000 US$ bauen kann, aber mehr als 10000 US$ kostet sowas in der Herstellung nicht (inkl. Akku). Was jedoch einem Durchbruch der Robotik für Jahrzehnte im Wege stand war die Software. Denn ohne diese ist ein Roboter nicht zu gebrauchen. Man kann ihn zwar immer als Notbehelf über einen Joystick fernsteuern, aber Sinn macht sowas in der Regel nicht. Wenn man hingegen einen Roboter wie einen Haushaltsgegenstand verwenden kann, also einfach nur den Befehl zu geben braucht: „12:00 Uhr, Mittag kochen“ dann steigt der Nutzwert für den Endverbraucher dramatisch. Und für diese Software sorgt ROS, es ist dasjenige Framework mit dem die Robotik-Revolution durchgeführt wird.

Warum ROS erst ab 2008 entwickelt wurde und nicht schon 20 Jahre vorher kann man heute nur noch mutmaßen. Vermutlich hat es etwas mit der Verfügbarkeit des Internets zu tun, als enabler-Technologie damit Wissen über Robotik und Künstliche Intelligenz weltweit abrufbar ist. Erst dadurch war es möglich, dass nicht nur einzelne Forscher, sondern eine ganze Community genug Wissen ansammeln konnte, damit daraus etwas neues entsteht. Es gab zwar schon vorher durchaus ernstzunehmende Robotik-Forschung wie z.b. von Hans Morovavec in den 1980’er allerdings war diese Forschung immer lokal begrenzt. Die dort entwickelten Ideen konnten sich nicht ausbreiten und waren auf den jeweiligen Forscher beschränkt. Als jedoch das Internet mit seiner Möglichkeit wissenschaftliche Publikationen und sogar Tagungsmitschnitte als HD-Video weltweit zu verteilen entstand (ab dem Jahr 2005 ungefähr waren Breitband-Internet-Verbindungen wirklich preiswert) war auch die Tür offen für ein Robotik-Framework was den Namen wirklich verdient hat. Und anders als bei vielen anderen Projekten aus dem Bereich Linux/OpenSource bietet ROS das Potential auch in Zukunft noch Fortschritte zu erzielen. Denn mal ehrlich, die Entwicklung des Linux-Kernels ist zwar eine tolle Sache, das Projekt als solches ist jedoch in eine Sättigungsphase eingetreten, was bedeutet, dass eine Linux-Distribution in 10 Jahren vermutlich nicht viel anders aussehen wird als eine von heute. Bei ROS hingegen ist zu erwarten, dass sich in Zukunft da noch sehr vieles verändern wird. Es ist zu erwarten, dass bei vielen Robotik-Challanges dieses System zum Einsatz kommen wird und es insgesamt wesentlich präsenter wird als noch derzeit. Im Grunde ist ROS die Antwort auf die Softwarekrise innerhalb die Robotik. Also jenes Phänomen, dass die Programme immer umfangreicher werden, die Einstiegshürde im höher und die zu lösenden Probleme immer schwieriger.

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