@@ -44,7 +44,7 @@ Des weiteren wird evaluiert ob das Vorgestellte Interaktionsonzept zwischen dem
Zunächst werden im Kapitel \ref{chapter:02related} theoretische und technisceh Grundlagen betrachtet die für die Entwicklung des Systems benötigt werden.
In Kapitel \ref{chapter:03points} wird eine Aufnahmetechnik von 3D Punktwolken von Objekten vorgestellt.
In Kapitel \ref{chaper:04tiles} stellen wir ein Datenvormat zur effizienten und kompakten Speicherung der Punktwolken vor und in Kapitel \ref{chapter:05visualization} wird über die Visualiserung dieser Punktwolken in einer VR Umgebung gesprochen.
Das Kapitel \ref{chapter:06Hololens}befasst sich mit der Synchronisation der VR Umgebung mit der AR Umgebung und Echtwelt.
Das Kapitel \ref{chapter:06Hololens}befasst sich mit der Synchronisation der VR Umgebung mit der AR Umgebung und Echtwelt.
In Kapitel \ref{chapter:07Evaluation} wird der Aufbau und die Durchführung der Nutzerstudie beschreiben.
Anschließend erfolgt die Evaluation der Ergebnisse.
Kapittel \label{chapter:08Ausblick} enthält eine Zusammenfassung der Ergebnisse der Arbeit und einen Ausblick auf zukünftige Erweiterungen und Verbesserungen.
Diese werden zu einer Laserwand aufgefächert und mit Motoren in regelmäßigen Abständen waagerecht und senkrecht über den Raum geschwenkt.
An den Controllern und dem HMD sind Sensoren angebracht die es ermöglichen die zeitliche Differenzen zwischen den Lichtblitzen an den verschiedenen Sensoren wahrzunehmen.
Aus diesen Zeitunterscheiden lässt sich die aktuell Position und Rotation der Controller und des HMDs bestimmen.
Dieses Verfahren ermöglicht es mit 2 Basistationen beliebig viele gegen stände zu Tracken, jedoch wird aktuell nur 1 HMD und 2 Controller an einem Computer unterstützt.
Außerdem ist es mit der aktuellen Version nicht möglich mehr als zwei Basistationen gleichzeitig zu betreiben und diese dürfen nicht beliebig weit von einander entfernt sein.
Zwischen den Lichtblitzen wird die Postion der Geräte mit den ebenfalls verbauten Gyrosensor und Beschleunigungsmesser approximiert.
Seit dem 27. März ist der Vive Tracker als Erweiterung des Systems für Entwickler erhältlich.
Dieser Tracker dient als Erweiterung zum tracken beliebiger Geräte mit dem Lighhouse Tracking System.
Er ist kompakter als ein Controller, hat keine Eingabetasten aber und eine Ebene Auflagefläche mit einer 1/4 Zoll Schraube zur Befestigung.
Für die Kommunikation zu dem Computer wird ein weiterer kabelloser USB Adapter verwendet.
Thoretisch können An einem System beliebig viele zusätzliche Tracker angeschlossen werden.
Praktisch liegt die Obergrenze bei 16 getrackten Geräten (1 HMD, 2 Controller, 13 Tracker).
Eine weitere Ergänzug für die HTC Vive ist der TPCAST wireless adapter.
Hierbei wird das Kabel zwischen dem Headset und dem HMD durch eine Kabelose Alternative ausgetauscht.
Die USB Daten werden per WLAN übertragen, das Bild mit einer speziell dafür entwickelten hochfrequenten Funkverbindung und für die Stromversorgung wird eine handelsübliche Powerbank verwendet.
Als Bibliothek zur Kommunikation mit der HTC Vive wird das OpenVR verwendet.
Die OpenVR API von Valve erlaubt es auf VR Hardware von verschiedenen Herstellern zuzugreifen.
Unter andrem wird auch SteamVR und damit die HTC Vive unterstützt.
Geräte,
handy
cave,
hmd vive,oculus
Lighthoues Trackign system
https://dl.acm.org/citation.cfm?id=2996341
funktionsweise
GENUAIGKEIT
eigen messugnen
längenuntreue
Die Genauigkeit des Lighthouse Trackings wurde in einigen Arbeiten untersucht.
Das HMD zittert in Ruhelage mit einer Basistation um 0.3mm und mit 2 Basistation erhöht sich diese Ungenauigkeit auf 2.1mm \cite{lighthouseAccuracy}.
Bei eigenen Messungen teilweise größere Ungenauigkeiten festgestellt.
In der Abb. \ref{img:Jitter} ist Messung mit einer maximalen Abweichung von fast 5mm zu sehen.
Die Präzision des Vive trackings wurde auch untersucht.
\cite{lighthouseAccuracy} spricht von einem durchschnittlichen Fehler von 1,5 -1,9 mm beim wiederholten positionieren an Punkten entlang eines Maßstabs.
Die Microsoft Hololens \cite{Hololens1} ist eine Augmented Reality Brille die es erlaubt interaktive Projektionen in der echten Welt darzustellen.
Die Brille funktioniert ohne zusätzliche Hardware wie ein Smartphone oder einen zusätzlichen Computer.
Der Nutzer schaut auf jedem Auge durch einen transparenten Bildschirm auf denen 3D Projektionen eingeblendet werden.
Die Steuerung erfolgt durch die Kopfbewegung, Gesten und Sprachsteuerung.
Die Hololens verfügt über ein inside-out Tracking zur Positionsbestimmung in Räumen.
Als Sensoren werden ein Beschleunigungsensor, ein Gyroskop, ein Magnetometer, eine Tiefenkamera und vier ``environment understanding'' Kameras \cite{Hololens2} verwendet.
Die Hololens baut sich mti hilfe dieer Sensoren ein grobes Mesh der Umgebung auf, das es regelmäßig updatet und verfeinert.
\subsection{Unreal Engine4}
Die Unreal Engine 4 \cite{UE4} ist eine der meist genutzten Spiele Engines.
Die Engine wird von Epic Games entwickelt und kann bis zu einem Jahresumsatz von 3000 US-Dollar kostenlos genutzt werden.
Unreal unterstützt viele verschiedene Plattformen wie Konsolen, Smartphones, PCs und Virtual Realtiy.
Das Framework der Unreal Engine besteht unter andrem aus einer Grafik Engine, einer Physikengine und einem mitgelieferten Editor mit vielen Werkzeugen zur Spielentwickelung.
Die Implementierung eines Spiels kann entweder in C++ erfolgen oder mit Hilfe des Blupeprint Visual Scriptings der Unreal Engine 4.
Diese Blueprints sind eine von Epic Games entwickelte Grafische Benutzeroberfläche die es ermöglicht Objektorientiert zu arbeiten.
Die Programmierung erfolgt dabei durch einen Graphen bei denen verschiedene Knoten (Methoden) per Drag and Drop verbunden werden.
Diese Blueprints werden automatisiert in C++ Code übersetzt.
C++ und Blueprints können in einem Projekt kombiniert und parallel verwendet werden.
Auch die rendering Engine \bzw{} das Unreal Material System lässt sich im Stil der Blueprints anpassen.
Die dabei entstehende Grafen werden anschließen zu passenden Grafik Shadern übersetzt.
Eine direkte Anpassung der Shader ist nicht möglich.
In der Implementierung wurden Blueprints und C++ verwendet. Viele Funktionen sind einfach durch die visualle Skriptsprache erreichbar udn umsetzbar.
Reicht die Funktionalität der Blueprints nicht aus so wurde diese Funktion in C++ implementiert.