Thesis - AIDA - Universität des Saarlandes

Transcription

Thesis - AIDA - Universität des Saarlandes
Dynamische Positionierung
projizierter Displays im
instrumentierten Raum
Diplomarbeit
am Lehrstuhl für Künstliche Intelligenz
Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
Fakultät für Informatik
Universität des Saarlandes
von
Carsten Greiveldinger
30. Juni 2006
Eidesstattliche Erklärung
1
Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig
verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe.
Carsten Greiveldinger
Saarbrücken, den 30. Juni 2006
Danksagung
3
Ich möchte an dieser Stelle die Gelegenheit ergreifen und mich bei allen
Menschen bedanken, die durch ihre Unterstützung diese Arbeit ermöglicht haben. Prof. Wahlster und Prof. Krüger danke ich für die Möglichkeit ein so
interessantes Thema bearbeiten zu können und für die Bereitstellung der dazu
nötigen Ausrüstung. Den Mitgliedern und allen Mitarbeitern des Lehrstuhls für
Künstliche Intelligenz, die mir mit vielen fachlichen Tips und ihrer freundlichen
und kollegialen Art das Arbeiten erleichtert haben. Dabei gilt mein außerordentlicher Dank Mira und Michael, ohne deren Ratschläge, Anregungen und
Unterstützung diese Arbeit nicht geglückt wäre. Danken möchte ich ganz herzlich meinen Eltern, die mir durch ihre moralische und finanzielle Unterstützung
das Studium ermöglichten. Meiner Freundin Nadine möchte ich danken für ihr
Verständnis und ihre moralische Unterstützung. Zum Schluss, aber nicht zuletzt
gilt mein Dank denen, die die ersten Versionen dieser Arbeit Korrektur gelesen
haben und mir viele nützliche Hinweise geben konnten.
INHALTSVERZEICHNIS
5
Inhaltsverzeichnis
1 Einleitung
9
1.1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Gliederung der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3
Allgemeiner Hinweis zur Schreibweise . . . . . . . . . . . . . . . . 12
2 Grundlagen
9
13
2.1
Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2
FLUIDUM Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1
Dreheinheit . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2
BeaMover . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3
Kamera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.4
Audiosystem . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.5
Infrarotbaken und RFID-Tags . . . . . . . . . . . . . . . . 20
2.3.6
Digitaler Kompass . . . . . . . . . . . . . . . . . . . . . . 22
2.4
Fluid Beam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5
SAFIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6
Positionsbestimmung . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7
Avatar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.8
2.7.1
Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.2
Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
The Virtual Room Inhabitant . . . . . . . . . . . . . . . . . . . . 34
2.8.1
Systemkomponenten . . . . . . . . . . . . . . . . . . . . . 34
2.8.2
Character Engine . . . . . . . . . . . . . . . . . . . . . . . 36
2.8.3
Aktuelle Erweiterung . . . . . . . . . . . . . . . . . . . . . 39
3 Verwandte Arbeiten
3.1
41
Migrating Characters . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.1
STEVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.1.2
MAEVIF . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.1.3
WhizLow . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
INHALTSVERZEICHNIS
3.2
3.3
3.4
6
3.1.4
Virtual Augsburg . . . . . . . . . . . . . . . . . . . . . . . 47
3.1.5
PEACH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.1.6
Resümee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Raum- und Objektmodelle . . . . . . . . . . . . . . . . . . . . . . 55
3.2.1
CAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.2
Akustik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.3
Computergraphik . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.4
Virtual Augsburg . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.5
Resümee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Wegenetze und Wege . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3.1
Virtual Augsburg . . . . . . . . . . . . . . . . . . . . . . . 59
3.3.2
Navigation in der Fußgängerzone . . . . . . . . . . . . . . 60
3.3.3
Navigation mittels RFID . . . . . . . . . . . . . . . . . . 62
3.3.4
Resümee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4 Lösungsansatz
67
4.1
Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2
Raummodell
4.3
Wegenetz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.4
Wege durch den Raum . . . . . . . . . . . . . . . . . . . . . . . . 81
4.5
Avatar Verhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.6
Datensicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5 Implementierung des Systems
89
5.1
Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.2
Portierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.3
Objektmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.4
Raummodell
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.4.1
Raum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.4.2
Wand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.4.3
Freie Darstellungsfläche . . . . . . . . . . . . . . . . . . . 94
INHALTSVERZEICHNIS
5.4.4
5.5
5.6
Hindernis . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Wegenetz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.5.1
Struktur des Wegenetz . . . . . . . . . . . . . . . . . . . . 96
5.5.2
Erzeugen des Wegenetzes . . . . . . . . . . . . . . . . . . 96
Wege durch den Raum . . . . . . . . . . . . . . . . . . . . . . . . 98
5.6.1
5.7
7
Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Avatar-Verhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.7.1
Endlicher Automat . . . . . . . . . . . . . . . . . . . . . . 99
5.7.2
Subsumptionsansatz . . . . . . . . . . . . . . . . . . . . . 101
5.8
Avatar-Bewegung . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.9
Datensicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6 Zusammenfassung und Ausblick
107
6.1
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.2
Einsatzmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.3
Erweiterung des Systems . . . . . . . . . . . . . . . . . . . . . . . 110
7 Codeauszüge
Literatur
Abbildungsverzeichnis
Index
113
I
XI
XIII
1
EINLEITUNG
1
1.1
9
Einleitung
Einführung
In der heutigen Zeit spielt die Technik eine immer größere Rolle in unserem Leben. Nicht nur im beruflichen Umfeld, sondern auch an öffentlichen wie privaten
Plätzen werden wir mit einer Fülle von technischen Geräten konfrontiert. Mit
dem ständigen technologischen Fortschritt werden die Geräte immer kleiner und
unauffälliger, und in den letzten Jahren werden die Einzelgeräte immer häufiger
miteinander vernetzt. Die Entwicklung der vergangenen Jahrzehnte bewegt sich
vom Main Frame“-System, an dem mehrere Benutzer gleichzeitig arbeiteten,
”
hin zum Desktop-System, an dem ein einzelner Benutzer arbeitet. Mittlerweile
ist diese Entwicklung an einem Punkt angelangt, an dem ein einzelner Benutzer mehrere Geräte gleichzeitig nutzt. Dieser Trend wird sich in Zukunft noch
verstärken, wodurch wir fast überall in unserem Alltag mit unterschiedlichen
Geräten zu tun haben werden.
Das Ubiquitous Computing“ [Weiser06], [Weiser], [Mattern] beschäftigt
”
sich mit der Integration von Rechnern in unsere Umgebung, die dazu führt,
dass wir sie nicht mehr als einzelne Geräte wahrnehmen. Ziel ist es, die Geräte
so zu integrieren, dass die Benutzer sie intuitiv bedienen können, ohne daran erinnert zu werden, dass sie gerade mit einem oder mehreren Computern arbeiten.
Eine Möglichkeit, diesen Ansatz umzusetzen, sind sogenannte instrumentierte
”
Umgebungen“, bei denen einzelne Einrichtungsgegenstände oder ganze Räume
mit Computern und anderen technischen Geräten ausgestattet werden. Solche
Räume können mit den unterschiedlichsten Geräten ausgestattet sein, wie zum
Beispiel dem in [FLUIDUM06] beschrieben instrumentierten Tisch.
Mit der fortschreitenden Entwicklung des Bereichs Ubiquitous Computing“
”
werden unter anderem Bildschirme als Schnittstelle zum Benutzer immer wichtiger. Zwar geht der Trend in der Entwicklung zu immer größeren Bildschirmen,
aber dennoch ist es nicht möglich, einen ganzen Raum mit Bildschirmen so
1
EINLEITUNG
10
auszustatten, dass an beinahe jeder Stelle etwas dargestellt werden kann. Mit
Hilfe von Projektoren kann dieses Manko kompensiert werden, weshalb sie eine
wichtige Rolle bei visuellen Ausgaben in instrumentierten Umgebungen spielen.
Das Thema dieser Diplomarbeit ist das dynamische Positionieren von projizierten Displays, welche von einem Projektor in einer instrumentierten Umgebung erzeugt werden. Die instrumentierte Umgebung, in der diese Arbeit
entwickelt wurde, ist der instrumentierte Raum“ am Lehrstuhl für Künstliche
”
Intelligenz von Herrn Prof. Dr. Dr. h.c. mult. Wahlster an der Universität des
Saarlandes. Der instrumentierte Raum“ (Fluid Room) wurde im Rahmen des
”
FLUIDUM“-Projekts [FLUIDUM06] eingerichtet und basiert auf einer übli”
chen Büroumgebung (siehe Kapitel 2.2).
In einem instrumentierten Raum befindet sich eine Vielzahl von Geräten,
deren Bedienung intuitiv für den Benutzer sein sollte. Da nicht alle Geräte
selbsterklärend sind, müssen manche Geräte, die es nicht sind, dem Benutzer
vorgestellt werden. Zur Lösung dieser Aufgabe wird in [KrSpSc2] ein Avatar
(siehe 2.7) benutzt, der auf einem projizierten Display auf den Oberflächen
des instrumentierten Raums dargestellt wird. Wegen seiner deutlich sichtbaren
Präsenz verspricht das Konzept eines Avatars als Kontaktperson“ für den Be”
nutzer ein hohes Maß an Akzeptanz und somit auch an Effektivität. Beides kann
noch verbessert werden, wenn der Avatar auf den Benutzer reagiert und ihm begleitend zur Seite steht. Dazu muss er sich jedoch frei bewegen können, was mit
Hilfe der dynamisch positionierbaren Displays in dieser Diplomarbeit erreicht
wurde. Die Verwendung der Displays als Darstellungsfläche für einen Avatar
ist natürlich nur eine von vielen Anwendungsmöglichkeiten. Das in [KrSpSc2]
vorgestellte System wird als Anwendungsfall zur Demonstration der Funktionalität des Systems im Rahmen dieser Arbeit verwendet.
1
EINLEITUNG
1.2
11
Gliederung der Arbeit
Nach der soeben erfolgten Einstimmung auf das Thema dieser Diplomarbeit,
werden in Kapitel 2 die der Arbeit zu Grunde liegenden, bereits bestehenden Systemkomponenten erläutert. Dazu gehören die verwendete Hardware, die
im instrumentierten Raum installiert ist, genauso wie die auf dieser Hardware
aufbauenden Software-Systeme, die in den vergangenen Jahren am Lehrstuhl
entwickelt wurden. Dazu gehören eine drehbare Projektor-Kamera-Einheit, ein
räumliches Audiosystem, ein System zur Positionsbestimmung in Gebäuden
und ein Avatar, der im instrumentierten Raum lebt“.
”
Anschließend wird in Kapitel 3 ein Überblick über die Thematik der 3
Hauptkomponenten dieser Arbeit gegeben:
• Virtuelle Character, die mit dem Benutzer interagieren
• Ein Raummodell der betrachteten Umgebung
• Wegenetze
Nach diesem Überblick werden in Kapitel 4 die theoretischen Ansätze zur
Lösung der Aufgabenstellung dieser Arbeit erläutert, wie das entwickelte Raummodell, das Wegenetz und der Algorithmus zum Finden optimaler Wege, sowie
das Verhaltensmodell des Systems.
Die praktische Umsetzung der theoretischen Ansätze wird in Kapitel 5 detailliert veranschaulicht und mit Abbildungen verdeutlicht.
Abschließend wird im letzten Kapitel eine kurze Zusammenfassung der Arbeit gegeben sowie ein kurzer Ausblick auf zukünftige Einsatzmöglichkeiten und
eventuelle Erweiterungen des entwickelten Systems.
1
EINLEITUNG
1.3
12
Allgemeiner Hinweis zur Schreibweise
Für eine gleichberechtigte Ausdrucksweise müsste entweder die männliche und
die weibliche Schreibweise in zwei getrennten Wörtern hintereinander geschrieben oder jene mit großem I“ verwendet werden. Da dies das flüssige Lesen
”
erschwert, wird in der vorliegenden Arbeit die weibliche Schreibweise konsequent weggelassen. Ich bitte insbesondere die Leserinnen dies zu entschuldigen.
2
GRUNDLAGEN
2
13
Grundlagen
2.1
Aufgabenstellung
Das Ziel dieser Diplomarbeit war es, ein System zu entwickeln und zu implementieren, mit dessen Hilfe projizierte Displays zur Laufzeit dynamisch positioniert
werden können.
Die Displays werden auf beliebige Oberflächen im instrumentierten Raum
projiziert und dienen der Interaktion mit dem Benutzer. Daraus ergibt sich die
Notwendigkeit, dass die Displays möglichst in der Nähe des Benutzers sind und
auch bei dem Benutzer bleiben, selbst wenn sich dieser bewegt.
Dazu ist es erforderlich, die Möglichkeiten der bestehenden Systeme des
instrumentierten Raums zu identifizieren, um anschließend ihre spezifischen
Fähigkeiten zu kombinieren und gegebenenfalls zu erweitern. Das System soll
in die Java-Architektur des instrumentierten Raums integriert werden, so dass
es ohne Probleme in Zukunft erweiterbar ist.
Eine Voraussetzung für das System ist die Positionierung der projizierten
Displays in Echtzeit unter Berücksichtigung des Verhaltens des Benutzers, seiner Position und Blickrichtung, sowie der räumlichen Gegebenheiten. Damit
ist gemeint, dass die Displays während einer Bewegung von einem zu einem
anderen beliebigen Punkt auf einer Oberfläche im Raum nicht mit einem Einrichtungsgegenstand oder einer Raumstruktur kollidieren dürfen.
Mit Hilfe der projizierten Displays soll ein Avatar auf die Oberflächen des
instrumentierten Raums projiziert werden, dessen Gestiken und Bewegungen
mit den Bewegungen der Displays und der Umgebung synchronisiert werden
müssen. Die Bewegungen sollten mit Hilfe eines Wegenetzes, das sich über die
möglichen Darstellungsflächen im Raum erstreckt, systematisiert und optimiert
werden. Auf diese Weise soll es dem System ermöglicht werden, schnell und ef-
2
GRUNDLAGEN
14
fizient auf das Verhalten des Benutzers reagieren zu können.
2.2
FLUIDUM Projekt
Die DFG-geförderte FLUIDUM Forschungsgruppe (Flexible User Interfaces for
Distributed Ubiquitous Machinery) [FLUIDUM06] beschäftigt sich mit com”
putergestützten Interaktionstechniken und Ausdrücken für überall vorhandene
Rechner (Ubiquitous Computing)“ [FLUIDUM06].
Dies bedeutet, dass Möglichkeiten und Szenarien erforscht werden, in denen
sich der Benutzer in einer Umgebung befindet, die mit Technologie angereichert ist. Eine solche instrumentierte Umgebung ist ein Raum, in dem man
jeden Tag ist, wie zum Beispiel Büro- und Wohnumgebungen, die mit verschiedenen Technologien, wie etwa einem Projektor oder Touchscreen, ausgestattet
sind. An der Ludwig-Maximilians- Universität München und der Universität
des Saarlandes in Saarbrücken ist jeweils ein solcher instrumentierter Raum installiert. In den Räumen befinden sich unter anderem ein großer Bildschirm mit
Touchscreen-Funktionalität, ein Infrarot-System zur Positionsbestimmung, ein
räumliches Audio-System, ein beweglicher Projektor und Kameras. Durch die
verschiedenen Techniken wurden die Einrichtung des Raums und die Wände,
die als Displayflächen verwendet werden, zu interaktiven Schnittstellen für den
Benutzer.
Seit 2003, dem Projektstart sind mehrere Prototypen für Interaktionssysteme entstanden, aus denen man versucht, allgemeingültige Bedienkonzepte
herzuleiten. Ein solcher Prototyp ist zum Beispiel ein interaktiver Schreibtisch,
dessen Tischplatte als Bildschirm und Eingabemedium zugleich genutzt wird.
Diese Diplomarbeit nutzt den instrumentierten Raum am Lehrstuhl für
Künstliche Intelligenz von Prof. Wahlster an der Universität des Saarlandes
in Saarbrücken als Testumgebung. In Abbildung 1 ist ein Teil der installier-
2
GRUNDLAGEN
15
ten Hardware zu sehen. Der Teil der im instrumentierten Raum installierten
Hardware, die das in dieser Arbeit entwickelte System nutzt, wird im folgenden
Kapitel (2.3) detailliert beschrieben.
Abbildung 1: Der instrumentierte Raum am Lehrstuhl für Künstliche Intelligenz
an der Universität des Saarlandes, Quelle:[Wahlster05]
2.3
Hardware
Die im Rahmen dieser Diplomarbeit verwendete Hardware ist im instrumentierten Raum installiert. Die einzelnen Bestandteile wurden in unterschiedlichen
Projekten, Studien- und Forschungsarbeiten entwickelt und genutzt.
In diesem Kapitel wird ein kurzer Überblick über die Geräte, die im Rah-
2
GRUNDLAGEN
16
men dieser Diplomarbeit verwendet werden gegeben, um in den anschließenden
Kapiteln das mit dieser Hardware realisierte System vorzustellen.
Die verwendeten Geräte sind eine steuerbare Dreheinheit, an der ein Projektor und eine Kamera befestigt sind, mit deren Hilfe Displays auf die Oberflächen
im Raum projiziert werden, des Weiteren ein Audiosystem, mit dessen Hilfe beliebige Klänge räumlich positioniert werden. Fest installiert am Lehrstuhl von
Prof.Wahlster, und so auch im instrumentierten Raum, ist ein System das mit
Hilfe von Infrarotbaken und RFID-Tags die Position von Benutzern feststellt.
Die Mobile Hardware besteht aus einem digitalen Kompass, der die Blickrichtung des Benutzers ermittelt, sowie einem PDA (Personal Digital Assistant),
der im Rahmen des Infrarot-Systems zur Bestimmung der Benutzerposition verwendet wird.
2.3.1
Dreheinheit
Die Dreheinheit wird dazu verwendet einen Projektor auf einen bestimmten
Punkt im Raum auszurichten. Ursprünglich wurde diese Technik zur Beleuchtung von Bühnen und Studios entwickelt und wird unter dem Namen Moving
Yoke von der Firma Amptown Lichttechnik GmbH [Amptown06] hergestellt
und vertrieben.
Die Dreheinheit besteht aus einer rechteckigen Basisplattform, an der sie im
Raum befestigt wird, und einer darauf drehbar gelagerten u-förmigen Halterung.
In dieser Halterung kann zum Beispiel ein Scheinwerfer oder wie in unserem
Fall, ein Projektor, schwenkbar angebracht werden. Das so platzierte Objekt
ist dann um zwei Achsen drehbar, in horizontaler Richtung um ca. 340 Grad, in
vertikaler Richtung um ca. 270 Grad. Die Ausrichtung der Dreheinheit erfolgt
mittels zweier Motoren. Ein Computer spricht über ein USB/DMX-Interface
die 4 DMX Kanäle des Moving Yoke an, über die die Motoren gesteuert werden.
2
GRUNDLAGEN
17
DMX ist ein üblicherweise bei Bühnenshows benutztes Protokoll zur Steuerung der Beleuchtung, das mit 8-Bit Technologie arbeitet.
Die Ungenauigkeit der Motoren lässt dabei keine exakte Platzierung des
Bildes auf der Projektionsfläche zu. Ist die Projektionsfläche ca. 2m entfernt, so
kann das Bild bis auf etwa 1cm genau platziert werden, was jedoch im Rahmen
dieser Diplomarbeit völlig ausreichend ist.
2.3.2
BeaMover
Der BeaMover ist ein für die Musik-, Theater-, Film- und Studiobranche entwickelte Konstruktion bestehend aus einer mechanischen Dreheinheit (dem in
Kapitel 2.3.1 beschriebenen Moving Yoke) und einem lichtstarken Projektor.
Der verwendete Projektor ist der Sanyo PLC-XP41, der mit einer Lichtstärke
von 3.300 ANSI Lumen ein genügend helles Bild projiziert, so dass das System
problemlos auch in nicht abgedunkelten Räumen genutzt werden kann. Sollte
dies trotzdem nicht ausreichen, so ist der BeaMover auch mit noch stärkeren
Projektoren erhältlich.
Vertrieben wird der BeaMover von der Firma Publitec Präsentationssyste”
me & Eventservice GmbH“ [BeaMover06].
Von Vorteil beim BeaMover ist die Möglichkeit, die Funktionen des Projektors, wie Zoom, Fokus, Bildumkehr etc. über das gleiche DMX-Interface zu
steuern wie die Dreheinheit. Für die Steuerung der Funktionen des Projektors
werden 8 DMX-Kanäle verwendet.
So ist es mit dem BeaMover möglich, zum einen ein Bild an beinahe jede
Stelle im Raum zu projizieren und zum anderen dieses Bild dann während der
Projektion zu verschieben. Dazu ist das System an der Decke des instrumentierten Raums befestigt, wie man in Abbildung 2 erkennt. Am Projektor ist
2
GRUNDLAGEN
18
die in Kapitel 2.3.3 beschriebene Kamera befestigt, die von dem in Kapitel 2.4
beschriebenen Fluid Beam“-System benutzt wird.
”
Abbildung 2: Die Projektor-Kamera-Einheit an der Decke des instrumentierten
Raums.
Beim Positionieren und Verschieben von projizierten Bildern treten leider
unschöne Effekte auf. Die dargestellten Bilder werden wegen der verschiedenen
Blickwinkel des Projektors auf die Darstellungsflächen nicht verzerrungsfrei auf
die jeweilige Darstellungsfläche projiziert. Das Problem des verzerrungsfreien
Projizierens auf beliebige Flächen im Raum löst das in Kapitel 2.4 vorgestellte
Fluid Beam“-System [Spassova].
”
2
GRUNDLAGEN
2.3.3
19
Kamera
Im Rahmen des Fluid Beam“-Systems [Spassova] wurde eine Kamera am Pro”
jektor befestigt, mit deren Hilfe Marker und Gestiken erkannt werden. Die Kamera wurde dazu am Projektor befestigt, damit sie frei gedreht werden kann
und sie so die projizierten Bilder überblickt. Die im folgenden Abschnitt vorgestellte Kamera, nimmt die zum Erkennen von Markern und Gestiken nötigen
Bilder und Videos des instrumentierten Raums auf.
Die verwendete Kamera ist vom Typ PowerShot S45 von Canon mit einer maximalen Auflösung von 4 Megapixeln. Sie hat einen 3-fachen optischen
und 3,6-fachen digitalen Zoom und kann ein Videosignal mit 15 Bildern pro
Sekunde liefern. Canon stellt im Internet eine Software bereit, mit der man die
Kamera vom PC aus bedienen kann. Dazu wird sie über ein USB- bzw. ein
Videokabel mit dem Rechner verbunden, über das auch das Videosignal mit
einer Framegrabber-Karte ausgelesen wird.
Für das Fluid Beam“-System ist es wichtig, dass die Bilder der Kamera
”
aus einem anderen Blickwinkel aufgenommen werden, wie dem des Projektors,
der das Bild projiziert hat. Durch eine Verschiebung zur optischen Achse des
Projektors ist eine Triangulierung zu Markern möglich, mit deren Hilfe das System kalibriert werden kann. Aus diesem Grund wurde die Kamera so weit wie
möglich versetzt zur optischen Achse des Projektors befestigt, wie man in Abbildung 2 erkennen kann.
2.3.4
Audiosystem
Das Audiosystem verteilt Klänge durch eine gezielte Ansteuerung von mehreren
Boxen so, dass der jeweilige Klang vom Benutzer räumlich positioniert wahrgenommen wird.
Im instrumentierten Raum wurden acht Boxen vom Typ JBL Control 1
2
GRUNDLAGEN
20
Xtreme aufgehängt, die von zwei Verstärkern des Modells RX-V430RDS der
Firma Yamaha betrieben werden. Bei der Auswahl der Komponenten wurde
nach [Schmitz] darauf geachtet, ausschließlich Komponenten einzusetzen, welche im Heimanwenderbereich verfügbar sind und kostengünstig angeschafft werden können.
Die acht Lautsprecher wurden in gleicher Höhe knapp unter der Decke aufgestellt, um den Klang nicht durch Gegenstände oder mehrere Benutzer, die
sich gleichzeitig im Raum aufhalten, zu beeinträchtigen. Die räumliche Wahrnehmung wird hierdurch nicht besonders beeinträchtigt, da die menschliche
Richtungswahrnehmung in der horizontalen Ebene am genauesten ist. Im Gegensatz dazu ist die vertikale Sensibilität des Gehörs deutlich geringer, weshalb
eine vertikale Verschiebung kaum auffällt.
2.3.5
Infrarotbaken und RFID-Tags
In den Räumlichkeiten des Lehrstuhls für Künstliche Intelligenz von Prof.
Wahlster ist das in Kapitel 2.6 beschriebene System zur Bestimmung der
Position von Benutzern installiert. Dieses System greift zur Bestimmung der
Benutzerposition einerseits auf Infrarotbaken und andererseits auf RFID-Tags
zurück (siehe Abbildung 3), die in den Lehrstuhlräumen angebracht sind und
deren Signale von einem PDA aufgenommen werden.
Die Infrarotbaken werden von der Firma Eyeled GmbH“ [Eyeled06] herge”
stellt. In den von Eyeled vertriebenen Systemen werden sie zum Beispiel dazu
genutzt PDA-Besitzer durch Gebäude zu navigieren oder um objektbezogene
”
Informationen auf den PDAs anzuzeigen“ [Eyeled06].
Dazu senden die batteriebetriebenen Baken einen 16 Bit Code, der für jede
Bake individuell eingestellt werden kann. Der von der Bake ausgehende, kegelförmige Sendebereich ist ungefähr 6 Meter lang. Der Empfangssensor ist bei
2
GRUNDLAGEN
21
Abbildung 3: Der PDA mit RFID-Kartenleser (links), eine Infrarotbake (mitte)
und ein RFID-Tag (rechts), Quelle:[BrandSch]
fast allen PDAs schon integriert und wird normalerweise zum Datenaustausch
genutzt.
Die Radio Frequency Identification (RFID)-Tags sind in zwei unterschiedlichen Varianten erhältlich und können von einem speziellen Lesegerät mit Hilfe
eines Radiosignals ausgelesen werden.
Passive RFID-Tags beziehen ihre Energie aus dem Radiosignal des Lesegeräts, weshalb sie nur eine Reichweite von etwa 15 Zentimetern haben. Zur
Positionsbestimmung eines sich bewegenden Benutzers sind sie folglich ungeeignet.
Aktive RFID-Tags sind batteriebetrieben und haben eine deutlich höhere
2
GRUNDLAGEN
22
Reichweite. Die am Lehrstuhl verwendeten Modelle der Firma Identec Soluti”
ons AG“ [Identec06] haben eine Reichweite von etwa 10 Metern. Im Gegensatz
zu den Infrarotbaken wird das Signal der RFID-Tags radial ausgesendet, ist also
richtungsunabhängig. Außerdem ist kein direkter Sichtkontakt zwischen Sender
und Empfänger nötig, wie es bei den Infrarotbaken der Fall ist.
Dieses Signal wird mit Hilfe eines PCMCIA-Kartenleser in Verbindung mit
dem PDA ausgelesen. In Abbildung 3 sind der verwendete PDA vom Typ HP
iPAQ h5550 mit PCMCIA RFID-Kartenleser, eine Infrarotbake und ein RFIDTag abgebildet.
2.3.6
Digitaler Kompass
Zur Ergänzung des in Kapitel 2.6 beschriebenen Systems zur Erkennung der Benutzerposition wird ein digitaler Kompass benutzt, mit dessen Hilfe die Blickrichtung des Benutzers ermittelt wird. Der digitale Kompass wird von der Firma
Vectronics AG“ [Vectronics06] hergestellt und vertrieben und findet Verwen”
dung in verschiedenen Gebieten zur Koppelnavigation, wie zum Beispiel dem
Militär oder der Seefahrt.
Dank seines geringen Gewichts von weniger als 35 Gramm und den geringen
Abmessungen von nur wenigen Zentimetern behindert das Gerät den Benutzer
nicht. Der Kompass zeigt die Richtung bezogen auf 360 Grad mit einer Ungenauigkeit von einem Grad an. Abbildung 4 zeigt den verwendeten DRC (Dead
Reckoning Compass). Die vom Kompass ermittelten Richtungsdaten werden
auf einen Event-Heap [Johanson] gelegt, so dass sie jederzeit abrufbar sind.
Der Kompass sollte am Benutzer so angebracht werden, dass er aussagekräftige Richtungsdaten liefert. Möglich wäre eine Installation an einem PDA,
einer Armbanduhr oder einem Stirnband. Die Befestigung an der Hose oder an
einem Gürtel den der Benutzer trägt ist jedoch sinnvoller, da sich die Körper-
2
GRUNDLAGEN
23
Abbildung 4: Der Vectronics DRC Kompass, Quelle:[Vectronics06]
mitte sowohl bei Bewegungen als auch beim Stehen am wenigsten bewegt. Bei
einer Befestigung am Kopf wird die Blickrichtung am genauesten erfasst.
2.4
Fluid Beam
Das Fluid Beam-System[Spassova] wurde im Rahmen des FLUIDUM -Projekts
als Diplomarbeit entwickelt. Ziel der Arbeit war es, ein System zu entwickeln
”
und zu implementieren, das Projektionen auf beliebige Flächen in einer instrumentierten Umgebung realisiert“ [Spassova]. Diese Projektionen werden verzerrungsfrei auf den Darstellungsflächen im instrumentierten Raum abgebildet.
Die Darstellungen werden mit Hilfe des in Kapitel 2.3.2 vorgestellten
BeaMovers auf die gewünschte Fläche projiziert. Die Grundidee zum Entzerren
der projizierten Bilder auf den Flächen folgt der Tatsache, dass die Projektion
eines Bildes eine Umkehrung der Aufnahme des Bildes ist. Sofern die Kamera,
von der das Bild aufgenommen wurde, und der Projektor, der das Bild
projiziert, sich an der gleichen Stelle befinden und die gleichen optischen
Eigenschaften haben.
In Abbildung 5 wird dieser Sachverhalt für ein projiziertes Rechteck veran-
2
GRUNDLAGEN
24
Abbildung 5: Aufhebung von Projektionsverzerrung mit Kameraverzerrung,
Quelle: [Spassova]
schaulicht. Diese Vorgehensweise ist für eine einzelne Stelle auf einer Fläche gut
durchführbar. Da das Ziel aber die Projektion an beliebige Positionen auf beliebigen Flächen ist, müsste man jede Stelle auf jeder Fläche in der Umgebung des
Beamers, aus seiner Sicht fotografieren, was theoretisch unendlich viele Bilder
wären.
Da dies nicht praktikabel ist, wurde ein virtuelles 3D-Modell der Umgebung
mit der Java 3D-Bibliothek [?] erstellt. Dieses Modell besteht aus den dem Projektor zugewandten Flächen. An die Position des Projektors ist im Modell eine
virtuelle Kamera platziert, die so die virtuellen Objekte aus der Perspektive
des Projektors aufnimmt. Projektor- und Kamerabewegungen sind synchronisiert, wodurch die Objekte stets entsprechend verzerrt aufgenommen werden,
und korrekt entzerrt vom Projektor auf den Oberflächen im Raum dargestellt
2
GRUNDLAGEN
25
werden.
Man erhält den Eindruck eines virtuellen Layers, der alle Oberflächen im
Raum überzieht. Auf diesem virtuellen Layer können virtuelle Objekte an beliebige Positionen platziert werden. Der Projektionsstrahl wirkt dabei wie eine
virtuelle Taschenlampe. Wenn der Projektor auf die Position im realen Raum
gerichtet wird, an der sich im virtuellen Raum ein solches Display befindet, so
wird dieses Display im realen Raum vom Projektor verzerrungsfrei dargestellt.
Sobald der Projektionsstrahl nicht mehr auf das virtuelle Display gerichtet ist,
wird es nicht mehr angezeigt, obwohl es noch immer an seiner Stelle ist.
Das Fluid Beam“-System fokussiert automatisch, wodurch der Projektor
”
beliebig gedreht und geschwenkt werden kann, ohne dass das dargestellte Bild
unscharf wird. Es wurden Methoden implementiert, die das Projizieren von Bildern, MPEG Videos und Live-Streams ermöglichen.
Das Fluid Beam-System wurde in ein RMI [RMI06] Interface eingebettet,
wodurch es von beliebigen Rechnern aus bedient werden kann. Es stellt verschiedene Funktionen zur Ausrichtung des Projektors auf eine Stelle im Raum
und verzerrungsfreien Projektion von Bild- und Videoausgaben dorthin bereit.
Die vom System benutzte Hardware wurde in den Kapiteln 2.3.1 (Dreheinheit),
2.3.2 (BeaMover) und 2.3.3 (Kamera) beschrieben. Das Fluid Beam-System
wird in dem in Kapitel 2.8 beschriebenen System zur Darstellung und Positionierung von Displays in der instrumentierten Umgebung genutzt, welches ein
wichtiger Bestandteil dieser Diplomarbeit ist.
2.5
SAFIR
Das SAFIR-System [SAFIR] wurde im Rahmen des FLUIDUM Projekts als
Diplomarbeit entwickelt. SAFIR steht für Spatial Audio Framework for Instrumented Rooms und ist der Name einer Softwareplattform, die es erlaubt,
”
2
GRUNDLAGEN
26
beliebige Klänge programmgesteuert an beliebigen Stellen im Raum ertönen
zu lassen“ [Schmitz]. Besonders an diesem System ist, dass es möglich ist,
die Klänge auch dann an der entsprechenden Position der virtuellen Schallquelle wahrzunehmen, wenn man sich nicht an der optimalen Benutzerposition
(Sweet-Spot) befindet. Bei den üblichen Surround-Systemen, die zum Beispiel
im Home-Entertainment Bereich verwendet werden, ist das jeweilige System
auf eine optimale Benutzerposition und Blickrichtung ausgelegt, den sogenannten Sweet Spot. Das SAFIR System kann deshalb sogar von mehreren Benutzern gleichzeitig verwendet werden, ohne dass es zu größeren Qualitätseinbußen
kommt. Es wurde so entwickelt, dass man die Klänge nicht nur in der horizontalen Ebene wahrnimmt, sondern mit der geeignet installierten Hardware
(zusätzlich vertikal aufgestellte Lautsprecher) die Klänge dreidimensional im
Raum verteilen kann.
Das System benötigt verschiedene Parameter zum Betrieb, welche die Positionen der Lautsprecher, der virtuellen Schallquellen und des Benutzers sind.
Dabei sind nur die Positionen der Lautsprecher in Dateien gespeichert, die anderen Parameter werden dem System zur Laufzeit übergeben.
Eine Eigenschaft von Schall, die dem menschlichen Gehör ein Gefühl von
räumlicher Distanz vermittelt, ist der Effekt, dass Schall an Oberflächen reflektiert wird. Bei der Erstellung von SAFIR wurde zur Vereinfachung eine Kugel
als Raummodell angenommen, was bei der Berechnung von Reflektionen mehrere Vorteile hat. Zum einen kommen durch das Kugelmodell die reflektierten
Klänge aus der gleichen Richtung wie der ursprüngliche Klang, wodurch keine
weiteren virtuellen Schallquellen berechnet werden müssen. Zum anderen kommen die Klänge aus einer Schallquelle so immer aus der gleichen Richtung, wodurch die Lokalisierung dieser Schallquelle auch bei mehreren Benutzern nicht
beeinträchtigt wird.
Eine weitere wichtige Eigenschaft von Schall ist der sogenannte Doppler
”
2
GRUNDLAGEN
27
Effekt“, der ebenfalls vom SAFIR-System erzeugt wird. Er tritt auf, wenn sich
eine Schallquelle bewegt, was eine Änderung der Frequenz der Klänge zur Folge
hat.
Das SAFIR System wird in dem in Kapitel 2.8 beschriebenen System dazu
genutzt, Audioausgaben in einen räumlichen Zusammenhang mit den projizierten Displays zu bringen. So ist es möglich, dass der Benutzer sich ohne
Kopfhörer frei durch den instrumentierten Raum bewegen und trotzdem vom
System erzeugte Klänge an beliebigen Positionen hören kann.
2.6
Positionsbestimmung
Die Position zu kennen, an der sich der Benutzer gerade aufhält, ist für viele
Anwendungen essenziell. Insbesondere ist dieses Wissen wichtig zur Umsetzung
dieser Diplomarbeit, denn nur so kann gewährleistet werden, dass sich der Benutzer und die projizierten Displays in einer geeigneten Position zueinander
befinden.
Im Freien könnte man diese Aufgabe mit Hilfe des bekannten Global Positioning System (GPS) bewältigen, was jedoch in geschlossenen Räumen auf
Grund der fehlenden Satellitenverbindung nicht zu realisieren ist.
Am Lehrstuhl für Künstliche Intelligenz von Prof. Wahlster an der Universität des Saarlandes wurde ein System (siehe [BrandSch]) integriert, das die Position des Benutzers bestimmt und diesen zu ausgewählten Punkten innerhalb
des Gebäudes navigieren kann. Die Autoren des Artikels legten beim Entwurf
des System besonderes Augenmerk auf geringen Rechen- und Speicherbedarf,
”
so dass es auf einem mobilen System (wie dem Hewlett-Packard iPAQ) implementiert und ausgeführt werden kann“[BrandSch].
Prinzipiell gibt es zwei Varianten von Systemen zur Ortsbestimmung. Zum
2
GRUNDLAGEN
28
einen die, bei denen der Benutzer einen Sender trägt und in der Umgebung, in
der er sich bewegt, Sensoren eingebettet sind. In [BrandSch] werden diese Systeme exozentrisch“ genannt, da der Sender des Benutzers aktiv seine Position
”
angibt.
Zum anderen gibt es die egozentrischen“ Systeme, bei denen die Sender
”
in der Umgebung platziert wurden und der Benutzer einen mobilen Empfänger
mit sich führt, der dann die jeweilige Position berechnet. Das System weiß bei
dieser Methode nichts über die Position des Benutzers, er kann selbst entscheiden, ob er sie dem System mitteilt (etwa über Wireless LAN) oder eben nicht.
Das realisierte System verwirklicht den egozentrischen“ Ansatz, in dem es
”
die in Kapitel 2.3.5 beschriebenen Infrarotbaken (siehe [Eyeled06]) und RFIDTags (siehe [Identec06]) benutzt, welche in der Lehrstuhl-Umgebung installiert
sind.
Da die Sensoren keine absolut exakten Positionswerte liefern, ist es notwendig, die Benutzerposition mit einem probabilistischen Verfahren zu ermitteln.
Dazu werden dynamische Bayes’sche Netze (DBN) benutzt, die eine Erweiterung zu Bayes’schen Netzen (BN) sind. Mit Hilfe von Bayes’schen Netzen kann
man Entscheidungen unter Unsicherheit treffen, indem die Unsicherheit mit
Bayes’schen Wahrscheinlichkeiten modelliert wird. Bei DBNs kommt nun eine
Erweiterung hinzu, wodurch dynamische Prozesse modelliert werden können.
Wenn eine Infrarotbake oder RFID-Tag vom PDA erfasst wurde, wird ein
neues Geo referenziertes dynamisches Bayes’ sche Netzwerk“ [BrandSch] in”
stantiiert, und mit den Koordinaten des entsprechenden Geräts assoziiert. Die
Koordinaten werden nun gewichtet gegeneinander mit Wahrscheinlichkeiten
aufgerechnet, wodurch sich die erwartete Benutzerposition nach folgender Formel ergibt:
2
GRUNDLAGEN
U serP os(t) =
29
n
X
αω(GeoDBN [i])GeoP os(GeoDBN [i])
i=1
Dabei ist n die Anzahl an DBN zur Zeit t, GeoPos ( GeoDBN[i] ) ist die
Koordinate und ω(GeoDBN [i]) das Gewicht des i-ten GeoDBN. α ist ein Normalisierungsfaktor, der sicher stellt, dass die Summe aller Gewichte multipliziert
mit α 1 ergibt. Zur Effizienzsteigerung der Berechnung werden DBN mit einem
Gewicht, das unterhalb eines Schwellenwertes liegt, ignoriert.
Die so gewonnenen Positionswerte, werden vom PDA über Wireless LAN
zum Event-Heap [Johanson] weitergeleitet, von wo aus sie bei Bedarf abgerufen
werden können.
In Abbildung 6 sieht man einen begangenen Testweg durch die Räume des
Lehrstuhls. Die Strichmännchen zeigen die vom System berechneten Positionen
an, und die Kreise um die Strichmännchen herum die tatsächlichen Bereiche in
denen der Benutzer war.
Da die Positionsbestimmung, insbesondere im instrumentierten Raum, nicht
exakt genug ist für diese Diplomarbeit, wurden zusätzliche Infrarotbaken installiert. Hierdurch erhöhte sich die Genauigkeit des Systems auf das geforderte
Maß.
2.7
Avatar
Alle bisher beschriebenen Geräte sind im instrumentierten Raum installiert.
ER ist nicht nur ein Raum mit einer Ansammlung verschiedener miteinander
vernetzter Instrumente, der Raum ist sogar bewohnt“. Der virtuelle Bewoh”
”
ner“ des instrumentierten Raums ist ein weiblich aussehender Avatar namens
2
GRUNDLAGEN
30
Abbildung 6: Ein Testweg durch die Räume des Lehrstuhls für Künstliche Intelligenz, zum Testen des Positinierungssystems, Quelle: [BrandSch]
Minnie, der im Rahmen des in Kapitel 2.8 beschriebenen Systems eingesetzt
wird. An dieser Stelle wird nun kurz erläutert was ein solcher Avatar eigentlich
ist.
2.7.1
Definition
Dass ein Raum von Menschen oder Tieren bewohnt werden kann, ist hinlänglich
bekannt. Aber ein virtueller Bewohner, ein so genannter Avatar?
Laut Wikipedia [Wiki06], der freien Internet Enzyklopädie, ist ein Avatar
”
eine künstliche Person oder ein grafischer Stellvertreter einer echten Person in
der virtuellen Welt, beispielsweise in einem Computerspiel. (...) Avatare werden
beispielsweise in Form eines Bildes, Icons oder als 3D-Figur eines Menschen oder
2
GRUNDLAGEN
31
sonst irgend eines Wesens dargestellt. Die Verwendung des Begriffes Avatar in
diesem Zusammenhang wurde 1992 von Neal Stephenson in seinem ScienceFiction-Roman Snow Crash populär gemacht.(...)“.
Also ist ein Avatar ein Bild in der virtuellen Welt, das die Stelle einer Person einnimmt. Avatare sind jedoch nicht nur das bloße Abbild eines Menschen
oder eine Art virtueller Stellvertreter oder Konterfei, wie man sie in Foren,
Chat-Rooms oder Online-Rollenspielen in verschiedensten Formen antrifft. Die
Funktion und das Einsatzgebiet von Avataren haben sich deutlich weiterentwickelt. Von der einfachen Funktion eines Stellvertreters des Menschen in der
virtuellen Welt hin zu einem selbstständigen künstlichen Wesen, das mit dem
Menschen autonom interagiert. Der Avatar fungiert nicht mehr nur als virtuelle Darstellung des Benutzers, sondern mittlerweile als mit dem Benutzer
eigenständig agierende virtuelle Person. Ein Avatar kann als eine vertraut aussehende Benutzerschnittstelle für bessere Akzeptanz eines Produkts oder einer
Technologie verwendet werden. Wenn ein Benutzer mit einem menschenähnlichen Wesen am Bildschirm konfrontiert wird, das eventuell sogar mit ihm redet,
so akzeptiert er dies leichter als einen erklärenden Text, egal wie schön dieser
formatiert ist.
Im folgenden Abschnitt werden einige Beispiele für Avatare gegeben, die als
intelligente Benutzerschnittstellen fungieren. Damit erfüllen sie nach [DFKI06]
eine zentrale Vision des Forschungsbereich Intelligente Benutzerschnittstellen“.
”
Diese Vision ist die Entwicklung von persönlichen Informationsassistenten, die
dem Benutzer den Zugang zu den weltweiten Infobahnen erleichtern sollen. Im
Anschluss daran wird der Bewohner des virtuellen Raums erläutert.
2.7.2
Beispiele
Die im Folgenden genannten Beispiele für Avatare, sind sogenannte Lifelike
”
Characters“. Dies bedeutet, dass diese Avatare das Verhalten von in der Na-
2
GRUNDLAGEN
32
tur vorkommenden Wesen nachahmen. Avatare können beinahe jedes beliebige
Aussehen haben, sie müssen nicht unbedingt menschlich wirken, um akzeptiert
zu werden.
Ein sehr bekanntes Beispiel für ein dem Menschen nicht ähnlich sehender
Lifelike Character ist das bekannte und erfolgreiche Kinderspielzeug Poke”
mon“. Die weiteren Beispiele sind menschenähnlich aussehende Avatare, die als
Informationsassistenten mit dem Benutzer interagieren. Im Portal der Deutschen Bank AG hat man die Möglichkeit mit Cor@ zu sprechen. Ein Avatar
mit dem Aussehen einer jungen Frau, die über Texteingaben und -ausgaben
mit dem Benutzer kommuniziert. Cor@ präsentiert dem Benutzer Informationen über die Deutsche Bank AG. Dabei geht sie interaktiv auf die Fragen des
Benutzers ein.
Der Chatter-Bot Alice auf [Alice06] ist ebenfalls ein Avatar mit dem Aussehen einer jungen Frau. Alice ist darauf programmiert, sich mit dem Benutzer zu
unterhalten, zu “chaten“. Die Qualität einer solchen Unterhaltung ist natürlich
noch nicht vergleichbar mit einem Gespräch zwischen zwei Menschen, aber sie
gibt schon einen Einblick in die Möglichkeiten dieser Technologie. Denn obwohl diese Avatare nicht so intelligent wie ein menschlicher Gesprächspartner
interagieren, so sind sie doch sehr viel ansehnlicher als ein einfacher Text voller
Informationen, und es macht zuweilen Spaß mit ihnen zu interagieren.
Auf [?] erwartet Linda den Benutzer. Ein ebenfalls weiblich aussehender
Avatar, der sogar auch mit gesprochener Sprache kommunizieren kann. Linda
liegt ein Programm zugrunde, das sich an die Bedürfnisse und Vorlieben des Benutzers anpasst. Da dem Benutzer nur die Informationen präsentiert werden, die
ihn mit hoher Wahrscheinlichkeit am meisten interessieren, wird so zum einen
die Interaktion zwischen dem Benutzer und dem System weiter verbessert und
zum anderen auch die Akzeptanz erhöht. Denn der Benutzer muss sich nicht
lange mit uninteressanten Dokumentationen und Anweisungen beschäftigen, die
2
GRUNDLAGEN
33
ihn nicht interessieren, sondern nur mit dem Teil, der für ihn von Bedeutung ist.
Abbildung 7: Beispiele für Avatare: Ein Pokémon (links, Quelle: [Pokemon06]),
Chatterbot“ Alice (mitte, Quelle: [Alice06]) und Cyberella (rechts, Quelle:
”
[DFKI06])
Am Deutschen Forschungsinstitut für Künstliche Intelligenz“ (DFKI) in
”
Saarbrücken ist ein Avatar namens Cyberella installiert. Ähnlich den oben genannten Beispielen für installierte Avatare ist Cyberella ein Avatar mit dem
äußeren Erscheinungsbild einer attraktiven, jungen Frau. Cyberella wurde am
DFKI im Zuge des 1998 gestarteten Projekts PRESENCE“ [DFKI06] unter
”
der Leitung von Dr. Elisabeth André entwickelt. Ziel des PRESENCE-Projekts
war die Entwicklung eines Lifelike Characters, der als Ansprechpartner für
”
Gäste und Besucher fungieren und diese interaktiv über Projekte, Aktivitäten
und Mitarbeiter des DFKI informieren (...)“ [DFKI06] sollte. Heute ist sie unter anderem in das Informationssystem des DFKI integriert und präsentiert
den interessierten Besuchern interaktiv unterschiedliche Informationen über das
DFKI.
2
GRUNDLAGEN
2.8
34
The Virtual Room Inhabitant
Das Virtual Room Inhabitant(VRI )-System [KrSpSc1],[KrSpSc2] wurde mit
dem Ziel entwickelt, die Benutzerfreundlichkeit der oftmals komplexen Hardware in instrumentierten Umgebungen zu verbessern. Grundidee hierzu ist die
erhöhte Akzeptanz und intuitive Interaktion eines Benutzers mit einem Avatar.
Um dies innerhalb der instrumentierten Umgebung zu realisieren, sollte sich
der Avatar möglichst frei bewegen können und mit gesprochener Sprache und
begleitenden Gestiken kommunizieren.
Die zuvor vorgestellten Konzepte von Avataren realisieren diese immer in
Verbindung mit Bildschirmen, auf denen die Avatare dargestellt werden. Im
Fall des VRI -Systems sollte der Avatar den instrumentierten Raum bewoh”
nen“, sich also unabhängig von den installierten Bildschirmen bewegen und an
jeder Position, an der er sich aufhält, mit dem Benutzer interagieren können.
Um dies zu gewährleisten wurden verschiedene, bereits in der instrumentierten
Umgebung installierte Systeme miteinander verknüpft.
2.8.1
Systemkomponenten
Die einzelnen Komponenten des VRI -Systems werden in Abbildung 8 veranschaulicht. Alle Geräte der instrumentierten Umgebung müssen sich beim Device Manager anmelden. Dieser registriert die verfügbaren Geräte und deren
Ressourcen. Der Device Manager zeigt die angemeldeten Geräte an und erlaubt
uneingeschränkten Zugriff auf sie. Wenn mehrere Anwendungen gleichzeitig auf
das gleiche Gerät zugreifen möchten, dann käme es zu unschönen Störungen, da
der Device Manager jeder Anwendung vollen Zugriff erlaubt. Um dies zu verhindern wird der Presentation Planner verwendet. Er überwacht den Zugriff
auf alle angemeldeten Geräte und erlaubt den Anwendungen Zugriff auf nicht
verwendete Geräte. Auf diese Weise wird sichergestellt, dass eine laufende Anwendung, die ein Gerät benötigt, dieses benutzen kann, ohne dass eine andere
Anwendung auf dasselbe Gerät zugreifen kann. So ist es möglich die vorhan-
2
GRUNDLAGEN
35
Abbildung 8: Die Systemkomponenten des VRI-Systems, Quelle: [KrSpSc1]
denen Ressourcen mehreren parallel laufenden Anwendungen zur Verfügung zu
stellen. Der dezentrale Zugriff auf den Device Manager und die von ihm zur
Verfügung gestellten Geräte ist mit Hilfe von Java RMI-Objekten [RMI06] realisiert.
Um die gewollte Bewegungsfreiheit“ des Avatars zu gewährleisten, wird er
”
mit Hilfe des in Kapitel 2.4 vorgestellten Fluid Beam-Systems auf die Wände
des Instrumentierten Raums projiziert. Das in Kapitel 2.5 vorgestellte räumliche Audiosystem SAFIR wird dabei benutzt, um beim Benutzer den Eindruck
zu erwecken, dass der Avatar Geräusche macht und sprechen kann. Das Fluid
Beam-, ebenso wie das SAFIR-System, melden sich beim Device Manager an,
so dass Applikationen remote auf sie zugreifen können.
Die Komponente User with PDA steht für das in Kapitel 2.6 vorgestellte System zur Positionsbestimmung des Benutzers. Die Positionsdaten werden über
Wireless LAN auf den Event Heap [Johanson] gelegt, von dem aus sie jederzeit
2
GRUNDLAGEN
36
abrufbar sind. Auf dem Event Heap werden alle Informationen gelagert, die
der instrumentierte Raum liefert, wie zum Beispiel die Benutzerposition oder
Interaktionen mit dem System.
Der verwendete Avatar ist in seinem Erscheinungsbild an den in Kapitel
2.7.2 beschriebenen Avatar des DFKI [DFKI06] angelehnt und heißt ebenfalls
Cyberella“ (siehe Abbildung 10 rechts).
”
Die zentrale Komponente des VRI -Systems ist die Character Engine, welche
sich die benötigten Informationen vom Event Heap nimmt und über den Presentation Planner den Avatar mit Hilfe der SAFIR- und Fluid Beam-Systeme
im Raum positioniert. Im folgenden Abschnitt wird die Character Engine näher
beschrieben.
2.8.2
Character Engine
Die Character Engine-Komponente besteht aus den beiden Teilen Character
Engine Server (CE-Server ) und Character Animation (CA). Der CE-Server
ist in Java [JAVA] geschrieben und in ein RMI-Interface [RMI06] eingebunden,
wohingegen die eigentliche Animation des Avatars mit Macromedia Flash MX
[Flash05] realisiert wurde.
CE-Server und CA sind über eine XML-Socket Verbindung miteinander
verbunden und tauschen so XML-Skripte untereinander aus. Der CE-Server
kontrolliert dabei die Flash-Animation mit Hilfe dieser XML-Skripte, wobei die
CA Nachrichten über den aktuellen Status der Animation an den Server zurückschickt.
Die Flash-Animationen bestehen aus mehreren tausend gerenderten Einzelbildern, die einen erheblichen Speicherbedarf erzeugen. Um diesen so gering
wie möglich zu halten, ist die Animation in kleinere Teile aufgeteilt, die jeweils
2
GRUNDLAGEN
37
eine bestimmte Gestik oder Bewegung animieren. Des Weiteren existiert ein
sogenannte idle“-Teil, der den Avatar wartend an einer Stelle stehen lässt. Je”
de der anderen Animationen beinhaltet die Möglichkeit, dass der Avatar die
Lippen bewegt, wodurch er in fast jeder Position sprechen kann, während er
eine Geste macht. Diese Animationen werden von einem Hauptfilm gesteuert,
der beim Starten des Systems und nach jeder beendeten Gestik-Animation die
idle“-Animation lädt. Dieser Hauptfilm lädt die jeweiligen Animationen, wenn
”
er vom CE-Server ein entsprechendes XML-Skript bekommt. Ein Beispiel für
ein XML-Skript für die Character Engine ist in Abbildung 9 zu sehen.
Abbildung 9: Ein Beispiel für ein XML-Skript, das den Avatar den Benutzer
begrüßen lässt und dem Benutzer die Geräte im instrumentierten Raum erklärt
2
GRUNDLAGEN
38
Ein Skript ist durch script“-Tags bestimmt und kann aus mehreren parts“
”
”
bestehen. Jeder dieser Teile definiert eine bestimmte Gestik und die dazugehörige Audioausgabe. Nach der Ausführung eines Skripts kann das System mit dem
nächsten Schritt weitermachen, indem es zum Beispiel den Avatar mittels Fluid
Beam-Ansteuerung bewegt oder auch ein nächstes Skript abspielt. Damit die
Übergänge zwischen zwei Animationen fließend sind, wurden die Anfangs- und
Endbilder einer Animation so definiert, dass der Avatar auf ihnen immer in der
gleichen Pose erscheint.
Der CE-Server steuert über den Presentation Planner den Projektor und
die Audioausgabe. Beides wird durch Befehle, die der CE-Server generiert und
an den Presentation Planner schickt, mit der Avatar-Animation synchronisiert.
Dadurch kann der Avatar an beinahe jede Stelle im Raum platziert werden, und
seine Stimme ist genau an der Stelle, an der er sich befindet. So ist er in der
Lage das Setup der Umgebung zu erklären und dem Benutzer bei der Handhabung der Geräte zu unterstützen.
Ein typisches Szenario sieht wie folgt aus: Der Benutzer hat einen PDA (Personal Digital Assistant) in der Hand, mit dessen Hilfe seine Position bestimmt
wird, d.h. in welchem Raum er sich befindet. Sobald er den instrumentierten
Raum betritt, wird dies von dem Navigationssystem festgestellt, was wiederum
diese Information auf den Event Heap legt. Der CE-Server bekommt so die
Information und bittet um Zugriff auf die benötigten Geräte beim Device Manager. Sobald ihm der Zugriff gewährt wurde, bewegt er den Projektor und das
Audiosystem zu der initialen Position, von der aus die Animation starten kann.
Anschließend startet er die Animation, die dann vom Projektor auf die Wand
projiziert wird und sendet ein XML-Skript, das die Flash-Animation steuert
und dazu die entsprechende Sprachausgabe über das Audiosystem ausgibt.
2
GRUNDLAGEN
2.8.3
39
Aktuelle Erweiterung
Bisher wurde ein XML-Skript abgespielt, das sich nicht dynamisch anpassen
ließ. Es musste beim Starten des Programms vorliegen und wurde von Anfang bis Ende abgespielt. Im Laufe dieser Diplomarbeit wurde das VRI -System
dahingehend erweitert, dass auch einzelne Teile des Skripts abgespielt werden
können. Dies ist unbedingt notwendig, da sonst kein dynamisches Verhalten des
Avatars realisierbar ist.
Das Avatar-Modell wurde durch ein neues Modell namens Minnie“ ersetzt,
”
das auf Abbildung 10 zu sehen ist. Dies war aus Kostengründen erforderlich, da
sich das bestehende Cyberella-Modell nicht einfach um weitere Gestiken, wie
zum Beispiel Gehen, erweitern ließ.
2
GRUNDLAGEN
40
Abbildung 10: Rechts das alte Modell Cyberella“, links das neue Modell Min”
”
nie“
3
VERWANDTE ARBEITEN
3
41
Verwandte Arbeiten
Diese Diplomarbeit besteht hauptsächlich aus 3 Komponenten, die miteinander
verbunden wurden:
• Ein Avatar, der mit dem Benutzer interagiert
• Ein Raummodell der instrumentierten Umgebung
• Ein Wegenetz, auf dem sich der Avatar bewegt
Im Folgenden werden zu jedem dieser Komponenten einige Arbeiten vorgestellt,
die sich mit dem jeweiligen Thema befassen.
3.1
3.1.1
Migrating Characters
STEVE
Der erstmals 1999 vorgestellte und 2004 erweiterte Agent STEVE (Soar Training Expert for Virtual Environments) [Rickel1], [Marsella], [Rickel2] wurde
speziell entwickelt, um Studenten beim Lernen zu unterstützen. Er gibt den
Studenten Hilfestellungen beim Bewältigen von technischen, verfahrensorientierten Aufgabenstellungen. Dies tut STEVE in einer virtuellen 3D-Umgebung,
in der sich auch der Benutzer befindet und mit ihm interagiert. Die virtuelle
Umgebung, in der STEVE lebt“, besteht aus virtuellen Objekten, die zum
”
Beispiel Maschinen simulieren, die die Benutzer zu bedienen lernen sollen. In
dieser Umgebung befinden sich unter Umständen auch andere animierte Agenten sowie Avatare, die menschliche Benutzer repräsentieren.
Die Benutzer interagieren mit dem System mit Hilfe von Sensoren an Kopf
und Händen, Kopfhörern, einem Mikrofon und einem Datenhandschuh. So ist
es für die Benutzer möglich, intuitiv mit der virtuellen Realität zu interagieren.
Sie sind in der Lage, virtuelle Objekte zu greifen, auf sie zu zeigen und mit
3
VERWANDTE ARBEITEN
42
natürlicher Sprache zu kommunizieren. Dabei bewegen sich die Studenten ähnlich wie in einem 3D-Ego-Shooter (wie Unreal Tournament“ [Unreal06]) durch
”
die virtuelle 3D-Welt des Übungsgeländes, wie man in Abbildung 11 erkennt.
Während die Studenten versuchen, ihre Aufgaben zu bewältigen, kann
STEVE ihnen mit gesprochenen Bemerkungen und Erläuterungen zur Aufgabenstellung behilflich sein oder auch ihnen die entsprechende Aufgabe
demonstrieren. STEVE überwacht dabei die Benutzer beim Erledigen ihrer
Arbeit und kommentiert diese entsprechend des jeweiligen Verhaltens des
Benutzers. Dabei spielt es keine Rolle, ob gerade nur ein Benutzer das System
verwendet oder sich mehrere Benutzer gleichzeitig in der virtuellen Umgebung
befinden.
Sollten mehrere Benutzer oder Agenten sich gleichzeitig im System befinden, so wendet sich STEVE in Richtung des jeweiligen Gesprächspartners, um
Missverständnisse zu vermeiden. Die Welt, in der sich STEVE bewegt, wird
durch verschiedene äußere Einflüsse, wie unterschiedlich verlaufende Aufgaben
von Benutzern oder Bedienung der virtuellen Objekte ständig verändert.
Das Besondere an STEVE ist seine Fähigkeit, aufgabenbezogenes Verhalten
einerseits und persönliche Gespräche andererseits in einer solchen dynamischen
virtuellen Welt miteinander zu verschachteln. Um dies möglich zu machen, besteht STEVE aus den folgenden drei Hauptkomponenten:
• Ein Perception-Modul, das Nachrichten von einer zentralen Kommunikationsschnittstelle für alle anderen Komponenten bezieht. Es beinhaltet
eine Logik, die Reaktionen auf Nachrichten definiert. Diese Nachrichten
beinhalten Informationen über Veränderungen in der virtuellen Welt und
können zum Beispiel bewirken, dass virtuelle Bedienelemente ihren Zustand verändern. Nachdem das Perception-Modul diese Nachrichten auf
Wichtigkeit geprüft hat, sendet es sie an das
• Cognition-Modul weiter, das dann an Hand der Informationen entschei-
3
VERWANDTE ARBEITEN
43
Abbildung 11: Links: STEVE erklärt eine Schalttafel, Rechts: STEVE spricht
mit einem anderen Avatar (Quelle: [STEVE06])
det, was als nächstes zu tun ist. Anschließend sendet es die entsprechenden
Befehle an das
• Motor-Kontroll -Modul, welches die Bewegungen von STEVEs Körper kontrolliert.
STEVE wurde unter anderem in ein Schiffs-Szenario integriert, in dem die
Studenten lernen sollten, die Maschinen des Schiffs zu bedienen. Das Szenario
bestand aus mehreren Lektionen, an deren Beginn STEVE den Studenten die zu
erledigenden Aufgaben erklärte und vorführte. Den Studenten war es möglich,
die Vorführung für Fragen zu unterbrechen oder ganz abzubrechen, um die Aufgaben selbstständig zu beenden. In Abbildung 11 sieht man, wie STEVE eine
Kontrolltafel erklärt. Auf [STEVE06] kann man sich weitere Screenshots und
auch einige Demo-Videos ansehen.
3
VERWANDTE ARBEITEN
3.1.2
44
MAEVIF
Im Rahmen des MAEVIF -Projekts (Model for the Application of Intelligent
Virtual Environments to Education and Training) [MAEVIF06] wurde ein Modell entwickelt, das der Benutzung von virtuellen Umgebungen als Trainingsszenario zur Aus- und Fortbildung dient. Dazu wurde zunächst ein generisches
Modell für intelligente, virtuelle Lehrumgebungen definiert, dann eine dazu
passende Software-Architektur [Antonio2] und schließlich wurde ein Prototyp
implementiert, der auf dem entwickelten generischen Modell basiert. Das generische Modell [Antonio1], [Mendez2] basiert auf verschiedenen intelligenten
Agenten.
Intelligente Agenten [Klusch05] sind Software-Instanzen, die initiativ relevante Informationen für den Benutzer oder andere Agenten sammeln und sie
ihnen zur Verfügung stellen. Dazu greifen intelligente Agenten auf verschiedene,
eventuell verteilte, ihnen zur Verfügung stehende Daten- und Informationsquellen zurück. Die Agenten kommunizieren beim MAEVIF -System über ein sogenanntes schwarzes Brett“, auf das sie Anfragen setzen, die dann die anderen
”
Agenten zu lösen versuchen.
Bei der Realisierung eines generischen Modells wurden zum Beispiel mehrere
Agenten für die Kommunikation mit dem Benutzer verwendet und für diverse
Aufgaben des Systems, wie die Verwaltung der Umgebungsdaten. MAEVIF ist
ein verteiltes System, das von mehreren Benutzern gleichzeitig in einer Trainingsumgebung verwendet werden kann.
Zu Testzwecken wurde eine Prototyp-Applikation implementiert, die Studenten eine Trainingsumgebung bietet, in der sie Erfahrungen mit der Instandhaltung und der Kontrolle von Atomkraftwerken [Mendez1] sammeln können.
Dabei bewegen sich die Studenten ähnlich wie in einem 3D-Ego-Shooter, wie
auch schon in Kapitel 3.1.1 beschrieben, durch die virtuelle 3D-Welt des Kraftwerks, was man in Abbildung 12 erkennt. Während des Trainings können sie
3
VERWANDTE ARBEITEN
45
mit anderen Studenten und Avataren interagieren. Das Szenario wird dynamisch variiert, so dass die Studenten verschiedene Prozeduren und Aufgaben
aus unterschiedlichen Situationen heraus erledigen müssen.
Abbildung 12: Der Benutzer bewegt sich durch die virtuelle Welt und trifft
dabei auf andere Benutzer (Quelle: [Mendez2] und [Antonio2])
3
VERWANDTE ARBEITEN
3.1.3
46
WhizLow
Whizlow [Lester] ist ein Programm mit dem der Benutzer etwas erlernen soll,
ähnlich den in Kapitel 3.1.1 und 3.1.2 vorgestellten Systemen STEVE und
MAEVIF . In diesem Fall ist es ein kleiner Avatar, der in der virtuellen 3D-Welt
CPU City“ lebt und Studenten nicht-technischer Fachrichtungen die grundle”
gende Funktionsweise und den Aufbau eines Computers erklären soll.
Die CPU City“ besteht aus verschiedenen Häusern, die durch Straßen mit”
einander verbunden sind, und so stellt sie den schematischen Aufbau eines Motherboards dar. Die Häuser sind die zentralen Bestandteile des Motherboards,
wie zum Beispiel der Prozessor (CPU), der Arbeitsspeicher (RAM) und die
Festplatte, die wiederum eingerichtet“ sind mit den Komponenten aus denen
”
sie bestehen. So ist die CPU etwa mit Registern und einer Arithmetisch Logischen Einheit (ALU) eingerichtet. Die Straßen repräsentieren die Busse, die
die einzelnen Bestandteile miteinander verbinden und über die Datenpakete geschickt werden. Die Datenpakete werden während der Animation vom Avatar
von Haus zu Haus getragen, wodurch den Studenten Prozesse, wie zum Beispiel
Kompilieren“, verdeutlicht werden sollen.
”
Die Aufgaben, die der Avatar erledigt, werden zuvor vom Benutzer mit Hilfe
einer höheren Programmiersprache definiert. Diese Befehle werden dann intern
in Aktionen“ umgewandelt, die anschließend in der physischen Steuerung des
”
Verhaltens des Avatars definiert werden, um letztlich in Bewegung und Sprache
umgesetzt zu werden. Parallel dazu wird errechnet, wie sich die Kamerasicht
während der Bewegung ändern muss, und daraus wird eine Kamerafahrt generiert. Denn im Gegensatz zu den Systemen aus Kapitel 3.1.1 und 3.1.2 ist die
Sicht auf die virtuelle Szene nicht aus der Ich-Perspektive, sondern von oben,
wie man in Abbildung 13 sieht.
Die Studenten können in die bereits programmierte Abfolge von Aktionen“
”
nachträglich nicht mehr eingreifen. Sie können auch nicht selbstständig Ob-
3
VERWANDTE ARBEITEN
47
Abbildung 13: Whizlow bringt gerade ein Datenpaket zur CPU ,Quelle: [Lester])
jekte, wie etwa Datenpakete, manipulieren oder mit dem Avatar interagieren.
WhizLow erklärt jedoch während der Ausführung seine Taten. Die Studenten
können der Szene wie bei einem Film zusehen und sich so völlig auf das
Geschehen konzentrieren.
3.1.4
Virtual Augsburg
Die Forschungsgruppe Multimedia Concepts and their Applications“ der Uni”
versität Augsburg [MultConc06] leitet das Virtual Augsburg Projekt [Andre].
Der Ansatz zur Realisierung ist hier, anders als beim in Kapitel 3.1.1 vorgestellten STEVE -Projekt, eine Mixed Reality, ein Vermischen von virtueller Realität
und der realen Welt. Dabei erweitert der für das Projekt entworfene virtuelle
Charakter Ritchie die reale Umgebung des Benutzers.
Ein Szenario im Rahmen des Projekts ist die Verwendung von Ritchie als
virtuellen Führer eines Stadtrundgangs [Dorfm]. Der Benutzer steht vor einem
3
VERWANDTE ARBEITEN
48
Tisch, auf dem ein Stadtplan ausgelegt ist, und betrachtet diesen durch eine
Spezialbrille eines Head Mounted Displays, wie in Abbildung 14 rechts dargestellt. Mit Hilfe dieser Spezialbrille werden nun zum einen die Gebäude der
Stadt virtuell auf der Karte erzeugt und zum anderen auch Ritchie in den
Stadtplan integriert, wie man in Abbildung 14 links erkennt.
Abbildung 14: Rechts bewegt sich Ritchie dorthin, wo der Benutzer die Pyramide positioniert hat. Links sieht man einen Benutzer mit Head-Mounted Display,
der sich die Szene anschaut. Quelle: [Andre]
Neben der Spezialbrille ist im Head-Mounted Display eine Kamera integriert, die permanent das sich dem Benutzer bietende Bild aufnimmt. Mit Hilfe
einer Pyramide, auf deren Oberflächen sich Marker befinden, ist es dem Benutzer möglich, Eingaben an das System zu tätigen. Jeder dieser Marker steht
dabei für eine andere andere Aktion des Benutzers.
Zu Beginn ist Ritchie irgendwo auf der Karte positioniert. Wenn der Benutzer nun die Pyramide an eine Position gestellt hat, sucht Ritchie den kürzesten
Weg zu dieser Stelle. Sobald er beginnt sich zu bewegen, wird der Benutzer
3
VERWANDTE ARBEITEN
49
in die Szene eingebettet und folgt Ritchie durch die virtuelle Innenstadt von
Augsburg. Auf diese Weise teilen sich Benutzer und virtueller Charakter den
gleichen Raum. Dies führt beim Benutzer zu einer verstärkten Einbindung in das
System, da er die Situation zusammen mit dem Charakter erlebt und durchlebt.
Abbildung 15: Links folgt der Benutzer Ritchie durch die Stadt. Rechts ist
Ritchie in der realen Welt und betrachtet das Stadtmodell. Quelle: [Andre]
Ritchie kann jedoch nicht nur als Führer in der virtuellen Umgebung mit
dem Benutzer interagieren, wie in Abbildung 15 dargestellt, sondern er kann
sich ebenso in der realen Welt bewegen, wie ebenfalls in Abbildung 15 zu sehen
ist, wo er das Miniaturmodell der Stadt auskundschaftet. Auf diese Weise kann
sich der Charakter sowohl in der realen als auch in der virtuellen Welt frei bewegen. In der virtuellen Welt nimmt er den Benutzer mit auf eine Tour durch
die Stadt, in der realen Welt sind die Bewegungen von Benutzer und Charakter
unabhängig voneinander. Ritchie wird dann zum Beispiel neben einen Tisch
positioniert und betrachtet ein Modell auf dem Tisch, während der Benutzer
neben ihm steht (siehe Abbildung 15). Somit findet eine Vermischung von realer und virtueller Welt sowohl aus Sicht des Benutzers als auch aus Sicht des
3
VERWANDTE ARBEITEN
50
Charakters statt, die beide zwischen den Welten“ wechseln können.
”
3.1.5
PEACH
PEACH (Personalized Experiences with Active Cultural Heritage)[PEACH06]
ist ein wissenschaftliches Projekt verschiedener Institute und der Industrie unter Führung des Zentrums für Wissenschaftliche und Technische Forschung
am Kulturinstitut in Trento (ITC-irst) [ITC06], Italien. Ein Ziel des PEACH Projekts ist es, ein System zu entwickeln, mit dessen Hilfe Aufmerksamkeit,
Wertschätzung und vielleicht sogar Begeisterung für das Kulturerbe geweckt
werden sollen.
Dazu werden neueste Technologien getestet und genutzt, um besonders bei
jungen und weniger interessierten Menschen die gewünschte Wirkung zu erzielen. Für die Besucher von Kulturstätten wurde ein individueller Museumsführer
entwickelt, der auf die Wünsche und Vorlieben des jeweiligen Besuchers eingeht
und dabei das Wissen auf pädagogische und unterhaltsame Weise zugleich vermittelt.
Im Rahmen des PEACH -Projekts wurden am DFKI Avatare entwickelt, die
als Museumsführer eingesetzt werden. Das System wurde auf zwei unterschiedliche Museen angepasst. Zum einen das Museo Castello del Buonconsiglio in
Trento [Trento06], das sich in einer mittelalterlichen Burg mit vielen Fresken befindet. Das zweite Museum ist die Völklinger Hütte in Völklingen [VHuette06],
ein altes Stahlwerk mit verschiedenen Industrieanlagen.
Da die beiden Museen sehr verschieden sind, wurde für jedes Museum ein
eigenes Paar von Avataren entworfen. Für die Industrieanlage in Völklingen die
beiden oberen, modern aussehenden Avatare in Abbildung 16, für die mittelalterliche Burg die beiden unteren Avatare, deren Aussehen der damaligen Mode
angepasst wurde.
3
VERWANDTE ARBEITEN
51
Abbildung 16: Die vier Avatare des PEACH-Projekts. Quelle: [Kruppa]
Nicht nur das Aussehen der Avatare wurde angepasst, sondern auch ihre
Aufgabe während eines Museumsrundgangs. Jedem Charakter ist eine bestimmte Rolle zugewiesen, wodurch er je nach Interesse des Benutzers nur bestimmte
Themen präsentiert. Dieser kann jederzeit zwischen den beiden Avataren und
ihrem Teil der Erläuterungen wechseln. Jeder der Avatare spielt zwei Rollen
während einer Präsentation: die des Moderators und die des Redners. Als Redner erläutert er dem Benutzer mit Hilfe von entsprechenden Gesten die einzelnen
3
VERWANDTE ARBEITEN
52
Ausstellungsstücke im Detail. In der Rolle des Moderators bringt er die einzelnen Vorträge in einen großen Zusammenhang, wodurch sich dem Benutzer ein
Gesamtbild des Museumsrundgangs erschließen soll.
Während eines Rundgangs durch das Museum können die Avatare zwischen
verschiedenen Präsentationsmedien wechseln. Die Präsentationsmedien teilen
sich in die zwei Gruppen: stationäre und mobile Medien.
Als mobiles Medium dient ein Personal Digital Assistant (PDA), dessen
kleiner Bildschirm nur begrenzte Möglichkeiten zur Präsentation von komplexen Sachverhalten bietet. Deshalb wurden auch stationäre Präsentationsmedien
in das PEACH -Projekt aufgenommen. Diese stationären Medien sind fest installierte Bildschirme, auf denen viele Informationen gleichzeitig angezeigt werden können, da sie dazu genügend Platz bieten. Im Rahmen der Präsentation
werden sie als sogenannte Virtual Windows“ genutzt, die zusätzliche Informa”
tionen zu den Räumen geben, in denen sich der Benutzer befindet. Auf dem
PDA werden hingegen nur Informationen zu dem bestimmten Kunstwerk gegeben, vor dem sich der Benutzer gerade befindet. In Abbildung 17 sieht man
links die Darstellung eines Avatars auf einem PDA, und rechts das große Display eines Virtual Windows“.
”
Der Museumsführer erklärt dem Benutzer die jeweiligen Exponate mit Hilfe
gesprochener Sprache. Diese wurde mit Hilfe des AT&T’s Natural Voices“”
Systems [ATT06] generiert, da es eine hohe Sprachqualität erzeugt. Die so generierten Sounddateien werden im MP3-Format auf einem stationären Server
gespeichert und von dort bei Bedarf abgerufen (siehe [Kruppa]).
Da ein Benutzer während eines Rundgangs an verschiedenen Ausstellungsstücken vorbei kommt, ist es für das System wichtig zu wissen, vor welchem
Ausstellungsstück sich der Benutzer gerade befindet. Denn nur so ist es möglich,
im passenden Moment das richtige Wissen zu vermitteln. Das PEACH -Projekt
3
VERWANDTE ARBEITEN
53
Abbildung 17: Die PEACH-Präsentation auf einem PDA (links) und einem
Virtual Window“ (rechts). Quelle: [Kruppa]
”
benutzt zur Feststellung der Benutzerposition die in Kapitel 2.3.5 beschriebenen Infrarotbaken.
Auf diese Weise erkennt das System, zu welchem Kunstwerk es etwas vortragen soll. Um jedoch auf die spezifischen Wünsche des Benutzers eingehen zu
können, benötigt es ein entsprechendes Interessen-Profil. Dazu dokumentiert
das System ständig das Verhalten des Benutzers und erstellt aus den Beobachtungen ein Profil, wie es in Abbildung 18 dargestellt ist. Anhand dieses Profils
werden dann die Inhalte angeboten, die den Benutzer am meisten interessieren.
Sollten die Informationen nicht interessant sein, so kann der Benutzer sich eine
eigene Auswahl präsentieren lassen.
3.1.6
Resümee
In den Kapiteln 3.1.1 bis 3.1.5 wurden verschiedene Systeme präsentiert, die
Migrating Characters nutzen, um mit den Benutzern zu interagieren. Die vor-
3
VERWANDTE ARBEITEN
54
Abbildung 18: Eine Statistik über das Verhalten des Benutzers bei einem Rundgang. Quelle: [Kruppa]
gestellten Systeme nutzen dabei 3 verschiedene Ansätze, um die Interaktion mit
dem Benutzer zu realisieren.
Die Systeme STEVE , MAEVIF und WhizLow lassen ihre jeweiligen Avatare in virtuellen 3D-Welten umherlaufen. Die Benutzer begeben sich ebenfalls
in diese virtuellen Welten und erleben die Szene aus der Ich-Perspektive, wie
im STEVE - und MAEVIF -System, oder beobachten als Außenstehende das
Geschehen, wie beim WhizLow -System. In allen Fällen handelt es sich um Simulationen der realen Welt, die sich ausschließlich in der virtuellen Realität
abspielen. Die Systeme werden als Trainings- oder Lernprogramme genutzt, die
den Benutzern die reale Welt nur vorführen, aber von ihr vollkommen abgekoppelt funktionieren.
3
VERWANDTE ARBEITEN
55
Das Virtual Augsburg-Projekt aus Kapitel 3.1.4 macht den Spagat zwischen
virtueller 3D-Welt und der realen Welt. Einerseits kann der Benutzer mit dem
Avatar Ritchie einen Stadtrundgang in der virtuellen Realität machen, ähnlich
dem STEVE - und MAEVIF -Ansatz. Aber andererseits kann Ritchie auch aus
der virtuellen Welt herauskommen in die reale Welt und sich hier mit dem Benutzer zum Beispiel eine Szenerie anschauen, wie auf Abbildung 15 zu sehen
ist. Leider muss der Benutzer dazu verschiedene Geräte am Körper tragen, die
auf Dauer wohl eher als störend empfunden werden, da er durch sie in seiner
Bewegungsfreiheit eingeschränkt wird.
Beim PEACH -Projekt aus Kapitel 3.1.5 ging man einen völlig anderen Weg.
Der Avatar ist dank der Integration auf einem PDA so mobil, wie es der Benutzer ist. Außerdem ist es möglich, andere installierte Geräte, wie Bildschirme, als
Medium zu nutzen, indem der Avatar sich dorthin portiert. So ist der Benutzer
frei in seinen Bewegungen und kann die reale Welt erkunden und erhält vom
System dann am echten“ Objekt die Erläuterungen. Ein Nachteil an diesem
”
Ansatz ist das kleine Display eines PDAs, auf dem nur wenig dargestellt werden
kann. Die großen Bildschirme kompensieren diesen Nachteil zwar, jedoch sind
sie an einer Stelle fest installiert und folglich immobil. So kann der Benutzer nur
an bestimmten Stellen in der Umgebung alle Informationen optimal erhalten.
3.2
3.2.1
Raum- und Objektmodelle
CAD
In der Praxis gibt es eine Vielzahl von Anwendungsmöglichkeiten von Modellen, mit denen einzelne Objekte oder auch ganze Räume modelliert werden können. Eine der häufigsten Anwendungen sind Computer Added Design
(CAD)-Programme, wie etwa FactoryCAD der Firma UGS [FactoryCAD06],
mit dessen Hilfe Ingenieure Fabrikmodelle erstellen sowie Konstruktionspläne
3
VERWANDTE ARBEITEN
56
von Gebäuden, Schiffen und vielem mehr. Bei der Anwendung im Bauwesen werden Gebäude- und Raummodelle erstellt, um zum Beispiel Raumluftströmungen
zu simulieren (siehe [Treek]). Die CAD-Modelle sind äußerst genaue Modelle,
da sie als Vorlage für Konstruktionszeichnungen dienen oder auch selbige sind
(siehe Abbildung 19)
Abbildung 19: Links: ein CAD-Modell von einem Gebäude (Quelle:
[CADintern06]), Rechts: ein Raummodell eines Wohnraumes mit Schallsimulation (Quelle: [MCSquared06])
3.2.2
Akustik
Ein weiteres Anwendungsgebiet für Raummodelle ist die Akustik. Dort werden
die Modelle dazu benutzt, ein optimiertes Klangbild in Räumen zu erzeugen, wie
es etwa in Konzertsälen oder im Kino [MCSquared06] gefordert wird. In Abbildung 19 sieht man ein solches Modell eines Wohnraums, in dem das Klangbild
eines Soundsystems simuliert wird. Eine weitere Anwendung für Raummodelle
3
VERWANDTE ARBEITEN
57
im Bereich Akustik ist das in Kapitel 2.5 beschriebene räumliche Audiosystem
SAFIR“ [Schmitz]. In diesem Fall hat der modellierte Raum die vereinfachte
”
Form einer Kugel, um die Ausgabe der Klänge schneller berechnen zu können.
3.2.3
Computergraphik
Raum- und Objektmodelle werden natürlich besonders in der Computergrafik
benutzt, um Animationen oder virtuelle Welten zu erschaffen, wie zum Beispiel
in 3.1.1 und [Unreal06]. Es gibt verschiedene Programme, wie zum Beispiel 3D
”
Software Object Modeller Pro“ der Firma 3Dsom.com [3Dsom06], die dem Benutzer beim Erstellen der Modelle helfen. Im Fall von 3D Software Object
”
Modeller Pro“ werden die Modelle mit Hilfe von 2D-Fotos erstellt und anschließend vom Benutzer nachbearbeitet. Eine andere Möglichkeit ist die Erstellung
von 3D-Modellen mit Hilfe von Hochsprachen wie C# [CSharp06] oder Java 3D
[Java3D06]. Zum Beispiel wurde im Rahmen des Fluid Beam“-Systems, das
”
in Kapitel 2.4 beschrieben wurde, das 3D-Modell des instrumentierten Raums
mit Java 3D erstellt. Desweiteren kann auch die HTML-Erweiterung Virtual
”
Reality Modeling Language“ (VRML) [VRML06] genutzt werden, um dreidimensionale Szenen zu erstellen.
3.2.4
Virtual Augsburg
Das in Kapitel 3.1.4 vorgestellte System Virtual Augsburg“ benutzt ein ei”
gens erstelltes Raummodell [Kufner], welches mit VRML bearbeitet wurde. Datenbasis für das Raummodell der Augsburger Innenstadt sind die städtischen
Grundrisspläne, die nach der Digitalisierung in ein Koordinatensystem eingebettet wurden. Zur Vereinfachung wurde das 3D-Modell in ein 2D-Wegenetz
überführt, da die 2D-Informationen ausreichen, um einen Stadtrundgang zu
planen. Das so generierte 2D-Wegenetz wird in Kapitel 3.3.1 weiter erläutert.
In Abbildung 20 sieht man das 3D-Modell der Szene von oben, so dass im
nächsten Schritt die Sichtbarkeitspunkte eingetragen werden können.
3
VERWANDTE ARBEITEN
58
Abbildung 20: Das Raummodell des Virtual Augsburg Systems (Quelle:
[Kufner])
3.2.5
Resümee
Die hier vorgestellten Ansätze für Raummodelle gehen auf Grund der verschiedenen Ziele unterschiedliche Wege zur Modellierung. Die Computergraphik versucht möglichst detailgetreue Modelle zu erstellen und lässt so den Eindruck
von möglichst realistischen Umgebungen entstehen. Bei CAD-Modellen ist die
Genauigkeit ähnlich hoch, eventuell noch höher, wenn es sich um Konstruktionspläne handelt.
Im Gegensatz dazu sind die Modelle in der Akustik meist etwas vereinfacht, auch weil es nicht auf schönes Aussehen der Objekte im Raum ankommt,
als vielmehr auf die Schallausbreitung im Innenraum. Oft sind diese Modelle
nur Datenmodelle, da sie nur für Berechnungen benutzt werden. Dabei können
3
VERWANDTE ARBEITEN
59
kleine Abstriche in der Genauigkeit von einzelnen Objekten in Kauf genommen
werden, ohne dass das Modell an Aussagekraft verliert.
Das Raummodell des Virtual Augsburg“-Projekts ist kein echtes 3D-Modell.
”
Es wurde zuerst abstrahiert und anschließend in eine 2D-Sicht übertragen, was
im Rahmen des Projekts völlig ausreichend war.
3.3
Wegenetze und Wege
Um in einer fremden Umgebung einen Weg vom eigenen Standort zu einem
beliebigen Zielort finden zu können, braucht man Informationen über mögliche
Wege durch die Umgebung, in der man sich bewegt. Im Alltag bewegen wir
uns unter anderem auf Straßen, Bürgersteigen und in Fußgängerpassagen. Diese kann man als eine Ansammlung von Kreuzungen und Verbindungsstrecken
verstehen, die die Kreuzungen miteinander verbinden. Benennt man nun die
Kreuzungen als Knoten und die Verbindungsstrecken als Kanten, so erhält man
ein Wegenetz.
Wegenetze werden als Formalisierung der begehbaren Umgebung zur Grundlage für automatisierte Navigation eingesetzt. Das Problem, einen optimalen
Weg durch ein Netz aus möglichen Wegen zu finden, ist lange bekannt, und
es existieren verschiedene Lösungsansätze und Algorithmen. Der bekannteste
von allen ist wohl der Dijkstra-Algorithmus“, der in [Cormen] sehr ausführlich
”
erläutert wird. Die Applikationen in den folgenden Beispielen generieren Wegenetze, und suchen darauf mit unterschiedlichen Algorithmen nach möglichst
optimalen Wegen.
3.3.1
Virtual Augsburg
Das in Kapitel 3.1.4 vorgestellte System benutzt ein 3D-Modell (siehe 3.2.4)
zur Erstellung eines Wegenetzes [Kufner]. Das Wegenetz ist hier ein Sicht”
3
VERWANDTE ARBEITEN
60
barkeitsgraph“ bestehend aus Knoten, die hier Sichtbarkeitspunkte“ genannt
”
werden, und Kanten. Ein Sichtbarkeitspunkt“ hat die Eigenschaft, dass er
”
ein potentieller Wegpunkt ist und direkten Sichtkontakt zu wenigstens einem
anderen Sichtbarkeitspunkt“ hat. Der Sichtbarkeitsgraph“ wird nun erstellt,
”
”
indem von jedem Knoten aus zu jedem sichtbaren Nachbarknoten eine Kante
eingefügt wird.
Zur Vereinfachung wurde das 3D-Modell in ein 2D-Wegenetz überführt. Dies
ist für das Wegenetz nicht von Bedeutung, da sich die möglichen Wege im 3DModell nur in einer horizontalen Ebene befanden. Das Setzen der Sichtbar”
keitspunkte“ wird von Hand im 3D-Modell durchgeführt, da dies mit Hilfe des
Tools Cosmo Worlds“ [Cosmo06] sehr einfach ist und der Versuch eines auto”
matischen Setzens der Knoten scheiterte.
Auf dem generierten Wegenetz wird nun nach dem kürzesten Weg zwischen
zwei Knoten gesucht. Dazu wird der A∗-Algorithmus“ verwendet, der unter an”
derem in [AStern06] erklärt ist. Der so gefundene Weg ist leider sehr eckig, da
die Sichtbarkeitspunkte“ über gerade Kanten miteinander verbunden sind. Zur
”
Abrundung der Kanten werden Cardinal Splines [DeLoura] benutzt, beginnend
beim Startknoten, iterativ fortschreitend bis zum Zielknoten. Diese Abrundungen werden jedoch nicht in den Sichtbarkeitsgraphen“ übernommen, sondern
”
bei jedem neuen Pfad erneut berechnet. Die so entstandenen Wege sind einerseits möglichst kurz, und andererseits sind es schöne“ Wege, wie man sie auch
”
selbst in der Realität gehen würde.
3.3.2
Navigation in der Fußgängerzone
In den Arbeiten [Kolbe3D], [Kolbe], [Pressl] werden verschiedene Ansätze zur
Navigation in Fußgängerzonen gegeben. Allen drei Arbeiten liegt ein Wegenetz
zu Grunde, das aus Kanten und Knoten besteht. Die 2-dimensionalen Wegenetze werden nicht automatisch generiert, sondern von Hand aus einem Stadtplan
3
VERWANDTE ARBEITEN
61
einer topologischen Karte oder einem Gebäudeplan extrahiert.
In [Kolbe] werden Gebäude in die Navigation einbezogen. Dabei werden
Treppen und Aufzüge als einfache Kanten modelliert, die die jeweiligen Teilgraphen der betreffenden Stockwerke miteinander verbinden. Hierdurch bleibt das
Wegenetz 2-dimensional, obwohl 3-dimensionale Sachverhalte modelliert werden.
Zum Finden der kürzesten Wege in den Wegenetzen benutzen [Kolbe3D]
und [Kolbe] den in [Cormen] beschrieben Floyd(-Warshall)-Algorithmus“. In
”
[Pressl] wird hingegen der Dijkstra-Algorithmus“ zur Suche des kürzesten
”
Weges genutzt. Der Unterschied zwischen den beiden Algorithmen ist, dass der
Dijkstra-Algorithmus“ alle kürzesten Pfade von einem Startpunkt aus zu al”
len anderen Knoten berechnet, wohingegen der Floyd-Algorithmus“ von jedem
”
Knoten aus zu allen übrigen Knoten die kürzesten Pfade berechnet. Dadurch
verbraucht er deutlich mehr Speicherplatz und eignet sich nur für kleine Wegenetze.
Bei ihrem Lösungsansatz legen [Kolbe3D] und [Kolbe] den Fokus auf virtuelle Wegweiser, wie Videos oder Bilder. Diese werden den Benutzern auf einem
PDA angezeigt, um so den Weg effizient zu beschreiben. In [Pressl] dagegen
wird ein System für blinde Benutzer vorgestellt, bei dem zur Weitergabe von
Informationen über den weiteren Verlauf des Weges Sprachausgaben, Text (in
Blindenschrift), Vibrationsalarm und einfache Geräusche eingesetzt werden.
Bei [Pressl] ist noch zu erwähnen, dass eine Kostenfunktion zur Berechnung der sichersten Route implementiert wurde. Diese ist nur selten auch die
kürzeste Route, weswegen zur Länge der Kante noch zusätzliche Bewertungskriterien zur Gewichtung der Kanten genutzt wurden. So wirken sich zum Beispiel
Straßenübergänge und hohe Verkehrsdichte negativ auf die Gewichtung einer
Kante aus. Auf diese Weise muss am Algorithmus selbst nichts geändert wer-
3
VERWANDTE ARBEITEN
62
den, um die sicherste an Stelle der kürzesten Strecke zu finden.
3.3.3
Navigation mittels RFID
In [Tomberge] wird ein System vorgestellt, das mit Hilfe von RFID (siehe 2.3.5
und 2.6) Navigation für Fußgänger in einem Fußballstadion und in seiner unmittelbaren Nähe bereitstellt. Anwendung findet das System erstmals bei der
Fußball Weltmeisterschaft 2006 in Deutschland, da dann erstmals die Eintrittskarten mit RFID-Chips für die Eingangskontrolle versehen werden.
Für ein Anwendungsszenario wurde das Stadion Arena AufSchalke“ in
”
Gelsenkirchen ausgewählt, das mittlerweile den Namen Veltins-Arena“ trägt
”
[Schalke06]. Die Navigation wurde auf einem PDA realisiert, wodurch dem Benutzer auch andere ortsbasierte (Informations-) Dienste (Location Based Services, LBS) zur Verfügung gestellt werden können.
Dem Navigationssystem liegt ein Wegenetz zu Grunde, das sich von den
Parkplätzen bis zu den Sitzen in den verschiedenen Blöcken im Stadion erstreckt. Wie in 3.1.4 und 3.3.2 bereits beschrieben, besteht auch hier das Wegenetz aus Knoten und Kanten, wobei die Kanten verschiedene Gewichte haben.
Das Wegenetz wird aus dem Lage- bzw. Bauplan des Stadions gewonnen, und
die einzelnen Knoten und Kanten werden von Hand gesetzt. Ein 3D-Modell
wird nicht generiert.
Das Wegenetz besteht aus den folgenden Teilgraphen und den Verknüpfungen
zwischen ihnen:
• Wegenetz vor dem Stadion bis zu den Sicherheitsbereichen
• Wegenetz innerhalb der einzelnen Sicherheitsbereiche vor und im Stadion
• Wegenetz auf den einzelnen Ebenen und in den Blöcken des Stadions bis
zu den Sitzplätzen
3
VERWANDTE ARBEITEN
63
Abbildung 21: 3D-Wegenetz für das Fußballstadion in Gelsenkirchen (oben) und
das 2D-Wegenetz in das es überführt wurde. (Quelle: [Tomberge])
Das vollständige Wegenetz wird aus diesen Teilgraphen und den Verknüpfungen zusammengesetzt. Wie in Abbildung 21 zu sehen ist, spielt es dabei keine
Rolle, in welcher Position im 3D-Raum sich der jeweilige Punkt befindet, weshalb das Wegenetz 2-dimensional beschrieben wird, wie es auch in 3.3.1 und
3.3.2 gemacht wurde. Der Höhenunterschied zweier benachbarter Punkte wurde mit Hilfe der Kantengewichte modelliert. Der kürzeste Weg zwischen zwei
Knoten des Wegenetzes, zum Beispiel zwischen Parkplatz und Sitzplatz, wird
3
VERWANDTE ARBEITEN
64
mit Hilfe des Dijkstra-Algorithmus“ berechnet. Ein Glättungsverfahren für die
”
gefundenen Wege, wie in 3.3.1 beschrieben, wird nicht verwendet.
Das System kann problemlos in andere Fußballstadien übertragen werden,
es muss lediglich das Wegenetz für das jeweilige Stadion neu generiert werden,
was unter Umständen mit einigem Aufwand verbunden ist.
3.3.4
Resümee
Ein Wegenetz dient immer dem Finden von Wegen, egal wo diese Wege sind.
Die vorgestellten Ansätze haben alle gemeinsam, dass sie einen aus Knoten und
Kanten bestehenden Graphen als Grundlage nehmen. In allen Beispielen wurden die Knoten von Hand aus dem zu Grunde liegenden Modell extrahiert. Dies
ist je nach Größe des benutzten Modells ein großer Arbeitsaufwand, den nur
[Kufner] zu umgehen versuchte. Der dort versuchte Ansatz scheiterte jedoch an
der Komplexität des Problems der automatischen Positionierung der Knoten.
Die vorgestellten Systeme werden zur Navigation in unterschiedlichen Umgebungen verwendet, die auf ein ebenes Wegenetz vereinfacht wurden. Der scheinbare Informationsverlust dieser Vereinfachung wurde durch die entsprechende
Wahl von Kantengewichten kompensiert.
Um die gesuchten Wege im Wegenetz zu finden, benutzen alle Systeme
Shortest Path“-Algorithmen [Cormen]. Dabei verwenden [Kolbe3D] und [Kolbe]
”
den Floyd(-Warshall)-Algorithmus“, der für große Wegenetze aber auf Grund
”
seines hohen Speicherbedarfs nicht geeignet ist. [Pressl] und [Tomberge] nutzen
dagegen den Dijkstra-Algorithmus“, der sparsamer mit Speicher umgeht. In
”
[Kufner] wird der A∗-Algorithmus“ verwendet, welcher eine Erweiterung des
”
Dijkstra-Algorithmus“ ist. Alle drei Algorithmen liefern optimal kürzeste We”
ge als Ergebnis.
3
VERWANDTE ARBEITEN
3.4
65
Zusammenfassung
Im vergangenen Kapitel wurden verschiedene Systeme vorgestellt, die einen
Einblick in die Teilgebiete dieser Diplomarbeit geben.
In 3.1 wurden verschiedene Systeme vorgestellt die Avatare einsetzen, um
den Benutzer mit dem System interagieren zu lassen. Alle vorgestellten Lösungen benutzen zur Darstellung technische Geräte, die entweder komfortabel groß,
aber stationär sind ([Rickel1], [MAEVIF06], [Lester], [Andre], [PEACH06]),
oder zusätzlich mit mobilen Geräten erweitert wurden, die aber eingeschränkte
Darstellungsmöglichkeiten haben [PEACH06].
Diese Diplomarbeit nutzt den in 2.8 vorgestellten Ansatz eines projizierten
Displays, das auf beliebige Flächen positioniert werden kann. Dadurch ist es
möglich, den Avatar beim Benutzer zu positionieren, ohne auf fest installierte
Geräte angewiesen zu sein oder einen Kompromiss bei der Größe des Displays
eingehen zu müssen.
Die vorgestellten Raum- und Objektmodelle aus 3.2 zeigen verschiedene
Möglichkeiten der Modellierung auf. Die Modelle aus 3.2.1 und 3.2.3 sind sehr
detailliert und dementsprechend komplex und umfangreich. Das Modell in 3.2.2
konzentriert sich hauptsächlich auf die Inneneinrichtung eines Raums unter Beachtung von Objekten, die die Ausbreitung von Schallwellen beeinflussen. In
3.2.4 wird das Modell in den 2-dimensionalen Raum übertragen, und während
des Betriebs werden virtuelle 3D-Graphiken mit Hilfe des Head Mounted Dis”
plays“ eingefügt.
In Kapitel 3.3 wurden einige Ansätze für Wegenetze vorgestellt, welche man
aus unterschiedlichen Datenquellen generiert hat. Alle Wegenetze wurden jedoch von Hand erzeugt, nicht in einem automatisierten Prozess. Die Struktur
der Wegenetze ist bei allen Ansätzen ein ebener gewichteter Graph. Die gesuchten Wege wurden mittels Shortest Path“-Algorithmen berechnet.
”
3
VERWANDTE ARBEITEN
66
Im Rahmen dieser Diplomarbeit wird ein einfaches Raummodell vorgestellt,
das alle nötigen Informationen enthält, um ein Display auf einer freien Fläche
zu positionieren. Desweiteren wird mit dem Raummodell ein Wegenetz automatisch generiert, das noch die 3D-Informationen enthält.
4
LÖSUNGSANSATZ
4
67
Lösungsansatz
4.1
Allgemein
Der Avatar, und damit das projizierte Display, sollen sich frei auf den Oberflächen des Raums bewegen. Um dies gewährleisten zu können, muss das Display Informationen darüber besitzen, wie der Raum, in den es projiziert werden
soll, beschaffen ist. Nur wenn diese Informationen zur Verfügung stehen, kann
das Display in den gegebenen Grenzen der Oberflächen des Raums korrekt und
vollständig dargestellt werden. Die benötigten Informationen hierzu werden vom
Raummodell bereitgestellt. Somit ist es möglich zu entscheiden, wo das Display
dargestellt werden kann, jedoch noch nicht, wie es von einem Punkt des Raums
zu einem anderen gelangt.
Das Display kann sich nur von einem Punkt des Raums zu einem anderen
Punkt bewegen, wenn es Stück für Stück auf den Oberflächen entlang wandert.
Die Punkte, zu denen der Avatar gehen soll, stehen eventuell schon teilweise
fest. Es sind vielleicht besondere Punkte, an denen der Avatar stehen bleibt, um
dem Benutzer etwas erklären zu können. Damit die Bewegungen zwischen diesen Punkten einem gewissen Schema folgen und so zum einen für den Benutzer
nachvollziehbar, und zum anderen möglichst kurz sind, wird ihnen ein Wegenetz
zu Grunde gelegt. Mit Hilfe eines solchen Wegenetzes werden die Bewegungen
des Avatars systematisiert, er bewegt sich nun auf vorher berechneten Pfaden
über die Oberflächen im Raum. Des weiteren gibt es eine breite Auswahl an
Algorithmen zum Finden kürzester Wege in einem solchen Wegenetz, mit deren
Hilfe es möglich ist, diese Bewegungen zeitsparend und effizient zu optimieren.
Während einer solchen Bewegung sollte sich der Avatar der Verschiebung
des Displays entsprechend verhalten. Wenn das Display sich zum Beispiel horizontal bewegt, dann sollte der Avatar dieser Bewegung entsprechend, eine
Gehbewegung ausführen. Die Bewegungen des Avatars sind dabei aber nur ein
Teil des Eindrucks, den der Benutzer hat, die Reaktionen des Avatars auf den
4
LÖSUNGSANSATZ
68
Benutzer sind ein weiterer wichtiger Teil. Zur Interaktion mit dem Benutzer
muss der Avatar ständig auf das Verhalten des Benutzers reagieren, da dieser
unter Umständen den Avatar sonst nicht mehr beachtet. Um den schlimmsten
Fall zu vermeiden, das einseitige Beenden der Interaktion, beachtet das System
ständig die Aktionen des Benutzers und reagiert auf verschiedene Verhaltensweisen. Diese Reaktionen des Avatars folgen einer Logik, die dynamisch auf
die aktuellen Aktionen des Benutzers reagiert und das Verhalten des Avatars
steuert.
Die Logik berücksichtigt dabei zum einen das aktuelle Verhalten des Benutzers und zum anderen den aktuellen Zustand, in dem sich der Avatar befindet,
also was er gerade tut.
Im Weiteren wird nun genauer auf die einzelnen Bestandteile dieser Arbeit
eingegangen, beginnend mit dem Raummodell und dem darauf aufbauenden
Wegenetz, in dem sich der Avatar bewegen kann. Anschließend wird beschrieben, wie der Avatar seinen Weg durch den Raum findet, bevor dann mit dem
Konzept der Datensicherung dieses Kapitel abgeschlossen wird.
4.2
Raummodell
Das System muss Informationen über die Beschaffenheit des Raums haben,
damit es in der Lage ist, die projizierten Displays, und damit den Avatar, automatisch auf freie Flächen im instrumentierten Raum zu positionieren. Fehlen
diese Informationen, ist es dem System nicht möglich zu entscheiden, wo im
Raum eine freie Stelle ist, an der es ein Display positionieren kann. Das Fluid
”
Beam“-System benutzt zum Entzerren der Displays ein Raummodell, das aus
Ebenen besteht, die die Lage der Darstellungsflächen repräsentieren. Die Begrenzungen dieser Ebenen und eventuelle Hindernisse auf den Flächen sind in
diesem Modell nicht enthalten, da sie nicht relevant sind für den Prozess zum
Entzerren der projizierten Displays.
4
LÖSUNGSANSATZ
69
Durch das Fehlen der Informationen über den Raum ist es möglich, mit dem
Fluid Beam“-System ein Display an eine Stelle zu projizieren, an der eventuell
”
kein Platz für das Display ist. Auch ist es möglich, an eine Stelle zu projizieren, an der im virtuellen Raum eine Projektionsebene ist, aber im realen Raum
nicht. Dies kann passieren, wenn die Fläche im realen Raum dort schon begrenzt
ist und nicht genügend Platz für das Display ist oder dort keine reale Fläche
existiert. In beiden Fällen kommt es zu unschönen Effekten, die man vermeiden
möchte.
Um dieses Problem zu beheben wäre es möglich gewesen, entweder das
bestehende Modell des virtuellen Raums des Fluid Beam“-Systems um die
”
benötigten Informationen, wie zum Beispiel Position, Lage und Ausdehnung
von Objekten, Wänden, etc. zu erweitern oder ein neues Modell zu erzeugen,
das diese Informationen enthält.
Im Fall der Erweiterung des bestehenden Modells, wären das System zur
Entzerrung der dargestellten Displays und das System zur Steuerung des Avatars untrennbar miteinander verwoben. Eine klare Trennung zwischen Datenmodell und Darstellung wäre nicht mehr gegeben, welche aber in dem Systementwurf aus qualitativen Gründen des softwaretechnischen Designs einerseits
und der logischen Trennung zwischen Daten und Darstellung andererseits beibehalten werden sollte. Ein solcher modularer Aufbau hat den entscheidenden
Vorteil, dass man das System relativ leicht und komfortabel erweitern oder erneuern kann. Man muss in solch einem Fall nur ein Modul, zum Beispiel das
Datenmodell, verändern, kann aber die anderen Teile unberührt lassen. Ein weiterer Vorteil ist die Wiederverwendbarkeit, wenn zum Beispiel in einem anderen
Projekt nur ein Teil des Systems benötigt wird, kann dann nur der benötigte Teil
eingebunden werden, ohne den unnötigen Ballast anderer Module zu verwenden. Deshalb wurde ein neues Raummodell erzeugt, das nur die Informationen
über die Beschaffenheit des Raums beinhaltet und losgelöst von der Darstellung
4
LÖSUNGSANSATZ
70
der Displays ist.
Der Avatar benötigt auf Grund seiner Größe eine Fläche mit bestimmten
Ausmaßen, um gut erkennbar dargestellt werden zu können. Theoretisch ist es
möglich ein Display, und somit den Avatar, auf eine Kante, in eine Ecke oder
auf uneinheitliche Flächen zu projizieren. In einem derartigen Fall wäre es nicht
möglich das Bild so darzustellen, dass es aus allen möglichen Positionen und
Blickwinkeln verzerrungsfrei ist, was zu Irritationen führen würde. Diese Irritationen könnten sich in der Ablehnung des Systems niederschlagen. Schließlich
soll der Avatar mit dem Benutzer kommunizieren, was voraussetzt, dass der Benutzer auf den Avatar reagiert und diesen als Gesprächspartner“ akzeptiert.
”
Folglich sollte der Avatar auf einer einheitlichen Fläche projiziert werden mit
genügend Platz für das ganze Display.
Für das dem System zu Grunde liegende Raummodell bedeutet dies, dass
nur die Objekte eine wichtige Rolle spielen, die genügend Fläche für die Displays bieten. Ein absolut realitätsgetreues Raummodell, das alle Details, egal
wie klein sie auch sein mögen, beinhaltet, hat mehr Informationen als es eigentlich braucht. Des Weiteren ist die Erstellung eines derart genauen Modells eine
recht komplexe und zeitintensive Arbeit, die die Installation des Systems unkomfortabel und aufwendig gestaltet. Auch bei einer Veränderung des Raums,
wenn etwa ein Tisch oder ein anderes Objekt verstellt wird, werden die Korrekturen unter Umständen sehr aufwendig.
Unter Berücksichtigung dieser Aspekte wurde eruiert, was die entscheidenden Kriterien für das Gesamtsystem sind, also welche Objekte im Raum beim
Betrieb des Systems von Bedeutung und welche vernachlässigbar sein werden.
Die für das System wichtigen Objekte im Raum sind alle Oberflächen, die
genügend Platz bieten, um ein Display darauf zu projizieren. Aber nicht nur
die Fläche der Objekte ist relevant, sondern auch die Farbe (möglichst hell),
4
LÖSUNGSANSATZ
71
die Struktur (möglichst glatt) und die Form dieser Fläche. Projiziert man ein
Display zum Beispiel auf einen Wandteppich oder ein Bild, das an der Wand
hängt, kann der Benutzer das projizierte Bild nicht richtig oder nur sehr schwer
erkennen. Ist die Darstellungsfläche gekrümmt oder besteht aus einer anderen
nicht ebenen geometrischen Form, so ist das dargestellte Bild eher befremdlich
für den Benutzer. Da die projizierten Displays eine gewisse Größe haben, stellte
sich heraus, dass eine Approximation der Darstellungsflächen für die Anwendung ausreichend ist. Hieraus ergab sich, dass die ebenen Flächen im Raum,
das entscheidende Merkmal für das Raummodell sind. Ein wichtiges Kriterium
ist die Tatsache, ob auf einer solchen Fläche ein Bild so projiziert werden kann,
dass es für den Benutzer akzeptabel ist. Also ob die Fläche zum Darstellen
geeignet ist oder nicht; Farbe und Struktur der Fläche sind von Bedeutung.
So wurde das Raummodell nicht als exakte Abbildung der Wirklichkeit entworfen, sondern in einer vereinfachten Form, die die reale Welt abstrahiert darstellt.
Die für das Modell relevanten Objekte im Raum sind zum einen die Flächen,
durch die der Raum nach außen begrenzt ist, also überhaupt definiert wird. Im
Allgemeinen sind das die äußeren Wände und der Boden, welche auch in der
Realität fast immer plane Ebenen sind. Die Decke hingegen, ist von geringerer Bedeutung, da die Projektor-Kamera-Einheit im instrumentierten Raum so
aufgestellt ist, das die Decke nicht als Darstellungsfläche in Frage kommt. Die
Einheit hängt direkt unter der Decke, so dass der Winkel, in dem die Projektion
auf die Decke trifft, kein erkennbares Bild zulässt. Trotzdem wurde das Modell
so designt, dass die Decke eingebunden werden kann. In der Zukunft besteht
vielleicht die Möglichkeit, die Projektor-Kamera-Einheit so zu befestigen, dass
sie auch die Decke erreichen kann. Vielleicht wird das System auch in einem
Raum benutzt der hoch genug ist, so dass der Beamer in einer Höhe befestigt
wird, von der aus auf die Decke projiziert werden kann. Eine andere Möglichkeit wäre die Befestigung an einer Vorrichtung die während des Betriebs den
Beamer entsprechend vertikal verschieben kann.
4
LÖSUNGSANSATZ
72
Die im Raum platzierten Objekte sind die nächste wichtige Gruppe, da sie
den Raum im Inneren begrenzen. Diese Objekte können anders als die äußeren Wände und der Boden eine deutlich differenziertere Struktur aufweisen.
Ein Schreibtisch zum Beispiel ist je nach Bauart ein recht komplexes Gebilde mit vielen verschobenen Flächen, Rundungen, Löchern und ausstehenden
Wölbungen, wie etwa die Griffe an Schubladen. Für das System ist bei einem
Schreibtisch aber nur die Schreibplatte relevant, da sie der einzige Teil ist, der
genügend Fläche bietet, auf der das Display mit dem Avatar dargestellt werden
kann. Denn die Vorderseiten der Schubladen bieten ebenso zu wenig Fläche für
den Avatar wie die Tischbeine. Weiterhin wäre es unschön und auch unpraktisch, wenn ein Display unter den Schreibtisch projiziert werden würde. Folglich
genügt für das System die Information, dass an der Stelle, an der ein Schreibtisch steht, eine waagerechte Oberfläche ist, auf die projiziert werden kann. Da
alle weiteren Teile für eine Projektion des Bildes ungeeignet sind, können sie
weggelassen werden. Die Bereiche der Darstellungsflächen, die vom Schreibtisch
verdeckt werden (etwa ein Teil einer Wand, an der der Tisch steht), müssen als
Hindernisse modelliert werden. Analog hierzu sind die relevanten Informationen für die Repräsentation anderer Objekte im Raum ebenfalls Flächen, die
entweder als Darstellungsfläche dienen können oder Hindernisse darstellen.
Daraus ergibt sich die Schlussfolgerung, dass das Raummodell genügend Informationen für das System besitzt, wenn es die freien, darstellungstauglichen
und die nicht darstellungstauglichen Bereiche im Raum unterscheiden kann. Um
dies zu gewährleisten, genügt die Vereinfachung auf Flächen im Raum. Man
kann jedes Objekt im Raum approximativ darstellen, indem man es durch die
es umschließenden Flächen beschreibt. Das vom Projektor ausgesandte Licht
kann nicht durch ein Objekt hindurch, zum Beispiel in eine Schublade hinein.
Daraus ergibt sich eine weitere Vereinfachung. Da für den Projektor nur die
ihm zugewendeten Flächen relevant sind, genügen auch nur diese Flächen zur
Beschreibung des Raums. Alle Flächen, die auf der Rückseite oder im Inneren
eines Objekts liegen, sind unerreichbar und damit irrelevant.
4
LÖSUNGSANSATZ
73
Mit einfachen Flächen kann man also genügend Informationen abbilden, so
dass das System weiß, wo es ein Display, und damit den Avatar, platzieren
kann. Bleibt nun noch die Frage des Aussehens dieser Flächen zu klären. Die
einfachste ebene Fläche ist ein Rechteck. Mit einem einfachen Rechteck kann
man problemlos einen einfachen Tisch modellieren. Der Tisch besteht aus einer
Fläche oben, der Tischplatte, und darauf kann ein Display projiziert werden.
Die Vorderseite und gegebenenfalls die rechte und linke Seite des Tisches, wenn
diese vom Projektor aus sichtbar sind, sind ebenfalls Rechtecke, welche man
aber auch weglassen könnte, da man darauf nicht projizieren kann. Fertig ist
das Modell eines Tisches. Für einen einfachen Tisch mag dieses Modell völlig
ausreichen, aber betrachtet man einen modernen Schreibtisch, so erkennt man,
dass dieser unter Umständen nicht einfach ein Rechteck mit vier Ecken ist.
Viele Schreibtische können heute L-förmig sein oder haben Aussparungen an
einer oder mehreren Stellen. Dieses Modellierungsproblem könnte man beheben,
indem man mehrere Flächen aneinander modelliert. Ein Verfahren, das unter
Umständen recht aufwendig für denjenigen ist, der das Modell erstellen muss.
Eine weitaus komfortablere Lösung, als ein Objekt durch viele kleine Objekte
zu modellieren, ist die Form der modellierten Fläche dem Objekt anzunähern.
Denn Oberflächen in einem Raum sind nicht nur rechteckig, sie können ebenso
gut mehrere Ecken haben oder sogar rund sein. Solche Objekte zu modellieren,
kann dann eine sehr aufwendige Arbeit sein. Einfacher ginge es, wenn die modellierten Flächen sich approximativ an andere Flächen anpassen lassen, nicht
als Zusammenschluss vieler kleiner Flächen. Die Lösung hierzu war die Erweiterung des einfachen viereckigen Flächenmodells durch die Möglichkeit, eine
Fläche durch beliebig viele Kanten definieren zu können, die jeweils senkrecht
aufeinander stehen. Die Vereinfachung von senkrecht aufeinander stehenden
Begrenzungen der Flächen ist vollkommen ausreichend für die Genauigkeit des
Raummodells, da die projizierten Displays einfache viereckige Rechtecke sind.
Die Genauigkeit der modellierbaren Flächen im Vergleich zu den realen Objekten ist mehr als ausreichend für das System, selbst bei relativ hoher Abstraktion,
4
LÖSUNGSANSATZ
74
und kann je nach Belieben bei der Erstellung des Raummodells verfeinert werden. Eine zu genaue Abbildung der realen Welt ist jedoch nicht nötig für die
Darstellung des Avatars.
Die Darstellungsflächen werden in zwei Klassen eingeteilt, je nach der Möglichkeit ihrer Positionierung. Zum einen die Wände des Raums, welche den Raum
im gesamten begrenzen und jeden Raum definieren. Andere Flächen, wie zum
Beispiel ein Tisch oder eine Stellwand, können dagegen sehr leicht verschoben
werden. Auch müssen solche freien Flächen keinen direkten Bezug zu einer anderen Fläche haben. Eine Stellwand, wie auch ein Tisch zum Beispiel, kann
sowohl an einer Wand stehen als auch völlig frei irgendwo im Raum. Trotzdem
können beide, wie eine Wand, als Projektionsfläche für ein Display genutzt werden. Für eine Positionierung eines Displays spielt dieser Unterschied also keine
Rolle und benötigt auch keinerlei solche Unterscheidung. Das Ziel dieser Arbeit
ist jedoch eine freie und bewegliche Positionierung von Displays, mit dem Ziel
im Hintergrund, dass der Avatar sich möglichst ohne Unterbrechung durch den
Raum auf den vorhandenen Flächen bewegen kann. Da der Avatar sich seinen
Weg über die Flächen des Raums suchen muss, ist die Information darüber
nötig, welcher Art die Flächen sind, die er bevorzugt benutzt. Die Bewegungen
des Avatars sollen für den Benutzer nachvollziehbar und im besten Fall voraussehbar sein, so dass der Benutzer nicht unangenehm überrascht wird und
den Avatar aus den Augen verliert. Die logische Unterscheidung zwischen einer stationären Fläche und einer eventuell mobilen ist vom Gesichtspunkt der
Wegsuche also sinnvoll.
Im realen Leben, wie auch im instrumentierten Raum, besteht unsere Umgebung nicht nur aus freien Flächen. Es existieren in fast jeder Umgebung
Hindernisse unterschiedlichster Art, die der Positionierung und Bewegung von
projizierten Displays gewisse Grenzen setzen. Solche Hindernisse können die
verschiedensten Dinge sein, wie zum Beispiel Fenster, Türen, Regale, Lampen,
Bilder etc. Wird ein Display beispielsweise auf ein Fenster projiziert, so ist das
4
LÖSUNGSANSATZ
75
Bild für den Benutzer fast nicht sichtbar, folglich muss man wissen, wo sich ein
Fenster oder ein anderes Hindernis befindet, damit man nicht dorthin projiziert.
Neben Fenstern und Türen sind an Wänden aufgehängte Bilder die wahrscheinlichsten Hindernisse und teilen mit Fenstern und Türen die Eigenschaft, dass sie
meist rechteckig sind. Rechteckige Flächen als Hindernisse in das Raummodell
zu integrieren, erhöht nicht den Schwierigkeitsgrad der Raummodellierung.
Ein Hindernis muss nicht notwendigerweise ein viereckiges flaches Objekt
wie eine Tür oder ein Fenster sein, sondern kann auch ein Gegenstand auf einem Tisch oder ein Möbelstück im Raum sein. Das notwendige Kriterium für
die Klassifikation eines Objekts als Hindernis ist die Tatsache, dass sich das
Objekt nicht als Darstellungsfläche für ein Display eignet, egal welche Form
das Objekt hat. Mit anderen Worten: eine Computertastatur oder ein Globus
auf einem Schreibtisch sind ebenso Hindernisse wie ein Gemälde, das an der
Wand hängt. Nur ist ein Globus kein flaches Objekt, und ihn mit flachen Scheiben approximativ zu modellieren, birgt einen hohen und damit unkomfortablen
Arbeitsaufwand. Für die Positionierung eines Display ist die genaue Form des
Globus jedoch uninteressant, nur seine Größe und seine Position in Bezug zu
den ihn umgebenden Flächen auf denen ein Display projiziert werden kann sind
von Belang.
Das Raummodell soll so einfach und prägnant wie möglich sein, womit dann
auch die Hindernisse so einfach und übersichtlich wie möglich modelliert werden
sollten. Da von Hindernissen nur ihr Projektionsschatten, also der Bereich der
von dem Hindernis auf den Darstellungsflächen verdeckt wird, für das Modell
relevant ist, sollte auch nur dieser modelliert werden. Der Projektionsschatten
von Objekten ist eine von den Ausmaßen des Objekts begrenzte Teilfläche auf
einer Darstellungsfläche. Ein Hindernis als begrenzte Fläche ist mit der oben genannten Approximation von rechtwinklig aufeinander stehenden Kanten leicht
und genau zu modellieren und passt als solche logisch zu dem Konzept des aus
Flächen bestehenden Raummodells.
4
LÖSUNGSANSATZ
76
Ein kleiner Nachteil dieser Lösung ist der eher selten auftretende Fall, dass
ein Hindernis sich über verschiedene Darstellungsflächen erstreckt. Dann ist es
notwendig, das Hindernis als verschiedene Flächen zu modellieren, jeweils einmal auf jeder Darstellungsfläche. Da dieser Fall aber eher selten ist und die
Vorteile des einfachen und gut strukturierten Modells überwiegen, wurde dieser
Nachteil beim Entwurf des Raummodells in Kauf genommen.
4.3
Wegenetz
Im folgenden wird das Wegenetz näher erläutert, das den Bewegungen des Avatars zu Grunde liegt.
Der Avatar soll sich frei auf den Flächen des Raums bewegen können. Die
Informationen über die Beschaffenheit des Raums genügen, um feststellen zu
können, an welchen Stellen das Display, und damit der Avatar, positioniert werden kann. Punkte, an denen das Display positioniert werden kann, reichen aus,
um einen Weg zu generieren. Dieser Weg basiert dann nur auf den lose auf den
Flächen befindlichen Punkten und weicht höchstwahrscheinlich von einem optimalen Weg deutlich ab, wenn der Avatar zum Beispiel Hindernisse umlaufen
muss. Damit die Bewegungen des Avatars über die Darstellungsflächen nicht
chaotisch oder unnötig lang sind, müsste das System zusätzliche, strukturelle
Informationen über mögliche Wege besitzen.
Mit dem Wissen über mögliche Wege durch den Raum ist es möglich, aus
den sich stellenden Möglichkeiten eine intelligente“ Auswahl zu treffen. Ein
”
Wegenetz muss sich über den gesamten Raum erstrecken und alle Darstellungsflächen miteinander verbinden, egal ob sie Wände oder frei im Raum befindliche Flächen sind. Gleichzeitig müssen die Hindernisse berücksichtigt werden
sowie die verschiedenen Übergänge zwischen den Darstellungsflächen. Hindernisse müssen entsprechend ihrer Lage gemieden oder passiert werden können.
Die Strategie hierzu wird im nächsten Unterkapitel erläutert. Die unterschied-
4
LÖSUNGSANSATZ
77
lichen Darstellungsflächen und die Übergänge zwischen ihnen müssen ebenfalls
berücksichtigt werden, um eine möglichst homogene Bewegung zu gewährleisten. Werden die verschiedenen Übergänge gleich behandelt, also keine Unterschiede berücksichtigt, so verhält sich der Avatar beim Wechseln von einer
Wand zu einer anderen genauso wie beim Wechseln von einer Wand zu einer
freien Fläche. Die freie Fläche ist aber im Gegensatz zu einer benachbarten
Wand unter Umständen ohne direkten räumlichen Kontakt zu der Wand und
steht in einiger Entfernung dazu. Eine andere Möglichkeit wäre, dass die freie
Fläche waagerecht ist, also ganz anders im Raum liegt als eine Wand. In beiden
Fällen könnte der Benutzer durch das Verhalten des Avatars irritiert werden,
wenn dieser sich stets gleich verhält, egal wo er sich gerade befindet.
In der instrumentierten Umgebung gibt es einige besondere Punkte, zum
Beispiel in der Nähe von technischen Geräten, die der Avatar dem Benutzer
erklären soll, oder andere markante Stellen und Einrichtungsgegenstände. Diese Punkte im Raum sind durch die Einrichtung vorgegeben und bestimmen in
gewissem Maße die Bewegungen des Avatars. Um den Benutzer zielsicher und
direkt durch den Raum zu führen, braucht der Avatar ein strukturiertes Gerüst,
mit dessen Hilfe er navigieren kann.
Das Wegenetz, das dem Avatar als Gerüst für seine Gänge durch den Raum
dienen soll, besteht klassisch aus Knoten und Kanten. Die Knoten sind die
Punkte, an denen der Avatar stehen bleiben kann, wenn die Situation es erfordert. Die Kanten verbinden die Knoten miteinander und beschreiben folglich
den Weg oder zumindest die Teile, aus denen sich der Weg zusammensetzt. Ein
weiterer Vorteil eines derartigen Wegenetz ist die Vielzahl an Algorithmen, die
es zum Finden von Wegen in solchen Wegenetzen gibt.
Ein Wegenetz bestehend aus Knoten und Wegkanten, das alle Darstellungsflächen bedeckt und einfach nur miteinander verbindet, reicht jedoch nicht aus.
Es müssen weitere Informationen aus dem Raummodell übernommen werden,
4
LÖSUNGSANSATZ
78
um die genannten Probleme zu bewältigen. So enthalten die Knoten Informationen darüber, auf welcher der Darstellungsflächen des Raums sie liegen und ob
sie für eine bestimmte Aufgabe besonders geeignet sind, wie zum Beispiel das
Erläutern eines Einrichtungsgegenstandes, neben dem der Knoten liegt. So weiß
das System, wann der Avatar gut positioniert ist und was in der Nähe ist. Die
Kanten des Wegenetz sind gewichtet, so dass der Algorithmus zum Finden eines
Pfads von einem zu einem anderen Punkt den besten und nicht einen beliebigen Weg findet. Durch die Gewichtung beinhaltet das Wegenetz Informationen
über die Lage der einzelnen Knoten zueinander. So sind horizontal verlaufende
Kanten anders gewichtet als vertikal verlaufende. Weiterhin haben die Kanten
Informationen über ihre eigene Lage durch ihre Gewichtung. So haben Kanten,
die innerhalb einer Darstellungsfläche verlaufen, eine andere Gewichtung als jene, die zwei benachbarte Darstellungsflächen miteinander verbinden. Auch sind
die Gewichte von Kanten zwischen verschiedenen Übergängen von zwei Darstellungsflächen unterschiedlich. Zum Beispiel ist das Gewicht einer Kante, die
zwei benachbarte Wände verbindet, ein anderes als das einer Kante, die eine
Wand und eine freie Darstellungsfläche miteinander verbindet.
Auf diese Weise ist es gelungen, Informationen aus dem Raummodell in das
Wegenetz zu übertragen, mit deren Hilfe der Avatar optimal bewegt und die
Art der Bewegung gesteuert werden kann. Denn eine horizontale Bewegung des
Avatar ist für den Benutzer etwas völlig anderes als zum Beispiel eine vertikale.
Eine Gleichbehandlung der verschiedenen Bewegungsmöglichkeiten würde zu
einem unrealistischen Verhalten des Avatars führen und so eventuell zu einer
ablehnenden Haltung des Benutzers gegenüber dem System.
Die Entscheidung, ein Wegenetz als Grundlage der Bewegungen des Avatars
zu verwenden, wodurch diese dann strukturiert und optimiert werden können,
war naheliegend. Aber wie sollte das Wegenetz gestaltet werden? Wie sollen
sich die Knoten und Kanten über die Darstellungsflächen verteilen? Die Struktur legt schließlich die Bewegungen des Avatars fest. Der Avatar sollte sich
4
LÖSUNGSANSATZ
79
möglichst frei überallhin bewegen können. Eine Möglichkeit wäre, die Knoten
nur an den Rändern der Flächen und um die Hindernisse herum zu verteilen, wodurch die markanten Punkte im Raum identifiziert wären. Der Avatar
könnte dann zwischen ihnen frei herumspazieren. Dann käme es aber häufig
zu der Situation, dass der Avatar sich auf einer Diagonalen durch den Raum
bewegen würde, zum Beispiel von einem Punkt links unten zu einem anderen
Punkt rechts oben. Einerseits stand eine dazu passende Animation nicht zur
Verfügung, und andererseits wäre eine solche Bewegung nur äußerst schwer zu
synchronisieren. Das Resultat wäre ein Avatar der eckig und wackelnd eine imaginäre Treppe erklimmt. Die Diagonalbewegung als Idee ist gut, aber bei der
Umsetzung wären unschöne Nebeneffekte aufgetreten, die bei einem Benutzer
wohl auf Unverständnis gestoßen wären. Horizontale und vertikale Bewegungsabschnitte sind etwas einfacher mit der Animation zu realisieren und zu synchronisieren. Sie lassen den Avatar leicht voraussehbare Wege gehen, was dem
Benutzer und so der Akzeptanz des Systems entgegen kommt. So ergibt sich
die Struktur des Wegenetz als ein Netz von nebeneinander und übereinander
liegenden Knoten, von denen je zwei horizontal oder vertikal benachbarte Knoten mit einer Kante verbunden sind. Die Abstände zweier benachbarter Knoten
voneinander können sowohl in horizontaler wie auch in vertikaler Richtung voreingestellt werden, damit sich das Wegenetz an die Begebenheiten des Raums,
in dem es verwendet wird, anpassen lässt. Ein weitläufiger Raum, der aus großen
viereckigen freien Flächen mit wenigen Hindernissen besteht, benötigt ein weniger dichtes Wegenetz als ein Raum mit sehr verwinkelten Flächen, auf denen
sich viele Hindernisse befinden, die umlaufen werden müssen. Der horizontale
bzw. vertikale Abstand zwischen zwei benachbarten Knoten ist im gesamten
Wegenetz einheitlich. Dies schränkt die Freiheit der Platzierung der einzelnen
Knoten und damit der stationären Positionen des Avatars zwar etwas ein, da so
eine beliebige Position im Raum nicht mehr möglich ist. Dieser Nachteil kann
jedoch durch geeignetes Wählen der horizontalen und vertikalen Abstände der
Knoten so weit kompensiert werden, dass der Benutzer keinen Unterschied zwischen einem beliebig und einem auf dem Wegenetz platzierten Display merkt.
4
LÖSUNGSANSATZ
80
Falls es erwünscht ist, kann das Wegenetz so dicht gewählt werden, dass die
Knoten weniger weit voneinander entfernt sind als die Größe des Avatars auf
einer Darstellungsfläche.
Die recht starre Struktur des Wegenetzes dient also einerseits der besseren Synchronisation mit der Animation des Avatars, die der besseren Optik im
Betrieb und somit dem Benutzer entgegenkommt. Andererseits werden durch
diese Struktur die Wege des Avatars durch den Raum deutlicher strukturiert,
wodurch die Benutzbarkeit des Systems verbessert wird, was ebenfalls dem Benutzer entgegenkommt.
Abbildung 22: Wegenetz auf einer Wand mit Hindernissen. Rot: die Knoten,
Blau: die Kanten, Gelb: die Hindernisse (v.l.n.r.: eine Tür, ein Bild, ein Tisch
mit Lampe)
Unter anderem hat das Wegenetz die Aufgabe, den Avatar sicher um Hindernisse herum zu leiten, was bedeutet, dass beim Umgehen von Hindernissen der
4
LÖSUNGSANSATZ
81
Avatar nicht mit dem Hindernis zusammenstoßen darf. Dazu sind die Knoten
in der Nähe eines Hindernisses in einem genügend großen Abstand vom Hindernis platziert, so dass der Avatar problemlos herumgehen kann. Ebenso wird
am Rand von Darstellungsflächen verfahren, wodurch vermieden wird, dass ein
Teil des Avatars auf einer Wand ist und der Rest von ihm auf einer anderen
Wand. In Abbildung 22 ist eine Wand mit Hindernissen und einem Wegenetz
dargestellt.
Mit Hilfe des Wegenetz steht dem Avatar ein skalierbares System von Punkten zur Verfügung, an denen er mit dem Benutzer kommunizieren kann, und
eine Vielzahl an dynamisch auswählbaren möglichen Verbindungen zwischen
diesen Punkten. Wie das System eine Menge solcher Verbindungen auswählt,
um den Avatar von seinem Standort zu einem beliebigen Zielort zu bewegen,
wird im nächsten Kapitel erläutert.
4.4
Wege durch den Raum
Das im vorherigen Kapitel beschriebene Wegenetz stellt die Struktur, mit deren Hilfe der Avatar durch den Raum navigieren kann. Die Ausgangssituation
zum Finden eines Weges ist wie folgt: Der Avatar steht an einer bestimmten
Stelle, dem Startpunkt, dessen Koordinaten bekannt sind, und soll sich zu einem Ziel bewegen, dessen Koordinaten ebenfalls bekannt sind. Diese Start- und
Zielkoordinaten müssen nicht unbedingt deckungsgleich mit den Koordinaten
eines Knotens aus dem Wegenetz sein. Eventuell sind es sogar Koordinaten
eines Hindernisses im Raum, einem Einrichtungsstück vielleicht, zu dem der
Avatar gehen soll, damit er dem Benutzer etwas über dieses Einrichtungsstück
erzählen kann. Die erste Aufgabe beim Finden eines geeigneten Weges zu diesen
Koordinaten ist folglich die Identifizierung der nächstmöglichen freien Fläche
bei den Zielkoordinaten. An den Koordinaten dieser freien Fläche befindet sich
ein Knoten des Wegenetz, da sich das Wegenetz über die freien Flächen im
Raum erstreckt. Der Zielpunkt des gesuchten Weges ist im Allgemeinen also
4
LÖSUNGSANSATZ
82
der nächste Knoten bei den Zielkoordinaten. Einfacher ist es natürlich, wenn
der Avatar sich nicht zu einem beliebigen Punkt im Raum, sondern zu einem
bestimmten Punkt bewegen soll, von dem man weiß, dass dort ein Knoten liegt.
Damit sind Startknoten und Zielknoten des zu findenden Weges bekannt,
ein genau definiertes Wegenetz steht zur Verfügung, und alles was nun noch
fehlt ist der optimale Weg vom Start zum Ziel.
Das sich stellende Problem, einen möglichst optimalen Weg in einem Wegenetz zu finden, ist hinlänglich bekannt, und es existieren Algorithmen in den
verschiedensten Ausprägungen zur Lösung dieses Problems. Benannt wird das
Problem in der Fachliteratur als Single Source Shortest Paths Problem. Man
sucht von einem Punkt, der Quelle, ausgehend die kürzesten Wege zu den anderen Punkten. In [Cormen] wird weiter spezifiziert, so dass das Problem exakt
auf das hier zu lösende Problem zutrifft unter dem Namen Single Pair Shortest
Path Problem. Man sucht den kürzesten Pfad von einer Quelle zu einem Ziel.
Die Autoren in [Cormen] merken an, dass diese weitere Spezialisierung des Problems keine Verbesserung bei der Laufzeit der besten Algorithmen im Vergleich
mit dem allgemeineren Problem erreicht. Die Algorithmen lösen das Problem
des kürzesten Pfads auf einem Graphen bestehend aus Knoten und gewichteten
Kanten. Das Wegenetz ist ein eben solcher Graph mit Knoten und Kanten. Bei
dem verwendeten Wegenetz ergeben sich die Kantengewichte jedoch nicht aus
der Entfernung zwischen den Knoten, die die Kante verbindet, sondern aus der
Lage der Kante, was aber für den Algorithmus keine Rolle spielt. Wichtiger für
den Algorithmus ist die Frage nach der Größe der Kantengewichte, da manche
Algorithmen nur auf Graphen angewendet werden können, deren Kantengewichte nicht negativ sind.
Da die Kantengewichte im Wegenetz positiv gewählt wurden, kann man
zum Finden eines kürzesten Pfads einen Algorithmus für diesen speziellen Fall
wählen, der nur positive Kantengewichte zulässt. Der wohl bekannteste Algo-
4
LÖSUNGSANSATZ
83
rithmus zu diesem Problem ist wahrscheinlich Dijkstra’s Algorithmus“. Wie in
”
[Cormen] sehr schön erläutert, beginnt der Algorithmus vom Startknoten aus
und geht iterativ zu den jeweils aussichtsreichsten benachbarten Knoten weiter.
Bei jeder Iteration aktualisiert er die Kosten der bisher gefundenen Wege zu den
bisher besuchten Knoten so, dass er sich für jeden besuchten Knoten nur den bis
zu diesem Knoten kürzesten Weg merkt. Den jeweils aussichtsreichsten Knoten
den der Algorithmus bei jeder Iteration nimmt um fortzufahren, wählt er mit
Hilfe einer Priority Queue. In dieser Priority Queue sind die Knoten enthalten,
deren kürzester Pfad vom Startpunkt aus bislang noch nicht ermittelt ist. Auf
diese Weise ermittelt der Algorithmus den kürzesten Weg vom Startpunkt aus
zu jedem anderen Knoten im Netzwerk. Ist der kürzeste Weg zum Zielknoten
ermittelt, kann man den Algorithmus auch schon abbrechen, bevor er das ganze Wegenetz durchlaufen hat, da die Kosten für Wege zu allen anderen Knoten
nicht von Interesse sind.
Die so gefundenen Wege durch das Wegenetz sind bezogen auf die Kantengewichte die kürzesten Wege zwischen jeweils dem Startknoten und dem
Zielknoten. Wie diese Wege für den Benutzer in den Bewegungen des Avatars
aussehen, ist so noch nicht sicher. Es kann durchaus sein, dass der kürzeste Weg
zwischen zwei Punkten treppenförmig auf einer Wand entlang führt oder über
viele Kanten und Ecken im Raum geht. Diese unschönen Wege werden vom
Algorithmus nicht gewählt, da die Werte der Kantengewichte so gesetzt sind,
dass zum Beispiel horizontale Wege den vertikalen bevorzugt werden. Gleiches
gilt für andere unschöne Wegstücke, wie Kanten oder Ecken, die auf Grund der
hohen Kantengewichte, wenn möglich, gemieden werden.
4.5
Avatar Verhalten
Das Raummodell und das Wegenetz stellen sicher, dass das System weiß, wo
es den Avatar hinbewegen soll und wie es ihn dorthin führt. Aber wann er sich
bewegen oder stehenbleiben oder reden oder auch einfach nur warten soll, ist
4
LÖSUNGSANSATZ
84
nicht klar. Wenn der Avatar ein vorherbestimmtes Programm abspulen soll, ohne auf seine Umwelt zu reagieren, wie es der VRI (siehe 2.8) bisher tat, so muss
man dieses Programm einmal erstellen und kann es dann jederzeit abspielen.
Der Avatar wird jedesmal dem Programmablauf entsprechend so handeln wie
immer.
Ziel dieser Arbeit ist es, den Avatar aus seinem engen Korsett zu befreien,
also nicht einen bestimmten Ablauf immer stur befolgen zu lassen. Er soll in der
Lage sein, auf die Aktionen des Benutzers so zu reagieren, dass es zu einfachen
Interaktionen zwischen ihm und dem Benutzer kommen kann. Schließlich soll
der Avatar dem Benutzer die Umgebung erklären können und mit dem Benutzer zusammen durch den Raum wandern. Dabei ist es wenig hilfreich, wenn
der Avatar zum Beispiel auf der einen Wand ist und etwas erklärt, und der
Benutzer gerade vor der entgegengesetzten Wand steht und sich etwas anderes
anschaut.
Um auf den Benutzer reagieren zu können, muss der Avatar Informationen
über ihn und dessen Verhalten haben. Mit Hilfe der in Kapitel 2.3.5 beschriebenen Infrarotbaken wird die Position des Benutzers ermittelt. Die Position
des Avatars kennt das System und kann sie in Relation zu der Position des
Benutzers setzen, um auf dessen Bewegungen reagieren zu können. Wenn der
Benutzer sich zum Beispiel vom Standort des Avatars entfernt, so kann der
Avatar darauf reagieren, indem er dem Benutzer folgt.
Der in Kapitel 2.3.6 beschriebene digitale Kompass gibt die Blickrichtung
oder zumindest die Orientierung des Benutzers an. Blickt der Benutzter etwa
nicht in die Richtung des Avatars, so könnte der Avatar darauf reagieren und
den Benutzer auf sich aufmerksam machen. Mit den beiden Anhaltspunkten
Position“ und Blickrichtung des Benutzers“ kann der Avatar einfache Verhal”
”
tensweisen des Benutzers erkennen und entsprechend darauf reagieren.
4
LÖSUNGSANSATZ
85
Das Verhalten des Avatars ist durch seine eigene Tätigkeit und das Verhalten des Benutzers bestimmt. Er selbst kann verschiedene Tätigkeiten durchführen,
wie zum Beispiel reden. Diese Tätigkeiten werden durch Zustände beschrieben,
zwischen denen der Avatar wechseln kann. Auslöser für das Wechseln von einem
in einen anderen Zustand sind entweder Aktionen des Benutzers oder Aktionen
des Avatars selbst. Ein Beispiel hierfür wäre der Zustand Reden“, der been”
det wird, sobald der Avatar mit einer Äußerung fertig ist. Das Verhalten wird
in einem Modell bestehend aus Zuständen und Übergängen zwischen diesen
Zuständen beschrieben. Ein solches aus eindeutigen Zuständen und eindeutigen Übergängen bestehendes Modell lässt sich leicht als ein deterministischer
endlicher Automat (DEA) darstellen.
Ein DEA ist nach [Sipser] ein Fünftupel bestehend aus
• den Zuständen (endliche Menge),
• dem Alphabet (endliche Menge),
• der Übergangsfunktion (definiert Zustandswechsel),
• einem Startzustand,
• und einer Menge von akzeptierenden Zuständen, die auch Endzustände
genannt werden.
Der Avatar kann sich in endlich vielen verschiedenen Zuständen befinden. Das
Alphabet besteht in diesem Fall aus den möglichen Ereignissen, die eintreffen
können, wodurch von einem Zustand in einen anderen Zustand gewechselt werden kann. Die Übergangsfunktion beschreibt die möglichen Übergänge zwischen
je zwei Zuständen, d.h. von welchem Zustand in welchen anderen Zustand beim
Eintreffen eines Ereignis gewechselt wird. Der Startzustand ist der Zustand nach
der Initialisierung, und die Endzustände sind die Zustände, von denen aus das
Programm beendet werden darf. Was die einzelnen Elemente im Speziellen bezogen auf den Avatar sind, wird in Kapitel 5 erläutert.
Die Übergänge zwischen den einzelnen Zuständen werden durch Ereignisse
ausgelöst, die entweder vom Avatar oder vom Benutzer kommen. Dabei kann es
4
LÖSUNGSANSATZ
86
durchaus passieren, dass mehrere dieser Ereignisse gleichzeitig eintreten, wobei
das Problem aufkommt zu entscheiden, was der Avatar nun tun soll. Benötigt
wird also eine Entscheidungshilfe, die die auftretenden Ereignisse einordnet
und bestimmt, was als nächstes getan werden soll. In der Künstlichen Intelligenz existieren verschiedene Ansätze zum Treffen solcher Entscheidungen, die
im Verlauf der Zeit immer feiner und mit steigender Intelligenz“ auch immer
”
komplexer geworden sind. Da das Zustandsmodell recht überschaubar ist und
auch die Komplexität der Ereignisse nur eine begrenzte Anzahl an Möglichkeiten aufweist, genügt ein einfaches Entscheidungsmodell zum Auswählen der
nächsten Tätigkeit. Ein solches eher einfaches aber dennoch sehr robustes und
erfolgreiches Modell ist die in der Robotik benutzte Subsumption. Subsumption ist eine Strategie, mit der aus verschiedenen eintreffenden Ereignissen nur
das wichtigste herausgefiltert wird und dieses dann die nächste Handlung eines
Roboters beeinflusst. Dabei werden den möglichen Ereignisse Prioritäten zugeordnet, so dass ein wichtigeres Ereignis unwichtigere Ereignisse und damit das
von diesen ausgelöste Verhalten unterdrückt. So werden auch die Übergänge
zwischen den einzelnen Zuständen beim Verhalten des Avatars vollzogen, indem unwichtigere eingetroffene Ereignisse unterdrückt werden.
4.6
Datensicherung
Das Raummodell und das Wegenetz sind zwei essenzielle Teile des Systems,
die wichtige Informationen enthalten, ohne die der Avatar sich nicht bewegen
kann. Da ein System normalerweise nicht ununterbrochen läuft, sondern von
Zeit zu Zeit ausgeschaltet wird, ist es notwendig, diese Daten zu sichern. Es sei
denn, man möchte bei jedem Systemstart das Raummodell und das Wegenetz
neu modellieren und initialisieren, was aber irrational wäre. Um die Datensicherung möglichst effizient zu machen, werden nur die notwendigen Daten
gespeichert und alles was automatisch, also ohne Aufwand generiert werden
kann, wird weggelassen. Das Raummodell ist der zentrale Teil des Ganzen und
kann folglich nicht weggelassen werden, wohingegen das Wegenetz dynamisch
4
LÖSUNGSANSATZ
87
anhand der Daten des Raummodells erzeugt wird. Die Daten des Wegenetz sind
folglich redundant und müssen auch nicht gespeichert werden.
Das Raummodell besteht aus verschiedenen Objekten, die Informationen
enthalten und unterschiedliche Eigenschaften besitzen. Diese Informationen müssen
in einer strukturierten Form gespeichert werden, die robust ist gegen äußere
Einflüsse, wie etwa spätere Erweiterungen des Systems. Das Raummodell als
serialisiertes Java-Objekt zu speichern, wäre keine gute Idee, denn sobald etwas
an der Datenstruktur geändert wird, können ältere Raummodelle nicht mehr
gelesen werden. Eine Erweiterung des Systems wäre so nur schwer möglich.
In den letzten Jahren erfreut sich XML wachsender Beliebtheit, als eine
Möglichkeit, Daten strukturiert und vom Datenmodell unabhängig zu speichern. Ein Vorteil von XML ist die gute Lesbarkeit der XML-Dateien, die man
problemlos mit jedem Texteditor anpassen kann. So ergibt sich die Möglichkeit,
das Raummodell nicht nur zu speichern, sondern bei Bedarf auch einfach und
unkompliziert anzupassen, etwa wenn sich etwas an der Anordnung der Objekte
im Raum geändert hat.
5
IMPLEMENTIERUNG DES SYSTEMS
5
89
Implementierung des Systems
5.1
Sprache
Zum praktischen Erstellen des im letzten Kapitel vorgestellten Raummodells,
des Wegenetzes sowie des Verhaltens des Avatars habe ich mich für die Programmiersprache Java [JAVA] entschieden, die in Version 1.4.2 benutzt wurde.
Dies lag nahe, da die Systeme des Fluidum Projekts aus Kapitel 2, mit denen
das im Rahmen dieser Arbeit erstellte System interagiert, ebenfalls in Java geschrieben sind. Zur Integration des Systems wurde es in ein Java RMI-Interface
(Java Remote Method Invocation [RMI06]) eingebettet, so dass es auf einem
beliebigen Rechner gestartet werden und über ein Netzwerk auf die anderen
Komponenten, wie zum Beispiel die Fluid Beam-Applikation, zugreifen kann.
Die Daten des Raummodells werden in einer XML-Datei [XML06] gespeichert, die mit Hilfe des Apache Xerces XML Parsers [Apache06] erstellt, manipuliert und gelesen wird.
5.2
Portierbarkeit
Das System läuft in der Testumgebung im instrumentierten Raum auf einem
Athlon 2.0+ GHz Rechner mit Windows XP als Betriebssystem. Der Rechner
ist an das lokale Gbit-Netzwerk des Lehrstuhls für Künstliche Intelligenz von
Prof. Wahlster angeschlossen, worüber er mit den anderen Komponenten des
Fluidum-Projekts kommuniziert. Java-Bytecode ist auf allen Java Virtual Machines ausführbar, er muss jedoch in ein RMI-Interface integriert sein. XML ist
als ein (...) Standard zur Dokumentenauszeichnung“ [Harold] der auf einfachen
”
Textdokumenten basiert, problemlos portierbar.
5
IMPLEMENTIERUNG DES SYSTEMS
5.3
90
Objektmodell
In Abbildung 23 ist das grobe Objektmodell des Systems auf der Klassenebene zu sehen. Das dargestellte Objektmodell erhebt keinesfalls den Anspruch
der Vollständigkeit, da aus Gründen der Übersicht nur die zentralen Klassen
dargestellt sind. Diese Darstellung soll einen Überblick über die wichtigsten
Klassen und deren Beziehungen zueinander geben, nicht über den Aufbau einzelner Klassen.
Abbildung 23: Das Klassenmodell mit den Hauptklassen des Systems
Die Klasse PositioningManager ist die ausführbare Hauptklasse des Systems. Sie benutzt alle relevanten Teile und fügt diese zu einem Ganzen zusammen. Alle Informationen zur Steuerung des Avatars, wie unter anderem seine
Position, die Position und Blickrichtung des Benutzers, das Wegenetz, etc. lau-
5
IMPLEMENTIERUNG DES SYSTEMS
91
fen hier zusammen, werden entsprechend verteilt und genutzt. So kapselt die
Klasse PositionFinder die Funktionalität zur Bestimmung der Position und
Blickrichtung des Benutzers. In der Klasse Room wird das Raummodell gekapselt, von dem das System genau eines hat, eben das des Raums, in dem
es installiert ist. Ein Raum besteht aus beliebig vielen Wänden, die durch die
Wall-Klasse repräsentiert werden. In einem Raum können sich ebenfalls beliebig viele freie Darstellungsflächen befinden, die durch die Klasse Plane repräsentiert werden. Wände und freie Darstellungsflächen können jeweils beliebig
viele Hindernisse besitzen, instantiiert mit der Klasse Obstacle. Das Wegenetz,
bestehend aus beliebig vielen Knoten (PathNode) und beliebig vielen Kanten
(PathEdge), wird repräsentiert durch die PathNetwork-Klasse. Um einen
Weg durch das Wegenetz zu finden, benutzt die Hauptklasse den Single Source
Shortest Path-Algorithmus, der in der Klasse PathFinder gekapselt ist und
zur Pfadberechnung eine Instanz der PathNetwork-Klasse benötigt. Mit der
Klasse Behaviour wird das logische Verhalten des Avatars gesteuert, das dann
von der Klasse Movements in räumliche Bewegungen umgesetzt wird. Dazu
benutzt sie die Klasse DisplayHandler, welche die Verbindung zum VRI System kapselt.
5.4
5.4.1
Raummodell
Raum
Das Raummodell repräsentiert den Raum, in dem das System installiert ist und
in dem sich der Avatar bewegen soll. Da die exakte Abbildung des realen Raums
nicht nötig ist, wird der Raum abstrahiert modelliert. Ein Raum ist dreidimensional, besteht aus Wänden, freien Darstellungsflächen und Hindernissen, die
im Folgenden detailliert beschrieben werden.
Das Room-Objekt beschreibt den Raum, kennt alle Wände und freien Darstellungsflächen, und stellt Funktionen zur Verfügung, die ein Wegenetz auf den
5
IMPLEMENTIERUNG DES SYSTEMS
92
Oberflächen des Raums erzeugen. Wie das Wegenetz explizit erzeugt wird, ist
im Kapitel 5.5.2 erläutert.
Die dreidimensionalen Koordinaten werden in der Form (X, Y, Z) angegeben. Da float-Werte nach einigen Rechenoperationen mitunter verhältnismäßig
grobe Ungenauigkeiten aufweisen, sind alle relevanten Zahlen vom Typ double, um so eine möglichst hohe Genauigkeit bei Berechnungen im Raummodell
gewährleisten zu können. Da bei Abfragen auf Gleichheit dennoch Fehler auftreten können, wird eine Abfrage auf Gleichheit mit einem Fehlerwert von 10−12
Meter durchgeführt.
5.4.2
Wand
Das Wall-Objekt beschreibt eine senkrecht stehende Wand, die den Raum, in
dem sie sich befindet, begrenzt. Eine Wand ist definiert durch ihre Eckpunkte.
Da die Kanten in jeder Ecke einen neunzig Grad Winkel bilden, wie in Kapitel 4.2 beschrieben, kann sie sehr viel mehr als nur vier Ecken haben. Um die
Definition eindeutig zu machen, werden die Eckpunkte im Uhrzeigersinn gespeichert, und die Wand hat eine Orientierung, die in Richtung des Benutzers
zeigt. Auf einer Wand können sich beliebig viele Hindernisse befinden, die die
freien Flächen, auf die ein Display projiziert werden kann, einschränken.
Wichtig für ein Objekt, ob Wand, freie Darstellungsfläche oder Hindernis,
ist die Möglichkeit, berechnen zu können, ob ein beliebiger Punkt Teil des Objekts ist oder nicht. Auf diese Weise kann entschieden werden, ob ein Punkt auf
einem Objekt liegt, und falls ja, auf welchem. Mit dieser Information kann dann
berechnet werden, ob man ein Display auf diese Koordinaten positionieren kann.
Eine Wand löst das Problem herauszufinden, ob ein Display an eine Stelle
projiziert werden kann, in zwei Schritten. Zum einen wird überprüft, ob die
Stelle, an die das Display projiziert werden soll, überhaupt auf der Wand liegt,
5
IMPLEMENTIERUNG DES SYSTEMS
93
und zum anderen, ob sie eventuell in einem Hindernis liegt, das sich auf der
Wand befindet. Herauszufinden, ob ein Punkt auf einem Hindernis liegt, wird
dabei von den Hindernissen übernommen, die sich auf der Wand befinden, was
in Kapitel 5.4.4 beschrieben ist. Dagegen überprüft die Wand selbst, ob ein
Punkt überhaupt auf ihr liegt. Dies geschieht mit den Funktionen, die die Klasse Wall zur Verfügung stellt.
Die Überprüfung, ob ein Punkt auf einer Wand liegt, geschieht ebenfalls
in zwei Schritten, wobei der erste Schritt feststellt, ob der Punkt in der Ebene
liegt, in der die Wand steht, um dann im zweiten Schritt herauszufinden, ob der
Punkt innerhalb der Ränder liegt. Um das zweite Kriterium zu testen, werden
zuerst die Kanten gesucht, die am nächsten oberhalb, unterhalb, rechts und
links um den Punkt herum liegen, alle anderen sind für diesen Punkt nicht von
Bedeutung. Bei diesen vier Kanten wird nun getestet, ob der Punkt, bezogen
auf die jeweilige Kante, auf der Innenseite oder Außenseite liegt. Wenn er bei
allen vier Kanten auf der Innenseite liegt, ist das Kriterium erfüllt. Zusammen
mit dem ersten Kriterium, der Lage in der richtigen Ebene im Raum, was einfach zu überprüfen ist, wird geklärt, ob ein Punkt auf einer Wand liegt. Liegt
der Punkt auch in keinem Hindernis, dann liegt er auf einer freien Fläche der
Wand, auf die ein Display projiziert werden kann.
Um sicher zu stellen, dass an einer bestimmten Stelle auch genügend Platz
ist für ein Display, werden in spezifischen Abständen um den eigentlichen Punkt
herum noch weitere Punkte überprüft. Ausgehend vom Mittelpunkt des Displays werden horizontal und vertikal Punkte getestet, deren Abstand voneinander der Größe des kleinsten Hindernisses auf dem jeweiligen Objekt entspricht.
Nur wenn alle Punkte auf freier Fläche liegen, kann dort ein Display platziert
werden. Die Größe eines Hindernis ist dabei der maximale Abstand von je zwei
parallelen (horizontalen und vertikalen) Kanten des Hindernisses. So wird sichergestellt, dass an der überprüften Stelle kein Hindernis sein kann. Ist das
Display kleiner als das kleinste Hindernis, so werden nur der Mittelpunkt, die
5
IMPLEMENTIERUNG DES SYSTEMS
94
Eckpunkte und die Mittelpunkte der Seiten des Displays überprüft.
5.4.3
Freie Darstellungsfläche
Das Plane-Objekt beschreibt eine ebene Fläche im Raum, auf die ein Display positioniert werden kann. Diese Fläche kann frei im Raum stehen oder
an eine andere Fläche oder Wand anschließen. Auch können sich auf ihr Hindernisse befinden. Genau wie eine Wand ist eine freie Darstellungsfläche durch
ihre Eckpunkte und deren Reihenfolge eindeutig beschrieben. Daraus berechnet sich die Orientierung zum Benutzer hin als Normalenvektor der Fläche.
Die Plane-Klasse stellt, wie die Wall-Klasse, Funktionen zur Verfügung mit
denen berechnet wird, ob ein Punkt auf ihr liegt oder nicht. Dies wird analog zum Verfahren bei der Wand berechnet. Bei einem Teil unterscheiden sich
die beiden Verfahren jedoch voneinander. Dort, wo geprüft wird, ob der Punkt
auf der Innenseite oder Außenseite der relevanten Ränder liegt, erschwert die
Möglichkeit der freien Lage des Plane-Objekts im Raum diesen Test. Ist es im
Fall der senkrecht stehenden Wand noch ausreichend zu testen, ob der Punkt
oberhalb oder unterhalb (Y-Koordinaten) einer horizontalen Kante bzw. rechts
oder links (Richtungsvektor der Ebene in der die Wand steht) einer vertikalen
Kante liegt, um bestimmen zu können, ob der Punkt auf der Wand ist oder
nicht, so geht dies bei der freien Darstellungsfläche nicht mehr. Liegt die Fläche
zum Beispiel schräg im Raum, so hat oben und unten keine Aussagekraft mehr
für einen Punkt in Bezug zu einer begrenzenden Kante.
Dieses Problem wurde gelöst, indem von dem zu testenden Punkt aus das
Lot auf die gerade zu testende Kante gefällt wurde. Die Richtung, die das Lot
hat, gibt an, auf welcher Seite der Kante der Punkt liegt. Da die Eckpunkte einer Darstellungsfläche im Uhrzeigersinn angegeben sind und daraus eine
Richtung der Kanten resultiert, folgt aus der Orientierung der Fläche, dass die
Innenseite der Kante immer die rechte Seite der Kante ist. Wenn also die Richtung des Lots von rechts nach links verläuft, bezogen auf die Richtung der zu
5
IMPLEMENTIERUNG DES SYSTEMS
95
prüfenden Kante, ist der Punkt auf der Innenseite, andernfalls liegt er auf der
Außenseite.
Alle weiteren Aufgaben werden, wie oben bei der Wand beschrieben, gelöst.
5.4.4
Hindernis
Das Obstacle-Objekt beschreibt ein Hindernis, auf das kein Display projiziert
werden kann oder soll. Hindernisse liegen immer auf einem anderen Objekt,
entweder einer Wand oder einer freien Darstellungsfläche. Ein Hindernis ist eine Fläche, die durch senkrecht aufeinander stehende Kanten begrenzt wird. Zur
Definition genügen die Eckpunkte in einer festen Reihenfolge. Da Hindernisse
auf freien Darstellungsflächen liegen können, müssen sie ebenso frei im Raum
platziert werden können, weshalb ihre Definition analog ist. Ebenso wie die
Plane-Klasse stellt die Obstacle-Klasse Funktionen zur Verfügung, mit denen
berechnet werden kann, ob ein Punkt auf dem Hindernis liegt oder nicht. Dabei
gilt die Vereinfachung, dass auf einem Hindernis nicht andere Hindernisse liegen
können. Eine wichtige Eigenschaft von Hindernissen ist die Information, wie sie
überwunden oder umrundet werden können. Zum Beispiel wenn der Avatar ein
Hindernis umlaufen soll, muss er wissen, wo es passierbar ist und wo nicht. Ist
diese Information nicht bekannt, so könnte das Display an eine Stelle verschoben werden, an der es nicht vollständig darstellbar ist. In diesem Fall könnte
der Avatar unter einem Bild entlanggehen, während der Kopf des Avatars auf
das Bild projiziert wird. Die Information, wo ein Hindernis passierbar ist, wird
deshalb bei der Erstellung des Wegenetzes verwendet (siehe Kapitel 5.5.2).
5
IMPLEMENTIERUNG DES SYSTEMS
5.5
5.5.1
96
Wegenetz
Struktur des Wegenetz
Das Wegenetz ist die Grundlage für die Bewegungen des Avatars durch den
Raum. Es besteht aus Knoten, die so auf den Flächen positioniert sind, dass an
jedem dieser Punkte der Mittelpunkt eines Displays positioniert werden kann
und dort eine genügend große freie Stelle für das Display mit dem Avatar vorhanden ist. Die Knoten beinhalten Informationen darüber, auf welchem Objekt
sie sich befinden und ob sie für den Avatar ein geeigneter Standort sind, an
dem er dem Benutzer etwas erklären kann. Definiert werden sie durch ihre Koordinaten im Raum. Die Abstände der Knoten zueinander sind in horizontaler
und vertikaler Richtung vordefiniert, wodurch das Wegenetz eine rechteckige
Netzstruktur erhält. Neben den Knoten besteht ein Wegenetz außerdem aus
Kanten, die durch zwei Knoten, die die Kante miteinander verbindet, definiert
sind. Kanten sind mit Gewichten versehen, die dem Algorithmus zum Finden
von Wegen durch das Wegenetz dienen. Mit diesen Gewichten kann man die
Lage der Kanten im Raum identifizieren und gleichzeitig den Algorithmus zum
Finden kürzester Pfade dahingehend manipulieren, schöne“ Wege zu wählen.
”
Horizontale Kanten haben das geringste Gewicht, dann kommen vertikale Kanten und anschließend Kanten die über eine Ecke verlaufen. Die teuersten Kanten
sind diese, die auf eine freie Darstellungsfläche führen oder durch Hindernisse
hindurch. Da der Algorithmus die teuren Kanten zu vermeiden versucht, sehen
die gefundenen Wege homogen aus.
5.5.2
Erzeugen des Wegenetzes
Das Erzeugen des Wegenetz ist aufgeteilt in mehrere Etappen. Jede Klasse, die
eine Fläche beschreibt, auf die ein Display projiziert werden kann, hat Funktionen, die ein eigenes lokales Wegenetz generieren. Diese lokalen Wegenetze
der Wände und freien Darstellungsflächen werden anschließend zu einem den
ganzen Raum bedeckenden Wegenetz zusammengefügt. Die Vorgehensweise zur
5
IMPLEMENTIERUNG DES SYSTEMS
97
Erstellung der einzelnen kleinen Wegenetze ist auf jeder Fläche gleich, egal ob
es auf einer Wand oder einer freien Darstellungsfläche generiert wird.
Zu Beginn wird ein Punkt auf der jeweiligen Fläche gesucht, an dessen Stelle
der erste Knoten erzeugt wird. Dieser Knoten wird ausgehend von der linken
oberen Ecke der Fläche nach unten und rechts weiter suchend an der ersten freien Stelle gesetzt und kommt auf eine Warteliste. Natürlich hätte man auch ein
anderes Verfahren definieren können, mit dem der erste Knoten gesetzt wird,
aber da die linke obere Ecke an erster Stelle in der Aufzählung der Ecken einer
Fläche steht, wurde dieses Verfahren implementiert. Bei jedem Knoten auf der
Warteliste wird überprüft, ob in horizontaler oder vertikaler Richtung in gegebenem Abstand eine freie Stelle ist, an der ein neuer Knoten erzeugt werden
kann. Dabei wird überprüft, ob an dieser Stelle genügend Platz für ein Display
ist. Wenn ja und falls dort noch kein Knoten ist, wird ein neuer Knoten erzeugt.
In jedem Fall, wenn dort nun ein Knoten existiert, wird überprüft, ob es schon
eine Kante an dieser Stelle gibt, die dann gegebenenfalls mit entsprechender
Gewichtung generiert wird. Der Knoten wird anschließend von der Warteliste
gelöscht. So verbreitet sich das Wegenetz im Allgemeinen ausgehend von einer
Ecke aus über die ganze Fläche.
Interessant wird es, wenn man auf ein Hindernis stößt. In diesem Fall wird
unterschieden, ob man an einer Stelle das Hindernis umlaufen“ kann oder nicht.
”
Kann man dies, so wird nichts Spezielles getan, da das Wegenetz an anderer
Stelle am Hindernis vorbei kommt und so auch die Fläche dahinter erreicht. Ist
das Hindernis jedoch so groß, dass es nicht umlaufen werden kann, so wird ein
neuer Knoten auf der anderen Seite des Hindernisses erzeugt und eine speziell
gewichtete Kante generiert, die durch das Hindernis verläuft.
5
IMPLEMENTIERUNG DES SYSTEMS
5.6
98
Wege durch den Raum
Der Avatar soll sich entlang des erzeugten Wegenetzes bewegen. Ein Weg besteht aus einer möglichst kurzen Abfolge von Knoten und Kanten mit möglichst
geringem Gewicht, deren erster Knoten der aktuelle Standpunkt des Avatars
ist und der letzte Knoten der gewünschte Zielpunkt.
5.6.1
Algorithmus
Der Algorithmus zum Finden des Weges, den der Avatar gehen soll, ist der
bekannte Dijkstra-Algorithmus“, der ein wenig erweitert wurde. Diese Erwei”
terung wird später an der entsprechenden Stelle erläutert.
Während der Algorithmus das Wegenetz durchsucht, speichert er in jedem
Knoten die Kosten des bis dahin gefundenen kürzesten Pfades von dem Startpunkt bis zu diesem Knoten und den Pfad selbst. Außerdem werden die von
bisher besuchten Knoten aus direkt erreichbaren Knoten, deren kürzester Pfad
noch nicht gefunden wurde, in einer Priority Queue gespeichert. Die Schlüssel
in der Priority Queue sind die Pfadkosten dieser Knoten.
Beim Start werden die Pfade der Knoten auf null gesetzt und ihre Pfadkosten auf unendlich. In der Priority Queue sind alle erreichbaren Knoten gespeichert und haben als Schlüssel die Kosten, die die Kante vom Startpunkt aus zu
ihnen hat. Nun durchläuft der Algorithmus eine Schleife, die solange ausgeführt
wird, bis die Priority Queue leer ist.
Sei A der Knoten mit dem niedrigsten Schlüssel und damit den niedrigsten
erwarteten Pfadkosten, dann wird A aus der Priority Queue genommen.
Anschließend nimmt man alle Knoten, die von A aus erreichbar sind, und aktualisiert deren Pfadkosten und die bisherigen kürzesten Pfade, aber nur, wenn
der neue Pfad günstiger (leichter) ist als der bisherige Pfad zu diesem Knoten.
Wenn der Algorithmus beendet ist, stehen in jedem Knoten des Wegenet-
5
IMPLEMENTIERUNG DES SYSTEMS
99
zes der günstigste Pfad vom Startpunkt zu dem jeweiligen Knoten und seine
Kosten. An dieser Stelle wurde die oben erwähnte Erweiterung programmiert.
Da es unnötig ist, alle günstigsten Pfade zu kennen, wenn man nur den zwischen zwei bestimmten Knoten sucht, wurde eine weitere Abbruchbedingung
implementiert. Sobald ein Weg zum Zielknoten gefunden wurde, werden dessen Kosten mit den aktuellen Kosten des ersten Knotens in der Priority Queue
verglichen, denn dieser hat die geringsten bisherigen Pfadkosten in der Priority Queue. Sind die Kosten des Knotens in der Priority Queue höher, kann es
keinen kürzeren Pfad über die restlichen Knoten zum Ziel geben als den, der
bereits gefunden wurde. Folglich kann man an dieser Stelle schon abbrechen.
Die Worst-Case-Laufzeit des Algorithmus wird hierdurch nicht verbessert, aber
wenn Start- und Zielknoten nicht weit voneinander entfernt sind, müssen auch
nur solche Wege überprüft werden und nicht das gesamte Wegenetz. Je nach
Größe des Wegenetzes und Länge des gesuchten besten Weges werden so viele
Berechnungen gespart.
Das Ergebnis des Algorithmus ist ein Weg vom Start- zum Zielknoten mit
minimalen Kosten.
5.7
Avatar-Verhalten
Der Avatar kann in gewissem Maße auf den Benutzer reagieren, da er vom Benutzer die Position und Blickrichtung kennt. Eine einfache Verhaltenslogik wurde als deterministischer endlicher Automat implementiert, dessen Übergangsfunktion ereignisgesteuert ist. Mit Hilfe der Idee der Subsumption [Brooks] werden die Ereignisse gefiltert und so das Verhalten des Avatars geregelt.
5.7.1
Endlicher Automat
Der das Verhalten beschreibende deterministische endliche Automat hat folgende 5 Zustände:
5
IMPLEMENTIERUNG DES SYSTEMS
100
• Stehen: Der Avatar steht an einer Stelle und wartet.
• Reden: Der Avatar spricht gerade, wenn er zum Beispiel etwas erklärt
oder den Benutzer begrüßt.
• Gehen: Der Avatar bewegt sich gerade in Menschengestalt oder als Ball
durch den Raum.
• Aufmerksam: Der Avatar macht auf sich aufmerksam, weil der Benutzer
gerade nicht auf ihn achtet.
Während des Betriebs überprüft das System permanent die Position und die
Blickrichtung des Benutzers. Diese Werte werden ständig auf dem Event Heap“
”
aktualisiert und dort vom System abgefragt. Ändert sich einer dieser Werte,
so wird ein entsprechendes Ereignis generiert. Die 4 möglichen Ereignisse, die
die Übergänge zwischen den einzelnen Zuständen auslösen, repräsentieren das
Verhalten des Benutzers wie folgt:
• BenutzerWeg : Der Benutzer ist gerade nicht in der Nähe des Avatars.
• BenutzerDa: Der Benutzer ist gerade in der Nähe des Avatars.
• BenutzerSchautHin: Der Benutzer schaut gerade auf den Avatar.
• BenutzerSchautWeg : Der Benutzer schaut gerade nicht auf den Avatar.
Die Übergangsfunktion ist in Abbildung 24 dargestellt. Dabei sind aus Gründen
der Übersicht die Übergänge weggelassen worden, bei denen sich der aktuelle
Zustand nicht ändert.
Zur Erklärung der Abbildung wird folgendes Beispiel angeführt: Der Aktuelle Zustand ist Reden. Nun tritt das Ereignis BenutzerSchautWeg ein, da
der Benutzer sich gerade in eine andere Richtung gedreht hat. Daraufhin wechselt der Avatar in den Zustand Aufmerksam, um auf sich aufmerksam zu
machen und zu erwirken, dass sich der Benutzer wieder ihm zuwendet. Genau
5
IMPLEMENTIERUNG DES SYSTEMS
101
Abbildung 24: Die Übergangsfunktion der Verhaltenslogik des Avatars
das macht der Benutzer dann auch, wodurch das Ereignis BenutzerSchautHin ausgelöst wird, was den Avatar wieder in den Zustand Reden wechseln
lässt. Die Verhaltenslogik lässt sich mit geringem Aufwand um weitere mögliche Zustände und Übergänge, die in Zukunft vielleicht hinzukommen, erweitern.
5.7.2
Subsumptionsansatz
Den Ereignissen aus Kapitel 5.7.1 werden Prioritäten zugewiesen, die über ihre
Relevanz im Allgemeinen etwas aussagen, denn je höher dessen Priorität, desto
wichtiger ist das Ereignis. Für den Fall, dass mehrere Ereignisse gleichzeitig
eintreffen, bestimmen die Prioritäten der Ereignisse, welches das wichtigste ist
und somit Einfluss auf das Verhalten des Avatars hat.
Die Prioritäten sind wie folgt verteilt. Die höchste Priorität hat BenutzerWeg , da sonst der Avatar dem Benutzer nicht folgen würde, wenn dieser sich
entfernt. Der Benutzer wird vom Avatar durch die Umgebung geleitet, deshalb
ist es wichtig, dass er ständig in der Nähe des Benutzers ist. Als nächstes kommt
5
IMPLEMENTIERUNG DES SYSTEMS
102
BenutzerSchautWeg , damit der Avatar stets auf sich aufmerksam machen
kann, es sei denn, er folgt dem Benutzer gerade. In diesem Fall ist es wichtiger,
überhaupt wieder in die Nähe des Benutzers zu kommen. Die beiden anderen
Ereignisse haben die gleiche und niedrigste Priorität, da sie den Avatar mit dem
fortfahren lassen, was er eigentlich machen möchte, denn der Benutzer ist dann
bei ihm und aufmerksam.
Man könnte nun sagen, dass es für vier Ereignisse, von denen jeweils nur
zwei gleichzeitig eintreffen können, etwas übertrieben ist, einen Auswahlmechanismus zu implementieren, wie gerade beschrieben. Aber bei einer späteren
Erweiterung des Systems um zusätzliche Funktionalität oder Sensorik und damit eventuell auch um weitere Ereignisse, können diese sehr einfach in die Logik
integriert werden.
5.8
Avatar-Bewegung
Die verschiedenen Bewegungen und Gestiken des Avatars, wie auch seine Sprachausgabe, werden durch das in Kapitel 2.8 beschriebene VRI -System zur Verfügung gestellt. Mit XML-Skripten wird das VRI -System angesteuert und manipuliert seinerseits die Flash-Animation und die Sprachausgabe. Die Ansteuerung des VRI -Systems ist in der Klasse Movements gekapselt. Unter anderem
sind die folgenden Bewegungen und Gesten implementiert, von denen einige
Screenshots in Abbildung 25 zu sehen sind:
• Warte-Gestik: Minnie steht und wischt sich über das Kleid (Abb. 25 oben
links),
• Uhrzeit-Gestik: Sie steht und schaut auf die Uhr (Abb. 25 oben 2te von
links),
• Zeige-Gestik: Sie steht und zeigt nach einer Seite, um etwas zu präsentieren (Abb. 25 oben 3te von links),
5
IMPLEMENTIERUNG DES SYSTEMS
103
• Gehen-Gestik: Sie geht zu einer Seite, um etwas zu erreichen (Abb. 25
oben rechts),
• Swirl-Gestik: Sie verwandelt sich in einen Ball, um weite Strecken schneller
zurück legen zu können (Abb. 25 untere Reihe).
Abbildung 25: Einige Screenshots von Avatargestiken (Minnie)
Die XML-Skripte zur Steuerung der Avatar-Bewegungen bestehen aus zwei
Teilen und werden durch part“ als solche gekennzeichnet. Der erste Teil des
”
Skripts bestimmt, welche Gestik der Avatar machen soll, und der zweite Teil
5
IMPLEMENTIERUNG DES SYSTEMS
104
bestimmt, welche Tondatei dabei abgespielt werden soll. So setzt sich zum Beispiel die Anweisung sich in einen Ball zu verwandeln“ aus den Teilen Swirl“
”
”
und Soundloop.mp3“ zusammen. Das fertige XML-Skript sieht dann wie folgt
”
aus:
<part gesture=“Swirl” sound=“Soundloop.mp3”/>
Wie man leicht erkennt, sind in den XML-Skripten keine Informationen enthalten, wie sich das Display bewegen soll. Die Bewegung des Displays wird mit
Hilfe der DisplyHandler-Klasse realisiert. Beide Teile einer Avatar-Bewegung
(Gestik mit Ton und Bewegung des Displays) werden von der Klasse Movements durch entsprechende Methoden bereitgestellt.
5.9
Datensicherung
Die Datensicherung betrifft nur die Daten des Raummodells, da alle anderen
Daten entweder aus dem Raummodell erzeugt werden können, wie das Wegenetz zum Beispiel, oder aber im Code als feste Größen implementiert sind. Um
ein Modell eines Raums zu speichern, muss man alle Bestandteile des Raums
speichern, wie Wände, freie Darstellungsflächen und Hindernisse. Jedes dieser
Objekte hat wiederum für sich spezifische Datenfelder, die ebenfalls gespeichert
werden müssen, so dass man zu einem beliebigen späteren Zeitpunkt das Modell
wieder rekonstruieren kann.
Gesichert werden die Daten des Raummodells in einem XML-Dokument, das
folgenden Aufbau besitzt:
<!ELEMENT Room (RoomFields, Wall*, Plane*)>
<!ELEMENT RoomFields (wegHoehe, mindestHoehe)>
<!ELEMENT Wall (WallFields, WallCorners, Obstacles)>
<!ELEMENT WallFields (WallID, RightWall, LeftWall, RechtsUnten)>
<!ELEMENT WallCorners (WallCorner 4+)>
<!ELEMENT WallCorner (X, Y, Z)>
<!ELEMENT Plane (PlaneFields, PlaneCorners, Obstacles)>
5
IMPLEMENTIERUNG DES SYSTEMS
105
<!ELEMENT PlaneFields (PlaneID, RechtsUnten, Height, Width, Neighborwalls)>
<!ELEMENT Neighborwalls (NeighborWall*)>
<!ELEMENT PlaneCorners (PlaneCorner 4+)>
<!ELEMENT PlaneCorner (X, Y, Z)>
<!ELEMENT Obstacles (Obstacle*)>
<!ELEMENT Obstacle (ObstacleFields, ObstacleCorners)>
<!ELEMENT ObstacleFields (ObstacleID, Type, Passierbar)>
<!ELEMENT Passierbar (Hindurch, Darüber, Darunter, Rechts, Links)>
Ein Raum besteht aus beliebig vielen Wänden und freien Darstellungsflächen. Die Weghöhe gibt an, auf welcher Höhe sich ein Pfad bewegen soll, wenn
das Wegenetz nicht die ganze Wand bedecken soll, sondern nur einen einzigen
möglichen Pfad durch den Raum bereitstellt. Eine Variante des Wegenetzes, die
implementiert ist, aber normalerweise nicht benutzt werden sollte, da sie den
Avatar sehr einschränkt. Die Mindesthöhe beschränkt das Wegenetz eine gewisse Höhe nicht zu unterschreiten. Jede Wand, jede Darstellungsfläche und jedes
Hindernis besitzt eine eindeutige ID, über die das jeweilige Objekt identifiziert
werden kann. RightWall und LeftWall sind die IDs der rechten bzw. linken
Nachbarwand. Die Corner -Elemente sind die Eckpunkte des jeweiligen Objekts
und haben ihre Koordinaten in der Form (X,Y,Z ) als Kinder. Die Eckpunkte
sind jeweils im Uhrzeigersinn aufgezählt, beginnend bei der linken oberen Ecke
des Objekts. RechtsUnten gibt an, die wievielte Ecke die rechte untere Ecke des
jeweiligen Objekts ist, bei 0 beginnend mit Zählen. Daraus lassen sich dann die
Höhe und die Breite einer Fläche berechnen. Height und Width sind die Höhe
und die Breite einer Darstellungsfläche, d.h. die maximale Entfernung zweier
paralleler Kanten (horizontal bzw.vertikal), die die Fläche begrenzen. NeighborWall sind die IDs der Wände, von denen aus die Darstellungsfläche erreichbar
ist. Type gibt an, ob das Hindernis ein einfaches Hindernis ist oder ein spezielles
Objekt, zu dem der Avatar eventuell etwas sagen soll. Die Kind-Elemente von
Passierbar geben an, wo das Display bzw. der Avatar das Hindernis passieren
kann.
5
IMPLEMENTIERUNG DES SYSTEMS
106
Abbildung 26: XML-Datei, in der ein Raummodell gespeichert ist
In Abbildung 26 sieht man ein Beispiel für eine XML-Datei, in der ein
Raummodell gespeichert ist. Der Raum hat 4 Wände und 1 freie Darstellungsfläche. Die erste Wand hat die ID 1, ihre rechte Nachbarwand hat die ID 2, und
ihre linke Nachbarwand hat die ID 4. Die erste Ecke der dieser Wand hat die
Koordinaten (0, 2.5, 0). Auf der Wand befinden sich 2 Hindernisse.
6
ZUSAMMENFASSUNG UND AUSBLICK
6
107
Zusammenfassung und Ausblick
6.1
Zusammenfassung
In dieser Diplomarbeit wurde ein System entwickelt, das es ermöglicht, projizierte Displays zur Laufzeit dynamisch zu positionieren. Die Displays werden
auf freie Oberflächen im instrumentierten Raum, möglichst in die Nähe des Benutzers projiziert, so dass sie zur Interaktion mit dem Benutzer genutzt werden
können. Dazu werden die Position und die Blickrichtung des Benutzers mit verschiedenen Sensoren und einem digitalen Kompass permanent überwacht. Zur
verzerrungsfreien Darstellung der projizierten Displays wird das Fluid Beam“”
System verwendet, das aus einem Projektor und einer Kamera besteht, die
in einer Dreheinheit an der Decke des instrumentierten Raums angebracht sind.
In das System wurde das bereits bestehende VRI -System integriert, mit dem
ein Avatar auf den projizierten Displays angezeigt wird, der über ein räumliches
Audiosystem mit dem Benutzer kommuniziert. Das Verhalten und die Position
des Avatars werden entsprechend dem Verhalten und der Position des Benutzers dynamisch angepasst.
Es wurde ein 3D-Raummodell entwickelt, das die Umgebung des Systems
approximativ erfasst. Es besteht aus Wänden, freien Darstellungsflächen, auf
denen Displays projiziert werden können, und Hindernissen, auf die nicht projiziert werden kann. Das 3D-Raummodell bildet die Grundlage des Systems,
es wird mit XML gespeichert und kann leicht von Hand erstellt und verändert
werden.
Ein 3D-Wegenetz wird von den Klassen des Raummodells automatisch generiert, auf dem sich die projizierten Displays so verschieben lassen, dass sie
während einer Bewegung mit keinem Hindernis im Raum kollidieren können.
Die Bewegungen werden dynamisch mit Hilfe des Dijkstra-Algorithmus“ für
”
kürzeste Pfade generiert. Dabei wurde durch eine geschickte Wahl der Kan-
6
ZUSAMMENFASSUNG UND AUSBLICK
108
tengewichte des Wegenetzes sichergestellt, dass die gefundenen Wege schön“
”
aussehen.
Das System ist in die Java-Architektur des instrumentierten Raums integriert, so dass es in Zukunft problemlos wiederverwendbar und erweiterbar ist.
6.2
Einsatzmöglichkeiten
Das hier vorgestellte System zum dynamischen Positionieren von projizierten
Displays bietet unterschiedliche Verwendungsmöglichkeiten. Wo immer etwas
angezeigt werden soll, kann das System etwas projizieren und das Display bei
Bedarf auf der Projektionsfläche verschieben. Drei mögliche Szenarien, in denen
das System angewendet werden könnte, werden im Folgenden kurz beschrieben.
In instrumentierten Umgebungen, die eine Vielzahl unterschiedlicher Geräte
beherbergen, kann das System dem Benutzer als Einweiser dienen und die Funktionen und die Handhabung der installierten Geräte erläutern und vorführen.
Bei einer solchen Vorführung könnte das System auf das Verhalten des Benutzers reagieren und zum Beispiel einen Rundgang durchführen, bei dem der Avatar das Gerät erläutert, zu dem sich der Benutzer gerade hinbewegt hat. Wenn
der Benutzer nun das Interesse an diesem Gerät verliert und zu einem anderen
Gerät geht, so könnte das System den Avatar dem Benutzer folgen und ihn anschließend das nächste Gerät vorstellen lassen. In diesem Zusammenhang sind
verschiedene Szenarien vorstellbar, die mit wenig Aufwand realisierbar sind.
Eine weitere Möglichkeit wäre ein Einsatz als Museumsführer, bei dem der
Avatar mit dem Benutzer zusammen einen Museumsrundgang macht. Auch
hierbei könnte das System auf die Bewegungen und die Blickrichtung des Benutzers reagieren und ihn so nur über die Kunstwerke informieren, die den
Benutzer wirklich interessieren. Wann immer der Benutzer vor einem Ausstellungsstück stehen bleibt, um es zu betrachten, kann der Avatar einen entspre-
6
ZUSAMMENFASSUNG UND AUSBLICK
109
chenden Vortrag über das Kunstwerk halten. Dabei wäre der Benutzer in seinen
Bewegungen und der Gestaltung des Museumsrundgangs völlig frei, da das System den Avatar mitlaufen lassen würde.
In der heutigen Zeit werden einige Dienstleistungen auf Grund von zu hohen Personalkosten nicht mehr oder nur noch sporadisch angeboten. Eine dieser
Dienstleistungen ist die Kaufberatung des Kunden in Warenhäusern. In diesem Fall könnte das System dazu genutzt werden, den Kunden Informationen
über die Produkte zu vermitteln, eventuell auch mit Querverweisen zu anderen
Produkten, wie in Abbildung 27 dargestellt. Anschließend könnte der Kunde
vom Avatar zu diesen anderen Produkten geführt werden oder als persönlicher
Verkäufer den Kunden während dessen Aufenthalts im Geschäft begleiten.
Abbildung 27: Der Avatar Cyberella“ assistiert einer Kundin beim Einkaufen,
”
Quelle: [Kruppa]
6
ZUSAMMENFASSUNG UND AUSBLICK
6.3
110
Erweiterung des Systems
Diese Diplomarbeit ist so konzipiert, dass sie als ganzes System oder aber auch
ein einzelner Teil des Systems, wie etwa das 3D-Raummodell, in andere Systeme integriert werden kann. Natürlich steht auch einer Weiterentwicklung des
Systems nichts im Wege, wodurch unter anderem eventuelle spezifische Probleme bei neuen Anwendungsfällen behoben werden können.
Das 3D-Raummodell besteht aus ebenen Flächen, die von aufeinander senkrecht stehenden Kanten begrenzt sind. Mit dieser Vereinfachung lassen sich
zwar die meisten Flächen approximativ modellieren, trotzdem stößt das System schnell an seine Grenzen, wenn zum Beispiel runde Flächen modelliert
werden sollen. Je nach gewünschter Genauigkeit des Modells kann die Modellierung einer runden Fläche eine Sisyphus-Arbeit werden. Es wäre ebenfalls
wünschenswert, runde Säulen zu integrieren, ebenso wie Flächen, die von Kanten begrenzt werden, die in beliebigen Winkeln aufeinander stehen.
Die Reaktion des Systems und damit des Avatars auf das Verhalten des Benutzers ist bisweilen noch rudimentär. An dieser Stelle könnte man eine umfangreichere Verhaltenslogik implementieren, die eventuell auch von zahlreicheren
Ereignissen beeinflusst wird, wodurch feinere Reaktionen auf das Benutzerverhalten verwirklicht werden könnten. In diesem Kontext wäre eine Erweiterung
des System um Benutzerprofile eine sinnvolle Investition, da sich nur so optimale Reaktionen und Äußerungen auswählen oder generieren lassen.
Im Rahmen von bereits bestehenden Systemen, wie zum Beispiel dem
PEACH“-System, könnte diese Arbeit eine gute Erweiterung des jeweiligen
”
Systems sein. Im Beispiel von PEACH“ könnte man die Kluft zwischen
”
dem kleinen mobilen Präsentationsmedium PDA und den großen stationären
Bildschirmen schließen, indem man dem Benutzer die Möglichkeit bietet, sich
an einer beliebigen Stelle Informationen anzeigen zu lassen. Die Größe und Position der projizierten Displays könnte dann entsprechend der darzustellenden
6
ZUSAMMENFASSUNG UND AUSBLICK
111
Informationen gewählt werden.
Bei der Interaktion mit einem Benutzer kann es vorkommen, dass der Benutzer oder andere Personen aus Versehen in den Projektionsstrahl geraten und
so die Darstellung behindern. Interessant wäre in diesem Zusammenhang die
Erweiterung des Systems um eine dynamische Erkennung von neuen oder sich
bewegenden Hindernissen, wie etwa Personen die sich im Raum befinden.
7
CODEAUSZÜGE
7
113
Codeauszüge
Im Folgenden werden verschiedene Klassen mit einigen Methodendeklarationen
und dazugehöriger Dokumentation aufgeführt.
/**
* Die Klasse repräsentiert einen Raum, in dem sich der Avatar
* bewegen soll.
* @author: Carsten Greiveldinger
*/
public class Room {
/**
* Standardkonstruktor für einen Raum
* @param WegHoehe: die Höhe, in der sich der Avatar
* normalerweise bewegen soll
* @param MindestHoehe: die Höhe, die der Avatar nicht
* unterschreiten soll
*/
public Room(double WegHoehe, double MindestHoehe) {}
/**
* Erzeugt ein komplettes Wegenetz für diesen Raum, so dass
* der Avatar sich frei im Raum bewegen kann, ohne in
* Hindernisse hinein zu laufen.
* @return Das Wegenetz in diesem Raum
*/
public PathNetwork createPathNetworkComplete()
{}
/**
* Verbindet die Wegenetze von zwei nebeneinander stehenden
* Wänden miteinander
* @param wand1: die linke Wand
* @param wand2: die rechte Wand
* @return das resultierende Wegenetz der beiden
* verbundenen Wände
*/
private PathNetwork connectWalls(Wall wand1, Wall wand2)
{}
7
CODEAUSZÜGE
114
/**
* Bindet eine freie Fläche in das Wegenetz ein
* @param plane: die einzubindende freie Fläche
* @param network Das bestehende Wegenetz des Raums
* @return das aktualisierte Wegenetz mit der
* integrierten Plane
*/
private PathNetwork connectPlane(Plane plane,
PathNetwork network)
{}
}
/**
* Die Klasse repräsentiert eine ebene, senkrecht stehende
* Wand in einem Raum
* @author: Carsten Greiveldinger
*/
public class Wall {
/**
* Konstruktor einer (senkrechten) Wand
* @param ID: die id der Wand
* @param Parent: der Raum, in dem die Wand steht
* @param RWall: die Wand, die rechts an diese Wand anschließt
* @param LWall: die Wand, die links an diese Wand anschließt
* @param Corners: die Eckpunkte dieser Wand (mindestens 4,
* beginnend oben links, dann im Uhrzeigersinn)
* @param RechtsUnten: der Index der rechten unteren
* Ecke in Corners
*/
public Wall(Room Parent, Wall RWall, Wall LWall,
ArrayList Corners, int RechtsUnten)
{}
/**
* Fügt ein neues Hindernis in die Wand ein
* @param newObstacle: das neue Hindernis auf dieser Wand
*/
public void addObstacle(Obstacle newObstacle)
{}
7
CODEAUSZÜGE
115
/**
* Testet, ob ein Display an dieser Stelle plaziert werden
* kann, ohne in ein Hindernis projiziert zu werden oder
* über die Wand hinaus zu ragen.
* @param centerPoint: der Mittelpunkt des Display
* @param Width: die Breite des Display in Metern
* @param Height: die Höhe des Display in Metern
* @return: true, wenn das Display dorthin projiziert
* werden kann, false sonst.
*/
public boolean displayCanBePlaced(double[] centerPoint,
double Width, double Heigth )
{}
/**
* Findet heraus, ob die Koordinaten frei sind, d.h. sie
* liegen auf der Wand und nicht in einem Hindernis
* @param point: der Punkt, der überprüft werden soll
* @return: true, wenn der Punkt frei ist und auf der Wand
* liegt, false sonst.
*/
public boolean isFreeBool(double[] point)
{}
/**
* Erzeugt ein komplettes Wegenetz für diese Wand, so dass
* der Avatar sich frei auf der Wand bewegen kann, ohne
* in Hindernisse hinein zu laufen.
* @return Das erzeugte Wegenetz für diese Wand
*/
public PathNetwork createPathNetworkComplete()
}
{}
7
CODEAUSZÜGE
116
/**
* Die Klasse repräsentiert ein ebenes Hindernis auf einer
* Fläche (Wall, Plane), auf der Displays erzeugt werden können.
* @author: Carsten Greiveldinger
*/
public class Obstacle {
/**
* Standardkonstruktor für ein rechteckiges Hindernis auf
* einer Fläche
* @param ID: die ID des Hindernisses
* @param ParentPlane: die Fläche, auf der das Hindernis ist
* @param Passierbar: gibt an, wie das Hindernis passiert
* werden kann
* @param Corners: eine Liste der Eckpunkte des Hindernisses.
* Der erste ist der obere linke Punkt, alle anderen folgen
* im Uhrzeigersinn. (Insgesamt mindestens 4 Punkte)
* @param Type: der Typ des Hindernisses: 0 = undefiniert,
* 1 = Ausstellungsstück
*/
public Obstacle( Plane ParentPlane, int [] Passierbar,
ArrayList Corners, int Type )
{}
/**
* Gibt an, ob der übergebene Punkt(X,Y,Z) innerhalb
* dieses Hindernisses ist
* @param X: die X-Koordinate des Punktes
* @param Y: die Y-Koordinate des Punktes
* @param Z: die Z-Koordinate des Punktes
* @return true, wenn der Punkt (X,Y,Z) innerhalb dieses
* Hindernisses liegt, sonst false
*/
public boolean isPart(double X, double Y, double Z)
}
{}
7
CODEAUSZÜGE
117
/**
* Die Hauptklasse zur Steuerung des Avatars im Raum
* @author: Carsten Greiveldinger
*/
public class PositioningManager {
/**
* Lässt den Avatar seinen Standort wechseln
* @param NewPosition der Punkt, zu dem der Avatar
* gehen soll
*/
private void goToPosition(double[] NewPosition)
{}
/**
* Lässt den Avatar einen Pfad entlang gehen
* in Menschengestalt
* @param Path: der Pfad, den der Avatar entlang
* gehen soll
*/
private void usePathAsHuman(LinkedList Path)
{}
/**
* Lässt den Avatar einen Pfad entlang gehen als Ball
* @param Path: der Pfad, den der Avatar entlang
* gehen soll
*/
private void usePathAsBall(LinkedList Path)
{}
/**
* Speichert den aktuellen Raum, in dem das System
* arbeitet, in einer XML-Datei
* @param Filename: der Name der XML-Datei, in der der
* Raum gespeichert werden soll (kompletter Pfad)
*/
private void saveRoom(String Filename)
{}
7
CODEAUSZÜGE
118
/**
* Lädt ein Room-Objekt aus einer XML-Datei und
* erzeugt anschließend das Wegenetz
* @param Filename: der Name der XML-Datei, in der
* der Raum gespeichert ist (kompletter Pfad)
*/
private void loadRoom(String Filename)
{}
/**
* Berechnet, ob der Benutzer gerade in Richtung
* des Avatars schaut oder nicht
* @return: true, wenn der Benutzer gerade in die
* Richtung des Avatars schaut, sonst false
*/
private boolean userWatchesAvatar(boolean watch)
{}
}
/**
* Diese Klasse enthält die verschiedenen Bewegungen
* des Avatars
* @author: Carsten Greiveldinger
*/
public class Movements {
/**
* Lässt den Avatar an einer Stelle still stehen
* und warten
* @param display: der DisplayHandler, der den Beamer
* ansteuert
* @param position: die Position an der der Avatar
* stehen soll
*/
public static void stand(DisplayHandler display,
double[] position)
{}
7
CODEAUSZÜGE
119
/**
* Lässt den Avatar an einer Stelle um
* Aufmerksamkeit bitten
* @param display: der DisplayHandler, der den
* Beamer ansteuert
* @param position: die Position, an der der Avatar
* stehen soll
*/
public static void callForAttention
(DisplayHandler display, double[] position)
{}
/**
* Lässt den Avatar nach links gehen
* @param display: der DisplayHandler, der den
* Beamer ansteuert
* @param start: der Startpunkt[XS,YS,ZS] der Bewegung
* @param end: der Endpunkt[XE,YE,ZE] der Bewegung
*/
public static void GoLeft(DisplayHandler display,
double[] start, double[] end)
{}
/**
* Lässt den Avatar in Ballgestalt durch den Raum gleiten
* @param display: der DisplayHandler, der den
* Beamer ansteuert
* @param start: der Startpunkt[XS,YS,ZS] der Bewegung
* @param end: der Endpunkt[XE,YE,ZE] der Bewegung
*/
public static void moveAsBall(DisplayHandler display,
double[] start, double[] end)
}
{}
7
CODEAUSZÜGE
120
/**
* Die Klasse steuert das Verhalten des Avatars
* @author: Carsten Greiveldinger
*/
public class Behaviour {
/**
* Die Übergangsfunktion von einem in den nächsten
* Zustand des Avatars. Anschließend muss man den
* neuen Zustand des Avatars noch setzen.
* @param Ereignis: das Ereignis, das gerade eingetreten
* ist, und das Verhalten des Avatars beeinflusst
* @return: die nächste Aktion, die der Avatar
* ausführen soll. Diese bestimmt den Zustand, in
* den er wechseln soll.
*/
public int nextAction(Vector Ereignisse)
{}
/**
* Die Methode entscheidet nach der Wichtigkeit der
* übergebenen Ereignisse, welches Ereignis das
* wichtigste ist und die nächste Aktion des
Avatars
* beeinflussen soll.
* @param Ereignisvektor: ein Vector, der die aktuellen
* Ereignisse beinhaltet
* @return: das relevante Ereignis, das den nächsten
* Schritt des Avatars beeinflusst
*/
private int useSubsumtion(Vector Ereignisvektor)
}
{}
Literatur
[3Dsom06] 3Dsom.com Homepage:
http://www.3dsom.com
(letzter Zugriff: 12. Juni 2006)
[Alice06] A.L.I.C.E. Artificial Intelligence Foundation Homepage:
http://www.alicebot.org
(letzter Zugriff: 18. Juni 2006)
[Amptown06] Amptown Lichttechnik GmbH Homepage:
http://www.amptown-lichttechnik.de
(letzter Zugriff: 18. März 2006)
[Andre] E. André, K. Dorfmüller-Ulhaas, T. Rist:
Embodied Conversational Characters: Wandering Between the Digital
and the Physical World,
In W. Wahlster (Ed.), Special Journal Issue
Conversational User
”
Interfaces , IT - Information Technology (Vol. 46, p. 332-340). München,
”
Germany: Oldenburg, 2004
[Antonio1] A. de Antonio, J. Ramı́rez, R. Imbert, G. Méndez:
Intelligent Virtual Environments for Training: An Agent-Based Approach,
CEEMAS, pages 82-91. 2005
[Antonio2] A. de Antonio, J. Ramı́rez, R. Imbert, Ricardo et al.:
A Software Architecture for intelligent Virtual Environments applied to
education,
Revista de la Facultad de Ingenierı́a – Universidad de Tarapacá,
Vol.13(1), 47-55, Januar-April 2005, Chile
[Apache06] The Apache XML Project, Xerces Java XML Parser:
http://xerces.apache.org
(letzter Zugriff: 05. Februar 2006)
I
[AStern06] Uni-Protokolle.DE Homepage:
http://www.uni-protokolle.de/Lexikon/A-Stern-Algorithmus.
html
(letzter Zugriff: 16. Juni 2006)
[ATT06] AT&T Natural Voices Homepage:
http://www.naturalvoices.att.com
(letzter Zugriff: 24. März 2006)
[BeaMover06] Publitec Präsentationssysteme & Eventservice GmbH Homepage:
http://www.beamover.com
(letzter Zugriff: 12. März 2006)
[BrandSch] B. Brandherm, T. Schwarz:
Geo Referenced Dynamic Bayesian Networks for User Positioning on
Mobile Systems,
In: Proceedings of the International Workshop on Location- and
Context-Awareness (LoCA 2005), Munich, Germany, 2005
[Brooks] R. A. Brooks:
A Robust Layered Control System for a Mobile Robot,
IEEE Journal of Robotics and Automation, 1986
[CADintern06] CAD intern GmbH Kassel Homepage:
http://cad-intern.de
(letzter Zugriff: 15. Juni 2006)
[Cora] Cor@ im Portal der Deutsche Bank Homepage:
http://www.deutsche-bank.de/ui
(Seite nicht mehr aktiv)
[Cormen] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein:
Introduction to Algorithms (Second Edition),
The MIT Press, 2001
II
[Cosmo06] Cosmo Worlds Homepage:
http://www.sgi.com/software/cosmo/worlds.html
(letzter Zugriff: 15. Juni 2006)
[CSharp06] Online product documentation for Visual C# 2003:
http://msdn.microsoft.com/library/default.asp?url=/library/
en-us/vbcon/html/vboriManagedDevelopmentStartPage.asp
(letzter Zugriff: 16. Juni 2006)
[DeLoura] Mark DeLoura:
Game Programming Gems (1-6),
Charles River Media 1996-2006
[DFKI06] Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Saarbrücken Homepage:
http://www.dfki.de
(letzter Zugriff: 03. März 2006)
[Dorfm] K. Dorfmüller-Ulhaas, E. Andre:
The Synthetic Character Ritchie: First Steps Towards a Virtual Companion for Mixed Reality,
In ISMAR 2005: Prococeedings of the IEEE Interational Symposium
on Mixed and Augmented Reality (p. 178-179). Vienna, Austria: IEEE
Computer Society Press, 2005
[Extemp06] Extempo Systems Inc. Homepage:
http://www.extempo.com/
(letzter Zugriff: 11. Februar 2006)
[Eyeled06] Eyeled GmbH Homepage:
http://www.eyeled.de
(letzter Zugriff: 21. April 2006)
[FactoryCAD06] FactoryCAD Programm der Firma UGS:
http://www.ugsplm.de/produkte/tecnomatix/plant design/
III
factory cad.shtml
(letzter Zugriff: 10. Juni 2006)
[Flash05] Macromedia Flash MX Homepage:
http://www.macromedia.com/software/flash
(letzter Zugriff: 11. August 2005)
[FLUIDUM06] FLUIDUM Homepage:
http://www.fluidum.org
(letzter Zugriff: 7. Mai 2006)
[Harold] E. R. Harold, W. S. Means:
XML in a Nutshell,
O’Reilly Verlag, 2003
[Identec06] Identec Solutions AG Homepage:
http://www.identecsolutions.com
(letzter Zugriff: 21. April 2006)
[ITC06] The Center for Scientific and Technological Research Homepage:
http://www.itc.it
(letzter Zugriff: 16. März 2006)
[JAVA] Java 2 Platform J2SE Version 1.4.2:
http://java.sun.com/j2se/1.4.2
(letzter Zugriff: 25. Mai 2006)
[Java3D06] Java 3D API:
http://java.sun.com/products/javamedia/3D
(letzter Zugriff: 17. März 2006)
[Johanson] B. Johanson, A. Fox:
The Event Heap: A Coordination Infrastructure for Interactive
Workspaces,
In: Proceedings of the Workshop on Mobile Computing Systems and
Applications, 2002
IV
[Klusch05] Vertiefungsvorlesung Intelligent Information Agents for Internet
”
and Web“ Homepage:
http://www.dfki.de/∼klusch/I2A-UDS-2005.html
(letzter Zugriff: 14. Juni 2006)
[Kolbe] T.H.Kolbe:
Fußgängernavigation und Routenplanung in Innenstädten und Gebäuden
mit Videos und Panoramen,
Tagungsband Münsteraner GI-Tage 2002, IfGI Prints, Nr. 13, Uni
Münster, 2002
[Kolbe3D] T.H.Kolbe:
3D-Kartographie für die Fußgängernavigation: Virtuelle Wegweiser in
Panoramen,
In: Mitteilungen des Bundesamtes für Kartographie und Geodäsie, Band
31, September 2004, Verlag des Bundesamtes für Kartographie und
Geodäsie, 2004
[KrSpSc1] M. Kruppa, L. Spassova, M. Schmitz:
The Virtual Room Inhabitant,
2nd Workshop on Multi-User and Ubiquitous User Interfaces (MU3I),
2005
[KrSpSc2] M. Kruppa, L. Spassova, M. Schmitz:
The Virtual Room Inhabitant – Intuitive Interaction With Intelligent
Environments,
AI 2005 conference, 2005
[Kruppa] M. Kruppa:
Migrating Characters: Effective User Guidance in Instrumented Environments,
Dissertation, 2006
[Kufner] S. Kufner:
Integration und Steuerung von virtuellen Charakteren in einer AugmenV
ted Reality Szene,
Multimedia Praktikum, 2003 (unveröffentlicht)
[Lester] J.C. Lester, L. Zettlemoyer, J. Grégoire, W. Bares:
Explanatory Lifelike Avatars: Performing User-Centered Tasks in 3D
Learning Environments,
In AGENTS 1999: Proceedings of the Third International Conference
on Autonomous agents (p. 24-31). Seattle, United States: ACM Press,
1999
[MAEVIF06] The MAEVIF-Project Homepage:
http://decoroso.ls.fi.upm.es/paginas/proyectos/MAEVIF/
maevif\ e.html
(letzter Zugriff: 13. Juni 2006)
[Marsella] S. Marsella, J. Gratch, J. Rickel:
Expressive Behaviours for Virtual Worlds,
In H. Prendinger & M. Ishizuka (Eds.), Life-Like Characters - Tools,
Affective Functions, and Applications (p. 317-360)
Berlin, Heidelberg, New York: Springer Cognitive Technologies, 2004
[Mattern] F. Mattern:
Allgegenwärtige Informationsverarbeitung – Technologietrends und Auswirkungen des Ubiquitous Computing,
To appear, 2006
[MCSquared06] MCSquared System Design Group, Inc. Homepage:
http://www.mcsquared.com/index.htm
(letzter Zugriff: 14. Juni 2006)
[Mendez1] G. Méndez, P. Herrero, A. de Antonio:
Intelligent virtual environments for training in nuclear power plants,
In Proceedings of the 6th International Conference on Enterprise Information Systems (ICEIS 2004), Porto, Portugal, April 2004
VI
[Mendez2] G. Méndez, A. de Antonio:
Using Intelligent Agents to Support Collaborative Virtual Environments
for Training,
WSEAS Transactions on Computers Issue 10, Volume 4, pages 13651372, October 2005
[MultConc06] Gruppe Multimedia Concepts and their Applications Homepage:
http://mm-werkstatt.informatik.uni-augsburg.de
(letzter Zugriff: 7. Juni 2006)
[PEACH06] PEACH: Personal Experience with Active Cultural Heritage Homepage:
http://peach.itc.it/home.html
(letzter Zugriff: 12. März 2006)
[Pokemon06] Nintendo Pokémon Homepage:
http://pokemon.nintendo.de/deDE/
(letzter Zugriff: 19. Juni 2006)
[Pressl] B. Pressl:
Fußgängernavigation - Navigationshilfe für Blinde,
Bakkalaureatsarbeit, 2003
[Pulkki] V. Pulkki:
Spatial Sound Generation and Perception by Amplitude Panning Techniques,
Dissertation, 2001
[Rickel1] J. Rickel, W. L. Johnson:
Animated Agents for Procedural Training in Virtual Reality: Perception,
Cognition, and Motor Control,
Applied Artificial Intelligence, 14(4-5), 343-382, 1999
[Rickel2] J. Rickel, W. L. Johnson:
Virtual humans for team training in virtual reality,
VII
In Proceedings of the Ninth International Conference on Artificial Intelligence in Education, pages 578–585. IOS Press, 1999
[RMI06] Java Remote Method Invocation (Java RMI):
http://java.sun.com/products/jdk/rmi
(letzter Zugriff: 05. Mai 2006)
[SAFIR] M. Schmitz:
SAFIR: A Spatial Audio Framework for Instrumented Rooms,
in ITI04: Workshop on Invisible and Transparent Interfaces, held at
Advanced Visual Interfaces, Gallipoli, Italy, 2004
[Schalke06] Das Fußballstadion in Gelsenkirchen:
http://www.veltins-arena.de
(letzter Zugriff: 17. Juni 2006)
[Schmitz] M. Schmitz:
Ein Framework für räumliches Audio in instrumentierten Umgebungen,
Diplomarbeit, 2003
[Sipser] M. Sipser:
Introduction to the Theory of Computation,
PWS Publishing Company Boston, 1997
[Spassova] L. Spassova:
Fluid Beam Konzeption und Realisierung eines Display-Kontinuums
mittels einer steuerbaren Projektor-Kamera-Einheit,
Diplomarbeit, 2004
[STEVE06] STEVE Homepage:
http://www.isi.edu/isd/VET/steve-demo.html
(letzter Zugriff: 11. Juni 2006)
[Tomberge] P. Tomberge:
Navigation mittels RFID - Betrachtung der Navigationsmöglichkeiten
VIII
durch RFID-Eintrittskarten bei der WM 2006,
Diplomarbeit, 2004
[Treek] C. Alban van Treek:
Gebäudemodell-basierte Simulation von Raumluftströmungen,
Dissertation, 2004
[Trento06] Museo Castello del Buonconsiglio in Trento:
http://www.buonconsiglio.it
(letzter Zugriff: 13. März 2006)
[Unreal06] Ego-Shooter Unreal Tournament Homepage:
http://www.unrealtournament.com
(letzter Zugriff: 14. Februar 2006)
[Vectronics06] Vectronics AG Homepage:
http://www.vectronics.com
(letzter Zugriff: 24. April 2006)
[VHuette06] Weltkulturerbe Völklinger Hütte:
http://www.voelklinger-huette.org
(letzter Zugriff: 13. März 2006)
[VRML06] World Wide Web Consortium: VRML97:
http://www.web3d.org/x3d/specifications/vrml
(letzter Zugriff: 14. Juni 2006)
[Wahlster05] Blockveranstaltung Einführung in die Methoden der Künstlichen
”
Intelligenz“ Homepage:
http://w5.cs.uni-sb.de/teaching/ws0506/KI/
(letzter Zugriff: 24. Juni 2006)
[Weiser] M. Weiser:
The Computer for the 21st century,
Scientific American, 3(265):94-104,1991
IX
[Weiser06] Ubiquitous Computing Homepage:
http://www.ubiq.com/hypertext/weiser/UbiHome.html
(letzter Zugriff: 19. Juni 2006)
[Wiki06] Wikipedia - Die freie Enzyklopädie:
http://de.wikipedia.org/wiki/Avatar\ \%28Internet\%29
(letzter Zugriff: 05. März 2006)
[XML06] Extensible Markup Language (XML):
http://www.w3.org/XML
(letzter Zugriff: 05. Februar 2006)
X
Abbildungsverzeichnis
1
Der instrumentierte Raum . . . . . . . . . . . . . . . . . . . . . . 15
2
Die Projektor-Kamera-Einheit an der Decke des instrumentierten Raums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3
Der PDA mit RFID-Kartenleser, eine Infrarotbake und ein RFIDTag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4
Der Vectronics DRC Kompass . . . . . . . . . . . . . . . . . . . . 23
5
Aufhebung von Projektionsverzerrung mit Kameraverzerrung . . 24
6
Ein Testweg durch die Räume des Lehrstuhls für Künstliche Intelligenz, zum Testen des Positinierungssystems . . . . . . . . . . 30
7
Beispiele für Avatare: Ein Pokémon, Chatterbot“ Alice und Cy”
berella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8
Die Systemkomponenten des VRI-Systems . . . . . . . . . . . . . 35
9
Ein Beispiel für ein XML-Skript, das den Avatar den Benutzer
begrüßen lässt und dem Benutzer die Geräte im instrumentierten
Raum erklärt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
10
Das alte und das neue Avatar-Modell im Vergleich . . . . . . . . 40
11
STEVE erklärt eine Schalttafel und spricht mit einem anderen
Avatar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
12
MAEVIF: Der Benutzer bewegt sich durch die virtuelle Welt und
trifft dabei auf andere Benutzer . . . . . . . . . . . . . . . . . . . 45
13
Whizlow bringt gerade ein Datenpaket zur CPU . . . . . . . . . 47
14
Rechts bewegt sich Ritchie dorthin, wo der Benutzer die Pyramide positioniert hat. Links sieht man einen Benutzer mit HeadMounted Display, der sich die Szene anschaut. . . . . . . . . . . . 48
15
Links folgt der Benutzer Ritchie durch die Stadt. Rechts ist Ritchie in der realen Welt und betrachtet das Stadtmodell. . . . . . 49
16
Die vier Avatare des PEACH-Projekts . . . . . . . . . . . . . . . 51
17
Die PEACH-Präsentation auf einem PDA und einem Virtual
”
Window“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
XI
18
Eine Statistik über das Verhalten des Benutzers bei einem Rundgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
19
Ein CAD-Modell von einem Gebäude und ein Raummodell eines
Wohnraumes mit Schallsimulation . . . . . . . . . . . . . . . . . 56
20
Das Raummodell des Virtual Augsburg Systems . . . . . . . . . 58
21
3D-Wegenetz für das Fußballstadion in Gelsenkirchen und das
2D-Wegenetz in das es überführt wurde . . . . . . . . . . . . . . 63
22
Wegenetz auf einer Wand mit Hindernissen . . . . . . . . . . . . 80
23
Das Klassenmodell mit den Hauptklassen des Systems . . . . . . 90
24
Die Übergangsfunktion der Verhaltenslogik des Avatars . . . . . 101
25
Einige Screenshots von Avatargestiken (Minnie) . . . . . . . . . . 103
26
XML-Datei, in der ein Raummodell gespeichert ist . . . . . . . . 106
27
Der Avatar Cyberella“ assistiert einer Kundin beim Einkaufen . 109
”
XII
Index
A∗-Algorithmus, 64
Höhe, 105
Akustik, 56, 58
Datenmodell, 58, 69, 87
Automat
Device Manager, 34
endlich, 85
DFKI, 33
Avatar, 10, 11, 13, 29, 30, 32, 33, 35, Dijkstra-Algorithmus, 59, 64, 98
46, 50, 67, 81, 83, 102
Display, 16, 25, 96
projiziert, 13, 65, 68, 73, 107
BeaMover, 17
virtuell, 25
Behaviour, 91
DisplayHandler, 91
Bild entzerren, 23, 68, 69
DMX, 16, 17
Bildschirm, 9, 14, 31, 34, 52, 55, 110
Doppler Effekt, 27
C#, 57
Dreheinheit, 16, 17, 107
CAD, 55, 58
Ego-Shooter, 42, 44
Character, 11
Ereignis, 85, 86
Animation, 36
Event Heap, 38
Engine, 36
Engine Server, 36
Floyd-Algorithmus, 64
Lifelike, 31, 33
Fluid Beam, 18, 23, 35, 36, 68, 69, 107
Migrating, 41, 53
FLUIDUM, 14
Chat-Room, 31
Fußgänger, 62
Chatter-Bot, 32
Fußgängerzone, 60
Computergraphik, 57
Gestik, 13, 19, 34, 37–39, 102
Cor@, 32
CPU City, 46
Head Mounted Display, 48, 65
Cyberella, 33, 36, 39
Hindernis, 68, 72, 74–76, 80, 91, 92, 94–
96, 104, 105, 107
Darstellungsfläche, 10, 13, 18, 23, 68,
71, 74, 76, 77, 81, 91, 94, 95, Infrarotbaken, 16, 20, 22, 29, 53, 84
104
instrumentiert
Raum, 10, 13, 14, 29, 71
Breite, 105
XIII
Tisch, 9
Obstacle, 91, 93, 95
Umgebung, 9, 10, 14, 34, 77, 108
Online-Rollenspiel, 31
Interaktion, 13, 32, 34, 36, 54, 68, 84,
107, 111
PathEdge, 91
PathFinder, 91
System, 14
PathNetwork, 91
Technik, 14
PathNode, 91
Java, 13, 24, 36, 87, 89, 108
PEACH, 50, 52, 53, 55, 110
Java Remote Method Invocation (RMI), Personal Digital Assistant (PDA), 16,
25, 35, 36, 89
20, 22, 28, 38, 52, 61, 62, 110
Java3D, 57
Plane, 91, 94, 95
JBL Boxen, 19
Pokemon, 32
Kamera, 14, 16, 18, 19, 23, 24, 48, 107
Kanten, 59, 60, 62, 64, 77, 82, 91, 92,
PositionFinder, 91
Positionierung, 10, 13, 16, 18, 19, 25,
36, 48, 64, 65, 68, 92, 96, 107
94, 96
PositioningManager, 90
Gewicht, 61, 62, 78, 82, 83
Knoten, 59–62, 64, 77, 79–82, 91, 96–
Positionsbestimmung
egozentrischen, 28
98
exozentrisch, 28
Start, 82, 83, 99
Ziel, 82, 83, 99
Main Frame, 9
Presentation Planner, 34
Raummodell, 11, 26, 41, 55, 57, 66, 68,
70, 78, 86, 91, 107
Marker, 19, 48
speichern, 87, 89, 104
MEAVIF, 44, 46, 54
Minnie, 30, 39
Mixed Reality, 47
Movements, 91, 102, 104
RFID, 16, 20–22, 62
Ritchie, 47, 49, 55
Robotik, 86
Moving Yoke, 16, 17
SAFIR, 25, 26, 35, 57
Museumsführer, 50, 52, 108
Shortest Path, 64, 65
Museumsrundgang, 51, 108
Software-Architektur, 44
Natural Voice, 52
Stadion, 62
Navigation, 60, 62
STEVE, 41–43, 46, 47, 54
XIV
Subsumption, 86, 101
Dokument, 104
Sweet-Spot, 26
Parser, 89
Skript, 36–38, 102, 104
Ubiquitous Computing, 9, 14
Socket Verbindung, 36
Virtual Augsburg, 47, 55, 57, 59
Virtual Room Inhabitant (VRI), 34,
39, 84, 91, 102, 107
Yamaha Verstärker, 20
Zustand, 68, 85, 100
virtuell
End-, 85
Bewohner, 29, 30
Start-, 85
Character, 47
Kamera, 24
Layer, 25
Modell, 24
Objekt, 25, 41, 42
Person, 31
Raum, 25, 31, 69
Realität, 41, 47, 54
Schallquelle, 26
Taschenlampe, 25
Umgebung, 41, 42, 44, 49
Wegweiser, 61
Welt, 30, 42, 44, 46, 49, 54
Wall, 91–94
Wand, 38, 71, 72, 74, 77, 83, 92–95, 97
Wegenetz, 11, 13, 41, 57, 59, 60, 62–64,
66, 67, 76, 77, 79, 86, 91, 96
erzeugen, 96
Struktur, 96
WhizLow, 46, 47, 54
XML, 87, 89, 107
Datei, 106
XV