ROS System Design Ziele
Mit der raschen Weiterentwicklung und der zunehmenden Komplexität der Robotik ist die Forderung nach Wiederverwendbarkeit und Modularität des Codes immer dringlicher geworden. Einige Open-Source-Robotiksysteme haben sich schwer getan, diesen Anforderungen gerecht zu werden. Im Jahr 2007 veröffentlichte Willow Garage das quelloffene Robot Operating System (ROS), das schnell eine Welle des Lernens und der Akzeptanz in der Robotik-Forschungsgemeinschaft auslöste.
Das ROS-System entstand aus der Zusammenarbeit zwischen einem Projekt des Labors für künstliche Intelligenz der Universität Stanford und dem Personal Robots Program von Willow Garage im Jahr 2007. Nach 2008 wurde die Entwicklung von Willow Garage geleitet. Mit den bemerkenswerten Leistungen früher ROS-Roboter wie dem PR2 - wie dem Falten von Kleidung, dem Anschließen von Geräten und der Zubereitung von Frühstück - gewann ROS zunehmend an Aufmerksamkeit. Willow Garage äußerte den Wunsch, die Open-Source-Entwicklung zu nutzen, um den PR2 in einen “universellen” Roboter zu verwandeln.
Der PR2 hatte einen hohen Preis: 2011 kostete er $400.000. Heute wird er vor allem in der Forschung eingesetzt. Ausgestattet mit zwei Armen mit jeweils sieben Gelenken, sind die Endeffektoren des PR2 Greifzangen. Für die Mobilität sorgen vier Räder, die an seinem Sockel montiert sind. Hochauflösende Kameras, Laserentfernungsmesser, Trägheitsmessgeräte, taktile Sensoren und andere fortschrittliche Sensoren sind am Kopf, an der Brust, an den Ellbogen und an den Greifern des PR2 angebracht. Zwei 8-Kern-Computer an der Basis dienen als Steuerungs- und Kommunikationszentrale für die Roboterhardware. Auf beiden Computern laufen Ubuntu und ROS.
ROS-Design-Ziele
ROS ist Open-Source und dient als sekundäres Betriebssystem für Roboter. Es bietet Funktionen, die denen eines Betriebssystems ähneln, einschließlich Hardwareabstraktion, Low-Level-Treiberverwaltung, Ausführung gemeinsamer Funktionen, Nachrichtenaustausch zwischen Programmen und Paketverwaltung. Darüber hinaus bietet es Werkzeuge und Bibliotheken für das Erfassen, Erstellen, Schreiben und Ausführen kollaborativer Multi-Roboter-Programme. ROS ist Open-Source und dient als Backend-Betriebssystem oder sekundäres Betriebssystem für Roboter. Es bietet Funktionen, die denen eines Betriebssystems ähneln, einschließlich Hardwareabstraktion, Low-Level-Treiberverwaltung, Ausführung gemeinsamer Funktionen, Nachrichtenaustausch zwischen Programmen und Paketverwaltung. Außerdem bietet es Hilfsprogramme und Bibliotheken für das Erfassen, Erstellen, Schreiben und Ausführen von Programmen, die von mehreren Robotern gemeinsam genutzt werden.
Hauptmerkmale des ROS
Die ROS-Laufzeitarchitektur ist ein Verarbeitungsrahmen, der ROS-Kommunikationsmodule verwendet, um lose gekoppelte Peer-to-Peer-Netzwerkverbindungen zwischen Modulen herzustellen. Sie implementiert mehrere Kommunikationstypen, darunter dienstbasierte synchrone RPC-Kommunikation (Remote Procedure Call), themenbasierte asynchrone Datenflusskommunikation und Datenspeicherung auf dem Parameterserver. ROS selbst verfügt jedoch nicht über Echtzeitfähigkeiten.
Die wichtigsten Merkmale von ROS lassen sich wie folgt zusammenfassen:
-
Peer-to-Peer-Design
Ein System, das ROS verwendet, besteht aus einer Reihe von Prozessen, die über mehrere verschiedene Hosts laufen und während des Betriebs über eine Peer-to-Peer-Topologie kommunizieren. Software-Frameworks, die auf zentralen Servern basieren, können zwar auch die Vorteile von Multiprozess- und Multi-Host-Umgebungen nutzen, doch treten bei diesen Frameworks Probleme mit dem zentralen Datenserver auf, wenn die Computer über verschiedene Netzwerke verbunden sind. Ein System, das ROS verwendet, besteht aus einer Reihe von Prozessen, die auf mehreren verschiedenen Hosts existieren und während des Betriebs über eine Peer-to-Peer-Topologie kommunizieren. Obwohl Software-Frameworks, die auf einem zentralen Server basieren, ebenfalls die Vorteile von Multiprozess- und Multi-Host-Umgebungen nutzen können, treten bei diesen Frameworks Probleme mit dem zentralen Datenserver auf, wenn die Computer über verschiedene Netzwerke verbunden sind.
-
Mehrsprachige Unterstützung
Beim Schreiben von Code neigen viele Programmierer dazu, bestimmte Programmiersprachen zu bevorzugen. Diese Vorlieben ergeben sich aus Faktoren wie dem Zeitaufwand für die Programmierung in der jeweiligen Sprache, der Effektivität der Fehlersuche, der Syntax, der Ausführungseffizienz und verschiedenen technischen und kulturellen Überlegungen. Um diese Probleme zu lösen, haben wir ROS als sprachneutrales Framework entwickelt. ROS unterstützt jetzt zahlreiche verschiedene Sprachen, darunter C++, Python, Octave und LISP, und umfasst auch mehrere Schnittstellenimplementierungen für andere Sprachen.
Die Einzigartigkeit von ROS manifestiert sich in erster Linie in der Nachrichtenkommunikationsschicht und nicht in tieferen Ebenen. End-to-End-Verbindungen und Konfigurationen werden mit dem XML-RPC-Mechanismus implementiert, der auch gut dokumentierte Implementierungen für die meisten wichtigen Programmiersprachen enthält. Unser Ziel ist es, ROS natürlicher in verschiedenen Sprachen zu implementieren, indem wir uns an den jeweiligen Syntaxkonventionen orientieren, anstatt Schnittstellen auf Basis von C für andere Sprachen bereitzustellen. In bestimmten Fällen ist es jedoch sinnvoll, bestehende Bibliotheken zu nutzen, um die Unterstützung für neue Sprachen zu kapseln. Der Octave-Client wird zum Beispiel mit einer C++-Wrapper-Bibliothek implementiert.
Um die sprachübergreifende Entwicklung zu unterstützen, verwendet ROS eine einfache, sprachunabhängige Schnittstellendefinitionssprache (IDL) zur Beschreibung des Nachrichtenaustauschs zwischen Modulen. Die IDL verwendet prägnanten Text, um die Struktur jeder Nachricht zu definieren und ermöglicht die Komposition von Nachrichten. Das folgende Diagramm veranschaulicht beispielsweise eine mit IDL beschriebene Punktnachricht:
Codegeneratoren für jede Sprache erzeugen entsprechende native Codedateien. Beim Senden und Empfangen von Nachrichten kompiliert ROS diese Dateien automatisch und führt sie parallel aus. Das spart viel Programmierzeit und reduziert Fehler: Die dreizeilige IDL-Datei wird automatisch zu 137 Zeilen C++-Code, 96 Zeilen Python-Code, 81 Zeilen Lisp-Code und 99 Zeilen Octave-Code. Da Nachrichten automatisch aus einfachen Textdateien generiert werden, können neue Nachrichtentypen leicht aufgezählt werden. Zum Zeitpunkt der Erstellung dieses Artikels enthalten die bekannten ROS-basierten Codebibliotheken über vierhundert Nachrichtentypen. Diese Nachrichten übermitteln Sensordaten und ermöglichen es den Objekten, ihre Umgebung zu erkennen.
Das Endergebnis ist eine sprachunabhängige Nachrichtenverarbeitung, die es ermöglicht, mehrere Sprachen beliebig zu mischen und zu kombinieren.
-
Rationalisierung und Integration
Die meisten bestehenden Softwareentwicklungsprojekte für die Robotik enthalten Treiber und Algorithmen, die außerhalb des Projekts wiederverwendet werden können. Leider sind die Zwischenschichten der meisten Codes aus verschiedenen Gründen übermäßig unübersichtlich, was es schwierig macht, ihre Funktionalität zu extrahieren und sie über das Prototyping hinaus anzuwenden.
Um diesem Trend entgegenzuwirken, empfehlen wir die schrittweise Entwicklung aller Treiber und Algorithmen zu eigenständigen Bibliotheken, die unabhängig von ROS-Abhängigkeiten sind. ROS-Systeme zeichnen sich durch Modularität aus, wobei der Code innerhalb jedes Moduls separat kompiliert werden kann. Das für die Kompilierung verwendete CMake-Tool erleichtert das Konzept des Minimalismus. ROS kapselt im Wesentlichen komplexen Code in Bibliotheken und erstellt nur kleine Anwendungen zur Demonstration der Bibliotheksfunktionalität. Dadurch kann einfacher Code portiert und über das Prototyping hinaus wiederverwendet werden. Ein neuer Vorteil ist, dass Unit-Tests wesentlich einfacher werden, wenn der Code über Bibliotheken verteilt ist. Ein einziges Testprogramm kann mehrere Funktionen innerhalb einer Bibliothek überprüfen.
ROS nutzt Code aus zahlreichen bestehenden Open-Source-Projekten. So übernimmt es beispielsweise Treiber, Bewegungssteuerung und Simulationscode aus dem Player-Projekt, Bildverarbeitungsalgorithmen aus OpenCV, Planungsalgorithmen aus OpenRAVE und viele andere. In jedem Fall bietet ROS verschiedene Konfigurationsoptionen und erleichtert die Datenkommunikation zwischen Softwarekomponenten, wobei nur minimale Wrapper und Änderungen vorgenommen werden müssen. ROS wird durch die Pflege der Community kontinuierlich weiterentwickelt, indem Updates von anderen Softwarebibliotheken und Anwendungspatches in den Quellcode integriert werden.
-
Umfassendes Toolkit
Zur Verwaltung des komplexen ROS-Software-Frameworks haben wir zahlreiche Dienstprogramme eingesetzt, um verschiedene ROS-Komponenten zu kompilieren und auszuführen, wobei wir sie als Kernel konzipiert haben, anstatt eine massive Entwicklungs- und Laufzeitumgebung zu schaffen. Diese Werkzeuge übernehmen verschiedene Aufgaben, wie z. B. die Organisation von Quellcodestrukturen, das Abrufen und Einstellen von Konfigurationsparametern, die Visualisierung von End-to-End-Topologieverbindungen, die Messung der Bandbreitennutzung, die anschauliche Darstellung von Informationsdaten und die automatische Erstellung von Dokumentationen. Obwohl wir Kerndienste wie die globale Uhr und den Rekorder für Controllermodule getestet haben, ist es unser Ziel, den gesamten Code zu modularisieren. Wir sind der Meinung, dass die Vorteile der Stabilität und der geringeren Verwaltungskomplexität jeden Effizienzverlust bei weitem aufwiegen.
-
Frei und Open-Source
Der gesamte ROS-Quellcode ist öffentlich zugänglich. Wir glauben, dass dies unweigerlich die Fehlersuche auf allen Ebenen der ROS-Software fördern und Fehler kontinuierlich korrigieren wird. Obwohl nicht quelloffene Software wie Microsoft Robotics Studio und Webots viele lobenswerte Eigenschaften besitzt, sind wir der Meinung, dass eine quelloffene Plattform unersetzlich bleibt. Dies gilt vor allem dann, wenn Hardware und Software auf allen Ebenen gleichzeitig entwickelt und debuggt werden. Der gesamte ROS-Quellcode ist öffentlich zugänglich. Wir glauben, dass dies unweigerlich die Fehlersuche auf allen Ebenen der ROS-Software und die kontinuierliche Korrektur von Fehlern fördern wird. Obwohl auch Nicht-Open-Source-Software wie Microsoft Robotics Studio und Webots viele lobenswerte Eigenschaften besitzen, halten wir eine Open-Source-Plattform für unersetzlich. Dies gilt insbesondere dann, wenn Hard- und Software auf allen Ebenen gleichzeitig entwickelt und debuggt werden.
Repräsentative Roboter von typischen ROS auf dem Markt
Repräsentative Roboter, die ROS auf dem Markt verwenden, zeigen, wie dieses Open-Source-Framework verschiedene Anwendungen unterstützt. Zum Beispiel, mobile Roboter wie der TurtleBot und der Husarion ROS-Bot sind in Lehre und Forschung weit verbreitet; Serviceroboter wie Fetch und PR2 zeigen fortschrittliche Manipulations- und Navigationsfähigkeiten, während industrielle Plattformen wie der Husky von Clearpath die ROS-Integration in rauen Umgebungen demonstrieren. Diese Beispiele spiegeln die Flexibilität und Skalierbarkeit von ROS sowohl in der akademischen als auch in der kommerziellen Robotik wider.
Im Folgenden sind repräsentative vierbeinige ROS-Roboter, ROS-Roboter mit Rädern und ROS-Roboter mit Raupenantrieb aufgeführt.
Beste vierbeinige Roboter mit ROS-Antrieb
| Name Copmay | Land | Roboter Bild | Anmeldung | Offizielle Website |
| Unitree Robotik | China | ![]() |
Bildung, Forschung und industrielle Aufgaben | https://www.unitree.com/go2 |
| Boston Dynamics | USA | ![]() |
Industrielle Inspektion | https://bostondynamics.com/products/spot/ |
Top 5 Roboter auf Rädern mit ROS
| Name Copmay | Land | Roboter Bild | Spielen Sie | Offizielle Website |
| MiR | Dänemark | ![]() |
600kg | https://www.mobile-industrial-robots.com |
| Robotnik-Roboter | Spanien | ![]() |
150kg | https://bostondynamics.com/products/spot/ |
| Robotnik | Spanien | ![]() |
250kg | |
| Clearpath Robotics | Kanada | ![]() |
100kg | https://clearpathrobotics.com |
| Fdata-Roboter | China | ![]() |
1000KG | https://www. fdatabot.com |
Beste Kettenroboter mit ROS-Integration
| Name Copmay | Land | Roboter Bild | Anmeldung | Offizielle Website |
| Superdroid
Roboter |
Kanada | ![]() |
Taktischer Roboter Taktischer Roboter | https://www.superdroidrobots.com/store/tracked-robots |
Suchen Sie nach maßgeschneiderten Robotik-Lösungen? Kontakt US
Kontakt aufnehmen
Fdata ist ein Hersteller von mobilen Robotern in China. Wir sind auf kundenspezifische Lösungen für mobile Roboter spezialisiert und helfen unseren Kunden von der Idee bis zur Massenproduktion.








