EDAG aeromotive entwickelt als Zulieferer eines Luft- und Raumfahrtunternehmens in Süddeutschland mit einem Team von Spezialisten prototypische Applikationen im Bereich „Augmented Reality” (AR). Das Unternehmen erkennt im Einsatz von komplexen und verteilten Systemen wirksame Synergien, die neue Fähigkeiten und Chancen definieren können. Doch warum ist es bereits in der Prototypenphase wichtig, Standards einzuhalten? Wie kann ein hochwertiger Prototyp den Entwicklungsprozess verkürzen und somit die Gesamtkosten reduzieren? Und wie gewinnt man die Akzeptanz der Anwender für neue Technologien?
Informative Ergänzung im Sichtfeld des Betrachters
„Augmented Reality“ wird hauptsächlich als informative Ergänzung im Sichtfeld des Betrachters mittels Einblendung und Überlagerung von Bild und Text auf ein entsprechendes Medium verwendet. Das Medium kann z. B. das Display eines mobilen Endgerätes sein oder eine Brille, auf dessen Sichtfeld das Bild projiziert wird.
Das Head-Up-Display (HUD), das unter anderen in der Luft- und Raumfahrt sowie in der Automobilindustrie Einsatz findet, ist ein bewährtes Beispiel, denn hier wird ein Mix von statischen und dynamischen Inhalten an einem fest definierten Platz angezeigt.
Das Head-Mounted-Display (HMD) wird auf dem Kopf getragen und ist dem HUD um einige technische Fortschritte voraus. Mit spezieller Hardware sowie Sensorik ist eine Verschmelzung des echten und virtuellen Raumes und die Rundumsicht möglich. Mit Hilfe von Daten externer Sensoren können Wert- und Objektinformationen über das HMD im Raum virtuell am physisch-erkannten Objekt dargestellt werden.
Anforderungen und Zertifizierungen erzwingen proprietäre System- und Softwarearchitektur
Die unternehmensspezifischen und teils stark eingrenzenden Anforderungen und Zertifizierungen, gerade im Bereich Luft- und Raumfahrt, zwingen die Entwickler eine proprietäre System- und Softwarearchitektur zu erstellen. Die Entwicklung eines komplexen Prototypen wird dabei oftmals unterschätzt. Hier zählt profunde Erfahrung in der Softwareentwicklung und eine proaktive Haltung in der Projektkommunikation zu angrenzenden Projekten und Teams. Es gibt eine große Anzahl von „Toolchains“, Ansätzen und Prinzipien, die solche Entwicklungsprozesse fundamental unterstützen können.
Die Auswahl der Werkzeuge kann erfolgsentscheidend sein
In der Prototypenentwicklung ist die Wahl der Tools flexibler gehalten als in der Endprodukt-Entwicklung. Die Zielhardware und entsprechende Betriebssysteme beherbergen im Live-System Regeln, die meist wenig Flexibilität zulassen. Vorteilhaft für das „Prototyping“ sind Entwicklungsumgebung und Peripheriegeräte, die nah an der Zielplattform und zudem leicht zu beschaffen sind. Meist aber werden auf den Zielsystemen andere Betriebssysteme eingesetzt als beim Prototyp.
Prototyping mit der Game-Engine von Unity Technologies
Das Entwicklerteam bei EDAG aeromotive setzt im Bereich AR-Prototyping auf die Game-Engine von Unity Technologies. Unity hat den Fokus nicht nur im Videospiel-Bereich, sondern konzentriert sich parallel auf die Bedürfnisse von Unternehmen außerhalb der Gaming-Industrie. Zudem verwendet EDAG aeromotive die aktuellste und auf das Kundenprojekt bezogene Hardware, z. B. die Microsoft HoloLens 2.
Wichtige Faktoren bei der Auswahl der Werkzeuge sind guter Support und eine umfangreiche Dokumentation. Einer der Vorteile von Unity und Microsoft ist die groß gewachsene Community. Die Entwicklungsumgebung von „Unity“ ist im Grunde kein Prototyping-Tool und unterscheidet sich sehr von bekannter Software wie Axure RP oder Adobe XD. Alternativ gäbe es noch weitere Entwicklungsumgebungen, wie die Unreal Engine von Epic und Amazons Lumberyard. Dennoch ist „Unity“ aktuell mit der „HoloLens 2“ eine sehr gut kombinierte Wahl, wenn Produktivität, Kompatibilität und Performance in der Gesamtheit verglichen werden.
„Prefabs“ können flexibel im Projekt eingesetzt werden
Dank des „Prefab-Systems“ von „Unity“ ist die Entwicklung um ein vielfaches effizienter [1]. „Prefabs“ sind einfach ausgedrückt wiederverwendbare Bausteine, die flexibel im Projekt eingesetzt werden können. Neue Anforderungen können entwickelt und in „Prefabs“ verpackt werden. Das System ähnelt dem „Blueprint“ der „Unreal Engine“ oder dem Bauplan eines Architekten. „Prefabs“ werden mit einer Schnittstelle versehen, um mit Ihnen kommunizieren zu können. Innerhalb des Moduls werden die Daten verarbeitet und entsprechend visualisiert. Dieses Verfahren kennt man in der Informations-Technologie unter dem EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe).
Verschiedene Versionen einer Anforderung
Die Kopie eines „Prefabs” mit leichten Änderungen kann dazu verwendet werden, von einer Anforderung verschiedene Versionen zu erstellen. Ein reibungsloser Austausch einer Version ist während der Testing-Phase schnell möglich. Das Beste aus den verschiedenen Versionen kann folgend in ein finales „Prefab“ entwickelt werden.
Mit den „ScriptableObjects“, welche als einmalige Daten-Kontainer gelten (vergleichbar mit einer Singleton-Instanz), gibt „Unity“ den Entwicklern ein weiteres Feature an die Hand, die zur Konstruktion einer sauberen Datenstruktur genutzt werden kann. „ScriptableObjects“ haben zudem den Vorteil, dass sie im System als dauerhafte Ressource zur Verfügung stehen. Sie müssen somit nicht dynamisch zur Laufzeit erzeugt werden. Mit Hilfe der „ScriptableObjects“ und den „Prefabs“ ist es modular möglich, jedes Projekt im Team organisiert zu bearbeiten.
Prinzipien und Standards: auch im „Prototyping” enorm wichtig
Bei Entwicklungsprojekten, in denen der Mensch die Aktoren-Rolle am Endprodukt einnimmt, steht der Begriff „Safety-critical system” an oberster Stelle. Ein Ausfall eines solchen Systems kann zu fatalen Folgen führen- bis zum Verlust von Menschenleben. Nicht umsonst existieren in der Luft- und Raumfahrt Richtlinien, z. B. die Norm DO-178C, welche die Zertifizierung von Software in der Avionik regelt. Zwar wird ein entwickelter und noch ungeprüfter Prototyp nicht in das Endprodukt integriert, doch die Berücksichtigung solcher Richtlinien können enorme Vorteile mit sich bringen. Aus diesem Grund ist es nützlich, bestimmte Prinzipien schon in der Vorentwicklung einzuhalten, um Nachteile aus dem „Prototyping“ entgegen zu wirken.
Gute Dokumentation und lesbare Projektstruktur sind wichtig
Die größten Nachteile sind zum einen, die sich schnell ändernden Anforderungen, die es schwierig machen, eine Dokumentation zu pflegen. Zum anderen können durch das „Prototyping“ hohe Entwicklungskosten entstehen, wenn die Nacharbeit am Endprodukt erschwert vorangeht. Um diese Nachteile zu eliminieren, ist eine gute Dokumentation und eine lesbare Projektstruktur von Bedeutung. Zuverlässigkeit, Benutzbarkeit und Effizienz sind entscheidende nichtfunktionale Anforderungen des Kunden. Aus der Sicht des Entwicklers sind es grundlegend die Änderbarkeit, Skalierbarkeit und Übertragbarkeit [2]. Hier ist ein Mindestmaß an Software-Qualität erforderlich.
Der Urvater der agilen Softwareentwicklung Robert C. Martin hat schon vor über 20 Jahren in einer beratenden Funktion Problematiken erkannt und Techniken als auch Prinzipien zur Vermeidung solcher Mängel in seinen Büchern, welche als Bibel der Softwareentwicklung gelten, verfasst.
„The only way to go fast, is to go well.” [3]
Das AR-Team bei EDAG aeromotive wandelt angeforderte „Requirements“ in Systeme und Komponenten um. So werden „Features“ modular entwickelt und nachhaltig integriert. Funktionale Anforderungen werden Teils als wiederverwendbare Komponenten in den Prototypen implementiert. Für immer wieder auftretende Software-Problematiken werden sogenannte Entwurfsmuster verwendet, die durch klare Code-Strukturen definiert sind. Die Solid- und Clean-Code-Prinzipien helfen die Lesbarkeit und die Struktur des Codes für die nachfolgenden Entwickler zu verbessern. Bestenfalls kann eine 1-zu-1-Portierung des Prototypen ohne logische Veränderungen stattfinden. Starke Abhängigkeiten sind Gift inmitten des volatilen Anforderungsmanagements.
Wo liegt nun der Vorteil eines „guten” Prototypen? Benjamin Franklin stellte schon im Jahr 1748 die These „Zeit ist Geld” auf. Eine Ressource, die immer knapp ist, kann mit entsprechenden Methoden und Verhalten wirtschaftlicher gemanaged werden. Denn unter Zeitdruck oder auch in der sogenannten „Crunch time” können viele Fehler entstehen.
Ein Prototyp muss modular strukturiert, lesbar programmiert und gut dokumentiert sein
Mit der Anwendung der beschriebenen Prinzipien können sich deutliche Vorteile in der Gesamtentwicklung ergeben. Mit „Unity“ erstellte Applikationen sind aufgrund vieler verschiedener Spezifikationen nicht DO-178C-zertifizierbar. Eine direkte Portierung ist somit ausgeschlossen. Es ist wichtig, dass der Prototyp modular strukturiert, lesbar programmiert und gut dokumentiert ist. So ist eine indirekte Übernahme der Anwendung wahrscheinlicher (in Bild 4 grün dargestellt), als wenn der Prototyp undurchsichtig und undokumentiert vorliegt und die Anwendung komplett neu entwickelt werden muss (in Bild 4 rot dargestellt).
Keine Angst vor neuen Technologien!
Warum Neues, wenn Altes sich bewährt hat? Ist in gewissen Situationen und sicherlich auch in einigen technologischen Ansichten eine begründete Frage. In vielen Fällen ist ein technologischer Fortschritt wichtig, bedeutet aber unter Umständen eine Verhaltensänderung. Vorteile gegenüber alten Technologien gilt es, messbar zu zeigen oder zu beweisen, damit Kritiker überzeugt werden können [4]. Gut aufgeschlüsselte Informationen in Form von Text und Bildern sind die Basis. Jedem muss klar sein, dass lebenslanges Lernen in der heutigen Welt erforderlich ist. Anwender müssen mit den gewonnenen Vorteilen und eliminierten Nachteilen sensibilisiert werden. Sie sollten bestenfalls die Technologie testen dürfen oder diese über eine Demonstration kennenlernen. „Gamification“ wird aktuell noch sehr unterschätzt und besitzt möglicherweise viel Potenzial.
Quellen:
[1] https://unity.com/de/prefabs
[2] https://www.david-tielke.de/blog.aspx
[3] Clean Architecture: Das Praxis-Handbuch für professionelles Softwaredesign. mitp-Verlag, 2018, ISBN 978-3-95845-724-9.
[4] https://link.springer.com/chapter/10.1007/978-3-322-93009-5_3
Quelle:
Augumented Reality: Virtuell im Raum dargestellte Informationen direkt am Objekt.(Bild: © Gorodenkoff – stock.adobe.com)