Grundlagen des Robot Operating System (ROS)

Eingebettete Geräte
2025-10-22
13 Minuten
Grundlagen des Robot Operating System (ROS)

Robot Operating System (ROS) ist ein Open-Source-Framework, das sich zum De-facto-Standard für die Entwicklung von Robotiksoftware entwickelt hat. Moderne Roboter sind extrem komplex, mit vielen Komponenten wie Sensoren, Motoren und KI-Algorithmen – all dies von Grund auf neu zu entwickeln ist für Entwickler sehr schwierig.

ROS löst dieses Problem, indem es eine standardisierte, modulare Plattform zur Entwicklung fortschrittlicher Robotersysteme bereitstellt. Trotz des Namens ist ROS kein echtes Betriebssystem wie Windows oder Linux; es handelt sich vielmehr um eine Middleware-Schicht oder ein SDK (Software Development Kit), das auf einem traditionellen Betriebssystem (meist Ubuntu Linux) läuft.

In diesem Artikel behandeln wir:

  • eine kurze Geschichte von ROS
  • die Grundkonzepte und Hauptkomponenten von ROS
  • die Unterschiede zwischen ROS 1 und ROS 2
  • die Vorteile der Verwendung von ROS in der Robotikentwicklung
  • praktische Anwendungsbeispiele von ROS

Benötigen Sie Hilfe mit eingebetteten Systemen?
Unsere Embedded-Development-Dienstleistungen helfen Ihnen dabei, Sensoren, Echtzeitsoftware und Hardwareplattformen in robuste Robotiklösungen zu integrieren. Lassen Sie uns darüber sprechen, wie wir Ihr Projekt beschleunigen können.

 

Eine kurze Geschichte von ROS

ROS entstand Mitte der 2000er Jahre als Forschungsprojekt an der Stanford University mit dem Ziel, Robotiksoftware wiederverwendbarer und kollaborativer zu gestalten. Bereits in der Anfangszeit wollten die Doktoranden Eric Berger und Keenan Wyrobek ein gemeinsames „Basissystem“ schaffen, damit Forscher nicht bei jedem neuen Roboter das Rad neu erfinden mussten. Sie entwickelten einen Prototyp-Roboter (den PR1) und eine Software, die auf bewährten Praktiken früherer Frameworks wie Morgan Quigleys Stanford-System „Switchyard“ basierte. Im Jahr 2007 taten sie sich mit Scott Hassans Willow Garage zusammen, einem Robotik-Inkubator, der ihre Vision eines „Linux für Robotik“ – einer offenen Plattform für alle – teilte. Das erste ROS-Code-Repository wurde im November 2007 bei Willow Garage erstellt.

 
Geschichte von ROS

Willow Garage entwickelte anschließend den PR2, einen mobilen Roboter mit zwei Armen, als Vorzeige-Hardware für ROS. Im Jahr 2010 wurde die erste offizielle ROS-Version (ROS 1.0) veröffentlicht und Willow Garage verteilte PR2-Roboter an mehrere Universitäten, um die Community zu erweitern. Das funktionierte: Akademische und Open-Source-Beiträge strömten ein, und ROS entwickelte sich zu einem umfangreichen Ökosystem. 2012 half Willow Garage bei der Gründung der Open Source Robotics Foundation (OSRF), um die Zukunft von ROS zu verwalten. Ab 2013 übernahm die OSRF (später in Open Robotics umbenannt) die Weiterentwicklung von ROS, nachdem Willow Garage geschlossen wurde. Unter OSRF/Open Robotics entwickelte sich ROS kontinuierlich weiter – mit jährlichen Releases und wachsender Community-Unterstützung.

Ein großer Meilenstein war die Entwicklung von Versionen wie ROS 2 um das Jahr 2014. Die Grenzen von „ROS 1“ (dem ursprünglichen ROS) machten eine Neuentwicklung erforderlich, um den Anforderungen in Forschung und Industrie gerecht zu werden. ROS 2 wurde konzipiert, um Echtzeit-Steuerungssysteme, Multi-Roboter-Systeme, eingebettete Plattformen und moderne Netzwerktechnologien zu unterstützen. Die erste ROS-2-Version (Codename Ardent Apalone) wurde im Dezember 2017 veröffentlicht. Seitdem liegt der Fokus zunehmend auf ROS 2, wobei die letzte Langzeitversion von ROS 1 (Noetic) im Jahr 2025 das End-of-Life erreicht. Heute ist ROS ein sich ständig weiterentwickelndes Open-Source-Projekt mit einer weltweiten Community, das fortschrittliche Roboteranwendungen ermöglicht.

 

Was ist ROS und seine Hauptkomponenten

Im Wesentlichen ist ROS ein Middleware-Framework, das den verschiedenen Teilen der Roboter-Software hilft, zuverlässig miteinander zu kommunizieren. Es ermöglicht Entwicklern, robuste Systeme schnell zu erstellen, indem es die Software-Infrastruktur vereinfacht. Das ROS-System organisiert Software in einem Graphen aus Prozessen, sogenannten Knoten (Nodes), von denen jeder eine bestimmte Aufgabe übernimmt (zum Beispiel liest ein Knoten die Kamera aus, ein anderer plant eine Route) und so effiziente Kommunikationsmuster ermöglicht.

 
Hauptkomponenten von ROS

Diese Knoten kommunizieren miteinander, indem sie Nachrichten (über .msg-Dateien) über sogenannte Topics oder über Services austauschen. Das ermöglicht einen reibungslosen Betrieb über mehrere Knoten hinweg. Ein Topic ist wie ein benannter Bus zum Streamen von Nachrichten (nach dem Publish/Subscribe-Modell), während ein Service eine Anfrage-/Antwortschnittstelle für einmalige Aufgaben ist, sodass Knoten effizient Nachrichten austauschen können. In ROS 1 verfolgt ein zentraler ROS-Master-Prozess alle Knoten und erleichtert die Verbindungen, indem er Peer-to-Peer-Kommunikation zwischen Produzenten- und Konsumenten-Knoten einrichtet. (In ROS 2 wird dies durch einen dezentralen Erkennungsmechanismus ersetzt, wie später beschrieben.) Der ROS-Parameter-Server in ROS 1 ist ein gemeinsam genutztes Wörterbuch für Konfigurationsparameter, die von Knoten gelesen oder geschrieben werden können – etwa Steuerbefehle für Roboterbewegungen, die wichtige Bestandteile der Roboterkonfiguration darstellen.

Ein Beispiel: Stellen Sie sich einen mobilen Roboter vor. Ein Knoten veröffentlicht die Laserscanner-Daten auf dem Topic „/scan“, während ein Kamera-Knoten Bilddaten auf einem anderen Topic veröffentlicht, um visuelle Aufgaben zu ermöglichen. Ein Bewegungssteuerungs-Knoten könnte einen Service „/move_base“ anbieten, der beim Aufruf mit einem Zielort den Roboter dorthin bewegt, während ein Bildverarbeitungs-Knoten die Bilddaten analysiert. Diese modulare Architektur erlaubt es Entwicklern, Komponenten zu kombinieren und Code über Projekte hinweg wiederzuverwenden, sodass die Kommunikation zwischen verschiedenen Robotersystemen möglich wird. ROS übernimmt dabei im Hintergrund die Nachrichtenübertragung und Datenverarbeitung, sodass Sie sich auf die Datenanalyse und die Roboterlogik konzentrieren können.

Über den Nachrichtenaustausch hinaus vereinfachen ROS-Tools und Bibliotheken viele gängige Aufgaben in der Robotik. Zum Beispiel ist RViz ein 3D-Visualisierungstool für Robotersensoren und -zustände, das beim Debuggen und Überwachen hilft. Rosbag ist ein Tool zum Aufzeichnen und Wiedergeben von Sensordaten, was bei der Offline-Entwicklung und dem Testen von Algorithmen hilfreich ist. Es gibt auch Build-Systeme (z. B. Catkin in ROS 1) und Dienstprogramme (wie roslaunch zum gleichzeitigen Starten vieler Knoten). ROS wird über sogenannte „Packages“ verteilt – Bündel von Knoten, Bibliotheken und Konfigurationen für bestimmte Funktionen, was den Entwicklungsprozess erleichtert. Es gibt tausende ROS-Packages für alles – von Roboter-Treibern bis hin zu SLAM (Simultane Lokalisierung und Kartierung) – sodass man oft eine bereits vorhandene Lösung für gängige Probleme in der Robotik findet.

 

ROS 1 vs. ROS 2 – Entwicklung und Unterschiede

Mit zunehmender Beliebtheit von ROS wurde deutlich, dass eine neue Architektur erforderlich war, um den industriellen und modernen Anforderungen an Roboter gerecht zu werden. ROS 1 (das ursprüngliche ROS) war ein großartiger Anfang, hatte jedoch einige Einschränkungen: Es basierte auf einem zentralen Master-Knoten (was bei Ausfall problematisch für Multi-Maschinen-Setups war), war standardmäßig nicht echtzeitfähig und war an Linux-spezifische Bibliotheken gebunden. ROS 2 wurde entwickelt, um diese Probleme zu lösen.

Zur Veranschaulichung der Entwicklung zeigt die folgende Tabelle die wichtigsten Unterschiede zwischen ROS 1 und ROS 2:

Aspekt ROS 1 ROS 2
Kommunikation & Architektur Zentralisiertes roscore/master, Peer-to-Peer-Verbindungen; eingeschränkte Protokolle (TCPROS/UDPROS), keine QoS-Steuerung Basiert auf DDS (Data Distribution Service), dezentrale Erkennung, QoS-Richtlinien, kein Single Point of Failure
Echtzeitunterstützung Standardmäßig nicht echtzeitsicher; nur teilweise Workarounds möglich Für Echtzeitsysteme konzipiert, unterstützt Embedded-Plattformen und Echtzeitbetriebssysteme
Plattformunterstützung Primär Linux (Ubuntu) Plattformübergreifend: Linux, Windows, macOS, Echtzeitbetriebssysteme
Programmiersprachen & Codebasis Mischung aus C++ und Python; ältere Designentscheidungen bestehen fort Hauptsächlich C++ mit moderner Architektur, Python für High-Level-Skripting; bessere Performance & Portabilität
Build-System Catkin-Build-System Ament-Build-System mit verbessertem Paketmanagement
Knotenverwaltung Keine integrierte Lifecycle-Verwaltung Lifecycle-Nodes für deterministischen Start/Stopp
Sicherheit Minimale integrierte Sicherheit Erweiterte Sicherheitsfunktionen (Authentifizierung, Verschlüsselung, Zugriffskontrolle)
Lebenszyklus / End-of-Life Letzte Version: ROS 1 Noetic (EOL im Mai 2025) Aktive Weiterentwicklung, Zukunft des ROS-Ökosystems

ROS 1 war die Grundlage, die Standardisierung und Zusammenarbeit in die Robotik brachte. ROS 2 baut auf diesem Erfolg auf, bietet eine moderne Architektur sowie Echtzeit- und plattformübergreifende Fähigkeiten, wodurch es nicht nur für Forschung, sondern auch für anspruchsvolle industrielle und kommerzielle Anwendungen geeignet ist.

 

Warum ROS verwenden: Vorteile und Problemlösungsfunktionen

ROS hat sich großer Beliebtheit erfreut, weil es die Entwicklung von Robotiksystemen vereinfacht – und das auf mehreren Ebenen. Hier sind einige der wichtigsten Vorteile von ROS:

 

  • Das Rad nicht neu erfinden: ROS verfolgt eine Philosophie der Wiederverwendung von Code, einschließlich Bibliotheken, die die Steuerung von Low-Level-Geräten vereinfachen. Es bietet eine riesige Sammlung von vorgefertigten, von der Community getesteten Packages für gängige Robotikfunktionen. Egal ob SLAM-Algorithmus zur Kartierung, ein Treiber für einen LiDAR-Sensor oder ein Bewegungsplaner für einen Roboterarm – die Wahrscheinlichkeit ist groß, dass jemand bereits ein ROS-Paket dafür entwickelt hat. Das beschleunigt die Entwicklung und verkürzt die Markteinführungszeit für neue Roboter. Entwickler können sich auf die einzigartigen Aspekte ihrer Anwendung konzentrieren, anstatt grundlegende Treiber und Algorithmen neu zu erstellen.
  •  

  • Modulares Design: Da Knoten spezifische Aufgaben übernehmen und über Topics und Services kommunizieren, werden Systeme skalierbarer und robuster. Durch die klare Trennung von Verantwortlichkeiten erlaubt ROS das einfache Austauschen oder Upgraden von Komponenten, was das System flexibler und zuverlässiger macht. Wenn ein Teil abstürzt, fällt nicht gleich das ganze System aus. Die dezentrale Kommunikation von ROS 2 macht es noch robuster für große Roboterflotten oder verteilte Systeme. In der Praxis kann man mit ROS klein anfangen (z. B. ein Laptop und ein Roboter) und problemlos zu Multi-Computer- oder Multi-Roboter-Setups skalieren – ohne das System neu zu entwerfen.
  •  

  • Leistungsstarke Tools und Simulation: ROS bietet Tools in Profiqualität für Simulation, Tests und Visualisierung. Der Gazebo-Simulator (für ROS 2: Ignition Gazebo) erlaubt die Erstellung virtueller Umgebungen und das Testen des Roboter-Codes in einer 3D-Physiksimulation – das spart Zeit und Kosten, bevor der Code auf realer Hardware ausgeführt wird. Ebenso bietet RViz interaktive 3D-Visualisierungen von Sensordaten und dem Zustand des Roboters – ideal für das Debugging von Wahrnehmungs- und Planungsalgorithmen. Mit Tools wie rosbag lassen sich Sensordaten aufzeichnen und abspielen – eine unschätzbare Hilfe bei der Entwicklung und Feinabstimmung von Software im Offline-Modus. Diese Werkzeuge ermöglichen es, mit Sicherheit zu experimentieren und schneller zu iterieren – was zu zuverlässigeren Robotern führt.
     
    Gazebo-Simulator
  • Große Community und Ökosystem: Treten Sie einer globalen Community aus Forschern, Bastlern und Unternehmen bei. Tausende von Open-Source-Repositories mit ROS-Code und ein umfangreiches Q&A-Forum (ROS Answers) voller Wissen. Wenn Sie auf ein Problem stoßen, hatte es vermutlich schon jemand anderes – und vielleicht sogar bereits eine Lösung dafür entwickelt. Über 1.200 Unternehmen nutzen ROS in irgendeiner Form – von Startups bis zu Großkonzernen. Dieses Community-getriebene Ökosystem ist ein Multiplikator: Sie profitieren von den Beiträgen anderer – und können selbst etwas zurückgeben. Die Standardisierung durch ROS (z. B. gemeinsame Nachrichtenformate, Konventionen usw.) sorgt dafür, dass Code und Fachwissen projekt- und unternehmensübergreifend übertragbar sind. Zum Beispiel kann ein Student, der ROS in einem Uniprojekt gelernt hat, dieses Wissen direkt in einem Job in der Industrie anwenden – ROS ist die gemeinsame Sprache zwischen Wissenschaft und Wirtschaft.
  •  

  • Integration und Interoperabilität: Eine der großen Stärken von ROS ist, dass es die Zusammenarbeit unterschiedlicher Hard- und Software-Komponenten ermöglicht. Gerätespezifische Details werden durch generische Schnittstellen abstrahiert. Zum Beispiel: Wenn ein LiDAR einen LaserScan über ein Topic veröffentlicht, kann jeder SLAM-Algorithmus, der diesen Nachrichtentyp erwartet, ihn abonnieren und damit arbeiten – unabhängig vom LiDAR-Modell. Diese Interoperabilität gilt auch für höherwertige Funktionen. ROS definiert Standard-Nachrichtenformate für Roboterpositionen, Navigationsziele, Greifaktionen usw., was ein Plug-and-Play-Ökosystem von Lösungen fördert. Darüber hinaus passt ROS-Industrial ROS für den Einsatz in der Fabrikautomation an und zeigt, dass ROS auch mit industriellen Anlagen integriert werden kann.

Mit ROS lassen sich Entwicklungszeiten verkürzen, die Zuverlässigkeit durch bewährte Bibliotheken erhöhen und die Zusammenarbeit fördern. Es verleiht Robotikprojekten eine klare Struktur und adressiert häufige Schmerzpunkte wie Interprozesskommunikation, Hardwareabstraktion, Datenaufzeichnung und Visualisierung. Indem ROS diese generischen Probleme löst, können sich Entwickler auf die wirklich innovativen Funktionen konzentrieren – anstatt die Infrastruktur neu zu erfinden.

 

Reale Anwendungsbeispiele von ROS

Seit seiner Einführung hat ROS in vielen realen Anwendungen Einzug gehalten. Im Folgenden zeigen wir Beispiele aus den Bereichen Medizintechnik, Automobilindustrie und Industrie 4.0, in denen ROS Innovationen vorantreibt:

 

Medizinische und Healthcare-Robotik

 
Roboterarm im medizinischen Einsatz

ROS wird in der medizinischen Robotikforschung und in der Automatisierung im Gesundheitswesen eingesetzt. In der chirurgischen Robotik zum Beispiel werden ROS-Frameworks verwendet, um Bildgebungssysteme mit robotischen Manipulatoren für bildgestützte Eingriffe zu integrieren. Forscher haben ROS-basierte Systeme für Aufgaben wie präzise Nadeleinführung und Operationsplanung entwickelt und dabei ROS mit medizinischen Bildgebungsplattformen (z. B. 3D Slicer) kombiniert. Mit ROS können Entwickler Kameras, MRT-/CT-Bilder, Roboterarme und Patientendaten in einem einzigen System verbinden – was die Prototypentwicklung fortschrittlicher medizinischer Geräte und die Entwicklung medizinischer Software deutlich beschleunigt.

Über große kommerzielle Plattformen wie den Da-Vinci-Roboter hinaus entwickeln viele akademische und Forschungseinrichtungen kleinere, spezialisierte chirurgische Roboter mit ROS. Diese Systeme kombinieren häufig Roboterarme, Operationsmikroskope und haptische Rückkopplungssysteme zu Testplattformen für die Mikrochirurgie-Forschung. ROS dient dabei als Middleware, um Bildgebung in Echtzeit, Kraftfeedback und Robotersteuerung zu synchronisieren – sodass Forscher neue OP-Techniken experimentell untersuchen können. Sie können komplexe Abläufe wie beidhändige Manipulation oder Gewebesimulation prototypisieren, ohne den Low-Level-Kommunikationsstack neu zu entwickeln – das beschleunigt die Innovation in der chirurgischen Robotik erheblich.

 

Automobilindustrie und autonome Fahrzeuge

 
Autonomes Fahrzeug

Die Automobilindustrie setzt ROS stark ein – insbesondere bei autonomen Fahrzeugen und Fahrerassistenzsystemen. Viele Forschungsprojekte und Prototypen für selbstfahrende Autos verwenden ROS als Software-Rückgrat. Ein prominentes Beispiel ist Autoware, die erste Open-Source-Softwareplattform für autonomes Fahren, die auf ROS basiert. Autoware (heute in ROS 2) bietet Module für alle Kernfunktionen eines autonomen Fahrzeugs – von Sensorverarbeitung (Kamera, LiDAR), Lokalisierung, Pfadplanung bis zur Fahrzeugsteuerung – alles als ROS-Knoten und Bibliotheken. Der Einsatz von ROS in diesem Kontext ermöglichte es einer globalen Community, gemeinsam an autonomer Fahrzeugtechnologie zu arbeiten – was die Entwicklung beschleunigte, etwa auch in Bereichen wie automotive HMI Software, bei der intuitive Interaktionen zwischen Fahrer, Passagieren und Automatisierung entscheidend sind.

Automobilhersteller und Robotik-Startups nutzen ROS für die schnelle Entwicklung experimenteller Fahrzeuge. Die Simulationswerkzeuge von ROS (z. B. Gazebo/IGN für Fahrzeuge) erlauben es, Algorithmen für autonomes Fahren in virtuellen Stadtumgebungen zu testen – sicherer und effizienter als in der Realität. Unternehmen haben ROS-Schnittstellen für Fahrzeugsensoren und CAN-Bus-Controller entwickelt, sodass neue Sensoren oder Drive-by-Wire-Systeme einfach in ein ROS-gesteuertes Fahrzeug integriert werden können. Auch wenn kommerzielle Produkte später auf optimiertem Code oder anderen Frameworks laufen, ist ROS im Bereich F&E (Forschung & Entwicklung) unverzichtbar. Es bietet eine gemeinsame Sprache, um Algorithmen und Datensätze auszutauschen. Viele Projekte für autonome Fahrzeuge – vom kleinen Campus-Lieferroboter bis hin zum vollwertigen Robo-Taxi – haben ihren Ursprung in der ROS-basierten Entwicklung.

 

Industrielle Automatisierung und Industrie 4.0

 
Roboterarm in der Industrie

Industrie 4.0 bezeichnet die nächste Generation intelligenter Fabriken und industrieller Automatisierung – und ROS spielt in diesem Bereich durch die Initiative ROS-Industrial eine zentrale Rolle. ROS-Industrial (ROS-I) ist eine Erweiterung von ROS für industrielle Fertigung und Automatisierung. Sie bringt die flexible, hochgradig programmierbare Struktur von ROS in die Welt der Industrieroboter, wie Roboterarme, Förderbänder und AGVs (Automated Guided Vehicles). Ein großer Vorteil von ROS-I ist die Interoperabilität: Es ermöglicht Robotern und Anlagen unterschiedlicher Hersteller, innerhalb eines einheitlichen Steuerframeworks zusammenzuarbeiten. Traditionell verwenden Industrieroboter proprietäre Software, die schlecht miteinander kommuniziert – ROS-I fungiert hier als Übersetzer und Koordinator, was besonders wichtig ist für industrielle Automatisierungssysteme, in denen mehrere Maschinen zusammenarbeiten müssen.

Beispielsweise enthält ROS-I Pakete für gängige Industrierobotermarken (ABB, FANUC, Yaskawa usw.), sodass ein ROS-Programm Bewegungsbefehle an beliebige dieser Roboter über dieselbe Schnittstelle senden kann. In der Praxis kann eine ROS-gesteuerte Software beispielsweise einen Roboterarm auf der einen Seite einer Fertigungszelle mit einem mobilen Roboter koordinieren, der Teile liefert – überwacht durch Sensoren und vollständig integriert über ROS-Nachrichten. Durch die Überbrückung zwischen proprietären Systemen senkt ROS die Einstiegshürden für moderne Automatisierung in der Produktion – insbesondere für kleinere Unternehmen, die von Open-Source-Lösungen profitieren. Das Ergebnis ist eine stärker vernetzte, effizientere Produktionslinie, in der Daten nahtlos zwischen Maschinen fließen – die Vision von Industrie 4.0.

 

Fazit

Von Universitätslaboren bis hin zum globalen Phänomen – ROS hat sich zur Grundlage der Robotik entwickelt. Es ist der Klebstoff, der komplexe Robotersysteme zusammenhält – ein gemeinsames Framework, auf dem aufgebaut werden kann und das weltweit unzählige Entwicklungsstunden eingespart hat. Indem es Robotern ermöglicht, „gleich zu denken und zu kommunizieren“, hat ROS eine Umgebung geschaffen, in der Teilen und Zusammenarbeit zur neuen Norm geworden sind – und in der Innovation in der Robotik rasant voranschreitet. Ob ein Startup eine Lieferdrohne entwickelt, ein Automobilhersteller selbstfahrende Autos prototypisiert oder ein Krankenhaus Serviceroboter einsetzt – ROS liefert die Software-Bausteine, um schneller voranzukommen.

Mit dem ständigen Fortschritt und wachsender Unterstützung von ROS 2 steht das Robot Operating System im Zentrum der Robotikrevolution – sowohl für Experten als auch für Einsteiger, die intelligentere und leistungsfähigere Roboter bauen wollen.

Benötigen Sie Hilfe bei eingebetteten Systemen in der Robotik?

Wir helfen Ihnen bei der Entwicklung und Integration von Echtzeitsoftware, Hardwareplattformen und Sensornetzwerken – für Leistung und schnelle Markteinführung. Lassen Sie uns über Ihr Projekt sprechen.

Scythe-Studio - Head of Delivery

Michał Woźniak Head of Delivery

Brauchen Sie Qt QML-Entwicklungsdienste?

service partner

Kommen wir zur Sache: Es ist eine Herausforderung, Top-Qt-QML-Entwickler zu finden. Helfen Sie sich selbst und starten Sie die Zusammenarbeit mit Somco Software – echten Experten im Qt C++ Framework.

Entdecken Sie unsere Fähigkeiten!

Neueste Artikel

[ 154 ]