Virtual Reality mit freier Software =================================== Mit Oculus Rift, HTC/Valve Vive, und Sony PlayStation VR ist 2016 die erste Generation VR-Brillen mit Outside-In-Positionsbestimmung und 3D-Controllern in großer Stückzahl auf den Markt gekommen, im Dezember 2017 gefolgt von den sogenannten "Mixed Reality" VR-Brillen für Windows mit Inside-Out- Positionsbestimmung. Alle vier Systeme lassen sich prinzipiell unter Linux betreiben [1]. Nur eines hat (Stand Januar 2018) semi-offizielle Unterstützung dafür [2]. In diesem Vortrag soll es neben der Erläuterung der Funktionsweise der unterschiedlichen Systeme zum Positions-Tracking um die Bestrebungen der Communities gehen, die versuchen, diese Geräte komplett mit freier Software zu betreiben. Darunter ist zu verstehen, dass auf dem Linux-Host-Rechner keine proprietäre Software zum Einsatz kommt. Die Firmware der beteiligten Hardwarekomponenten wird nicht modifiziert. In ihrer Funktionsweise ähneln sich die VR-Brillen der aktuellen Generation stark: Aus Sicht des PCs bestehen sie im Wesentlichen aus einem HDMI-Display zur Anzeige und einem USB-Eingabegerät zur Kontrolle und zum Auslesen der Sensordaten. Zum Tracking befindet sich in jedem Headset ein Inertialsensor (Inertial Motion Unit) mit 3-Achsen-Beschleunigungssensor und -Gyroskop sowie bei den Outside-In Trackern eine Anzahl genau vermessener Referenzpunkte, in Form von Photodioden (Vive), Infrarot-Leuchtdioden (Rift) oder Leuchtflächen (PSVR), die von extern positionierten USB-Kameras gesehen (Rift, PSVR) oder von aufgeweiteten rotierenden Laserstrahlen beleuchtet werden (Vive). Die aufgenommenen Sensordaten werden zum PC übertragen, wo sie per Sensorfusion integriert werden. So werden Position und Ausrichtung der Brille relativ zu Kameras bzw. Laser-Basisstationen mit hoher Präzision ermittelt. Dies soll mit vortragsbegleitender Demonstration anschaulich erklärt werden. Die Inside-Out Tracker (Windows Mixed Reality) verfügen neben dem IMU über zwei Weitwinkel-Kameras im Headset, aus deren Bild auf dem PC über zuvor aufgezeichnete visuelle Merkmale die Position im Raum bestimmt wird. Ist die genaue Position der Brille schließlich bekannt, kann mit Kenntnis der Geometrie von Displays und Linsen eine passende 3D-Szene gerendert und per HDMI angezeigt werden, die dem Träger einen Eindruck von Präsenz in der virtuellen Szene vermittelt. Die Open Source Projekte [3-9], die sich diesen Aufgaben angenommen haben, befinden sich noch in unterschiedlichen Stadien der Vollendung. Da unfertige Software vorgestellt wird, soll es in diesem Teil sowohl einen Überblick über die erreichten und noch nicht erreichten Funktionalitäten geben, als auch einen Einblick in die „Reverse-Engineering“ Aktivitäten, die zwischen dem ersten Einstecken der unbekannten USB-Geräte und dem der Bewegung folgenden gerenderten 3D-Bild liegen. [1] Die PlayStation 4 Kamera hat einen proprietären USB 3.0-Stecker. [2] Vive Linux-Unterstützung über das nicht quelloffene SteamVR in Beta: https://github.com/ValveSoftware/SteamVR-for-Linux [3] OpenHMD: https://www.openhmd.net [4] OSVR: https://www.osvr.org [4] OSVR-Vive-Libre: https://github.com/collabora/OSVR-Vive-Libre [5] libsurvive: https://www.github.com/cnlohr/libsurvive [7] ouvrt: https://www.github.com/pH5/ouvrt [8] PSMoveService: https://github.com/cboulay/PSMoveService [9] Diese Projekte sind eine Auswahl.