Wie ein Smartphone auf Rädern

Neu im Eclipse-Universum: Eclipse Kuksa – Die Plattform für Connected Cars

Robert Höttger, Johannes Kristan, Tobias Rawald

© Shutterstock.com / chombosan

Bisher ist die Vernetzung von Autos noch nicht so weit fortgeschritten, wie sie es sein könnte. Hard- und Software werden installiert und mit Glück beim Check-up in der Werkstatt auf den neuesten Stand gebracht. Aber das Internet of Things, 5G und vor allem neue Softwareplattformen wie Eclipse Kuksa bieten noch viel mehr Möglichkeiten, als heute genutzt werden.

Einleitung und Motivation

Kaum jemand kann sich seinen Alltag ohne sein Smartphone vorstellen. Früh weckt es einen mit exotischem Geplätscher, dann hält es die aktuellen Nachrichten bereit, bevor es einen als Personal Trainer beim Sport motiviert und Vitalwerte prüft. Abends schlägt es einem interessante Veranstaltungen in der Umgebung vor und berechnet danach den günstigsten Weg nach Hause.

Dass das Smartphone eine Hilfe in so verschiedenen Lebenslagen ist, liegt zum einen daran, dass es voller Sensorik steckt und durch seine Verbindung ins Internet auf beliebige Dienste zugreifen kann. Zum Anderen nutzt eine Vielzahl an Entwicklern diese Daten, um interessante Apps zu entwickeln. Ein digitaler Kreislauf.

Ein weiterer Begleiter, den sich viele Menschen nicht aus ihrem Leben wegdenken können, ist das Auto. Genau wie das Smartphone ist auch das moderne Auto vollgestopft mit Sensorik. Was bisher aber noch nicht vorhanden ist, sind eine durchgehende Verbindung mit dem Internet und eine Möglichkeit, das Fahrzeug offen durch neue Funktionen zu erweitern. Wäre dies möglich, würden sich eine Vielzahl interessanter Anwendungsfälle ergeben: Wäre es nicht praktisch, statt sich schon beim Kauf eines Fahrzeugs für oder gegen Navi und Tempomat zu entscheiden, diese ganz flexibel vor einer Urlaubsreise für eine bestimmte Zeitdauer zu buchen? Oder würde es die unangenehme Situation einer Panne nicht massiv verbessern, wenn der alarmierte Rettungsdienst vorab eine detaillierte Auflistung der aufgetretenen Probleme bekäme, sodass man gleich die passenden Werkzeuge und Ersatzteile mitbringen kann? Ganz abgesehen von solchen Komfortfunktionen ließen sich beispielsweise Ampeln auf einer bestimmten Strecke so schalten, dass ein Rettungswagen ohne Unterbrechung zu einem Unfallort fahren kann.

Die 5G-Funktechnologie macht eine ubiquitäre Verbindung von Fahrzeugen an das Internet möglich und erlaubt damit oben beschriebene Szenarien. Was aber fehlt, ist eine Plattform, die es ermöglicht, Fahrzeuge mit neuen Funktionalitäten auszustatten. Eclipse Kuksa adressiert genau diesen Punkt. Es stellt eine Entwicklungsplattform für den Aufbau einer Infrastruktur für Car2X-Szenarien bereit. Die Lizenz von Kuksa, also die Eclipse Public Licence 2.0 (EPL 2.0) erlaubt den Aufbau einer offenen und damit zwischen Fahrzeugherstellern kompatiblen Infrastruktur. Durch die Wahl der EPL 2.0 ist außerdem sichergestellt, dass eine Integration mit GPL-lizensierten Komponenten möglich ist; beispielsweise aus dem Umfeld des Automotive Grade Linux.

Aufbau des Kuksa-Okösystems

Der Aufbau einer Infrastruktur für Car2X-Szenarien umfasst, wie in Abbildung 1 dargestelt, drei Bereiche: Eine Plattform im Fahrzeug, eine Plattform im Cloud Backend und eine IDE für die Entwicklung neuer Funktionalitäten.

In-Vehicle Platform

Um die verschiedenen Szenarien einer vernetzen Fahrzeuginfrastruktur bewältigen zu können, bedarf es nicht nur einer ausgeklügelten Netz- und Cloud-Architektur, sondern auch entsprechender Hardware im Fahrzeug. Diese Hardware soll einerseits eine Steuergeräte übergreifende bidirektionale Kommunikation mit der Außenwelt gewährleisten und andererseits verschiedenste Technologien beinhalten, um sicher, fehlerfrei, authentifiziert und verifiziert Updates, Upgrades, Wartungs- oder Diagnosearbeiten sowie Datenaustausch jeglicher Art vornehmen zu können.

Eine belastbare Basis für eine solche Komponente stellt Automotive Grade Linux (AGL) dar, welches sich für die vorgesehenen Entwicklungen gegenüber vergleichbaren Plattformen am geeignetsten herausgestellt hat. Erste Implementierungen zeigen bereits, wie beispielsweise die automatisierte Erstellung von erweiterten und leichtgewichtigen AGL Images unter Eclipse Kuksa möglich ist und notwendige Funktionen der Automobildomäne beinhaltet. Ein maßgebender Teilbereich der Implementierungen wird von einer gesonderten Security-Gruppe entwickelt, bei der existierende Technologien auf Sicherheitslücken überprüft und geeignete Methoden gewählt werden, um Fahrzeuge von jeglicher Art von Angriffen aus dem Netz zu schützen.

Weiterhin wird die Kuksa-Fahrzeug-Komponente eine Laufzeitumgebung für verifizierte Applikationen bereitstellen. Dementsprechend sollen neue und individuelle Funktionen ermöglicht werden, die, ähnlich zu einem Smartphone aber unter strengeren Rahmenbedingungen, neue Marktpotentiale im vernetzten Automobilbereich ermöglichen. Eine Hauptfunktion bildet der abgesicherte Zugriff auf Telemetriedaten und Funktionen des Fahrzeugs. Hierdurch soll mithilfe der zentralen und dezentralen Datenerfassung von Fahrzeugdaten und -zuständen zum Beispiel sowohl autonomes Fahren unterstützt, als auch global optimierter Verkehr ermöglicht werden. Für eine zukunftssichere Infrastruktur ist dabei entscheidend, dass die Basis des Ökosystems und die damit verbundenen Protokolle und Kommunikationstechnologien von Herstellern unabhängig genutzt werden.

IDE

Die unter Eclipse Kuksa bereitgestellte IDE soll nicht nur die Entwicklung von Applikationen für die Fahrzeughardware unterstützen, sondern auch auch das Erstellen von Applikationen für die Cloud bereitstellen. Hierzu sollen Anwender zwischen zwei verschiedenen Workspaces und Technologie-Stacks wählen können, die die vorkonfigurierten und eingebetteten APIs sowie Softwarebibliotheken der jeweiligen zu entwickelnden Applikationen beinhalten. So kann das Automobil mit neuen Funkionen bestückt und neue Services können in die Cloud deployed werden.

Ein Szenario für einen Entwickler könnte etwa so aussehen: Eine neue Fahrzeugfunktionalität soll entwickelt werden. Sie soll Daten über Batterieladezustände vom Fahrzeug und Photovoltaikanlagen mit Wetterdaten und den Ladezyklen anderer Fahrzeuge integrieren und dem Autofahrer im Fahrzeug darüber informieren, welche Lademöglichkeiten ihm zur Verfügung stehen.

Kuksa bietet den Entwicklern über die IDE verschiedene APIs für die Implementierung der Fahrzeug-App, eine Projektschablone für einen Cloud Service sowie Wizards zum einfachen bereitstellen der Fahrzeug-App im App-Store. So können Entwickler durch die umfangreiche Bereitstellung der verschiedenen APIs und Bibliotheken in der IDE auf bestehende Kommunikationsschnittstellen und Verfahren zur sicheren Datenübermittlung, -speicherung, -verwaltung, und -authentifizierung zurückgreifen, ohne dabei gesonderte Maßnahmen zur Verarbeitung oder Interpretation der zu empfangenden Daten berücksichtigen zu müssen.

Eclipse Kuksa bietet außerdem ein vereinfachtes Deployment von neuen Anwendungen sowohl für die Cloud, als auch für Komponenten in Testfahrzeugen. Dies wird durch einen vorkonfigurierten Eclipse Che Stack ermöglicht, zu dem einzig die Adresse einer Zielplattform angegeben werden muss. Die Konfiguration, das Bauen und das Deployment kann dabei auf Knopfdruck ohne weitere Maßnahmen durchgeführt werden. Je nach Anwendungsfall werden dazu verschiedene Entwicklungswerkzeuge (Logging, Debugging, Tracing,…) mit eingebunden. Syntax-Highlighting, Code-Vervollständigung sowie weitere notwendige IDE-Funkionen werden dabei selbstverständlich unterstützt.

Um die mit Hilfe der IDE entwickelten Applikationen für den Endanwender bereitstellen zu können, sollen diese zentral geprüft, verwaltet und im Bezug auf verschiedene In-Vehicle-Derivate und -Varianten so organisiert werden, dass nur für das jeweilige Fahrzeug adäquate Applikationen zugänglich sind. Ähnlich zu App-Stores bei Smartphones, sollen Fahrzeughalter somit innovative Funktionen und Anwendungen ihrem Fahrzeug hinzufügen oder Updates durchführen können. Dies wird durch standardisierte Schnittstellen der In-Vehicle- und Cloud-Plattform ermöglicht und bietet eine vielfältige sowie simple Infrastruktur für Fahrzeughalter. Authentifizierungsmethoden, Sicherheitsverfahren, Variantenmanagement und geeignete Datenübertragungstechnologien in Kombination mit dem öffentlich zugänglichen Ökosystem sollen dabei maßgebliche Bestandteile sein und den entscheidenen Unterschied zu existierenden Lösungen darstellen.

Cloud Backend

Das Cloud Backend bildet das Gegenstück zu den von der Fahrzeugplattform bereitgestellten Diensten und bietet Basisdienste für die Kommunikation, Authentifizierung, Autorisierung, Datenmanagement und Analyse an. Die Basisdienste sind durch Open-Source-Technologien aus dem Eclipse-IoT-Umfeld realisiert, welche für die Anforderungen einer Automobil-Cloud-Plattform zugeschnitten werden. Zentrale Funktionalitäten sind dabei eine vereinheitlichte und abgesicherte Kommunikation zwischen dem Backend und den verbundenen Fahrzeugen, sowie deren zentrale Verwaltung. Die Kommunikation wird über ein hochskalierbares Messaging Gateway auf Basis von Eclipse Hono abgebildet, das sowohl Telemetrie- und Eventdaten von den Fahrzeugen entgegennimmt, als auch Nachrichten an die Fahrzeuge senden kann. Hierbei kommen offene Kommunikationsprotokolle, wie bspw. AMQP, MQTT oder LWM2M zum Einsatz. Diese Komponente ist auch für das Identitätsmanagment der angeschlossenen Fahrzeuge zuständig.

Die große Menge an gesammelten Daten kann entweder durch Streaming-Anwendungen direkt prozessiert oder vorverarbeitet in Datenbanksystemen hinterlegt werden. Eine weitere Backend-Komponente auf Basis von Eclipse Ditto abstrahiert zusätzlich die physischen Fahrzeuge, inklusive der angeschlossenen Sensorik, von ihren virtuellen Repräsentationen. Diese Komponente sorgt für die Synchronisation des Zustands des physischen Fahrzeugs und seiner virtuellen Repräsentation und erlaubt damit die Behandlung des Fahrzeugs in einer Implementierung als wäre es ein digitales Objekt.

Die Fahrzeugverwaltung übernimmt das Aktualisieren der Software auf dem Fahrzeug, sowohl in Bezug auf das Kernsystem als auch auf das Hinzufügen und Verändern von Fahrzeugfunktionalität durch Apps. Ersteres umfasst dabei unter anderem das sogenannte Roll Out Management, das eine Verteilung der Software an eine große Anzahl von Fahrzeugen steuert. Diese Komponente ist durch Eclipse hawkBit realisiert. Zusätzliche Apps werden durch die Fahrzeughersteller oder externe Entwickler in einem App Store angeboten.

Nächste Schritte

Eclipse Kuksa ist aktuell im Incubator-Status und bereitet die Initial Contribution vor, welche zu Beginn bereits die Basisimplementierungen zur Cloud, IDE und In-Vehicle-Plattform beinhaltet. Hiermit lassen sich bereits adaptierte AGL-Kuksa-Images für einen Raspberry Pi 3 bauen, Daten zu einer (Cloud-)Instanz übertragen, und Cloud- oder In-Vehicle-Applikationen mithilfe bereitgestellter Eclipse Che Stacks implementieren.

In Zukunft werden verschiedene Technologien, wie beispielsweise neue Authentifizierungsverfahren, Sicherheitsmethoden oder Use-Case-Beispiele, zu den entsprechenden Repositories hinzugefügt. Weitere Informationen gibt es auf der Projektseite von Eclipse Kuksa for Automotive IoT and Cloud Technologies!

Verwandte Themen:

Geschrieben von
Robert Höttger
Robert Höttger ist Doktorand an der Fachhochschule Dortmund in Kooperation mit der TU-Dortmund. Zu seinen Forschungsthemen gehören Aktivitäten in den Bereichen Automotive, Echtzeit und Eingebettete Systeme, Mehrkern-Architekturen und IoT. Seit 2015 is Robert Höttger aktives Mitglied der Eclipse community und dort an den Projekten APP4MC und Kuksa sowie verschiedenen GSoC Entwicklungen und den EclipseCon IoT playgrounds beteiligt.
Johannes Kristan
Dr. Johannes Kristan ist als Softwareentwickler bei der Bosch Software Innovations GmbH in verschiedenen Open Source Projekten aktiv.. Er ist Co-Lead des Projekts Eclipse Kuksa aber engagiert sich als Co-Lead von Eclipse SW360.auch in der Weiterentwicklung von Methoden und Werkzeugen fürdas Open Source Management bei Bosch. Zuvor hat er im Bereich Software Engineering an der Universität Leipzig promoviert und war Post-Doc an der University of Auckland. Neben seiner Arbeit bei Bosch ist Johannes noch immer in der Forschung aktiv, schreibt Beiträge und dient als Reviewer und PC Member für verschiedene Zeitschritten und Konferenzreihen.
Tobias Rawald
Dr. Tobias Rawald ist als Softwareentwickler bei der Bosch Software Innovations GmbH tätig. Er ist unter anderem an dem Open Source Projekt Eclipse Kuksa beteiligt. Im Rahmen seiner Promotion an der Humboldt-Universität zu Berlin hat er sich mit der Erforschung skalierbarer Berechnungsansätze im Kontext der Zeitreihenanalyse beschäftigt. Ein zentraler Bestandteil seiner Arbeit war die Portierung dieser Ansätze auf massiv-parallele Berechnungsgeräte, insbesondere Grafikkarten.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: