Autonomes Fahren und Open-Source-Technologien
Ist das eine gute Idee?
Die Entwicklung des automatisierten und autonomen Fahrens steht vielen Herausforderungen gegenüber, z. B. wird eine Werkzeugkette (Toolchain) benötigt, die dazu dient, den Entwicklungsprozess für die Produktentstehung zu unterstützen. Erschwerend kommt hinzu, dass dabei die Komplexität mit jedem Level der Automatisierung steigt.
Etablierte Tools, entwickelt für spezifische Anwendungsfälle, die für sich allein betrachtet sehr gut sind, lassen sich oft nicht mit den Tools anderer Entwicklungsschritte verbinden, um damit eine bestimmte Aufgabe abzudecken, da sie dafür schlicht nicht gemacht wurden. Auch gibt es für bestimmte Aufgaben Lücken in der Kette, die bisher nicht geschlossen sind. Um diese Herausforderungen allein zu meistern bedarf es einer Menge an Zeit und Geld und das in einem Bereich, der oft nicht direkt zu einem Wettbewerbsvorteil verhilft.
Anstatt diese Herausforderungen alleine zu lösen und viel Geld und Aufwand in diese Aktivität zu investieren, hat Bosch zusammen mit weiteren Partnern aus der Industrie – nicht nur aus der Automobilbranche, sondern auch aus anderen Zweigen – eine Community gestartet, um diese Herausforderungen gemeinsam in der Initiative OpenADx zu lösen, die seit Juni 2019 eine Eclipse Working Group ist.
Damit ist es den Partnern nicht nur möglich, die Kosten für die Werkzeugkette zu senken, sie erreichen damit auch eine bessere Integration innerhalb der Unternehmen und besonders auch an den Schnittstellen zwischen den zusammenarbeitenden Unternehmen.
Software dominiert mehr und mehr unser tägliches Leben, auch die Welt des Automobils. Nahezu jede Funktion in einem Fahrzeug wird durch Software definiert.
Lösungen für das automatisierte Fahren bringen neue Komplexitäten in die Entwicklung von Embedded-Systemen, die in Fahrzeugen zum Einsatz kommen. Die Komplexität steigt dabei mit jedem Level der Automatisierung – tiefergehendes Wissen und noch mehr Software wird benötigt. Der Fokus auf Software ist deutlich höher als auf "fahrende Computing und Data Centers", die durchaus auch als eine "Embedded Vehicle Cloud" bezeichnet werden können, da Software immer mehr zum wichtigen Differenzierungsfaktor für automatisierte Fahrzeuge wird. Neue Firmen tauchen auf dem Markt für automatisiertes Fahren auf, die Funktionalitäten komplett neu entwickeln und dabei keine Rücksicht auf ihre Historie nehmen müssen, sondern auf neue Methoden setzen oder diese einfach adaptieren können. Auch etablierte Firmen müssen dies tun um mithalten zu können.
Neue Technologien wie Künstliche Intelligenz (AI) müssen integriert werden, um die Zielsetzung im automatisierten Fahren zu erreichen, aber auch vorhandene Systeme müssen integriert werden.
Herausforderungen und die Komplexität des automatisierten Fahrens
Um ein Fahrzeug zu automatisieren und sicher auf der Straße zu steuern, müssen die Fähigkeiten eines Fahrers nachgebildet und durch das Fahrzeug übernommen werden. Dazu müssen die Sinne eines menschlichen Fahrers durch geeignete Sensoren, Aktoren und Rechenkapazität nachempfunden werden, denn:
- Zunächst einmal muss das Auto wissen, was in seiner Umgebung vor sich geht.
- Es muss in der Lage sein, den Standort des Fahrzeugs genau zu bestimmen, um exakt zu wissen, wo es sich befindet. Ist es z. B. in Stuttgart in Deutschland oder in Stuttgart in den USA, ist es auf der rechten Fahrspur oder auf der linken?
- Auf der Grundlage dieser Informationen muss das Fahrzeug interpretieren, planen und entscheiden, wie und wohin es sich zu bewegen hat, bzw. bewegen darf. Das heißt, es muss die von seinen Sensoren und aus der Cloud empfangenen Daten entsprechend verarbeiten.
- Basierend auf diesen Daten muss die bestmögliche Route für diese Fahraufgabe gefunden werden, die dann von ihren Aktuatoren ausgeführt wird.
Herausforderungen des Software Engineering für automatisiertes Fahren
Automatisiertes Fahren (AD) ist eine sehr komplexe Herausforderung. Die zunehmende Komplexität der Embedded-Software mit zunehmendem Automatisierungsgrad stellt neue Anforderungen an die bestehenden Tools und Frameworks. Anstatt diese Herausforderungen allein zu lösen, ist eine Partnerschaft in nicht-differenzierenden Bereichen und die gemeinsame Arbeit an einer Toolchain innerhalb des OpenADx-Ökosystems der richtige Weg.
Gründe für den Anstieg der Komplexität sind:
- Einsatz von Algorithmen für maschinelles Lernen und Deep Learning in Embedded-Software.
- Multi-Domain-Simulation virtueller Fahrzeuge, um Fehler frühzeitig zu erfassen und zu verifizieren.
- Lösungen für virtuelle Testfahrten sollen nahtlos mit der Embedded-Software verbunden werden.
- Skalierung simulierter Kilometer.
Die Werkzeugkette (Toolchain) für solche Herausforderungen ist ebenfalls sehr komplex und die Integration aller notwendigen Tools, die aus den verschiedensten Domänen kommen, erfordert viel Aufwand, ohne dabei einen echten Wettbewerbsvorteil zu erzeugen. Deshalb wurde gemeinsam mit OEMs, Tier-1-Lieferanten, Toolanbietern, Forschungsorganisationen, aber auch Unternehmen aus verwandten Branchen wie der IT-Branche, die Initiative OpenADx gestartet.
Ziele und Vorteile eines offenen Ansatzes
Das Ziel dieser Bestrebung ist, damit aufzuhören, Geld für eine proprietäre Werkzeugkette in jeder einzelnen Firma auszugeben. Stattdessen sollen die Entwicklungskosten der Werkzeugkette unter den einzelnen Partnern der Industrie aufgeteilt werden. Neben dem Vorteil der Kostenteilung wird eine bessere Integration der Werkzeugkette innerhalb der einzelnen Unternehmen erwartet, aber auch an den Schnittstellen zwischen den zusammenarbeitenden Unternehmen.
Der Vorteil dieses offenen Ansatzes liegt für Tool-Hersteller und Forschungsinstitute in einem Integrations-Backbone, das dem Tool-Anbieter eine leichte Integration neuer Techniken oder Werkzeugen in eine bestehende Umgebung, die von vielen Unternehmen genutzt wird, erlaubt, anstatt proprietäre, kundenspezifische Einzellösungen zu erstellen oder zu liefern.
Das Ziel von OpenADx ist nicht, vorhandene und bekannte Werkzeuge, die wir gewohnt sind zu nutzen, zu ersetzen. Im Gegenteil, es gibt viele Werkzeuge und Technologien, egal ob sie kommerziell oder Open Source sind, die ihren Job sehr gut machen und das sollen sie genauso in Zukunft tun. Ziel ist es, Entwicklungsabläufe festzulegen und die Integration von Werkzeugen entlang dieser Abläufe zu unterstützen, sowie Lücken darin zu identifizieren, die bis dato mit den existierenden Lösungen nicht geschlossen sind. Dieser "Klebstoff" für die Integration wird als Open Source unter dem Dach der Eclipse Foundation zur Verfügung gestellt. Auch ist zu erwarten, damit einen industrieweiten Standard schaffen zu können.
Was ist OpenADx?
OpenADx ("open" offen für jeden, "AD" automatisiertes Fahren, "x" accelerate = beschleunigen) ist eine industrieweite Initiative, um gemeinsam in einem neutralen, bzw. offenen Umfeld im Bereich der Toolchain zusammenzuarbeiten, um Lösungen für das automatisierte Fahren zu entwickeln. Ziel ist es, so einfach wie möglich eine Toolchain aufzusetzen, um die Entwicklung der Lösungen für das automatisierte Fahren zu beschleunigen. Da es sich um einen offenen Ansatz handelt, sind alle interessierten Firmen eingeladen, mitzumachen und dabei zu helfen, die richtigen Elemente für die Toolchain zu identifizieren und umzusetzen.
Die Zusammenarbeit von Firmen erfordert ein rechtliches Rahmenwerk, (wie z. B. Impressum auf Webseiten, Hosting von Open-Source-Aktivitäten, einen Open-Source-Management-Prozess und vieles mehr) welches z. B. die Eclipse Foundation bietet.
OpenADx Kooperationsmodell
Bei OpenADx geht es um Zusammenarbeit, um ein gemeinsames Problem in einer offenen Umgebung zu lösen, in der Ideen und Konzepte ausgetauscht und zusammengebracht werden können. Durch die Bündelung der Ressourcen und Kompetenzen für die Toolchain können Ressourcen in den jeweiligen Unternehmen freigesetzt werden, um diese auf andere organisatorische Bedürfnisse zu setzen. OpenADx umfasst offene Lösungen und konkurriert nicht mit anderen. Ziel ist auch, offene Lösungen, vor allem eclipse-basierte offene Projekte, einzubinden.
OpenADx integriert attraktive Lösungen, unabhängig von der Lizenz, egal ob kommerziell oder offen, in Toolchain-Vorschläge und "Kochbücher", die für jeden anwendbar sind. Kommerzielle Lösungsanbieter, die OpenADx-Projekte in ihre Lösungen integrieren, haben die Möglichkeit, proprietäre Lösungen anzubieten, die auf den bereitgestellten Tooling-Plattformen aufbauen.
Projektvision
OpenADx konzentriert sich in erster Linie auf die Entwicklungs-Toolchain. Um einen einfachen und schnellen Zugriff auf die Toolchain zu haben, sollte sie in der Cloud verfügbar sein. Damit ist eine aktuelle, gepflegte und gehostete Toolchain zugänglich für alle, von überall erreichbar ist und das ganz ohne Installation durch den Anwender.
Der Zweck einer Toolchain ist es, großartige und innovative Software-Produkte zu schaffen! Damit ist es wichtig, dass auch die Erstellung und Entwicklung von Software so einfach wie möglich ist. Daher soll ein Marktplatz bereitgestellt werden, der Softwareteile anbietet, die zu neuen Produkten kombiniert oder darauf aufbauend eigene Funktionalitäten entwickelt werden können, um diese dann im Marktplatz zu teilen. Dasselbe wird mit den Tools geschehen! Die vorhandene Toolchain kann verwendet oder eine eigene kann konfiguriert bzw. zusammengestellt werden. Einzelne Tools können entwickelt und mit der Community geteilt werden.
Hosting in der Cloud bietet den Vorteil, dass z. B. High Performance Computing für rechen- und ressourcenintensive Anwendungen wie Simulationen genutzt werden können. Zudem können die Ergebnisse, Szenarien, Daten und vieles mehr im Cloud-Speicher gespeichert werden, so dass der Weg zwischen Entwickler und Test- oder gar Serienflotte verkürzt wird.
Deshalb konzentriert sich OpenADx auf drei Hauptbestandteile:
- Die AD-Toolchain und ihre Referenzarchitektur für Interoperabilität,
- der Software-Stack und seine Referenzarchitektur für Interoperabilität und
- Infrastruktur wie z. B. ein Integrations-Backend.
Ziel ist es, eine Reihe bestehender Produkte in die Entwicklungsumgebung zu integrieren. Eine solche Initiative soll inklusiv und nicht exklusiv sein. Dies sorgt für Transparenz und macht eine komplexe Toollandschaft für Anwender zugänglicher.
OEMs und Tier1s profitieren von der Integration mit erhöhter Effizienz. Die Integration in ein standardisiertes Toolchain-Framework macht Toolhersteller auch für die Unternehmen, die ihre Produkte einsetzen, attraktiver, da ein "Vendor Lock-in" vermieden werden kann.
Die Kombination des jeweiligen Domänenwissens aller beteiligten Unternehmen, unabhängig davon, in welcher Domäne sie arbeiten, eröffnet einer Arbeitsgruppe wie OpenADx eine nahezu unschlagbare Chance, großartige Lösungen zu entwickeln.
Open Source ist in der Automotive-Welt angekommen
Ein Blick auf die aktuellen Aktivitäten auf dem Markt genügt, um vielleicht zu bemerken, dass Open Source jetzt im Automobil angekommen ist. Das ist gut, denn vor einigen Jahren waren Open Source und Automotive ein echtes No-Go!
Um ein paar wenige Beispiele an der Stelle zu nennen:
- ROS (Robot Operating System) ist im Bereich der Entwicklung von hoch automatisierten Systemen sehr stark verbreitet,
- CARLA, ein Open-Source-Simulator, ist stark verbreitet und
- namhafte Automobilhersteller und Zulieferer stellen Softwareteile Open Source zur Verfügung.
Motivation für Open-Source-Software
Warum stellen Firmen Software Open Source und damit allen zur Verfügung? Vielleicht mag es paradox erscheinen, aber Open Source kann tatsächlich dabei helfen, eine breite Palette an Unternehmenszielen zu erreichen.
Wie funktioniert denn Open-Source-Software für Unternehmen? Zuerst muss die Software in differenzierende und nicht-differenzierende Teile partitioniert werden. Nicht-differenzierende Softwareteile können Open Source werden, differenzierende Softwareteile sollten proprietär bleiben, wobei auch diese Anteile aus strategischen Gründen publiziert werden können.
Die Fragestellung, ob ein Softwareteil differenzierend ist, oder nicht, hängt oft auch vom Zeitpunkt ab: Was heute noch Unique Selling Point (USP) ist, kann in ein paar Jahren schon nicht-differenzierend sein. Unternehmen können von Open Source profitieren, indem die Effizienz in verschiedensten Bereichen erhöht wird, z. B. ermöglicht Open Source eine agile Zusammenarbeit mit einem Minimum an Formalitäten, im Gegensatz zu z. B. Konsortien. Die Tatsache, dass Artefakte für jeden einsehbar sind, erhöht die Qualität der Software, da viel mehr Augen auf den Code gerichtet sind und diesen einem Review unterziehen. Durch Beiträge vieler beteiligter Partner wird die Entwicklungsgeschwindigkeit erhöht, mögliche Risiken werden früher entdeckt und durch "Shared Development" auch Entwicklungskosten geteilt.
Firmen möchten unabhängig sein, d. h. sie möchten sich nicht von einzelnen Lieferanten abhängig machen, deshalb helfen Open-Source-Projekte, die Abhängigkeit zu minimieren, Monopolstellungen zu vermeiden oder gar aufzubrechen – und das bei voller Transparenz.
Erfahrungen aus Open-Source-Projekten haben gezeigt, dass Offenheit die Marktdurchdringung beschleunigt und sogar einen neuen Markt schaffen kann.
Auch kann mit den nicht-differenzierenden Softwareteilen ein Wettbewerbsvorteil geschaffen werden, denn Unternehmen können sich voll und ganz auf die differenzierenden Anteile konzentrieren. Das Open-Source-Projekt stellt die Basis dafür und kann dabei proprietäre Alternativen aus dem Markt drängen.
Toolchain für das automatisierte Fahren
Eine vollständige Toolchain für das (hoch-)automatisierte Fahren besteht aus einer Vielzahl von Tools die Daten austauschen und miteinander agieren müssen, um einen nahtlosen Entwicklungsprozess zu unterstützen. Die Integration der unterschiedlichsten Tools erfolgt häufig in den anwendenden Unternehmen selbst. Eclipse OpenADx kann dabei als Forum dienen, um Erfahrungen und Aufwendungen auszutauschen.
Eine vollständige Toolchain besteht aus mehreren Komponenten für:
- Datenübernahme, -transformation und -management,
- Datenanalyse,
- Machine-Learning-Training
- Open-Loop MiL/SiL-Tests (Model-in-the-loop / Software-in-the-loop) ,
- Closed-Loop MiL/SiL-Tests mit Simulationsumgebungen,
- Hardware-in-the-loop-Tests, sowohl Open- als auch Closed-Loop,
- Engineering-Arbeitsplätze mit Software-Entwicklungstools, Datenmanagement-Tools, Szenario-Editier-Tools und vielem mehr,
- Continuous-Integration- und Continuous-Delivery-Plattformen – sowohl für einzelne Werkzeuge, als auch für Komplettlösungen und
- Homologierung des Fahrzeugs.
Aktueller Stand
OpenADx ist seit Juni 2019 eine Eclipse Working Group, die mit 8 Mitgliedern gestartet ist und inzwischen 15 Mitgliedsfirmen aus den verschiedensten Domänen zählen darf. Erste Open-Source-Projekte sind erstellt und veröffentlicht. Ein Projekt z. B. beinhaltet eine Simulations-Middleware, die eine Abstraktionsebene zwischen der zu prüfenden Software und der eigentlichen Simulations-Engine einzieht, so dass die einzelnen Komponenten leichter austauschbar werden. Auch lässt die Simulations-Middleware über ein grafisches User Interface eine Visualisierung der Vorgänge und eine Parametrierung in gewissen Grenzen zu. Um eine entsprechende Skalierbarkeit zu gewährleisten wird hier die Container-Technologie angewendet.
Mit weiteren Projekten findet OpenADx auch den Weg direkt in das Steuergerät. Dort gibt es z. B. effiziente Algorithmen für den Datentransfer.
Da die Projektvision realisiert werden soll und OpenADx nicht alles allein erstellen möchte, ist OpenADx immer auf der Suche nach passenden Projekten, egal ob Open oder Closed Source, die in die "Blaupause" aufgenommen werden können, aber auch nach weiteren Mitgliedern und Kooperationspartnern.
Zusammenfassung
Open-Source-Software gewinnt in der Automobilbranche immer mehr an Bedeutung. Dadurch werden die Abhängigkeiten zwischen Kunde und Lieferant minimiert, d. h. es gibt Alternativen, die gewählt werden können, die in das gewünschte Schema hineinpassen, ohne diese mit viel Aufwand anpassen zu müssen.
Open-Source-Software erhöht die Qualität dadurch, dass Software durch umfassende Tests und Reviews durch eine Community mit einem breiten Fachwissen abgesichert wird. Risiken und Kosten werden zwischen den einzelnen aufgeteilt, ohne dabei den Einfluss auf die Software zu verlieren. Auch bietet Open-Source-Software volle Transparenz für den Anwender, da der Quellcode einsehbar ist.
Open Source Working Groups helfen der Industrie in Zeiten von knappen Budgets, Kosten zu sparen und sich auf das Wesentliche zu konzentrieren, z. B. auf differenzierende Aktivitäten.
Zusammenfassend ist es tatsächlich eine sehr gut Idee, im Automobilumfeld auch Open-Source-Technologien einzusetzen!