Software der Fahrsimulationsumgebung
Nachfolgend werden alle Softwarekomponenten aufgelistet, die innerhalb der Fahrsimulationsumgebung zum Einsatz kommen.
Inhalt
Grundlegende Softwarestruktur
Die Softwarearchitektur sorgt für eine lose Kopplung zwischen den Komponenten zur Informationsbeschaffung (Fahrsimulator-Software oder Sensoren) und den Anzeigeelementen (Bildschirme, mobile Endgeräte u. ä.). Hierzu kommt ein technologisch neutraler Kommunikationsbus auf der Basis des offenen Message Queue Telemetry Transport (MQTT) Protokolls zum Einsatz.
Diese Architektur gestattet die schnelle und einfache Austauschbarkeit von Geräten und Softwarekomponenten, um verschiedene Fahrszenarien ohne großen Zeitverlust testen zu können. Durch den Einsatz von MQTT können die Teilnehmer für den Eigenbetrieb relevante Daten abonnieren sowie eigene Daten publizieren. Aufgrund der uneinheitlichen Schnittstellen der zum Einsatz kommenden unterschiedlichen Simulationssoftware, wurde mit dem Simulator Hub eine Middleware zur Kommunikation mit dem Bussystem erstellt.
Simulationssoftware
Mit OnSide, OpenDS und Project Cars 2 werden aktuell drei Simulationen unterstützt.
OnSide
OnSide ist eine hochschul-intern entwickelte Simulationssoftware unter der BSD Lizenz, welche ursprünglich aus einer Praxisphase entstand und im Rahmen einer Masterthesis weiterentwickelt wurde. OnSide entstand aus dem Bedarf für eine voll anpassbare Simulationssoftware auf Basis einer modernen Grafikengine mit der effizienten Möglichkeit zur Strecken- und Umgebungserstellung.
Schlüsselfeatures von OnSide sind aktuell:
- Verwendung des Unity-Frameworks als moderne Grafikengine
- Einfache Integration von VR-Funktionalität
Aktuelles und Weiterentwicklung
OnSide wird aktiv zur Durchführung diverser Studien eingesetzt und fortlaufend durch Projekte von Studierenden weiterentwickelt. Die Software kommt aktuell zur Durchführung einer Studie zum Einsatz, die sich mit der Wahrnehmung von Brillenträgern in der virtuellen Realität beschäftigt.
OpenDS
OpenDS ist eine Java-basierte, quelloffene Fahrsimulationssoftware welche aus einer Ausgründung des deutschen Forschungszentrums für Künstliche Intelligenz (DFKI) entstanden ist und unter der GNU GPL veröffentlicht wurde. Aufgrund der hohen Anpassbarkeit der Fahrszenarien und des großen Funktionsumfangs (u. a. Anbindung mehrerer Eingabegeräte mit freier Konfiguration der Steuerelemente, Unterstützung von konfigurierbaren Ampelsystemen und Gegenverkehr, etc.), erfreut es sich gerade im wissenschaftlichen Bereich einer gewissen Beliebtheit.
Unter anderem aufgrund der mittlerweile veralteten Grafik, bedingt durch den Einsatz der 3D Gameengine JMonkey und der teilweise sehr komplizierten Konfiguration via einer Vielzahl wenig dokumentierter XML Dateien wurde beschlossen, mit der Entwicklung der hochschul-internen Fahrsimulationssoftware OnSide zu beginnen. Dennoch kommt der Einsatz von OpenDS beispielsweise für Aufmerksamkeits- bzw. Ablenkungsstudien in Frage, die ein oft erprobtes und standardisiertes Fahrszenario wie z. B. den ISO zertifizierten Lane Change Test erfordern.
Project Cars 2
Project Cars 2 ist ein kommerziell vertriebenes Rennsimulationsspiel von Bandai Namco Entertainment und ist für verschiedenen Spieleplattformen erhältlich. Project Cars 2 wird aufgrund mangelnder Anpassbarkeit nicht im Rahmen von Studien eingesetzt, sondern dient aufgrund seiner ausgereiften Physik und Grafik höchstens als Inspirationsquelle für die Weiterentwicklung von OnSide. Da Project Cars 2 über eine Schnittstelle zur Kommunikation von Telemetriedaten verfügt, dient es darüber hinaus als grafisch ansprechendes Testszenario für die Entwicklung und den Test von Dashboards und Infotainmentsystemen.
Simulator Hub
Da mit OnSide, OpenDS und Project Cars aktuell unterschiedliche Simulationssoftware zum Einsatz kommt, musste aufgrund uneinheitlicher Schnittstellen der Softwarepakete eine separate Middleware (Simulator Hub) erstellt werden, um den Geräten und Softwarekomponenten die anfallenden Telemetriedaten in einheitlicher Form zur Verfügung zu stellen.
Der Simulator Hub (KoSiHub) wurde unter Verwendung von WPF in Kombination mit der Programmiersprache C# erstellt. Er dient als vermittelnde Instanz zwischen dem Kommunikationsbus (MQTT) und der benötigten Simulationssoftware. Obgleich die vom Simulator unterstütze Software größtenteils die gleichen Telemetriedaten (z.B. Geschwindigkeit, Drehzahl, Außentemperatur usw.) zur Verfügung stellen, liegen sie dennoch über verschiedene Kommunikationswege und in verschiedenen Datenformaten vor. Hier liegt der Einsatzzweck des Hubs, der die anfallenden Daten in einheitlicher Form über das Bussystem bereitstellt. Neben den Konntektoren für die erwähnte Simulationssoftware verfügt der Hub zudem über die Möglichkeit, Fahrszenarien durch einfache Befehle mittels der Scriptsprache Lua zu simulieren. Dies ermöglicht insbesondere Studierenden in ihren Projekten den frühen Test von abhängiger Software (wie z. B. Dashboards), ohne vor Ort sein zu müssen.
Eine erste Version der Software übermittelte die Daten ausschließlich über eine JSON basierte UDP Schnittstelle. Im Rahmen eines Studierendenprojekts wurde nachträglich die MQTT Fähigkeit implementiert. Um die Kompatibilität zu älterer Software, die auf der JSON Schnittstelle basiert, zu gewährleisten, wird die UDP Schnittstelle weiterhin unterstützt.
Softwareframeworks
Die nachfolgende Liste stellt eine Momentaufnahme der zum Einsatz kommenden Softwareframeworks und Programmiersprachen dar und stellt keine Einschränkung für weitere Projekte dar. Neue Ansätze und Technologien sind willkommen!
-
- WPF (Windows Presentation Foundation): WPF ist ein Softwareframework für Windows Benutzeroberflächen, welches auf die strikte Trennung von Code und Benutzeroberfläche setzt. Die Benutzeroberfläche wird separat mit Hilfe der XML basierten Markup-Language XAML (eXtensible Application Markup Language) definiert und per Codebinding an die Logikschicht gebunden. Als Programmiersprachen werden u.a. C#, Visual Basic und J# unterstützt. WPF wird im Rahmen des KoSi zur Entwicklung des Simulator-Hubs (KoSiHub) sowie diverse Dashboard und Infotainment Systeme verwendet.
- Qt/QML: Wie WPF setzt das C++-Framework Qt bei der (optionalen) Verwendung des JSON-basierten QML (QT-Metaobject Language) auf die Trennung von Code und Benutzeroberfläche. Im Gegensatz zu WPF ist Qt plattformübergreifend, dabei allerdings hauptsächlich auf die Verwendung von C++ optimiert. Es existiert auch eine Integrationsmöglichkeit für Python. Im Rahmen des KoSi kam Qt/QML aktuell hauptsächlich für diverse Dashboard und Infotainmentsysteme zum Einsatz.