Baukasten für Roboter
Mit Open-Source-Software machte Morgan Quigley Roboter-Programmierung so einfach wie das Schreiben einer App.
- Ted Greenwald
Mit Open-Source-Software machte Morgan Quigley Roboter-Programmierung so einfach wie das Schreiben einer App.
Vor rund drei Jahrzehnten begann der Boom bei Personalcomputern – befeuert von der Tatsache, dass jedes Unternehmen eigene Komponenten für die offene Plattform entwickeln konnte. Nun soll ein ähnliches Prinzip auch das Feld der Robotik in Schwung bringen: das Robot Operating System (abgekürzt ROS). Seine Grundlagen legte 2006 Morgan Quigley, damals Student für Maschinenlernen an der Stanford University. Von 2007 an feilte er in Zusammenarbeit mit der berühmten Roboterschmiede Willow Garage im Silicon Valley an der Umsetzung. Nach der Veröffentlichung von Version 1.0 im Jahr 2010 wurde ROS schnell zum wichtigsten Software-Framework für Robotik. Seitdem ist es ein De-facto-Standard und erleichtert Entwicklern die praktische Arbeit enorm.
Für die Weiterentwicklung von ROS hat Quigley im vergangenen Sommer zusammen mit Gleichgesinnten die Open Source Robotics Foundation im kalifornischen Mountain View gegründet. Wer ihn dort besucht, erlebt eine Reise in die Zukunft der Robotik – mit billiger Hardware sowie schnellen und einfachen Möglichkeiten, aus vorgefertigten Teilen neue Maschinen zu kreieren. Quigleys Arbeitsplatz ist überhäuft mit Dutzenden mechanischer Finger, aus denen eine Roboterhand werden soll.
Aber anders als bei konventioneller Robotertechnologie wird Quigleys vierfingrige Hand nicht von einem zentralen Prozessor kontrolliert. Stattdessen ist die Rechenarbeit auf 14 billige Stromspar-Prozessoren in Fingern und Handfläche verteilt, die jedes Gelenk ansteuern. Dies vereinfacht die interne Kommunikation und Koordination für Aufgaben wie das Greifen eines Stiftes erheblich. Sowohl die Software als auch die Bauteile sind Open Source. Jeder Roboterbauer kann also Quigleys Modell einsetzen oder verbessern.
Letztlich, so hofft der Programmierer, werde das zu agileren und leistungsfähigeren Robotern führen, die sich für vielfältige Aufgaben eignen und trotzdem nicht Hunderte oder Tausende Dollar kosten. Zudem müssten Ingenieure nicht immer wieder ganz von vorn anfangen, um Funktionen für einen Roboter zu realisieren. Bereits heute arbeiten Entwickler mit ROS an Robotern, die ebenso gut Wäsche zusammenlegen wie wiederholte Handgriffe in einer modernen Produktion übernehmen können. "Es wird Anwendungen möglich machen, von denen wir bislang nicht einmal träumen konnten", sagt Quigley.
Im Gegensatz zu vielen anderen Kindern der 1980er- und 1990er-Jahre war Quigley nicht fasziniert von C-3PO in "Krieg der Sterne" oder von "Star Trek: Die nächste Generation". Stattdessen zog ihn der deutlich weltlichere, aber eben reale Computer Apple II in seinen Bann. Schon im Grundschul-Unterricht ließ er mittels der Programmiersprache Logo eine Zeichentrick-Schildkröte über dessen Bildschirm laufen – das Tier ist heute das ROS-Maskottchen. Erst 1998, als er sich an der Brigham Young University im US-Bundesstaat Utah einschrieb, hatte Quigley seine erste Begegnung mit Robotern. Er war sofort begeistert: "Bei Robotern treffen Elektronik, Software und die Realität aufeinander", sagt er. "In ihnen bekommt Software Kontakt mit der physischen Welt."
Später ging Quigley an die Stanford University. Dort schloss er sich dem Labor von Andrew Ng an, der mit seinen Studenten am Stanford Artificial Intelligence Robot (STAIR) arbeitete. Als einer der Lehrassistenten von Ng erkannte Quigley, dass die vielen, teils unabhängig voneinander arbeitenden Studenten eine Art Gerüst für ihre Programmierarbeit brauchten. Mit einem solchen "Framework" wollte er erreichen, ihre unterschiedlichen Beiträge in den Roboter integrieren zu können, ohne dass er versagte, wenn eines der Programme abstürzt. Seine Lösung war ROS: ein verteiltes Peer-to-peer-System.
ROS bietet Softwaremodule für häufige Roboterfunktionen wie Bewegungsplanung, Objekterkennung oder physische Eingriffe. Wenn also ein Roboter seine Umgebung abbilden soll, kann sein Entwickler einfach das passende ROS-Softwaremodul verwenden. Jede beliebige Zahl von unabhängigen Modulen kann gleichzeitig ausgeführt werden. Für Tests lassen sie sich zusammenschalten, für die Fehlersuche voneinander trennen und erneut verbinden, ohne das vernetzte Gesamtsystem zu destabilisieren.
Auf diese Weise lässt sich ein Roboter von beliebig vielen Computern steuern. Ein Laptop könnte die Navigation berechnen, ein Server Bilderkennung übernehmen und ein Android-Telefon nur die abstrakten Anweisungen schicken. All das fließt in Echtzeit zusammen, während sich der Roboter bewegt. In Zukunft will Quigley mit dem System auch ganze Roboterschwärme steuern – etwa in Lagerhäusern oder Fabriken.
Die wahre Meisterleistung in Quigleys Konzept aber ist nicht technisch, sondern sozial. Wie jedes Open-Source-Produkt darf auch ROS nach Belieben verändert werden. Dadurch zieht es eine Community von Nutzern an, die ständig seine Funktionen verbessern und erweitern. Die Mitglieder der Gemeinschaft, die ein fertiges Software-Release produziert haben, können die Verteilung selbst übernehmen, müssen es also nicht auf einem zentralen Server bereitstellen. "Das hat große Bedeutung dafür, dass die Leute die Anerkennung bekommen, die sie verdienen, und dass sie die Kontrolle über ihre Beiträge behalten", erklärt Quigley. "Ihr Code geht nicht einfach in diesem Biest namens ROS verloren." (bsc)