Seit 2007 entwickeln Forscher weltweit das Robot Operating System (ROS) – zunächst am Stanford Artificial Intelligence Laboratory, inzwischen im Rahmen der Open Source Robotics Foundation (OSRF). Auch wenn der Name etwas anderes vermuten lässt: ROS ist streng genommen kein eigenständiges Betriebssystem, sondern baut als Vermittlungsschicht zwischen Hard- und Software beispielsweise auf Linux oder Windows auf. ROS liefert unter anderem zahlreiche Gerätetreiber, sodass sich neue Sensoren und Aktoren problemlos in bestehende Systeme integrieren lassen. Ausserdem versteht sich ROS als „Software-Werkzeugkasten“ für die Forschung und die anwendungsgetriebene Automatisierung.
Aggregateträger für Softwarefunktionen
Porsche Engineering nutzt ROS bereits seit 2019. Die Ingenieure des Unternehmens haben dafür zusammen mit ADAS-Ingenieuren von Porsche eigene, komplexe Softwareinterfaces entwickelt, um den ROS-Layer mit den Bussystemen von Serienfahrzeugen zu verknüpfen. So lassen sich neue Features nahtlos in bestehende Fahrzeuge integrieren, die dadurch als neue Form eines „Aggregateträgers für Softwarefunktionen“ genutzt werden können. Diesen Ansatz nutzt Porsche Engineering bei den JUPITER-Versuchsfahrzeugen (Joint User Personalized Integrated Testing and Engineering Resource). Sie können mit zahlreichen Sensoren für automatisierte Fahrfunktionen ausgestattet werden, darunter aktuell Stereokameras und Lidar. „Dank ROS waren die Lidar-Sensoren innerhalb nur einer Woche eingebaut und integriert, und nach einem Tag Inbetriebnahme konnten wir sofort Testdaten aufzeichnen“, berichtet Marcel Pelzer, Entwicklungsingenieur Fahrerassistenzsysteme und Leiter des JUPITER-Projektes bei Porsche Engineering. „Üblich sind hier Integrations- und Inbetriebnahmezeiten von mehreren Tagen bis hin zu Wochen.“
ROS-Anwendungen bestehen aus einzelnen „Knoten“ („Nodes“), die untereinander kommunizieren. Auch dafür liefert ROS viele Software-Bibliotheken, unter anderem für den standardisierten Datenaustausch, die Visualisierung von Daten oder das Debugging. „Neue Knoten können dadurch sofort die Daten anderer Knoten nutzen“, erklärt Pelzer. „Man muss nicht von Anfang an wissen, wer mit wem sprechen soll. Die standardisierten Nachrichten helfen auch, Algorithmen auf verschiedenste Sensoren abzustimmen.“
Das macht ROS neben dem Bau von Robotern auch für die Entwicklung neuer automatisierter oder vernetzter Fahrfunktionen attraktiv, denn dafür müssen neue Software und Sensoren schnell in Prototypenfahrzeugen erlebbar gemacht werden. Neben der einfachen Integration neuer Hardware bietet vor allem das Knoten-Konzept einen entscheidenden Vorteil: ADAS-Funktionen (Advanced Driver Assistance Systems) lassen sich flexibel als neue Knoten implementieren, und deren Zusammenspiel kann auf einer einheitlichen Plattform getestet werden. Als weiteres Beispiel nennt er die prototypische Implementierung einer erweiterten Parkfunktion. „In der Serienentwicklung braucht man normalerweise mehrere Monate, bis Zulieferlösungen für eine Fahrerassistenzfunktion im Fahrzeug verfügbar sind. Im JUPITER-Fahrzeug konnten wir eine Reversing-Assist-Funktion zur automatischen Personen-Erkennung mit nur einem Entwickler innerhalb der halben sonst üblichen Zeit umsetzen.“
Neben der schnellen Implementierung neuer Sensoren und Funktionen bieten die JUPITER-Fahrzeuge den Entwicklern weitere Vorteile: Sensoren werden an möglichen Serienpositionen eingebaut, um den Einfluss der Platzierung auf den Algorithmus evaluieren zu können. Zudem ist ein Zugriff auf ihre Rohdaten möglich – ebenso wie der Zugriff auf den Fahrzeugbus und damit auf alle Aktoren.
50 bis 60 Knoten in einem JUPITER-Fahrzeug
Durch den Einsatz von ROS können die Entwickler neue Fahrfunktionen jederzeit ohne grossen Aufwand als Knoten in ROS implementieren. Insgesamt sind in einem JUPITER-Fahrzeug 50 bis 60 Knoten für diverse Funktionen und Unterfunktionen aktiv – immer mit der Option, das System während der Laufzeit dynamisch um weitere Knoten zu erweitern. Hinzu kommt, dass der ROS-Quellcode Open Source ist, ROS verschiedene Programmiersprachen wie C++ und Python unterstützt und es eine grosse Community gibt, die Inspirationen liefert und bei Problemen unterstützt. Dadurch können sich die Anwender bei Porsche Engineering auf das Wesentliche konzentrieren: die Funktionsentwicklung.
Die neue Version ROS 2 setzt auf den Erfahrungen von ROS auf. Ihre Kommunikations-Infrastruktur ist durch den DDS-Standard (Data Distribution Services) auch für Automotive-Anwendungen zertifiziert, sodass man ROS 2 theoretisch in Serienfahrzeugen einsetzen könnte. DDS bietet den grossen Vorteil, je nach Datenquelle Eigenschaften (Quality of Service), Transportmechanismen und auch Zugriffsrechte konfigurieren und somit Hardwareressourcen bestmöglich nutzen zu können. „ROS hat sich als sehr gute Plattform erwiesen, um neue Technologien zu testen und unseren Kunden Cutting-Edge-Technologien anzubieten“, fasst Pelzer zusammen. „So können wir schnell Use Cases demonstrieren und verkürzen die diesbezügliche Time-to-Delivery gegenüber unseren Kunden deutlich. Hierauf sind wir stolz, denn die intelligente Beschleunigung der Liefer- und Bereitstellungszeiten von Lösungen zu komplexen Aufgaben ist ein wesentlicher Bestandteil unserer Prozess- und Methodenoptimierungsaktivitäten. Ausserdem lässt sich das Zusammenspiel mehrerer Technologiedomänen wie ADAS, V2X, Künstliche Intelligenz und Simulation mit ROS auf einer einheitlichen Basis untersuchen. Dadurch können wir in der Entwicklung der vernetzten und intelligenten Fahrzeuge von morgen viele Synergien nutzen.“
Info
Text erstmals erschienen im Porsche Engineering Magazin, Ausgabe 1/2024.
Text: Christian Buck
Illustration: Supertotto
Copyright: Alle in diesem Artikel veröffentlichten Bilder, Videos und Audio-Dateien unterliegen dem Copyright. Eine Reproduktion oder Wiedergabe des Ganzen oder von Teilen ist ohne die schriftliche Genehmigung der Dr. Ing. h.c. F. Porsche AG nicht gestattet. Bitte kontaktieren Sie newsroom@porsche.com für weitere Informationen.