Tinka Vey

Light Artist

Virtual-Laser-Pointer

In Großindustrien werden im Design- und Konstruktionsprozess Videowände zum Anzeigen von 1:1 CAD-Modellen eingesetzt. Diese Wände haben oft eine Bespielte Fläche von mehreren Quadratmetern. Um einen bestimmten Bereich des Contents markieren zu können, wurden früher herkömmliche Laserpointer eingesetzt. Im Zeitalter von hochabsorbierenden Rückprojektionswänden und nicht reflektierenden LED-Wänden sind diese jedoch so gut wie unsichtbar. Daher muss der Marker digital in das Videosignal eingearbeitet werden.

Das für die Firma Viscon entwickelte System ‚Viscon Virtual-Laser-Pointer‘ kurz VLP ist mit bis zu sieben Nutzern Kollaborativ nutzbar. Die Videoquelle für hochaufgelöste Videowände besteht aus mehr als einem Rechner. Der VLP unterstützt daher Render-Cluster Rechensysteme.

Virtual-Laser-Pointer, ein gelber dreieckiger Marker als VRED Overlay.

Eingabesystem

Die erste Herausforderung in dem Projekt war es, Handgehaltene Eingabegeräte mit integrieren IMU Sensor über Bluetooth mit dem VLP-Server zu verbinden. Zum Einsatz kommt ein Bluetooth 2.1 Empfänger der Leistungsklasse 2. Die Bluetooth Datenverarbeitung erfolgt mit Blue-Z, der offiziellen Protokoll Implementierung für Linux Systeme. Die ausgewählten Eingabegeräte werden zunächst mit dem Linux System verbunden. Die Datenannahme erfolgt fern ab vom vorgesehen HID Standard, da die Geräte diesen nicht befolgen. Über einen RAW Socket werden alle Pakete entgegengenommen und auf Byte ebene gefiltert. Blue-Z ist eine C Bibliothek, daher wurde dieser Part als extern C im Backend implementiert.

Das Backend verarbeitet die Eingabedaten in Echtzeit. Die Drehung der Hand wird mithilfe einer Rotation-Matrix, Hochfrequente eingaben mittels FFT herausgefiltert. Das gefilterte Signal wird einer Marker Grafik zugewiesen die sich dann, abhängig von der Eingabe über die Videowand bewegt.

Erzeugt wird die Grafik auf den entsprechenden Rechnern des Render-Clusters. Die wird eine Windows-Forms Anwendung ausgeführt, die mit OpenGL die Marker rendert oder die Fenster verschiebt.

Virtual-Laser-Pointer, Testaufbau mit zwei Laptops und einem Desktop PC.

Netzwerk Kommunikaton

Die Server Client Kommunikation erfolgt mit C++ UDP Sockets und JSON Datenpaketen. Der Server sendet über die Broadcast Adresse, an einem Spezifitäten Port den Datenstrom an die Clients. Die Clients horchen auf diesen Port. Der Datenstrom verrät den Clients die Server IP-Adresse. Der Client meldet sich mit allen angeschlossenen Displays beim Server an, der Server antwortet mit der Globalen Positionierung des Clients.
Nach der Anmeldung entscheidet jeder Client anhand seiner globalen Positionierung und der einzelnen Marker Koordinaten ob und wo ein Marker angezeigt werden soll.

Benutzeroberfläche

Jedes Eingabegerät und Clients lassen sich individuell konfigurieren. Das Frontend wird mit einem nginx im lokalem NAT gehostet und ist vom Web Browser bequem erreichbar. Die Kommunikation mit dem Backend Erfolg über ein im Backend implementierten Web socket und JSON Datenpacket. Es gibt zwei wesentliche Registerkarten.

Eingabegeräte

Um das Eingabeerlebnis anzupassen kann hier die Grafik, die Start Position, Geschwindigkeit und Größe der Marker angepasst werden. Damit sich die Verschiebung der Marker Grafik natürlich anfühlt muss je nach Größe des Videowand die Geschwindigkeit angepasst werden.

Client

Pixelgenau wird hier jedes Display realitätsgetreu und pixelgenau angeordnet. Lücken und Überlappungen sind erlaubt um größtmögliche Flexibilität zu gewährleisten.

Privacy Settings
We use cookies to enhance your experience while using our website. If you are using our Services via a browser you can restrict, block or remove cookies through your web browser settings. We also use content and scripts from third parties that may use tracking technologies. You can selectively provide your consent below to allow such third party embeds. For complete information about the cookies we use, data we collect and how we process them, please check our Privacy Policy
Youtube
Consent to display content from - Youtube
Vimeo
Consent to display content from - Vimeo
Google Maps
Consent to display content from - Google
Spotify
Consent to display content from - Spotify
Sound Cloud
Consent to display content from - Sound