Virtuelle Realität

Interaktion, Evaluation und InstantIO

Dr. Thies Pfeiffer

AG Wissensbasierte Systeme, Technische Fakultät, Universität Bielefeld

Termin: Freitags, 10:15 Uhr

Raum: T2-205

Ü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 genannt
  • 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
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
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
Space Navigator
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
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
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
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
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
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)
ART Fingertracking mit taktilem Feedback
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
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
InstantIO Anbindung
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
InstantIO Anbindung
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

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