Commit bd5ed4eb by Kai Westerkamp

HoloLens/Kalib.jpg

parent 0b0f560b
Pipeline #330 passed with stage
in 51 seconds
...@@ -9,13 +9,11 @@ Bei synchronisierten Welten zwischen VR und AR sollte dieser Strahl auch in der ...@@ -9,13 +9,11 @@ Bei synchronisierten Welten zwischen VR und AR sollte dieser Strahl auch in der
\section{Unreal Engine 4 und HoloLens} \section{Unreal Engine 4 und HoloLens}
Es gibt keinen Offiziellen Support der HoloLens für dei Unreal Engine 4. Es gibt keinen Offiziellen Support der HoloLens für dei Unreal Engine 4.
Aktuell wird das einwickeln für die neue AR Plattform nur in Unity unterstützt. Aktuell wird das einwickeln für die neue AR Plattform nur in Unity unterstützt.
Microsoft hat auf Github einen Fork der Unreal Engine \todo{cite} in dem Support für die Universel Windows Plattform (UWP)\todo{glossar} enthalten ist. Microsoft hat auf Github einen Fork der Unreal Engine cite{UWP} in dem Support für die Universel Windows Plattform (UWP)\todo{glossar} enthalten ist.
%https://github.com/MICROSOFT-XBOX-ATG/MICROSOFT_UWP_UNREAL/tree/dev_MixedReality
UWP beitet eine allgemeine Plattform Für Apps, die auf allen Windows basierten Systemen funktionieren. UWP beitet eine allgemeine Plattform Für Apps, die auf allen Windows basierten Systemen funktionieren.
In diesem Repositoy befindet sich auch ein Development Branch der die HoloLens Unterstüzung in Unreal integriert. In diesem Repositoy befindet sich auch ein Development Branch der die HoloLens Unterstüzung in Unreal integriert.
Für die Implementierung wurde dieser Development Branch getestet. Für die Implementierung wurde dieser Development Branch getestet.
Nach dem bauen der aktuellen Version wurde ein HoloLens Template in die Engine geladen \todo{cite }. Nach dem bauen der aktuellen Version wurde ein HoloLens Template \cite{UE4Holo} in die Engine geladen.
%https://github.com/ProteusVR/Hololens https://www.youtube.com/watch?v=KxvAm2qNJ0Q&feature=youtu.be
Jedoch gab es Probleme das Projekt zu packen, sodass es auf die HoloLens geladen werden kann. Jedoch gab es Probleme das Projekt zu packen, sodass es auf die HoloLens geladen werden kann.
Deshalb wurde für die AR Implementierung Unity verwendet. Deshalb wurde für die AR Implementierung Unity verwendet.
...@@ -24,48 +22,55 @@ Deshalb wurde für die AR Implementierung Unity verwendet. ...@@ -24,48 +22,55 @@ Deshalb wurde für die AR Implementierung Unity verwendet.
Die HoloLense Applikation in Unity ist einfach gehalten worden und die notwendige Logic wurde in der VR Applikation in Unreal umgesetzt. Die HoloLense Applikation in Unity ist einfach gehalten worden und die notwendige Logic wurde in der VR Applikation in Unreal umgesetzt.
Zunächst setzt man in der HoloLens einen Welt Anker in den Raum. Zunächst setzt man in der HoloLens einen Welt Anker in den Raum.
Weltanker dienen als besonders wichtiger Punkte und das System soll diesen Punkt immer tracken und konstant halten. Weltanker dienen als besonders wichtiger Punkte und das System soll diesen Punkt immer tracken und konstant halten.
Die Unreal Enginesendet regelmäßig 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 Enpunkt des aktullen Lasers enthalten sind.
Diese werden anschließen relativ zum Welt Anker visualisiert. Diese werden anschließen in der Hololens relativ zum Welt Anker visualisiert.
\section{Kalibrierung} \section{Kalibrierung}
Die Kalibrierung erfolgt anhand des Welt Ankers und eins Vive Trackers. Die Kalibrierung erfolgt anhand des Welt Ankers und eins Vive Trackers.
Der Welt Anker orientiert sich an dem erkannten Boden sodass die y Achse senkrecht nach oben zeigt. Der Welt Anker orientiert sich an dem erkannten Boden sodass die y Achse senkrecht nach oben zeigt.
Um die beiden Welten zu synchronisieren wird ein Vive Tracker so platziert, das die beiden Koordinatensysteme übereinstimmen. Um die beiden Welten zu synchronisieren wird ein Vive Tracker so platziert, das die beiden Koordinatensysteme übereinstimmen (Siehe Abb. \ref{img:holokalib})
Hierfür wurde an dem Tracker ein 3D gedruckte Hilfe angebraucht um die aktuelle Rotation besser erkennen zu können.
Durch einen Tastenduck auf einen Controller wird die aktuelle Rotation und Position des Trackers in der Unreal Engine gespeichert. Durch einen Tastenduck auf einen Controller wird die aktuelle Rotation und Position des Trackers in der Unreal Engine gespeichert.
Mit dieser Transformation kann der Strahl der VR Umgebung in das lokale Koordinatensystem des Weltankers transformiert werden. Mit dieser Transformation kann der Strahl der VR Umgebung in das lokale Koordinatensystem des Weltankers transformiert werden.
\todo{Bilder übereinanderliegen. } \begin{figure}
\begin{center}
\label{img:holokalib}
\includegraphics[width=\textwidth]{Bilder/HoloLens/Kalib.jpg}
\caption{Mixed Reality Capture der Hololens. Zu sehen ist das Koordinatenkruz und der Vive Tracker. Am Tracker ist das 3D gedruckte Hilfe zu sehen. }
\end{center}
\end{figure}
Welt Anker
verscheiobbar im Debug Modus
Eine Achse Senkrecht zum Boden
Vive Trakcer an Postion und roatioon des Welt anker
speichern auf Knopfdruck der Transformation des Trakcer Oringins
Senden oper UDP
inverse Transofrmation origin
\subsection{Kalibrierungsfehler} \subsection{Kalibrierungsfehler}
Diese Art der Klibrierung ist einfach, aber an mehrerehn stellen Fehelranfällig mit der aktuellen Hardware.
Das erste Problem ist die menschliche Ungenauigkeit.
Den Tracker muss exakt an die richtige Postion mit der richtigen Rotation gelegt werden.
Dabei ist das Hologram direkt über dem Tracker, verdeckt diesen und erschwert damit das exakte Positionieren
Insbesondere die Rotation ist bei der Rotation ein Problem.
Eine kleiner Rotationsfehler wirkt sich weiter entfernt vom Ursprung stark auf die Kallibrierung aus.
Zum Beispiel bringt ein Fehler von 1\degree bei 2m Distanz eine Verschiebung von 3,4cm $(distance (rotate(1^{\circ}, (2,10)) (2,0))$.
\todo{check distance}
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.
Durch erneutes Ansehen der Ursprungsumgebung fängt sich dieser meistens wieder und wird zurück auf die Ursprüngliche Position gesetzt.
Aber es konnten sehr vereinzelnd Dauerhafte Verschiebungen beobachtet werden.
Im Extrafall waren ca.10cm nach unten zu beobachten.
Ein Weiterer Faktor sind die Ungenauigkeiten im Vive Tracking.
Insbesondere sind hierbei die Längen unterscheide zwischen Echtwelt und Virtueller Welt gewesen.
In dem verwendeten Setup wurde ein 2m Zollstock mit einem Vive Controller vermessen.
Dabei war die in VR gemessene Distanz 1,98m.
Dieser Fehler wirkt sich direkt auf das Zusammenspiel der Vive und Hololens aus.
Wird der Controller 2m vom Ursprung weg bewegt, dann bewegt sich der Beam nur um 1,98 in VR udn damit AR und entfernt sich damit von seiner eigentlichen Position.
In der Implementierung wurde das versucht auszugleichen indem alle Werte die per UDP versendet werden mit dem Faktor 1,025 skaliert wurden.
Der Wert wurde experimentell bestimmt.
Vershciebung
\todo{Bidler}
Ungenauigkeitne Vive
Ungenauigkeiten Holoens
Unterscheide in Längen
Faktor 1,025
vlt Biler / viodeo mehrfaches knopf drücken ungenauigkeiten
\section{Ergebnisse} \section{Ergebnisse}
Bilder aus Hioloens perspektive Bilder aus Hioloens perspektive
Funktioniert gut wenn nach am gemeinsamen Punkt Funktioniert gut wenn nach am gemeinsamen Punkt
\section{Verbesserungen}
hier oder Ausblick
Marker auf trakcer kleben (kein menschlicher Fehler)
Merher Tracker und damit gesyncte Längen
\subsection{Versicehben der VR Umgebung}
vlt besser im Scenario der Evaluation
\ No newline at end of file
...@@ -4,8 +4,12 @@ ...@@ -4,8 +4,12 @@
Zukunftstechnologie aber aktuelle Consumer HArdware noch zu schelcht Zukunftstechnologie aber aktuelle Consumer HArdware noch zu schelcht
Verbesserung des Lighthouse Trackings Verbesserung des Lighthouse Trackings
Kienct mit integrierten Vive tracking Kienct mit integrierten Vive tracking
verbidne mit aktuellen verfahren,-> datena als ausgangsbasis
Hololens ist eigtlich awesome, aber zu schwer zu kleines FOV Hololens ist eigtlich awesome, aber zu schwer zu kleines FOV
generiertes Mehs besser als Punktwolke+ generiertes Mehs besser als Punktwolke+
Kalibrierung Hololens vive
tracker mit Markern
multiple tracker (dsitanzproblem
...@@ -93,3 +93,16 @@ ...@@ -93,3 +93,16 @@
note = {Accessed: 2017-11-02} note = {Accessed: 2017-11-02}
} }
@misc{UWP,
title = {Unreal Engien UWP Fork von Microsoft.},
howpublished = {\url{https://github.com/MICROSOFT-XBOX-ATG/MICROSOFT_UWP_UNREAL/tree/dev_MixedReality}},
note = {Accessed: 2017-11-02}
}
@misc{UE4Holo,
title = {Unreal Engien Hololens Template},
howpublished = {\url{https://github.com/ProteusVR/Hololens https://www.youtube.com/watch?v=KxvAm2qNJ0Q&feature=youtu.be}},
note = {Accessed: 2017-11-02}
}
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