Original-URL des Artikels: https://www.golem.de/news/robot-operating-system-was-bratwurst-bot-und-autonome-autos-gemeinsam-haben-1612-124079.html    Veröffentlicht: 02.12.2016 11:59    Kurz-URL: https://glm.io/124079

Robot Operating System

Was Bratwurst-Bot und autonome Autos gemeinsam haben

Immer mehr Forscher setzen auf ROS. Denn damit ersparen sie es sich, immer wieder Treiber und Tools für ihre Roboter zu erfinden. Auch das Interesse der Industrie an dem Open-Source-Softwareframework wächst. Aber alles kann es noch nicht.

So faszinierend Roboter auf viele Menschen wirken, so komplex ist auch die Software, die im Verborgenen dafür sorgt, dass ein mobiles System selbstständig den Weg findet, oder ein Serviceroboter erfolgreich eine Tasse greift. Roboter bestehen aber nicht nur aus Software, sondern auch aus ausgetüftelter Mechanik und Hochleistungselektronik. Es überrascht also nicht, dass es sehr unterschiedliche Sichten und Herangehensweisen bei der Entwicklung von Robotik-Lösungen gibt. Das Open-Source-Softwareframework ROS (Robot Operating System) hat etwas Bemerkenswertes geschaffen: einen Quasi-Standard für die Kommunikation, Datentypen und viele Software-Tools.

Weltweit arbeiten Forscher damit inzwischen gemeinsam an Themen, statt an jeder Universität oder Forschungseinrichtung einzeln das Rad neu erfinden zu müssen. Nicht nur, dass Software von anderen genutzt werden kann, die modulare Systemarchitektur vereinfacht und verbessert auch die Möglichkeiten, den eigenen Code für andere Roboter oder Anwendungen wiederzuverwenden.


ROS hat wesentlich dazu beigetragen, die Robotik-Forschung voranzubringen, da sich viel mehr Forscher auf neue Algorithmen statt Treiber und Tools konzentrieren können. Mehr als 2.600 wissenschaftliche Artikel beziehen sich mittlerweile auf ROS, über 100 Roboter sind damit kompatibel. Auch die Industrie erkennt, dass sie mit ROS Zeit und Geld sparen kann, und engagiert sich dafür, die Software auch für professionelle Anwendungen einsetzbar zu machen. Allerdings hat ROS Schwächen - und wer es einsetzt, muss viel Vorwissen mitbringen.

ROS bietet schnelle Lösungen für Standardprobleme

Einer der größten Vorteile von ROS ist die einfache, direkte Verfügbarkeit von robuster Software für viele Standardprobleme der Robotik. So bietet ROS sehr robuste Navigationspakete, die das komplexe Slam-Problem (Simultaneous Localization and Mapping) gut und zuverlässig lösen. Die Entwicklung eigener Slam-Algorithmen ist aufwendig und erfordert hohe Fachkenntnisse. Durch ROS kann quasi jeder Roboter navigieren lassen, auch ohne Aufwand und Expertise in dem speziellen Fachbereich.

Neben fertiger Funktionalität bietet ROS viele Werkzeuge für die Entwicklung wie etwa ein einfach zu benutzendes System zur Koordinaten-Transformation und Darstellung. So können sich Forscher auf ihre Themen fokussieren und auf Lösungen für andere Teilprobleme direkt zurückgreifen.

Ein Leitsatz von ROS, "Stop Re-Inventing the Wheel", wird anschaulich in dieser Darstellung gezeigt. ROS trägt aktiv dazu bei, dass nicht immer wieder die gleiche Software an verschiedenen Hochschuleinrichtungen neu entwickelt wird. Stattdessen arbeiten die Einrichtungen und Entwickler an der Weiterentwicklung und Pflege der Software. Das steigert die Robustheit und Qualität dieser Lösung kontinuierlich.

Für diese internationale Zusammenarbeit war es auch besonders wichtig, dass ROS einige typische Standard-Datentypen definiert, die dann von allen Entwicklern gemeinsam genutzt werden.

Was macht ROS besonders?

In ROS werden Datentypen für Koordinatensysteme im Raum, Videobilder und vieles mehr definiert, die quasi von allen Entwicklern genutzt werden. Es schränkt nicht ein und erlaubt es auch, eigene Datentypen zu definieren, zwingt den Entwickler aber, eine Beschreibung des Datentyps zu hinterlegen, die den Code für andere besser nachvollziehbar macht.

ROS ist ein sehr modulares Softwareframework, in dem Funktionen, Hardware-Interfaces und anderes in verschiedene Module aufgetrennt werden. Diese ROS-Module können sogar auf verschiedenen PCs oder Robotern ausgeführt werden und kommunizieren über ein Netzwerk miteinander. Die ROS-interne Kommunikation ist sehr robust und effizient - eine der großen Stärken von ROS.

Entwicklung in Monaten statt Jahren

Durch die einheitlichen Datentypen und die Netzwerk-basierte Kommunikation können auch in internationalen Forschungsprojekten schnell und einfach verschiedene, komplexe Softwareteile zusammengesteckt werden.


Ein konkretes Beispiel für die deutlich vereinfachte Integration ist der Laufroboter Lauron V, der seit vielen Jahren am FZI Forschungszentrum Informatik an der Universität Karlsruhe entwickelt wird. Während dieser für seine komplexe, verhaltensbasierte Steuerung des Laufens weiterhin ein eigenes C++-Framework einsetzt, wurden die kognitiven Fähigkeiten von vornherein in ROS realisiert.

Durch verfügbare Pakete wie etwa eine visuelle Odometrie zur Geschwindigkeitsbestimmung, Kalman-Filter zur Fusion verschiedener Sensordaten sowie eine Reihe von Werkzeugen zur Verarbeitung von Laserscanner-Daten und Punktwolken konnte ein komplexes System zur robusten Lokalisierung des Roboters auf einer Mars-ähnlichen Oberfläche in wenigen Monaten entwickelt werden. Die Neuentwicklung eines solch komplexen Systems würde alternativ mehrere Entwicklerjahre in Anspruch nehmen.

Auch der Bratwurst-Bot des FZI wurde mit ROS umgesetzt. Er grillt selbstständig auf Bestellung Würstchen und legt sie auf den Teller. Auch Mini-PCs unterstützen ROS

Mittlerweile gibt es eine ganze Reihe von Systemen und Robotern kommerziell am Markt, die direkt ROS-Schnittstellen anbieten und einfach zusammen mit eigener oder verfügbarer ROS-Software genutzt werden können, darunter der humanoide Roboter REEM-C von PAL, der Kraft-Momenten-Sensor FT 150 von Robotiq und das Unmanned Ground Vehicle Husky von Clearpath.

Auch Embedded-Mini-PCs wie der Rasberry Pi unterstützen ROS durch eigene Software-Images mit einem vorinstallierten ROS und werden intensiv in der Robotik eingesetzt.

Diese Plattformunabhängigkeit ist eine weitere Stärke von ROS. Die Entwickler sind zudem nicht auf eine Programmiersprache festgelegt, sondern können aus einer ganzen Reihe von Sprachen wählen. Am weitesten verbreitet sind aktuell C++, Python und Java. Standardtools wie RVIZ oder rqt bieten zudem einen großen Mehrwert, wenn es um die Darstellung von Ergebnissen oder dem Debugging geht.

Mit den aktuell über 2.600 verfügbaren ROS-Paketen und den knapp 370 aktiven (1.031 insgesamt) Entwicklern bietet ROS nahezu für jede robotische Anwendung zumindest Teil-Lösungen. Die sehr aktive Community unterstützt ROS-Entwickler über ein ROS-Wiki und ROS Answers durch aktiven Support bei zahlreichen Problemen. Erscheint neue für die Robotik relevante Hardware auf dem Markt, wie beispielsweise eine Kinect-2-Kamera, gibt es bereits wenige Tage später entsprechende ROS-Treiber, die von jedem genutzt werden können.

Woher kommt ROS eigentlich?

ROS kommt aus den USA, zumindest die Anfänge. Scott Hassan, der früher bei Google gearbeitet und gute Gewinne mit dem Verkauf verschiedener IT-Firmen gemacht hatte, war überzeugt davon, dass Roboter die Zukunft sind. Ende 2006 gründete er die Firma Willow Garage in Kalifornien. Er investierte viel Geld in diese Firma und stellte direkt zu Beginn eine ganze Reihe von Robotik-Software-Experten von der Stanford-Universität ein.

Der Anfang war schwierig. Zahlreiche Konzepte wurden wieder verworfen oder verändert, bis schließlich 2009 die erste Open-Source-Betaversion von ROS veröffentlicht wurde (ROS 0.4 - mango tango). Bis hierhin hatte Willow Garage seine Belegschaft bereits massiv ausgebaut und trieb die Entwicklung von ROS zügig voran. Das hochgesteckte Ziel war es, die Grenzen der Robotik zu erweitern und natürlich auch Marktanteile zu gewinnen.

Willow Garage schließt

Die Technik stand klar im Vordergrund, kommerzieller Erfolg sollte später folgen - so der Plan. 2010 wurde die erste Vollversion von ROS (ROS 1.0 - Box Turtle) veröffentlicht.

Anschließend steigerte Willow Garage massiv die Öffentlichkeitsarbeit und war auf allen großen, internationalen Robotik-Fachtagungen sehr präsent. Die ROS-Community wuchs in dieser Zeit ebenso wie die Anzahl an ROS-Paketen rasant an (ROS-Paket: Softwareprojekte mit verschiedenen Funktionen wie z. B. Navigation). In den Jahren 2011 und 2012 überschlugen sich die Ereignisse, ROS wurde ein riesiges Hype-Thema in der Robotik-Community, Willow Garage brachte weitere Roboter auf den Markt, die nativ ROS unterstützten (Turtle Bot).

In dieser Hochphase gab es halbjährlich neue ROS-Versionen mit immer mehr Funktionen, aber auch die Robustheit und Codequalität nahmen ständig zu. Es gab gerade in dieser Zeit aber auch sehr kritische Stimmen, die den Antrieb von Willow Garage hinterfragten, da noch immer keine kommerziellen Absichten erkennbar waren. 2013 gab es einen großen Umbruch. Scott Hassan sah keine wirtschaftlichen Chancen für Serviceroboter, zog sein Kapital aus Willow Garage ab und schloss die Firma noch im gleichen Jahr.

Ein kleines Team übernimmt - und die Community

Die Open Source Robotics Foundation (OSRF) übernahm mit einem sehr kleinen Team und ohne große Investoren offiziell die weitere Verantwortung für die ROS-Weiterentwicklung und den Support. Dank der bis dahin erreichten Größe der Entwickler-Community, auch abseits von Willow Garage, konnte ROS diesen Rückschlag überleben. Zwar verlangsamte sich die Entwicklung, aber weltweit arbeiten weiterhin viele Entwickler an und mit ROS und sichern dessen Fortbestand.

Für wen ist ROS?

Als Open-Source-Software kann grundsätzlich jeder ROS kostenfrei nutzen. Da es sich um ein modulares Framework mit Funktionen für die Sensorverarbeitung, Auswertung, Planung und Steuerung handelt, ist ROS nicht nur für die Robotik interessant, sondern für viele technische Systeme. In der Fachwelt für das autonome Fahren werden auch gerne zumindest Teile von ROS eingesetzt. In der Robotik nutzen mittlerweile nahezu alle Forschungsgruppen zumindest teilweise ROS. Viele Forschungsgruppen besitzen gar kein eignes Softwareframework mehr, sondern konzentrieren sich voll auf ROS. Oder sie kombinieren ROS mit einem eigenen Framework, wie beispielsweise auch das FZI.

Es gibt aber auch einige große Firmen, die intensiv ROS in ihren Forschungsabteilungen einsetzen. Häufig geschieht dies auch zusammen mit einer Forschungseinrichtung. Neben großen Firmen wie Bosch, BMW oder Schunk nutzen auch viele kleinere Firmen und Startups ROS. In der ROS Industrial Initiative haben sich Firmen und Forschungseinrichtungen zusammengeschlossen, um ROS noch robuster und industrietauglich zu machen.

Das kann ROS (noch) nicht

ROS kann an vielen Stellen die Entwicklung neuer Anwendungen oder auch Algorithmen einfacher machen. Es bedarf aber einiger Vorqualifikationen. Bei ROS handelt es sich um ein Softwareframework in C++, Python und Java. Somit sind Programmierkenntnisse in diesen Sprachen erforderlich.

Zudem gibt es bisher nur sehr rudimentären Support für Windows, so dass eine Linux-Entwicklungsumgebung verwendet werden sollte. Neben diesen allgemeinen Programmierkenntnissen sind auch Erfahrungen mit den zahlreichen ROS-Paketen wichtig. Ein Nachteil von Open Source betrifft auch ROS: Nicht alle Pakete weisen die gleiche Qualität auf oder werden noch von ihren Entwicklern gepflegt. So kann die Auswahl eines veralteten oder nicht performanten ROS-Pakets schnell sehr frustrierend werden und gerade Anfänger abschrecken.

Echtzeit - geht nicht

Die Kommunikationsstruktur von ROS unterstützt bisher keine Echtzeitausführung. Dies erschwert den Einsatz in sicherheitskritischen Bereichen. Auch handelt es sich bei ROS um ein zentrales System mit einem Master. In vielen Anwendungen stellt dies keine Einschränkung dar, aber bei sehr dezentralen Ansätzen kann es einschränkend sein.

Insgesamt ist der Software-Standard überdurchschnittlich hoch, da es einen Peer-Review-Prozess vor der Aufnahme neuer Codeteile gibt. Zertifiziert ist ROS bisher jedoch nicht. Wer die Vorteile von ROS nutzen will, muss also immer noch einiges an Expertise mitbringen. Neue Roboteranwendungen fallen auch mit ROS nicht einfach vom Himmel.

Wie geht es mit ROS weiter?

ROS hat die Robotik-Forschung vereint, die Zusammenarbeit und Wiederverwendbarkeit von Software deutlich verbessert und kämpft sich aktuell langsam in kommerzielle, industrielle Anwendungen vor.

Auch wenn Willow Garage sich vor einer Weile zurückgezogen hat, geht die ROS-Entwicklung kontinuierlich weiter. Dabei geht die Community verschiedene Schwächen von ROS Stück für Stück an. Mittlerweile kann man etwa auch in ROS mehrere Master gleichzeitig betreiben. Das für die Industrie wichtige Thema Echtzeit kann über einige Umwege erreicht werden - z. B. ROS Nodlets und viel CPU-Power. Zudem arbeitet die Community an ROS 2.0 mit einer komplett neuen Kommunikationsebene, die dann in Zukunft auch Echtzeit unterstützen kann. Das FZI engagiert sich wie zahlreiche ROS-Entwickler für die Professionalisierung von ROS.

Das ROS Industrial Konsortium (ROS-I) engagiert sich zusammen mit namenhaften, internationalen Firmen dafür, ROS fit für die Industrie zu machen. Mit Erfolg - das Interesse von Firmen steigt. Mehr und mehr Anbieter von Robotik-Hardware liefern ihre Systeme direkt mit ROS-Treibern oder -Schnittstellen aus.

Arne Rönnau, Leiter des FZI Living Lab Service Robotics, setzt in zahlreichen Projekten auf ROS als Basis für die Entwicklung sowie schnelle Inbetriebnahme neuer Roboteranwendungen. Das FZI nutzt ROS für die eigenen Robotersysteme wie Hollie, Lauron V oder Bratwurst-Bot, unterstützt aber auch Firmen, das Open-Source-Framework bei sich einzusetzen.  (arr)


Verwandte Artikel:
Niryo One: Open-Source-Industrieroboter für daheim   
(17.03.2017, https://glm.io/126793 )
Kinect: MIT stellt Fingersteuerung im "Minority Report"-Stil vor   
(13.12.2010, https://glm.io/80072 )
Bilderkennung: Roboter löst Rubik's Cube in 380 Millisekunden   
(08.03.2018, https://glm.io/133228 )
Wintersport: Roboter Curly spielt Curling   
(08.03.2018, https://glm.io/133219 )
Flippy: US-Fast-Food-Kette setzt Roboter zum Burgerwenden ein   
(06.03.2018, https://glm.io/133161 )

© 1997–2019 Golem.de, https://www.golem.de/