Virtuelle Realität
Interaktion, Evaluation und InstantIO
Dr. Thies Pfeiffer
Termin: Freitags, 10:15 Uhr
Raum: S2-121
Überblick
Inhalte der letzten Veranstaltung: Funktionale Modellierung
- Umsetzung von funktionalen Elementen in der Simulation
- Funktionale Modellierung in X3D
- Einführung in die wesentlichen Techniken der funktionalen
Modellierung
- Felder
- Routen
- Scripting in X3D
- Skriptknoten in JavaScript und Java
- Externe Anbindung
Überblick
Inhalte dieser Veranstaltung
- Basisinteraktionen
- Navigation
- Selektion
- Manipulation
- Interaktionsfähigkeit bewerten
- Anbinden von Geräten
- InstantIO: Anbindung von Geräten in X3D
Basisinteraktionen in der Virtuellen Realität
- Interaktionen mit dem Technik-Interface der VR Installationen
- ... sind nicht im Fokus unserer Betrachtung
- Interaktionen mit der dreidimensionalen Simulation (Welt)
Interaktion: Anforderungen
Interaktionen in der Virtuellen Realität sollen
- die Dreidimensionalität voll unterstützen,
- die Immersion bewahren oder gar fördern (auf jeden Fall nicht
zerstören),
- intuitiv zu bedienen sein,
- funktional sein
- und am besten nicht als Interaktionstechnik erkannt werden!
Interaktion: Freiheitsgrade
Freiheitsgrade
- Freiheitsgrad: Parameter eines Systems
- Menge der Freiheitsgrade beschreibt das System eindeutig
- Freiheitsgrade sind unabhängig voneinander
- Menge der Freiheitsgrade minimal
- mit weniger kann das System nicht beschrieben werden
- kann technisch als Koordinate verstanden werden
- Beispiele
- Massepunkt besitzt drei translatorische Freiheitsgrade (X/Y/Z)
- Körper besitzt zusätzlich drei rotatorische Freiheitsgrade (R/P/Y)
- Datenhandschuhe messen 18 bis 22 Freiheitsgrade (?)
- Datenhandschuhe messen 18 bis 22 Gelenkstellungen
- aber: nicht alle Gelenkstellungen unabhängig
- daher: weniger tatsächliche Freiheitsgrade
Interaktion: Navigation
Navigation
- Ziel: Position (und damit Perspektive) in der virtuellen Welt ändern
- auch: Travelling, Orientierung und Fortbewegung
- Fragen
- Erfolgt Navigation physisch oder rein virtuell?
- Bewegt sich der Körper mit, oder nicht?
- Wie wird eine Bewegung ausgelöst?
- Wie wird die Bewegung der Interaktion auf die Bewegung in der virtuellen Welt abgebildet?
Interaktion: Selektion
Selektion
- Ziel: Objekt als Ziel der Interaktion dem System bekannt machen
- auch: Auswahl oder Picking
- Fragen
- Wie wird gezielt? (Aiming)
- Wie wird Selektion ausgelöst? (Trigger)
Interaktion: Manipulation
Manipulation
- Ziele:
- Auslösen von Aktionen/Reaktionen in der Welt
- Greifen von Objekten
- Verschieben/Drehen von Objekten
- Kombinieren von Objekten
- Fragen
- Wie wird die Manipulation ausgewählt?
- Welche Modifikationen an der virtuellen Realität sollen vorgenommen werden können? (Rotation, Translation, komplexe Änderungen, ...)
- Wie werden die Freiheitsgrade der Interaktion auf die Modifikationen abgebildet?
Interaktionsfähigkeit bewerten
Evaluation
Warum Evaluieren?
- Anforderungen der Benutzer aus der Interaktion heraus identifizieren
- Benutzerprobleme identifizieren
- Probleme quantifizieren ($\to$ gezielte Anpassung)
- Design Richtlinien entwerfen
- Performanz-Modelle entwickeln um Voraussagen über Leistung/Nutzen treffen zu können
Evaluation: Methoden
Methoden
- Aufgabenanalyse (User Task Analysis)
- Szenarien entwickeln (Komposition von Aufgaben)
- Personas entwickeln (Nutzer mit best. Anforderungen und Hintergrund)
- Taxonomie entwickeln
- Prototypen testen
Evaluation: Typen
Evaluationstypen
- Expertenreview (Heuristic Evaluation)
- Fragebögen
- Interviews
- Cognitive Walkthrough
- Benutzertests (Formative Evaluation)
- Vergleichsstudien (Vorher/Nachher, A-B Test)
Evaluation: Interaktion messen
Messen/Bewerten der Interaktion
- Eigenschaften des Systems (Wiederholrate, Latenz, techn. Schwierigkeiten, Last, Wärmeentwicklung, Geräuschentwicklung, ...)
- Aufgabenbezogene Eigenschaften (Bearbeitungszeit, Durchführbarkeit, Fehlerrate, Genauigkeit, ...)
- User Experience (Einfachheit der Bedienung, Transparenz der Schnittstelle, Affordanz, Erlernbarkeit, Zufriedenheit, Präsenz, Simulationskrankheit, ...)
Evaluation: Herausforderungen
Spezielle Herausforderungen
- Interaktion in nicht-natürlicher Umgebung kann zu extremen Reaktionen führen, da unter Umständen wenig vertraut. Besondere Sorgfaltspflicht gegenüber den Testpersonen
- Inhalte können auf Grund der Perspektive unter Umständen nicht von Testperson und Untersuchungsleiter gleichzeitig wahrgenommen werden
- Komplexe Interaktionen generell schwer zu beurteilen, da viele Pfade zum Ziel existieren
- Vermittlung von Präsenz steht im Gegensatz zum Untersuchungscharakter (beobachtet fühlen, Interventionen)
- Forschungs-Hardware wird eingesetzt und keine Konsumer-Hardware, d.h. die Geräte sind noch nicht sehr robust
- Andersartigkeit der Virtuellen Realität kann Effekt des Gesamtkonzepts überschatten, Staunen über die Möglichkeiten
Anbinden von Geräten
Merkmale von Geräten
- verfolgt oder nicht-verfolgt ("getrackt")
- d.h. solche mit eigener Position/Orientierung im Raum und
solche ohne
- man spricht auch von Tracking-Technologie
- einhändig, beidhändig oder anderweitig bedienbar
- Anzahl der unterstützen Freiheitsgrade
- Eignung für Einsatzgebiete, z.B. Desktop, HMD oder CAVE
Geräte: Maus
Die Maus
- Eigenschaften
- nicht-verfolgtes Gerät (in der Regel)
- einhändig bedienbar
- 2 Freiheitsgrade
- 2+ Aktionsknöpfe
- 0+ Regler (Mausrad $\to$ evtl. weiterer Freiheitsgrad)
- Eignung: Desktop
- Beurteilung
- vertraut
- eingeschränkt auf Desktop (Oberfläche)
- geringe Menge an Freiheitsgraden

Mouse
Geräte: Joystick
Der Joystick
- Eigenschaften
- nicht-verfolgtes Gerät (in der Regel)
- einhändig oder beidhändig bedienbar
- 2+ Freiheitsgrade
- 1+ Aktionsknöpfe
- 0+ Achsen-Kontroller ($\to$ mehr Freiheitsgrade)
- Eignung: Desktop
- Beurteilung
- vertraut
- eingeschränkt auf Desktop
- kontinuierliche Bewegung möglich
- schlechter Isomorphismus

Joystick
Geräte: Space Mouse
Die Space Mouse
- Eigenschaften
- nicht-verfolgtes Gerät
- einhändig bedienbar
- 6 Freiheitsgrade
- 0+ Aktionsknöpfe
- Eignung: Desktop
- Beurteilung
- viele Freiheitsgrade
- schlechter Isomorphismus
- steile Lernkurve
- eingeschränkt auf Desktop
- kontinuierliche Bewegung möglich

SpaceNavigator
Geräte: Stylus
Der Stylus
- Eigenschaften
- verfolgtes Gerät
- einhändig bedienbar
- 6 Freiheitsgrade
- 1+ Aktionsknöpfe
- Eignung: HMD, CAVE
- Beurteilung
- gut für das Zeigen/Zeichnen
- mobiler Einsatz
- ein Knopf reicht oft nicht aus

Stylus
Geräte: 3D Ball
Der 3D-Ball
- Beispiel eines experimentellen Gerätes
- Eigenschaften
- verfolgtes Gerät
- einhändig bedienbar
- 6 Freiheitsgrade
- 1 Aktionsknöpfe
- Eignung: HMD, CAVE
- Beurteilung
- gut für Rotationen (Kabel leicht störend)
- mobiler Einsatz
- ein Knopf reicht oft nicht aus

3D Ball
Geräte: Fakespace Wanda
Das Fakespace Wanda
- Spezialgerät für die VR
- Eigenschaften
- verfolgtes Gerät
- einhändig bedienbar
- 6 Freiheitsgrade (tracking) + 2 Freiheitsgrade über
Joystick
- 3 Aktionsknöpfe
- Eignung: HMD, CAVE
- Beurteilung
- 3D Mausersatz
- mobiler Einsatz

Fakespace Wanda
Geräte: WiiMod
Die WiiMod (aka Wii-Remote)
- Eigenschaften
- verfolgtes Gerät
- einhändig bedienbar
- 6 Freiheitsgrade (tracking)
- 2 Freiheitsgrade über Steuerkreuz
- 2 FG Beschleunigungssensor
- 8 Aktionsknöpfe
- Rumble und Audio Feedback
- Eignung: HMD, CAVE
- Beurteilung
- 3D Mausersatz
- mobiler Einsatz
- vielfältige Eingabemöglichkeiten
- leichte Überforderung

WiiMod
Geräte: Datenhandschuhe
Die Datenhandschuhe
- Eigenschaften
- verfolgtes Gerät
- einhändig oder beidhändig bedienbar
- 6 Freiheitsgrade (tracking)
- x Freiheitsgrade Gelenkwinkel (z.B: 18 oder 22)
- Eignung: HMD, CAVE
- Beurteilung
- Natürliche Interaktion
- viele Freiheitsgrade
- fehlende Aktionsknöpfe erfordern aufwändigeres Interaktionskonzept
(sonst z.B. Midas-Touch Problem)

CyberGloves
Geräte: Datenhandschuhe mit taktilem Feedback
Taktile Datenhandschuhe
- Eigenschaften
- verfolgtes Gerät
- einhändig oder beidhändig bedienbar
- 6 Freiheitsgrade (tracking)
- x Freiheitsgrade der Gelenkwinkel für 3 oder 5 Finger
- absolute Positionen der Fingerspitzen
- Eignung: HMD, CAVE
- Beurteilung
- Natürliche Interaktion
- viele Freiheitsgrade
- durch taktiles Feedback weniger visuelle Kontrolle
- fehlende Aktionsknöpfe erfordern aufwändigeres Interaktionskonzept
(sonst z.B. Midas-Touch Problem)

AR-Tracking GmbH: Fingertracking mit taktilem Feedback
Geräte: Blickbewegungsmessung
Blickbewegungsmessung
- Eigenschaften
- verfolgtes Gerät
- einäugig oder beidäugig bedienbar
- 6 Freiheitsgrade (tracking)
- 2x2 Freiheitsgrade Blickposition auf 2D Ebene
- keine Aktionsknöpfe
- Eignung: HMD, CAVE
- Beurteilung
- Natürliche Interaktion
- viele Freiheitsgrade
- fehlende Aktionsknöpfe erfordern aufwändigeres Interaktionskonzept
(sonst z.B. Midas-Touch Problem)

Eyetracker von Arrington Research, erweitert um optisches
Tracking der AR-Tracking GmbH, inkl. polarisierten Filtern
für die stereoskopische 3D Projektion
InstantIO: Anbindung von Geräten in X3D
InstantIO: Anbindung von Geräten in X3D
X3D und Geräte
- X3D als Standard für interaktive 3D Grafik im WWW gedacht
- Fokus der Interaktion auf Maus/Tastatur
- Daher keine explizite Repräsentation der Geräte
InstantReality/InstantIO
- InstantReality ist ein X3D Browser für Virtual und Augmented
Reality
- Essentiell ist dabei die Erweiterung des X3D Standards um die
Unterstützung von Geräten
- Eigenes Framework zum leichtgewichtigen Anbinden von Geräten:
InstantIO
InstantIO: Basics
InstantIO Basics
- InstantIO nutzt mehrere Komponenten
- X3D: InstantIO Kindknoten zur Spezifikation der Geräte
- InstantIOServer: Externer Prozess oder embedded in den X3D
Browser

Anbindung von InstantIO an den X3D Browser
InstantIO: Basics
InstantIOServer
- mehrere InstantIOServer parallel
- z.B. einen pro System mit angeschlossenen Geräten
- mehrere Geräte pro InstantIOServer
- InstantIOServer stellt verteilten Namensraum zur Verfügung
- Kontrolle über Web-Interface möglich

Anbindung von InstantIO an den X3D Browser
InstantIO: Spezifikation der Geräte in X3D
InstantIO - Spezifikation der Geräte in X3D
- ähnlich den Skripten (siehe Termin 05)
<IOSensor DEF="mySensor" type="SomeSensor" />
<field accessType="outputOnly" name="A" type="SFBool" />
<field accessType="inputOnly" name="B" type="SFBool" />
</IOSensor>
<ROUTE fromField="A" fromNode="mySensor" toField="Ain" toNode="someNode"/>
- Als type muss der Gerätetyp angegeben werden
- kinect/NI, ART, Fasttrak, ISense, CyberMouse, Joystick, MidiIn, MidiOut, Mouse, MRI, Space Mouse,TUIO, Vicon, Wii
InstantIO: Felder und Namensräume
InstantIO - Felder und Namensräume
- Geräte-Daten werden in typisierten Feldern bereit gestellt
- entspricht in etwa den Feldern die wir bei Skripten kennen gelernt haben (Termin 05)
- Felder können in Namensräumen organisiert werden:
- ARTpro/Position 0
- ARTpro/Orientation 0
- ARTpro/Position 1
- ...
- Das Gerät ARTpro gibt in diesem Fall den Namensraum vor, Position und Orientation sind Datenfelder
InstantIO: Netzwerktransparenz
InstantIO - Netzwerktransparenz
- mehrere InstantIOServer können sich transparent über Multicast verbinden (alternativ explizite UDP-Verbindung möglich)
- Netzwerk-Anbindung als eigener Gerätetyp implementiert
- kann interne Namensräume/Felder eines InstantIOServers verteilen bzw.
- externe Namensräume/Felder empfangen und intern bekannt machen
- Felder gleichen Typs im gleichen Namespace werden automatisch verbunden
- Schreibt man in InstantIOServer A in das Feld B/C und sind InstantIOServer A und D miteinander verbunden und das Feld C in Namensraum B wird verteilt, dann wird der neue Wert von B/C auch in D bekannt gemacht.
- Server A/B/C $\to$ Server D/B/C
InstantIO: Netzwerkgeräte in X3D importieren
InstantIO - Netzwerkgeräte in X3D importieren
<IOSensor DEF="net" type="Network">
<field accessType="outputOnly" name="Server/A" type="SFBool"/>
</IOSensor>
<ROUTE fromNode="net" fromField="Server/A" toNode="someNode" toField="Ain" />
- statt Server/A auch Wildcards möglich: */A
- so kann auch von Netzwerk-Topologie abstrahiert werden
InstantIO: Beispiele
InstantIO - Beispiele
Zusammenfassung
Zusammenfassung
Inhalte dieser Veranstaltung
- Basisinteraktionen
- Navigation
- Selektion
- Manipulation
- Interaktionsfähigkeit bewerten
- Anbinden von Geräten
- InstantIO: Anbindung von Geräten in X3D
Ausblick
Termin 07 - Interaktion: Navigation
- Vorstellung von Verfahren zur Navigation in der virtuellen
Welt