Commit 49dded26 by Werner Westerkamp

Kapitel 6

parent e36df286
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
\label{chapter:06Hololens} \label{chapter:06Hololens}
Als Interaktion zwischen dem Experten in einer VR Umgebung und dem lokalen User wird die Microsoft Augmented Reality Brille HoloLens verwendet. Als Interaktion zwischen dem Experten in einer VR Umgebung und dem lokalen User wird die Microsoft Augmented Reality Brille HoloLens verwendet.
Die HoloLens bietet die Möglichkeit, Hologramme in die echte Welt zu projizieren. Die HoloLens bietet die Möglichkeit, Hologramme in die echte Welt zu projizieren.
Als Interaktionsmöglichkeit zwischen VR und AR wurde eine einfache Ausgewählt. Als Interaktionsmöglichkeit zwischen VR und AR wurde eine einfache ausgewählt.
In VR wurde an einen Controller ein Laserbeam mit fester Länge befestigt. In VR wurde an einen Controller ein Laserbeam mit fester Länge befestigt.
Bei synchronisierten Welten zwischen VR und AR sollte dieser Strahl auch in der HoloLens an dem Controller hängen. Bei synchronisierten Welten zwischen VR und AR soll dieser Strahl auch in der HoloLens an dem Controller hängen.
\section{Unreal Engine 4 und HoloLens} \section{Unreal Engine 4 und HoloLens}
Es gibt keinen offiziellen Support der HoloLens für die Unreal Engine 4. Es gibt keinen offiziellen Support der HoloLens für die Unreal Engine 4.
...@@ -22,8 +22,8 @@ Deshalb wurde für die AR Implementierung Unity verwendet. ...@@ -22,8 +22,8 @@ Deshalb wurde für die AR Implementierung Unity verwendet.
Die HoloLense Applikation in Unity ist einfach gehalten und die notwendige Logik wurde in der VR Applikation in Unreal umgesetzt. Die HoloLense Applikation in Unity ist einfach gehalten und die notwendige Logik wurde in der VR Applikation in Unreal umgesetzt.
Zunächst setzt man in der HoloLens einen Weltanker in den Raum. Zunächst setzt man in der HoloLens einen Weltanker in den Raum.
Ein Weltanker dient als besonders wichtiger Punkt und das System soll diesen Punkt immer tracken und konstant halten. Ein Weltanker dient als besonders wichtiger Punkt und das System soll diesen Punkt immer tracken und konstant halten.
Die Unreal Engine sendet jedem Frame einen JSON formatierten String per UDP an die Hololens in dem Start- und Enpunkt des aktullen Lasers enthalten sind. Die Unreal Engine sendet jedem Frame einen JSON formatierten String per UDP an die HoloLens in dem Start- und Endpunkt des aktuellen Lasers enthalten sind.
Diese werden anschließend in der Hololens relativ zum Welt Anker visualisiert. Diese werden anschließend in der HoloLens relativ zum Weltanker visualisiert.
\section{Kalibrierung} \section{Kalibrierung}
...@@ -38,7 +38,7 @@ Mit dieser Transformation kann der Strahl der VR Umgebung in das lokale Koordina ...@@ -38,7 +38,7 @@ Mit dieser Transformation kann der Strahl der VR Umgebung in das lokale Koordina
\begin{center} \begin{center}
\label{img:holokalib} \label{img:holokalib}
\includegraphics[width=\textwidth]{Bilder/HoloLens/Kalib.jpg} \includegraphics[width=\textwidth]{Bilder/HoloLens/Kalib.jpg}
\caption{Mixed Reality Capture der Hololens. Zu sehen ist das Koordinatenkreuz und der Vive Tracker. Am Tracker ist die 3D gedruckte Hilfe zu sehen. } \caption{Mixed Reality Capture der HoloLens. Zu sehen ist das Koordinatenkreuz und der Vive Tracker. Am Tracker ist die 3D gedruckte Hilfe zu sehen. }
\label{img:holokalib} \label{img:holokalib}
\end{center} \end{center}
\end{figure} \end{figure}
...@@ -55,18 +55,18 @@ Zum Beispiel bringt ein Fehler von 1\degree bei 2m Distanz eine Verschiebung von ...@@ -55,18 +55,18 @@ Zum Beispiel bringt ein Fehler von 1\degree bei 2m Distanz eine Verschiebung von
\todo{check distance} \todo{check distance}
Zu den menschlichen Fehlern kommen Ungenauigkeiten vom Vive Tracking und dem HoloLens Tracking. Zu den menschlichen Fehlern kommen Ungenauigkeiten vom Vive Tracking und dem HoloLens Tracking.
Zum einen verschiebt sich der HoloLens Ursprung manchmal leicht, wenn er nicht direkt angeschaut wird. Zum einen verschiebt sich der HoloLens Ursprung manchmal leicht, wenn er nicht direkt angeschaut wird. %@@@ Information: hier steht ``zum einen''
Dies ist bedingt durch das Inside-out Tracking der Hololens. Dies ist bedingt durch das Inside-out Tracking der HoloLens.
Durch erneutes Ansehen der Ursprungsumgebung wird dieser dieser meistens wiedererkannt und wird zurück auf die ursprüngliche Position gesetzt. Durch erneutes Ansehen der Ursprungsumgebung wird der Ursprung meistens wiedererkannt und wird zurück auf die ursprüngliche Position gesetzt.
Aber es konnten sehr vereinzelt dauerhafte Verschiebungen beobachtet werden. Aber es konnten sehr vereinzelt dauerhafte Verschiebungen beobachtet werden.
Im Extremfall waren ca. 10cm nach unten zu beobachten. Im Extremfall waren ca. 10cm nach unten zu beobachten.
Ein weiterer Faktor sind die Ungenauigkeiten im Vive Tracking. Zu anderen gibt es Ungenauigkeiten im Vive Tracking. % @@@ diesen Satz beginne ich jetzt mit ``zum anderen''. Ich hoffe, dass das dann auch inhaltlich die zwei Punkte sind, die du mit der Redewendung ``zum einen'' und `zum anderen'' klammern wolltest
Problematisch sind hierbei insbesonders die Längenunterschiede zwischen Echtwelt und Virtueller Welt gewesen. Problematisch sind hierbei insbesondere die Längenunterschiede zwischen Echtwelt und virtueller Welt.
In dem verwendeten Setup wurde ein 2m Zollstock mit einem Vive Controller vermessen. In dem verwendeten Setup wurde ein 2m Zollstock mit einem Vive Controller vermessen.
Dabei war die in VR gemessene Distanz 1,98m. Dabei war die in VR gemessene Distanz 1,98m.
Dieser Fehler wirkt sich direkt auf das Zusammenspiel der Vive und HoloLens aus. Dieser Fehler wirkt sich direkt auf das Zusammenspiel der Vive und der HoloLens aus.
Wird der Controller 2m vom Ursprung weg bewegt, dann bewegt sich der Beam nur um 1,98 in VR und damit entfernt sich auch der Beam in der AR Visualisierung von seiner eigentlichen Position. Wird der Controller 2m vom Ursprung weg bewegt, dann bewegt sich der Beam nur um 1,98 in VR und damit entfernt sich auch der Beam in der AR Visualisierung von seiner eigentlichen Position.
In der Implementierung wurde versucht das auszugleichen, indem alle Werte, die per UDP versendet werden, mit dem Faktor 1,025 skaliert wurden. In der Implementierung wurde versucht, das auszugleichen, indem alle Werte, die per UDP versendet werden, mit dem Faktor 1,025 skaliert wurden.
Der Wert wurde experimentell bestimmt. Der Wert wurde experimentell bestimmt.
\todo{Bidler} \todo{Bidler}
...@@ -77,7 +77,7 @@ Die Kalibrierung funktioniert, ist aber nicht schnell und fehlerfrei umsetzbar. ...@@ -77,7 +77,7 @@ Die Kalibrierung funktioniert, ist aber nicht schnell und fehlerfrei umsetzbar.
Bis die Kalibrierung vollständig stimmt, muss der Prozess teilweise ein paar Mal wiederholt und getestet werden. Bis die Kalibrierung vollständig stimmt, muss der Prozess teilweise ein paar Mal wiederholt und getestet werden.
Nahe an dem Weltanker erreicht das umgesetzte Tool den gewünschten Effekt, den Laser an den Vive Controller zu hängen. Nahe an dem Weltanker erreicht das umgesetzte Tool den gewünschten Effekt, den Laser an den Vive Controller zu hängen.
Entfernt man sich von diesem Punkt, wird das Tracking immer schlechter und die Fehler werden sichtbarer. Entfernt man sich von diesem Punkt, wird das Tracking immer schlechter und die Fehler werden sichtbarer.
Für die Evaluation wurde die VR Umgebung verschoben, um getrennte Ort zu simulieren. Für die Evaluation wurde die VR Umgebung verschoben, um getrennte Orte zu simulieren.
Damit der Fehler möglichst klein bleibt und keinen großen Einfluss auf die Evaluation hat wurde die Verschiebung so klein wie möglich gehalten (1.5m). Damit der Fehler möglichst klein bleibt und keinen großen Einfluss auf die Evaluation hat, wurde die Verschiebung so klein wie möglich gehalten (1,5m).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment