Kraftfahrzeug-Navigation
Mitarbeit an der Navigation eines Personenkraftwagens der süddeutschen Oberklasse innerhalb eines großen Teams
Software-Architektur, Analyse und Entwurf in UML, Schnittstellen- und Komponentendefinition in MoCCA, Programmierung in C++, Test, Koordination, Beratung
Das Infotainmentsystem besteht im wesentlichen aus einer Head-Unit und einer RSE, an die je zwei Bildschirme angeschlossen sind. Sie sind über MOST verbunden. Softwaretechnisch ist es eine Komponenten-Architektur auf dem Framework MoCCA. Das Team war auf mehrere Standorte in Deutschland, Osteuropa und Indien verteilt.
-
Software-Architektur des Subsystems Externe Ziele
Dieses behandelt alle Ziele und Routen, die von außen an die Navigation herangetragen, d.h. nicht vom Fahrer über dessen Bedieneinheit eingegeben werden. Sie kommen z.B. von Google Maps, einer iPhone-App, dem Taxifunk, über einen Internetzdienst z.B. von einem PC, oder von einem html-Reiseführer und sind in GPXD codiert. Der Reiseführer und Google Maps sind auch auf dem rechten und den hinteren Bildschirmen im Fahrzeug verfügbar. Externe Ziele und Routen können also zu beliebigen Zeiten aus verschiedenen Quellen von außerhalb und von innerhalb des Fahrzeugs kommen. Jedes einzelne wird dann der Fahrerin vorgeschlagen. Das Subsystem ist auf die Head-Unit und die RSE verteilt. Softwaretechnisch besteht es aus vier MoCCA-Komponenten, von denen jede einen Bildschirm bedient, zwei MoCCA-Komponenten für die MOST-Kommunikation und mehreren Komponenten, die Ziele und Routen einbringen.
-
Meine Aufgaben waren
-
Analyse der Nutzungsfälle, insbesondere der Eigenarten der einzelnen Quellen von Zielen und Routen
-
Entwurf der Software als UML-Modell mit Komponenten- Klassen- Kollaborations- und Sequenzdiagrammen mit MagicDraw
-
Spezifikation der MOST-Kommunikation in Zusammenarbeit mit dem Kunden
-
Kommunikation mit den Entwicklerinnen und Entwicklern der Quellen
-
-
Mehrere Mitarbeiter implementierten das Subsystem anhand meines UML-Modells. Aufgrund von Termindruck musste die Programmierung stark parallelisiert werden. Ich koordinierte sie.
-
Mitarbeit bei der Programmierung des Presentation Controllers für die Landkarte in C++
Der Presentation Controller bekommt Befehle von der Benutzerkommunikation und setzt sie in Befehle an eine Grafik- und Datenbankmaschine um, die die Landkarte auf den Bildschirm bringt. Alle drei sind MoCCA-Komponenten.
-
Meine Aufgaben waren
Darstellung der alternativen Routen
Die Navigation berechnet mehrere Routen zu einem Ziel, die in verschiedenen Farben dargestellt werden. Der Fahrer kann eine auswählen. Die Japan-Variante hat hierbei einen größeren Funktionsumfang.Eingabe der eigenen Position
In Japan, speziell in Tokio, kann es nötig werden, dass das Fahrzeug die eigene Position vom Menschen mitgeteilt bekommt. Die Fahrerin kann dazu ein Fadenkreuz über die Landkarte bewegen.Erzeugung von Landkartenbildern für das In-Drive-Entertainment
-
Weiterentwicklung des In-Drive-Entertainment (Navitainment)
Das In-Drive-Entertainment ist eine Bilderschau, die im Gleichtakt auf beliebig vielen Bildschirmen läuft. Einzelne Plätze kann man zu- und wegschalten. Die zeitliche Synchronisation erfolgt über MoCCA und MOST, die Datenverteilung über MoCCA, MOST, Dateien und http. Es handelt sich um ein verteiltes System ähnlich Externe Ziele.
-
Die Inhalte sind
Bilder von Landkarten, von denen manche das Fahrziel oder die Route und manche auch Information aus dem Reiseführer zeigen.
ein Höhenprofil; Die aktuelle Höhe wird vom Navigationskern und die gefahrene Strecke vom Kombi-Instrument bezogen.
Online-Inhalt; Die Position des Fahrzeugs, die Route und die Bildschirmauflösung werden über http an einen Internetz-Dienst des Kraftfahrzeugherstellers gemeldet. Dieser schickt dann Bilder aus der Umgebung des Fahrzeugs, des Ziels, oder der Route.
-
Ich übernahm einen Entwurf und eine erste Implementierung, die nur Testbilder zeigte, und stabilisierte sie. Dann erweiterte ich den Entwurf und die Implementierung um die Landkartenbilder, das Höhenprofil, und den Online-Inhalt.
-
Verantwortung für die MOST-Kommunikation der gesamten Navigation
Ich spezifizierte den FBlock in Zusammenarbeit mit dem Kunden, konfigurierte ihn und programmierte in C++ eine Softwareschicht, die ihn der Applikation zur Verfügung stellt.