Projektgruppe Virtual Reality

Transcription

Projektgruppe Virtual Reality
Abschlussbericht
Erstellt von:
Studienbereich:
Betreuer:
Matthias Bruns, Justin Heinermann,
Christian Herz, Tim Jörgen,
Jendrik Poloczek, Robert Schadek
Informatik
Prof. Dr. Wolfgang Kowalk,
Dipl.-Inf. Stefan Brunhorn
©2012. Dieses Werk einschließlich seiner Teile ist urheberrechtlich geschützt. Jede Verwertung
außerhalb der engen Grenzen des Urheberrechtgesetzes ist ohne Zustimmung des Autors unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen
sowie die Einspeicherung und Verarbeitung in elektronischen Systemen.
Projektgruppe
Virtual Reality
Inhaltsverzeichnis
Inhaltsverzeichnis
Abbildungsverzeichnis
V
1. Einführung
1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Voraussetzungen und Grundlagen zum Verständnis der Arbeit . . .
1
1
2
2
2. Projektorganisation und Vorgehen
2.1. Gruppenarbeit und Aufgabenteilung . . . . . . . . . . . . . . . . .
2.2. Vorgehensmodell und Zeitplanung . . . . . . . . . . . . . . . . . . .
3
3
4
3. Anforderungsanalyse
3.1. Einführung . . . . . . . . . . . . . . . .
3.2. Zielbeschreibung . . . . . . . . . . . . .
3.3. Anforderungen Middleware . . . . . . . .
3.3.1. Funktionale Anforderungen . . .
3.3.2. Nichtfunktionale Anforderungen .
3.4. Anforderungen Beispielanwendung . . . .
3.4.1. Funktionale Anforderungen . . .
3.4.2. Nichtfunktionale Anforderungen .
3.5. Vorhandene Systeme . . . . . . . . . . .
3.6. Technische Umgebung . . . . . . . . . .
3.7. Anwendungsfallmodell . . . . . . . . . .
3.7.1. Akteure . . . . . . . . . . . . . .
3.7.2. Anwendungsfälle des Assistenten
3.7.2.1. Anwendung starten . . .
3.7.3. Anwendungsfälle des Nutzers . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
10
10
11
12
12
12
13
13
14
14
15
15
16
I
Projektgruppe
Virtual Reality
Inhaltsverzeichnis
3.7.3.1. Skeletterkennung kalibrieren . . . . . . .
3.7.3.2. Kopflage kalibrieren . . . . . . . . . . .
3.7.3.3. Kameraposition und -Rotation anpassen
3.7.3.4. Geste durchführen . . . . . . . . . . . .
3.7.3.5. Pose einnehmen . . . . . . . . . . . . . .
3.7.3.6. Gegenstand berühren . . . . . . . . . . .
3.7.3.7. Skelett bewegen . . . . . . . . . . . . . .
3.7.4. Anwendungsfälle des Middleware-Nutzers . . . . .
3.8. Dynamisches Modell . . . . . . . . . . . . . . . . . . . .
3.8.1. Sequenzdiagramme des Assistenten . . . . . . . .
3.8.1.1. Skeletterkennung kalibrieren . . . . . . .
3.9. Objektmodell . . . . . . . . . . . . . . . . . . . . . . . .
4. Systementwurf
4.1. Entwurfsziele . . . . . . . . . . . . .
4.2. Systemzerlegung . . . . . . . . . . .
4.3. Globaler Kontrollfluss . . . . . . . . .
4.4. Datenhaltung . . . . . . . . . . . . .
4.5. Hard- und Softwareplattform . . . . .
4.5.1. Wahl der Programmiersprache
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Implementierung
5.1. Meilensteine der Implementierung . . . . . . . . . . . . . . . . . .
5.1.1. Erster Meilenstein (30.09.2011) . . . . . . . . . . . . . . .
5.1.2. Zweiter Meilenstein (01.11.2011) . . . . . . . . . . . . . . .
5.1.3. Dritter Meilenstein (06.12.2011) . . . . . . . . . . . . . . .
5.2. Implementierung der einzelnen Systemkomponenten . . . . . . . .
5.2.1. Erster Meilenstein . . . . . . . . . . . . . . . . . . . . . .
5.2.1.1. Head-Mounted-Display . . . . . . . . . . . . . . .
5.2.1.2. Darstellung der Kinect-Skelett-Daten durch eine
Figur in der Engine . . . . . . . . . . . . . . . . .
5.2.1.3. Build-Skript . . . . . . . . . . . . . . . . . . . . .
5.2.2. Zweiter Meilenstein . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
17
18
18
19
19
20
20
21
22
22
23
27
.
.
.
.
.
.
29
29
31
33
33
34
34
.
.
.
.
.
.
.
36
36
36
36
37
37
37
37
. 40
. 42
. 43
II
Projektgruppe
Virtual Reality
Inhaltsverzeichnis
5.2.2.1. Szenenverwaltung . . . . . . . . . . . . . . . .
5.2.2.2. Sound-Subsystem . . . . . . . . . . . . . . . .
5.2.2.3. Stereoskopische Ansicht (stereoPlugin) . . . .
5.2.2.4. Posen . . . . . . . . . . . . . . . . . . . . . .
5.2.3. Dritter Meilenstein . . . . . . . . . . . . . . . . . . . .
5.2.3.1. Exceptions . . . . . . . . . . . . . . . . . . .
5.2.3.2. Gestenerkennung . . . . . . . . . . . . . . . .
5.2.3.3. Linuxtreiber der Vuzix-Brille . . . . . . . . .
5.2.3.4. Bereiststellung des Zustandes der Middleware
5.2.3.5. Licht und Schatten . . . . . . . . . . . . . . .
5.2.3.6. Spiegel und Fernseher . . . . . . . . . . . . .
5.2.3.7. Modifizierter Oger . . . . . . . . . . . . . . .
5.2.3.8. Scripting . . . . . . . . . . . . . . . . . . . .
5.2.3.9. Kollision . . . . . . . . . . . . . . . . . . . . .
6. Testen
6.1. C++ Unittest-Frameworks
6.2. TestDog . . . . . . . . . .
6.3. Ziele und Vorgehensweise .
6.4. Code-Review . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7. Evaluation
7.1. Formulierung von Thesen . . . . . . . . . . . . . . . . . . . . . . .
7.1.1. Erläuterung der Thesen . . . . . . . . . . . . . . . . . . .
7.1.1.1. Die Bedienbarkeit des Systems (Hypothese 1) . .
7.1.1.2. Grad der Immersion bei Nutzung des gesamten Systems (Hypothese 2) . . . . . . . . . . . . . . . .
7.1.1.3. Vorteil durch Bewegungssteuerung (Hypothese 3)
7.1.1.4. Präsenzempfinden durch das HMD (Hypothese 4)
7.2. Vorbereitung der Evaluation . . . . . . . . . . . . . . . . . . . . .
7.2.1. Der Fragebogen zum Messen der Immersion . . . . . . . .
7.3. Die virtuelle Umgebung . . . . . . . . . . . . . . . . . . . . . . .
7.4. Durchführung der Evaluation . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
44
45
46
47
47
48
48
51
52
53
54
54
55
.
.
.
.
57
57
58
58
59
62
. 62
. 62
. 62
.
.
.
.
.
.
.
63
63
64
64
64
65
67
III
Projektgruppe
Virtual Reality
Inhaltsverzeichnis
7.5. Ergebnisse der Evaluation . . . . . . . . . . . . . . . .
7.5.1. Qualitative Auswertung . . . . . . . . . . . . .
7.5.2. Mathematische Auswertung . . . . . . . . . . .
7.5.2.1. Immersionsgrad der Versuchsaufbauten
7.5.2.2. Bewegung in der virtuellen Welt . . .
7.5.2.3. Präsenzempfinden . . . . . . . . . . .
7.5.2.4. Geräusche in der virtuellen Welt . . .
7.5.2.5. Vergleich zur realen Welt . . . . . . .
7.6. Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8. Persönliche Fazite
8.1. Persönliches Fazit
8.2. Persönliches Fazit
8.3. Persönliches Fazit
8.4. Persönliches Fazit
8.5. Persönliches Fazit
8.6. Persönliches Fazit
von
von
von
von
von
von
Robert Schadek . .
Christian Herz . . .
Jendrik Poloczek . .
Matthias Bruns . .
Justin Heinermann
Tim Jörgen . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
70
71
73
74
78
79
80
.
.
.
.
.
.
82
82
82
83
84
85
86
9. Fazit und Ausblick
87
Literaturverzeichnis
89
A. Anhang
A.1. Schnittstellenfunktionen . . . . . .
A.1.1. registerPose, registerGesture
A.2. Installation . . . . . . . . . . . . .
A.2.1. Windows . . . . . . . . . . .
A.2.2. Unix . . . . . . . . . . . . .
A.3. Fragebogen . . . . . . . . . . . . .
A.4. Erhobene Daten der Fragebögen . .
A.5. Probandeninformation . . . . . . .
A.6. Einwilligungserklärung . . . . . . .
A.7. Seminararbeiten . . . . . . . . . . .
i
i
ii
ii
iii
iv
v
viii
xii
xiv
xv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
IV
Projektgruppe
Virtual Reality
Abbildungsverzeichnis
Abbildungsverzeichnis
2.1. Vorgehensmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1. Kinect (Quelle: Microsoft) . . . . . . . . . . . .
3.2. Vuzix Wrap 920 VR (Quelle: Vuzix) . . . . . . .
3.3. Anwendungsfalldiagramm des Nutzers . . . . .
3.4. Sequenzdiagramm: Welt laden . . . . . . . . . .
3.5. Sequenzdiagramm: Skeletterkennung kalibrieren
3.6. Sequenzdiagramm: Skelett bewegen . . . . . . .
3.7. Sequenzdiagramm: Pose Einnehmen . . . . . . .
3.8. Sequenzdiagramm: Geste durchführen . . . . . .
3.9. Sequenzdiagramm: Gegenstand berühren . . . .
3.10. Squenzdiagramm: Kameraposition und -rotation
3.11. Sequenzdiagramm: Kopflage kalibrieren . . . . .
3.12. Klassendiagramm . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
anpassen
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
8
9
16
22
23
23
24
24
25
25
26
28
4.1. Systemzerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2. Hard- und Softwareplattform . . . . . . . . . . . . . . . . . . . . . . 34
5.1.
5.2.
5.3.
5.4.
Lagesensorparameter . . . . . . . . . . . . . . . . .
Darstellung der Skelettdaten in Ogre3d . . . . . . .
Zustandsdiagramm der Middleware . . . . . . . . .
links: Oger von Ogre 3D, rechts: modifizierter Oger
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
40
42
51
54
7.1.
7.2.
7.3.
7.4.
Spiegel, Sideboard und Plattenspieler
Fernseher und Eingangstür . . . . . .
Couch und Fensterfront . . . . . . . .
Ein Proband nutzt das VR-System .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
66
66
67
68
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
V
Projektgruppe
Virtual Reality
Abbildungsverzeichnis
7.5. Ein Proband füllt den Fragebogen aus . . . . . . . . . . . . . . . .
7.6. Boxplots - alle Versuchsaufbauten . . . . . . . . . . . . . . . . . . .
7.7. Boxplots - Bewegung im Raum mit und ohne Kinect . . . . . . . .
7.8. Boxplots - Bewegung im Raum mit und ohne Videobrille . . . . . .
7.9. Boxplots - Präsenzempfinden mit und ohne Videobrille . . . . . . .
7.10. Boxplots - Präsenzempfinden mit und ohne Kinect . . . . . . . . . .
7.11. Boxplots - Versetzung in die virtuelle Welt mit und ohne Videobrille
7.12. Boxplots - Versetzung in die virtuelle Welt mit und ohne Kinect . .
7.13. Boxplots - Geräusche lokalisieren mit und ohne Videobrille . . . . .
7.14. Boxplots - Natürlichkeit der virtuelle Welt mit Kinect/HMD und
ohne Kinect/HMD . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
72
73
74
75
76
77
78
79
80
A.1. Abhängigkeiten Middleware/Frontend . . . . . . . . . . . . . . . . .
ii
VI
Projektgruppe
Virtual Reality
1. Einführung
1. Einführung
Die Projektgruppe „Virtual Reality“ der Universität Oldenburg hatte die Aufgabe
ein System zu entwickeln, welches Nutzern die Möglichkeit gibt, in virtuelle Welten einzutauchen. Die PG bestand aus sechs Studenten und wurde betreut von
Prof. Dr. Wolfgang Kowalk und Dipl.-Inf. Stefan Brunhorn. Das Projekt startete
im April 2011 und endete im März 2012. Realisiert wurde das VR-System durch
die Kombination von Bewegungserfassung über eine Microsoft Kinect mit einer
Videobrille der Firma Vuzix. Zu diesem Zweck haben wir eine Middleware implementiert, die die Signale der genannten Hardware verarbeitet und als Schnittstelle
zu einer grafischen Anwendung fungiert. Die virtuelle Szene haben wir mit Blender modelliert und verwenden die Grafik-Engine Ogre3D. Unser Hauptziel bei der
Entwicklung war ein möglichst hoher Immersionsgrad des VR-System, der sich von
klassischen Desktop-PC´s deutlich abhebt. Um unsere Zielerfüllung zu überprüfen,
haben wir das System am Ende des Projekts umfangreich evaluiert.
1.1. Motivation
Virtuelle Realitäten haben in den letzten Jahrzehnten Einzug in viele verschiedene
Branchen gehalten. Neben der Unterhaltungsindustrie zählen hierzu auch Medizin,
Militär und Ingenieurswesen. Da die Preise der benötigten Hardwarekomponenten
in den letzten Jahren deutlich gefallen sind, ist der Einsatz von VR auch bei
Heimanwendern möglich. Unser Streben nach einer kostengünstigen Lösung für ein
immersives VR-System und die Entwicklung einer Middleware, die als Grundlage
anderer Projekte dient, sind unsere Motivation zur Durchführung des Projekts.
1
Projektgruppe
Virtual Reality
1. Einführung
1.2. Aufbau der Arbeit
Kapitel 2 behandelt die Dokumentation der Projektorganisation. Kapitel 3 umfasst
die Anforderungsanalyse für das zu entwickelnde System. Diese wurde in Kapitel
4 in ein Systementwurfsmodell überführt. Kapitel 5 dokumentiert die Implementierung des Systems. Die verwendeten Testverfahren sind Gegenstand des Kapitels
6. Kapitel 7 behandelt die Evaluation des entwickelten Systems. Kapitel 8 beinhaltet persönliche Fazite aller Mitglieder und in Kapitel 9 wird abschließend das
Gesamtfazit und ein Ausblick präsentiert.
1.3. Voraussetzungen und Grundlagen zum
Verständnis der Arbeit
Grundlagenkenntnisse der Softwareentwicklung sind nötig um die in diesem Dokument beschriebenen Entwicklungsschritte nachvollziehen zu können. Für die Einarbeitung in die Thematik des Projektes und als Grundlage für diese Arbeit wurden
in der Seminarphase die folgenden Aspekte betrachtet:
Konfigurationsmanagement Tim Jörgen
Virtual Reality - Geschichte und Entwicklung Matthias Bruns
Virtual Reality und der Einsatz in der Praxis Justin Heinermann
Datenverarbeitung der Kinect Robert Schadek
Bildverarbeitung mit OpenCV Christian Herz
Präsenzempfinden in virtuellen Umgebungen Jendrik Poloczek
Auf diese Ausarbeitungen sei hier als Grundlage verwiesen. Alle Seminararbeiten
befinden sich im Anhang.
2
Projektgruppe
Virtual Reality
2. Projektorganisation und Vorgehen
2. Projektorganisation und Vorgehen
In diesem Kapitel wird die Planung des Projektes und das Vorgehensmodell beschrieben. Ziel der Veranstaltungsform „Projektgruppe“ ist die Umsetzung eines
Projektes und Realisierung eines Produktes wie in einem Unternehmen. Im Gegensatz zu einem Unternehmen, das in der freien Wirtschaft agiert und angestellte
Mitarbeiter hat, finden sich in einer universitären Projektgruppe Studierende zusammen, die gemeinsam mit einer Problemstellung konfrontiert werden und diese
innerhalb eines Jahres lösen müssen.
Im Fall der Projektgruppe Virtual Reality haben sich sechs Studierende zusammengefunden, die mit unterschiedlichen Voraussetzungen, aber ähnlichen Motivationen
ihre Zusammenarbeit selbstständig organisieren müssen. Im Folgenden werden die
Vorgehensweise und die Erfahrungen im Verlauf der Projektgruppe beschrieben.
Die Gruppenarbeit und die Aufgabenteilung werden in Abschnitt 2.1 dargestellt.
Ebenso zählen hierzu die Mittel, die wir zur Kommunikation in der Gruppe eingesetzt haben und das Konfigurationsmanagement. Das Vorgehensmodell und die
Zeitplanung werden in Abschnitt 2.2 vorgestellt.
2.1. Gruppenarbeit und Aufgabenteilung
Zur Organisation der Gruppenarbeit wurde im ersten Treffen ein Projektleiter
bestimmt, der für die Organisation des Projektes verantwortlich war. Für die einzelnen Aufgaben bei der Entwicklung des Systems waren meist zwei Personen als
Kleingruppe verantwortlich, sodass eine hohe Qualität und eine gleichmäßige Arbeitsteilung gewährleistet werden konnten.
3
Projektgruppe
Virtual Reality
2. Projektorganisation und Vorgehen
Zur Kommunikation innerhalb der Gruppe wurde, wie für Projektgruppen typisch,
ein Mailverteiler eingesetzt. Darüber hinaus kam das Projektmanagement-Tool
Redmine 1 zum Einsatz. Dieses bietet ein Ticket-Tracking-System, bei dem jedem
Projektmitglied Aufgaben (Tickets) zugewiesen werden können. Mit dem TicketTracking-System kann für das gesamte Projekt oder für Unterprojekt der Fortschritt in einem Gantt-Diagramm angezeigt werden: So wird visualisiert, ob die
gesetzten Fristen eingehalten werden. Darüber hinaus bietet Redmine ein Wiki
an, das unkompliziert für organisatorische Aspekte wie Protokolle, Tagesordnungen und Notizen verwendet wurde.
Um eine komfortable Zusammenarbeit zu gewährleisten, wurde die Versionsverwaltung git 2 verwendet. Diese bietet eine dezentrale Versionskontrolle und erleichtert
die Arbeit am Projekt von unterschiedlichen Rechnern und Orten.
2.2. Vorgehensmodell und Zeitplanung
Während der Seminarphase wurden die Projektziele detailliert ausgearbeitet. Das
weitere Vorgehen, dargestellt in Abb. 2.1, wurde in den folgenden Phasen durchgeführt: In der Anforderungsanalyse (Kapitel 3), deren Datum zur Fertigstellung auf
den 21.06.2011 festgelegt wurde, wurden die Zielsetzung und die genauen Anforderungen aufgestellt. Das dabei erstellte Modell wurde im Systementwurf (Kapitel 4)
verfeinert und die konkrete Umsetzung des Systems geplant. Die Frist hierfür war
der 19.07.2011. Anschließend wurde in vier Schritten das System implementiert
(genauer beschrieben in Kapitel 5):
Meilenstein 1 (Frist: 30.09.2011) Grundgerüst und grundsätzliche Nutzung der
Hardware
Meilenstein 2 (Frist: 01.11.2011) Verbesserung der Bedienung und vollständige Nutzung der Hardware
1
2
http://www.redmine.org/
http://gitscm.org
4
Projektgruppe
Virtual Reality
2. Projektorganisation und Vorgehen
Meilenstein 3 (Frist: 06.12.2011) Vollständige Umsetzung der Anforderungen
und Anwendungsfälle, komfortable Bedienung
Umfangreiche Beispielanwendung Erschaffen einer komplexen virtuellen Welt
zur Demonstration der Features
(Anschließend soll das System in einer Evaluation mit Versuchspersonen getestet
werden.)
Anforderungsanalyse
Systementwurf
Implementierung MS1: Grundfunktionen
Implementierung MS2: Erweiterte Funktionen
Implementierung MS3: Alle Anwendungsfälle
Umfangreiche Anwendung
Evaluation
Abbildung 2.1.: Vorgehensmodell
5
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3. Anforderungsanalyse
3.1. Einführung
Ziel der Anforderungsanalyse ist das Ermitteln der genauen Anforderungen an das
System. Diese Analyse ist das Fundament für die Software-Entwicklung. Die Anforderungen sollten daher möglichst vollständig, widerspruchsfrei und realisierbar
definiert werden. Fundamentale Fehler in der Anforderungsanalyse können auch im
weit fortgeschrittenen Entwicklungsprozess noch zum Scheitern komplexer Softwareprojekte führen.
3.2. Zielbeschreibung
Im Folgenden wird auf die Zielsetzung des zu realisierenden Projekts eingegangen. Es soll ein Virtual Reality System (ab hier: VR-System) realisiert werden,
das es einem Benutzer ermöglicht in virtuelle Umgebungen einzutauchen. Nach
der Entwicklung einer Lösung zu dieser Problemstellung soll diese in Hinblick
auf die Zielsetzung evaluiert werden. Dabei wird sowohl Handhabung, als auch
das Präsenzgefühl, das bei einem Benutzer bei der Verwendung des VR-Systems
vorherrscht, untersucht. Zusätzlich zu der Realisierung des VR-Systems soll eine
quasi-experimentelle Studie ausgearbeitet werden, die das Präsenzempfinden in
verschiedenen virtuellen Umgebungen untersucht.
Nachfolgend werden die Hauptkomponenten des Präsenzgefühls erwähnt und zu
realisierende Ziele für die jeweiligen Einflussfaktoren angegeben. Danach wird auf
den Aufbau der Eingabe- und Ausgabeschnittstellen und auf die Implementierung
der benötigten Software eingegangen.
6
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
In der Seminararbeit “Präsenzempfinden in virtuellen Umgebungen“ Poloczek [2011]
wurden Modelle betrachtet, die das Präsenzgefühl als Produkt verschiedener Einflussfaktoren definieren. Dabei spielt sowohl die räumliche Präsenz, die durch geeignete Eingabe- und Ausgabeschnittstellen intensiviert werden kann, als auch die
soziale Präsenz und die Eigenwahrnehmung eine entscheidende Rolle. Die Wahl
der Eingabe- und Ausgabeschnittstellen mithilfe derer sich ein Benutzer in eine
virtuelle Umgebung hineinversetzt ist demnach ein signifikanter Faktor für die
Umsetzung eines immersiven VR-Systems.
Die soziale Präsenz beschreibt Einflussfaktoren, die durch das Phänomen der gesteigerten Involvierung in gesellschaftliche Zusammenhängen hervorgerufen wird.
Die Einbindung von virtuellen Charakteren, die entweder einem einfachen Verhaltensmuster entsprechen oder durch ein Agentensystem komplex nachgebildet
werden, vermittelt dem Benutzer das Gefühl in diesem sozialen Gefüge anwesend
zu sein. In Bezug auf diesen Aspekt wird versucht die virtuelle Umgebung mit minimalistischen, aber entscheidenden Mitteln zur Förderung der sozialen Präsenz
zu unterstützen.
Die Eigenwahrnehmung umfasst die innerliche Auseinandersetzung eines Benutzers
mit seinem virtuellen Avatar. Der Benutzer identifiziert sich mit ihm selbst, sodass
der Avatar eine virtuelle Schnittstelle zwischen dem Benutzer und der virtuellen
Umgebung darstellt. Dieser Effekt soll in die virtuelle Umgebung durch Spiegel und
dynamischen Schattenwurf des Körpers genutzt werden um den Einflussfaktor der
Eigenwahrnehmung zu steigern.
In den Seminararbeiten (vgl. Heinermann [2011], Poloczek [2011]), die im Rahmen der Projektgruppe ausgearbeitet wurden, sind verschiedene Arten von VRSystemen angesprochen worden. Die Systeme bieten unterschiedlich reichhaltige
Möglichkeiten zur Interaktion mit virtuellen Umgebungen und erfordern einen unterschiedlich komplexen Aufbau. Die Projektgruppe hat festgelegt, dass das zu
realisierende VR-System möglichst einfach aufzubauen ist. Es soll die Benutzung
durch einem für Heimanwender zu einem erschwinglichen Preis ermöglichen.
Die Eingabe- und Ausgabeschnittstellen, die dem Einflussfaktor der räumlichen
Präsenz zuzuordnen sind, sollen folgende Interaktion und Wahrnehmung mit der
7
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
virtuellen Umgebung ermöglichen: Ein Benutzer kann sich grobmotorisch frei in
der virtuellen Umgebung bewegen. Diese Körperpose des Benutzers wird demnach
auf die Körperpose seines digitalen Abbilds übertragen. Diese Funktion wird von
der von uns verwendeten Microsoft Kinect bereitgestellt und wird als technische
Komponente im VR-System vorausgesetzt.
Abbildung 3.1.: Kinect (Quelle: Microsoft)
Eine weitere Vorrausetzung stellt ein Lagesensor für die Neigung des Kopfes in
sechs Freiheitsgeraden dar. Bei der Neigung des Kopfes wird gegenüber dem restlichen Körper die Präzision als besonders wichtig erachtet, um Fehler in der Auslenkung des Sichtbereiches und damit gegebenenfalls Simulatorübelkeit zu vermeiden.
Nach der Festlegung der Eingabeschnittstellen folgt im Weiteren die Betrachtung
der Ausgabeschnittstellen mit derer einem Benutzer künstliche Reize vermittelt
werden. Das Head-Mounted-Display zählt zu den Standardwerkzeugen im Forschungsbereich Virtual Reality und soll auch in unserem VR-System als audiovisuelle Ausgabeschnittstelle verwendet werden.
Bei der Auswahl der Videobrille hatten wir zwei Alternativen: Das Modell Cinemizer von Carl Zeiss und das Modell Wrap 920 VR von Vuzix. Wir haben uns
für das Modell von Vuzix entschieden, da sie im Gegensatz zur Cinemizer einen
Lagesensor mit sechs Freiheitsgraden bereits integriert hat. Somit musste nicht
zusätzlich ein Lagesensor beschafft werden.
8
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
Abbildung 3.2.: Vuzix Wrap 920 VR (Quelle: Vuzix)
Der Benutzer nimmt den Sichtbereich seines Avatars über eingebaute Bildschirme
wahr. Der Sichtbereich des Benutzers wird dabei auf die Bildschirme reduziert,
sodass der Benutzer gegenüber externer Reizeinflüsse isoliert wird. Die eingebauten Stereokopfhörer ermöglichen ferner die Vermittlung akustischer Reize, die im
Zusammenhang mit emuliertem Raumklang eine weitere Orientierungsmöglichkeit
in der Umgebung anbieten.
Es soll nun der Aufbau der benötigten Software beleuchtet werden. Das zu entwickelnde Softwaresystem soll sich zwei Komponenten zusammensetzen: Einer Bibliothek, die die Ansteuerung der Microsoft Kinect und des HMD kapselt, und
einer unabhängigen Anwendung, die als Modell und Laufzeitumgebung für die
virtuelle Umgebung dient. Die Bibliothek kann dabei auch als Middleware zwischen der VR-Hardware und der virtuellen Umgebung angesehen werden. Durch
die Trennung soll erreicht werden, dass verschiedene Anwendungen mit der nachhaltig entwickelten Bibliothek angesprochen werden können.
Zusätzlich zu der Kapselung der Treiber soll die Bibliothek die Funktion zur Speicherung von Gesten anbieten. Das Erkennen einer Geste soll dabei zu einem bestimmten vordefinierten Ereignis führen.
Die Anwendung soll mithilfe der Bibliothek die Körperpose und die Kopflage des
Benutzers in einen entsprechenden Avatar überführen und die virtuelle Umgebung
9
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
in Abhängigkeit der Körperpose, Kopflage und Position des Avatars visuell darstellen. Die erzeugten Bildinformationen der virtuellen Welt sollen zur visuellen
Reizvermittlung über das HMD genutzt werden. Ferner soll die Anwendung in der
Lage sein, eine vorgegebene Klangumgebung zu erzeugen. Die akustischen Reize
werden dabei über den eingebauten Stereokopfhörer des HMD vermittelt. In Bezug auf Interaktion soll eine Kollisionserkennung des virtuellen Avatars mit der
Umgebung stattfinden. Zum Laden verschiedener virtueller Umgebungen soll ein
Dialogmenü angeboten werden.
Bei der Entwicklung der Anwendung wird die plattformunabhängige Spiele-Engine
OGRE 3D verwendet, die neben grundlegenden grafischen Technologien wie Modellen, Animationen, Charakterskelette, Texturen, Reflexionen und Schatten auch
3D-Raumklang unterstützt.
Da sowohl der Treiber für die Microsoft Kinect, der Treiber Vuzix Wrap und die
Spiele-Engine OGRE 3D für Microsoft Windows, Linux und Apple Mac OS X
portiert sind, liegt eine wünschenswerte plattformunabhängige Realisierung des
VR-Komplettsystems nahe. Das erarbeitete System wird ferner über eine quelloffene Lizenz der Öffentlichkeit zugänglich gemacht.
3.3. Anforderungen Middleware
Das Projekt besteht aus zwei Teilanwendungen: Es soll eine Middleware entwickelt
werden und die Nutzung dieser in einer beispielhaften Anwendung (Frontend) umgesetzt werden.
3.3.1. Funktionale Anforderungen
Die zu entwickelnde Middleware soll Features anbieten, die Programmierern die
Möglichkeit bietet, mit geringem Aufwand eine Anwendung zu schreiben, welche
eine hohe Immersion liefert. Dabei soll eine Funktionalität zur Skeletterkennung
eines Menschen im dreidimensionalen Raum angeboten werden. Als weitere zentrale Anforderung ist die Bereitstellung der Kopfdrehung zu nennen. Hier soll die
10
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
Nutzung des Lagesensors gekapselt werden, sodass der Programmierer keine Kenntnisse über die verschiedenen Treiber für die Vuzix-Brille haben muss. Es ist darauf
zu achten, dass die Nutzung der Middleware möglichst einfach und verständlich
erfolgen kann und nur minimale Kenntnisse der eingesetzten Hardware notwendig
sind. Zudem muss mithilfe der Middleware eine Anzahl von vordefinierten Gesten,
welche von einem Menschen ausgeführt werden, algorithmisch erkannt werden. So
soll zum Beispiel das Winken eines Nutzers als solches erkannt werden und eine
Reihe von Listenern benachrichtigt werden, welche sich zuvor bei der jeweiligen
Geste angemeldet haben.
3.3.2. Nichtfunktionale Anforderungen
Eine einfache Bedienbarkeit der Middleware setzt eine gute Dokumentation voraus. So sollen Entwickler sich möglichst ohne große Hürden sich in den Quellcode
und die eigentliche Thematik einarbeiten können. Die Bedienungsanleitung muss
Interaktionsmöglichkeiten, sowie Posen und Gesten, die zur Interaktion dienen,
erklären.
Bezogen auf die Zuverlässigkeit sind die ausgehenden Daten (z. B. erkannte Geste)
korrekt auszugeben oder bei fehlerhaften Daten entsprechende Fehlermeldungen.
Der Durchsatz zur Verarbeitung aller von der Kinect ankommenden Daten ist zu
gewährleisten. Des Weiteren soll die Antwortzeit möglichst kurz sein, so dass der
Eindruck einer Verarbeitung der Daten in Echtzeit gewonnen wird. Eine Portabilität ist anzustreben, vor allem für Windows und Linux, wobei MacOS als optionale Anforderung in den Hintergrund tritt. Als Implementierungsanforderung
wird sauberer C++-Quellcode verlangt, sowie die Erstellung mit CMake. Weitere
Anforderungen an die Implementierung sind in Abschnitt 4.5.1 aufgeführt. Eine
gute Dokumentation der Middleware und dessen Schnittstelle wird vorausgesetzt,
wobei das Dokumentationstool „Doxygen“ zu verwenden ist.
11
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.4. Anforderungen Beispielanwendung
3.4.1. Funktionale Anforderungen
Als Beispiel für die Nutzung der Middleware soll eine grafische Anwendung erstellt
werden, welche die entwickelte Middleware verwendet. Der von uns geplante virtuelle Raum soll eine Wohnung in Italien abbilden. Die Wohnung soll dabei voll
begehbar sein und die Immersion unterstützen. Erreicht wird dies durch eine realitätsnahe Gestaltung des Raumes. Zudem wird durch die Verwendung von Sound
der Realitätsgrad weiter erhöht.
3.4.2. Nichtfunktionale Anforderungen
Die Bedienung der Anwendung soll ohne besondere Kenntnisse des Anwenders erfolgen. Optional soll während der ersten Bedienung zusätzliche Informationen/Hilfen auf der Brille angezeigt werden. Fehleingaben sind entweder zu ignorieren oder
zu korrigieren. Gegebenenfalls sind zusätzliche Informationen einzublenden, die
eine Aufforderung zur Wiederholung der Eingabe beinhalten. Gesichtspunkte wie
die Portabilität, Implementierungs- und Dokumentationsanforderungen sind wie
bei der Middleware zu handhaben.
Das Gesamtsystem, bestehend aus Beispielanwendung und Middleware, soll unter
Berücksichtigung der technischen Möglichkeiten (3D-Engine, Sound usw.) einen
möglichst hohen Grad an Immersion erzeugen. Alle potentiellen Anwender sollen
das System nutzen können. Unabhängig von Geschlecht und Alter, ohne technisches Vorwissen jeder Art, ohne zu wissen was einen erwartet und ohne vor der
Nutzung vom Operator bezüglich des Gebrauchs instruiert zu werden. Das System
soll sich dem Nutzer vollständig selbst erklären. Der Nutzer entdeckt von selbst,
dass seine Bewegungen in der Realität eins zu eins in der virtuellen Realität umgesetzt werden. Gesten und andere realitätsferne Funktionen werden während der
Nutzung vom System erläutert. Ausgenommen von der völligen Eigenständigkeit
des Anwenders ist das Starten des Systems, das Aufsetzen der VR-Brille und das
Laden von Levels sowie die Kalibrierung des Nutzer für die Kinect.
12
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.5. Vorhandene Systeme
Im Bereich der Low-Budget VR-Systeme (< 1000e) sind Lösungen für die oben
beschriebenen Anforderungen nicht bekannt. Dennoch kommen für das Projekt
bereits vorhandene Lösungen als Teilkomponente zum Einsatz: die Microsoft Kinect und die Vuzix Videobrille. Eine vergleichbare Middleware ist zurzeit weder
frei, noch kommerziell verfügbar. Im Bereich der auf der Middleware aufbauenden
Anwendungssoftware gibt es bereits einige ähnliche Entwicklungen. Zum Beispiel
Videospiele mit immersiver Wirkung oder VR-Software die im medizinischen Sektor zur Entspannung des Patienten eingesetzt wird.
3.6. Technische Umgebung
Das zu entwickelnde System soll auf herkömmlichen PC verwendbar sein. Für
die Lokalisation des Anwenders und Gestensteuerung wird die Microsoft Kinect
verwendet. Die Kinect verwendet für die Ermittlung von Tiefeninformationen die
Technik des “Structured Light“. Es findet die Aussendung eines Musters in Form
von “Infrared Structured Light“ über einen Infrarot-Sensor auf eine zu scannende
Oberfläche statt. Eine Kamera zeichnet von einem anderen Punkt das verzerrte
Muster auf. Die Tiefeninformationen können anschließend mit Stereo-Triangulation
über die Verzerrung des aufgenommenen Musters errechnet werden. Weitergehend
stellt die Kinect eine CMOS-Kamera mit einer Auflösung von 640x480 Pixel zur
Verfügung, mit der aufgrund des physischen Abstands von RGB-Kamera und IRSensor Tiefenwerte auf Farbwerte abgebildet werden können. Auch besitzt die Kinect einen Stellmotor für das Verändern der vertikalen Ausrichtung der Kinect und
ein Mikrofon, mit dem es möglich ist, Personen im Raum zu lokalisieren.
Als Ausgabe der virtuellen Welt für den Anwender wird die Video-Brille “Vuzix
Wrap 920 VR“ verwendet. Diese Video-Brille bietet zwei unabhängig ansteuerbare 640x480 LCD´s, sowie einen Lagesensor mit sechs Freiheitsgraden, der die
Bestimmung der Position und Neigung des Anwenderkopfes ermöglicht. Zudem
wird von dem Hersteller ein SDK (Software Development Kit) angeboten. Nähere
13
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
Informationen zu der 3D-Brille können unter Vuzix-Corporation [2012a] eingeholt
werden.
Für die Darstellung einer virtuellen Welt in der Anwendung wird die 3D-Engine
“Ogre 3D“ (Streeting [2012]) genutzt. Sie bietet Skelettanimationen und ist komplett in C++ ansprechbar.
3.7. Anwendungsfallmodell
Im Folgenden wird das Anwendungsfallmodell des zu entwickelnden Systems dargestellt. Da es sich bei diesem System um eine multimediale Anwendung handelt,
fällt es teilweise schwer, Anwendungsfälle als solches zu definieren: Oft löst nicht
der Akteur selber eine Aktion aus, sondern das System fragt in regelmäßigen Abständen den Zustand des Benutzers, wie z.B. die Position, ab. Da wir dennoch
gewisse Aspekte als Anwendungsfall sinnvoll modellieren können, sind bei Abweichungen entsprechende für den weiteren Entwurf nützliche Notizen angefügt.
3.7.1. Akteure
Als Akteure wurden identifiziert:
Nutzer Ein Nutzer, der eine stereoskopische Ansicht der Welt sieht und mit der
Welt interagieren kann.
Assistent Der Assistent startet die Anwendung und legt die Parameter der Ausführung fest.
Middleware-Nutzer (Programmierer) Ein Programmierer, der die zu entwickelnde Middleware in einem eigenen Programm einsetzt.
14
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.7.2. Anwendungsfälle des Assistenten
3.7.2.1. Anwendung starten
Name
Anwendungs starten
Akteure
Initiiert von Assistent
Ablauf
1. Der Assistent ruft die Anwendung mit
den gewünschten Parametern auf. Die
möglichen Parameter sind:
• Gewünschte Szene
• Stereoskopie verwenden
• Zu verwendender Augenabstand
• Kinect verwenden
• Lagesensor verwenden
• Musik ein- oder abschalten
2. Das System startet die Anwendung mit
den gewünschten Parametern.
Anfangsbedingung
Alle zu verwendeten Geräte sind vorm Starten angeschlossen. Die Bildschirmauflösung
der Videobrille wurde sachgemäß im Betriebssystem eingestellt.
Abschlussbedingung
Alle Parameter werden von der Anwendung
berücksichtigt.
Qualitätsanforderungen
Bei fehlerhaften oder unvollständigen Eingaben wird eine entsprechende Meldung ausgegeben.
15
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.7.3. Anwendungsfälle des Nutzers
In Abb. 3.3 sind die Anwendungsfälle des Nutzers als Anwendungsfalldiagramm
dargestellt. Diese werden im Folgenden beschrieben.
Kameraposition anpassen
Kopflage kalibrieren
Geste durchführen
Skeletterkennung kalibrieren
nutzer
Gegenstand berühren
Skelett holen
Pose einnehmen
Abbildung 3.3.: Anwendungsfalldiagramm des Nutzers
16
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.7.3.1. Skeletterkennung kalibrieren
Name
Skeletterkennung kalibrieren
Akteure
Nutzer
Ablauf
1. Der Nutzer wählt die Funktion zum
Kalibrieren des Skeletts.
2. Das System bestätigt dies und fordert den Nutzer dazu auf, die Kalibrierungspose einzunehmen.
3. Der Nutzer nimmt die Kalibrierungspose ein.
4. Das System nimmt die Kalibrierung vor
Anfangsbedingung
Sowohl nach Start der Anwendung als auch
während des Betriebes möglich
Abschlussbedingung
Die Skeletterkennung wurde korrekt kalibriert bzw. ein Skelett gefunden.
17
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.7.3.2. Kopflage kalibrieren
Name
Kopflage kalibrieren
Akteure
Nutzer
Ablauf
1. Der Nutzer wählt die Funktion zum
Kalibrieren der Kopflage.
2. Das System sichert die Kopflage als
Null-Ausrichtung.
Anfangsbedingung
Sowohl nach Start der Anwendung als auch
während des Betriebes möglich
Abschlussbedingung
Die Kopflage wurde erfolgreich kalibriert.
3.7.3.3. Kameraposition und -Rotation anpassen
Name
Kameraposition und -rotation anpassen
Akteure
Nutzer
Ablauf
1. Der Nutzer bewegt seinen Kopf
2. Das System passt Position und Rotation der Kamera an.
Anfangsbedingung
Die Kopflage wurde korrekt kalibriert.
Abschlussbedingung
Die Kameraposition und -Rotation wurden
angepasst.
Qualitätsanforderungen
Die Bewegung der virtuellen Kamera darf
nicht zu ruckartig wirken. Die Bewegung
wird so schnell wie möglich ausgeführt. Ideal
wäre eine Verzögerung <15ms, durch die die
Bewegung verzögerungsfrei wirkt.
18
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.7.3.4. Geste durchführen
Name
Geste durchführen
Akteure
Nutzer
Ablauf
1. Der Nutzer führt eine vordefinierte Geste durch
2. Das System erkennt diese und löst
ein entsprechendes Event aus.
Anfangsbedingung
Die Skeletterkennung wurde kalibriert und
ein Skelett erkannt.
Abschlussbedingung
Die korrekte Geste wurde erkannt.
Qualitätsanforderungen
Die richtige Geste wurde mit hoher Wahrscheinlichkeit erkannt.
3.7.3.5. Pose einnehmen
Name
Pose einnehmen
Akteure
Nutzer
Ablauf
1. Der Nutzer nimmt eine Pose ein.
2. Das System erkennt diese Pose und
löst ein entsprechendes mit der Pose verknüpftes Event aus.
Anfangsbedingung
Die Pose wurde neu eingenommen: D.h. sie
hat sich geändert.
Abschlussbedingung
Die Pose wurde mit großer Erfolgswahrscheinlichkeit richtig erkannt.
Qualitätsanforderungen
Das Einnehmen einer Pose muss innerhalb
von wenigen Millisekunden erkannt werden.
19
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.7.3.6. Gegenstand berühren
Name
Gegenstand berühren
Akteure
Nutzer
Ablauf
1. Der Nutzer berührt in der virtuellen
Welt einen Gegenstand.
2. Das System erkennt, welcher Gegenstand berührt wurde und führt
eine entsprechende Aktion aus
(Bspw. Gegenstand aufheben).
Anfangsbedingung
Das Skelett des Nutzers ist korrekt in der virtuellen Welt vorhanden. Kollisionsabfrage ist
aktiv.
Abschlussbedingung
Der korrekte Gegenstand wurde erkannt.
3.7.3.7. Skelett bewegen
Name
Skelett bewegen
Akteure
Nutzer
Ablauf
1. Der Nutzer bewegt sich.
2. Das System aktualisiert die SkelettDaten
Anfangsbedingung
Die Skeletterkennung wurde kalibriert.
Abschlussbedingung
Die Skelett-Daten wurden korrekt aktualisiert.
Qualitätsanforderungen
Im Fehlerfall wird auf alte Daten zurückgegriffen.
20
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.7.4. Anwendungsfälle des Middleware-Nutzers
Für den Middleware-Nutzer werden keine tatsächlichen Anwendungsfälle beschrieben. Dieser kann die Middleware in sein eigenes Softwareprojekt einbauen und als
Grundgerüst nutzen. Dabei kann er folgende Aktionen durchführen:
• Middleware in Programm einbinden
• Neue Instanz der Middleware erstellen
• Instanz der Middleware beenden
• Status-Informationen abfragen
• Skelett-Daten verwenden
• Kamera-Daten verwenden
• Neue Pose definieren
• Event-Handler implementieren
• Event-Handler an Posen und Gesten binden
21
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.8. Dynamisches Modell
Im Folgenden wird das dynamische Modell des zu entwickelnden Systems festgelegt. Zunächst wird in Abschnitt 3.8.1 das Verhalten des Systems in Sequenzdiagrammen dargestellt. Diese dienen im Wesentlichen dazu, die Anwendungsfälle aus
dem vorherigen Kapitel mit Objekten zu verbinden und die benötigten Objekte
zu identifizieren (vgl. Bernd Brügge [2004]).
3.8.1. Sequenzdiagramme des Assistenten
Abbildung 3.4.: Sequenzdiagramm Welt laden: Der Assistent wählt die Funktion
Level laden und anschließend ein Level aus. Diese wird von der
Anwendung geladen.
22
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.8.1.1. Skeletterkennung kalibrieren
Abbildung 3.5.: Sequenzdiagramm Skeletterkennung kalibrieren: Der Nutzer
nimmt die Kalibrierungspose ein, damit die Skeletterkennung kalibriert werden kann.
Abbildung 3.6.: Sequenzdiagramm Skelett bewegen: Die Daten von der Kinect lösen ein Event aus, welches bewirkt, dass sich die Anwendung die
aktuellen Skelett-Daten holt.
23
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
Abbildung 3.7.: Sequenzdiagramm Pose einnehmen: Die Person vor der Kinect
nimmt eine zur Compile-Zeit definierte Pose ein. Diese Pose wird
von der Middleware erkannt und ein entsprechendes Event in der
Anwendung wird ausgelöst. Verschiedene Posen lösen verschiedene
Events aus.
Abbildung 3.8.: Sequenzdiagramm Geste durchführen: Die Middleware erkennt eine vordefinierte Geste des Benutzers. Ist für diese Geste ein Event
registriert, wird dieses ausgelöst.
24
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
Abbildung 3.9.: Sequenzdiagramm Gegenstand berühren: Wenn das virtuelle Skelett des Nutzers mit einem Gegenstand der virtuellen Welt kollidiert, kann dies in der Anwendung eine Reaktion auslösen.
Abbildung 3.10.: Sequenzdiagramm Kameraposition und -rotation anpassen: Die
Anwendung fragt bei Middleware die Blickrichtung des Kopfes
des Benutzers ab. Die Middleware liefert daraufhin die aktuelle,
permanent vorgehaltene, Blickrichtung zurück.
25
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
Abbildung 3.11.: Sequenzdiagramm Kopflage kalibrieren: Die Erkennung der Kopflage wird auf plausible Werte eingestellt.
26
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
3.9. Objektmodell
Das in Abbildung 3.12 dargestellte Objektmodell besteht aus Klassen, die sich
im Wesentlichen in drei Gruppen ordnen lassen: Die Anwendung mit Model- und
View-Klassen ist grün dargestellt. Die Middleware-Klasse ist rot dargestellt. Diese
greift über zwei Wrapper-Klassen (blau) auf die Hardware zu. Hier sei angemerkt,
dass das Diagramm nur eine vorläufige Idenfikation der Objekte darstellt und diese
im Systementwurf verfeinert werden.
27
checkCollision(Skeleton)
Object
0..*
1
checkCollision(Skeleton)
World
1
1..*
loadLevel(World)
ChooseLevelView
1
1
1
Application
1..*
setCamera()
Camera
1
Skeleton
1
1
triggerPoseEvent()
triggerGestureEvent()
loadLevel()
triggerSkeletonEvent()
1
1
1
Skeleton
1
1
getHeadDirection()
calibrateSkeleton()
triggerSkeletonEvent()
getSkeleton()
Middleware
1
Head
1
1
1
1
1
getHeadDirection()
HeadTrackerWrapper
calibrateSkeleton()
getRGBImage()
getSkeleton()
KinectWrapper (OpenNI)
Projektgruppe
Virtual Reality
3. Anforderungsanalyse
Abbildung 3.12.: Klassendiagramm
28
Projektgruppe
Virtual Reality
4. Systementwurf
4. Systementwurf
Im Folgenden wird das Analyse-Modell, welches im Kapitel 3 beschrieben wurde,
in ein Systementwurfsmodell überführt und präzisiert. Dazu werden zunächst in
Kapitel 4.1 die Entwurfsziele festgelegt sowie in Kapitel 4.2 das System in kleinere
Subsysteme zerlegt, sodass die Komplexität beim Implementieren verringert wird.
Kapitel 4.3 beschreibt kurz den globalen Kontrollfluss. Die Hardware/SoftwarePlattform wird in Kapitel 4.5 dargestellt und begründet. Diese umfasst die Wahl
der Programmiersprache, das Ansprechen des Lagesensors der Videobrille und das
Verwenden der Kinect-Daten. Im Anhang wird in Kapitel A.1 eine Referenz zu
den nach außen angebotenen Schnittstellenfunktionen der Subsysteme gegeben.
4.1. Entwurfsziele
„Entwurfsziele sind Eigenschaften, die es uns ermöglichen, Prioritäten bei der Entwicklung des Systems zu setzen. Entwurfsziele entstehen
aus den nichtfunktionalen Anforderungen, die während der Anforderungsermittlung spezifiziert wurden und aus technischen sowie Verwaltungszielen.“
Bernd Brügge [2004] Die folgende Tabelle listet unsere Entwurfsziele auf.
29
Projektgruppe
Virtual Reality
4. Systementwurf
Entwurfsziel
Antwortzeit
Speicherbedarf
Robustheit
Fehlertoleranz
Schutz
Sicherheit
Kosten
Entwicklungskosten
Dokumentation
der Schnittstelle
(Middleware)
Dokumentation
des Quellcodes
Erweiterbarkeit
und Modifizierbarkeit
Portierbarkeit
Priorität
sehr hoch
Kommentar
Für eine interaktive Anwendung
ist eine geringe Antwortzeit wichtig.
hoch
Niedriger Speicherbedarf
hoch
Das System soll auch bei ungültigen
Benutzereingaben stabil weiterlaufen.
hoch
Das Auftreten von Fehlern soll
das System nicht beeinflussen.
unerheblich Offline-Anwendung, kein sensiblen Daten.
mittel
Die Gefährdung menschlichen Lebens
und Suchtgefahr sind eher gering, sollen
aber auch bestmöglich ausgeschlossen werden.
hoch
Das System soll prinzipiell
kostengünstig auch für
Heimanwender verfügbar sein.
fest vorge- System muss für Implementierung mit sechs
geben
Personen geplant werden.
sehr hoch
Die Middleware soll von SoftwareEntwicklern genutzt werden und muss
daher sehr gut und verständlich dokumentiert werden.
sehr hoch
Das der Quellcode auch als lernenUmgebung dienen soll, ist die Dokumentation desselben sehr wichtig.
mittel
Festgelegte Features,
aber erweiterbare Architektur.
hoch
Nützlichkeit
hoch
Nutzbarkeit
hoch
Verfügbarkeit auf vielen Plattformen, universelle Architektur
Nicht nur als Spiel, sondern vielfältig einsetzbar (insbesondere Middleware)
Intuitive Nutzung und gute Bedienbarkeit
Tabelle 4.1.: Entwurfsziele
30
Projektgruppe
Virtual Reality
4. Systementwurf
4.2. Systemzerlegung
In diesem Abschnitt ist die Systemzerlegung in Subsysteme dokumentiert. Wie
in C++ üblich, werden die unterschiedlichen Komponenten nach Zusammengehörigkeit in Namespaces getrennt. Die Systemzerlegung ist in Abb. 4.1 als UMLKlassendiagramm dargestellt.
Es existieren Middleware- und Frontend-Subsystem. Die Middleware abstrahiert
die Eingabemedien Kinect und Lagesensor der Videobrille und kapselt dementsprechend den Zugriff auf die jeweiligen Hardwarekomponenten. Auf Grundlage
der Middleware wird in dem Frontend-Subsystem die Beispielanwendung realisiert. Im Folgenden werden zunächst die wichtigen Klassen und Funktionen der
Middleware erläutert, anschließend die des Frontend-Subsystems.
Die Hauptklasse Middleware::Main der Middleware wird als Schnittstelle benutzt,
um das Skelett und die Lagesensordaten anzufragen. Ferner wird in der Hauptklasse ein Thread erzeugt, der unabhängig von der Anwendung die Hardwarekomponenten über die Klassen KinectAbstraction und AttitudeSensor anfragt. Mithilfe
des GestureManagers und des PoseManagers lassen sich benutzerdefinierte Gesten
und Posen verwenden. Eine detaillierte Ausführung der Funktionalität wird in
X dargeboten. Das Frontend-Subsystem umfasst den Einstiegspunkt für die Beispielanwendung. Die virtuelle Umgebung wird in der Klasse BasicScene geladen,
ferner werden dort Eingabeereignisse wie Tastatur und Mauseingaben verarbeitet.
Die Klasse CharacterController behandelt die Anzeige und Aktualisierung des virtuellen Charakters auf Basis der Middleware-Daten. Der DotSceneLoader ist eine
Hilfsklasse zum Parsen von DotScene-Format Level-Dateien. Die Klasse parst und
erstellt die korrespondierende Umgebung.
31
Projektgruppe
Virtual Reality
4. Systementwurf
Frontend
sound
CharacterController
BasiscScene
SoundManager
1
1
notify(ge)
notify(pe)
main()
update()
keyPressed()
keyReleased()
createViewports()
setupRessources()
loadSound()
playSound()
stopSound()
setListenerPosition()
1
1
1
1
injectKeyDown()
injectKeyUp()
updateBody()
DotSceneLoader
parseDotScene()
Middleware
KinectWrapper
Main
isCalibrated : bool
vuzixConnected : bool
kinectConnected : Integer
getHeadDirection()
getSkeleton()
registerGesture()
registerPose()
removePoseEvent()
removeGestureEvent()
resetHeadDirection()
work()
KinectAbstraction
1
isCalibrated : bool
isConnected : bool
1
getSkeleton() : Joint[]
init()
1
1
OpenNIConnector
isCalibrated : bool
isConnected : bool
GestureManager
1
getSkeleton() : Joint[]
1 init()
1
0..* GestureEvent
1
0..*
1
AttitudeSensor
registerGesture()
removeGesture()
getHeadDirection()
resetHeadDirection()
timerProc()
1
PoseManager
1
1
Head
PoseEvent
registerPose()
removePose()
yaw : float
pitch : float
roll : float
Abbildung 4.1.: Systemzerlegung
32
Projektgruppe
Virtual Reality
4. Systementwurf
4.3. Globaler Kontrollfluss
Da das zu entwickelnde System eine Grafikanwendung ist und die Ogre3D Grafikengine verwendet wird, findet die grafische Darstellung in der Anwendung in
einer Hauptschleife statt. Die Anwendung hält dabei eine Instanz der Middleware,
von der sie sich in jedem Durchgang der Hauptschleife die aktuellen Eingabedaten
holt und diese verwendet.
Die Middleware lässt mehrere Threads laufen, um immer die aktuellen Eingangsdaten liefern zu können und verarbeitet diese außerdem in Form der Posen- und
Gestenerkennung. Wenn eine Pose oder Geste erkannt wird, wird von der Middleware eine enstsprechende Funktion der Anwendung aufgerufen, um diese zu benachrichtigen.
4.4. Datenhaltung
Das zu verwendende Datenformat für die virtuelle Umgebung wird auf das DotScene Format festgelegt, das kompatibel zur Ogre 3D Engine ist und den Vorteil
bietet, dass ein Exporter für das quelloffene 3D-Werkzeug Blender existiert.
33
Projektgruppe
Virtual Reality
4. Systementwurf
4.5. Hard- und Softwareplattform
Abbildung 4.2.: Hard- und Softwareplattform
Die Hard- und Softwareplattform gliedert sich in drei Ebenen: Die Ebene der
externen Hardware umfasst die Vuzix Videobrille zur visuellen Ausgabe sowie die
Microsoft Kinect zum Erfassen der Bewegungen des Nutzers. Die Rechner Ebene
I beinhaltet die Middelware. Die Middelware umfasst drei Hauptkomponenten:
Skeletterkennung, Gestenerkennung und Systemadministration. Aufbauend auf der
Middleware liegt die Anwendungssoftware des Systems auf Rechner Ebene II. Sie
besteht aus der Grafikengine und der Contentverwaltung.
4.5.1. Wahl der Programmiersprache
Als mögliche Programmiersprachen kommen Java oder C++ infrage. Java und
C++ wurden bisher laut Aussagen der Teammitglieder verwendet und es existieren
34
Projektgruppe
Virtual Reality
4. Systementwurf
Grundkenntnisse in beiden Sprachen. Die notwendigen objekt-orientierten Sprachfunktionalitäten existieren in beiden Sprachen. Der verwendete Kinect-Treiber
OpenNI ist in C++ implementiert. Eine Verwendung des Treibers in Java ist über
die Verwendung eines Wrappers möglich. Da Frontend und Middleware als Echtzeitanwendung entworfen werden, ist die Performanz eine wichtige nicht-funktionale
Anforderung, die nicht durch die Wahl der Programmiersprache eingeschränkt werden soll. Bezogen auf die Performanz von C++ und Java sind keine markanten
Unterschiede zu erkennen. Die Kinect liefert 30f ps und C++ und Java scheinen
sich in der Verarbeitung und Ausgabe nur minimal zu unterscheiden. Hier kann
also kein Grund gefunden werden, der mehr für eine der beiden Programmiersprachen spricht. In Absprache mit dem gesamten Team haben wir uns für die
Programmiersprache C++ entschieden.
35
Projektgruppe
Virtual Reality
5. Implementierung
5. Implementierung
5.1. Meilensteine der Implementierung
Im Rahmen der Implementierung haben wir Entwicklungsschritte und Ergebnisse
definiert, die zu einem festgelegten Zeitpunkt erreicht werden sollen. Durch dieses
Vorgehen können wir den Implementierungsvorgang zielorientiert planen und die
fristgerechte Fertigstellung des Projekts sicherstellen. Im Folgendem werden die
festgelegten Meilensteine beschrieben.
5.1.1. Erster Meilenstein (30.09.2011)
• Einfache Test-Anwendung mit der Ogre-Engine
• Kamerasteuerung per Vuzix-Brille
• Darstellung der Kinect-Skelett-Daten durch eine Figur in der Engine
• Build-Skript
5.1.2. Zweiter Meilenstein (01.11.2011)
• Sound-Integration
• Stereoskopische Ansicht über die Videobrille
• Posen
• Scene-Loader
• Bewegung im Raum
36
Projektgruppe
Virtual Reality
5. Implementierung
5.1.3. Dritter Meilenstein (06.12.2011)
• Exceptions der Middleware ergänzen
• Gesten
• Abrufen des Zustandes der Middleware wie z.B. Status der Geräte und Kalibrierung
• Linuxtreiber der Vuzix-Brille
• Kollisionserkennung
• Soundintegration mit Skripten
• Licht und Schatten
• Spiegel und Fernseher
• Modifizierter Oger
5.2. Implementierung der einzelnen
Systemkomponenten
Im Folgenden wird die Implementierung einzelner Komponenten des Systems bezüglich Herausforderungen und Probleme erläutert. Die implementierten Komponenten sind dabei nach den Meilensteinen gegliedert.
5.2.1. Erster Meilenstein
5.2.1.1. Head-Mounted-Display
Die Klasse AttitudeSensor ist Bestandteil der Middleware und beinhaltet Komponenten zur Kommunikation der Vuzix Wrap 920 mit der Schicht der Middleware.
In unserer Hauptklasse (M iddleware :: M ain) wird mit Aufruf des Konstruktors
37
Projektgruppe
Virtual Reality
5. Implementierung
eine Instanz des AttitudeSensors erstellt, wobei anschließend ein Thread gestartet wird, der kontinuierlich die Ausrichtung der Brille, also die Lage des Kopfes,
bestimmt. Über die Middleware ist somit jederzeit die Kopfposition abrufbar.
Die Klasse AttitudeSensor beinhaltet Programmcode für Win32- und Linux-Systeme.
Bei der Entwicklung sind wir auf das Problem gestoßen, dass die bisherigen LinuxTreiber nur das Vorgängermodell Vuzix VR 920, nicht jedoch die von uns genutzte Vuzix Wrap 920 unterstützen. Unsere falsche Annahme der Kompatibilität
des Treibers mit der Vuzix Wrap 920 beruht auf einer fehlerhaften Beschreibung
auf der Vuzix-Homepage. Diese irreführende Beschreibung wurde erst nach unserem Erhalt der Brille korrigiert. Aus diesem Grund wurde manuell eine LinuxUnterstützung von uns implementiert. Die Inkompatibilität des alten Treibers mit
dem neuen Modell beruht auf einem neu entwickelten Bewegungssensor, der 6 anstatt 3 Freiheitsgrade bietet und die Messdaten in anderer Reihenfolge über den
USB-Port kodiert. Dies wird von uns entsprechend angepasst, um unser Ziel der
Plattformunabhängigkeit zu erreichen.
Unter Windows werden die Messdaten der Vuzix Wrap 920 korrekt an die Middleware übertragen. Jedoch muss die Brille über den Vuzixmanager abseits unserer Softwareumgebung kalibriert werden, da die Funktion der Kalibrierung im
von Vuzix gelieferten Windows-Treiber nicht implementiert wurde. Die Roll- und
Pitch-Rohdaten werden vom Lagesensor ermittelt und vom Treiber direkt verarbeitet. Die Yaw-Werte (Links-Rechts-Drehung) werden über ein Gyroskop ermittelt
und über die Daten des Magnetfeldsensors permanent abgeglichen (IWRSetMagAutoCorrect), um die Richtungsabweichungen des Gyrometers zu kompensieren
(Norden bleibt dauerhaft Norden).
Tests haben weiterhin ergeben, dass die X,Y,Z-Daten des Lagesensors zur Bestimmung der Position im Raum für unser Projekt nicht verwendbar sind, da sie keine
hinreichend genauen Werte liefern, sondern sich nur Informationen über die Laufrichtung ableiten lassen. Daher werden von der AttitudeSensor.cpp nur die Yaw-,
Roll- und Pitch-Daten an das Frontend übergeben.
Für das Auslesen der Daten von der Vuzix 3D-Brille sind unter Windows folgende
Schritte notwendig:
38
Projektgruppe
Virtual Reality
5. Implementierung
1. Starten einer Trackersession:
DWORD IWROpenTracker (void)
2. Schließen einer Trackersession:
void IWRCloseTracker (void)
3. Kalibrierungsdaten des iWear-Monitors holen:
void IWRGetVersion(IWRVERSION *ver)
4. Ausgangsblickrichtung festlegen:
void IWRZeroSet (void)
5. Daten vom Tracker holen:
DWORD IWRGetTracking (LONG * yaw, LONG * pitch, LONG * roll)
6. Für die Bestimmung der Position im Raum 6-dimensionale Daten vom Tracker
holen:
DWORD IWRGet6DTracking(LONG *yaw, LONG *pitch, LONG *roll, LONG
*xtrn, LONG *ytrn, LONG *ztrn)
Drei Datenströme stehen durch die 3D-Brille zur Verfügung:
• Pitch: Vertikale Neigung der Kopfes
• Yaw: Drehung der Kopfes
• Roll: Horizontale Neigung des Kopfes
Für die Veranschaulichung der verwendeten Parameter siehe Abbildung 5.1
39
Projektgruppe
Virtual Reality
5. Implementierung
Abbildung 5.1.: Lagesensorparameter
5.2.1.2. Darstellung der Kinect-Skelett-Daten durch eine Figur in der
Engine
Dieser Teil der Implementierung bezieht sich zum einen auf die benötigten Funktionen in der Middleware und die dazugehörigen angebotenen Schnittstellen (M iddleware ::
M ain), zum anderen auf die Repräsentation im Frontend.
Die Middleware stellt dem Anwendungsprogrammierer die Funktion getSkeleton
zur Verfügung. Dabei soll der Anwendungsprogrammierer insbesondere auf die manuelle Initialisierung der Hardware und der Treiber verzichten können. Nachdem
im Anwendungsprogramm eine Instanz der Klasse M iddleware :: M ain erzeugt
wurde, können über die getSkeleton-Funktion einfach die aktuellen Skelettdaten
geholt werden. Die Skelettdaten bestehen aus einem 24 Elemente großen Array
des Types M iddleware :: KinectW rapper :: Joint. Ein solches Gelenk hat eine
Position sowie eine Orientierung (Rotationsmatrix). Um auf die einzelnen Elemente des Feldes zugreifen zu können, muss der Anwendungsprogrammierer natürlich wissen, welcher Index welchem Gelenk zugeordnet ist. Dies ist im Enum
M iddleware :: KinectW rapper :: Joints dokumentiert. Wichtig zu beachten ist
hierbei, dass die Joints wie im verwendeten OpenNI-Framework nicht von 0 bis 23
numeriert sind, wie für die Feld-Indizes anzunehmen wäre, sondern von 1 bis 24.
Daher muss von den Werten aus dem Enum jeweils 1 subtrahiert werden!
40
Projektgruppe
Virtual Reality
5. Implementierung
In der Middleware selbst wurde der Zugriff auf drei Ebenen verteilt:
Main Schnittstelle nach außen, zentrale Verwaltung aller Aspekte der Middleware
KinectAbstraction Zugriff auf Kinect oder ähnliche Geräte in abstrakter Form,
Bindeglied zwischen Main und Hardware-Treiber
OpenNIConnector Zugriff auf Kinect-Hardware-Treiber/Framework OpenNI
Durch diese Trennung soll erreicht werden, dass der Zugriff auf verschiedenartige
Hardware mit verschiedenen Treiberanbindungen ohne viel Aufwand ermöglicht
werden kann.
Der eigentliche Schritt der Kommunikation mit dem Kinect-Framework OpenNI
findet in der Klasse OpenN IConnector statt. Hierbei wird zunächst in der initMethode ein OpenNI-Kontext erzeugt, sowie alle nötigen Aufrufe getätigt, um
einen Benutzer zu erkennen und dessen Skelettdatenerkennung auf ihn zu kalibrieren. In der zentralen Methode OpenN IConnector :: getSkeleton werden die
Skelettdaten vom OpenNI-Framework geholt und in ein Array verpackt.
41
Projektgruppe
Virtual Reality
5. Implementierung
Abbildung 5.2.: Darstellung der Skelettdaten in Ogre3d
Zur Darstellung der Skelettdaten in der Beispielanwendung wurde eine modifizierte Fantasy-Gestalt in Form eines hautfarbenen Ogers (siehe Abb. 5.2) gewählt.
Diese liegt als objekthierarchisch modelliertes 3D-Modell vor, so dass die einzelnen
Gelenke mit Rotationsdaten des aus den Daten der Kinect gewonnenen Skelettes
gedreht werden können. Dieses Vorgehen findet im
SinbadCharacterController statt.
5.2.1.3. Build-Skript
Aufgrund seiner schnellen Anpassungsfähigkeit an unterschiedliche Plattformen
entschieden wir uns für das plattformunabhängige Programmierwerkzeug „CMake“. CMake bietet eine Vielfalt an Optionen, die das Kompilieren von Quellcode für
42
Projektgruppe
Virtual Reality
5. Implementierung
unterschiedliche Plattformen und Entwicklungsumgebungen wie z. B. Visual Studio auf einfache Weise ermöglicht. Weitergehend kann im Build-Skript die Art der
zu kompilierenden Anwendung festgelegt werden, die bestimmt ob eine ausführbare Datei oder lediglich eine statische oder dynamische Bibliothek erstellt werden
soll. Sourcedateien und Headerdateien, sowie Abhängigkeiten von anderen Bibliotheken werden auch im Build-Skript beschrieben. Dem Anwender wird dadurch
die Arbeit erspart in Visual Studio oder unter Unix alle Bibliotheken manuell zu
linken.
In unserem Build-Skript unterscheiden wir zwischen 32-Bit-Anwendungen unter
Windows für Visual Studio 10 und 32-Bit-Anwendungen unter Linux-Distributionen.
Weitergehend wurde für beide Plattformen ein automatisches Build-Skript konzipiert, durch dessen Ausführung sämtliche Teilprojekte, die für eine Benutzung
der Middleware unentbehrlich sind, kompiliert werden. Durch diese Funktionalität muss der Middleware-Benutzer nur die Bibliothek der Middleware linken. Das
Kompilieren der Middleware setzt jedoch voraus, dass die in Abschnitt A.2 erläuterten Abhängigkeiten installiert wurden.
5.2.2. Zweiter Meilenstein
5.2.2.1. Szenenverwaltung
Zur Erstellung und Laden einer Szene wird das im OGRE 3D Umfeld gebräuchliche DotScene-Format verwendet. Das DotScene-Format basiert auf XML. Für das
Modellierungs- und Animationswerkzeug Blender, das im Rahmen der Entwicklung als Standardwerkzeug festgelegt wurde, existiert ein entsprechendes ExportPlugin. Mithilfe des Plugins kann eine in Blender erstellte Szene im DotSceneFormat gespeichert werden. Die Möglichkeit die Szene im DotScene-Format zu
laden ist jedoch nicht standardgemäß in der gegenwärtigen OGRE 3D Version gegeben, sodass diese Funktionalität eigens implementiert wurde. Für die Funktionalität wurde die Klasse DotSceneLoader als Singleton implementiert. Die Klasse
ist in der Lage eine angegebene DotScene-Datei zu laden und diese an eine bereits
vorhandene SceneNode anzuhängen.
43
Projektgruppe
Virtual Reality
5. Implementierung
5.2.2.2. Sound-Subsystem
Im Rahmen der Anwendung, die mithilfe der Grafikengine OGRE 3D entwickelt
wird, muss ferner ein Sound-Subsystem implementiert werden, da die Funktionalität für Geräusch und Musikwiedergabe nicht gegeben ist - jedoch von den
Anforderungen an die Anwendung formuliert wird. Das Sound-Subsystem muss
zur Erfüllung der Anforderungen verschiedene, hier nochmal wiederholte, Funktionalitäten anbieten. Die Basisfunktionalitäten beziehen sich auf die Geräuschwiedergabe. Dabei soll der freie Audio-Codec OGG Vorbis zur Datenspeicherung
der Audiodaten dienen. Die Geräusche sollen über eine API des Sound-Subsystems
angelegt, abgespielt, gestoppt und pausiert werden können. Aufbauend auf diesen
Kernfunktionalitäten soll es ferner möglich sein Raumklang zu simulieren. Mithilfe des Raumklangs soll die Grundlage dafür geschaffen werden, dass der Anwender Geräusche in der virtuellen Umgebung orten kann. Für die Erfüllung der,
hier nochmals wiederholten, Anforderungen wird die plattformunabhängige Sound
API OpenAL und die OGG Vorbis Bibliothek benutzt. Aufbauend auf diesen Abhängigkeiten für die Anwendungen wird das Sound-Subsystem den Rahmenbedingungen entsprechend entwickelt. Dabei soll neben den Funktionalitäten auch eine
Interoperabilität mit dem Scripting-Subsystem und der Grafikengine OGRE 3D
gewährleistet werden.
Nachfolgend soll die Modellierung des Sound-Subsystems veranschaulicht werden.
Dafür werden zunächst die wichtigen Klassen genannt und deren Aufgaben geschildert. Die Klasse SoundManager kapselt die angesprochenen Kernfunktionalitäten,
beispielsweise Laden, Abspielen und Stoppen, die durch OpenAL und die OGG
Vorbis Bibliothek realisiert werden können. Der SoundManager ist als Singleton
realisiert, dementsprechend gibt es nur ein Objekt dieser Klasse. Um die Interoperabilität mit dem Scripting-Subsystem und der Grafikengine OGRE 3D wird
auf Grundlage des SoundManagers auch eine objektorientierte Repräsentation von
Geräuschen angeboten, s.d. ein Geräusch durch ein Objekt der Klasse Sound verwendet werden kann. Zur Erstellung von Sound-Objekten wird die Klasse SoundFactory verwendet, die über den SoundManager angefordert werden kann. Die
SoundFactory konstruiert Sound Objekte, deren öffentliche Methoden die Kern-
44
Projektgruppe
Virtual Reality
5. Implementierung
funktionalitäten wiederspiegeln. Die Sound Objekte kommunizieren intern mit dem
SoundManager, der, wie bereits erörtert, für die interne Verwaltung mit OpenAL
zuständig ist.
Für die Entwicklung und die Beseitigung von Fehlern ist eine grafische Repräsentation für Geräusche erstrebenswert. Die Grafikengine OGRE 3D verwendet die
Technik eines Szenengraphens, um die anzuzeigenden Objekte als SceneNodes zu
verwalten. Eine SceneNode beinhaltet die notwendigen Informationen für die grafische Repräsentation. Die angesprochenen Sound-Objekte werden zum Zweck der
Repräsentation und Verwaltung im Szenengraphen um Sound-Nodes erweitert. Die
Repräsentation wird bei der Erstellung der Sound-Objekten über die SoundFactory
der Geräuschkonfiguration entsprechend angepasst.
Bei der Translokation und Veränderung der Orientierung der Geräuschquelle im
Szenengraphen (der Sound-Node) soll eine automatische Aktualisierung der Position und Orientierung auf den Sound-Objekten und transitiv auf dem SoundManager für das entsprechende Geräusch stattfinden. Diese Modellierung ermöglicht
eine Gleichbehandlung der grafischen 3D-Modelle und der Geräuschquellen. Das
Skripting-Subsystem soll als Werkzeug für den szenischen Ablauf während des
Aufenthaltes in der virtuellen Umgebung dienen. Für die Erstellung eines szenischen Ablaufs muss dementsprechend auch die Translokation und Orientierung von
3D-Modellen und Geräuschquellen möglich sein. Durch die bereits angesprochene Gleichbehandlung von 3D-Modellen und Geräuschquellen wird dieser Verwaltungsaufwand minimiert und eine Interoperabilität mit dem Skripting-Subsystem
gewährleistet.
5.2.2.3. Stereoskopische Ansicht (stereoPlugin)
Die stereoskopische Ansicht in der OGRE 3D-Engine wird über ein 3D-Plugin
für OGRE 1.7 realisiert. Das Plugin erlaubt das Setzen von zwei Viewpoints und
ermöglicht Anpassungen der Parameter Augenabstand und Tiefeneffekt. Das Plugin rechnet anhand der Viewpoints die Ausgabe wahlweise in ein Anaglyphenbild
(Rot/Grün-Überlagerung / Stereogramm) um oder rendert zwei seperate Views,
die nebeneinander dargestellt werden. Für die verwendete Vuzix 920 kommt die
45
Projektgruppe
Virtual Reality
5. Implementierung
zweite Methode zum Einsatz. Die Implementierung einer Zeitmultiplex-Methode
ist durch die zwei Displays in der Videobrille nicht nötig.
5.2.2.4. Posen
Das Abbilden der Körperbewegung auf einen virtuellen Avatar birgt für den Benutzer bereits interessante Erlebnisse. Bewegung in der virtuellen Umgebung gibt
dem Benutzer theoretisch alle Interaktionsmöglichkeinen wie die wirkliche Welt.
Allerdings fehlen die Eingabegeräte, wie Maus und Tastatur, die für einen PC typisch sind. Um diese Eingabegeräte elegant nachzubilden, wurde der Middleware
Posen- und Gestenerkennung hinzugefügt.
Durch die flächendeckende Verbreitung von Touchscreens, sind Benutzer an die
Bedienung von technischen Geräten durch Gesten gewöhnt. Ein grundsätzlicher
Unterschied zwischen Gesten die auf Touchscreens gezeichnet werden und Gesten
die durch den Körper dargestellt werden ist die dritte Dimension, dies macht die
Erkennung der richtigen Geste um ein vielfaches schwerer. Im Folgenden wird die
Posenerkennung beschrieben, die im Rahmen des zweiten Meilensteins implementiert wurde.
Posen werden erkannt, indem einzelne Gelenke mit vordefinierten Transformationen verglichen werden. Da OpenNI in Verbindung mit NITE alle Transformationsinformationen über die Gelenke des verfolgten Benutzers liefert, kann diese
Überprüfung leicht durchgeführt werden.
Damit ein Programmierer bei Nutzung der entwickelten Middleware einfach Posen
definieren kann und beim Auftreten einer Pose ein Ereignis ausgelöst wird, kam das
Observer -Entwurfsmuster zum Einsatz. Bei diesem implementiert eine Klasse das
Interface Middleware::Observer und die Methode notify. Nun kann die Klasse eine
Pose in Form eines Middleware::PoseEvent erzeugen und sich bei der Middleware
mit diesem mit der Methode registerPose „anmelden“. Beim Auftreten einer Pose
ruft die Middleware die notify-Methode auf und übergibt diesem das aufgetretene
PoseEvent.
Eine Pose wird wie folgt überprüft:
46
Projektgruppe
Virtual Reality
5. Implementierung
1. Transformationsinformationen des Skelettes abrufen.
2. Für alle Posen werden alle definierten Gelenke überprüft. Bei der Überprüfung eines Gelenkes, werden die drei Vektoren, die die Orientierung im Raum
definieren, mit den für die Pose festgelegten Orientierungsvektoren verglichen.
3. Wenn eine Pose für einen definierte Zeit eingenommen wird, wird im angemeldeten Observer-Objekt ein Ereignis ausgelöst, indem die notify-Methode
aufgerufen wird
4. Das Observer-Objekt reagiert anhand der übergebenen PoseEvent-ID.
5.2.3. Dritter Meilenstein
5.2.3.1. Exceptions
In unserem Projekt exisitieren drei Arten von Exceptions:
• AttitudeSensorException
• MiddlewareException
• SoundException (FrontEnd)
Die AttitudeSensorException enthält Fehlermeldungen, die die Vuzix 3D-Brille
betreffen. In der MiddlewareExceptions werden Fehlermeldungen gehalten, die die
Middleware betreffen, z. B. dass die Microsoft nicht verbunden oder kalibriert ist.
Weiterhin enthält die Soundexception aus dem FrontEnd Fehlermeldungen, die
den Sound betreffen. Beispielsweise, wenn ein Soundfile nicht geladen oder die Soundschnittstelle nicht gefunden werden kann.
Durch die Verwendung von try-catch-Blöcken werden so Fehler abgefangen und
ggf. werden Exceptions geworfen bzw. an eine höhere Hierarchieebene weitergegeben.
47
Projektgruppe
Virtual Reality
5. Implementierung
5.2.3.2. Gestenerkennung
Im Gegensatz zu den in 5.2.2.4 beschriebenen statischen Posen sind Gesten dynamischer Natur: Durch Bewegungen des Anwenders werden Ereignisse ausgelöst.
Dies kann zum Beispiel das Ziehen eines Schwertes durch eine intuitive Bewegung
umfassen oder das Aufrufen eines Menüs durch eine Click-Geste. Während bei den
Posen statisch vordefinierte Eigenschaften eines oder mehrerer Gelenke mit dem
aktuellen Skelett verglichen werden, werden bei der entwickelten Gestensteuerung
Bewegungen der einzelnen Gelenke betrachtet. Diese können sich entweder in der
Position oder in einem Winkel verändern.
Das verwendete Framework zur Nutzung der Kinect liefert zwar eine eigene Gestenerkennung mit, welche aber schwer zu verwenden ist. Wir haben uns daher für
eine eigene Gestensteuerung entschieden, welche sehr einfach zu verwenden ist und
der einer einfachen Implementierung zu Grunde liegt.
Die zentrale Komponente der Gestenerkennung ist der GestureM anager. Die
Hauptkomponente der Middleware (M iddleware :: M ain) ruft als Thread die
Methode work des GestureM anagers auf und übergibt dieser als Argument das
aktuelle Skelett des Benutzers. Jede Geste wird in einem Zustandsautomaten erkannt. Dieser wird jeweils durch Transistionen definiert, die entweder eine Gelenkwinkeländerung oder eine Positionsänderung beschreiben. Diese Änderungen
werden mit einer bestimmten Geschwindigkeit und einer Timeout-Zeit angegeben.
Die Überprüfung findet anhand der Änderungen der Skelettdaten statt.
5.2.3.3. Linuxtreiber der Vuzix-Brille
Für die verwendete stereoskopische Videobrille mit Lagesensor wird ein Treiber
und SDK nur für Microsoft Windows mitgeliefert. Für andere System wie Linux
kann die stereoskopische Ausgabe per VGA zwar ohne weiteres verwendet werden,
die Nutzung des Lagesensors ist aber nicht ohne weiteres möglich. Es ist zwar
ein Linux-Treiber für eine ältere Brille von Vuzix frei verfügbar, welcher aber für
die vorliegende Brille nicht funktioniert. Da wir unsere Middleware plattformunabhängig konzipiert haben und diese also auch unter Linux-Systemen lauffähig
48
Projektgruppe
Virtual Reality
5. Implementierung
sein sollte, musste ein eigener Treiber programmiert werden. Das Verhalten des
Originaltreibers diente als Vorbild für unseren Treiber, sodass die Middleware sich
unter Windows und Linux nach außen gleich verhält.
Zunächst stellte sich die Frage, wie die Daten der Brille, welche per USB an den
Computer angeschlossen wird, am besten auszulesen sind. Der erste Ansatz war
hier die Nutzung von libusb. Allerdings hat es sich hier als einfacher erwiesen, das
Gerät als Human Interface Device (HID) anzusprechen, da aktuelle Versionen des
Linux-Kernels die Brille sofort als solches erkennen. Die Verwendung eines HID in
eigenen Programmen gestaltet sich so einfach wie das Auslesen einer Datei.
Als nächstes muss man nun wissen, wie die Datenpakete der Brille beschaffen sind.
Anhand des Windows-Treibers des Herstellers1 konnte das Format und der Bereich
der Sensorwerte, welche als Rohdaten von der Hardware ausgelesen werden, festgestellt werden:
3 mal 2 Byte Magnetsensor x,y,z
3 mal 2 Byte Beschleunigungssensor x,y,z
3 mal 2 Byte High Bandwidth Gyroskop x,y,z
3 mal 2 Byte Low Bandwidth Gyroskop x,y,z
Dabei haben wir festgestellt, dass die ersten zwei Bytes der Daten von der Brille
nicht zu berücksichtigen sind, sondern beim Auslesen ein Offset von 2 zu benutzen
ist. Des Weiteren sind die Byte-Paare für die einzelnen Sensorwerte so geordnet,
dass das niederwertige Byte jeweils als erstes im Speicher liegt und als zweites das
höherwertige.
Für die Berechnung von Winkeln aus den Sensordaten müssen diese zunächst kalibriert werden. Die Kalibrierung stellt den minimalen und maximalen Wert jedes
Sensors fest. Der wahrgenommene Wertebereich kann je nach physikalischer Umgebung verschieden sein. Dies umfasst zum einen das Magnetfeld in der Umgebung,
die Erdbeschleunigung am aktuellen Ort und die Ruhedaten des Gyroskops. Die
Kalibrierungsdaten werden in einer Konfigurationsdatei abgespeichert und können
1
http://www.vuzix.com/UKSITE/support/downloads_drivers.html
49
Projektgruppe
Virtual Reality
5. Implementierung
zu einem späteren Zeitpunkt wiederverwendet werden. Soll das System an einem
anderen Ort betrieben werden, muss lediglich die Konfigurationsdatei attitudesensor.conf gelöscht werden.
Wie im originalen Windows-Treiber wurden bei der Berechnung des Pitch-Winkels
sowohl Beschleunigungssensor (im Vuzix-Handbuch „accelerometer“ genannt) als
auch Gyroskop verwendet. Hierbei wurde insbesondere überprüft, dass beide Werte auf plausible Weise zusammenpassen. Prinzipiell liefert das Gyroskop bessere
Ergebnisse, da es sehr gut die Bewegungen des Benutzers überträgt, dabei sehr
präzise ist und im Gegensatz zum Beschleunigungssensor nicht „zittert“ bzw. verrauschte Daten liefert. Allerdings besteht das Problem, dass das Gyroskop eine gewisse Trägheit aufweist und sich so mitunter große Fehler ergeben. Daher werden
diese mit dem Pitch-Wert, der aus den Daten des Beschleunigungssensors berechnet wird auf Plausibilität überprüft und gegebenenfalls korrigiert. Die Berechnung
des Pitch-Winkels des Beschleunigungssensors erfolgt als
pitch = atan2(sqrt(x2 + z 2 ), y)
wobei x,y,z die Sensorwerte sind. Da die Daten vom Beschleunigungssensors ein gewisses „Zittern“ aufweisen, haben wir eine Glättungsfunktion mit einem Ringpuffer
und einer geometrischen Reihe als Gewichtungsvorschrift gemessener Werte umgesetzt, sodass die vom Treiber berechneten Winkel auf den Benutzer nicht „ruckelig“,
sondern sehr natürlich und angenehm wirken. Mit diesem Verfahren werden sehr
gute Ergebnisse erzielt, welche mit dem Original-Treiber zu vergleichen sind. Der
Roll-Winkel wird analog zum Pitch berechnet.
Der Yaw-Winkel wurde ebenfalls wie im Originaltreiber berechnet: Hier dient das
Gyroskop als Grundlage. Die Daten werden im Gegensatz zum Pitch mit den
Magnetsensordaten korrigiert.
Es ist geplant, den Treiber auch separat unter einer freien Lizenz zu veröffentlichen,
sodass dieser uneingeschränkt benutzt und erweitert werden kann.
50
Projektgruppe
Virtual Reality
5. Implementierung
5.2.3.4. Bereiststellung des Zustandes der Middleware
Für die Überwachung des Zustands der Middleware existieren drei statische boolsche Variablen.
• static bool M ain :: isCalibrated
Diese Variable gibt an, ob eine Person kalibriert wurde.
• static bool M ain :: vuzixConnected
Diese Variable gibt an, ob die Vuzix 3D-Brille verbunden ist.
• static bool M ain :: kinectConnected
Diese Variable gibt an, ob die Microsoft Kinect verbunden ist.
Mit jedem Frameupdate wird die statische Variable für die Vuzix 3D-Brille abgefragt und ggf. wird anschließend der Blickwinkel angepasst, sofern der Lagesensor
der 3D-Brille verwendet werden soll.
Weitergehend prüft das FrontEnd, ob sich eine Person kalibriert hat und holt sich
ggf. dann das Skelett der kalibrierten Person, um es auf den Charakter zu übertragen.
Der Zustand des Frontends ist somit abhängig vom Zustand der Middleware. In
Abb. 5.3 ist ein Zustandsdiagramm für die Middleware zu sehen.
Abbildung 5.3.: Zustandsdiagramm der Middleware
51
Projektgruppe
Virtual Reality
5. Implementierung
5.2.3.5. Licht und Schatten
Die verwendete 3d-Engine Ogre3D unterstützt Shadow Mapping (über die fixed
pipeline) oder Stencil Volume Shadows. Das Shadow Mapping-Verfahren ist in
Ogre3D fehlerhaft implementiert: Es werden nicht nur Schatten auf den eigentlichen Receiver geworfen sondern auch auf Objekte, die sich zwischen Lichtquelle
und schattenwerfendem Objekt befinden. Des Weiteren besteht der Nachteil, dass
Ogre3D beim Shadow Mapping die Occluder und Receiver in disjunkte Mengen
einteilt, sodass sich Objekte nicht selbst beschatten können. Dies ist für eine heutige 3D-Anwendung mit dem Ziel einer möglichst realistischen Darstellung nicht
akzeptabel.
Die Shadow Volumes hingegen funktionieren einwandfrei, fordern allerdings gemäß
dem Shadow Volumes-Verfahren geschlossene Geometrie für alle Schattenwerfer.
Große Teile der Szene lagen jedoch nicht als solche vor. Des Weiteren wurde festgestellt, dass sich das Verfahren bei vielen Schattenwerfern negativ auf die Performance auswirkt. Aus diesen Gründen wurde die dynamische Schattierungsberechnung nur für den Character (Spielerfigur) als Occluder durchgeführt, da dieser
meist der einzige bewegte Bestandteil der Szene ist.
Die statischen Objekte wurden hingegen mit Lightmaps vorberechnet, welche realistische weiche Schatten liefern. Da die Erstellung der Szene bereits mit Blender
erfolgte, sollte auch die Erstellung von Lightmaps mit Blender getätigt werden.
Voraussetzung für gelungene Lightmaps ist die identische Positionierung der Lichtquelle in Blender und im Frontend. Die Berechnung einer Lightmap für das betrachtete Objekt benötigt lediglich zwei UV-Maps. Eine der beiden UV-Maps dient der
Texturierung des statischen Objekts. Die andere dient als Overlay für die Textur.
Dieses Overlay beinhaltet die berechnete Lightmap. Man wählt also die Textur,
die das Objekt haben soll, wählt dann die zweite UV-Map und lässt die Lightmap
auf diese UV-Map projizieren. Dazu wählt man den Layer mit der Lightquelle und
alle Layer, die einen Schatten auf das Objekt werfen sollen, aus. Dann erfolgt die
Berechnung der Lightmap, die dann im Normalfall als gestückelte Textur auf der
UV-Map erscheint. Die berechnete Lightmap kann anschliessend als Bild gespeichert werden, so dass beim erneuten Öffnen der Szene keine erneute Berechnungen
52
Projektgruppe
Virtual Reality
5. Implementierung
erforderlich ist. Dieser Vorgang musste für jedes statische Objekt aus der Szene,
das einen Schatten aufnehmen soll, durchgeführt werden. Anschließend konnte die
Szene zu Ogre3D exportiert werden.
5.2.3.6. Spiegel und Fernseher
Für das Erreichen einer intensiveren Immersion wurde zusätzlich ein Spiegel mit
Ogre3D in die Szene integriert. Dieser Spiegel bzw. die dahinter stehende Mathematik orientiert sich an der Dokumentation „Lerne OpenGL mit GL_Sourcerer“,
wobei Teile des Sourcecodes von Java in C++ umgesetzt wurden.
Die richtige Projektion des Spiegels auf die Spiegeloberfläche setzt den richtigen
Umgang mit der Viewmatrix voraus.
Das Vorgehen bei der der Berechnung des Spiegels geht wie folgt vonstatten: Drei
Eckpunkte des erstellten Spiegelobjekts (hier ein flacher Würfel, der die Maße des
Spiegels aufweisen soll) werden ermittelt. So kann später das Spiegelbild in der korrekten Skalierung dargestellt werden. Anschließend wird die Position der virtuellen
Kamera ermittelt, die das Bild aufnimmt welches später auf den Spiegel projiziert
werden soll. Für gewöhnlich befindet sich diese Kamera hinter dem Spiegel und
nimmt das Umfeld vor dem Spiegel auf. Mit den Berechnungsmethoden aus „Lerne OpenGL mit GL_Sourcerer“ wird der im Spiegel gezeigte Bereich berechnet.
Die Viewmatrix wird also dadurch angepasst. Das Frustum, die Nearplane und die
Farplane werden je nach Position des Betrachters, der in den Spiegel schaut, angepasst. Auf den mathematischen Hintergrund wird hier nicht weiter eingegangen.
Sind alle nötigen Berechnungen abgeschlossen, so kann das Spiegelbild gemäß der
Viewmatrix aufgenommen werden. Abschließend wird das erhaltene Bild mit der
Methode RTT (Render To Texture) in jedem Frame auf das erstellte Spiegelobjekt
projiziert.
Der Fernseher funktioniert ähnlich, nur dass dort keine Veränderung der Position vorgenommen wird. Das Kamerabild, welches der Fernseher zeigt, wird von
einer statischen Kamera aufgenommen. Das bedeutet, dass sich der Blickwinkel
in keinem Fall ändert. Die Projektion des Fernsehbildes wird wiederum mit der
RTT-Methode verabschiedet.
53
Projektgruppe
Virtual Reality
5. Implementierung
5.2.3.7. Modifizierter Oger
Aufgrund des Aussehens des in Ogre3D integrierten Ogers sollte das Äußere des
Ogers so angepasst werden, dass er menschlicher erscheint. Es existierte bereits eine
angelegte Datei in Blender, der den Oger enthielt. Mit einem Bildbearbeitungsprogramm wurde die Textur angepasst, so dass der Oger nicht mehr grün, sondern in
menschlicher Hautfarbe erscheint. Außerdem wurden die Armreifen sowie Nieten
und die Schwerter entfernt. Zum Schluss wurde das Gesicht des Ogers angepasst.
Es wurden die aus dem Kiefer ragenden Zähne entfernt und das Gesicht wurde
verformt, so dass es menschlicher aussieht. Das Verformen von Objekten erfolgte
mit Blender im Sculpt Mode. In Abbildung 5.4 ist das Ergebnis zu sehen.
Abbildung 5.4.: links: Oger von Ogre 3D, rechts: modifizierter Oger
5.2.3.8. Scripting
Die Möglichkeit zur Interaktion mit der virtuellen Welt ist ein integraler Part, um
Immersion zu erreichen. Eine interaktive Welt zu realisieren ist mit einem nicht zu
vernachlässigenden Aufwand verbunden, insbesondere die einzelnen Interaktionen
direkt in C++ zu implementieren.
Dieser Aufwand lässt sich auf lange Sicht durch den Einsatz einer Scripting-Sprache
umgehen. Die Scripting-Sprache wird zur Ausführungszeit interpretiert. Das hat
54
Projektgruppe
Virtual Reality
5. Implementierung
den Vorteil, dass maximal ein Neustart der Anwendung vonnöten ist, um Veränderungen im Script sichtbar zu machen.
Im Zuge unserer Einarbeitung in die Thematik stellten sich zwei Sprachen als mögliche Alternativen heraus: Zum einem Python, eine stark verbreitete ScriptingSprache, zum anderen Lua, eine Sprache, die insbesondere Verbreitung in der
Computerspiele-Brache gefunden hat. Die Wahl viel auf Lua, aufgrund der einfacheren Integration. Um Lua zu integrieren, musste lediglich ein Header eingebunden, sowie ein Objekt auf dem Stack mit der Script-Datei erzeugt werden. Die
Einbindung von Python wäre über ein Boost-Paket erfolgt, dessen Kompilierung
bereits die ersten Schwierigkeiten bereitete.
Das Scripting ist äußerst eng mit der Physik-Engine verbunden. Diese Verbindung
beruht darauf, dass die Physik-Engine beim Feststellen von Kollisionen zwischen
zwei Objekten bei beiden Objekten ein Event auslöst. Die Objekte leiten dieses
Kollisions-Event letztendlich an ein Script weiter, das genau für diesen Zweck dem
Objekt zugewiesen wurde.
5.2.3.9. Kollision
Wie das Scripting, trägt auch die physische Interaktion mit der Welt stark zum
Immersionsgefühl bei. Da die von uns verwendete Grafik-Engine keine eigene Kollisionserkennung bietet, mussten wir eine eigene Lösung erstellen bzw. eine externe
Lösung einbinden.
Aufgrund von kleineren Test-Projekten erwies sich ODE als geeignetere Wahl. Zur
Auswahl stand ebenfalls die Bibliothek Bullet. Von der Entwicklung einer eigenen
Physik-Engine wurde aufgrund des großen Zeitaufwands abgesehen.
Bei der Integration von ODE kam es zu einigen Problemen. Zum Beispiel das interne Mesh-Format von OGRE 3D nach ODE zu konvertieren. Der Grund hierfür war
zum einen, dass OGRE 3D den Mesh in sogenannte Sub-Meshes aufteilen kann.
ODE tut dies nicht. Zum anderen verwenden OGRE 3D und ODE unterschiedliche Koordinatensysteme. OGRE 3D benutzt Quantoren, ODE benutzt hingegen
einfache Vektoren. Als weitaus größtes Problem erwies sich die Ungenauigkeit von
55
Projektgruppe
Virtual Reality
5. Implementierung
ODE für Fälle, in denen die Step-Intervals2 Schritte nicht gleichmäßig sind. Diese
Ungenauigkeit führte dazu, dass Objekte, die bereits zum Stillstand gekommen
waren, ohne jeden Grund anfingen sich zu bewegen. Diese Eigenschaft zerstörte
das Immersionsgefühl vollständig. Aus diesem Grund ist die Physikberechnung in
der zur Evaluation genutzten Version nicht aktiviert.
2
Physik-Engines simulieren die Welt in diskreten Schritten, diese Schritte nennt man gemeinhin
auch Step-Intervals.
56
Projektgruppe
Virtual Reality
6. Testen
6. Testen
Um die Funktionalität der einzelnen Programm-Komponenten zu gewährleisten
sind Unittests zu einer unausweichlichen Notwendigkeit geworden. Die Middleware
libpgvr nutzt daher eine geeignete Software ausführlich.
6.1. C++ Unittest-Frameworks
Für die Middleware wurde als Programmiersprache C++ gewählt, somit stehen
eine Vielzahl von Unittest-Frameworks zu Verfügung. Um ein geeignetes UnittestFramework auszuwählen, müssen bestimmte Kriterien gegeneinander abgewogen
werden. Folgende Kriterien erschienen uns besonders relevant.
Einfache Nutzung ist als das wichtiges Kriterium bei der Auswahl des Frameworks zu betrachten.
Einfache Integration spielt ebenso ein wichtige Rolle, da der Zeitaufwand bis das
Framework zur Verfügung steht möglichst gering sein soll.
Anpassbarkeit erlaubt es das Unittest-Framework an bestimmt noch nicht abgedeckte Bedürfnisse anzupassen.
In die engere Auswahl kamen Boost Testing Library, CppUnit sowie TestDog. Obwohl CppUnit, von der von uns genutzten Grafikengine Ogre verwendet wird, kam
es aufgrund seiner Komplexität nicht in die engere Auswahl. Die Wahl fiel auf
TestDog, da es einfach zu benutzen ist und die Integration einfacher ausfiel als die
von Boost Testing Library.
57
Projektgruppe
Virtual Reality
6. Testen
6.2. TestDog
Kurz nach Beginn der Nutzung von TestDog, wurde das Projekt eingestellt. Der
Internet-Auftritt des Projekts wurde ebenfalls entfernt. 1 Da das Build-Management
von TestDog auf einer handgeschrieben Makefile basierte, wurde kurzerhand eine
CMakeFile für TestDog erstellt.
6.3. Ziele und Vorgehensweise
Das Unittest-Framework wurde eingeführt mit dem Ziel, für alle testbare Funktionen Tests zu erstellen. Eine testbare Funktion ist eine Funktion, deren erfolgreiche
Ausführung, durch einen boolschen Vergleich überprüft werden kann. Ein typischer
Test könnte wie folgt aussehen. 6.1
Listing 6.1: Typischer Test
double angle(const vec3f& a, const vec3f& b) {
double vn = sqrt(pow(a.x, 2) + pow(a.y, 2) + pow(a.z, 2));
double wn = sqrt(pow(b.x, 2) + pow(b.y, 2) + pow(b.z, 2));
double vw = (a.x ∗ b.x) + (a.y ∗ b.y) + (a.z ∗ b.z) ;
double t = vw / (vn ∗ wn);
return acos(t) ∗ 180 / PI;
}
TDOG_TEST_SUITE(PoseEvent0) {
TDOG_TEST_CASE(angleFunction) {
TDOG_SET_AUTHOR("burner");
vec3f a, b;
a.x = 1; a.y = 1; a.z = 0;
b.x = 1; b.y = 0; b.z = 0;
double angleR = angle(a,b);
TDOG_ASSERT_DOUBLE_EQUAL(angleR,45.0,0.1);
a.x = 1; a.y = 0; a.z = 0;
b.x = 1; b.y = 0; b.z = 0;
angleR = angle(a,b);
TDOG_ASSERT_DOUBLE_EQUAL(angleR,0.0,0.1);
a.x = 0; a.y = 1; a.z = 0;
b.x = 1; b.y = 0; b.z = 0;
angleR = angle(a,b);
TDOG_ASSERT_DOUBLE_EQUAL(angleR,90.0,0.1);
}
}
Wie der Name der Funktion suggeriert, berechnet die Funktion den Winkel zwischen zwei Vektoren. Die Aufrufe der Funktion TDOG_ASSERT_DOUBLE_EQUAL
1
URL des TestDog Projektes http://sourceforge.net/projects/test-dog/.
58
Projektgruppe
Virtual Reality
6. Testen
überprüfen in diesem Fall ,ob die zwei übergebenen Floats mit einer Abweichung
von 0.1 übereinstimmen. Ist dies nicht der Fall, wird der TDOG_TEST_CASE
(angleFunction) als fehlgeschlagen markiert. Alle Test-Suits werden in einem TestReport zusammengefasst.
6.4. Code-Review
Im Rahmen des Projektes haben wir aus verschiedenen Gründen ein formelles Code
Review durchgeführt. Dabei handelt es sich um ein analytisches Verfahren, mit dem
wir im Rahmen unserer Qualitätssicherungsmaßnahmen sicherstellen wollten, dass
wir unsere nicht-funktionalen Anforderungen und insbesondere die Code-Qualität
unbedingt einhalten und die uns selbst gesetzen Ziele termingerecht erreichen.
Wir haben durch das Codereview folgende Ziele erreicht:
• Verbesserung der Code-Qualität
• Lesbarkeit
• Wartbarkeit
• Einhaltung von Standards
• Fehleranfälligkeit
• Programmier Fehler auffinden
• Design Fehler auffinden
• Verständnis für fremden Code erhöhen
Es war schon vor dem ersten offiziellen Termin des Code Reviews eine deutliche
Auswirkung des anstehenden Reviews bemerkbar. So wurden viele Fehler kurz
vor dem Review behoben und Programmteile zu modifiziert, dass diese Standards
entsprechen, damit die untersuchenden Personen auf möglichst wenig Probleme
stoßen und ein zügiges Arbeiten ermöglicht wird. Dies wurde sicherlich durch unsere geringe Gruppengröße begünstigt, da durch die kurzen Kommunikationswege
bei Unklarheiten sofort weitere Meinungen eingeholt werden konnten.
59
Projektgruppe
Virtual Reality
6. Testen
Das eigentliche Vorgehen während des Reviews gestaltete sich dabei recht formell
und benötigte einige Zeit an Vorbereitung. Die Projektleitung hat die wichtigsten
Klassen dabei gruppiert und an verschiedene Personen zum Review verteilt. Jede
Person hatte dann eine Woche Zeit die ihm zugeteilten Klassen auf Kriterien hin
zu untersuchen, welche vorher festgelegt wurden.
Die Kriterien umfassten dabei folgende Kategorien, welche sich dann wiederum in
verschiede Unterpunkte unterteilten:
• Allgemeines
• Datendeklarationen
• Definition von Funktionen
• Definition von Klassen
• Datenreferenz
• Berechnungen
• Vergleich
• Steuerfluss
• Fehlerbehandung
• Input / Output
Dabei wurde darauf geachtet, dass niemand Code untersucht, welcher von ihm
selbst erstellt wurde. Nachdem jeder eine Woche Zeit hatte die Kriterien abzuarbeiten, wurde in einer Gruppensitzung noch einmal jeder gefundene Kritikpunkt
diskutiert. Dafür wurde ingesamt ca. ein halber Arbeitstag benötigt. Die gefundenen und akzeptierten Fehler wurden dann an die eigentlichen Autoren zur Verbesserung zurück gegeben und im Laufe des Projektes korrigiert.
Das Code Review hat sich für unsere Gruppe als gute Wahl erwiesen und uns wurde
so die Möglichkeit eröffnet viele Fehler zu beheben, welche sich sonst eventuell zu
einem späteren Projekt Zeitpunkt zu schwierigen und zeitaufwendigen Problemen
60
Projektgruppe
Virtual Reality
6. Testen
entwickelt hätten. Der return of investment (ROI) wurde so sicherlich schon nach
kurzer Zeit erreicht.
61
Projektgruppe
Virtual Reality
7. Evaluation
7. Evaluation
7.1. Formulierung von Thesen
Das System und sein Nutzen in Hinblick auf Immersion und Bedienbarkeit soll
durch die Durchführung eines Experimentes empirisch untersucht werden.
Dabei sollen folgende Thesen überprüft werden:
• Die Nutzung des Systems ist für den Anwender selbsterklärend und bedarf
keiner Anleitung.
• Das VR-System erhöht die Immersion im Vergleich zu einem klassischen
Desktop-PC deutlich.
• Die Kinect lässt die Bewegung im Raum natürlicher wirken.
• Die Videobrille erhöht maßgeblich das Präsenzempfinden.
7.1.1. Erläuterung der Thesen
7.1.1.1. Die Bedienbarkeit des Systems (Hypothese 1)
• Die Nutzung des Systems ist für den Anwender selbsterklärend und bedarf
keiner Anleitung.
Durch Untersuchen der ersten Hypothese soll ermittelt werden, ob das von uns
entwickelte System ohne Vorwissen, wie zum Beispiel durch Videospiele, genutzt
werden kann oder ob Nutzer, die zuvor noch nie mit einer ähnlichen Technologie
62
Projektgruppe
Virtual Reality
7. Evaluation
in Berührung gekommen sind, vorher eine Anweisung benötigen um das System
im vollen Umfang zu benutzen.
Der Proband wird vor der Nutzung nicht instruiert und weiß daher nicht was ihn
erwartet, bzw. welche Funktionen das Virtual-Reality-System unterstützt. Nach
dem Aufsetzen der Video-Brille wird er vom System selbst eingewiesen und soll
so feststellen, dass sich die Bewegungen seines Körpers genauso auf die virtuelle
Umwelt auswirken wie in der realen Welt. Die Erhebung der Daten erfolgt dabei
passiv durch Beobachtung. Wenn der Proband die Anweisungen des Systems befolgt und sich in der virtuellen Welt frei bewegt und die Funktionen im vollem
Umfang nutzt, dann ist die Hypothese bestätigt.
7.1.1.2. Grad der Immersion bei Nutzung des gesamten Systems
(Hypothese 2)
• Das VR-System erhöht die Immersion im Vergleich zu einem klassischen
Desktop-PC deutlich.
Durch Überprüfung dieser Hypothese soll festgestellt werden, in wie weit das
Hauptziele des Projekts (die Entwicklung eines möglichst immersiven VR-Systems)
erfüllt wurde. Der Grad der Immersion ist also der zu untersuchende Wert dieser
Evaluation. Wir vergleichen dabei die Anwendung bei Nutzung unseres vollständigen VR-Systems mit der Anwendung an einem klassischen Desktop-PC.
7.1.1.3. Vorteil durch Bewegungssteuerung (Hypothese 3)
• Die Kinect lässt die Bewegung im Raum natürlicher wirken.
Es ist davon auszugehen, dass die Bewegungssteuerung für das Präsenzempfinden
des Nutzers von sehr großer Bedeutung ist. Daher möchten wir feststellen, ob
sich die Bewegung durch den Raum durch die Bewegungssteuerung natürlicher
anfühlt.
63
Projektgruppe
Virtual Reality
7. Evaluation
7.1.1.4. Präsenzempfinden durch das HMD (Hypothese 4)
• Die Videobrille erhöht maßgeblich das Präsenzempfinden.
Die Untersuchung dieser Hypothese soll aufzeigen, ob sich das Präsenzempfinden
des Systems durch das Head Mounted-Display mit Stereoskopie erhöhen lässt.
Wir erwarten, dass das Head-Mounted-Display großen Einfluss auf die Immersion
hat.
7.2. Vorbereitung der Evaluation
Zum Überprüfen der genannten Thesen sind vier Testreihen pro Probanden notwendig. Zum Einsatz kommt dabei das Repeated-measures Design. Die Reihenfolgen der Versuchsaufbauten sind angelehnt an das Vorgehen nach Tognazzini. Die
unabhängige Variable ist die verwendete Technologie und die abhängige Variable
der Grad der Immersion. Dabei verwenden wir einen auf Immersion ausgerichteten
Fragebogen (siehe Anhang), der von den Probanden nach jedem Versuchsaufbau
ausgefüllt werden muss.
Die Versuchsaufbauten:
• Aufbau A: Monitor + Tastatur/Maus
• Aufbau B: HMD + Lagesensor/Kinect
• Aufbau C: Monitor + Lagesensor/Kinect
• Aufbau D: HMD + Tastatur/Maus
7.2.1. Der Fragebogen zum Messen der Immersion
Der Entwurf eines Fragebogens zum Messen von Immersion in virtuellen Welten ist
ein Unterfangen, welches intensiven Forschungsaufwand benötigt und im Rahmen
des Projektes nicht zu leisten gewesen wäre. Wir haben uns daher dafür entschieden auf standardisierte Fragebögen zurückzugreifen und versucht einen Fragebogen
64
Projektgruppe
Virtual Reality
7. Evaluation
zu finden, welcher unsere Anforderungen möglichst gut erfüllt. Dadurch haben wir
weiterhin sichergestellt, dass typische Fehler beim Design von Fragebögen ausgeschlossen werden.
Wir haben uns nach intensiver Suche für den „Measuring Presence in Virtual Environments: A Presence Questionnaire“ Fragebogen von Bob G. Witmer und Michael J. Singer des Forschungsinstitutes der US Army für „Behavioral and Social
Science“ entschieden. Dieser Fragebogen besteht aus sehr vielen Fragen, welche in
verschiedenen Kategorien eingeteilt werden können. Jede Frage verfügt zusätzlich
über einen Korrekturfaktor, welcher die Frage gewichtet und ihren Anteil an dem
Endergebnis bestimmt. Es waren jedoch minimale Anpassungen notwendig. Da
wir unser Experiment nicht mit anderen Experimenten vergleichen wollten, welche
ebenfalls auf Grundlage des selben Fragebogens ausgewertet wurden, bestand für
uns keine Notwendigkeit uns hundertprozentig an den Fragebogen zu halten. So
haben wir Fragen modifiziert, welche Themen abdecken, die in unserer virtuellen
Umgebung keine Rolle spielen (z. B. Fragen nach Geruch).
Die Fragen konnten von den Probanden mit den Werten Null bis Zehn beantwortet
werden, wobei eine Null für eine negative Antwort hinsichtlich der Frage stand und
eine Zehn entsprechend für eine positive Antwort.
7.3. Die virtuelle Umgebung
Es wird nun die virtuelle Umgebung beschrieben, die für die Evaluation verwendet
wird. Die Umgebung besteht aus einem Wohnzimmer, weiße Rauhfaser-Tapete
und Parkettboden, mit zwei Fensterfronten in Richtung eines weitläufigen Areals
im mediteranen Stil und in Richtung einer berankten Wand eines Nachbarhauses.
Aus Richtung des Areals sind Wind, Stimmen und Vögel zu hören. In dem Raum
gibt es eine Eingangstür gegenüber der Fensterfront.
65
Projektgruppe
Virtual Reality
7. Evaluation
Abbildung 7.1.: Spiegel, Sideboard und Plattenspieler
Aus Richtung der Eingangstür sind manchmal Stimmen und Geräusche beim Öffnen einer Tür zu hören. Neben der Eingangstür steht ein Fernsehschrank inklusive
Fernseher. Links daneben ein Sideboard mit einem Plattenspieler. Über dem Plattenspieler hängt ein Bild in einem Bilderrahmen. Links und rechts neben dem
Sideboard sind zwei Stereolautsprecher aufgestellt.
Abbildung 7.2.: Fernseher und Eingangstür
66
Projektgruppe
Virtual Reality
7. Evaluation
Auf dem Plattenspieler wird ruhige klassische Musik gespielt, die über die beiden
Stereolautsprecher ertönt. Auf dem Fernseher wird eine Echtzeitübertragung einer
virtuellen Überwachungskamera angezeigt. Wenn der Proband dem Fernseher nahe
genug kommt, wird die Echtzeitübertragung durch ein Pinguin-Video ersetzt. An
einer Fensterfront steht eine rote Couch. Bei der anliegenden Fensterfront stehen
Weinfässer und Kisten. Dem Probanden wird vermittelt, dass er sich in Florenz
befindet und er wird von einer computergenerierten Frauenstimme in die Szenarie
eingeführt. Sie weist ihn an sich frei im Raum zu bewegen und sich dem Fernseher
zu nähern.
Abbildung 7.3.: Couch und Fensterfront
7.4. Durchführung der Evaluation
Die Evaluation fand mit einem Umfang von 16 Probanden am 29.2.2012 und
1.3.2012 in der Universität statt. Pro Proband wurden 30 Minuten eingeplant.
Dabei nutzten die Testpersonen jeden Versuchsaufbau ca. 90 Sekunden. Der Fragebogen wurde im Durchschnitt in ca. zwei Minuten ausgefüllt. Vor Beginn der
Evaluation mussten die Probanden eine Einverständniserklärung unterschreiben,
die umfangreich über Risiken und Ablauf informierte. Eine Kopie der Einverständniserklärung befindet sich im Anhang. Bei der Untersuchung wurde der Raum
abgedunkelt um die Ablenkung der Probanden durch die natürliche Umwelt zu
67
Projektgruppe
Virtual Reality
7. Evaluation
minimieren. Bei den Tests kam es zu keinen nennenswerten Störung im Ablauf, so
dass die Ergebnisse aller 16 Probanden gewertet werden können.
Abbildung 7.4.: Ein Proband nutzt das VR-System
68
Projektgruppe
Virtual Reality
7. Evaluation
Abbildung 7.5.: Ein Proband füllt den Fragebogen aus
7.5. Ergebnisse der Evaluation
7.5.1. Qualitative Auswertung
Während der Evaluation sind, neben den durch den Fragebogen erhobenen Daten, zusätzlich qualitative Beobachtungen gemacht worden. Wir haben dazu die
einzelnen Probanden beobachtet und ihr Verhalten protokolliert. Diese Informationen haben wir informell ausgewertet und sind dabei zu folgenden Schlüssen
gekommen:
• Die Steuerung mit der Kinect ist zuerst nicht intuitiv. Es hat meistens eine
kurze Zeit gedauert, bis die Probanden bemerkt haben, dass sie sich im
Raum bewegen können. Sofern die Probanden vorher einen Versuchsaufbau
69
Projektgruppe
Virtual Reality
7. Evaluation
mit Maus und Tastatur durchlaufen sind, ist dieses Problem weniger relevant
gewesen.
• Im Gegensatz zum vorherigen Punkt, ist die Steuerung mit Maus und Tastatur in der Regel bekannt gewesen. Zwar gab es auch einige Teilnehmer,
die diese Steuerung noch nicht kannten, jedoch waren keine großen Schwierigkeiten zu beobachten.
• Die 3D Brille wurde von vielen Probanden als zu schwer oder unhandlich
bemängelt. Teilweise mussten Probanden während des Versuchs die Brille
festhalten, um diese beim Umgucken nicht zu verlieren oder zu beschädigen.
• Drehungen mit dem HMD wurden als schwierig empfunden, während man
am PC saß.
Aufgrund des jungen Durchschnittsalters der Probanden vermuten wir, dass die
Steuerung mit Maus und Tastatur durch Computerspiele bekannt war und daher
keiner genaueren Erklärung bedurfte. Die Kinect hingegen ist erst seit kurzer Zeit
für Endkunden verfügbar, wodurch im kollektiven Bewusstsein die genaue Funktionsweise noch nicht verankert ist.
7.5.2. Mathematische Auswertung
Die Fragebögen aller Probanden wurden mathematisch ausgewertet. Dabei wurde grundsätzlich zwischen den vier verschiedenen Versuchsaufbauten differenziert.
Zum Messen des Immersionsgrades wurde jede der 19 Fragen mit einem Gewichtungsfaktor multipliziert. Anschließend wurden für jeden Versuchsaufbau die Werte aller 19 Fragen addiert, der Mittelwert aller Probanden ermittelt und abschließend durch die möglich Maximal-Punktzahl (67,5) dividiert. Das Ergebnis ist der
Grad der Immersion, der zwischen 0 uns 1 liegt.
Um die Aussagefähigkeit unserer Ergebnisse zu bestimmen, wurden die Daten mit
einem Zweistichproben-t-Test untersucht. Der Zweistichproben-t-Test ist ein Signifikanztest der mathematischen Statistik und überprüft, ob zwei Stichproben signifikant unterschiedlich verteilt sind. Für unsere Evaluation haben wir den abhängi-
70
Projektgruppe
Virtual Reality
7. Evaluation
gen two-tailed t-Test verwendet, da wir zwei von einander abhängige Stichproben
durch das Repeated-measures design erhalten. Liegt das Ergebnis des t-Tests nicht
unter einem gewählten Signifikanzniveau, so kann die Nullhypothese (Daten beider
Stichproben sind gleich verteilt) nicht abgelehnt werden. Liegt das Ergebnis jedoch
unterhalb des Signifikanzniveaus kann, so kann die Nullhypothese zugunsten der
Hypothese (Daten beider Stichproben sind signifikant unterschiedlich verteilt) abgelehnt werden. Für unsere Untersuchung haben wir ein Signifikanzniveau von 5
Prozent gewählt. Das bedeutet, dass das Verwerfen der Nullhypothese mit einer
Wahrscheinlichkeit von über 95 Prozent richtig ist und die Wahrscheinlichkeit, dass
die Daten nur zufällig unterschiedlich verteilt sind, unter 5 Prozent liegt.
Um die Ergebnisse weiterhin grafisch zu veranschaulichen nutzen wir BoxplotDiagramme. Boxplots geben schnell und übersichtlich Aufschluss darüber, wie Daten verteilt sind. Die dabei verwendeten Größen sind (von oben nach unten):
• Maximum
• Oberes Quantil (75 Prozent der Daten liegen unterhalb des Wertes)
• Median (50 Prozent der Daten liegen unterhalb des Wertes)
• Unteres Quantil (25 Prozent der Daten liegen unterhalb des Wertes)
• Minimum
Die Box zwischen dem oberen und unteren Quantil zeigt dabei auf, wo 50 Prozent
der erhobenen Daten liegen.
(Die Daten der ausgefüllten Fragebögen befinden sich im Anhang)
7.5.2.1. Immersionsgrad der Versuchsaufbauten
Bei der Auswertung aller Fragebögen wurden die folgenden Immersionsgrade für
die vier unterschiedlichen Versuchsaufbauten ermittelt:
• Versuchsaufbau A = 0,5195
• Versuchsaufbau B = 0,6750
71
Projektgruppe
Virtual Reality
7. Evaluation
• Versuchsaufbau C = 0,4845
• Versuchsaufbau D = 0,5596
Versuchsaufbau A (Verwendung der Kinect und des HMD) hat demnach den größten Immersionsgrad erzielt. Überraschenderweise ist bei der Verwendung der Kinect ohne Videobrille (Versuchsaufbau C) der Immersionsgrad geringer als bei der
klassischen PC-Nutzung mit Maus und Tastatur (Versuchsaufbau A)
Abbildung 7.6.: Boxplots - alle Versuchsaufbauten
Das Boxplot-Diagramm zeigt für jeden Versuchsaufbau die Verteilung der Messergebnisse und macht deutlich, dass sich nur Versuchsaufbau B bedeutsam von den
anderen Aufbauten abhebt. Der Zweistichproben-t-Test zwischen Versuchsaufbau
A und B ergibt einen Wert von 0,000642 und liegt damit deutlich unter dem Signifikanzniveau von 0,05. Die Nullhypothese kann damit abgelehnt werden und es gibt
einen essenziellen Unterschied zwischen der Immersion durch einen Desktop-PC
72
Projektgruppe
Virtual Reality
7. Evaluation
und der Immersion durch unser VR-System. Unsere Hypothese „Das VR-System
erhöht die Immersion im Vergleich zu einem klassischen Desktop-PC deutlich“
wurde dabei bestätigt. Deutlich wird weiterhin, dass dies nur durch Kinect und
Videobrille zusammen erreicht wird. Die alleinige Nutzung der Kinect oder des
HMD führt zu keinem signifikanten Immersionsgewinn im Vergleich zum DesktopPC.
7.5.2.2. Bewegung in der virtuellen Welt
Im Folgenden wird auf die Bewegung in der virtuellen Welt eingegangen. Anhand
der Frage „Wie natürlich empfanden Sie die Bewegung in der virtuellen Welt?“
wird ausgewertet, ob und wodurch sich die Natürlichkeit der Bewegung erhöhen
lässt. Verglichen werden dabei die Antworten der Frage für Versuchsaufbau A
(Desktop-PC) mit Versuchsaufbau C (Monitor und Kinect).
Abbildung 7.7.: Boxplots - Bewegung im Raum mit und ohne Kinect
73
Projektgruppe
Virtual Reality
7. Evaluation
Das Diagramm zeigt, dass die Bewegungssteuerung über die Kinect die Bewegung
im virtuellen Raum deutlich natürlicher erscheinen lässt. Ein durchgeführter t-Test
mit dem Ergebnis von 0,0000237 bestätigt die Annahme. Unsere Hypothese „Die
Kinect lässt die Bewegung im Raum natürlicher wirken“ ist damit bestätigt.
Abbildung 7.8.: Boxplots - Bewegung im Raum mit und ohne Videobrille
Dieses Diagramm zeigt die Boxplots der selben Frage für Versuchsaufbau A (ohne
HMD) und Versuchsaufbau D (mit HMD) und macht deutlich, dass die Videobrille
keinen positiven Einfluss auf die Natürlichkeit der Bewegungen im virtuellen Raum
hat.
7.5.2.3. Präsenzempfinden
In diesem Unterkapitel wird untersucht, ob und wodurch sich das Präsenzempfinden steigern lässt. Die Ergebnisse der Frage „Wie intensiv waren Sie in der virtuel-
74
Projektgruppe
Virtual Reality
7. Evaluation
len Welt integriert?“ werden für Versuchsaufbau A (Desktop-PC ohne HMD) mit
Versuchsaufbau D (mit HMD) verglichen.
Abbildung 7.9.: Boxplots - Präsenzempfinden mit und ohne Videobrille
Das Diagramm zeigt, dass die Videobrille den Nutzer intensiver in die virtuelle
Welt eintauchen lässt. Bestätigt wird dies durch ein Ergebnis von 0,0017248 beim
t-Test.
75
Projektgruppe
Virtual Reality
7. Evaluation
Abbildung 7.10.: Boxplots - Präsenzempfinden mit und ohne Kinect
Dieses Diagramm zeigt die Boxplots der selben Frage für Versuchsaufbau A (ohne
Kinect) und Versuchsaufbau C (mit Kinect) und zeigt, dass die Kinect keinen
messbaren Einfluss auf die Intensität des Präsenzempfinden hat.
Weiterhin wird die Frage „Wie schnell haben Sie sich in die virtuelle Welt versetzt
gefühlt?“ untersucht. Die Ergebnisse werden im folgenden für Versuchsaufbau A
(Desktop-PC ohne HMD) und Versuchsaufbau D (mit HMD) dargestellt.
76
Projektgruppe
Virtual Reality
7. Evaluation
Abbildung 7.11.: Boxplots - Versetzung in die virtuelle Welt mit und ohne
Videobrille
Die Verteilung der Daten verdeutlicht, dass die Videobrille den Nutzer schneller in
die virtuelle Welt versetzt. Bestätigt wird dies durch ein Ergebnis von 0,0003739
beim t-Test. Unsere These „Die Videobrille erhöht maßgeblich das Präsenzempfinden“ ist damit bestätigt.
77
Projektgruppe
Virtual Reality
7. Evaluation
Abbildung 7.12.: Boxplots - Versetzung in die virtuelle Welt mit und ohne Kinect
Dieses Diagramm zeigt die Werteverteilung der selben Frage für Versuchsaufbau
A (ohne Kinect) und Versuchsaufbau C (mit Kinect) und macht deutlich, dass die
Kinect den Nutzer nicht schneller in die virtuelle Welt versetzt.
7.5.2.4. Geräusche in der virtuellen Welt
Die Frage „Wie gut konnten Sie Geräusche lokalisieren?“ hat für Versuchsaufbau
A (Desktop-PC ohne HMD) und Versuchsaufbau D (mit HMD) folgende Datenverteilungen:
78
Projektgruppe
Virtual Reality
7. Evaluation
Abbildung 7.13.: Boxplots - Geräusche lokalisieren mit und ohne Videobrille
Das Diagramm zeigt, dass die Geräusche mit Videobrille signifikant besser lokalisierbar sind als ohne Videobrille. Ein durchgeführter t-Test mit dem Ergebnis von
0,0014441 bestätigt die Annahme.
7.5.2.5. Vergleich zur realen Welt
Im Folgenden soll ermittelt werden, ob das von uns entwickelte VR-System die
Bedienung im Vergleich zum klassischen Desktop-PC natürlicher erscheinen lässt
und der Nutzer sich dadurch mehr an die reale Welt erinnert fühlt. Die Frage
„Wie ähnlich waren ihre Erfahrungen in der virtuellen Welt im Vergleich zur realen
Welt?“ hat für Versuchsaufbau A (Desktop-PC) und Versuchsaufbau B (mit Kinect
und mit HMD) folgende Datenverteilungen:
79
Projektgruppe
Virtual Reality
7. Evaluation
Abbildung 7.14.: Boxplots - Natürlichkeit der virtuelle Welt mit Kinect/HMD und
ohne Kinect/HMD
Die Verteilung Boxplots zeigt deutlich, dass die Nutzung von Videobrille und
Bewegungssteuerung über die Kinect die Nutzung des Systems maßgeblich realer erscheinen lassen. Der Zweistichproben-t-Test zwischen Versuchsaufbau A und
Versuchsaufbau B ergibt einen Wert von 0,0002130. Unsere Annahme ist damit
bestätigt.
7.6. Fazit
Die Evaluation wurde erfolgreich abgeschlossen und hat die von uns erwarteten
Ergebnisse geliefert. Die Resultate zeigen deutlich, dass wir unser Projektziel (ein
möglichst immersives VR-System zu entwickeln) erfüllt haben. Weiterhin zeigen
80
Projektgruppe
Virtual Reality
7. Evaluation
die Ergebnisse, dass unser Vorgehen, die Kinect und die Videobrille zusammen
einzusetzen, die richtige Entscheidung war. Denn nur, wenn beide Komponenten
zusammen zum Einsatz kommen, wird der Grad der Immersion signifikant erhöht.
Die Kinect hat dabei erwartungsgemäß einen positiven Einfluss auf natürlich erscheinende Bewegungen. Die Videobrille hingegen ist essenziell für das Präsenzempfinden und lässt den Nutzer in die virtuelle Welt eintauchen.
81
Projektgruppe
Virtual Reality
8. Persönliche Fazite
8. Persönliche Fazite
8.1. Persönliches Fazit von Robert Schadek
Grundsätzlich ist ein positives Fazit zu ziehen. Die aufgetretenen Probleme waren
hauptsächlich handwerklicher Natur.
Insbesondere Ogre3d stellte einige unnötige Herausforderungen bereit. Die Trennung von Sourcen und Headern führte insbesondere zu unnötig langen Wartezeiten, die einem effizientes Arbeiten oft im Weg standen. Der Versuch von Ogre3d
durch diese Trennung eine Java ähnliche Entwicklung zu ermöglichen führt noch
an anderen Stellen zu unangenehmen Problemen. So wurde z. B. versucht durch
typedef s kurze Namen für Typen einzuführen. Allerdings führte dies dazu, dass
man, bevor man Methoden des eigentlichen Typen verwenden konnte, erst einmal
den eigentlichen Typen bestimmen musste.
OpenNI und Nite waren im Vergleich zu Ogre3d relativ einfach zu nutzen. Die
größte Schwierigkeit bestand darin eine Version zu finden und zu installieren, die
bei allen Gruppenmitglieder funktioniert.
Abschließend kann ich nur sagen, dass das Projekt für mich ein voller Erfolg war.
Sowohl was die Gruppe als auch die Bearbeitung der Aufgabe angeht.
8.2. Persönliches Fazit von Christian Herz
Mein persönlicher Eindruck dieser Projektgruppe ist sehr positiv. Die Zusammenarbeit mit den Projektgruppenmitgliedern war stets sehr angenehm. Streitpunkte
gab es selten, was für mich von sehr großer Sympathie und ein gutes Team zeugt.
82
Projektgruppe
Virtual Reality
8. Persönliche Fazite
Traten einmal Verständnisprobleme oder Meinungsverschiedenheiten auf, so wurden diese immer gemeinsam bewältigt.
Zu Ogre3D muss ich sagen, dass es anfangs ziemlich einfach aussah, wobei sich letzten Endes herausstellte, dass teilweise Dinge unzureichend implementiert wurden,
wie z. B. das Shadow Mapping. Auch bei den Beispielen auf deren Webseite hätten sie grundlegende Dinge, wie die Implementierung eines Spiegels zeigen sollen.
Zugute kam mir persönlich auf jeden Fall das gut besuchte Forum von Ogre3D.
OpenNI und Nite haben uns auf jeden Fall die Projektarbeit erleichtert, weil es
für Linux sowie Windows verfügbar ist und bereits eine Skeletterkennung existiert.
Hätte solch eine Skeletterkennung noch nicht existiert, dann wären wir sicherlich
nicht so weit mit unserem Projekt gekommen wie es jetzt der Fall ist.
Weitergehend hatte ich die Möglichkeit weitere Kenntnisse in C++, dem Teamwork
sowie dem Erstellen von CMake-Skripten zu sammeln. Erste Eindrücke in der 3DModellierung mittels Blender bereitete mir sehr viel Freude.
Abschließend kann ich sagen, dass ich wirklich froh bin diese Projektgruppe gewählt zu haben. Wir haben viel erreicht und niemals vergessen, dass ein gutes
Arbeitsklima von großer Bedeutung ist. Grillabende oder das Bestellen von Pizza
hat das Arbeitsklima stets aufgelockert und man konnte sich auch außerhalb der
Universität kennenlernen.
8.3. Persönliches Fazit von Jendrik Poloczek
In Bezug auf das Team kann ich sagen, dass meine Kollegen und ich versucht haben stets, bis auf wenige Ausnahmesituationen, rational zu argumentieren. Das
Arbeitsklima war mir und meinen Mitstreitern, sehr wichtig, sodass wir stets darauf geachtet haben, dass sich keine Missverständnisse oder Ungereimtheiten hochschaukeln. Alle Mitglieder haben versucht sich einzubringen. Besonders gut fand
ich die Kompetenz des Teams, und die Möglichkeit sich in seinen eigenen Interessengebieten ausgiebig, aber durch die Anforderungen begrenzt, auszuleben. Wenn
83
Projektgruppe
Virtual Reality
8. Persönliche Fazite
man das Augenmerk auf die Technik und die Umsetzung legt, bleibt zu erwähnen, dass unser System aufgrund vieler Abhängigkeiten sehr komplex, durch sehr
viele Abhängigkeiten, und in meinen Augen nur durch den Einsatz des Buildsystems CMake zu bändigen war. Die verwendeten Abhängigkeiten waren teils
schwierig einzusetzen, da die Dokumentation verschiedener Teilsysteme nur befriedigend war. Die Gruppe hat es dennoch sehr gut geschafft auf Grundlage der
Anforderungen, eine entsprechend gut funktionierende Architektur zu entwerfen.
Ich habe viel über OpenAL, Ogre3D und Blender gelernt. Und für mich war es das
erste Teamprojekt mit der Programmiersprache C++.
8.4. Persönliches Fazit von Matthias Bruns
Beim Projekt Virtual Reality habe ich viele Erfahrungen gesammelt und vieles gelernt, in Bereichen mit denen ich bisher wenig in Kontakt gekommen bin.
Mein bisheriges Studium der Wirtschaftsinformatik an der Universität Göttingen war stark betriebswirtschaftlich orientiert und beinhaltete nur ein Semester
Java-Programmierung. Die Projektgruppe hat mir die Möglichkeit gegeben meine
Programmierfähigkeiten auszubauen und ich habe das erste mal mit C++ arbeiten
können. Auch die Arbeit mit Ogre3D, der Versionsverwaltung Git und das Modellieren mit Blender waren neu für mich und ich habe viel dazu gelernt. Aufgrund
der Vielseitigkeit und dem Zeitraum über zwei Semester, bin ich mir sicher, dass
mich die Projektgruppe in meinem Studium wesentlich weiter gebracht hat, als
mehrere einzelne Module mit gleichem KP-Umfang es ermöglicht hätten.
Auch das Arbeitsklima im Team war durchgehend angenehm. Meinungsverschiedenheiten traten nur bezüglich Projektentscheidungen auf und konnten immer
schnell gelöst werden. Auch die Grillabende und andere gemeinsame Aktivitäten
außerhalb der Uni bleiben positiv in Erinnerung.
Zusammenfassend hat mir das Projekt Virtual Reality sehr viel Spass gemacht.
Das Thema empfand ich als sehr interessant und ich habe dabei viel lernen können. Wir haben die Komponenten Kinect, Videobrille und 3D-Engine erfolgreich
84
Projektgruppe
Virtual Reality
8. Persönliche Fazite
zusammengebracht. Das Ergebnis der Evaluation zeigt, dass wir unser Projektziel erreicht haben und ich denke, dass wir durchaus stolz auf unsere Arbeit sein
können.
8.5. Persönliches Fazit von Justin Heinermann
Die Wahl der Projektgruppe für das zweite und dritte Semester des M.Sc.-Studienganges
Informatik ist oft keine einfache, da man sich ein Jahr lang mit der Thematik
des Projektes, der Gruppe und den Betreuern zurechtfinden muss. Da in unserer
Projektgruppe eine sehr interessante Thematik behandelt wurde und wir unsere Aufgabenstellung erfolgreich umgesetzt haben, beurteile ich meine Wahl der
Projektgruppe als positiv.
Weil bei mir die persönliche Motivation für die Beschäftigung mit Grafikprogrammierung und technischen Neuheiten gegeben ist, war auch die Motivation für das
Projekt hoch. Da die Konkretisierung der Aufgabenstellung bei uns Projektmitgliedern selbst lag, konnten wir das Projektziel nach unseren eigenen Wünschen
formulieren. Was wir mit dem Projekt zu sechst in einem Jahr realisiert haben, ist
in meinen Augen als Erfolg zu werten.
Zu den persönlichen Erfahrungen in der Projektgruppe ist zunächst die Gruppenarbeit zu nennen, die die Projektmitglieder vor eine neue Situation gestellt hat. Das
wichtigste ist hier, dass alle Mitglieder gemeinsam auf die Ziele der Gruppe hinarbeiten. In unserem Fall hat sich gezeigt, dass sich durch die relativ kleine Gruppengröße, Organisation und Kommunikation relativ einfach gestaltet haben.
Auf technischer Seite hat sich gezeigt, dass wir viele verschiedene Softwarebibliotheken verwenden mussten, was softwaretechnisch für mich eine neue Arbeitsweise
bedeutete. Leider ist man hier auf manchmal spärliche Dokumentation von den
verschiedenen Bibliotheken angewiesen und es ist nicht unbedingt im Vorfeld ersichtlich, welche Aufgaben tatsächlich zuverlässig und wie gewünscht von der jeweiligen Software verrichtet werden. Für meine persönliche Erfahrung hat sich hier
gezeigt, dass man im Vorfeld noch sorgfältiger beurteilen sollte, welche Bibliotheken sich eignen und wie ausgereift diese sind.
85
Projektgruppe
Virtual Reality
8. Persönliche Fazite
Bei der Grafikprogrammierung würde ich in Zukunft eher auf eine eigene Grafikengine (z.B. mit OpenLG) setzen als auf eine fertige Engine wie Ogre3d. Die
Vorteile, die einem versprochen werden und die tatsächlich zum Tragen kommen,
werden erkauft durch eine oft eingeschränkte Flexibilität und ein großes, schwer
zu verstehendes System. Falls ein solches System Unzulänglichkeiten hat, muss
zusätzlicher Aufwand betrieben werden ,um diese zu umschiffen.
Als besonders positiv für den Lerneffekt empfand ich, abseits von den Kernaufgaben des Projektes, die Entwicklung des Linux-Treibers für den Lagesensor, da
dieser eine neue Herausforderung für mich darstellte.
Für das Projektmanagement habe ich als Lektion mitgenommen, dass Ziele eindeutig und gemeinsam formuliert werden sollten und dass Zeitpläne realistisch gesetzt
werden sollten.
8.6. Persönliches Fazit von Tim Jörgen
Mein Fazit bezüglich der Projektgruppe ist durchaus positiv. Persönlich habe ich
gelernt, dass Plattformunabhängigkeit auch beim Einsatz von darauf spezialisierten Tools eine extrem kostenaufwendige Sache ist, deren Wirtschaftlichkeit man
sich genau überlegen sollte.
Angenehm war das Arbeitsklima, bei dem sehr flexibel gearbeitet werden konnte,
wodurch es nie zu Schwierigkeiten gekommen ist, wenn andere Termine anstanden. Durch unsere lockere Arbeitsweise konnte man auch unkompliziert Termine
finden.
Was ich künftig anders machen würde, ist eine Sprache wie C++ für ein solch
umfangreiches Projekt zu verwenden. Eine moderne Sprachen mit Garbage Collection hätten meiner Meinung nach die vorhandenen Human Resourcen deutlich
geschont. Ein Zugriff auf die OpenNI libs wäre problemlos über JNA möglich gewesen.
Insgesamt sind wir aber denke ich alle froh, dass wir diese Gruppe gewählt haben,
da wir sehr viel gelernt haben.
86
Projektgruppe
Virtual Reality
9. Fazit und Ausblick
9. Fazit und Ausblick
Die Projektgruppe Virtual Reality begann im April 2011 und endete im März
2012. In dieser Zeit haben wir es uns zur Aufgabe gemacht, die Herausforderung zu
meistern, aus Consumer Products und freier Software ein immersives VR-System
zu entwickeln. Wir haben dabei eine 3D-Engine mit einer Bewegungssteuerung per
Microsoft Kinect und der Videobrille Vuzix Wrap 920 kombiniert.
Bei der Entwicklung lag unser Fokus auf der Erstellung einer Middleware, auf
der auch andere VR-basierte Software aufsetzen kann, die die Kinect und Vuzix
Videobrille als Eingabegeräte verwendet. Im Laufe der Projektgruppe sind wir
dabei auf viele Probleme gestoßen. So waren beispielsweise für die Vuzix Wrap 920
keine Linux-Treiber verfügbar und die Grafik-Engine Ogre3D ließ sich aufgrund
diverser Defizite in der Implementierung, zum Teil nur unter sehr großem Aufwand
in unser Projekt integrieren. Zum Ende des Projekts konnten wir allerdings alle
Probleme lösen und haben alle unsere Meilensteine erfolgreich erreicht.
Das Ergebnis ist ein VR-System, das den Nutzer in eine virtuelle Welt eintauchen
lässt. Körper- und Kopfbewegungen werden in Echtzeit verarbeitet und über die
Videobrille ausgegeben. Um abschließend zu klären, ob unser System auch wirklich
immersiver ist als ein klassischer Desktop PC, haben wir das VR-System umfangreich evaluiert. Dabei haben 16 Probanden unsere Entwicklung getestet und einen
auf Immersion ausgerichteten Fragebogen ausgefüllt. Das Ergebnis der Evaluation
ist eindeutig: Das von uns entwickelte VR-System ist signifikant immersiver als
die Nutzung von Tastatur und Maus am Computer-Monitor. Unser Projektziel,
ein möglichst immersives VR-System zu entwickeln, haben wir damit nachweislich
erfüllt. Die Evaluation hat weiterhin gezeigt, dass unsere Entscheidung, die Kinect
und die Videobrille zusammen einzusetzen, richtig war. Denn nur die Zusammenarbeit beider Geräte führt zu einer maßgeblichen Erhöhung der Immersion.
87
Projektgruppe
Virtual Reality
9. Fazit und Ausblick
Trotz des Erfolges bei der Entwicklung, bietet das System noch viel Potential zur
Verbesserung und Weiterentwicklung, die allerdings bessere Hardware erfordert
die noch nicht verfügbar ist. Insbesondere die Videobrille hat ein großes Defizit:
die Auflösung der Displays ist sehr gering und man hat bei der Nutzung das Gefühl, auf weit entfernte Projektionsflächen zu schauen. Auch die zweite Version der
Microsoft Kinect, die 2013 erscheinen soll, könnte die Genauigkeit der Körpererfassung deutlich erhöhen und würde den Nutzer noch präsenter in der virtuellen
Welt erscheinen lassen.
Die Präsentation unseres VR-Systems auf einer Schülerveranstaltung an der Universität hat gezeigt, dass das Thema virtuelle Realität auf sehr großes Interesse
stößt. Aber nicht nur für Privathaushalte sind VR-Systeme interessant. Auch Unternehmen nutzen vermehrt VR-Anwendungen um zum Beispiel neue Produkte
noch vor der Herstellung realitätsnah anschaulich machen zu können. Das von uns
entwickelte System könnte beispielsweise von Architekten dazu verwendet werden, um Bauprojekte schon im Entwurfsstatus virtuell begehen und erkunden zu
können.
Zusammenfassend haben wir unser Projekt erfolgreich abgeschlossen. Das von uns
entwickelte VR-System ermöglicht das Eintauchen in eine virtuelle Welt und ist
dabei messbar immersiver als klassische Desktop-PCs. Weiterhin haben wir alle
viel dazu gelernt, positive Erfahrungen gesammelt und uns allen hat die Arbeit an
unserem Projekt sehr viel Spass gemacht. Wir bedanken uns auch bei Prof. Dr.
Wolfgang Kowalk und Dipl.-Inf. Stefan Brunhorn für die sehr gute Betreuung mit
konstruktiven Vorschlägen und einer freundlichen Arbeitsatmosphäre.
88
Projektgruppe
Virtual Reality
Literaturverzeichnis
Literaturverzeichnis
[Bernd Brügge 2004] Bernd Brügge, Allen H. D.: Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java. Pearson Studium, 2004 3.8,
4.1
[Heinermann 2011] Heinermann, Justin P.: Virtual Reality und der Einsatz in
der Praxis. 2011. – Forschungsbericht 3.2
[Michael Dixon 2012] http://dev.pointclouds.org/attachments/download/
358/Sensor-Win-OpenSource32-5.0.3.msi 1e
[Poloczek 2011] Poloczek, Jendrik: Präsenzempfinden in virtuellen Umgebungen.
2011. – Forschungsbericht 3.2
[Sense 2012] http://www.openni.org/Downloads/OpenNIModules.aspx 1a, 1c,
1d
[Streeting 2012] http://www.ogre3d.org 3.6
[Vuzix-Corporation
2012a]
wrap920vrbundle.html 3.6
http://www.vuzix.com/consumer/products_
[Vuzix-Corporation
drivers.html 2a
http://www.vuzix.com/support/downloads_
2012b]
89
Projektgruppe
Virtual Reality
A. Anhang
A. Anhang
A.1. Schnittstellenfunktionen
Ein kurzes Beispiel, dass die Benutzung der Middleware kurz darstellt.
// so the destructor won’t fail
this −>middleware = NULL;
// create an instance of the middleware
this −>middleware = new Middleware::Main();
try {
this −>head = this−>middleware−>getHeadDirection();
} catch (AttitudeSensorException∗ e) {
std :: cout << e−>message() << std::endl;
}
try {
joints = this−>middleware−>getSkeleton(NULL);
} catch (Middleware::MiddlewareException∗ e) {
std :: cout << e−>message() << std::endl;
};
Ein wichtige Anmerkung ist hier, dass die Methode getSkeleton der Middleware
Speicher alloziert wenn ihr NULL übergeben wird. Übergibt man hingegen ein
24 elementiges Array von Joints wird kein Speicher alloziert sondern die Daten
werden in das Übergebene Array geschrieben.
Die Methode getHeadDirection gibt einen Pointer auf das Head Objekt zurück.
Dieses Objekt wiederrum enthält einen Member names headDirection, welches wiederum den Yaw, Pitch und der Roll enthält.
Eine neuere Dokumentation der verschiedenen Schnittstellen befindet sich in der
Doxygen Dokumentation.
i
Projektgruppe
Virtual Reality
A. Anhang
A.1.1. registerPose, registerGesture
RegisterPose sowie registerGesture sind im Prinzip gleich, der Unterschied liegt
in den Funktionsparamter. Bei registerGesture übergibt man je einen Middleware::KinectWrapper::GestureEvent* , sowie einen Middleware::KinectWrapper::GestureObserver*.
GestureObserver implementieren eine Methode names notify. Diese Methode übernimmt als Parameter einen GestureEvent.
Das selbe gilt für registerPose, mit dem Unterschied das GestureEvent und GestureObserver PoseEvent und PoseObserver heißen.
In der jeweilen notify Methode kann dann abhängig von dem übergebenen Event
Funktionalität implementiert werden.
A.2. Installation
Im Folgenden wird die Installation der entwickelten Software unter Windows sowie
Linux erläutert. In Abbildung A.1 werden die Abhängigkeiten des Frontends sowie
der Middleware gezeigt.
FrontEnd
LibOgg
Boost
LibVorbis
OpenNI
OpenAL
Nite
Middleware
Vuzix SDK(Windows)
Ogre SDK
Testdog
TinyXml
SLB
LibUsb(unix)
Logger
Abbildung A.1.: Abhängigkeiten Middleware/Frontend
ii
Projektgruppe
Virtual Reality
A. Anhang
A.2.1. Windows
1. Installation der Kinect
Im Folgenden wird die Installation der Microsoft Kinect unter Windows beschrieben.
a) Installieren der “unstable OpenNI Binaries“ für 32Bit erhältlich unter
Sense [2012]
b) Installieren des Sensortreiber erhältlich unter https://github.com/
avin2/SensorKinect/tree/unstable/Platform/Win32/Driver (unstable branch). Je nachdem, welche Windowsversion benutzt wird, 32 oder
64 Bit, bitte die jeweilige ausführbare Datei benutzen.
c) Installieren der ünstable OpenNI Middleware Binaries“ für 32Bit erhältlich unter Sense [2012].
d) Installieren der ünstable OpenNI Hardware Binaries“ für 32Bit erhältlich unter Sense [2012].
e) Gegebenenfalls die prebuilt binary for Kinect sensor Version 5.0.3"von
Michael Dixon [2012] installieren.
2. Installation der Vuzix Wrap 920
Im Folgenden wird die Installation der Vuzix Wrap 920 3D-Brille beschrieben.
a) Installation des Vuzix VR Managers, der für die Kalibrierung der Brille
vor der Benutzung benötigt wird. Er ist erhältlich unter Vuzix-Corporation
[2012b].
b) Installation des Vuzix SDK erhältlich unter http://vrdeveloper.vr920.
com/downloads/w/Vuzix_SDK_3.1.1.zip.
3. Erstellen der Middleware mit im Repository enthaltenen Abhängigkeiten
Das Kompilieren der Einzelkomponenten ist unter Windows automatisiert.
Dafür muss lediglich die Datei Install.bat aus dem Verzeichnis /repository/projects/pgvr aufgerufen werden. Ein Kommandozeilenfenster startet und
iii
Projektgruppe
Virtual Reality
A. Anhang
die Einzelkomponenten sowie die Middleware werden kompiliert. Zu beachten sind die Hinweise in der README in demselben Verzeichnis, in dem sich
auch die Install.bat befindet.
A.2.2. Unix
1. Installation der Kinect
a) Kernel Module Blacklisten: Bevor die Kinect angeschlossen werden kann
muss dafür gesorgt werden, dass Linux nicht automatisch Treiber für
die einzelnen Devices1 der Kinect lädt. Die zu blockierenden Module sind gspca_main gspca_kinect. In der Regel wird dies in der Datei
/etc/modprobe.d/blacklist.config eingetragen.
b) OpenNI installieren: Um OpenNI zu installieren lädt man unter http:
//www.openni.org/downloadfiles/opennimodules/openni-binaries/
20-latest-unstable die Version 1.3.2.3 runter. Für die Installation
folgt man der, im Download mitgelieferten, platformspezifischen Anleitung.
c) Installation Sensor: Um Sensor zu installieren klont man aus GitHub
den unstable branch. https://github.com/avin2/SensorKinect Dann
wechselt man in das Platform abhängige Verzeichnis Platform/***/CreateRedist
und führt dort den RedistMaker aus. Hierbei ist zu beachten das das
Standard Python eine 2.x Version ist. Danach wechselt man in den Ordner Final, entpackt das Archive und installiert es mit sudo install.sh.
d) Intallation NITE: Für die Skeletterkennung wird NITE in der Version
1.4.1.2 benötigt. http://www.openni.org/downloadfiles/opennimodules/
openni-compliant-middleware-binaries/33-latest-unstable Nach
dem Entpacken des Archives erfolgt die Installation durch sudo install.sh. Bei der Installation wird ein Lizenzschlüssel verlangt. Dieser
lautet 0KOIk2JeIBYClPWVnMoRKn5cdY4=.
1
Unter einem Device versteht man in diesem Zusammenhang in dieses Fall ein Eingabegerät.
Die Kinect besitzt drei. Den Teifensensor, die Videokamera sowie das Mikrophone.
iv
Projektgruppe
Virtual Reality
A. Anhang
e) Compileren der Softwarekomponenten: Das Compileren der Softwarekomponenten ist immer gleich, einzig die Reihenfolge ist von belang.
Zum Compilieren begibt man sich in den jeweiligen Ordner und gibt
cmake . && make ein. Die Reihenfolge ist wie in Grafik A.1 zu erkennen Logger, Testdog, Middleware, Frontend. Danach befindet sich sich
das Frontend-Programm in frontend/dist/bin/OgreApp.
A.3. Fragebogen
Jeder dieser Fragen soll mit einem Wert zwischen 0 und 10 ausgefüllt werden,
wobei eine 0 eine minimale Zustimmung und eine 10 eine maximale Zustimmung
bedeutet. Der Fragebogen wurde durch ein Online Formular bereit gestellt.
Auf dem Fragebogen waren folgende Fragen vorhanden:
• Wie gut konnten Sie in der virtuellen Welt agieren?
• Wie stark hat die virtuelle Umgebung auf Ihr Verhalten reagiert?
• Wie natürlich empfanden Sie die Interaktion mit der virtuellen Umwelt?
• Wie intensiv wurden Ihre Sinne angesprochen?
• Wie stark wurden Sie durch die Geräuschkulisse in die virtuelle Welt integriert?
• Wie natürlich empfanden Sie die Bewegung in der virtuellen Welt?
• Wie viel haben Sie während der Nutzung noch von der echten Welt wahrgenommen?
• Wie stark haben Sie bei der Nutzung die verwendeten Geräten wahrgenommen?
• Wie ähnlich waren ihre Erfahrungen in der virtuellen Welt im Vergleich zur
realen Welt?
v
Projektgruppe
Virtual Reality
A. Anhang
• Wie gut konnten Sie voraussehen was ihre Bewegungen für Konsequenzen
auf die Umwelt in der virtuellen Welt haben?
• Wie gut konnten Sie die virtuelle Welt visuell erkunden?
• Wie gut konnten Sie Geräusche identifizieren?
• Wie gut konnten sie Geräusche lokalisieren?
• Wie gut konnten Sie einzelne Objekte der virtuellen Welt in Anschau nehmen
und/oder benutzen?
• Wie gut konnten Sie einzelne Objekte in der virtuellen Welt in Bewegen
versetzen?
• Wie intensiv waren Sie in der virtuellen Welt integriert?
• Wie stark wurden Sie durch die verwendete Hardware bei der Nutzung abgelenkt?
• Wie stark war die Verzögerung zwischen Ihren echten Bewegungen und den
Bewegungen in der virtuellen Welt?
• Wie schnell haben Sie sich in die virtuelle Welt versetzt gefühlt?
• Wie gut haben Sie Ihre Möglichkeiten sich in der virtuellen Welt zu bewegen
und mit ihr zu interagieren am Ende der Nutzung eingeschätzt?
vi
Projektgruppe
Virtual Reality
A. Anhang
vii
Projektgruppe
Virtual Reality
A. Anhang
A.4. Erhobene Daten der Fragebögen
viii
Projektgruppe
Virtual Reality
A. Anhang
ix
Projektgruppe
Virtual Reality
A. Anhang
x
Projektgruppe
Virtual Reality
A. Anhang
xi
Projektgruppe
Virtual Reality
A. Anhang
A.5. Probandeninformation
xii
Projektgruppe
Virtual Reality
A. Anhang
xiii
Projektgruppe
Virtual Reality
A. Anhang
A.6. Einwilligungserklärung
xiv
Projektgruppe
Virtual Reality
A. Anhang
A.7. Seminararbeiten
xv
Seminararbeit
im Rahmen der Projektgruppe Virtual Reality
Virtual Reality - Geschichte
und Entwicklung
Matthias Bruns
Mai 2011
Carl-von-Ossietzky-Universität Oldenburg
Fachbereich Informatik
Inhaltsverzeichnis
1
DER BEGRIFF VIRTUAL REALITY
3
1.1
Definition
3
1.2
Kategorien von Virtual Reality
6
2
2.1
HISTORISCHE ENTWICKLUNG
Erste Entwicklungsschritte
7
7
2.2
Meilensteine des Virtual Reality
2.2.1
Head-Mounted-Display (1. Meilenstein)
2.2.2
Hochentwickelte 3D-Grafiken (2. Meilenstein)
2.2.3
Der Körper als Eingabegerät (3. Meilenstein)
2.2.4
Visual Experience CAVE (4. Meilenstein)
8
8
10
10
11
2.3
Fortführende Entwicklung
2.3.1
HMD-Technologie
2.3.2
Eingabegeräte
2.3.3
Bewegungsfreiheit
12
12
13
13
3
VIRTUAL REALITY HEUTE
15
4
AUSBLICK
17
5
LITERATUR
19
6
ABKÜRZUNGSVERZEICHNIS
21
Virtual Reality – Geschichte und Entwicklung
2
Einleitung
Diese Seminararbeit gibt einen Überblick über die geschichtliche Entwicklung von Virtual
Reality (VR) und den beteiligten Schlüsseltechnologien. Dafür werden zunächst im 1. Kapitel
der Begriff Virtual Reality und dessen Ausprägungen untersucht. Das 2. und 3. Kapitel
behandelt die historische Entwicklung ausgehend von vier Meilensteinen, den aktuellen
technischen Stand und die Bedeutung in unserer Gesellschafft. Das 4. Kapitel gibt einen
Ausblick auf die Zukunft des Virtual Reality.
In dieser Ausarbeitung wird die Bedeutung und der psychologische Hintergrund von
Immersion1 nicht näher erläutert, da dies bereits thematischer Schwerpunkt der Seminararbeit
von Jendrik Poloczek ist.
1
Immersion bezeichnet das Eintauchen in eine künstliche Welt.
Virtual Reality – Geschichte und Entwicklung
3
1 Der Begriff Virtual Reality
1.1 Definition
Der Begriff Virtual Reality wird in der Literatur sehr unterschiedlich aufgefasst. Während
beispielsweise die einen Definitionen für Virtual Reality einen möglichst hohen Grad an
Immersion thematisieren, ist das Kernelement anderer Definitionen nur das Erzeugen
möglichst realistischer 3D-Welten, die weder Immersion, noch Interaktion voraussetzen.
So wird Virtual Reality im Duden beispielsweise folgendermaßen definiert: "vom Computer
simulierte künstliche Welt, in der man sich mithilfe der entsprechenden technischen
Ausrüstung scheinbar hineinversetzten kann." (Der Duden 1999)
Im Kontrast dazu eine Definition von Hans-Jörg Bullinger: "Mit dem Begriff virtuelle
Realität wird meist die rechnergestützte Generierung eines möglichst perfekten sensorischen
Abbildes der realen Umwelt assoziiert." (Hans-Jörg Bullinger 1994)
Eine Gemeinsamkeit aller Definitionen ist jedoch die Schaffung einer computergenerierten
und vom Nutzer über Sinne aufgenommenen Realität. Mögliche Sinne sind Seh-, Hör-, Tastund Geruchssinn. Je mehr Sinne dabei genutzt werden, desto intensiver die Immersion.
Weiterhin wird in allen Definitionen von in Echtzeit gerenderten digitalen Welten gesprochen
und vorgerenderte Videosequenzen werden zum Teil ausgeschlossen. Computeranimierte
Filme in 3D und Surround-Sound, sowie Filme in Force-Feedback-Simulatoren sind demnach
nicht Virtual Reality zuzuordnen. (Bühl 1996, S.54 ff.)
Eine sehr allgemeingehaltene Beschreibung des Begriffs Virtual Reality stammt von
Alexander Henning: "Virtual Reality ist eine Mensch-Maschine-Schnittstelle, die es erlaubt,
eine computergenerierte Umwelt in Ansprache mehrerer Sinne als Realität wahrzunehmen."
(Alexander Henning, Die andere Wirklichkeit)
Diese Erläuterung ist sehr zutreffend, da sie im Vergleich zu vielen anderen Definitionen
nicht von einem „perfekten Abbild der realen Welt“ ausgeht, sondern von einer
computergenerierten Umwelt. Denn VR-Systeme setzen nur „mögliche“ künstliche Welten
voraus, nicht aber im Bezug zur Realität möglichst realitätsnahe Welten. Beispielsweise
können auch Sciencefiction-Elemente (zB. Raumschiffe, außerirdische Wesen usw.) in der
virtuellen Welt beim Anwender Immersion erzeugen und sind damit „mögliche Realitäten“.
Virtual Reality – Geschichte und Entwicklung
4
Weiterhin ist die Interaktion mit der virtuellen Welt keine Voraussetzung für ein
VR-System. Auch eine digitale Welt durch die sich der Nutzer passiv frei bewegen kann, ohne
mit der Umwelt interagieren zu können, vermag immersiv auf den Nutzer des Systems zu
wirken. Stereoskopie/3D-Brillen, sowie (3D)-Sound sind ebenfalls nur optionale Bestandteile
eines visuellen VR-Systems. Auch ohne visuelle Komponente sind virtuelle Welten
realisierbar. So können Nutzer beispielsweise allein auf akustischer Ebene in virtuelle Welten
versetzt werden. Binaurale Audiosignale über Kopfhörer ermöglichen dabei einen sehr hohen
Grad an Immersion. Somit können beispielsweise auch blinde Nutzer virtuelle Welten erleben.
(Bormann 1994, S. 25)
Nach dem Großteil der Definitionen sind auch Videospiele dem Virtual Reality zuzuordnen.
Das erste weltweit populäre Videospiel Pong aus dem Jahr 1972 ist beispielsweise die digitale
Nachbildung eines Tischtennis-Spiels. Aufgrund der grafisch minimalen Umsetzung ist der
Immersionsgrad jedoch sehr gering. Moderne Videospiele mit leistungsstarken
Grafik-Engines, Surround-Sound und mitreißendem Story-Background können Spieler
hingegen schon nach wenigen Minuten die reale Welt vergessen lassen. Mit steigender
Spieldauer steigt auch der Immersionseffekt auf den Spieler und er fühlt sich mehr und mehr in
die virtuelle Welt hineinversetzt. (vgl. Fritz 1997 und Halbach 1997, S. 157)
Heutzutage werden VR-Systeme in der Regel jedoch nicht mehr mit klassischen
Videospielen assoziiert, sondern mit Systemen, die die virtuelle Welt durch Head-Mounted
Displays realitätsnah begehbar machen.
Das Videospiel Pong aus dem Jahr 1972
Virtual Reality – Geschichte und Entwicklung
5
Zusammenfassend lässt sich Virtual Reality folgendermaßen definieren:
Virtual Reality bezeichnet Computer-Systeme, die den Nutzern über das Ansprechen
von ein oder mehreren Sinnen das Gefühl geben, sich an einem anderen Ort oder in einer
anderen Welt zu befinden, in der sie sich frei bewegen können. Die reale Welt soll dabei
von der virtuellen Welt aus dem Bewusstsein des Nutzers verdrängt werden und als
Realität wahrgenommen werden.
Weiterhin können die folgenden Mindestanforderungen an ein VR-System festgelegt werden:
-
Eine computergenerierte, dynamische und immersive Umwelt
Echtzeit Verarbeitung des Systems
Nutzer kann sich in der virtuellen Welt frei bewegen
Ansprechen des Nutzers über Seh-, Hör-, Tast- oder Geruchssinn
Um die Immersion zu erhöhen können dabei die folgenden Komponenten optional genutzt
werden:
-
2
Ansprechen weiterer Sinne
Interaktion mit der virtuellen Umwelt (z.B. Gegenstände bewegen)
Head-Tracking
Head-Mounted-Display (HMD)2
HMD mit 3DOF (Degrees of Freedom) Lagesensoren
HMD mit 6DOF Lagesensoren
Hoch entwickelte 3D-Engine
3D statt 2D Sounds (Binaural)
Stereoskopie (3D statt 2D Videowiedergabe)
Hand-Tracking
Skeleton-Tracking
Force-Feedback Systeme
Voice-Recording/Spracherkennung
Erläuterung der HMD-Technologie folgt in Kapitel 2.2.1
Virtual Reality – Geschichte und Entwicklung
6
1.2 Kategorien von Virtual Reality
In der Literatur wird Virtual Reality in drei unterschiedliche Kategorien mit unterschiedlichen
Immersionsgraden aufgegliedert (Kalawsky 1997, S. 11 ff.):
Desktop Virtual Reality
Bei einem Desktop VR-System wird für die visuelle Ausgabe an den Nutzer ein
Computer-Monitor oder ein TV-Bildschirm verwendet. Das Bild kann monoskopisch oder
stereoskopisch dargestellt werden. Bewegungen und Kopflage des Nutzers haben jedoch
keinen Einfluss auf das System.
Fishtank Virtual Reality
Fish Tank-VR Systeme berücksichtigen bei der Berechnung der Darstellungsansicht die
Blickrichtung des Nutzers durch ein Head-Tracking-Verfahren. Die Darstellung kann
monoskopisch oder stereoskopisch erfolgen, findet aber wie bei Desktop VR-Systemen vor
einem Computer-Monitor oder einem TV-Bildschirm statt. Durch das Head-Tracking können
Objekte zum Beispiel von mehreren Seiten betrachtet werden. Dadurch fühlt sich der Nutzer
intensiver in die virtuelle Welt hineinversetzt.
Immersive Virtual Reality
Diese Methode ermöglicht den höchstmöglichen Immersionsgrad. Sie wird durch ein
Head-Mounted-Display oder durch ein CAVE-System 3 realisiert. Beide Verfahren
ermöglichen es dem Nutzer, sich frei in der virtuellen Welt zu bewegen und Objekte von allen
Seiten zu betrachten. Im Gegensatz zu den Bildschirm-Methoden ist dabei die reale Welt für
den Nutzer nicht mehr wahrnehmbar.
3
Cave Automatic Virtual Environment, Beschreibung in Kapitel 2.2.4
Virtual Reality – Geschichte und Entwicklung
7
2 Historische Entwicklung
2.1 Erste Entwicklungsschritte
Viele Grundlagen, auf denen Virtual Reality aufbaut, stammen bereits aus einer Zeit weit vor
der Idee, künstliche Welten zu schaffen. Die stereoskopische Sicht wurde beispielsweise
bereits im 18. Jahrhundert erforscht. Erste Ansätze in Richtung Virtual Reality verfolgte die US
Air Force bei der Entwicklung der ersten Flugsimulatoren in den dreißiger Jahren. Diese
Systeme erlaubten jedoch keine Interaktion mit dem Nutzer und die Technik zur Erzeugung
von Immersion beschränkte sich dabei auf Erschütterungen des Piloten. (Halbach 1994, S. 231)
Ein sehr konkreter Entwurf eines VR-Systems stammt von Morton Heilig aus dem Jahr
1955. Doch erst 1962 baute er seine Idee “The Cinema of the Future” zu einem Prototypen aus,
das Sensorama. Doch auch diese Apparatur war analoger Natur und konnte nur 5 Kurzfilme
abspielen, ohne dass der Nutzer in den Ablauf eingreifen konnte. Die Filme wurden aber durch
Stimulation mehrerer Sinne begleitet. So wurde passend zum Inhalt der Filme Wind erzeugt,
Gerüche ausgegeben und der Sitz in Vibration versetzt. Weiterhin bot das Gerät Stereo-Ton und
eine stereoskopische 3D-Ansicht des Filmmaterials. Heilig setzte durch das Sensorama neue
Maßstäbe gemessen am Grad der Immersion. (Halbach 1994, S. 235)
Sensorama von Morton Heilig, 1962
Virtual Reality – Geschichte und Entwicklung
8
2.2 Meilensteine des Virtual Reality
Im Folgenden werden vier maßgebende Entwicklungen in der Geschichte des Virtual Reality
aufgeführt.
2.2.1 Head-Mounted-Display (1. Meilenstein)
Nach Vorgabe der Definition für Virtual Reality waren alle bisherigen Systeme nicht dem
Virtual Reality zuzuordnen, da sie nicht das Konzept von einer computergenerierten Umwelt,
in der sich der Nutzer frei bewegen kann, verfolgten. Die beschränkte analoge Technik ließ eine
solche Umsetzung nicht zu. Erst mit dem Aufkommen hochentwickelter digitaler
Rechnersysteme konnten visuelle Ausgaben erzeugt werden, dessen Perspektive der Nutzer in
Echtzeit beeinflussen konnte. Diese Entwicklung ebnete den Weg für den ersten Meilenstein
des Virtual Reality, das Head-Mounted-Display.
1965 entwickelte der damalige Harvard-Student Ivan Sutherland das Konzept „Ultimate
Display“. Ein am Kopf getragenes Display sollte dabei als visuelle Schnittstelle zwischen
Mensch und Maschine fugieren und dem Nutzer als Fenster in eine virtuelle Welt dienen. 3
Jahre später verwirklichte Sutherland seine Vision des „Ultimate Display“. 1968 gehört damit
zur Geburtsstunde des Head-Mounted-Displays und gilt als erster Meilenstein des Virtual
Reality. (Rheingold 1992, S. 117)
Sutherlands HMD basierte auf zwei kleine Kathodenstrahlen-Monitore vor den Augen des
Nutzers, die stereoskopische 3D-Ansichten ermöglichten. Ein Computer generierte in Echtzeit
die visuelle Ausgabe in Form von digitalen Drahtgitter-Modellen (Wireframe). Weiterhin
kamen zwei Head-Tracking-Verfahren zum Einsatz: Ultraschall und eine mechanische Vorrichtung. Damit war das HMD Eingabe- und Ausgabegerät zugleich. Die Anzeige der virtuellen
Welt wurde dabei durch die Kopflage des Nutzers beeinflusst. Sutherlands Konstruktion war
jedoch so schwer, dass das System mit einem Metallarm an der Decke befestigt werden musste.
(Bormann 1994, S. 96)
Vor Ivan Sutherlands Entwicklung gab es bereits andere Monitor-Brillen. Diese Modelle
zeigten jedoch nur statisches Bildmaterial oder Live-Videoaufnahmen und keine
computergenerierte Umwelt, in der sich der Nutzer frei umsehen konnte. Sutherlands HMD ist
damit der Definition nach das erste VR-System.
Virtual Reality – Geschichte und Entwicklung
HMD-Konstruktion von Ivan Sutherland, 1968
HMD-Brille von Ivan Sutherland, 1968
9
Virtual Reality – Geschichte und Entwicklung
10
2.2.2 Hochentwickelte 3D-Grafiken (2. Meilenstein)
Die praktischen Einsatzmöglichkeiten von Sutherlands HMD-System blieben durch die
rudimentären 3D-Darstellungsmöglichkeiten der damaligen Computertechnologie jedoch
eingeschränkt. Das führte dazu, dass es in den 60er und 70er Jahren aufgrund der technischen
Limitation nur geringfügige Weiterentwicklungen im Bereich des Virtual Reality gab.
Erst mit dem Aufkommen leistungsfähiger Grafik-Computer und 3D-Engines in den 80er
und 90er Jahren, konnten vielseitige Anwendungen und realistische virtuelle Welten
verzögerungsfrei dargestellt werden. Diese neuen Möglichkeiten trieben auch die
Entwicklungen im Bereich der Virtual Reality wieder voran. Von nun an konnten Designer die
vollimmersive 3D-Umgebung spezifisch an verschiedene Einsatzbereiche für Virtual Reality
anpassen.
Dabei profitiert der VR-Forschungsbereich insbesondere vom „Grafik-Boom“ durch die
Verbreitung von 3D-Videospielen auf dem Massenmarkt, vorangetrieben durch die
Unterhaltungsindustrie. (Brooks 1999, S. 16ff. und Thürmel 1993, S. 42)
2.2.3 Der Körper als Eingabegerät (3. Meilenstein)
Die neuen Anwendungsbereiche für Virtual Reality stellen auch neue Anforderungen an die
Interaktionsmöglichkeiten. Infolge dessen gründeten Thomas Zimmermann und Jaron Lanier
1984 in Kalifornien das Unternehmen Virtual Programming Languages (VPL) und
entwickelten einen Sensor-Handschuh als Eingabegerät für interaktive Systeme. 1986 brachte
VPL den DataGlove auf den Markt. Dieser Handschuh erfasste in Echtzeit die Bewegungen der
Finger und bestimmte die Lage im Raum und die Ausrichtung der Hand des Nutzers. Dieses
System ermöglichte erstmals einen Körperteil einer Person zu digitalisieren und für
Interaktionszwecke in eine virtuelle Welt zu übertragen. Die Bewegungen der virtuellen Hand
gleichen dabei denen der Hand des Nutzers. In Kombination mit einem HMD konnten somit
beispielsweise Gegenstände im VR-Raum gegriffen, transportiert und wieder abgelegt werden.
(Bormann 1994, S. 41)
Ende der 80er entdeckte auch die Unterhaltungsindustrie das Potential von Virtual Reality.
So wurde der Power Glove als Weiterentwicklung des DataGlove als Consumer-Produkt für die
Spielkonsole Nintendo Entertainment System verkauft.
Virtual Reality – Geschichte und Entwicklung
11
Power Glove, Nintendo, 1989
2.2.4 Visual Experience CAVE (4. Meilenstein)
Eine bis heute einflussreiche Alternative zu Head-Mounted-Displays für hoch immersives
Virtual Reality entwickelten Forscher an der University of Illinois in Chicago. 1992
präsentierten sie der Öffentlichkeit die Visual Experience CAVE (Cave Automatic Virtual
Environment), ein quaderförmiger Raum, an dessen Seitenflächen die grafische Ausgabe des
VR-Systems projiziert wird. Die projizierten stereoskopischen Bilder werden dabei von den
Nutzern mit LCD-Shutter-Brillen betrachtet. Die Position und Blickrichtung der in der CAVE
befindlichen Person wird von Trackern erfasst, an den verarbeitenden Computer weitergeleitet
und anschließend bei der visuellen Ausgabe berücksichtigt. Die dabei mögliche 360 Grad
Drehung des Kopfes, sowieso die hohe Auflösung der einzelnen Bildflächen erzeugen einen
sehr hohen Immersionsgrad. Nachteile der CAVE-Technologie sind hohe Kosten, hoher
Platzbedarf, hoher Rechenaufwand für die Grafikerzeugung und die eingeschränkte
Bewegungsfreiheit des Nutzers. (Sandin 1996, S. 84 ff.)
Virtual Reality – Geschichte und Entwicklung
12
CAVE-Umgebung
2.3 Fortführende Entwicklung
Die Technologien rund um Virtual Reality wurden im Laufe der Zeit grundlegend
weiterentwickelt und neuen Anforderungsbereichen angepasst. Wichtige Fortschritte der
Schlüsseltechnologien werden im folgendem erläutert:
2.3.1 HMD-Technologie
Das Grundkonzept von Ivan Sutherlands HMD hat sich nicht geändert, jedoch haben neue
Technologien die Bauweise der Brille beeinflusst. Wichtigster Punkt ist dabei der Wechsel von
Kathodenstrahlen-Monitoren zu LC-Displays (Liquid Crystal Display), die eine wesentlich
leichtere und schmalere Bauweise ermöglichten. Das erste HMD mit LCD-Technologie wurde
1985 entwickelt. Auch neue Tracking-Verfahren sorgten für ein neues Erscheinungsbild der
Brillen. Heutige HMD´s verwenden im Gegensatz zu Sutherlands Modell keinen mechanischen
Arm zur Positionsbestimmung, sondern platzsparend in die Brille integrierte 6DOF (Degrees of
Freedom) Lagesensoren, die der Anwendung X-, Y-, Z-, sowie Richtungsdaten bereitstellen.
Weiterhin bieten heutige HMD´s hohe Display-Auflösungen und einen hohen Tragekomfort
durch kabellosen Betrieb und einer ergonomischen Bauform. HMD´s für den Consumer-Markt
mit einer Auflösung von 640*480 Pixeln werden bereits für 300€ angeboten.
Virtual Reality – Geschichte und Entwicklung
13
2.3.2 Eingabegeräte
Die Entwicklung von Eingabegeräten für Virtual Reality wurde in erster Linie durch neue
Tracking-Verfahren vorangetrieben (Bormann 1994, S. 57). Kleinere Bauteile ermöglichten
beispielsweise die Herstellung von wesentlich ergonomischeren Datenhandschuhen, dessen
Elektronik immer weniger sicht- und spürbar wurde. Weiterhin wurden ganze Daten-Anzüge
hergestellt, die den kompletten Körper des Nutzers in der virtuellen Welt abbilden. Auch die
Unterhaltungselektronik hat neue Eingabegeräte zur Marktreife gebracht. Zu nennen ist
einerseits die Nintendo Wii, dessen Controller Beschleunigungs- und Lagedaten an die
Spielkonsole weitergibt. Und zum anderen die von Microsoft entwickelte Kinect, die durch
Infrarotkameras den kompletten Körper des Spielers digital erfasst und in Videospiele
integriert. Sowohl die Nintendo Wii, als auch die Microsoft Kinect finden häufig bei
Forschungsprojekten im Rahmen von Virtual Reality Verwendung.
2.3.3 Bewegungsfreiheit
VR-Systeme boten in ihrer bisherigen Form nur eine eingeschränkte Bewegungsfreiheit,
solange die Fortbewegung in der virtuellen Welt für einen möglichst hohen Immersionsgrad
durch Gehen/Laufen in der realen Welt umgesetzt werden sollte. Um diese Einschränkung zu
umgehen wurden zwei Systeme entwickelt, die das Laufen des Nutzers zulassen, aber ihn
dennoch immer an der selben Position im Raum halten. Ein Konzept basiert auf einer
Vorrichtung aus Laufbändern, die eine Person in alle Himmelsrichtung befördern kann. Damit
kann die laufende Person immer wieder in den Mittelpunkt der mechanischen Vorrichtung
gefahren werden. Der Immersionsgrad der durch diese Technik erreicht werden kann ist sehr
hoch. Nachteile dieser Methode sind jedoch der sehr hohe Platzbedarf, ein hoher
Energieverbrauch und die hohen Herstellkosten. (mpg.de - Max-Planck-Gesellschafft
Pressebericht)
Virtual Reality – Geschichte und Entwicklung
14
Cyberwalk-Umgebung
Das zweite Konzept ist die sogenannte VirtuSphere. Dieses Modell ist mit dem Prinzip eines
Hamster-Rads zu vergleichen. Eine große Kugel, die den Nutzer vollkommen umschließt, dreht
sich beim Laufen in alle Himmelsrichtungen mit. Somit kann der Nutzer in der virtuellen Welt
beliebig weite Strecken zurücklegen, ohne seine Position in der realen Welt zu verändern.
(virtusphere.com)
VirtuSphere
Virtual Reality – Geschichte und Entwicklung
15
3 Virtual Reality Heute
Die Bedeutung von VR-Technologien hat sich im Laufe der Jahre auf unterschiedliche Brachen
ausgeweitet. Während in den Anfangsjahren in erster Linie militärische Organisationen die
Forschung und Entwicklung von Virtual Reality vorantrieben, sind mittlerweile viele
unterschiedliche Branchen an der Weiterentwicklung beteiligt. In erster Linie sind hier der
kreative Sektor (Designprozesse durch Virtual Reality) und die Unterhaltungsbranche (neue
Eingabetechnologien und Entwicklung von leistungsstarken Grafik-Plattformen) zu nennen.
Bis heute haben sich die folgenden Einsatzbereiche für Virtual Reality hervorgehoben:
-
Simulation
In VR-Simulationen sollen möglichst realitätsnah Situationen durchgespielt werden, die
sonst nicht durchführbar sind oder bei Durchführung in der Realität sehr hohe Kosten
verursachen würden. Zum Beispiel die Piloten-Ausbildung im militärischen und
privaten Sektor. (DARPA.mil)
-
Entertainment
Im Bereich der Unterhaltungselektronik kommen VR-Systeme in erster Linie für
Videospiele zum Einsatz. Zum Beispiel Head-Mounted-Displays die sich an Personal
Computer anschließen lassen und von verschiedenen PC-Spielen unterstützt werden.
(Dysart 1994, S. 19)
-
CAD
Virtual Reality basiertes Computer Aided Design (CAD) kommt heute bereits in sehr
vielen Unternehmen im kreativen Sektor zur Anwendung. Dabei lassen sich die
entworfenen Modelle von allen Seiten betrachten oder begehen und ermöglichen es den
Designern, ein “Gefühl“ für das fertige Produkt zu erhalten. Teure Prototypen lassen
sich so teilweise vermeiden. Virtual Reality-CAD wird beispielsweise in Form von
CAVE-Systemen häufig beim Entwurf von Fahrzeugen oder bei der
Gebäudeplanung/Architektur eingesetzt. (Brooks 1986, S. 10 ff.)
Virtual Reality – Geschichte und Entwicklung
16
-
Medizin
Im Gesundheitswesen werden bereits chirurgische Ausbildungen von VR-Systemen
unterstützt. Weiterhin werden häufig Head-Mounted-Displays in Kombination mit sehr
immersiven und unterhaltenden 3D-Welten verwendet, um Patienten bei medizinischen
Eingriffen zu beruhigen oder um Schmerzen zu lindern. (Völter 1995, Seite 5 ff.)
-
Bildung
In Museen und wissenschaftlichen Lehreinrichtungen werden teilweise VR-Systeme
genutzt, um Wissen an (in erster Linie jungen) Schülern zu vermitteln. Das für die
Schüler aufregende und außergewöhnliche Erlebnis hat einen nachhaltigeren
Lernprozess zur Folge. (Holloway 1995, S. 35 ff.)
Virtual Reality – Geschichte und Entwicklung
17
4 Ausblick
Von einem hundert prozentigem Immersionsgrad, wie in der Hollywood Produktion „The
Matrix“ (Science-Fiction Film, 1999) oder das Holodeck 4 aus dem Star Trek Universum
(TV-Serie, 1987) ist der heutige Stand der Entwicklung noch viele Jahrzehnte und viele
Meilensteine entfernt.
Die zukünftigen Entwicklungen in der Virtual Reality werden vermutlich durch die stetige
Weiterentwicklung der bisherigen Schlüsseltechnologien geprägt sein. 3D-Engines werden
durch die Befeuerung der rasant wachsenden Gaming-Branche immer realistischere virtuelle
Welten generieren können. Head-Mounted-Displays werden immer leistungsfähiger
(Bildqualität), handlicher und in unsere Umwelt integriert. Die „Virtual Retinal
Display“-Technologie wird bei den HMD´s der nächste große Entwicklungsschritt sein. Diese
Technologie projiziert das Bild direkt auf die Netzhaut des Anwenders. (washington.edu)
Weiterhin ist davon auszugehen, dass sich HMD´s gegenüber den CAVE-Systemen
langfristig durchsetzen werden, da die CAVE-Technologie nicht das vollständige Ausblenden
des Nutzers selbst zulässt, was beispielsweise für das Tragen von Sensoranzügen notwendig ist.
Eines der größten Herausforderungen des Virtual Reality, die Entwicklung von haptischen
VR-Systemen, ist aktuell noch sehr rudimentär ausgeprägt. Der nächste Meilenstein dieses
Forschungsbereichs könnte ein Ganzkörperanzug sein, der einzelne Körperzonen des Nutzers
stimulieren kann, um Widerstände und andere Krafteinwirkungen auf den Körper der virtuellen
Welt zu simulieren.
Der aktuelle Trend von Augmented Reality (AR) Anwendungen durch die steigende
Verbreitung von Smartphones kann zu Synergieeffekten im Zusammenhang mit Virtual Reality
führen. Im Rahmen der Definition für Virtual Reality ist Augmented Reality jedoch kein
Teilbereich von Virtual Reality. AR-Systeme erweitern die reale Welt zwar um virtuelle
Komponenten, jedoch wird der Nutzer nicht aus seiner Welt gezerrt und in eine neue virtuelle
Realität befördert. Er befindet sich aus seiner Sicht noch immer in seiner realen Umwelt.
4
Das Holodeck ist ein fiktiver Raum, der ohne zusätzliche Geräte (z.B. HMD) virtuelle Welten darstellt und dabei
zu 100% immersiv ist. Ist eine virtuelle Welt geladen, kann eine darin befindliche Person nicht mehr spüren dass
sie sich noch im Holodeck befindet.
Virtual Reality – Geschichte und Entwicklung
18
Immersion findet folglich nicht statt. Aufgrund der Ähnlichkeiten in der verwendeten
Hardware- und Softwarestruktur (HMD, Tracking, 3D-Engines) ist es jedoch demselben
Forschungsbereich wie Virtual Reality zuzuordnen.
Zusammenfassend lässt sich sagen, dass Virtual Reality nach den Startschwierigkeiten im
20. Jahrhundert, langfristig vermutlich eines der Schwerpunkt-Technologien sein wird, die
unser zukünftiges Leben in der digitalen Welt bestimmen werden. Wann und ob wir jemals
VR-Telefonate mit Freunden im Ausland führen oder uns das erste Mal per VR-Fernchirurgie
operieren lassen, lässt sich zum jetzigen Zeitpunkt jedoch noch nicht bestimmen.
Virtual Reality – Geschichte und Entwicklung
19
5 Literatur
[Brooks 1986]
Jr. Brooks: Walkthrough - A Dynamic Graphics System for Simulating
Virtual Buildings. 1986.
[Brooks 1999]
Jr. Brooks/P. Frederick: What’s Real About Virtual Reality. 1999.
[Bühl 1996]
A. Bühl: CyberSociety - Mythos und Realität der Informationsgesellschaft. PapyRossa Verlag 1996.
[Bormann 1994]
S. Bormann: Virtuelle Realität: Genese und Evaluation. 1994.
[DARPA.mil]
Defense Advanced Research Projects Agency. http://www.darpa.mil.
22.05.2011.
[Dysart 1994]
J. Dysart: VR Goes to Hollywood - Virtual Reality World. 1994.
[Fritz 1997]
J. Fritz: Computerspiele - Theorie, Forschung, Praxis, Bundeszentrale
für Medien 1997.
[Halbach 1994]
W. Halbach: Reality Engines. Wilhelm Fink Verlag 1994.
[Halbach 1997]
W. Halbach: Virtual Realities, Cyberspace und Öffentlichkeiten. Wilhelm Fink Verlag 1994.
[Holloway 1995]
R. Holloway: Virtual Environments - A Survey of the Technology. 1995.
Virtual Reality – Geschichte und Entwicklung
20
[Kalawsky 1997]
R. Kalawsky: VRUSE - a computerised diagnostic tool: for usability
evaluation of virtual/synthetic environment systems, Applied ergonomics. 1997.
[mpg.de]
Max-Planck-Gesellschafft.
http://www.mpg.de/497063/pressemitteilung20050420. 23.05.2011.
[Rheingold 1992]
H. Rheingold: Virtuelle Welten. Reisen im Cyberspace. 1992.
[Sandin 1996]
D. Sandin: CAVE - das virtuelle Theater. 1996.
[Thürmel 1993]
S. Thürmel: Virtuelle Realität. Ursprung und Entwicklung eines Leitbildes in der Computertechnik. Karlheinz 1993.
[virtusphere.com]
Projekt VirtuSphere. http://www.virtusphere.com. 19.05.2011.
[Völter 1995]
S. Völter: Virtual Reality in der Medizin I - Stand, Trends, Visionen.
1995.
[washington.edu ]
„Virtual Retinal Display“-Technologie.
http://www.hitl.washington.edu/projects/vrd. 12.05.2011.
Virtual Reality – Geschichte und Entwicklung
6 Abkürzungsverzeichnis
AR
= Augmented Reality
CAD
= Computer-Aided Design
CAVE
= Cave Automatic Virtual Environment
DOF
= Degrees of Freedom
HMD
= Head-Mounted-Display
HMD
= Head-Mounted-Display
LCD
= Liquid Crystal Display
VPL
= Virtual Programming Languages
VR
= Virtual Reality
21
Carl-von-Ossietzky-Universität Oldenburg
Projektgruppe Virtual Reality
Prof. Dr. Wolfgang Kowalk
Dipl.-Inf. Stefan Brunhorn
Sommersemester 2011
Virtual Reality und der Einsatz in der Praxis
3. Juli 2011
Justin Philipp Heinermann, B.Sc.
Matrikel-Nr.: 9774500
Studiengang: M.Sc. Informatik, 2. Fachsemester
Anschrift: Lehms 2, 26197 Großenkneten
E-Mail: [email protected]
Inhaltsverzeichnis
1 Einleitung
1
3 Der Einsatz von Virtueller Realität in der Praxis
3.1 Anwendungsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . .
3.2 Planung des Einsatzes von VR . . . . . . . . . . . . . . . . . . . .
3.3 VR-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
6
7
2 Virtuelle Realität
2.1 Ausgabe virtueller Welten . . . . . . . . . . . . . . . . . . . . . . .
2.2 Eingabemöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . .
4 Einsatz im Automobilbereich
5 Virtuelle Realität im medizinischen Bereich
5.1 Neurochirurgie . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Radiologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Psychologische Behandlung . . . . . . . . . . . . . . . . . . . . . .
6 Fazit und Ausblick
Literatur
1
3
4
9
10
11
11
12
14
16
i
1 Einleitung
Die Idee von virtuellen Realitäten ist zwar nicht allzu neu, wurde aber in den
letzten Jahren stark fortentwickelt und findet eine immer weitere Verbreitung.
Dies gilt insbesondere für das industrielle Umfeld, in dem durch Virtual Reality
wirtschaftliche Vorteile erzielt werden und das Arbeiten oft stark vereinfacht
wird [Hau10, p. 17]. Lösungen, die als Beweisstudien mit Prototypen und Selbstbauten im Forschungs- und Hobbybereich bereits beeindruckende Ergebnisse
liefern, müssen als industrielle Werkzeuge sorgfältig für die Anforderungen im
produktiven Umfeld geprüft und angepasst werden.
Diese Arbeit widmet sich dem praktischen Einsatz virtueller Realitäten. Hierbei
sind Anwendungsgebiete im ingenieursmäßigen und industriellen Umfeld von
besonderem Interesse. In Kapitel 2 sollen zunächst die Konzepte von virtueller Realität sowie verschiedener Implementierungen beschrieben werden. Der
tatsächliche Einsatz dieser Techniken in der Praxis ist Gegenstand von Kapitel
3. Neben möglichen Techniken und den Möglichkeiten, die sich hier eröffnen
werden hier auch die Anforderungen für einen sinnvollen Einsatz erläutert, die
sich insbesondere im industriellen Umfeld ergeben. Anschließend sollen noch
zwei konkretere Szenarien als wichtige Beispiele für den heutigen Einsatz von
Virtual Reality dienen: Kapitel 4 befasst sich mit dem Einsatz in der Automobilindustrie, Kapitel 5 hat medizinische Anwendungen zum Gegenstand. Diese sollen
einen exemplarischen Ausschnitt aus den vielfältigen und unterschiedlichen
Anwendungsmöglichkeiten geben.
Bei allen Anwendungen stellt sich die Frage, inwieweit diese neuartigen Techniken Akzeptanz finden und wie sich dies in Zukunft ändern wird. In Kapitel 6 wird
dies abschließend beurteilt und ein kurzer Ausblick auf mögliche Entwicklungen
gegeben.
2 Virtuelle Realität
In diesem Kapitel soll nun zunächst der Begriff der virtuellen Realität, im Folgenden auch mit VR abgekürzt, eingeführt werden. Anschließend werden die
verschiedenen existenten Einsatzformen und Techniken beschrieben. Die verschiedenen Einsatzszenarien werden im nachfolgenden Kapitel 3 behandelt.
1
Schlägt man den Begriff „virtuelle Realität“ im Lexikon nach, findet man dort
folgende Begriffsklärung:
„virtuelle Realität, Cyberspace [’saIb@speIs], mittels Computer simulierte
dreidimensionale Räume, in denen sich der Benutzer mithilfe elektron.
Geräte (wie Monitorbrille, Datenhandschuh) sowie umfangreicher Software
(u.a. für die Spracherkennung und Geräuschsynthese) bewegt.“ [BR03]
Diese Beschreibung des Begriffes bleibt recht allgemein und liefert nur eine
eingeschränkte Sicht auf die möglichen Bedeutungen. Bei den vielen möglichen
Definitionen sind für Hausstädter [Hau10] die drei wichtigsten Eigenschaften
von virtuellen Realitäten die folgenden:
• Es liegt eine Echtzeitumgebung vor.
• Der Benutzer verspürt Immersion, also das Gefühl, sich tatsächlich in der
virtuellen Realität zu befinden.
• Die virtuelle Welt kann interaktiv verändert werden.
Mit diesen Eigenschaften als Definition lässt sich der Begriff der virtuellen Realität
auf sinnvolle Weise abgrenzen von anderen Präsentationsformen wie z. B. einer
realistisch wirkenden Filmdarbietung.
Abbildung 1: Stereoskop
Die ersten technischen Bestrebungen, die den Grundstein für VR legten, liegen
schon lange zurück [Bri08]: Bereits 1832 schuf Charles Wheatstone das Stereoskop für die räumliche Sicht (siehe Abb. 1). Flugzeugsimulatoren kamen bereits
während des ersten Weltkrieges zum Einsatz, um Piloten zu schulen. Das erste
Head-Mounted-Display wurde 1970 an der Universität von Utah aufgebaut. Es
wurde jedoch klar, dass die zu dieser Zeit verfügbare Hardware noch nicht für
diese Art der Anwendung ausreichte. Dies sollte sich erst in den 1980er Jahren
ändern, als bessere Head-Mounted-Displays und der Datenhandschuh eingeführt wurden. Zu Beginn der 1990er Jahre wurde die CAVE (Cave Automatic
2
Virtual Environment) entwickelt: Hierbei handelt es sich um einen würfelförmigen Raum, der dem Benutzer eine neue Art der virtuellen Realität bot. War man
in den Anfangstagen von VR noch sehr weit entfernt von einem realitätsnahen
Erleben, können diese Techniken heutzutage Anwendung in vielen Bereichen
finden: Hierzu zählen Medizin, Entertainment, industrielle Entwicklung von
Produkten und viele weitere. Die technischen Entwicklung auf diesem Gebiet
laufen in einem rasanten Tempo und führt zu immer höheren erreichten Immersionsgraden. Auch gibt es neue Anwendungsgebiete wie z. B. Augmented Reality.
Bei dieser Technik wird die reale Welt mit virtuellen Elementen ergänzt. Auf
diese Techniken soll aber in dieser Arbeit wegen des Umfangs nicht detaillierter
eingegangen werden.
2.1 Ausgabe virtueller Welten
Wichtig für die Wirkung einer VR-Umgebung ist die optische Darstellung der
Welt. Damit eine räumliche Wirkung mit Tiefeneindruck entsteht, ist hier insbesondere die perspektivische Darstellung von Bedeutung [Bri08].
Für die realistische Wirkung und Immersion ist insbesondere das Konzept der
Stereoskopie wichtig: Das menschliche Gehirn vereint die beiden Einzelbilder
zu einem räumlichen Bild [Bri08]. Für die Ausgabe eines Computerprogrammes
bedeutet dies, dass pro Auge ein Bild berechnet werden muss. Es stehen hierfür
verschiedene Möglichkeiten zur Verfügung [Hau10, Bri08]: Beim AnaglyphenVerfahren trägt der Benutzer eine Rot/Grün bzw. Rot/Blau-Brille. Die Bilder werden je Auge so eingefärbt, dass sie nur das linke bzw. das rechte Brillenglass
passieren können. Diese ist das kostengünstigste und einfachste Verfahren. Der
größte Nachteil ist aber, dass die Farben sehr stark verfälscht werden und die
Wirkung sehr darunter leidet. Daher kommt es für eine industrielle Anwendung
nicht in Frage.
Ein weit verbreitetes Verfahren ist der Einsatz von Polarisationsfiltern (auch
Passiv-Stereo genannt [Hau10]), welche in den Gläsern einer Brille zum Einsatz
kommen und so beispielsweise das jeweilige Bild von zwei Projektoren nur das
jeweils richtige Auge erreichen lassen. Im Gegensatz zum Anaglyphen-Verfahren
gehen hier keine Farbinformationen verloren.
Eine andere Möglichkeit ist das Aktiv-Stereo-Verfahren, bei dem sogenannte
3
Shutter-Brillen zum Einsatz kommen. Hier wird in hoher Frequenz jeweils nur
eine Seite der Brille geöffnet. Synchron dazu muss per Monitor oder Projektor
das Bild für das jeweilige Auge gezeigt werden. Dieses Verfahren ist teurer als
die beiden erstgenannten, liefert aber auch die deutlich besten Ergebnisse, da die
beiden Bilder wirklich getrennt dargestellt werden.
Im Gegensatz zu den drei genannten Verfahren mit Brillen mit Wellenlängenoder Zeitmultiplex besteht bei Head-Mounted-Displays auch die Möglichkeit, zwei
kleine Bildschirm direkt vor den Augen zu platzieren. Dies liefert beispielsweise
mit eingebauten Kopfhörern und Neigungssensoren eine gute Immersion, ist
jedoch mitunter unbequem und hat die Einschränkung, dass es nur für eine
Person geeignet ist [Bri08].
Für die Immersion ist auch die akustische Wahrnehmung sehr wichtig. Diese
liefert dem menschlichen Gehirn wesentliche Informationen zu den räumlichen
Gegebenheiten der Umgebung. Insbesondere das Zusammenspiel zwischen optischen und akustischen Reizen steigert die Immersion [Bri08]. Eine Möglichkeit
der Wiedergabe-Hardware sind Stereo-Lautsprecher oder Kopfhörer. Eine bessere räumliche Ortung machen jedoch in den meisten Fällen Surround-Boxen
möglich, die den Benutzer z. B. mit fünf Lautsprechern aus fünf verschiedenen
Richtungen beschallen[Bri08].
Außer den beiden genannten Ausgabemöglichkeiten ist auch noch die haptische
Ausgabe zu nennen, die dem Benutzer taktile Signale übermittelt. Dies ist zum
Beispiel bei einem Force-Feedback-Eingabegerät der Fall: Hier wird durch eine
Gegenkraft das „realitätsnahe Manipulieren mit Objekten“ [Hau10] gestattet.
2.2 Eingabemöglichkeiten
Damit der Benutzer mit der virtuellen Welt interagieren und Daten manipulieren
kann, benötigt man Techniken für die Eingabe. Für immersives Arbeiten kommt
meistens eine Form des Tracking, also Positions- und Lagebestimmung, zum
Einsatz. Dabei kommen mechanische, elektromagnetische, optische, akustische
und inertiale Wirkprinzipien zum Einsatz sowie verschiedene hybride Verfahren. Denkbar sind Kameras, Datenhandschuhe, Zeigegeräte oder Lagesensoren.
Welches Verfahren eingesetzt wird, hängt von Anwendung und Budget ab.
4
3 Der Einsatz von Virtueller Realität in der Praxis
In vielen Bereichen findet virtuelle Realität immer weitere Verbreitung. Einer
davon ist das industrielle Umfeld, in dem sich durch VR neue Möglichkeiten
eröffnen. In Abschnitt 3.1 werden verschiedene Szenarien beschrieben, in denen
sich der VR-Einsatz als sinnvoll erwiesen hat. Bei den vielen Vorteilen darf jedoch
nicht vergessen werden, dass es auch eine Reihe von Nachteilen gibt. Die daher
notwendige sorgfältige Planung wird in Abschnitt 3.2 erläutert. Abschnitt 3.3 hat
die in Frage kommenden VR-Systeme und Softwarewerkzeuge zum Gegenstand.
3.1 Anwendungsmöglichkeiten
Es gibt viele denkbare Formen der Anwendung. Neben der eigentlichen Präsentation bietet sich insbesondere die Nutzung für technische Anwendungen an. Zu
den Aufgaben, für die VR in Frage kommt, zählen folgende:
Kunst und Kultur Von Unterhaltung über Bildung und künstlerisches Gestalten
ergeben sich hier vielfältige Möglichkeiten.
Medizin Unterstützung und Vorbereitung von Operationen, Schulung, Psychologie (siehe Kapitel 5)
Militär Kriegsführung, Training, Simulation
Architektur Visualisierung, Planung, Variantenvergleiche, Machbarkeitsstudien
Technische Anwendungen Produktion, Computer Aided Design, Computer
Aided Manufacturing, Visualisierung, Statik, Konfiguration, Simulation,
Logistik [Hau10]
Bei den einzelnen Einsatzgebieten gibt es große Überschneidungen.
Auch wenn die Leistungsfähigkeit der verfügbaren Hardware weiter steigt, ist
immernoch ein relativ großer Aufwand damit verbunden, hochwertige Ergebnisse zu erzielen [Hau10]. Es stellt sich die Frage, welche Vor- und Nachteile
die Nutzung von VR mit sich bringt. Nach Hausstädtler ist der größte Vorteil
von „immersiv-stereoskopischer Visualisierung [. . . ] die genaue Einhaltung des
Objektmaßstabs“[Hau10]. Neben den Vorteilen der immersiven Visualisierung
und Eingabe ergeben sich auch erhebliche Nutzeffekte, die vor allem aus betriebswirtschaftlicher Sicht positiv zu bewerten sind[Hau10]:
5
• Zeiteinsparung bei der Produktentwicklung und Vermarktung
• Steigerung der Qualität
• Reduktion der Kosten
Problematisch ist hierbei, dass die Effekte oft erst langfristig erkennbar sind und
auf der anderen Seite hohe Anschaffungs- und Wartungskosten ins Gewicht fallen.
Die daher nötige sorgfältige Planung wird im folgenden Abschnitt beschrieben.
3.2 Planung des Einsatzes von VR
Da es viele verschiedene Techniken gibt um VR zu verwenden, wie in Abschnitt
3.3 erläutert wird, müssen bei der Planung des Einsatzes grundlegende Fragen geklärt und die Anforderungen genau analysiert werden. Einer Über- oder
Unterdimensionierung des Investitionsbedarfes kann nur mit klar formulierten
Anforderungen vorgebeugt werden [Hau10].
Bei der Analyse der Visualisierungsaufgabe aus betrieblicher Sicht sollten zunächst Ziele und Schwerpunkte formuliert werden sowie festgelegt werden,
welches Publikum angesprochen werden soll. Es ist zu berücksichtigen, wie
häufig die Technik zum Einsatz kommt und welche Mitarbeiter sich um diese kümmern können. Ebenso sind Platzbedarf und laufende Kosten wichtige
Fragen, die im Vorfeld geklärt werden müssen. Eine vollständigere Liste von
Entscheidungskriterien kann man in [Hau10, Kapitel 2.1] nachlesen.
Eine Kosten-Nutzen-Rechnung für den VR-Einsatz lässt sich nur relativ schwierig
aufstellen. Neben einfach messbarer Fakten wie der anfänglichen Investition und
Personal-, Wartungs- und Betriebskosten, spielen hier auch schwerer zu beurteilende Faktoren eine Rolle: Lassen sich Zusammenkünfte und Präsentationen
vereinfachen und verbessern? Lassen sich Kosten einsparen? Wird interdisziplinäre Kommunikation vereinfacht?
Ob ein VR-System zum Einsatz in einem bestimmten Gebiet geeignet ist, hängt
also von vielen Faktoren ab. Oft muss man hier abwägen zwischen Anforderungen, die sich gegenseitig ausschließen oder erschweren. Im nächsten Abschnitt
werden die grundsätzlich verfügbaren Arten von VR-Umgebungen dargestellt,
die unterschiedliche Vor- und Nachteile haben.
6
3.3 VR-Systeme
„Ein minimales VR-System benötigt einen Computer und die Möglichkeit
einer stereoskopischen grafischen Ausgabe. Ob Audio oder ein Datenhandschuh verwendet werden, hängt vor allem von der Anwendung ab.“ [Bri08]
Da eine VR-Anwendung oft sehr viel Rechenleistung erforderlich macht, ist ein
einzelner Computer oft nicht ausreichend und es kommen Cluster von beispielsweise zehn leistungsfähigen PC zum Einsatz [Hau10].
Die ersten Anwendungen im VR-Bereich verwendeten ein Head Mounted Display (kurz HMD). Ein solches ist in Abb. 2(a) dargestellt. Ein HMD bietet neben
der stereoskopischen Ausgabe oft Positionsverfolgung sowie Stereokopfhörer.
Die Immersion ist hier sehr groß, da die reale Welt großenteils ausgeblendet
werden kann [Bri08]. Für industrielle Anwendungen kommt dieses Verfahren
oft nicht in Frage, da man aus ergonomischen Gesichtspunkten meist nicht sehr
lange mit einem solchen Gerät arbeiten kann und sie außerdem nur für einen
Benutzer geeignet sind [Hau10].
(a) „Head Mounted Display“ [HMD]
(c) „Powerwall“ [Pow]
(b) „CAVE“ [Cav]
(d) „Bench“ [Wor]
Abbildung 2: Verbreitete VR-Systeme
Seit den 1990er Jahren werden meist Projektoren eingesetzt, die das stereoskopische Bild auf eine Leinwand werfen [Bri08]. Für den räumlichen Eindruck
7
kommen hier oft mehrere Leinwände zum Einsatz, die den bzw. die Benutzer
umgeben. Es haben sich für den industriellen Einsatz drei Gerätetypen etabliert
[Hau10]:
CAVE Die Cave Automatic Virtual Environment (siehe Abb. 2(b)) bietet mit einem
würfelförmigen Raum aus 3-6 Projektionswänden einen sehr hohen Grad an
Immersion. Sie kann für Automobilbau, Anlagen- und Fabrikplanung sowie
Entertainment verwendet werden und ist für mehrere Personen geeignet.
Die Kosten belaufen sich auf bis zu 1 Mio. e.
Powerwall Eine Powerwall (siehe Abb. 2(c)) ist eine ebene oder gekrümmte
Projektionswand, die für viele Personen geeignet ist. Bei mittelhohem
Immersionsgrad bietet sie universelle Anwendung. Die Kosten belaufen
sich auf ca. 100T - 500T e.
Bench Eine Bench (siehe Abb. 2(d)) ist angelehnt an das Konzept einer Werkbank.
Dieses kompakte Tischsystem ist für kleinere Objekte geeignet und bietet
eher einen geringen Immersionsgrad, kostet dafür aber auch nur ca. 150T e.
Neben diesen gibt es auch eine Vielzahl an speziell angefertigten Unterarten.
Außerdem existieren auch portable Geräte in Tischform, die sich für die Präsentation außer Haus nutzen lassen [Hau10].
Bei allen diesen Ausgabeformen können unterschiedliche Bedienarten zum Einsatz kommen, wie sie in Kapitel 2.2 vorgestellt wurden. Abhängig ist die Wahl
u.a. von Performance und Genauigkeit.
Neben der beschriebenen Hardware sind die verwendeten Softwarewerkzeuge
von zentraler Bedeutung. Bei der Anzeigesoftware kann grob zwischen CADSoftware für industriellen Einsatz sowie allgemeinen Grafik-APIs wie OpenGL
oder Microsoft Direct3D unterschieden werden [Hau10]. Die verfügbaren Anzeigeprogramme unterscheiden sich sowohl in den Kosten als auch im Lizenzmodell:
Es sind sowohl kostenlose Freeware- Programme als auch Programme für mehrere 10.000 e auf dem Markt erhältlich. Neben fertigen Lösung existieren auch
Sonderanfertigungen und Entwicklungsumgebungen. Die genutzte Software
muss sorgfältig für die jeweilige Anwendung ausgewählt werden. Hierbei sollten unbedingt auch langfristige Kosten berücksichtigt werden. Eine Liste von
erhältlichen Produkten und Entscheidungshilfen ist [Hau10] zu entnehmen.
8
4 Einsatz im Automobilbereich
Auch für die Automobilindustrie, die bereits seit vielen Jahren Computer Aided
Design verwenden, bieten sich viele Anwendungen der virtuellen Realität an.
Darunter fallen Produktentwicklung, Präsentation, Simulation und Analyse.
Zimmermann von der Volkwagen Foeschungsabteilung beschreibt bereits 2001:
„Die Fahrzeugindustrie macht es vor: das virtuelle Auto existiert lang
vor dem ersten realen Prototyp. Am Rechner wird es entworfen, in der
virtuellen Fabrik wird es (virtuell) gefertigt und danach im Cyberspace
erprobt. Schließlich kommt der virtuelle Crashtestdummy zum Einsatz. Die
neuen Technologien bringen die Branche in Schwung doch die Potenziale
sind noch längst nicht ausgeschöpft. Was möglich ist, zeigt das Beispiel aus
Wolfsburg.“ [Zim01]
Neben der eigentlichen Produktentstehung wird hier auch eine Product Clinic
beschrieben, in der Testpersonen virtuelle Prototypen von Autos beurteilen. Dadurch werden nicht nur der Zeitaufwand und die Kosten reduziert, sondern auch
die Qualität des Fahrzeuges gesteigert.
Abbildung 3: Augmentierung eines realen Modells mit einem virtuellen.
Neben VR-Anwendungen spielt im Automobilbereich auch die Augmented
Reality eine große Rolle. So kann ein Auto z. B. in realen Umgebungen eingebettet
betrachtet werden oder verschiedene Varianten von Fahrzeugen kombiniert
werden, wie in Abb. 3 dargestellt. Mit Augmented Reality kann auch die Fertigung
selbst unterstützt werden:
9
„Die BMW Group setzt Augmented Reality bereits heute im Prototypenbau ein. Zu diesem Zweck wurden spezielle Schweißpistolen entwickelt. Ihr
Display zeigt den optimalen Schweißpunkt auf der Rohkarosse an und erleichtert so die schnelle und passgenaue Bearbeitung des Bauteils.“ [BMW06]
In der Automobilindustrie kommen neueste Techniken zum Einsatz: Beim Automobilhersteller Audi beispielsweise wird zu Präsentation eine sechs Meter breite
und zwei Meter hohe Powerwall verwendet, die statt mehrerer Projektoren lediglich einen einzigen Projektor verwendet [Com]. Dieser liefert bis zu 7,4 Mio. Pixel.
Mercedes brachte mit der C-Klasse das erste Serienfahrzeug auf den Markt, „das
auf Basis eines digitalen Prototyps konzipiert und entwickelt wurde“ [Com]. Die
Computersimulation umfasste 2130 Gigabyte an Daten. Simuliert wurden hier:
• Crashsicherheit
• Insassenschutz
• Geräusch-, Schwingungs- und Abrollkomfort
• Betriebsfestigkeit
• Energiemanagement
• Klimatisierung
• Aerodynamik
Neben der Zeitersparnis konnte so der Reifegrad des ersten fahrbereiten Prototyps stark erhöht werden, was insgesamt eine höhere Fahrzeugqualität mit sich
bringt.
Insgesamt zeigt sich mit diesen Beispielen, dass der Einsatz von Virtual und
Augmented Reality sehr vielfältig ist, aber auch erhebliche Vorteile auf dem
Automobilmarkt bringt.
5 Virtuelle Realität im medizinischen Bereich
Ein interessantes Einsatzfeld für VR ergibt sich mit medizinischen Anwendungen.
Mit dem Begriff der Telemedizin wurde ursprünglich die Idee formuliert, „im
Kriegsfall Operationen an verwundeten Soldaten mit ferngesteuerten Robotern
10
aus sicherem Abstand heraus durchzuführen“ [TSB+ 00]. Eine verwandte Anwendung wäre es, Astronauten von der Erde aus zu behandeln. Die Grenzen
und Anforderungen dieser Art von Medizin sowie anderen Anforderungen sind
dadurch gegeben, dass hier u.U. das menschliche Leben von der Genauigkeit und
Zuverlässigkeit der Methode abhängt. Es sind bereits einige Verfahren im Einsatz,
die sich als effektiv erwiesen haben. Von diesen sollen in Kapitel 5.1 und 5.2 kurz
chirurgische und radiologische Anwendungen vorgestellt werden. Anschließend
wird in Kapitel 5.3 die Anwendung in der psychologischen Therapie vorgestellt,
die bereits große Erfolge zeigt.
5.1 Neurochirurgie
Die computerintegrierte Chriurgie soll die Kooperation zwischen Mensch und
Maschine verbessern, sodass „Effektivität des Eingriffs, die Sicherheit für den
Patienten und das Nutzen-Risiko-Verhältnis gesteigert werden“ [TSB+ 00]. Chirurgen sind zwar dazu ausgebildet, Eingriffe „sicher, schnell und manuell“ [TSB+ 00]
geschickt auszuführen. Die Qualität des Eingriffes ist aber begrenzt durch Geschicklichkeit und menschliche Präzisionsarbeit. Maschinen können den Menschen hier unterstützen ohne zu ermüden und liefern eine hohe Präzision.
Die computerassistierte Chrirurgie verwendet virtuelle Realität u.a. für sog.
Navigationssysteme, die ein präoperatives Modell liefern. Die echte virtuelle
Chrirurgie würde dem Operierenden per Joystick oder Datenhandschuh die Möglichkeit geben, einen Medizinroboter zu steuern. Dies ist aber je nach benötigter
Genauigkeit nur teilweise möglich Es ist aber zu erwarten, dass mit wachsender
Rechenleistung in der Neurochriurgie VR-Techniken noch intensiver zum Einsatz
kommen werden [TSB+ 00].
5.2 Radiologie
An diesen medizinischen Anwendungen wird deutlich ersichtlich, dass virtuelle
Realität weit mehr als nur ein Spielzeug ist. In der Radiologie liefert VR bspw.
den Vorteil, dass es neben dem geometrischen Modell auch eine funktionales
Modell bietet und Manipulation und Analyse desselben erlaubt [PP00]. Während
bei anderen Anwendungen wie der Automobilindustrie der kostspielige Einsatz
von VR durch hohe Gewinne und Produktionszahlen leicht zu rechtfertigen
ist, könnte dies im klinischen Umfeld nur mit einem relativ günstigen Preis
11
geschehen.
Anders als beispielsweise bei CAD-Anwendungen hängt die Genauigkeit bei
radiologischen Anwendungen, die hauptsächlich auf auf präzise Diagnosen
ausgerichtet sind, ab von den bildgebenden Verfahren. Dank der technischen
Weiterentwicklungen, der größeren Akzeptanz von Technik an sich und dem sich
positiv entwickelnden Preis/Leistungsverhältnis von VR-Techniken sind viele
der anfänglichen Zweifel an VR in der Radiologie aus dem Weg geräumt. Für
Anwendungen, die über Visualisierung hinaus gehen, sind die vorhandenen
Werkzeuge jedoch oft nicht flexibel und universell genug, sodass zukünftig noch
mehr Potenzial der Techniken ausgeschöpft werden kann.
Abbildung 4: Resektionsvorschlag mit Sicherheitsabstand einer Leber [PP00]
Mögliche Nutzungen von VR in der Radiologie sehen Peitgen und Preim [PP00]
beispielsweise bei der Planung von Operationen anhand Magnet-ResonanzTomographie-Bildern. Ein Beispiel hierfür ist in Abb. 4 dargestellt: Hier kann für
eine Leber ein möglicher Schnitt bei einer Operation visualisiert werden. Das
Hauptproblem bei VR in der Radiologie sehen Peitgen und Priem darin, dass
Aufwand und Nutzen schwer einzuschätzen sind.
5.3 Psychologische Behandlung
Auch im psychologischen Bereich ist eine sinnvolle Nutzung von VR möglich:
Zum Einsatz kommen entsprechende Techniken bei der Konfrontations-Therapie.
Diese ist eine wirkungsvolle Verhaltenstherapie, die bei Angststörungen eingesetzt wird. Dabei wird der Patient „wiederholt, stufenweise und systematisch“
[BBGP+ 08] der Situation ausgesetzt, die beim irrationale Angst hervorruft. Durch
12
Gewöhnung und emotionale Verarbeitung können so Ängste überwunden werden. Dies kann entweder in der realen Welt, also in-vivo, oder in der Imagination
des Patienten geschehen. Im Gegensatz dazu bietet eine Behandlung mittels VR
folgende Vorteile [BBGP+ 08]:
• Die Konfrontation ist für den Patienten oft einfacher akzeptierbar.
• Feine Abstufung der Konfrontationsschritte sowie exakte Wiederholung
von Situationen
• Erweitern der Realität wie z. B. Veränderung des Raumes
• Einfache Umsetzung, die Zeit und Geld spart
• Verbesserung der Vertraulichkeit
Studien haben gezeigt, dass diese Therapieform sehr wirksam ist [BBGP+ 08].
Abbildung 5: Die Landschaften in EMMA’s Welt [BBGP+ 08]
Für eine andere Anwendung, die Behandlung der Post-Traumatischen Verhaltensstörung (PTBS) ist ebenfalls eine Behandlung mit VR möglich. Diese muss
jedoch i.Allg. sehr spezialisiert sein und ist daher teuer. Daher schlagen Baños et
al. [BBGP+ 08] eine VR-Welt namens „EMMA’s Welt“ vor, die im Rahmen des europäischen Gemeinschaftsprojektes EMMA (Engaging Media for Mental Health
13
Application) entstanden ist. Hier kann der Patient wahlweise zwischen der realen
und der virtuellen Welt wechseln. Die Inhalte der virtuellen Welt werden vom Therapeuten on-the-fly angepasst an die Bedürfnisse des Patienten. Die virtuelle Welt
besteht unter anderem aus Landschaften mit Wiese, Strand, Wüste, Wald oder
Schnee, die für verschiedene Emotionen eingesetzt werden können (siehe Abb. 5).
Da für das System lediglich zwei PC, zwei Projektoren, eine Projektionsleinwand,
eine drahtlose Konsole und Lautsprecher benötigt werden, ist es relativ kostengünstig. Dadurch, dass kein HMD zum Einsatz kommt, können Therapeut
und Patient sich gleichzeitig in der VR-Welt befinden. Baños et al. [BBGP+ 08] beschreiben Szenarien, wo EMMA’s Welt sehr erfolgreich zur Anwendung kommt,
wenngleich die VR-Erfahrungen in der psychologischen Behandlung noch am
Anfang stehen.
6 Fazit und Ausblick
In dieser Arbeit wurde zunächst das Konzept der virtuellen Realität und die
praktische Nutzung von VR-Anwendungen vorgestellt. Es wurde gezeigt, dass
die Einsatzgebiete sehr vielfältig und unterschiedlich sind und dass das Potenzial
längst nicht ausgeschöpft ist.
Aus den vielen verschiedenen Anwendungen wurden zwei konkretere Beispiele
vorgestellt: Die Automobilindustrie und der medizinische Bereich. Während im
Automobilbereich längst virtuelle Realitäten das Mittel der Wahl für Präsentation,
Produktentwicklung und Simulation sind, sind mit dem Fortschritt der Technik
immer lohnenswertere Anwendungen zu beobachten. Im Gegensatz zu anderen
Branchen und kleineren Unternehmen fällt hier die Kosten-Nutzen-Rechnung
deutlich einfacher und positiver aus. Anders ist dies auch im medizinischen Bereich, wo der lohnenswerte Einsatz von VR sich nicht so sehr und kurzfristig aus
betriebswirtschaftlicher Sicht zeigt. Dennoch sind diese Ansätze für die Medizin
ein Fortschritt: Beispielsweise in Operationsplanung, Chirurgie und Psychologie
kommt VR vorteilhaft zum Einsatz. Anhand dieser durchaus verschiedenen Beispiele aus dem medizinischen Bereich wurde deutlich, dass VR längst mehr als
ein Spielzeug ist und den Menschen bei wichtigen Aufgaben behilflich sein kann.
Eines der Hauptprobleme besteht darin, dass mit den vorhandenen Techniken
derzeit noch keine solche Genauigkeit erzielt werden kann, die das Risiko großen
menschlichen Schadens auf ein Minimum reduziert.
14
Diese Arbeit konnte einen kleinen Ausschnitt der Thematik zeigen. Es bieten
sich aber auch noch weitere Sichten an, wie z.B. die ethische Frage nach dem
immer größer werdenden Einfluss von virtuellen Realitäten auf unser tägliches
Leben. Die Entwicklung von Techniken der virtuellen Realität wird mit der
Entwicklung der verfügbaren Rechenleistung in den kommenden Jahren voraussichtlich deutlich voranschreiten und noch weiter an Wichtigkeit und Akzeptanz
gewinnen.
15
Literatur
[BBGP+ 08] Baños, Rosa M. ; Botella, Cristina ; Garcia-Palacios, Azucena ; Quero, Soledad ; Alcañiz, Mariano ; Guillén, Verónica: Virtuelle Realität
und psychologische Behandlungen. In: Bauer, Stephanie (Hrsg.) ;
Kordy, Hans (Hrsg.): E-Mental-Health. Springer Berlin Heidelberg,
2008. – ISBN 978–3–540–75736–8, S. 191–204
[BMW06]
BMW Group PressClub Deutschland. https://www.press.bmwgroup.
com/pressclub/p/de/pressDetail.html?outputChannelId=
7&id=T0002397DE&left_menu_item=node__2369. Version: 2006
[BR03]
Brockhaus-Redaktion: Virtuelle Realität. In: Paulick, Siegrun
(Hrsg.):
Der Brockhaus in einem Band. 10., neu bearbeitete Auflage. Leipzig,
Mannheim : F.A. Brockhaus, 2003. – ISBN 3–7653–1680–6, S. 957
[Bri08]
Brill, Manfred: Virtuelle Realität. Berlin : Springer, 2008. – ISBN
978–3540851172
[Cav]
http://www.vrarchitect.net/anu/cg/Display/cave.en.html
[Com]
Computerwoche: Virtueller Erlkönig: Autodesigner lieben Computergrafiken. http://www.computerwoche.de/mittelstand/1856079/
[Hau10]
Hausstädtler, Uwe: Der Einsatz von Virtual Reality in der Praxis.
Berlin : Rhombos Verlag, 2010. – ISBN 978–3–941216–14–3
[HMD]
http://www710.univ-lyon1.fr/~sbrandel/en/research/VR/
[LGD+ 99] Lamadé, W. ; Glombitza, G. ; Demiris, A. M. ; Cardenas, C. ; Meinzer,
H. P. ; Richter, G. ; Lehnert, T. ; Herfarth, C.: Virtuelle Operationsplanung in der Leberchirurgie. In: Der Chirurg 70 (1999), S. 239–245. –
ISSN 0009–4722. – 10.1007/s001040050637
[Pow]
http://de.wikipedia.org/w/index.php?title=Datei:
3d-powerwall.jpg&filetimestamp=20101030063735
[PP00]
Peitgen, H. O. ; Preim, B.: Virtuelle Realität in der Radiologie. In: Der
Radiologe 40 (2000), S. 203–210. – ISSN 0033–832X
[Tho11]
Thompson, Craig W.:
Next-Generation Virtual Worlds: Architecture, Status, and Directions.
In: IEEE Internet Computing 15 (2011), S. 60–65.
http://dx.doi.org/http://
DOI
doi.ieeecomputersociety.org/10.1109/MIC.2011.15. –
http://doi.ieeecomputersociety.org/10.1109/MIC.2011.15. – ISSN 1089–
7801
[TSB+ 00]
Tronnier, V. M. ; Staubert, A. ; Bonsanto, M. M. ; Wirtz, C. R. ;
Kunze, S.: Virtuelle Realität in der Neurochirurgie. In: Der Radiologe
40 (2000), S. 211–217. – ISSN 0033–832X. – 10.1007/s001170050659
[Wor]
http://www710.univ-lyon1.fr/~sbrandel/en/research/VR/
[Zim01]
Zimmermann, Peter: Virtual Reality - Forschung und Anwendung bei Volkswagen. www.umi.cs.tu-bs.de/full/information/
literature/sonderheft/shvirt7.pdf. Version: 2001
Bildverarbeitung mit OpenCV und
PCL
Seminararbeit
im Rahmen der Projektgruppe Virtual Reality“
”
Themensteller:
Vorgelegt von:
Abgabetermin:
Prof. Dr. Wolfgang P. Kowalk
Christian Herz
07. Juli 2011
Inhaltsverzeichnis
Inhaltsverzeichnis
Inhaltsverzeichnis
1 Motivation
3
2 Einleitung
4
3 OpenCV - Open Computer Vision
3.1 Aufbau von OpenCV . . . . . . . . . .
3.2 Funktionalitäten . . . . . . . . . . . .
3.2.1 Optical Flow Tracking . . . . .
3.2.2 Camshift Tracking . . . . . . .
3.2.3 Gesichtserkennung mit OpenCV
3.2.4 Skeletterkennung . . . . . . . .
3.2.5 Maschinelles Lernen . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
6
7
8
9
10
4 PCL - Point Cloud Library
12
4.1 Was sind Punktwolken und wozu dienen sie? . . . . . . . . . . . . . . 12
4.2 Aufbau von PCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Funktionalitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Fazit/Nutzbarkeit
15
Literaturverzeichnis
16
2
1 MOTIVATION
1 Motivation
Die Motivation dieser Arbeit besteht darin, in der Computer Vision verwendete
Bibliotheken vorzustellen und anhand dieser einige interessante Möglichkeiten aufzuzeigen. Computer Vision ist ein weites Feld mit einer Menge von Potenzial. Faszinierend daran ist, maschinelles Sehen zu ermöglichen und dadurch beispielsweise Roboter dazu zu bringen, Gegenstände zu identifizieren, diese zu greifen und
durch Räume mit vielen Hindernissen zu einer Person zu transportieren. Für viele
Menschen könnte, gerade in hohem Alter, ein solches System den Lebensalltag in
enormen Maße erleichtern. Gerade durch die Kinect wurde ein revolutionärer Fortschritt erreicht, der es ermöglicht mit wenig Mitteln (insbesondere finanziell gesehen)
in Echtzeit Tiefeninformationen der Umgebung zu bekommen. Dadurch stehen der
Computer Vision neue Wege offen und schon befassen sich viele Interessierte mit
der Analyse und Verarbeitung der Daten von der Kinect. Weitergehend liegt die
Motivation in der erfolgreichen Implementierung einer Arbeit, die es ermöglicht, etwas entwickelt zu haben, das womöglich einigen Menschen das Leben erleichtern
könnte.
3
2 EINLEITUNG
2 Einleitung
Im Rahmen der Computer Vision spielen Bildverarbeitungsbibliotheken eine wichtige Rolle. Computer Vision ist die Verarbeitung von Bilddaten, kommend von einer
Kamera oder einer Videokamera, um Entscheidungen zu treffen, Bilder zu verstehen
oder diese in eine andere Repräsentation zu überführen. All diese Veränderungen
von Bilddaten haben einen speziellen Grund. So kann zum Beispiel die Segmentierung eines Tumors innerhalb der Leber ein Grund sein oder die Erkennung einer
Hand in Bilddaten. OpenCV - Open Computer Vision“ stellt dabei ein mächtiges
”
Toolkit dar, das eine Reihe von Algorithmen für die Bildverarbeitung anbietet, die
stets ergänzt werden. Außerdem ist OpenCV eine OpenSource-Bibliothek und somit für alle frei zugänglich. Speziell für die Thematik Kinect“ in der Projektgruppe
”
Virtual Reality“ kann die Verarbeitung von Punktwolken von Interesse sein. Die
”
OpenSource-Bibliothek PCL - Point Cloud Library“ stellt hier das Mittel der Wahl
”
dar. Aufgrund der aktuellen Kooperation mit OpenCV spannt es ein weites Feld
von Möglichkeiten auf. Deswegen werden in dieser Ausarbeitung sowohl OpenCV,
als auch PCL aufgeführt, wobei das Hauptaugenmerk auf OpenCV liegt. Außerdem
wird der Zugang zur Kinect mit OpenCV und PCL untersucht, sowie Funktionalitäten, die interessant und nützlich für die Verarbeitung der erhaltenen Daten aus
der Kinect sein könnten.
In Abschnitt 3 wird OpenCV behandelt, wobei dort der Aufbau und Nutzungsmöglichkeiten erwähnt werden. Abschnitt 4 beschreibt PCL, dessen Funktionalitäten
und Aufbau. Zum Schluss wird in Abschnitt 5 eine kurze Zusammenfassung und
Bewertung der verwendeten Bibliotheken, bezogen auf die Projektgruppe Virtual
”
Reality“, gegeben.
4
3 OPENCV - OPEN COMPUTER VISION
3 OpenCV - Open Computer Vision
OpenCV ist eine OpenSource-Bibliothek, die der BSD-Lizenz unterliegt und folglich für kommerzielle und Forschungszwecke zur Verfügung steht. Die Bibliothek
wurde ursprünglich in C geschrieben, wobei für C++ und Python jeweils ein Interface existiert und jede Weiterentwicklung in C++ stattfindet. Außerdem soll es
laut [BK08] eine aktive Entwicklung von Interfaces für Ruby, Matlab und weiteren
Programmiersprachen geben. Eine weitere wichtige Eigenschaft ist die Plattformunabhängigkeit. OpenCV kann auf Linux, Windows, Mac OS X und seit Version
2.2 sogar auf Android benutzt werden. Dem Anwender stehen durch OpenCV eine Vielzahl an Möglichkeiten zur Verfügung, durch die unterschiedliche Bereiche
der Computer Vision abgedeckt sind. Dabei legt OpenCV Wert auf die medizi”
nische Bildverarbeitung“, Sicherheit“, Kamerakalibrierung“ und Stereoskopie“,
”
”
”
sowie auf maschinelles Lernen“ besonderen Wert. Abschließend ist zu bemerken,
”
dass OpenCV besonders darauf ausgelegt ist Echtzeitanwendungen zu entwickeln.
(vgl. auch [BK08])
3.1 Aufbau von OpenCV
OpenCV ist in fünf Hauptkomponenten eingeteilt, von denen jedoch nur vier in Abbildung 1 aufgeführt sind.
Abbildung 1: Basisstruktur von OpenCV aus [BK08]
5
3.2 Funktionalitäten
3 OPENCV - OPEN COMPUTER VISION
Die Komponente cv“ stellt grundlegende Algorithmen für die Bildverarbeitung
”
zur Verfügung. Diese beinhalten insbesondere Bild -und Bewegungsanalyse, Objektverfolgung, Objekt -und Gesichtserkennung, sowie Kamerakalibrierung und 3DRekonstruktionen. Die Komponente highgui“ beinhaltet Funktionen für die Bild”
und Videoaufnahme, sowie eine einfache Oberflächendarstellung. In der Komponente cxcore“ sind, wie der Name schon sagt, die Kernfunktionalitäten vertreten.
”
Darunter fallen beispielsweise Arrayoperationen, mathematische Funktionen, XML,
Zeichenfunktionen in 2D, sowie komplexe Datenstrukturen. Die MLL - Machine
”
Learning Library“ enthält Funktionen für neuronale Netze, Entscheidungsbäume,
statistische Klassifikationen und andere. Die letzte, nicht in der Abbildung aufgeführte Komponente, hat die Bezeichnung CvAux“. Sie wurde nicht in der Abbil”
dung abgebildet, weil sie experimentelle Algorithmen enthält und außerdem nicht
gut dokumentiert wurde. (vgl. auch [BK08])
3.2 Funktionalitäten
In diesem Abschnitt werden interessante Funktionalitäten für die Projektgruppe
Virtual Reality“ behandelt und mit etwaigen Beispielen veranschaulicht.
”
3.2.1 Optical Flow Tracking
Bei dem Verfolgen von Objekten beliebiger Art über den optischen Fluss“ (engl.
”
Optical Flow) wird anhand von Helligkeitsmustern die Bewegung eines Pixels innerhalb aufeinander folgender Bilder einer Bildsequenz berechnet. Dabei wird die
Annahme gemacht, dass der Helligkeitswert der betrachteten Pixel über die Zeit konstant bleibt, sich also von einem Bild in das nächste nicht verändert. Es resultiert
ein Vektorfeld, das Orientierung und Bewegungsgeschwindigkeit jedes betrachteten
Pixels angibt. Durch OpenCV ist eine solche Verfolgung ohne weiteres möglich.
Problematisch wird es nur, wenn sich das betrachtete Objekt zu sehr von der äußerlichen Erscheinung verändert oder rapide Intensitätsveränderungen auftreten. (vgl.
auch [BK08])
In [ehc] verwendet Daniel Baggio Optical Flow“ für die Verfolgung des Gesichts.
”
Dort wird vorerst auf dem erkannten Gesicht nach Punkten mit einem markanten Charakteristikum gesucht. Anschließend werden diese Punkte verfolgt. Nachteil
6
3.2 Funktionalitäten
3 OPENCV - OPEN COMPUTER VISION
bei diesem Verfahren ist, dass diese Punkte verloren gehen, sobald sie im darauf
folgenden Bild nicht mehr gefunden werden. Statt einmal die Robustheit des implementierten Systems zu zeigen, bewegt der Entwickler sich besonders langsam und zu
sehen ist, dass auch dort Punkte verloren gehen. Um dies zu umgehen, initialisiert
er immer wieder manuell neue Punkte auf dem erkannten Gesicht. Dadurch kommt
die Vermutung auf, dass der Entwickler dies besser automatisieren hätte sollen, so
dass eine erneuerte Initialisierung stattfindet, sobald die Anzahl der Punkte unter
einen Schwellwert fällt. Womöglich wäre dadurch eine effizientere Lösung gegeben,
die jedoch immer noch gegen eine Rotation des Kopfes empfindlich ist.
3.2.2 Camshift Tracking
Der Camshift Algorithmus (Camshift - continuously adaptive mean shift) ermöglicht
es, Verschiebungen von Objekten nachzuvollziehen und diese ggf. zu verfolgen. Der
Algorithmus sucht im Bereich eines vorher definierten Suchfensters nach lokalen
Gipfeln (Maxima) einer Verteilung beliebiger charakteristischer Merkmale (z. B.
Farbverteilung, Form usw.). So könnte z. B. eine Farbe das besondere Merkmal der
Verteilung sein oder die geometrische Form eines Objektes. Im Suchfenster würden
dann, sobald Pixel dieser Form/Farbe zu sehen sind, unterschiedliche Gipfel auftauchen, anhand derer dann ein Objekt verfolgt werden könnte. Je nachdem, welches
Charakteristikum für die Wahrscheinlichkeitsdichtefunktion gewählt wurde, ändern
sich dementsprechend die Maxima. Bei Objekten, die sich in der Größe verändern
können, wird eine automatische Größenänderung des Suchfensters vorgenommen.
Wenn sich das zu verfolgende Objekt beispielsweise weiter von der Kamera entfernt
und das Objekt kleiner wird, dann resultiert darin die Verkleinerung des Suchbereichs. Gleiches gilt bei Vergrößerungen von Objekten. (vgl. auch [BK08])
Als Vorgehensweise des Camshift-Algorithmus werden folgende Aktionen abgearbeitet:
1. Wahl einer intitialen Umgebung und Größe für das Suchfenster (Könnte zum
Beispiel durch einen initialen Bereich oder eine Geste gemacht werden)
2. Berechnung von dem Massezentrum des Suchfensterinhalts
3. Zentrieren des Suchfenstermittelpunkts auf das Massezentrum
7
3.2 Funktionalitäten
3 OPENCV - OPEN COMPUTER VISION
4. Anpassung der Suchfenstergröße
5. Wiederholung ab Schritt 2, sofern Suchfenster in Bewegung ist
Bezogen auf die Kinect könnte ein Camshift-Tracking anhand der Farbe des initialisierten Anwenders erfolgen. Dabei müsste entweder ein Bereich definiert werden, in
dem sich der Anwender befinden soll und darf oder der Anwender muss zu Beginn
der Applikation eine initiale Geste machen. Auch wäre eine manuelle Selektion des
Anwenders durch dessen Markierung im Bild mit Tiefeninformationen möglich.
3.2.3 Gesichtserkennung mit OpenCV
In OpenCV existiert die Möglichkeit eine Gesichtserkennung durchzuführen und anschließend das Gesicht zu verfolgen. Dabei orientiert sich OpenCV an Kontrasten in
unterschiedlichen Regionen des Bildes. Diese Besonderheiten werden auch als Haar”
like Features“ bezeichnet. Das menschliche Gesicht kann durch den Zusammenhang
dieser Regionen definiert werden. Ein Problem bei dieser Vorgehensweise ist jedoch,
dass das Gesicht vor der Erkennung über mehrere hundert Bilder trainiert werden muss. Aus den gelernten Gesichtern wird anschließend eine XML-Datei erstellt,
anhand dieser anschließend Gesichter erkannt werden können. OpenCV bietet bereits eine solche XML-Datei an, so dass dem Entwickler das Training erspart wird.
Grundlegender Nachteil ist die Anwendung eines Templates der Größe 20x20, der
für eine Gesichtserkennung über das gesamte Bild gezogen wird. Dabei wird dieses
Template auf jeweils eine ROI (Region Of Interest) der selben Größe angewendet.
Sobald eine Region dem Template entspricht, gibt der Algorithmus eine 1“ zurück.
”
Damit sichergestellt werden kann, dass das Gesicht auch bei anderen Entfernungen von der Kamera erkannt werden kann, wird das Template bei unterschiedliche
Auflösungen auf das Bild angewendet. Diese Methode nimmt einen ziemlich großen
Rechenaufwand ein und deswegen eine Gesichtserkennung in Echtzeit fragwürdig.
Der Test ergab kein zufriedenstellendes Ergebnis. Zwar wird das Gesicht in Videobildern erkannt, aber dazu muss das Gesicht gerade auf die Kamera gerichtet sein.
Zudem darf der Kopf nicht geneigt oder gedreht werden. Leider ist diese Feature von
OpenCV viel zu langsam für eine Echtzeitanwendung. Auch ändert sich nichts an
der Geschwindigkeit, wenn die Auflösung auf 180 x 144 runterskaliert wird. In Abbil-
8
3.2 Funktionalitäten
3 OPENCV - OPEN COMPUTER VISION
dung 2 ist ein Beispielbild zu sehen. Womöglich wird es mit einem leistungsstärkeren
Prozessor bessere Ergebnisse geben. (vgl. auch [fac])
Abbildung 2: Gesichtserkennung bei einer Auflösung von 180x144
3.2.4 Skeletterkennung
In [Rus11] zeigen Corey Manders und Farzam Farbiz eine Skeletterkennung. Benutzt wird dafür eine 3D-Webcam, die in der PG Virtual Reality“ jedoch nicht
”
benötigt wird, da bereits Tiefeninformationen über die Kinect vorhanden sind. Lediglich müssen die ausgegebenen Werte mit der tatsächlichen Entfernung abgeglichen
werden, um eine Konsistenz zwischen Bild und Realität herzustellen. Der Algorithmus für die Positionsbestimmung geht wie folgt vor:
1. Gesichtserkennung aus OpenCV
2. Annahme, dass sich der Nacken des Benutzers 0.5*Kopfradius unter dem erkannten Gesicht befindet.
3. Schultern des Anwenders ab dem Hals 2*Kopfradius auf einer horizontalen
Linie.
4. Erkennung der Hände (erst die linke Hand, dann die rechte Hand) anhand der
Bilder mit Tiefeninformationen und Annahme, dass die Hände näher als der
9
3.2 Funktionalitäten
3 OPENCV - OPEN COMPUTER VISION
Kopf des Anwenders an der Kamera sind.
a) Linksseitig vom Kopf nach der linken Hand suchen
b) Dafür ROI (Region Of Interest) definiert
c) Innerhalb der ROI maximalen Wert feststellen (Tiefeninformation)
d) Thresholding, so dass nur noch die Werte der Hand im Bild zu sehen sind
e) Massenzentrum bestimmen und Hand identifizieren
f) Gleiches Vorgehen für die rechte Hand
5. Erkennung des Unterarms entlang der y-Achse mit der jeweiligen Hand als
Starpunkt.
6. Erkennung des Oberarms durch das Zeichnen einer Linie vom untersten Punkt
des Unterarms bis zu den Schultern.
Zwar werden in den Veröffentlichungen gute Ergebnisse gezeigt, dennoch ist zu bezweifeln, dass die implementierte Anwendung eine Verarbeitung in Echtzeit ermöglicht.
Mit der Benutzung der Gesichtserkennung von OpenCV, die in Abschnitt 3.2.3
erläutert und getestet wurde, sind keine zufriedenstellenden Ergebnisse zu erwarten. Dennoch könnte die Gesichtserkennung für eine Initialisierung des Gesichts
benutzt werden, so dass anschließend weitere Aktionen, z. B. mit in Abschnitt 3.2.5
aufgeführten Möglichkeiten, ausgeführt werden können.
3.2.5 Maschinelles Lernen
OpenCV ermöglicht das maschinelle Lernen aus vorhandene Daten. So können z.
B. Rückschlüsse aus gesammelten Daten gezogen, Modelle erstellt und Vorhersagen
über mögliche Folgezustände getroffen werden. Unter das maschinelle Lernen in
OpenCV fallen folgende Klassifikatoren:
• statistische Modelle
• Bayes Klassifikator
• KNN - K Nearest Neighbors
10
3.2 Funktionalitäten
3 OPENCV - OPEN COMPUTER VISION
• Entscheidungsbäume
• Boosting
• Expectation-Maximization-Algorithmus
• Neuronale Netzwerke
• Support Vector Machine
Näheres zu den Algorithmen ist in [BK08] zu finden.
11
4 PCL - POINT CLOUD LIBRARY
4 PCL - Point Cloud Library
PCL stellt einen wichtigen Teil des ROS - Robot Operating System“ dar. Sie ist
”
eine vollständig in C++ implementierte Bibliothek mit einem Eigen“-Backend für
”
die Verarbeitung von n-dimensionalen Punktwolken und 3D Geometrieverarbeitung.
Enthalten sind aktuelle Algorithmen für Filterung, Oberflächenrekonstruktion, Registrierung und Segmentierung. PCL unterliegt der BSD-Lizenz und ist somit frei
zugänglich und verwendbar für alle. Außerdem bietet PCL eine weitgehend plattformunabhängige Benutzung (Linux, Windows, MacOS und sogar Android. (vgl.
[Rus11])
4.1 Was sind Punktwolken und wozu dienen sie?
Eine Punktwolke (engl. point cloud) stellt ein n-dimensionales Konstrukt bestehend
aus einer Anzahl von Punkten und optional zusätzlichen Informationen, wie z. B.
Farbe, Intensität, Distanz etc., im Raum dar. Ein Punkt kann somit wie folgt beschrieben werden.
pi = {xi , yi , zi , ri , gi , bi , disti , ...}
wobei eine Punktwolke definiert ist als:
P = {p1 , p2 , ..., pi , ..., pn }
Die Menge der Punkte hängt dabei von der Komplexität des betrachteten Objekts
ab. In der Regel werden solche Punktwolken mit teuren 3D-Laser-Scannern (hohe
Qualität) oder Stereo-Kameras (abhängig von den Texturen) erstellt. Mit der Kinect
hingegen ist dies ohne den Einsatz von Lasern möglich. Die Kinect macht sich das
TOF - Time of Flight“-Prinzip zunutze, durch das Tiefeninformationen ermittelt
”
werden können. Auch interessant ist, dass die Kinect neben 2D-Bilder sogar Punktwolken in Echtzeit ausgibt. Im Vergleich zu dem 3D-Laser-Scanner ist diese Methode also vergleichsweise günstiger. Verwendung finden Punktwolken in verschiedenen
Bereichen wie z. B. der Visualisierung, also der Darstellung von Objekten oder
Oberflächen auf Computern. Auch verwendet werden sie in der Modellierung zur
Rekonstruktion von Oberflächen mit sogenannten “Meshes“ und Polygonen. Wei-
12
4.2 Aufbau von PCL
4 PCL - POINT CLOUD LIBRARY
tergehend ist eine geometrische Berechnung wie z. B. das Objekte vermessen von
Bedeutung, sowie die Erkennung von Menschen und Gegenständen oder die Navigation entlang einer Umgebung mit räumlichen Informationen möglich. [vgl. [Teu07],
[PCL], [Mic]]
4.2 Aufbau von PCL
Der Aufbau von PCL ist modular. Durch die Nutzungsmöglichkeit auf verschiedenen
Plattformen mit unterschiedlicher Leistung war dies nötig, da jedem System ein
anderes Leistungsspektrum zur Verfügung stehen kann. Deswegen ist PCL in eine
Serie von einzelnen Bibliotheken aufgegliedert, so dass diese auch separat kompiliert
werden können. Unter die wesentlichen Bibliotheken fallen:
• common: Datenstrukturen, mathematische Funktionen wie Kovarianz oder
Entfernungsberechnung
• filters: Datenfilter, z. B. für das Entfernen von Rauschen aus Punktwolken
• features: Berechnung der Normalen einer Oberfläche, Grenzpunkte finden,
Integralbilder etc.
• io: Ein -und Ausgabefunktionen
• segmentation: Segmentierungsalgorithmen, z. B. das Teilen einer Punktwolke
und die unabhängige Verarbeitung der Teile
• surface: Oberflächenrekonstruktion, sowie Funktionen für die Vermaschung
und für konvexe Hüllen
• registration: Registrierung von Datensätzen anhand der Position und Orientierung in Punktwolken
• keypoints: Featurebeschreibung (Punkte, die als besonders erscheinen) vorverarbeiten und extrahieren
• range image: Bilder mit Tiefeninformationen anhand der Kalibrierungswerte
der Kamera in Punktwolken überführen
13
4.3 Funktionalitäten
4 PCL - POINT CLOUD LIBRARY
• octree: Hierarchische Datenstrukturen in Form eines Baumes von Punktwolkendaten erstellen. Ermöglichung der räumlichen Trennung, Suchoperationen
auf den Datensätzen und Downsampling
4.3 Funktionalitäten
Es existieren eine Reihe von Funktionalitäten die für die Verarbeitung und Benutzung von Punktwolken interessant sein könnten. Infrage kommen würde sicherlich die
Registrierung von Punktwolken und eine daran angelehnte Verfolgung des registrierten Objekts, wobei sich dies bei flexiblen Objekten als sehr schwierig herausstellen
kann. Auch wäre es interessant die Normalen von Oberflächen zu berechnen, um
etwaige Orientierungen zu ermitteln, was wahrscheinlich auch in Verbindung mit
OpenCV möglich ist. Insbesondere die Erkennung von räumlichen Veränderungen,
so dass z. B. Menschen als eine Veränderung im Bild erkannt werden können sobald
sie sich bewegen, sollte von Interesse sein. Da Punktwolken nicht nur Informationen
über die dreidimensionale Position der einzelnen Punkte enthalten können, gibt es
weitergehend die Funktionalität, Punktwolken zu komprimieren. Dadurch können
selbst große Punktwolken mit vielen zusätzlichen Informationen verarbeitet werden.
Auf http://www.pointclouds.org/documentation/ befinden sich eine Reihe von
Anleitungen, die weitere Möglichkeiten beschreiben.
14
5 FAZIT/NUTZBARKEIT
5 Fazit/Nutzbarkeit
Für die von der Kinect ausgegebenen Bilddaten und deren Verarbeitung kann sowohl
OpenCV, als auch PCL verwendet werden, wobei PCL natürlich eher auf Punktwolken und deren Verarbeitung, Analyse und Ausgabe spezialisiert ist. Sicher ist,
dass eine Verbindung mit der Kinect mit OpenCV möglich ist. Leider war es bis
zum Abschluss dieser Seminararbeit nicht möglich unter Windows eine Verbindung
via PCL zur Microsoft Kinect herzustellen, die 30 Frames/s zeigt. Die Entwickler
arbeiten bereits daran den Fehler zu beheben. Für eine Verbindung der Microsoft
Kinect nutzen beide Bibliotheken unterschiedliche Komponenten. OpenCV nutzt
zum Einen den Treiber libfreenect“ oder die CL NUI Platform“ und PCL nutzt
”
”
die Middleware OpenNI“ in Verbindung mit Nite“ von der Firma PrimeSense,
”
”
welches zusätzlich eine Skeletterkennung und -Verfolgung implementiert. Weiterhin
ist zu sagen, dass sowohl PCL, als auch OpenCV mit C++ ansprechbar sind und
beide Bibliotheken untereinander kommunizieren können sollten. Wenn also zusätzliche Funktionalitäten erwünscht sind, die nicht in PCL implementiert sind, kann
noch immer auf OpenCV zurückgegriffen werden. Weitergehend stellt OpenCV viele
Algorithmen zur Verfügung, die von Interesse sein könnten. Insbesondere das maschinelle Lernen kommt für die Erkennung von Gesten infrage. Durch Trainingssätze
können die in Abschnitt 3.2.5 gezeigten Klassifikatoren trainiert und anschließend
für Vorhersagen verwendet werden. Abschliessend ist noch zu sagen, dass auch die
Möglichkeit besteht Motion Capturing“ durchzuführen und die erhaltenen Daten
”
beispielsweise in einem XML-Format zu speichern. Die gemessenen Daten können
vorzugsweise in Verbindung mit einem 3D-Modell (z. B. ein Gesicht) gebracht werden und in einer Animation resultieren.
15
Literatur
Literatur
Literatur
[BK08] Bradski, Gary ; Kaehler, Adrian: Learning OpenCV: Computer Vision
with the OpenCV Library. Cambridge, MA : O’Reilly, 2008
[ehc]
http://code.google.com/p/ehci/
[fac]
http://opencv.willowgarage.com/wiki/FaceDetection
[Mic]
http://research.microsoft.com/en-us/um/redmond/events/
latamfacsum2011/presentations/day_2/Barahona_3/Hrvoje_Benko.
pdf
[Ope]
http://opencv.willowgarage.com/wiki/FullOpenCVWiki
[PCL]
http://pointclouds.org/
[ROS]
http://www.ros.org/
[Rus11] 3D is here: Point Cloud Library (PCL). Shanghai, China, May 9-13 2011
[Teu07] Teutsch, Christian: Model-based Analysis and Evaluation of Point Sets
from Optical 3D Laser Scanners. Aachen, Germany, Germany : Shaker
Verlag GmbH, Germany, 2007. – ISBN 3832267751, 9783832267759
16
Konfigurationsmanagement
Seminararbeit
Projektgruppe Virtuelle Realität
Tim Jörgen
31.05.201
1 Inhalt
1
2
Inhalt .................................................................................................................................... i
1.1
Einleitung..................................................................................................................... 1
1.2
Übersicht über das eingesetzt KM ............................................................................... 1
Versionsverwaltung ............................................................................................................ 2
2.1
Vergleich von Git und SVN ........................................................................................ 3
2.2
Hooks ........................................................................................................................... 4
2.2.1
2.3
3
Entscheidung ............................................................................................................... 5
Projektmanagement Tools .................................................................................................. 5
3.1
Übersicht ...................................................................................................................... 5
3.2
Vergleich von Issue-Tracking und Projektmanagement Systemen ............................. 6
3.2.1
Trac....................................................................................................................... 6
3.2.2
Retrospectiva ........................................................................................................ 6
3.2.3
Redmine ............................................................................................................... 7
3.3
4
Verwendete Hooks ............................................................................................... 5
Entscheidung ............................................................................................................... 7
Build Management .............................................................................................................. 8
4.1
CMake Einleitung ........................................................................................................ 8
4.2
Beispiel ........................................................................................................................ 8
4.3
Weitere Funktionen ..................................................................................................... 9
4.4
Integration in das Projekt ............................................................................................. 9
5
Fazit................................................................................................................................... 10
6
Literaturverzeichnis .......................................................................................................... 11
i
1.1 Einleitung
Softwareentwicklung ist typischerweise ein Prozess, welcher von mehreren Personen
vorgenommen wird. Daraus ergeben sich zwangsläufig starke Prozessverluste und Probleme,
die unterschiedlich große Auswirkungen auf das resultierende System, sowie auf die
Wirtschaftlichkeit der Entwicklung haben können. Oftmals werden bereits funktionierende
Teile eines Systems wieder fehlerhaft, es ist nicht klar, wer etwas geändert hat, oder es ist
einfach nicht klar, ob der aktuelle Zustand eines Systems bereits den durch das
Qualitätsmanagement geforderten Anforderungen entspricht (z.B. ob bereits getestet wurde).
Das Konfigurationsmanagement versucht auf diese Probleme einzugehen, koordiniert die
verschiedenen Versionen von Komponenten und stellt eine wichtige Instanz bei der
Minimierung von Prozessverlusten da.
Das Konfigurationsmanagement (KM) ist ein Bestandteil des Projektmanagements und
diesem untergeordnet. Es wurde vor allem 2003 von der DIN ISO 10007:2003 spezifiziert,
welche den bis dahin geltenden Standard ISO 10007:1996 ersetz.
Seinen Ursprung findet es in der Entwicklung von Hardware für den militärischen Bereich in
den 60er Jahren, doch es sei im wesentlichen unabhängig davon, was entwickelt und
hergestellt wird (Versteegen & Weischedel, 2003, S. 1). Das KM beinhaltet "alle technischen,
organisatorischen und beschlussfassenden Maßnahmen und Strukturen, die sich mit der
Konfiguration eines Produktes befassen" (Angermeier, 2004), wobei eine Konfiguration
"miteinander verbundende funktionelle und physische Merkmale eines Produktes [...]" sind
(Braun, 2009, S. 97).
Diese Arbeit beschäftigt sich mit dem Konfigurationsmanagement, welches im Rahmen der
Projektgruppe "Virtuelle Welten" der Carl von Ossietzky Universität eingesetzt wird und der
Organisation, sowie der Entwicklung behilflich ist. Dabei wird vor allem auf Technologien
eingegangen, die im Rahmen der Projektgruppe eingesetzt werden und nun der Projektgruppe
bei der Bewältigung der bevorstehenden Aufgaben zur Verfügung stehen.
1.2 Übersicht über das eingesetzt KM
In dem Projekt "Virtuelle Welten" wird über den Zeitraum von einem Jahr ein Projekt
entwickelt werden, dessen Anforderungen zum Anfang größtenteils unklar waren und erst im
Laufe der ersten Monate spezifiziert wurden. Parallel zur Spezifikation der Anforderungen
entstand das vorliegende Konfigurationsmanagement, welches der Projektleitung die
Möglichkeit gibt eine Aufgabenverteilung zu planen und den Überblick über den aktuellen
Systemzustand zu bekommen. Dabei wurde versucht ein großes Feld an Aufgaben und
Problemen zu adressieren, und eine möglichst wartungsfreie Umgebung zu schaffen, welche
sparsam mit den Vorhandenen Humanressourcen umgeht. Folgende Teilaufgaben wurden
dabei gelöst:




Versionsverwaltung
Dateiaustausch1
Informationsmanagement
Bug Tracking
1
Hiermit ist vor allem der Austausch von Binär Dateien gemeint, die aufgrund ihrer Größe nicht von dem
Versionskontrollsystem verwaltet werden können, ohne die Effektivität von diesem zu reduzieren.
1

Aufgabenverteilung mit Zeiterfassung
Es wurde versucht eine hohe vertikale Integration2 des KM innerhalb der Projektgruppe zu
erreichen, indem die einzelnen Teilbereiche durch den Einsatz von Tools miteinander
verknüpft wurden. Zudem wurde auf Standartsoftware und Lösungen gesetzt um wie bereits
erwähnt ein möglichst wartungsfreies System zu erhalten.
Folgende Software und Tools werden eingesetzt:




Ubuntu 10.10 LTS3
Git
VSFTP
Redmine
Wobei sehr viele Features direkt von Redmine geboten werden, was die Zahl der benötigten
Tools deutlich reduziert hat.
2 Versionsverwaltung
Eine
Versionsverwaltung
ist
für
Software
Projekte
unerlässlich.
Ein
Versionsverwaltungssystem stellt eine Funktionalität bereit, mit der Unterschiedliche
Zustände von Dateien und Dokumenten gespeichert werden können. So kann nach
Änderungen an einer Datei zurückverfolgt werden, wer was und wann geändert hat. Auch
kann zu alten Zuständen zurückgekehrt werden.
Dadurch dass mehrere Programmierer an demselben Projekt arbeiten ergeben sich zudem
verschiedene Probleme. Das bekannteste ist sicherlich das Lost Update Problem, bei dem
Änderungen, die von einer Person vorgenommen wurden die Änderungen einer anderen
Person überschreiben (siehe Abbildung 1).
Abbildung 1 - Lost Update (Hasselbring, 2007)
2
Die vertikale Integration bezeichnet in einem Unternehmen den Grad der Integration von der strategischen
Ebene bis hin zur operativen Ebene.
3
LTS = Long Time Service
2
Dieses Problem wird von allen aktuelleren Versionsverwaltungssystemen durch das
Einführen von Locks und das teilweise automatisierte Zusammenführen von Dateien
behoben. Gerade bei älteren Systemen (wie z.B. RCS) ist diese Funktionalität allerdings nicht
gegeben, wodurch diese Systeme für unser Projekt als unbrauchbar angesehen werden.
Aufgrund der Erfahrungen in der Gruppe wurden vor allem zwei Systeme verglichen, welche
sich grundlegend im Aufbau unterscheiden: SVN und Git.
Nicht betrachtet wurden Systeme, die grundlegend ähnlich wie SVN sind (z.B. CVS), oder
grundlegend ähnlich wie GIT (z.B. Mercurial (hg) oder Bazaar), da in der Gruppe mit diesen
keine großen Erfahrungen vorliegen und eine Einarbeitungszeit erforderlich gewesen wäre.
Auch kommerzielle Systeme wie Microsoft Visual Source Safe (Microsoft VSS) wurden
nicht betrachtet. Die Versionsverwaltung war das erste was im Rahmen des
Konfigurationsmanagements beschlossen und umgesetzt wurde und aufgrund der startenden
Entwicklung engen zeitlichen Grenzen unterworfen.
2.1 Vergleich von Git und SVN
Der Hauptunterschied zwischen Git und SVN ist, dass es sich bei Git um ein sogenanntes
verteiltes Versionsverwaltungssystem handelt. Im Gegensatz zu SVN wird nicht ein zentraler
Server benötigt, sondern es gibt mehrere redundante Instanzen des gesamten Repositories,
wodurch alle Nutzer den vollständigen Funktionsumfang von Git nutzen können, auch wenn
sie den Haupt Server, welcher auch oft als Master bezeichnet wird, nicht erreichen können.
Jeder Nutzer kann also lokal in sein eigenes Repository Änderungen übertragen, welche dann
nach Belieben auf einmal zum Server gesendet werden (man spricht hier von pushen). Auch
ist es möglich, dass zwei oder mehrere Nutzer gegenseitig commits (also Übertragungen)
austauschen,
was
das
kollaborative
Arbeiten
deutlich
erhöht.
Auch wird es so ermöglicht lokal mehrere Zustände (Konfigurationen) der eigenen Arbeit zu
speichern, ohne jeweils den kompletten Ordner kopieren zu müssen. Gerade bei großen
Projekten ist dies sehr hilfreich, da beim Übertragen nur die Zahl der Änderungen von zwei
Konfigurationen untereinander, also die Deltas, gespeichert werden müssen.
Diese Funktionalität fehlt komplett bei SVN. Es ist lediglich möglich nach erledigter Arbeit
die vorgenommenen Änderungen zum Server zu schicken.
Ein weiterer großer Vorteil von Git gegenüber SVN ist die Geschwindigkeit, mit der das
Repository Dateien austauscht. Bei SVN werden Änderungen einzeln und nacheinander
übertragen. Dies ist gerade bei sehr vielen Dateien, oder bei extrem großen Dateien sehr
zeitaufwendig. Git hat aufgrund dieses Problems eine komprimierte Übertragung eingeführt,
welche die Geschwindigkeit deutlich erhöht. In einem ersten Schritt werden dabei die
Unterschiede zwischen dem Zustand der lokal vorliegenden, sowie des entfernten Repositorys
komprimiert und gemeinsam als ein einziger Stream über das Netzwerk versandt. Gerade
Projekte, welche aus Dateien bestehen, bei denen sich hohe Kompressionsraten erzielen
lassen profitieren deutlich von diesem Feature.
Bei der Einrichtung und Wartung sind die Unterschiede nicht sonderlich groß. Beide Systeme
lassen sich entweder als Teil eines Apache Servers laufen lassen, was den Vorteil mitbringt,
dass ein ausgereiftes Sicherheitsmanagement (z.B. htaccess) genutzt werden kann, sowie ein
sehr performanter Server existiert, welcher auch eine große Zahl an Zugriffen verarbeiten
kann. Alternativ lässt sich auch für beide Systeme eine Authentifikation über SSH
3
ermöglichen, welche das Unix Rechte Management nutzt. Dabei werden auf einem beliebigen
Unix artigem Betriebssystem normal Nutzer angelegt und einer gemeinsamen Nutzergruppe
zugewiesen. Das SVN oder Git Repository befindet sich dann ein einem normalen Ordner im
Verzeichnissystem und die komplette Kommunikation erfolgt danach über SSH. Ein eigener
Prozess für einen Server muss nicht mehr laufen. Aufgrund des geringeren
Wartungsaufwands haben wir uns für diese Lösung entschieden, da die Zahl der
Gruppenmitglieder mit sechs Personen doch eher überschaubar ist und eine hochperformante
Lösung nicht zu den Anforderungen gehört.
Für beide Systeme gibt es eine unterschiedlich gute Integration in die verbreiteten IDEs, was
sicherlich historische Gründe hat. So begann die Entwicklung von Git erst 2005 durch Linus
Torvalds, SVN hingegen existiert schon seit 2000 und erreichte ein Jahr vor dem Beginn der
Entwicklung Gits die Version 1.0. Zudem ist SVN eine quasi Weiterentwicklung des
Concurrent Versiosn System (CVS), welches seit 1989 entwickelt wird und als
Weiterentwicklung des Revisions Control Systems (RCS, seit 1982) gilt. Während SVN auf
weit verbreiteter Software basiert und Konzepte benutzt, die seit Jahrzenten in der Praxis
bewährt sind, ist Git erst seit einigen Jahren dabei Verbreitung zu finden. Es konnten leider
Keine Zahlen zur aktuellen Verbreitung gefunden werden, bei denen Angaben zur
eingesetzten wissenschaftlichen Methodik gemacht wurden, mit welcher diese erhoben
wurden, bzw. die einem Review Verfahren unterlagen und damit wissenschaftlichen
Ansprüchen genügen.4
Beide Systeme bieten zudem noch die Möglichkeit von Pre- und Post-commit Hooks, auf
welche im Folgenden noch näher eingegangen wird.
2.2 Hooks
Ein Hook ist ein Programm oder Skript, welches durch ein Event, welches im Repository
ausgelöst wird ausgeführt wird. Wichtig ist dabei vor allem der Post-commit Hook, welcher
nachdem Dateien in das Repository übertragen wurden ausgelöst wird. Dieser Hook kann für
verschiedenste Aufgaben genutzt werden, so müssen zum Beispiel die Meisten Groupware
Systeme und Bug Tracker, welcher oftmals eine nahezu nahtlose Integration in
Versionskontrollsysteme haben (oder umgekehrt) über Änderungen benachrichtigt werden.
Oder es können automatisch Emails versandt werden, nachdem bestimmte Änderungen
vorgenommen wurden.
Die Einrichtung eines solchen Hooks ist bei beiden betrachteten Systemen recht einfach
gehalten. Es gibt jeweils einen Ordner, in welchem die Programme, bzw. Skripte kopiert
werden. Diese müssen lediglich eine Konvention hinsichtlich des Dateinamens erfüllen (z.B.
pre-commit.sh) und die notwendigen Dateirechte haben (unter Unixoiden Systemen vor allem
das +x Flag). Relevante Daten werden diesen Skripten dann automatisch per Startargument
durch das jeweils verwendete System übergeben. Eine weitere Konfiguration ist nicht
notwendig, was einen sehr positiven Eindruck bei beiden Systemen hinterlassen hat.
4
Deshalb sei hier lediglich in einer Fußnote erwähnt, das in (Hammon, 2010) SVN mit einem Marktanteil von
33,4% auf dem ersten Platz gesehen wird, gefolgt von Microsoft VSS mit 12,5%. Git wurde auf dem siebten
Platz mit 2,7% gelistet. Auffallend ist die große Zahl kommerzieller Systeme unter den Top 10.
4
2.2.1 Verwendete Hooks
Als einziger Hooks ist momentan ein Post-commit Hook aktiviert, welche von der
eingesetzten Groupware benötigt wird. Diese bietet dann die Möglichkeit weitere Features,
wie das bereits erwähnte Versenden von Emails nach Dateiänderungen nach Belieben und
komfortabel zu konfigurieren.
Ein weiterer Post-commit hook, welcher automatisch Unit Tests ausführt ist in dem aktuellen
Projektstadium leider noch nicht integrierbar, allerdings geplant, sofern eine Testumgebung
beschlossen wird.
2.3 Entscheidung
Nach Abwägung aller Vor- und Nachteile haben wir uns letztlich für den Einsatz von Git
entschieden. Gerade der verteilte Ansatz verspricht die Produktivität deutlich zu erhöhen.
Auch die Möglichkeit lokal ein Repository zu benutzen, in welchem verschiedene
Konfigurationen des Projektes bei der Arbeit gespeichert werden können, und zwar ohne das
jedes Mal eine Änderung auf den Remote Server geschrieben werden muss, ist etwas das
eindeutig ein deutlich effizienteres Arbeiten verspricht, als es Subversion bietet.
Auch sind die Erfahrungen in der Gruppe mit Git überaus positiv, auch wenn noch nicht alle
dieses System kennen und bereits Erfahrungen damit sammeln konnten.
3 Projektmanagement Tools
Das Projektmanagement ist dazu da, um die vorhandene Arbeit so auf die einzelnen
Teilnehmer zu verteilen, dass die Effizienz maximiert wird und die Prozessverluste minimiert
werden. Auch ist es wichtig Aufgaben zu priorisieren, da keine unbegrenzten Ressourcen zur
Verfügung stehen.
Die Informationsfunktion bezeichnet alle Aufgaben, die zur Information und Kommunikation
gehören. In Projekten ist es im Rahmen der Business Intelligence wichtig über geeignete
Informationssysteme zu verfügen, die durch einen hohen Integrationsgrad die
Informationsfunktion gut und geeignet abbilden und vor allem repräsentieren. "Business
Intelligence umfasst Verfahren, Methoden und Werkzeuge, um entscheidungs- und
analyserelevante Daten aus unternehmensinternen und -externen Quellen zu integrieren und
für Analysezwecke optimiert aufzubereiten." (Gronau, 2010, S. 306)
Es ist wünschenswert ein System zu finden, dass dieser Aufgabe gewachsen ist.
3.1 Übersicht
Für den Einsatz in Softwareprojekten existieren mehrere, teilweise frei verfügbare
Programme, welche häufig als sogenannte Issue-Tracking-Systeme bezeichnet werden. Diese
Systeme bieten in der Regel eine Funktionalität um Aufgaben, Anfragen und ggf. Bugs als
"Tickets" zu speichern. Diese Tickets können dann in Kategorialen eingeteilt werden und im
simpelsten Fall an eine oder mehrere Personen zur Bearbeitung gegeben werden. Wir haben
früh beschlossen, dass alle erfolgreich identifizierten Aufgaben als Ticket gespeichert werden,
damit der Soll Zustand des Systems jederzeit abrufbar ist. Sobald eine Aufgabe erledigt
wurde, kann dieses in dem Entsprechenden Ticket vermerkt werden und dieses wird
5
aktualisiert und evtl. geschlossen. Durch automatisierte Benachrichtigungsfunktionen erhalten
zudem alle Gruppenmitglieder eine Email, welche über den geänderten Ist Zustand informiert.
3.2 Vergleich von Issue-Tracking und Projektmanagement Systemen
In der Gruppe existieren einige Vorerfahrungen mit dem System Trac von Edgewall Software
(Edgewall Software, 2011), die teilweise nicht nur positiv waren. Erfahrungen mit andren
Systemen existieren nicht. Nach einem anfänglichen groben Vergleich werden mehrere
Systeme verglichen um das geeignetste System zu finden. Die meisten Systeme bieten
Funktionalitäten an, die eigentlich nicht zu einem Issue-Tracking-System gehören (z.B.
Wikis), der Einfachheit halber wird im Folgenden allerdings weiterhin von Issue-TrackingSystemen gesprochen.
3.2.1 Trac
Bei Trac handelt es sich um eine Web basierte Applikation, welche in Python geschrieben ist.
Trac kann dabei entweder per WSGI, mod python, CGI oder FastCGI in einen bestehenden
Webserver eingebunden werden, oder falls dieser nicht vorhanden ist, bzw. der administrative
Aufwand für den Betrieb eines Servers zu hoch erscheint als eigener Prozess gestartet werden.
Der mitgelieferte Webserver lässt sich vergleichsweise einfach starten, es gibt jedoch einen
teilweise spürbaren Geschwindigkeitsnachteil. Die Konfiguration ist zudem überaus
kompliziert, fehleranfällig und zeitaufwendig.
Trac steht momentan in der Version 0.13, ist seit 2006 in der Entwicklung und steht zur Zeit
unter einer modifizierten BSD Lizenz.
Die zentralen Features sind ein Ticket System, welches allerdings nicht ermöglicht einzelnen
Tickets weitere Tickets als Unterticket zuzuweisen. Zudem existiert ein Wiki, welches eine
sehr simple Syntax verwendet (Moin Moin, 2011). Es gibt zudem noch viele verschiedene
Ansichten. Darunter befinden sich Ansichten, die die letzten Änderungen anzeigen, oder
Ansichten für geplante Features u.Ä.. Teilweise wirken diese allerdings vergleichsweise
unübersichtlich und überladen.
Eine Integration von Subversion ist zudem fehlerlos nutzbar, eine Git Integration ist zur Zeit
allerdings nicht ohne weiteres möglich.
Trac lässt sich durch seinen modularen Aufbau per Plugins erweitern, was allerdings häufig
vielerlei Probleme mit sich bringt. Die Plugins setzen teilweise sehr spezifische Versionen
voraus und erfordern mitunter einen hohen administrativen Aufwand.
Positiv ist die Stabilität. Nach persönlichen Erfahrungen ist es in zwei Jahren Dauerbetrieb,
lediglich unterbrochen von Reboots des kompletten Servers, nicht einmal zu einem Absturz
gekommen.
3.2.2 Retrospectiva
Retrospectiva (Retrospectiva, 2011) ist ein Open-Source Projekt, welches einen sehr
aufgeräumten und übersichtlichen Eindruck macht. Es handelt sich ebenfalls um eine Web
Anwendung und setzt eine eigens zu administrierende Datenbank, wie z.B. MySql voraus. Ein
eigener Webserver wird mitgeliefert und das gesamte Projekt ist in Ruby implementiert. Das
Ticket System macht einen übersichtlichen Eindruck und sehr positiv ist die Git Integration,
6
welche ohne Plugins auskommt und selbst zu den beworbenen Core Features gehört. Die
Weiterentwicklung des Projekts wird mit sich selbst verwaltet und geplant. Dabei wird Git als
Versionskontrollsystem eingesetzt. Es ist also anzunehmen, dass dieses Feature nicht plötzlich
seine Funktion einstellt (wie bei Git Plugins für Trac geschehen).
Meilensteine können verwaltet werden und über Plugins können Features wie ein Blog und
ein Wiki zugefügt werden. Auch agile Softwareentwicklung wird unterstützt, so gibt es zum
Beispiel Möglichkeiten einen Scrum Sprint komplett in Retrospektiva zu verwalten.
Die Administration erfolgt ebenfalls komplett über ein Web Frontend, welches ebenfalls
aufgeräumt und übersichtlich ist.
Trotz der sehr positiv wirkenden Feature Liste und dem übersichtlichen Interface ist der
Einsatz in Produktiv Umgebungen allerdings momentan nicht ratsam. Im eigenen Bug
Tracker häufen sich die Einträge von Usern, welche Tickets erstellt haben um Bugs zu
melden, und in vielen Fällen wird nicht geantwortet. So gab es bei der ersten Test Installation
Probleme durch einen Bug und auch nach über einem Monat ist das Ticket noch nicht
beantwortet wurden (Retrospectiva, 2011). Der letzte Blog Eintrag liegt auch schon lange
zurück und anscheinend ist das Projekt aufgrund mangelnder Entwicklung gestorben.
3.2.3 Redmine
Redmine ist eine Web Applikation, die in Ruby geschrieben ist und Rails verwendet. Es
macht einen sehr übersichtlichen Eindruck, ist seit 2006 in Entwicklung und unter der GNU
GPL v2 Lizenz veröffentlicht. Eine eigene Datenbank, in unserem Fall MySQL muss jedoch
manuell installiert werden.
Es gibt eine große Zahl an Features, die ohne Plugins auskommen. Das Ticket System
ermöglicht sogar das erstellen von Untertickets, was eine sehr flexible Aufgabenverteilung
ermöglicht. Die Aufgaben können in Gant-Diagrammen visualisiert werden.
Besonders positiv ist die Wandlungsfähigkeit einzelner Ansichten. So ist es möglich nahezu
jede Seite zu verändern und weitere Eingabefelder zuzufügen. So lässt sich z.B. in der
Nutzerübersicht ein weiteres Feld mit einem Eintrag für einen Jabber Account zufügen. Diese
Felder sind dabei beliebig und müssen nicht aus vorgefertigten Listen ausgewählt werden.
Alle Ereignisse im System lassen sich so konfigurieren, dass sie automatisch Emails
versenden, ähnlich wie post-commit Hooks. Eine Integration von Git und SVN ist problemlos
möglich, auch wenn ein Bug momentan verhindert, dass in den Beschreibungen einer
Übertragung direkt die Ticket Nummer des zugehörigen Tickets angegeben werden kann.
Ein Forum und ein Wiki sind ebenfalls enthalten und lassen sich in der Konfigurationsansicht
an und aus schalten.
Redmine wird von sehr vielen großen Projekten eingesetzt, darunter Ruby, Typo3 und KDE.
3.3 Entscheidung
Alles in allem macht Redmine den robustesten Eindruck. Die von Haus aus unterstützten
Features sind wirklich beeindruckend und der Administrationsaufwand ist sehr gering.
7
Nachdem das System einmal läuft kann alles Weitere bequem per Web Frontend administriert
werden.
Auch die Git Integration ist ein ausschlaggebender Punkt gewesen, die wir uns bereits in
einem frühen Projektabschnitt für Git entschieden hatten. Trac ist hinsichtlich Git leider nicht
kompatibel und fällt damit raus. Retrospektiva ist wie bereits erwähnt für einen Produktiven
Einsatz momentan ungeeignet und es bleibt abzuwarten ob es weiterentwickelt wird. Gerade
in Sachen Bedienbarkeit hat es Trac einiges voraus und die Git Integration ist ebenfalls ein
großes Pluspunkt.
Letztlich fiel die Entscheidung zugunsten von Redmine.
4 Build Management
Im Rahmen dieses Kapitels möchte ich den automatisierten Prozess beschreiben, mit dem das
letztlich resultierende Projekt erstellt wird.
Momentan wird höchstwahrscheinlich C++ als Programmiersprache verwendet. Für diese gibt
es verschiedene Tools, welche das automatisierte Erstellen des resultierenden Programes aus
dem Quellcode ermöglichen. Das bekannteste ist sicherlich make. Weitere bekannte Vertreter
sind noch CMake und Automake. Da viele der bis jetzt im Rahmen des Projektes untersuchte
Libraries CMake verwenden, wird dieses im Folgenden genauer betrachtet.
4.1 CMake Einleitung
CMake (CMake, 2011) ist ein Open Source Programm, welches von Kitware entwickelt wird.
Entstanden ist das Projekt im Jahr 1999, die eigentliche Entwicklung startete jedoch erst im
Jahr 2000 und seit dem in Entwicklung. Das besondere an CMake ist, dass es sich um ein
plattformunabhängiges Tool handelt und auch mit Hilfe von cross Compiling für
verschiedene Plattformen das resultierende Programm erstellt werden kann. Dies ermöglicht
einem Programmierer unabhängig vom Betriebssystem zu entwickeln.
CMake erstellt dazu mit Hilfe einer Datei namens CMakeLists.txt, welche für jedes Projekt
erstellt werden muss, das eigentliche resultierende Makefile. Dieses kann für die wichtigsten
Plattformen und IDEs erstellt werden. CMake ist sozusagen ein Meta Build Tool.
4.2 Beispiel
Im Folgenden soll die Funktionsweise anhand eines Beispiels verdeutlicht werden. Gegeben
sei folgendes C++ Programm, welches in der Datei hallo.cpp gespeichert ist.
#include <iostream>
#include <ostream>
int main()
{
std::cout << "Hallo Welt!" << std::endl;
}
8
Zudem wird im selben Ordner eine CMakeLists.txt erstellt, welche folgenden Inhalt hat:
Dies ist schon das komplette CMake Makefile. Durch den Aufruf von "cmake .." aus einem
cmake_minimum_required(VERSION 2.6)
project(hallo)
add_executable(hallo hallo.cpp)
beliebigen Unterordner heraus wird dann das eigentliche Makefile erstellt. Durch den Aufruf
von "make" wird dann eine Ausführbare Datei namens "hallo" erstellt.
Die Syntax ist dabei sehr simpel. mit cmake_minimum_required(VERSION 2.6) wird
angegeben, welche minimale CMake Version vorhanden sein muss. Der Projektname wird
dabei in Zeile zwei festgelegt und in der letzten Zeile wird der Name der Ausführbaren Datei,
sowie die Datei mit der main Funktion definiert. Befehlen in CMake können Argumente in
der Form cmake_minimum_required(Arg1 Arg2 ...) übergeben werden.
Dies ist ein minimales Beispiel und verdeutlicht gut die Funktionsweise von CMake,
allerdings nicht einmal ansatzweise den kompletten Funktionsumfang.
4.3 Weitere Funktionen
CMake bietet zudem weitere Funktionen, darunter das setzen und speichern von Variablen
mit SET(VARIABLE VALUE), sowie logische Operationen mit if(A AND B) [...]. In
Kombination mit Möglichkeiten das Betriebssystem abzufragen lassen sich individuelle
Skripte für verschiedene Plattformen erzeugen. Dies ist vor allem beim Einbinden von
weiteren Libraries sinnvoll, welche oftmals nur als Binärdateien ausgeliefert werden.
Weitere Ordner können mit INCLUDE_DIRECTORIES(/some/directory) angegeben
werden. Libraries können über das find_library sowie target_link_libraries
Kommando referenziert werden.
Die meisten Features können in recht kurzer Zeit umgesetzt werden. Hilfreich ist dabei das
sehr ausführliche Wiki5.
4.4 Integration in das Projekt
Zum aktuellen Zeitpunkt stehen immer noch wichtige Entscheidungen aus, welche für ein
fertiges Build Skript absolut notwendig sind. So ist zum Beispiel noch nicht klar, ob die
Ogre3D Engine, oder die Irrlicht Engine eingesetzt werden wird.
Beide Engines lassen sich mit CMake bauen, bzw. setzen dieses sogar voraus. Es gibt jedoch
sehr gute Beispiele und es sollte relativ schnell gehen ein fertiges Build Script zu erstellen.
5
http://www.cmake.org/Wiki/CMake, zuletzt aufgerufen am 30.05.2011
9
5 Fazit
Das im Rahmen des Projektes entstandene Konfigurationsmanagement ist vielen Aufgaben
gewachsen und bindet vor allem wenige der ohnehin begrenzten Humanressourcen. Es wurde
vor allem darauf geachtet, ein stabiles System zu erschaffen, welches von allen
Gruppenmitgliedern problemlos genutzt werden kann.
Am aufwendigsten war die Einrichtung der verschiedenen Projektmanagement Tools, was
dazu geführt hat, dass das gesamte Konfigurationsmangement jetzt auf einem eigenen Server
läuft da die Integration in einen bestehenden Server mit Mehrbenutzerbetrieb, welcher von der
Uni Oldenburg bereitgestellt worden war nicht problemlos ablief. Mit Redmine konnte jedoch
ein System gefunden werden, dass allen Anforderungen mehr als gerecht wird.
10
6 Literaturverzeichnis
Angermeier, D. G. (3. Februar 2004). ProjektMagazin. Abgerufen am 25. Mai 2011 von
http://www.projektmagazin.de//glossarterm/konfigurationsmanagement
Braun, R. (2009). Referenzmodellierung. Münster: Logos Verlag Berlin GmbH.
CMake. (29. 05 2011). Abgerufen am 29. 05 2011 von http://www.cmake.org/
Edgewall Software. (26.
http://trac.edgewall.org
05
2011).
Trac.
Abgerufen
am
26.
05
2011
von
Gronau, P. D. (2010). Enterprise Resource Management (2. Auflage Ausg.). München:
Oldenbourg Wissenschafts Verlag.
Hammon, J. (26. Janur 2010). Forrester Databyte: SCM Tool Adoption. Abgerufen am 27.
Mai 2011 von http://blogs.forrester.com/application_development/2010/01/forrester-databytedeveloper-scm-tool-adoption-and-use.html
Hasselbring, P. D. (2007). Modul Sofware Engineeing (Skript). Oldenburg.
Moin Moin. (2011). Abgerufen am 26. 05 2011 von http://mainmo.in
Retrospectiva. (26. 05 2011). Abgerufen am 26. 05 2011 von http://retrospectiva.org/
Retrospectiva. (2011). Abgerufen am 26. 05 2011 von http://retrospectiva.org/tickets/889
Versteegen, G., & Weischedel, G. (2003). Konfigurationsmanagement. Heidelberg: Springer.
11
Seminararbeit
Präsenzempnden in virtuellen
Umgebungen
Erstellt von:
Studienbereich:
Professor:
Tutor:
Jendrik Poloczek
Informatik
Prof. Dr. Wolfgang Kowalk
Dipl.-Inf. Stefan Brunhorn
Dieses Werk einschlieÿlich seiner Teile ist urheberrechtlich geschützt. Jede Verwertung auÿerhalb der engen Grenzen des Urheberrechtgesetzes ist ohne Zustimmung
des Autors unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen,
Übersetzungen, Mikroverlmungen sowie die Einspeicherung und Verarbeitung in
elektronischen Systemen.
Inhaltsverzeichnis
1 Einleitung
1
2 Grundlagen
2
2.1
Historie virtueller Umgebungen
. . . . . . . . . . . . . . . . . .
3
2.2
Anwendungsgebiete virtueller Umgebungen . . . . . . . . . . . .
4
2.3
Technische Realisierung virtueller Umgebungen
. . . . . . . . .
5
2.4
Projektziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3 Präsenzforschung
7
3.1
Wahrnehmungsprozess
. . . . . . . . . . . . . . . . . . . . . . .
8
3.2
Virtueller Körper
. . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.3
Präsenzempnden . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.4
Räumliche Präsenz
. . . . . . . . . . . . . . . . . . . . . . . . .
11
3.5
Soziale Präsenz
. . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.6
Eigenwahrnehmung . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.7
Sensomotorische Koordination . . . . . . . . . . . . . . . . . . .
15
4 Projektbezogene Untersuchung
4.1
Räumliche Präsenz
4.2
Soziale Präsenz
15
. . . . . . . . . . . . . . . . . . . . . . . . .
16
. . . . . . . . . . . . . . . . . . . . . . . . . . .
17
4.3
Eigenwahrnehmung . . . . . . . . . . . . . . . . . . . . . . . . .
17
4.4
Virtuelle Umgebung für das Präsenzempnden . . . . . . . . . .
18
5 Zusammenfassung
18
6 Ausblick
20
Literaturverzeichnis
21
I
Motivation
Die vorliegende Arbeit wurde im Rahmen der Projektgruppe Virtual Reality
im Fachbereich Informatik im Sommersemester 2010/2011 an der Carl-vonOssietzky Universität Oldenburg verfasst. Prof. Dr. Wolfgang Kowalk leitet
die Projektgruppe. Die Projektgruppe bietet den Studenten den Erwerb praxisnaher Erfahrungen bei der selbständigen Bearbeitung forschungsorientierter
Projekte.
Die Projektgruppe Virtual Reality befasst sich mit dem Entwurf eines VirtualReality-Systems mit dem es möglich ist in virtuelle Umgebungen einzutauchen. Dabei sind folgende Aspekte unter anderen als besonders bedeutsam
für das Gefühl der Präsenz in der virtuellen Umgebung eingestuft worden:
Übertragung der Körperbewegung des Benutzers, einschlieÿlich Blickrichtung,
auf einen virtuellen Körper, Interaktion mit der Umgebung, eine Kollisionserkennung zwischen dem Benutzer und Gegenständen in der Umwelt und eine
authentische Klanguntermalung.
Die Einstufung dieser Aspekte ist jedoch nur eine Annahme. Ausgehend von
der Frage, ob die genannten Elemente zu einem Gefühl von Präsenz in der virtuellen Umgebung führen, wird im Folgenden eine genauere Auseinandersetzung mit der interdisziplinären Thematik der Präsenzempndung in virtuellen
Umgebungen dargeboten. Es wird dabei ferner untersucht, welche Faktoren
für das Gefühl des Eintauchens in eine virtuelle Umgebung relevant sind
und wie sich dieses Gefühl intensivieren lässt. Mithilfe dieser Untersuchung
kann die Projektzielsetzung hinsichtlich des Präsenzempndens analysiert und
verbessert werden.
1
1 Einleitung
Die vorliegende Arbeit setzt sich mit dem Präsenzempnden in virtuellen Umgebungen auseinander. Es wurden dabei folgende Fragen motiviert: Welche
Faktoren sind für die Präsenzempndung relevant?, Wie lässt sich die Präsenzempndung intensivieren? und Wie hoch ist das Präsenzempnden des
Projekts auf Basis der Zielsetzung einzuschätzen?. Zur Beantwortung der Fragen wird ausgehend von einem Grundlagenkapitel, die erste Frage im Kapitel
Präsenzforschung (siehe Kapitel 3) beantwortet. Der zweiten und dritten
Frage ist das Kapitel Projektbezogene Untersuchung (siehe Kapitel 4) gewidmet.
Im Grundlagenkapitel werden die Historie der virtuellen Realtität (siehe Abschnitt 2.1, ab hier: VR), die Anwendungsgebiete der VR (siehe Abschnitt 2.2),
die technische Realisierung der VR (siehe Abschnitt 2.3) und das Projektziel
(siehe Abschnitt 2.4) erläutert. Nachfolgend wird der Wahrnehmungsprozess
des Menschen (siehe Abschnitt 3.1) und die Beziehung zwischen dem physischen, dem virtuellen Körper und der virtueller Umgebung untersucht (siehe
Abschnitt 3.2). Diese zwei Abschnitte bilden den Einstieg in die Präsenzforschung. Im Anschluss wird der Begri Präsenzempndung auseinandergenommen und in relevante Teilkomponenten zerlegt (siehe Abschnitt 3.3). Mithilfe der gewonnenen Erkenntnisse wird die Zielsetzung des zu entwerfenden
VR-Systems auf das Präsenzempnden hin untersucht (siehe Kapitel 4) und
eine virtuelle Umgebung skizziert, die das Präsenzempnden im Rahmen der
Projektzielsetzung intensiviert (siehe Abschnitt 4.4). Am Schluss wird die vorliegende Arbeit zusammengefasst (siehe Kapitel 5) und ein Ausblick gegeben
(siehe Kapitel 6).
2
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
2 Grundlagen
2 Grundlagen
Im folgenden Kapitel werden die Grundlagen von VR-Systemen vermittelt.
Dieses Wissen wird für die Untersuchung des Präsenzempndens benötigt. Es
wird zunächst die Historie von VR beleuchtet. Anschlieÿend werden die Anwendungsgebiete dargestellt. Danach folgt eine Einführung in die technische
Realisierung von VR-Systemen und am Schluss werden die Anforderungen und
Rahmenbedingungen des Projektziels erläutert.
2.1 Historie virtueller Umgebungen
Die Idee der VR ist seit Kindertagen der Mikrocomputer ein Thema in der Literatur. In dem bereits 1964 erschienenem Sciencection Roman Simulacron-3
von Daniel Francis Galouye wird die Geschichte eines Informatikers erzählt,
der an einem Simulationscomputer arbeitet. Der Computer simuliert eine Kopie der Stadt in der er wohnt. Ein ungewöhnlicher Todesfall in seinem Unternehmen veranlasst ihn in die virtuelle Stadt einzutauchen um den Mord
aufzudecken. Dieser Roman wurde zweimal verlmt und inspirierte Schriftsteller und Drehbuch-Autoren der folgenden Jahre.
Im Jahr 1965 wurde von Sutherland erstmals eine wissenschaftliche Veröffentlichung in Bezug auf die technologische Umsetzung von VR gemacht (vgl.
Sutherland [1965]). Der Begri Display (zu deutsch: Bildschirm) wird dabei als medialer Vermittler für die audiovisuellen Reize benutzt. Er beschreibt,
dass in Verbindung mit einem Computer die Chance ensteht nicht realisierbare
Konzepte der physikalischen Welt virtuell zu erproben.
Später, im Jahre 1968, folgte die erste Umsetzung mit einem sogenannten
stereoskopischen Head-Mounted-Display (ab hier: HMD) und einem Sensor,
der die Lage des Kopfes misst (vgl. Sutherland [1968]). Das HMD, seinerzeit als
Helm entworfen, besitzt typischerweise zwei eingebaute Bildschirme für visuelle
Reize, mit denen Stereoskopie möglich ist, und einen Kopfhörer für akustische
Reize. Dabei erlaubt die Stereoskopie dem Benutzer die gewöhnliche optische
Tiefe auch in der virtuellen Welt wahrzunehmen.
3
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
2 Grundlagen
2.2 Anwendungsgebiete virtueller
Umgebungen
In den folgenden Jahren wurde das Konzept der VR in verschiedenen Anwendungsgebieten erprobt. Die Anwendungen lassen sich in die Bereiche Bildung,
Psychologie, Konferenzen, Prototyping, Marketing und Unterhaltung einordnen. In Bezug auf die Bildung können beispielsweise Gebäude und Konstruktionen mithilfe von VR-Systemen unabhängig von dem realen Standort des
Gebäudes oder Existenz der Konstruktion studiert werden (vgl. Kahkonen u.
Whyte [2003]). Diese Möglichkeit unterstreicht zudem den Vorteil der VR im
Bereich der Produkt Prototyping (vgl. Sá u. Zachmann [1998]).
Ferner bietet sich das VR-System für virtuelle Labore an. Zweck dieser Labore
ist das Erlernen des Umgangs mit Apparaturen, die Durchführung von Experimenten und eine Erlangung von Wissen (vgl. Hoyer u. a. [2004]). Weitere
Anwendungen in denen Fachwissen vermittelt wird, sind das virtuelle Cockpit
(vgl. Bauer [2010]) und der virtuelle chirugische Eingri (vgl. Moraes u. a.).
Oensichtlich ist, dass eine Simulation zum Training von risikobehafteten Gefahrensituationen für den Menschen zum Training einen signikaten Vorteil
bietet.
Weitere Anwendungen des VR-Systems sind im Bereich der Psychologie angesiedelt. Forschungsprojekte der Psychologie untersuchen die Reaktion und
den Zustand des Probanden in bestimmten medial vermittelten Situationen.
Ein Beispiel dafür ist die Untersuchung von Paranoia in einer Population (vgl.
Freeman u. a. [2008]). Darüber hinaus werden VR-Systeme zur Therapierung
von Essstörungen, beispielsweise Magersucht, und Angststörungen, beispielsweise Phobien, verwendet (vgl. Gorini u. Riva [2008], Bush [2008]).
4
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
2 Grundlagen
2.3 Technische Realisierung virtueller
Umgebungen
Die technische Realisierung eines VR-Systems lässt sich in zwei Teilkomponenten zerlegen: Software- und Handwarekomponente. Es existieren verschiedene
Softwareimplementierungen für den Entwurf von virtuellen Umgebungen (vgl.
Backman [2005], Lennerz u. a. [1999]). Wesentliche Kernkomponenten sind dabei die grasche Anzeige, die Modellierung von Umgebungen und Avataren
inklusive Skripting, die Simulation von 3D-Klang und eine Schnittstelle zur
Ansteuerung der Hardwarekomponente.
Die Hardwarekomponente des VR-Systems dient als Benutzungsschnittstelle
zwischen Mensch und Computer. Sie besteht aus Eingabe- sowie Ausgabemöglichkeiten. Eingabemöglichkeiten sind beispielhaft die 3D-Maus oder der sogenannte Datenhandschuh (vgl. Steuer [1992]). Die 3D-Maus kann dabei als
Erweiterung der normalen Computermaus angesehen werden, die zudem die
Position im dreidimensionalen Raum registriert.
Bei dem Datenhandschuh wird die Neigung der gesamten Hand und die Neigung der Gelenke durch Neigesensoren gemessen. Dabei können verschiedene
Freiheitsgrade erreicht werden. Nach dem gleichen Prinzip arbeitet der Datenanzug. Der Messbereich schlieÿt jedoch auch Gliedmaÿen des gesamten Körpers
ein. Da eine Vielzahl an unterschiedlichen Eingabemöglichkeiten existieren sei
auf Bowman u. a. [2008] hingewiesen. In dieser Veröentlichung werden aktuelle 3D-Eingabemethoden untersucht. Im Folgenden werden die bekanntesten
Ausgabemöglichkeiten von VR-Systemen vorgestellt.
Das HMD stellt ein wesentliches Konzept für frühe VR-Systeme dar (vgl.
Sutherland [1968]). Auch heute dient das HMD als eine wichtige HardwareKomponente bei der Realisierung eines VR-Systems (vgl. And u. a.). Es können
mit dem HMD sowohl akustische als auch visuelle Reize vermittelt werden. Wie
bereits diskutiert, können HMDs stereoskopische Bilder erzeugen, mit denen
es dem Benutzer möglich ist die optische Tiefe wahrzunehmen. Ein integrierter Stereo-Kopfhörer dient zur Wahrnehmung von Geräuschen. Die StereoKopfhörer können dabei eine dreidimensionale Geräuschkulisse emulieren.
5
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
2 Grundlagen
Als Alternative zu dem HMD existieren verschiedene andere Ansätze: Das
CAVE
—
System ist ein begehbarer Würfel. Der Benutzer benötigt statt einem
HMD eine 3D-Brille. Auf die Wände des Würfels werden Bilder der virtuellen Umgebung projeziert. Der Benutzer hat somit die Möglichkeit sich frei
in dem Würfel zu bewegen. Das Konzept wird in Cruz-neira u. a. [1993] und
—
Gross u. a. [2003] erläutert. Eine kostengünstige Alternative zum dem CAVE
System ist die Single-Wall-Methode. Statt einen ganzen Raum zu simulieren
wird nur auf
eine
Wand projiziert. Dementsprechend muss der Benutzer zu
der Wand ausgerichtet sein. In Bezug auf kollaboratives Arbeiten gibt es auch
Ansätze mit denen mehrere Benutzer die VR erfahren können. Die sogenannte Holobench ist eine Werkbank-artige Konstruktion, die mithilfe einer 3DProjektionstechnik ein holographisches Bild über der Holobench erzeugt (vgl.
Büscher u. a. [2000]).
Die vorgestellten Systeme konzentrieren sich jediglich auf die audiovisuelle
Reizübermittlung. Mit dem Forschungsprojekt Lemoine u. a. [2004] soll jedoch auch ein System aufgegrien werden, das die Vermittlung von haptischem
Feedback ermöglicht.
2.4 Projektziel
Um eine Untersuchung der Zielsetzung der Projektgruppe VR in Bezug auf
die Präsenzempndung durchführen zu können, muss eine kurze Beschreibung
des Projektziels vornehmlich des technischen Aufbaus erfolgen.
Ziel des Projekts ist es, mithilfe von öentlich erhältlichen Hardwarekomponenten und auf Basis von freier Software ein VR-System zu entwerfen. Dabei
wurde das VR-System in zwei Teilsysteme aufgeteilt: die Middleware und die
Anwendung. Die Middleware soll in der Lage sein Körperbewegungen und Lage
des Kopfes in ein digitales Skelett zu transformieren und Gesten zu erkennen.
Die Anwendung verarbeitet die Eingabedaten, digitales Skelett und Gesten,
und erzeugt auf Basis einer simulierten virtuellen Umgebung die Ausgabedaten, die künstlich erzeugten Reize.
Folgende Anforderungen wurden für das VR-System formuliert: Der Benutzer
soll sich in der virtuellen Umgebung umschauen können. Ferner sollen seine
6
Körperbewegungen wahrgenommen und auf einen virtuellen Körper übertragen werden. Mithilfe des virtuellen Körpers soll der Benutzer in der Lage sein
mit der virtuellen Umgebung zu interagieren. Es wurden dabei besonders das
Präsenzempnden, die Kollionserkennung mit virtuellen Gegenständen und die
3D-Geräuschkulisse hervorgehoben.
Zur Umsetzung dieser Anforderungen wurde das Projektziel auf folgende Eingabeund Ausgabemethoden für die Reizvermittlung festgelegt: Ein stereoskopisches
HMD mit Stereo-Kopfhörer und Lagesensor zur Übertragung von audiovisuellen Reizen und Messung der Lage beziehungsweise Neigung des Kopfes. Für
die Messung von Körperbewegungen und die Erzeugung eines virtuellen Ske-
—
letts wird die Microsoft Kinect
verwendet. Mithilfe dieser Komponente ist
es möglich Tiefenwerte in einem Raum auszulesen. Durch die Anwendung des
in Shotton u. a. [2011] vorgestellen Algorithmus kann der physische Körper in
Echtzeit in eine digitales Skelett überführt werden.
Anforderungen für die virtuelle Umgebung, die Szenarie, sind jedoch noch nicht
festgelegt. Dies kann als Chance angesehen werden, da die vorgelegte Arbeit die
Faktoren des Präsenzempnden untersucht und die Erkenntnisse dieser Arbeit
in die Anforderungen an die virtuelle Umgebung einieÿen können.
3 Präsenzforschung
Die nachfolgenden zwei Kapitel bilden den Kern der Arbeit. In diesem Kapitel
wird intensiv auf die Thematik der Präsenz eingegangen. Das Präsenzempnden (im englischen: presence) beschreibt den subjektiven Zustand, das Gefühl,
sich in einer medial vermittelten virtuellen Umgebung anwesend zu fühlen.
Biocca beschreibt das Präsenzempnden mit: [Presence is] the illusion of feeling of being there whether there exists in a physical space or not (vgl. Biocca
[1997]). Slater macht deutlich, dass es sich bei der Präsenzempndung um ein
psychisches Phänomen handelt: Presence is a state of consciousness, the (psychological) sense of being in the virtual environment (vgl. Slater u. Wilbur
7
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
3 Präsenzforschung
[1997]). Das Präsenzempnden ist jedoch nicht auf virtuelle Umgebungen zu
beschränken. In Bracken u. Skalski [2010] wird verdeutlicht, dass das Präsenzempnden auch in klassischen Medien wie dem Fernsehen auftaucht. In allen
Medienformen soll laut Bracken u. Skalski [2009] gelten, dass mit gesteigertem
Präsenzempnden die Freude am Medienkonsum steigt.
Auch im relativ jungen Forschungsbereich der Game Studies werden Computerspiele auf die Präsenzempnden hin untersucht (vgl. Pietschmann [2009]).
Die Frage: Was ist Präsenzempnden? lässt sich jedoch nicht leicht beantworten und ist eine der zentralen Frage im Forschungsbereich der VR (vgl. Biocca
[1997]). Um bestehende Modelle zum Präsenzempnden vorzustellen muss zunächst der Wahrnehmungsprozess des Menschen und die Beziehung zwischen
dem physischen, dem virtuellen Körper und der virtuellen Umgebung dargelegt
werden.
3.1 Wahrnehmungsprozess
In Biocca [1997] wird argumentiert, dass alles was die Person wahrnimmt
zunächst, von den Sinnen produziert, in Form von Energie existiert. Mithilfe dieser Information erzeugt der Mensch automatisch und unterbewusst ein
mentales Modell seiner Umgebung. Dabei werden bereits erfahrene Situationen, Bilder im abstrakten Sinne, mit den aufgenommenen Reizen assoziert.
Gibt es Lücken in der Wahrnehmung, so werden diese aus alten Informationen
(Schemata) abgeleitet (vgl. Slater u. a. [2009]). Entspricht ein Schema nicht
der Realität, so muss es angepasst werden. Ein Beispiel soll die Funktionsweise des Wahrnehmungsapperates verdeutlichen: Eine Person steht auf einem
Metallboden. Sie sieht, dass groÿe Felsbrocken in Richtung Boden fallen. Im
Augenblick des Aufschlags hört sie jedoch kein Geräusch. In Slater u. a. [2009]
werden solche Situationen als Breaks in Presence bezeichnet. Die Person verliert das Gefühl in ihrer Welt anwesend, präsent zu sein. Da das mentale Modell
den Bezug zum Wahrgenommenen verliert. Je nach dem wie fest ein Muster in
der Person verankert ist lassen sich Irrtümer kompensieren. Es soll bereits an
dieser Stelle festgehalten werden, dass die Plausibilität der wahrgenommenen
Reize einer der entscheidenen Bedingungen für das Präsenzempnden ist (vgl.
Slater u. a. [2009], Biocca [1997]).
8
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
3 Präsenzforschung
3.2 Virtueller Körper
In Biocca [1997] wird mit dem Begri progressive embodiment die steigende
Tendenz immer engerer Kopplung zwischen Mensch und Benutzungsschnittstelle zum Computer bezeichnet. Eine engere Kopplung zwischen dem Menschen und der Schnittstelle impliziert eine engere Bindung zwischen physischem
und virtuellen Körper.
Der physische Körper stellt mit seinen Sinnen eine Schnittstelle zur der physischen Umgebung dar. Sekuler und Blake bezeichnen die Sinne als communication channels to reality (vgl. Sekuler u. Blake [1994]). In Gegenrichtung spricht
Biocca [1997] von Sinnen als Kanäle zum Verstand. Loomis argumentiert: [all]
Contact with the physical world is mediated (vgl. Loomis [1992]).
Da die Reizwahrnehmung unsere Welt beziehungsweise das mentale Modell
formt, lässt sich unsere Welt durch künstlich erzeugte Reize beliebig denieren. In diesem Zusammenhang spricht Biocca [1997] von der physischen Transzendenz: Der Mensch kann unabhängig von seiner physischen Verkörperung
an beliebigen Orten existieren. Laut Biocca [1997] existiert seit der Antike
der Wunsch nach physischer Transzendenz. Deutlich wird dieser Wunsch in
Sutherland [1965]:
A display connected to a digital computer gives us a chance to
gain familiarity with concepts not realizable in the physical world.
It is a looking glass into a mathematical wonderland.
Der virtuelle Körper ist dabei nicht nur ein Avatar mit dem sich der Benutzer
identiziert, wie beispielsweise in Computerspielen. Sondern in Analogie zu
unserem physischen Körper und der physischen Welt eine Schnittstelle, mit
der die virtuelle Umgebung wahrgenommen wird (vgl. Biocca [1997]). Loomis
argumentiert, dass aus Sicht des Benutzers der virtuelle Körper zu ihm gehört
und das er gleichzeitig die Trennschicht zwischen dem
Sein
und der virtuellen
Umgebung ist (vgl. Loomis [1992]).
9
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
3 Präsenzforschung
Präsenzempfinden
räumliche Präsenz
soziale Präsenz
Eigenwahrnehmung
Abbildung 3.1: Aufspaltung des Präsenzempndens
3.3 Präsenzempnden
Das Präsenzempnden wurde bisher abstrakt als ein psychologischer Zustand
beziehungsweise als ein Gefühl deniert sich an einem Ort präsent zu fühlen
(vgl. Abschnitt 3). Ferner wurde im Abschnitt 3.2 der Zusammenhang zwischen
dem Wahrnehmungsprozess und der Modellbildung dargelegt. Bereits an dieser
Stelle wurde eine wichtige Komponente für das Präsenzempnden hervorgehoben: Plausibilität. Im darauf folgendem Abschnitt 3.2 wurde auf den virtuellen
Körper als Schnittstelle zur virtuellen Umgebungen eingegangen. Mit diesen
grundlegenden Erkenntnissen werden in den folgenden Abschnitten die Modelle
von Lombard u. Ditton [1997] und Biocca [1997] vorgestellt.
Laut der Arbeit Pietschmann [2009], die verschiedene empirische und theoretische Arbeiten unter anderem Lombard u. Ditton [1997] und Biocca [1997]
zusammenfasst, lässt sich das Gesamtkonzept des Präsenzempndens in Teilbereiche aufspalten (vgl. Abbildung 3.1): räumliche Präsenz, auch physische
Präsenz genannt, soziale Präsenz und die Eigenwahrnehmung (im Orginal:
Spatial Presence, Social Presence und Self-Presence). Die räumliche Präsenz
beschreibt dabei die Illusion, sich in einem virtuellen Raum aufzuhalten. Die
soziale Präsenz umfasst die Empndung sich mit einer oder mehreren medial vermittelten Personen oder künstlichen Avataren zusammen an einem Ort
zu sein. Mit der Eigenwahrnehmung, auch als Selbstwahrnehmung bezeichnet,
wird ein Zustand beschrieben, in dem der Benutzer seinen virtuellen Körper
so wahrnimmt, als sei dieser sein reales Selbst (vgl. Pietschmann [2009]).
10
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
3 Präsenzforschung
Räumliche Präsenz
Lebendigkeit
Interaktivität
Abbildung 3.2: Aufspaltung der räumlichen Präsenz
3.4 Räumliche Präsenz
Die räumliche Präsenz wird durch technische Merkmale wie Lebendigkeit
(im Orginal: vividness) und Interaktivität deniert (vgl. Abbildung 3.2). Der
Begri Lebendigkeit beschreibt dabei die technische Möglichkeit eine sensorisch reichhaltige virtuelle Umgebung zu erzeugen (vgl. Steuer [1992]). Die
Lebendigkeit wird durch die Terme Breite und Tiefe deniert. Die Breite
der Lebendigkeit beschreibt die Anzahl simultaner Sinneskanälen, während die
Tiefe die Auösung der einzelnen Sinneskanäle beschreibt (vgl. Pietschmann
[2009]).
Beispielsweise erzeugt ein Telefon akustische Reize niedriger Auösung und ist
folglich schmal und ach im Sinne der Lebendigkeit. Eine virtuelle Umgebung
hingegen bietet hochauösende audiovisuelle Reize und möglicherweise haptisches Feedback an. Sie ist dementsprechend in Bezug auf die Lebendigkeit
breit und tief. Biocca beschreibt mit dem Begri sensory engagement ein
Maÿ, das die Quantität und Qualität von nicht-medial vermittelten Reizen der
physischen Umgebung mit medial-vermittelten Reizen in Beziehung setzt (vgl.
Biocca [1997]).
Der Begri Interaktivität bezieht sich auf die Möglichkeit eines Benutzers
die virtuelle Umgebung zu beinussen. Laut Steuer [1992] ist die Interaktivität
abhängig von Geschwindigkeit, Reichweite und Zuordnung.
Der Faktor Geschwindigkeit beschreibt die Reaktionszeit der Umgebung auf
Eingaben. Die Menge aller Einussmöglichkeiten und Handlungsalternativen
wird durch die Komponente Reichweite abgedeckt.
Die Zuordnung bezieht sich auf die Authentizität bzw. die Natürlichkeit und
Zuordnung der Eingabe (vgl. Pietschmann [2009]). Wie bereits in Abschnitt
11
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
3 Präsenzforschung
Soziale Präsenz
Kopräsenz
Psychische
Involvierung
Verhaltensaustausch
Abbildung 3.3: Aufspaltung der sozialen Präsenz
3.1 angesprochen, ist auch die Plausiblität der wahrgenommenen Umgebung
eine weitere wichtige Bedingung für das Präsenzempnden in virtuellen Umgebungen und lässt sich der räumlichen Präsenz zuordnen.
3.5 Soziale Präsenz
Ursprünglich wird der Begri Soziale Präsenz in der Kommunikationsforschung verwendet. Die soziale Präsenz beschreibt die Wahrnehmung der Verkörperung einer anderen Person oder mehrerer Personen. Im Zusammenhang
mit VR können dies auch Verkörperungen künstlicher Intelligenzen sein. Laut
Biocca [1997] ist die Wahrnehmung anderer Intelligenzen nur über deren Handlung abzuleiten. Dementsprechend sorgt eine starke Interaktion in der virtuellen Umgebung dafür, dass sich die Teilnehmer untereinander als intelligente
Wesen erkennen. Biocca deniert die soziale Präsenz (vgl. Biocca [1997]):
The amount of social presence is the degree to wich a user feels
access to the intelligence, intentions, and sensory impressions of
another
Ferner vermutet Biocca, dass sich der Turing-Test als nützliches Werkzeug zur
Überprüfung von sozialer Präsenz mit einem künstlichen Gegenüber eignet.
Biocca und Lombard gehen davon aus, dass Avatare, Verkörperungen künstlicher Intelligenzen den Umgang mit Computern revolutionieren werden. Anstatt einer graschen Oberäche sollen Computer der Zukunft digitale Repräsentationen von künstlichen Personen oder Wesen beherbergen mit denen eine
Unterhaltung, wie sie zwischen Menschen geführt wird, möglich ist (vgl. Biocca
[1997], Lombard u. Ditton [1997]).
12
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
3 Präsenzforschung
Die soziale Präsenz wird in Pietschmann [2009] aus den Teilkomponenten Kopräsenz, Psychische Involvierung und Verhaltensaustausch zusammengesetzt (vgl. Abbildung 3.3). Die Kopräsenz beschreibt die gegenseitige Wahrnehmung von Verkörperungen, aber auch: mit einer anderen Person in einer
entfernten Umgebung sozial anwesend zu sein (vgl. Pietschmann [2009]). Die
zweite Teilkomponente Psychische Involvierung umfasst die Wahrnehmung
von anderen Intelligenzen. Kann der Benutzer durch Handlung auf Intelligenz schlieÿen, so werden die Personen als sozial gleichwertig angesehen. In
Pietschmann [2009] wird in Bezug auf Computerspiele hervorgehoben, dass
die künstliche Intelligenz von Agenten meist nicht ausreicht um diese als völlig
gleichwertige soziale Wesen akzeptieren zu können. Es wird betont, dass der
Agent zumindest Hinweise auf Handlungsabsichten oder emotionale Zustände
geben sollte.
Die Komponente Verhaltensaustausch wird als nächstes beleuchtet. Der Verhaltensaustausch, wie er in den physischen Umgebung zwischen Personen möglich ist, kann dabei komplexe Kommunikationsabläufe umfassen, die beispielsweise durch Verhaltensmuster des Menschen bedingt sind. Es sind jedoch auch
kulturell abhängige Verhaltenstraditionen denkbar. Dabei werden verschiedene
Sinnenskanäle wie verbale (beispielsweise Voice-Chat) und nonverbale Kommunikation (beispielsweise Mimik und Gestik) verwendet (vgl. Pietschmann
[2009]). Es ist klar ersichtlich, dass die soziale Präsenz besonders im Anwendungsgebiet virtueller Konferenzen eine vorrangige Anforderung darstellt. Verhandlungen erfordern Menschenkenntniss und Fingerspitzengefühl im Lesen
von Emotionen und beim Umgang des Gegenüber. Im folgenden Abschnitt
wird die Eigenwahrnehmung als letzte Teilkomponente des Präsenzempndens
untersucht.
3.6 Eigenwahrnehmung
Die Eigenwahrnehmung wurde bereits im Abschnitt 3.2 angerissen. Es wurde
die Notwendigkeit des virtuellen Körpers und die Beziehung zwischen dem Benutzer, seinem physischen Körper, seinem virtuellen Körper und der virtuellen
Umwelt verdeutlicht. Im Folgenden wird die Unterteilung der Eigenwahrnehmung in Pietschmann [2009] aufgerien und auf bereits erläuterte Aspekte
13
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
3 Präsenzforschung
Eigenwahrnehmung
Physischer Körper
Virtueller Körper
Mentales Modell
Abbildung 3.4: Aufspaltung der Eigenwahrnehmung
Stellung bezogen. Die Eigenwahrnehmung wird, wie in Pietschmann [2009],
in die Teilkomponten Physischer Körper, Virtueller Körper und Mentales
Modell des Körpers zerlegt (vgl. Abbildung 3.4).
Der physische Körper ist mit den Eingabe- und Ausgabemöglichkeiten des VRSystems verbunden. Der Benutzer identiziert sich, abhängig vom Grad des
allgemeinen Präsenzempndens, mit dem virtuellen Körper. Der virtuelle Körper ist dabei, wie bereits in Abschnitt 3.2 diskutiert, analog zum natürlichen
Wahrnehmungsprozess, die Schnittstelle zu der virtuellen Umgebung.
In Slater u. Usoh [1994] wird hervorgehoben, dass es ein Schock sein kann, die
virtuelle Umgebung zwar als präsent zu empnden, jedoch die eigene Hand als
Drahtgitter-Modell zu sehen. Dies ist darin begründet, dass der Mensch seit Geburt an eine mentale Vorstellung seines Körpers hat, auch als Körperschema
bezeichnet. Entspricht der wahrgenommene Körper nicht dem Körperschema,
so ensteht ein innerer Konikt und das Körperschema wird an den wahrgenommenen Körper angepasst. Der wahrgenommene Körper kann mithilfe des
VR-Systems frei deniert werden. Psychologen machen sich das Verhalten des
Menschen, in Bezug auf Anpassung des Körperschemas, und die Möglichkeit,
den wahrgenommenen Körper frei zu denieren, zu nutze. Sie untersuchen neue
Therapiemethoden für Esstörungen, mit denen es anhand der genannten Vorteile möglich ist, ein verzerrtes Körperschema zu entzerren (vgl. Bush [2008],
2.2).
14
3.7 Sensomotorische Koordination
Das in Pietschmann [2009] vorgeschlagene Modell wird an dieser Stelle noch
um die sensomotorische Koordination aus Biocca [1997] erweitert. Die Erweiterung tangiert die Teilkomponente Geschwindigkeit der Interaktivität in der
räumlichen Präsenz (vgl. Abschnitt 3.4) und die im voherigen Abschnitt dargebotene Eigenwahrnehmung.
Die sensomotorische Koordination (vgl. Biocca [1997]), auch sensormotorische
Schleife (vgl. Slater u. a. [2009]) oder I/O-Loop (vgl. Pietschmann [2009]) bezeichnet den stetigen latenzarmen koordinierten Wechsel zwischen Aktion mit
und Reaktion von der virtuellen Umgebung. Hebt die Person ihren Arm, so
weiÿ sie, ohne visuelle Reize aufzunehmen, dass sich ihr Arm in der Umgebung anhebt. Entspricht jedoch das Körpergefühl nicht dem Gesehenen: der
Arm bewegt sich nicht, ensteht ein Konikt zwischen Körperschema und den
externen Reizeinüssen.
In Slater u. a. [2009] wird berichtet, dass das dargelegte Beispiel bei den Probanden zur Panik führte. Im Zusammenhang mit diesem Phänomen wurde der
Begri simulation sickness geprägt (vgl. Held u. Durlach [1991]). Es wird in
Biocca [1997] argumentiert, dass ein unvollständiges Abbilden von Sinnen und
Interaktionsmöglichkeiten zu diesem Zustand führt.
Im nachfolgenden Kapitel wird das Projektziel anhand der gesammelten Erkenntnisse auf die Intensität des Präsenzempndens hin untersucht. Ferner
wird eine beispielhafte virtuelle Umgebung beschrieben, die auf Grundlage der
voherigen Untersuchung begründet, und im Rahmen der technischen Möglichkeiten des Projekts, dem Benutzer ein starkes Präsenzempnden vermittelt.
4 Projektbezogene Untersuchung
Das Projektziel wurde bereits in Abschnitt 2.4 im Grundlagenkapitel dargeboten. Die folgende Untersuchung bezieht sich dabei auf die Rahmenbedingungen
15
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
4 Projektbezogene Untersuchung
und Anforderungen des Projekts. Das Präsenzempnden wurde in Abschnitt
3.3 als die Summe der drei Teilkomponenten Räumliche Präsenz, Soziale
Präsenz und Eigenwahrnehmung vorgestellt. Nachfolgend wird das Projektziel auf Grundlage der Teilkomponenten hin untersucht.
4.1 Räumliche Präsenz
Die räumliche Präsenz wird durch die beiden Faktoren Lebendigkeit und Interaktivität gebildet (vgl. Abschnitt 3.4). Durch die medial vermittelten akustischen sowie visuellen Reize werden die beiden wichtigsten Sinne, Sehen und
Hören, angesprochen. Der Vermittler ist das HMD. Die Breite der Lebendigkeit ist somit gewährleistet. Die Tiefe der Lebendigkeit ist durch die Auösung
deniert, in der die Reize von den Sinnen wahrgenommen werden.
In Bezug auf die Akustik kann mit Hilfe der Stereotechnik eine dreidimensionale Geräuschkulisse emuliert werden. Durch das Umschlieÿen der Ohrmuscheln können externe Reize der physischen Umgebung ausgeblendet werden.
Mithilfe dieser Konstruktion werden verfälschende Störungsgeräusche unterbunden. Wie bereits erwähnt, kann allein durch die Verwendung eines HMD
das Präsenzempnden signikant intensiviert werden (vgl. Biocca [1997] und
Abschnitt 2.3).
Der andere Teilaspekt der räumliche Präsenz bildet die Interaktivität (vgl.
Abschnitt 3.4). In Bezug auf die Geschwindigkeit der Interaktivität kann für
das Projektziel festgehalten werden, dass die Notwendigkeit einer latenzarmen
Verarbeitung von sensomotorischen Schleifen (vgl. Abschnitt 3.7) zur Unterbindung von simulation sickness (vgl. Abschnitt 3.7) und Intensivierung des
Präsenzgefühls (vgl. Abschnitt 3.4) von der Projektgruppe bei der Festlegung
der Ziele bereits intuitiv bedacht wurde.
Die Reichweite der Interaktivität (vgl. Abschnitt 3.4) ist, bezogen auf die
Bewegung von Gliedmaÿen des physischen beziehungsweise virtuellen Körpers,
sehr exibel. Ein Konzept für die Bewegung in virtuellen Umgebungen wurde
jedoch noch nicht ausgearbeitet und ein Fehlen dieser Funktion schränkt den
Benutzer bei der Erkundung der Umgebung signikant ein.
16
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
4 Projektbezogene Untersuchung
Die authentische Zuordnung der Interaktivität ist, im Bezug auf das Umsehen
durch die Verwendung eines Lagesensors und auf die Körperbewegung durch
—
die Verwendung der Microsoft Kinect , gewährleistet. Eine unauthentische Zuordnung würde beispielsweise die Verwendung eines Joysticks zur Erkundung
der Umgebung darstellen.
4.2 Soziale Präsenz
Die soziale Präsenz setzt sich aus den Teilkomponenten Kopräsenz, Psychische Involvierung und Verhaltensaustausch zusammen (vgl. Abschnitt 3.5).
Da das Projektziel keine Mehrbenutzerumgebung vorsieht, fehlt die soziale
Präsenz vollständig. Eine mögliche Lösungen um diesen Aspekt zu kompensieren ist die Erzeugung virtueller Lebewesen, wie beispielsweise Vögel mit
einem künstlich repräsentierbarem Verhaltensmodell, wie beispielsweise dem
Schwarmverhalten. Eine andere Lösung ist: die virtuelle Umgebung so zu entwerfen, dass es
plausibel
erscheint, dass sich dort keine Lebewesen oder andere
Personen aufhalten.
4.3 Eigenwahrnehmung
Es wird nun die Eigenwahrnehmung untersucht. Diese setzt sich aus dem Physischen Körper, dem Virtuellen Körper und dem Mentalen Modell des Körpers zusammen (vgl. Abschnitt 3.6). Die Eigenwahrnehmung des physischen
Körpers wird durch Verwendung des HMD akustisch sowie visuell ausgeblendet. Der virtuelle Körper wird nach Zielsetzung durch die Egoperspektive erfahren. Der Benutzer kann sich umsehen und seine eigenen virtuellen Gliedmaÿen erkennen. Es wurde bei der Zielsetzung jedoch nicht auf die Aufrechterhaltung des Körperschemas eingegangen. Dieser Aspekt ist besonders wichtig,
da die enstehenden Konikte zu einer Verzerrung des Körperschemas führen
können 3.6. In Slater u. Usoh [1994] wird ein Fall dargestellt, in dem ein Proband, nach Aufhenthalt in der virtuellen Umgebung, nicht mehr in der Lage
war seinen physischen Körper korrekt zu steuern.
17
4.4 Virtuelle Umgebung für das
Präsenzempnden
Im nachfolgenden Abschnitt wird eine virtuelle Umgebung beschrieben, die
auf Grundlage der festgelegten Rahmenbedingungen für das Projekt (vgl. Abschnitt 2.4) ein möglichst intensives Präsenzempnden erzeugt. Die räumliche
Präsenz des Projektziels wurde in Abschnitt 4.1 beschrieben. Das fehlende
Konzept sich frei fortzubewegen stellte dabei ein wesentliches Manko für die
räumliche Präsenz dar. Um dies zu kompensieren, bietet es sich an, den Benutzer in der physischen sowie virtuellen Welt auf einen Stuhl zu setzen. In
diesem Zustand ist die freie Fortbewegung nicht notwendig, sodass das Fehlen
erst nach Aufstehen von dem Stuhl zu wesentlichen Einbuÿen im Präsenzempnden führt.
Da das Projektziel keine Mehrbenutzerumgebung vorsieht, bietet es sich an,
wie in Abschnitt 4.2 erläutert, das Fehlen von anderen Personen dem Benutzer
plausibel
darzustellen. Vorzugsweise wird dem Benutzer nur ein kleiner
frei einsehbarer Bereich gewährt, wie beispielsweise ein kleiner Raum oder ein
Garten. Innerhalb dieser Umgebungen ist es
plausibler, dass keine anderen Per-
sonen anwesend sind, als beispielsweise in einem Kaufhaus oder einem Park.
Die Belebtheit der gesamten virtuellen Umgebung, auch das was der Benutzer nicht sieht, kann dabei durch Hintergrundgeräusche, beispielsweise durch
redende Menschen, kompensiert werden (vgl. Abschnitt 3.1). Eine dreidimensionale Positionierung der Geräusche kann auf Basis der Lage des virtuellen
Kopfes das soziale, räumliche Präsenzgefühl und ferner die Orientierung in der
virtuellen Umgebung unterstützten. Eine Simulation von Lebenwesen mit einfachem Verhaltensmuster, wie Vögel mit Schwarmverhalten, soll hier als weitere Möglichkeit zur Intensivierung und Kompensation der sozialen Präsenz
dienen.
Für den Entwurf einer virtuellen Umgebung, die die Eigenwahrnehmung intensiviert, bietet es sich zudem an, dynamischen Schattenwurf und dynamische
Reektionen des virtuellen Körpers auf Boden, Wänden und Gegenständen zu
simulieren (vgl. Slater u. a. [1995]).
18
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
5 Zusammenfassung
5 Zusammenfassung
Es wurden in dieser Arbeit die Fragen, ob die Anforderungen des Projektziels
zu einem Gefühl von Präsenz in einer virtuellen Umgebung führen, welche
Faktoren für das Präsenzempnden relevant sind und wie sich dieses Gefühl
intensivieren lässt, beantwortet. Ausgehend von der Historie der VR (vgl. Abschnitt 2.1), wurden zunächst technische Realisierungen vorgestellt (vgl. 2.3).
Anschlieÿend wurde die Zielsetzung der Projektgruppe VR dargeboten (vgl.
Abschnitt 2.4).
Als Einstieg in die Präsenzforschung wurden zu Beginn verschiedene Ansichten beleuchtet und es wurde auf den Wahrnehmungsprozess des Menschen eingangen (vgl. Abschnitt 3.3, Abschnitt 3.1). Nachfolgend wurde die Beziehung
zwischen dem physischen Körper, dem virtuellen Körper und der virtuellen
Umgebung dargestellt (vgl. Abschnitt 3.2).
Auf Basis des in Pietschmann [2009] zusammenfassenden Modells von Präsenzempnden wurden die relevanten Faktoren des Präsenzempndens aufgezeigt
(vgl. Abschnitt 3.3). Anhand dieser Erläuterung wurde die Frage, ob die Anforderungen des Projektziels zu einem Gefühl von Präsenz führen, im Kapitel 4
beantwortet. Am Schluss wurde sich der Frage, wie sich das Präsenzempnden
intensivieren lässt, zugewendet. Für die Beantwortung der Frage wurde eine
virtuelle Umgebung skizziert, die im Rahmen des Projektziels nicht mögliche
Aspekte kompensiert und damit das Präsenzempnden intensiviert.
19
6 Ausblick
Wie bereits 1997 in Biocca [1997] argumentiert gibt es verschiedene Gründe
sich besonders in Zukunft mit der Thematik des Präsenzempndens in virtuellen Umgebungen zu befassen: Es lassen sich verschiedene Anwendungsbereiche
für die VR angeben (vgl. Abschnitt 2.2) und die Tendenz zur immer engeren Kopplung zwischen Mensch und der Benutzungsschnittstelle zum Computer (progressive embodiment) impliziert, dass auch in Zukunft neue Anwendungsgebiete erschlossen werden, die auf Präsenzempnden hin untersucht
werden können. In Biocca [1997] wird beschrieben, dass die VR in Zukunft
als Alltagswerkzeug zur Lösung von Problemen und Aufgaben genutzt wird.
Ferner soll die VR die Aufgabe eines physisch transzendenten Ortes übernehmen, an dem sich Benutzer verschiedener physischer Orte treen können. Diese
Arbeit schlieÿt mit einer oenen Frage, rezitiert aus Biocca [1997], ab:
Es sei davon auszugehen, dass die Kopplung zwischen Mensch und der Schnittstelle zum Computer soweit verwoben ist, das progressive embodiment soweit
fortgeschritten, dass die Wahrnehmung vollständig virtuell ist. Der Mensch sich
der Maschine annähert, und die Maschine dem Menschen. So ist die physische
Transzendenz, unabhängig von einem physischen Ort an verschiedenen virtuellen Orten zu existieren, erreicht, da unsere wahrgenommene Umgebung das
Produkt unserer Sinne ist (vgl. Sekuler u. Blake [1994]). Es stellt sich jedoch
dann in Analogie zum Skeptizismus in der Philosophie die Frage: An welchem
Ort existiert der Mensch?.
20
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
Literaturverzeichnis
Literaturverzeichnis
[And u. a. ] And, Jannick R. ; Roll, Jannick ; Cakmakci, Ozan:
Present, and Future of Head Mounted Display Designs
The Past,
2.3
[Backman 2005] Backman, Anders: Colosseum3D Authoring Framework for
Virtual Environments. In:
In Proceedings of EUROGRAPHICS Workshop
IPT, EGVE Workshop, 2005, S. 225226
2.3
Einsatzmöglichkeiten heutiger Virtual-RealityTechnologie im zivilen Pilotentraining am Beispiel zweier Szenarien im
Rahmen einer Studie. http://tuprints.ulb.tu-darmstadt.de/2043/.
[Bauer 2010] Bauer, Marcus:
Version: February 2010 2.2
[Biocca 1997] Biocca, Frank: The Cyborg's Dilemma: Progressive Embodiment in Virtual Environments [1]. In:
Journal of Computer-Mediated Com-
munication 3 (1997), Nr. 2, 0. http://dx.doi.org/10.1111/j.1083-6101.
1997.tb00070.x. DOI 10.1111/j.10836101.1997.tb00070.x 3, 3.1, 3.2, 3.3,
3.3, 3.4, 3.5, 3.7, 4.1, 6
[Bowman u. a. 2008] Bowman, Doug A. ; Coquillart, Sabine ; Froehlich,
Bernd ; Hirose, Michitaka ; Kitamura, Yoshifumi ; Kiyokawa, Kiyoshi
; Stuerzlinger, Wolfgang: 3D User Interfaces: New Directions and Perspectives.
20-36.
In:
IEEE Comput. Graph. Appl.
28 (2008), November, Nr. 6,
http://dx.doi.org/10.1109/MCG.2008.109.
DOI 10.1109/M-
CG.2008.109. ISSN 02721716 2.3
[Bracken u. Skalski 2009] Bracken, Cheryl C. ; Skalski, Paul: Telepresence
and video games: The impact of image quality. In:
PsychNology
7 (2009),
Nr. 1, S. 101112 3
Immersed in media : telepresence in everyday life / edited by Cheryl Campanella Bracken and Paul D. Skalski. Routledge, New York :, 2010. xviii,
[Bracken u. Skalski 2010] Bracken, Cheryl C. ; Skalski, Paul D.:
21
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
Literaturverzeichnis
254 p. : S. ISBN 9780415993395 0415993393 9780415993401 0415993407
9780203892336 020389233 3
[Büscher u. a. 2000] Büscher, Monika ; Christensen, Michael ; Grønbæk,
Kaj ; Krogh, Peter ; Mogensen, Preben ; Shapiro, Dan ; Ørbæk, Peter:
Collaborative Augmented Reality Environments: Integrating VR, Working
Materials, and Distributed Work Spaces. In:
In Proc. Collaborative Virtual
Environments 2000, ACM, ACM Press, 2000, S. 4756
[Bush 2008] Bush, Jimmy:
a treatment alternative.
3, 1032-1040.
2.3
Viability of virtual reality exposure therapy as
In:
Comput. Hum. Behav.
24 (2008), May, Nr.
http://dx.doi.org/10.1016/j.chb.2007.03.006.
DOI
10.1016/j.chb.2007.03.006. ISSN 07475632 2.2, 3.6
[Cruz-neira u. a. 1993] Cruz-neira, Carolina ; Sandin, Daniel J. ; Defanti,
Thomas A.:
Surround-screen projection-based virtual reality: The design
and implementation of the CAVE, 1993, S. 135142 2.3
[Freeman u. a. 2008] Freeman, Daniel ; Pugh, Katherine ; Antley, Angus ;
Slater, Mel ; Bebbington, Paul ; Gittins, Matthew ; Dunn, Graham ;
Kuipers, Elizabeth ; Fowler, David ; Garety, Philippa: Virtual reality
study of paranoid thinking in the general population. In:
of Psychiatry
192 (2008), apr, Nr. 4, 258-263.
1192/bjp.bp.107.044677.
The British Journal
http://dx.doi.org/10.
DOI 10.1192/bjp.bp.107.044677 2.2
[Gorini u. Riva 2008] Gorini, Alessandra ; Riva, Giuseppe: Virtual reality in
anxiety disorders: the past and the future. In:
peutics
8 (2008), Nr. 2, 215-233.
8.2.215.
Expert Review of Neurothera-
http://dx.doi.org/10.1586/14737175.
DOI 10.1586/14737175.8.2.215 2.2
[Gross u. a. 2003] Gross, Markus ; Würmlin, Stephan ; Naef, Martin ; Lam-
boray, Edouard ; Spagno, Christian ; Kunz, Andreas ; Koller-meier,
Esther ; Svoboda, Tomas ; Gool, Luc V. ; Lang, Silke ; Strehlke, Kai
; Moere, Andrew V. ; Oliver ; Zürich, Eth ; Staadt, Oliver: blue-c:
A Spatially Immersive Display and 3D Video Portal for Telepresence. In:
ACM Transactions on Graphics, 2003, S. 819827
2.3
[Held u. Durlach 1991] Held, Richard ; Durlach, Nathaniel: Telepresence,
time delay and adaptation. In:
Pictorial Communication in Virtual and Real
Environments, chapter 14, Taylor and Francis, 1991, S. 232246
3.7
22
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
Literaturverzeichnis
[Hoyer u. a. 2004] Hoyer, H. ; Jochheim, A. ; Röhrig, C. ; Bischoff,
A.:
A Multiuser Virtual-Reality Environment for a Tele-Operated Labo-
ratory.
126.
In:
IEEE Transactions on Education
47 (2004), Nr. 1, S. 121
http://dx.doi.org/http://dx.doi.org/10.1109/TE.2003.822263.
DOI http://dx.doi.org/10.1109/TE.2003.822263 2.2
[Kahkonen u. Whyte 2003] Kahkonen, Kalle ; Whyte, Jennifer:
Industrial
Applications of Virtual Reality in Architecture and Construction.
2003 2.2
[Lemoine u. a. 2004] Lemoine, Patrick ; Gutierrez, Mario ; Vexo, Frederic
; Thalmann, Daniel: Mediators: Virtual Interfaces with Haptic Feedback.
In:
In Proceedings of EuroHaptics 2004, 5th-7th, 2004, S. 6873
2.3
[Lennerz u. a. 1999] Lennerz, C. ; Schömer, E. ; Warken, T.: A Framework for Collision Detection and Response. In:
Symposium, ESS'99, 1999, S. 309314
in 11th European Simulation
2.3
[Lombard u. Ditton 1997] Lombard, M. ; Ditton, T. B.: At the heart of
it all : The concept of presence. In:
munication
13 (1997), Nr. 3.
lombard.html
Journal of Computer- Mediated Com-
http://jcmc.indiana.edu/vol3/issue2/
3.3, 3.3, 3.5
[Loomis 1992] Loomis, Jack M.: Distal Attribution and Presence. In:
Presence
1 (1992), Nr. 1, S. 113119 3.2
[Moraes u. a. ] Moraes, Ronei Marcos D. ; Machado, Liliane Dos S. ; Souza,
Online Assessment of Training in Virtual Reality Simulators
Based on General Bayesian Networks 2.2
Ro Carlos D.:
[Pietschmann 2009] Pietschmann, Daniel:
Das Erleben virtueller Welten.
Verlag Werner Hülsbusch, 2009 (Game Studies) 3, 3.3, 3.4, 3.4, 3.5, 3.6, 3.7,
5
[Sá u. Zachmann 1998] Sá, Antonino Gomes d. ; Zachmann, Gabriel: Integrating Virtual Reality for Virtual Prototyping. In:
Design Engineering Technical Conferences.
Proc. of the 1998 ASME
Atlanta, Georgia, sep 1998. paper no. DETC98/CIE-5536 2.2
[Sekuler u. Blake 1994] Sekuler, R. ; Blake, R.:
Perception.
McGraw-Hill,
1994 3.2, 6
[Shotton u. a. 2011] Shotton, Jamie ; Fitzgibbon, Andrew ; Cook, Mat
; Sharp, Toby ; Finocchio, Mark ; Moore, Richard ; Kipman, Alex ;
23
Seminararbeit
Präsenzempnden in virtuellen Umgebungen
Literaturverzeichnis
Blake, Andrew: Real-Time Human Pose Recognition in Parts from Single
Depth Images, 2011 2.4
The inuence of dynamic shadows on presence in immersive virtual environments.
[Slater u. a. 1995]
In: Slater, M. ; Usoh, M. ; Chrysanthou, Y.:
Bd. 95. Springer-Verlag, 1995, 8-21 4.4
[Slater u. a. 2009] Slater, Mel ; Lotto, Beau ; Arnold, Maria M. ;
Sanchez-Vives, Maria V.: How we experience immersive virtual environments : the concept of presence and its measurement. In:
cología
Anuario de Psi-
http://www.raco.cat/index.php/
AnuarioPsicologia/article/view/143105 3.1, 3.7
40 (2009), Nr. 2773, 193-210.
[Slater u. Usoh 1994] Slater, Mel ; Usoh, Martin:
Self
Body Centred Inter-
http:
//scholar.google.com/scholar?hl=en\&btnG=Search\&q=intitle:
Body+Centred+Interaction+in+Immersive+Virtual+Environments#0
action in Immersive Virtual Environments.
In:
(1994), 1-22.
3.6, 4.3
[Slater u. Wilbur 1997] Slater, Mel ; Wilbur, Sylvia: A Framework for Immersive Virtual Environments (FIVE): Speculations on the Role of Presence
in Virtual Environments. In:
PresencePAGES
(1997) 3
[Steuer 1992] Steuer, Jonathan: Dening Virtual Reality: Dimensions Determining Telepresence. In:
JOURNAL OF COMMUNICATION
42 (1992), S.
7393 2.3, 3.4, 3.4
Proceedings of the Congress of the Internation Federation of Information Processing (IFIP) Bd. volume 2, 1965, 506-508 2.1, 3.2
[Sutherland 1965] Sutherland, Ivan E.: The Ultimate Display. In:
[Sutherland 1968] Sutherland, Ivan E.: A head-mounted three dimensional
Proceedings of the December 9-11, 1968, fall joint computer
conference, part I. New York, NY, USA : ACM, 1968 (AFIPS '68 (Fall, part
display.
In:
I)), 757-764 2.1, 2.3
24
Die Kinect
Robert Schadek
Carl von Ossietzky Universität Oldenburg
[email protected]
4. Juli 2011
Inhaltsverzeichnis
1 Einleitung
2
2 Infrarot Kamera
2.1 Structured Light . . . . .
2.1.1 Emitter Techniken
2.1.2 Emittierte Muster .
2.2 Kinect Tiefenbild . . . . .
2
2
3
3
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 RGB Kamera
4
4 Microphone
5
5 USB Anbindung
6
6 Motion Capture und Skelett Tracking
6.1 Einleitung . . . . . . . . . . . . . . . .
6.2 Techniken Motion Capture . . . . . . .
6.2.1 Passive optical system . . . . .
6.2.2 Active marker optical systems .
6.2.3 Inertial motion capture systems
6.2.4 Mechanical motion systems . .
6.3 Skelett Rekonstruktion . . . . . . . . .
6.4 Microsoft Bodypart Detection . . . . .
7 Fazit und Ausblick
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
. 6
. 6
. 7
. 7
. 8
. 8
. 8
. 10
11
1
1
Einleitung
Die Vorstellung der Kinect stößt auf großes Interesse. Von vielen als Innovation angesehen, werden doch Techniken eingesetzt, die teilweise bereits
Jahrzehnte existieren. In dieser Arbeit wird zu Beginn auf die in der Kinect
verbaute Hardware eingegangen und deren Funktionsweise erklärt. Darauf
aufbauend werden zuerst generelle Motion Capture Verfahren erklärt, sowie
die Skelett rekonstruktion aus einem Tiefenbild. Abschließend wird ein von
Microsoft entwickeltes Skelett Rekonstruktionsverfahren präsentiert, welches
zusammen mit der Kinect eingesetzt wird.
2
Infrarot Kamera
Die Kinect erzeugt ein Tiefenbild mit Hilfe einer Technik names Light Coding.
[1] Diese Technik ist im weitesten Sinne eine Technik aus der Klasse der
Structured Light sensors.
2.1
Structured Light
Unter Structured Light versteht man eine Technik, die mit Hilfe mindestens
einer Kamera, sowie mindestens einer Lichtquelle, ein Tiefenbild erstellt. Der
Name leitet sich von der Technik selbst ab. Eine Muster wird von einem
Punkt auf die zu scannende Oberfläche projiziert. Dieses Muster wird von
einem anderen Punkt durch eine Kamera aufgezeichnet. Durch diese Form der
Oberfläche und dem anderem Blickwinkel auf das Muster wird ein verzehrtes
Abbild des Musters aufgezeichnet. Aus dieser Aufzeichnung lässt sich die
Struktur der Oberfläche errechnen. [14] [3] Zur grafischen Erleuterung siehe
Abbildung 1.
Abbildung 1: Structured Light Aufbau
Auf den mittleren Bild ist das projektierte Muster zu erkennen.
2
2.1.1
Emitter Techniken
Structured Light Techniken lassen sich ein drei Kategorien unterteilen.
InfraRed Structured Light (IRSL) Wie der Name andeutet, handelt es
sich bei der Lichtquelle um intrarotes Licht.
Imperceptible Structured Light (ISL) Bei dieser Technik wird das Muster mit Licht aus dem sichtbaren Spektrum erzeugt. Um anderen Aufnahmemedien zu beeinflussen wird das Muster mit einer sehr hohen
Frequenz projiziert. Mit der Frequenz ist in diesem Fall gemeint wie
lange das Muster proziert wird.
Filtered Structured Light (FSL) Hierbei handelt es sich um eine Lichtquelle, dessen Licht durch einen Filter geleitet wird, der nur den infraroten Anteil des Licht passieren lässt.
[3]
2.1.2
Emittierte Muster
Ein weiterer wichtiger Aspekt bei Structured Light ist das projizierte Muster.
Es gibt verschiedene Arten von brauchbaren Mustern. Als Beispiel zu nennen sind parallele, horizontal sowie auch vertikal Linien. Häufig werden auch
komplexere Muster, wie zum Beispiel grids oder Punktwolken, projiziert. Einige Techniken benutzten variable Muster-Generatoren. Darunter versteht
man, dass Projizieren das Muster mehrfach auf verschiedene Orte des zu
scannenden Objektes. Dieser Ansatz birgt sowohl Vorteile als auch Nachteile. In Abbildung 2 sind einige Arten von Mustern dargestellt. Angenommen
es wird als Muster eine vertikalverlaufende Linie projiziert. Ein Vorteil wäre
es, dass eine Linie in einem verrauschten Bild einfacher zu detektieren ist, als
mehrere Linien dicht nebeneinander. Der große Nachteil dieser Technik ist,
dass das Neuausrichtung der Lichtquelle viel Zeit in Anspruch nimmt. Der
Grund dafür ist, dass der Emitter in der Regel mechanisch verstellt werden
muss. Im Zuge besserer Kamerasysteme, mit besserem Rauschverhalten, wird
diese Technik heutzutage weniger häufig eingesetzt. Grids, wie in rechten unteren Bild, ermöglichen es horizontale sowie vertikale Tiefenunterschiede zu
erkennen. Allerdings muss ein solches Grid feinmaschig genug sein um alle
Tiefenunterschiede zu erkennen. Wird ein sehr feines Grid projiziert kann es
zu Schwierigkeiten kommen, die einzelnen Linien zu erkennen.
3
Abbildung 2: Projizierte Muster
2.2
Kinect Tiefenbild
Die Kinect for XBox 360, oder kurz Kinect, verwendet kontinuilich projiziertes InfraRed Structured Light. Dieses projizierte Bild wird unter Zuhilfenahme eines Infrarot-Sensors aufgezeichnet. Das projizierte Infrarotbild ist
eine pseudozufällige Punktwolke. Nachdem das, durch die zu betrachtende
Oberfläche verzehrte, Bild aufgenommen wurde, wird die mit hilfe der StereoTriangulation das Tiefenprofil gewonnen. Der Trick hierbei ist, dass für die
stereo Triangulation zwei Bilder von Nöten sind, aber nur Eines aufgezeichnet
wird. Das zweite Bild liegt im Speicher der Kinect vor, da das pseudozufällig
Muster dort abgespeichert ist. [5] Das aufgezeichnete Graustufenbild hat eine Auflösung von 632x480. Die Auflösung pro Pixel beträgt 11Bit. [8] Das
Sichtfeld des Tiefenensensors beträgt 57◦ Horizontal sowie 43◦ vertical. [6]
Somit beträgt die Tiefenauflösungs, bei einer Distanz von 2m 1cm. [2] Es ist
wichtig zu erwähnen, dass Objekte nicht freigestellt werden.
3
RGB Kamera
Bei der Kamera handelt es sich um eine übliche CMOS Kamera. Sie hat eine
Auflösung von 640x480 Pixel bei einer Farbtiefe von 32Bit. Die Frabinfor-
4
mationen werden als Bayer-Pattern übertrage.1 [6] [8] Aufgrund des kleinen
physichen Abstands der RBG Kamera sowie des IR-Sensors ist es möglich,
die Farbwerte direkt auf die Tiefenwerte abzubilden. Das Ergebnis dieser
Überlagerung ist in Abbildung 3 zu sehen. Das Bild zeigt, wie das Tiefenbild
Abbildung 3: Farbiges Tiefenbild
mit den Farbwerten der RGB Kamera dargestellt wird. Es ist klar zu erkennen, dass es keine Informationen für die Rückseite der gezeigten Person gibt.
Dies ergibt sich daraus, dass die virtuelle Kamera, die die Szene aufzeichnet,
nicht dieselbe Position hat, wie die Kamera, die das Tiefenbild sowie das
RGB Bild aufzeichnet.
4
Microphone
Die Kinect besitzt vier Mikrophone, die es ermöglichen, Stimmerkennung für
eine Person durchzuführen. Aufgrund dieser vier Mikrophone ist es möglich,
die Position der Geräuschquelle zu bestimmen, sowie noise cancellation durchzuführen. [7] [13] Genauere Informationen über die angewandten Techniken
sind nicht verfügbar.
1
Bayer-Pattern ist eine Farbkodierung die speziellen Wert auf den Grünanteil in einem
Bild legt, da das menschliche Auge auf Grün-Werte empfindlicher wahrnimmt als z.B.
Rot-Werte.
5
5
USB Anbindung
Die Kinect wird über USB2 angesprochen. Die Fähigkeit von USB2 mit einer
Verbindung mehrere Divices anzusprechen, wird genutzt, um die einzelnen
Komponenten der Kinect unabhängig zu nutzten. So gibt es vier ansprechbare
Divices. [9]
• Stellmotor
• RBG-Kamera
• Depth-Kamera
• Mikrophone
Um die Kinect mit ausreichend Strom zu versorgen, besitzt das USB-Kabel
einen weiteren Anschluss, der an ein Netzteil angeschlossen werden kann.
6
6.1
Motion Capture und Skelett Tracking
Einleitung
Unter Skelett Erkennung bzw. Motion Capture versteht man Verfahren, bei
denen die Bewegungen einer Person digitalisiert werden. Das Ergebnis dieser Digitalisierung kann verschiedene aussehen: Es gibt Verfahren, bei denen
die gesamte Körperoberfläche aufgezeichnet wird, einschließlich aller Texturinformationen. Andere Verfahren hingegen erzeugen eine schemenhafte
Repräsentation der Person. Wieder Andere erzeugen ein sogenanntes Skelet.
Dieses Skelet enthält Information über die Position der einzelnen Körperteile.
Weitere Abstufungen zwischen den Verfahren sind ebenfalls denkbar.
6.2
Techniken Motion Capture
Motion Capture Techniken lassen sich grob in zwei Kategorien einordnen:
Die eine Kategorie sind die aktiven Verfahren. Hierbei befinden sich auf dem
zu verfolgenden Objekt Systeme, die aktiv ihre Position übermitteln bzw.
ermitteln. Der andere Kategorie gehören Systeme an, deren Position passiv ermittelt werden. Passive Systeme benötigen weitere Hardware um ihre
Position zu ermitteln.
6
Abbildung 4: Inertial motion capture system
6.2.1
Passive optical system
Das Passive optical system gehört zu der Kategorie der passiven Verfahren.
Beim Passive optical system motion capturing werden am aufzunehmenden
Objekt lichtreflektierende Systeme angebracht. Diese werden durch eine stationäre Lichtquelle angestrahlt. Das Licht befindet sich meist im InfrarotSpektrum und wird von mehreren Kameras aufgezeichnet. Aus der Menge
von einzelnen Bilder lässt sich die genaue Position jeder Markierung im Raum
rekonstruieren [10].
6.2.2
Active marker optical systems
Dieses Technik gehört in die Kategorie der aktiven Verfahren. Ähnlich wie
beim Passive optical system werden Markierungen auf dem zu verfolgenden
Objekt angebracht. Allerdings emittieren die Markierungen Licht. Je nach
Ausführung des Systems, kann entweder Licht in unterschiedlichen Spektren
oder unterschiedlichen Intervallen emittiert werden, um die einzelnen Markierungen zu unterscheiden.
7
Abbildung 5: Mechanical motion capture system
6.2.3
Inertial motion capture systems
Bei initialen Systemen werden am zu verfolgenden Objekt mehrere Beschleunigungssensoren befestigt. Jeder dieser Sensoren zeichnet Beschleunigungen
in allen drei Freiheitsgraden auf. Somit gehört diese Systeme zu den aktiven Motion Capture Systeme. Die aufgezeichneten Informationen werden je
nach System entweder von jedem Sensor einzeln verschickt oder zusammen
übertragen. Beide Ansätze haben Vor- und Nachteile. Wenn alle Sensoren
einzeln senden, müssen alle Signale genau synchronisiert werden. Wird nur
ein Signal gesendet, müssen die einzelnen Sensoren vernetzt werden. Diese
Vernetzung kann die Flexibilität des Trägers einschränken. Abbildung 4 zeigt
ein solches System.
6.2.4
Mechanical motion systems
Dieses Verfahren zählt zu den Verfahren der aktiven Kategorie. Mechanical
motion systems funktionieren, indem sie mechanische Gelenke am zu verfolgenden Objekt anbringen. Diese Systeme bieten eine hohe Genauigkeit, allerdings ist die Benutzung zuweilen nicht ergonomisch [12]. Ein solches System
ist in Abbildung 5 zu sehen.
6.3
Skelett Rekonstruktion
Ein grundsätzlich anderes Verfahren wird bei der Skelett Rekonstruktion verwendet. Hierbei wird aus einem Bild bzw. einem Tiefenbild das Skelett eines
Akteurs rekonstruiert. Der Vorteil hierbei ist, dass der Akteur keine speziellen Anzüge bzw. Markierungen am Körper tragen muss. Wie bereits im
Kapitel 2.2 beschrieben, können Objekte nicht freigestellt werden. Personen,
8
für die Skelette erstellt werden sollen, müssen durch Filterverfahren freigestellt werden.
Verfahren für diesen Schritt sind unter dem Namen Edge Detection bekannt.
Generell arbeiten diese Verfahren, indem sie starke Helligkeitsunterschiede
in einem Bild als Kante interpretieren. Obwohl, wie in 2.2 beschrieben, das
Tiefenbild ein Graustufenbild ist, lassen sich diese Verfahren anwenden, um
Kanten freizustellen.
Der nächste Schritt ist es, das freigestellt Objekt mit Mittellinien zu versehen. Diese teilen die Oberfläche so ein, dass der Abstand zu den Rändern
für jeden Punkt der Linie gleich ist. Zwei Verfahren werden für diese Aufgabe hauptsächlich benutzt: Zum einen Distance Transformation zum anderen
Voronoi diagrams.
Distance Transformation erzeugen die Mittellinien, indem zuerst alle Pixel des Bildes in feature und non-feature eingeteilt werden. Feature bedeutet soviel wie, Teil des Objektes. Danach wird eine Entfernungskarte
erzeugt, die für jeden Pixel angibt, wie weit der nächste Feature Pixel
entfernt ist. In der daraus resultierenden Karte werden alle Übergange
von feature zu non-feature Pixel als Kante markiert. Die Mittellinie
dieser Kanten ist dann die Mittellinie des Objektes. Abbildung 6a sowie 6b zeigen jeweils die Aufteilung in feature und nicht non-feature
Blöcke, sowie die Distanzen zu den feature Blöcken.
Voronoi diagrams erzeugen aus einer Eingabemenge von Punkten Zellen,
die genau einen Punkt als Zentrum haben. Aus der Position der Zellen zueinander entstehen die Grenzlinien zwischen den Zellen. Plaziert
man nun Punkte auf den Kanten zwischen freigestellten und nicht freigestellten Flächen, ist eine der Linien des Diagramm die Mittellinie
des freigestellten Objekts. Abbildung 7 zeigt zwei Mittellinien für eine
Echse sowie ein Nashorn.
Nachfolgend müssen die extrahierten Linien begradigt werden. Hierbei
ist darauf zu achten, dass keine Winkel, die durch Gelenke entstanden sind,
entfernt werden. Dieses Skelett lässt sich dann mit einem Referenz-Skelett
vergleichen, um die eigentliche Position der Knochen zu bestimmen. Dieses
Vergleichen ist beispielhaft durch Bayessches Netz möglich. [11] [4] Zusätzlich
besteht die Möglichkeit, die Bewegung des Skelett über die Zeit zu betrachten und in Kombination mit dem aktuell berechneten Skelett eine genauere
Annäherung an die wahre Position zu erhalten.
9
(a) feature, non-feature
(b) Distanz
Abbildung 6: Distance Transformation
6.4
Microsoft Bodypart Detection
Zeitgleich mit der Veröffentlichung der Kinect präsentierte Microsoft eine
Software, die Skelette mit bis zu 200 Frames pro Sekunde erkennt. Dieses
Verfahren arbeitet auf Tiefenbildern. In Kombination mit einer Menge an
Trainingsdaten ermöglicht es das schnelle Erkennen von Körperteilen, aus
denen sich ein Skelett erzeugen lässt. Die wichtigeste Komponenten des Systems sind die Trainingsdaten. Diese wurden erzeugt, indem eine vorher bestehende Menge von Motion Capture Aufnahmen auf zufällig erzeugte 3DKörpermodelle verschiedenster Form übertragen wurden. Diese Modelle wurde daraufhin mit hilfe bestehenden Grafikpiplines in Tiefenbilder umgewandelt. In Abbildung 8 und Abbildung 9 sind zum Vergleich Posen entstanden
aus Motion Capture Aufnahmen sowie zufällig erzeugt zu sehen. Die farbigen
Körper repräsentieren die erkannten Körperteile. Da es sich um 3D-Modelle
handelt, können beliebige Blickwinkel analysiert werden. Die somit prinzipiell
beliebig großen Menge an Bilder wurde dazu genutzt, ein lernendes System
zu trainieren, um Körperteile pixelweise zu identifizieren. Ein pixelweises
Verfahren eignet sich gut, da es effektiv auf Grafikkarten ablaufen kann.
Der Grund dafür ist, dass Grafikkarten über massive parallele Architekturen
verfügen. Die Genauigkeit dieses Verfahrens hängt von verschiedenen Parameter ab. Ein wichtiger Faktor ist beispielweise die Tiefe des Suchbaumes,
beim Plazieren der Pixel. Ebenso ausschlaggebend ist die Anzahl der Posen,
die zum Vergleich stehen. Je nach Wahl der Parameter liegt der durchschnittliche Fehler pro Pixel zwischen 30% und 1.2%.
10
Abbildung 7: Voronoi Diagram
7
Fazit und Ausblick
Der Structured Light Ansatz in Verbindung mit leistungsstarken Softwaresystemen, wie z.B. das Bodypart Detection Verfahren von Microsoft, ermöglichen
es einfach und kostengünstig die Bewegungen von Benutzern in Echtzeit auszuwerten. Die Kombination mehrerer Kinects sowie die Einführung höher
auflösender Structured Light Verfahren dürft in Zukunft auch intessante Alternative im professionellen Motion Capturing sein. Hierbei muss allerdings
erhöhter Aufwand für die Synchronization der Kinects betrieben werden. Die
Techniken der Kinect mögen nicht innovativ sein - ihre Kombination und An-
Abbildung 8: Motion Capture Daten
11
Abbildung 9: Zufällig erzeugte Posen
wendung hingegen schon.
Literatur
[1] PrimeSense, PrimeSense FAQ, http://www.primesense.com/?p=535 ,
2010.
[2] PrimeSense, PrimeSense FAQ, http://www.primesense.com/?p=514,
2010.
[3] David Fofi, Tadeusz Sliwa, Yvon Voisin, A comparative survey on invisible
structured light, Fofi EI2004.pdf, 2004.
[4] Yuan-Kai Wang, Kuang-You Cheng, Two-Stage Bayesian Network Method for 3D Human Pose Estimation from Monocular Image Sequences,
761460.pdf, 2009.
[5] Sergey Ten, How Kinect depth sensor works – stereo triangulation?,
http://mirror2image.wordpress.com/2010/11/30/
how-kinect-works-stereo-triangulation, 2010.
[6] play.com, Kinect Including Kinect: Adventures!, http://www.play.
com/Games/Xbox360/4-/10296372/Project-Natal/Product.html#
jump-tech, 2010.
[7] Microsoft Store, Kinect for XBox 360, http://store.microsoft.com/
microsoft/Kinect-Sensor-for-Xbox-360/product/C737B081,
Juli
2010.
[8] OpenKinect, What is the frame size/bitrate of the rgb/depth/IR
stream contained in the isochronous usb tranfers etc.?, http:
//openkinect.org/wiki/FAQ#What_is_the_frame_size.2Fbitrate_
12
of_the_rgb.2Fdepth.2FIR_stream_contained_in_the_isochronous_
usb_tranfers_etc..3F, 2011.
[9] OpenKinect,
Kinect
Protokoll,
Protocol_Documentation, 2011.
http://openkinect.org/wiki/
[10] Xsens.com,
Human
MoCap,
http://www.xsens.com/en/
company-pages/company/human-mocap/, 2011.
[11] Institute of Informatics Szeged Skeletonization , http://www.inf.
u-szeged.hu/~palagyi/skel/skel.html, 2011.
[12] metamotion.com, Gypsy 7, http://www.metamotion.com/gypsy/
gypsy-motion-capture-system.htm, 2011.
[13] Sennheiser, Hör-/Sprechgarnituren für die Luftfahrt mit aktiver
Lärmkompensation NoiseGardTM – Einführung Noisegard dt.pdf 2000.
[14] P.M. Will K.S. Pennington, GRID CODING: A PREPROCESSING TECHNIQUE FOR ROBOT AND MACHINE VISION,
10.1.1.96.2088.pdf, Pedings of the IEEE, 1972.
13