Dokument 1

Transcription

Dokument 1
Interaktionsmöglichkeiten an einem Multitouch-Table
durch die Analyse von Bewegungsgrößen der
Benutzereingaben
Fachbereich IEM der
Fachhochschule Gießen-Friedberg
Diplomarbeit
vorgelegt von
Kai Neumann
geb. in Lich
Referent der Arbeit:
Korreferentin der Arbeit:
Dr. Cornelius Malerczyk
Dipl.-Math. (FH) Sabine Langkamm
Fachbereich Informationstechnik,Elektrotechnik,Mechatronik IEM
Friedberg, 2010
Eidesstattliche Erklärung
Hiermit versichere ich, die vorliegende Diplomarbeit selbstständig und nur mit den angegebenen
Hilfsmitteln und Literaturquellen verfasst zu haben.
Friedberg, den 01.03.2010
Kai Neumann
i
Danksagung
Ich möchte mich zuallererst bei Herrn Dr. Cornelius Malerczyk dafür bedanken, dass er mich auf
dieses spannenden Thema aufmerksam machte. Auch für die Betreuung zu meiner vollsten Zufriedenheit möchte ich mich bei ihm und Frau Dipl.-Ing. Sabine Langkamm bedanken.
Mein ganz persönlicher Dank geht an meine liebenswerte Lebenspartnerin Annalena Köhler für
ihre Unterstützung und ihr Verständnis während meiner Diplomarbeit.
Auch bei meinen Eltern, die mir das Studium erst ermöglichten und mich die gesamte Zeit unterstützten, möchte ich mich herzlich bedanken.
Diese Diplomarbeit widme ich all meinen Freunden die ich durch das Studium gewonnen habe.
ii
Inhaltsverzeichnis
Eidesstattliche Erklärung
i
Danksagung
ii
Inhaltsverzeichnis
iii
Abbildungsverzeichnis
vi
1 Einleitung
1.1 Motivation . . . . . . . . . . . . . . . . . . .
1.2 Problemstellung und Zielsetzung . . . . . . .
1.3 Organisation der Arbeit . . . . . . . . . . . .
1.4 Zusammenfassung der wichtigsten Ergebnisse
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Stand der Technik
2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . .
2.2 Multitouch-Table Technologien . . . . . . . . . . . .
2.2.1 Resistive Technologie . . . . . . . . . . . . .
2.2.2 Kapazitive Technologie . . . . . . . . . . . .
2.2.3 Despersive signal Technologie (DST) . . . . .
2.2.4 Surface acoustic wave (SAW) . . . . . . . . .
2.2.5 Diffused illumination (DI) . . . . . . . . . . .
2.2.6 Frustrated total internal reflection (FTIR) . .
2.2.7 Diffused surface illumination (DSI) . . . . . .
2.2.8 Laser light plane (LLP) . . . . . . . . . . . .
2.2.9 IR-Lichtvorhang . . . . . . . . . . . . . . . .
2.2.10 IR-light plane (IRLP) . . . . . . . . . . . . .
2.3 Multitouch-Table Software . . . . . . . . . . . . . .
2.3.1 Betriebssysteme . . . . . . . . . . . . . . . .
2.3.2 Technologie-Demonstrationen . . . . . . . . .
2.3.3 Informations-Visualisierung und -Bearbeitung
2.3.4 Virtuelle Musikinstrumente . . . . . . . . . .
2.3.5 Grafik-Erstellung und -Bearbeitung . . . . . .
2.3.6 Spiele . . . . . . . . . . . . . . . . . . . . .
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
6
6
7
8
8
9
10
11
12
12
13
13
14
14
15
16
17
Inhaltsverzeichnis
2.4
iv
2.3.7 Terminal-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Schlussfolgerung und Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Konzepte zur Interaktion an einem Multitouch-Table
3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . .
3.2 Finger . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Drücken . . . . . . . . . . . . . . . . . . . .
3.2.2 Ziehen und Fallenlassen (Drag & Drop) . . .
3.2.3 Rotation . . . . . . . . . . . . . . . . . . . .
3.2.4 Skalieren . . . . . . . . . . . . . . . . . . . .
3.2.5 Bildlauf (Scrolling) . . . . . . . . . . . . . .
3.2.6 Stoßen . . . . . . . . . . . . . . . . . . . . .
3.2.7 3D Navigation . . . . . . . . . . . . . . . . .
3.3 Fiducials (Objekte) . . . . . . . . . . . . . . . . . .
3.3.1 Auflegen . . . . . . . . . . . . . . . . . . . .
3.3.2 Rotationsausrichtung . . . . . . . . . . . . .
3.4 Schlussfolgerung und Zusammenfassung . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
21
21
22
23
23
24
25
25
26
27
27
28
4 Konzeptentwicklung
4.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Konzepte mit Nutzung der Bewegungsgrößen . . . . . . . . . . . . .
4.2.1 Geschwindigkeit einer Objektrotation . . . . . . . . . . . . . .
4.2.2 Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung . .
4.2.3 Geschwindigkeit einer Bewegung zur physikalischen Interaktion
4.2.4 Beschleunigung der Benutzereingaben . . . . . . . . . . . . .
4.3 Konzepte zur Steigerung der Benutzerfreundlichkeit . . . . . . . . . .
4.3.1 Bewegungsdifferenzierung . . . . . . . . . . . . . . . . . . . .
4.3.2 Geschwindigkeitsvisualisierung . . . . . . . . . . . . . . . . .
4.4 Wahl der Anwendungsbeispiele . . . . . . . . . . . . . . . . . . . . .
4.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
30
31
31
33
33
35
35
35
36
37
38
.
.
.
.
.
.
.
.
.
.
40
40
40
42
42
44
44
46
47
48
54
5 Technische Umsetzung
5.1 Einleitung . . . . . . . . . . . . . . . . .
5.2 Reactivision . . . . . . . . . . . . . . . .
5.3 TUIO-Protokoll . . . . . . . . . . . . . .
5.4 Kommunikation mit Flash . . . . . . . . .
5.5 Verarbeiten der TUIO-Protokoll Daten . .
5.5.1 Blobs . . . . . . . . . . . . . . . .
5.5.2 Fiducials . . . . . . . . . . . . . .
5.5.3 Touch Events . . . . . . . . . . .
5.5.4 Verarbeiten der Reactivision-Daten
5.6 Zusammenfassung . . . . . . . . . . . . .
6 Konzeptumsetzung
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
55
Inhaltsverzeichnis
6.1
6.2
6.3
6.4
6.5
6.6
6.7
v
Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grundgerüst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bewegungsdifferenzierung . . . . . . . . . . . . . . . . . . . . . . . .
Geschwindigkeitsvisualisierung . . . . . . . . . . . . . . . . . . . . .
Curling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5.1 Geschwindigkeit einer Bewegung zur physikalischen Interaktion
6.5.2 Bildschirmbegrenzung . . . . . . . . . . . . . . . . . . . . . .
6.5.3 Wischen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Foto-Applikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.6.1 Rahmendbedingungen . . . . . . . . . . . . . . . . . . . . . .
6.6.2 Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung . .
6.6.3 Nutzung der Geschwindigkeit einer Objektrotation . . . . . . .
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 Konzeptbewertung
7.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Geschwindigkeit einer Bewegung zur physikalischen Interaktion
7.3 Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung . .
7.4 Geschwindigkeit einer Objektrotation . . . . . . . . . . . . . .
7.5 Bewegungsdifferenzierung . . . . . . . . . . . . . . . . . . . .
7.6 Geschwindigkeitsvisualisierung . . . . . . . . . . . . . . . . .
7.7 Probleme bei der Geschwindigkeitsmessung einer Bewegung . .
7.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
55
56
56
56
57
59
60
62
63
64
66
66
67
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
69
71
71
72
73
73
74
8 Zusammenfassung und Ausblick
75
8.1 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Glossar
78
Literaturverzeichnis
80
Abbildungsverzeichnis
1.1
Interaktion mit einem Multitouch-Table . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
Funktionsweise von resistiven Touchscreens . . . . . . . . . . . . . . . .
Funktionsweise von kapazitiven Touchscreens . . . . . . . . . . . . . . .
Funktionsweise der dispersive signal Technologie . . . . . . . . . . . . . .
Funktionsweise eines surface acoustic wave Touchscreens . . . . . . . . .
Funktionsweise eines diffused illumination Touchscreens . . . . . . . . . .
Funktionsweise eines frustrated total internal reflection Touchscreens . . .
Funktionsweise eines diffused surface illumination Touchscreens . . . . . .
Funktionsweise eines laser light plane Touchscreens . . . . . . . . . . . .
Funktionsweise eines IR-Lichtvorhang Touchscreens . . . . . . . . . . . .
Funktionsweise eines IR-light plane Touchscreens . . . . . . . . . . . . .
Verschieben von Objekten in Microsoft Windows 7 auf einem Touchscreen
Bilder des Jefferson Han Technologie-Demonstrations-Videos . . . . . . .
Microsoft Surface bei der Präsidentenwahl auf NBC . . . . . . . . . . . .
Interaktionen mit dem reacTable . . . . . . . . . . . . . . . . . . . . . .
Bedienung von Photoshop MT durch langes Drücken . . . . . . . . . . .
Das Strategie-Spiel RUSE auf einem Multitouch-Table . . . . . . . . . .
Microsoft Surface Terminal-Anwendung . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
7
8
8
9
10
11
11
12
13
14
14
15
16
16
17
18
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
Bedienung der Bildschirmtastatur durch Drücken . . . . . . . . . . . .
Verschieben von Fotos mit dem Finger durch Drag & Drop . . . . . . .
Atan2 Funktion bei der Rotation mit einem Finger. . . . . . . . . . . .
Skalierung eines Bildes mit zwei Fingern . . . . . . . . . . . . . . . . .
Seitliches Scrollen bei einer Microsoft Surface Anwendung . . . . . . .
UI Centrics Air Hocky auf einem Multitouch-Table . . . . . . . . . . .
Nasa World Wind auf einem Multitouch-Table . . . . . . . . . . . . . .
Von Reactivision verwendete Markierungen für Objekte . . . . . . . . .
Farbauswahl beim BMW-Product-Navigator durch Auflegen des Musters
Farbauswahl beim Audi Car Configurator durch Objektrotation . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
23
24
24
25
26
26
27
28
4.1
4.2
4.3
Lautstärkeregler ohne Skala an einem Verstärker . . . . . . . . . . . . . . . . . . . . . . 32
Unterschiedliche Skalen bei einem Mischpult . . . . . . . . . . . . . . . . . . . . . . . . 32
Screenshot aus dem Spiel Tiger Woods PGA Tour 08 . . . . . . . . . . . . . . . . . . . 34
vi
.
.
.
.
.
.
.
.
.
.
2
Abbildungsverzeichnis
vii
4.4
Entstehung eines falschen Geschwindigkeitsvektors
. . . . . . . . . . . . . . . . . . . . 36
5.1
5.2
Fünf Berührungspunkte aufgenommen von Reactivision . . . . . . . . . . . . . . . . . . 41
Screenshot des TUIO-Simulators mit Finger und Objekt . . . . . . . . . . . . . . . . . . 41
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
Curling Zielkreis mit gespielten Steinen . . . . . . . . . . . . . . . . . . . .
Wischen mit dem Besen vor einem gespielten Curlingstein . . . . . . . . .
Konzept der Geschwindigkeitsvisualisierung beim Curling . . . . . . . . . .
Screenshot des Curling-Spiels bei der Begrenzung auf den Bildschirm. . . .
Vergleich der Koordinaten des Sprites mit der Eisbahn und des Bildschirms
Screenshot des Curling-Spiels mit Eisfläche über den Bildschirm hinaus . .
Korrekte Ausführung der Wischbewegung vor dem Stein . . . . . . . . . .
Screenshot der Foto-Applikation mit aufgerufener Bildschirmtastatur. . . .
Rotation eines Fotos beim Verschieben . . . . . . . . . . . . . . . . . . . .
Problematik des Grad-Sprungs von 0 auf 360 Grad und umgekehrt. . . . . .
7.1
7.2
Vergleich der zwei Curling-Spiel-Umsetzungen . . . . . . . . . . . . . . . . . . . . . . . 70
Verdeckung eines Fotos durch das Objekt beim Skalieren . . . . . . . . . . . . . . . . . 72
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
58
59
61
61
62
62
64
65
67
Kapitel 1
Einleitung
1.1
Motivation
Die berührungssensitive Interaktion zwischen Anwender und Computer ohne die Verwendung von
Standard-Eingabegeräten, wie Tastatur oder Computermaus, gewinnt immer mehr an Popularität.
Durch Produkte wie das iPhone oder die Touchscreen-Unterstützung von Windows 7 wurde die
Touchscreen-Technologie auch kommerziell bekannt. Gegenwärtig nutzen bereits vielfältige Geräte,
wie zum Beispiel Navigationsgeräte, PDAs, Smartphones, Tablet-PCs, Spielekonsolen wie Nintendo
DS und ebenfalls der Multitouch-Table die Technologie der intuitiven Eingabe, um eine neue Art
der einfachen Interaktion mit einem Computersystem und dessen Anwendungen zu ermöglichen.
Viele Anwendungen lassen sich intuitiv bedienen, selbst Benutzer ohne Vorwissen oder technische
Einweisung sind in der Lage, mit Touchsystemen zu arbeiten. Aufgrund dessen wird die Technologie
des Touchscreens auch bei vielen öffentlich zugänglichen Systemen, wie Fahrkartenautomaten oder
Informationsschaltern, verwendet.
Im Fokus der Forschung und Entwicklung steht zur Zeit die Innovation Multitouch-Table, ein Eingabegerät in Form eines Tisches mit eigener Projektionsfläche, auf dem sowohl die Fingerkuppen eines
oder mehrerer Anwender, als auch Objekte mit speziellen Markierungen vom Gerät erkannt werden
können. Große Popularität erlangte der Multitouch-Table unter anderem durch die Präsentation von
Microsoft Surface im Jahr 2007, einem Multitouch-Table mit Hard- und Software von Microsoft.
Mittlerweile gibt es eine Vielzahl von Herstellern, die sich auf die Entwicklung von MultitouchTables und deren Software spezialisieren und ebenso mehrere Verfahren zur Realisierung eines multitouchfähigen Systems. Durch die Veröffentlichung von Open Source Frameworks zur Erkennung
von Berührungsdaten sowie Anleitungen zum Eigenbau eines Multitouch-Tables im Internet, können
diese immer günstiger hergestellt werden. Durch die damit verbundene Verbreitung der Hardware des Multitouch-Tables entstanden weitere Anwendungen aufgrund von Forschungsprojekten an
Fachhochschulen und Universitäten, sowie durch Entwicklungen von Privatpersonen. Eine häufig
umgesetzte Anwendung ist zum Beispiel eine Art Fotoalbum, der Benutzer kann durch Bewegungen
seiner Finger Fotos verschieben, skalieren und sie rotieren lassen.
1
1.2. Problemstellung und Zielsetzung
c
Abbildung 1.1: Interaktion mit einem Multitouch-Table. GestureTek
Bisher wurden die Optionen, welche die Interaktion mit einem Multitouch-Table ermöglicht, noch
nicht ausgeschöpft. Gleiche Konzepte werden nur immer wieder verwendet und wiederholt. Vor allem Geschwindigkeit und Beschleunigung von Fingern und Objekten auf der Oberfläche des Tisches
wurden bislang nur selten angewandt, obwohl sie mannigfaltige neue Möglichkeiten zur Interaktion
bieten.
Im Rahmen dieser Diplomarbeit wird zunächst die für einen Multitouch-Table verfügbare Hard- und
Software analysiert. Anschließend werden schon umgesetzten Konzepte zur Interaktion an einem
Multitouch-Table geprüft, im besonderen Hinblick auf die Nutzung von Geschwindigkeit und Beschleunigung einer Bewegung zur Bedienung von Multitouch-Anwendungen. Darauf folgend werden
neue Konzepte zur Interaktion entwickelt, die insbesondere die Möglichkeiten durch Geschwindigkeit und Beschleunigung einer Bewegung nutzen. Die entwickelten Konzepte werden exemplarisch
anhand von Beispielanwendungen überprüft und bewertet.
Für die Entwicklung der Beispielanwendungen wird als technische Basis das durch Reactivision1 bereitgestellte TUIO-Protokoll2 und auf Anwendungsseite die Entwicklungsumgebung Flash verwendet.
1.2
Problemstellung und Zielsetzung
Die berührungssensitive Interaktion zwischen Anwender und Computer bietet völlig neue Möglichkeiten zur Anwendungssteuerung, welche bisher jedoch noch nicht ausgeschöpft wurden. Trotz der
vielen Forschungsprojekte an Fachhochschulen und Universitäten, sowie Anwendungen von Unternehmen oder Privatpersonen, werden stets die gleichen Konzepte zur Interaktion in den Anwendungen genutzt. Vor allem Konzepte zur Interaktion durch Geschwindigkeit und Beschleunigung
der Benutzereingaben werden selten umgesetzt und das Potential der Möglichkeiten kaum genutzt.
Da meist die Intuitivität bei der Bedienung von Touchscreen- Anwendungen im Vordergrund steht,
1
2
http://reactivision.sourceforge.net/
http://tuio.org/
2
1.3. Organisation der Arbeit
bietet sich bei vielen Anwendungsfeldern von Multitouch-Table-Software die Nutzung der Bewegungsgrößen an. Bei einem Großteil der Spiele bietet eine intuitive Steuerung durch Geschwindigkeit
oder Beschleunigung Möglichkeiten für ein völlig neues Spielerlebnis.
Bisher werden vor allem die Koordinaten einer oder mehrerer Berührungen ausgelesen und zur Bedienung einer Anwendung genutzt. Dies hat für den Benutzer den Vorteil der leichteren Kontrolle
dieser Werte, da er den Touchscreen an exakt dieser Position berührt.
Ein Problem bei der Bedienung einer Anwendung durch Geschwindigkeit und Beschleunigung einer
Bewegung stellt die Präzision der Steuerung dar. Der Benutzer kann nur ungenügend abschätzen
oder während der Eingabe erkennen, wie stark die Auswirkung der Geschwindigkeit oder Beschleunigung der aktuellen Bewegung ist. Zudem nehmen Menschen Geschwindigkeiten unterschiedlich
wahr. Bei manchen Anwendungen ist eine physikalische Interaktion von Objekten von großer Bedeutung. Ein vom Benutzer beschleunigtes Objekt muss die übergebene Geschwindigkeit auch wieder
abbauen, da es sonst unendlich lange in Bewegung bleiben würde. Dies erfordert die Simulation
einer Reibung. Des Weiteren ist eine Simulation der physikalischen Gesetzte für die Kollision von
Objekten erforderlich. Das beinhaltet eine Steuerung der Objekte durch Benutzereingabe, sowie eine
Beeinflussung des Verhaltens der Objekte durch eine Physik-Engine.
Eine Überprüfung der bereits vorhandenen Konzepte zur Interaktion an einem Multitouch-Table soll
erfolgen, um festzustellen, inwiefern die Bewegungsgrößen der Benutzereingaben zur Interaktion genutzt werden. Ziel dieser Arbeit ist es, für das bisher nicht genutzte Potential dieser Eingabemöglichkeiten neue Konzepte zur Interaktion zu entwickeln. Anschließend werden die entwickelten Konzepte
in Flash mithilfe des TUIO-Protokolls in Beispielanwendungen exemplarisch umgesetzt und bewertet.
1.3
Organisation der Arbeit
In Kapitel 2 wird zunächst der Stand der Technik von Hard- und Software des Multitouch-Tables
analysiert. Der technische Ansatz der verschiedenen Technologien zur Umsetzung eines MultitouchTables wird vorgestellt und auf Stärken und Schwächen geprüft. Um eine Übersicht über die umfangreich vorhandene Software zu schaffen, erfolgt eine Kategorisierung und Erläuterung der Anwendungsfelder von Multitouch-Table Software. In Kapitel 3 erfolgt die Überprüfung der bereits
umgesetzten Konzepte zur Interaktion in der vorhandenen Software. Hierbei wird der FoKus auf die
Interaktion durch die Nutzung der Bewegungsgrößen von Benutzereingaben gelegt. Kapitel 4 befasst
sich mit der Entwicklung neuer Konzepte zur Benutzung der Bewegungsgrößen von Benutzereingaben zur Anwendungssteuerung. Zur exemplarischen Umsetzung der Konzepte wird in Kapitel 5 das
Auslesen und Verarbeiten der Berührungsdaten des TUIO-Protokolls dokumentiert. Mithilfe dieser
Daten folgt in Kapitel 6 die exemplarische Umsetzung der Konzepte in Beispielanwendungen. Die
Konzepte werden in Kapitel 7 bewertet, bevor eine abschließend Zusammenfassung der wichtigsten
Ergebnisse erfolgt.
3
1.4. Zusammenfassung der wichtigsten Ergebnisse
1.4
Zusammenfassung der wichtigsten Ergebnisse
Bei der Überprüfung der Hard- und Software des Multitouch-Tables wurde deutlich, wie vielseitig
einsetzbar diese Technologie ist. Die Anzahl unterschiedlicher Softwarelösungen ist jedoch aufgrund
der noch eingeschränkten Verbreitung des Systems begrenzt. Bei der Prüfung der Konzepte zur Interaktion an einem Multitouch-Table wurde deutlich, dass die Intuitivität im Vordergrund steht. Die
Zahl unterschiedlicher Konzepte ist jedoch sehr beschränkt. Vor allem das Potential der Möglichkeiten zur Nutzung der Bewegungsgrößen von Benutzereingaben wird dabei nur ansatzweise und
unzureichend genutzt. Auf der Grundlage der Ergebnisse wurden neue Konzepte mit Nutzung der
Geschwindigkeit entwickelt:
• Geschwindigkeit einer Objektrotation
• Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
• Geschwindigkeit einer Bewegung zur physikalischen Interaktion
Die Nutzung der Geschwindigkeit einer Objektrotation hat gegenüber dem bisherigen Konzept der
Rotationsausrichtung die Vorteile, dass keine Skala zur Orientierung um das Objekt benötigt wird
und somit keine 360 Grad Beschränkung der Eingabe besteht. Das Konzept ermöglicht es, große
und kleine Einstellungsschritte präzise und schneller umzusetzen. Darüber hinaus kann die Position
des Objektes die auszuführende Aktion beeinflussen.
Die Nutzung der Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung vervielfacht die Anzahl der Interaktionsmöglichkeiten. Mit der gleichen Bewegung, in unterschiedlicher Geschwindigkeit
ausgeführt, können so mehrere verschiedene Aktionen durchgeführt werden.
Durch die Nutzung der Geschwindigkeit einer Bewegung zur physikalischen Interaktion können
Touchscreen-Anwendungen noch realer wirken, was vor allem bei der Entwicklung neuer Spielkonzepte von großer Bedeutung ist.
Darüber hinaus erfolgte die Entwicklung eines Konzeptes zur Bewegungsdifferenzierung sowie ein
Konzept zur Geschwindigkeitsvisualisierung. Durch die Bewegungsdifferenzierung wird zwischen fortlaufenden und gestoppten Bewegungen unterschieden. Die Geschwindigkeitsvisualisierung soll dem
Benutzer ermöglichen, die Geschwindigkeit einer Bewegung besser abzuschätzen. Beide Konzepte
sollen die Kontrolle der Geschwindigkeit in Anwendungen erleichtern.
Die neu entwickelten Konzepte werden exemplarisch in Beispielanwendungen erprobt.
Zur Umsetzung der Anwendungen in Flash wurden Bibliotheken zum Empfangen und Verarbeiten
des von Reactivision gesendeten TUIO-Protokolls geschrieben. Zur Berechnung der Geschwindigkeit sowie zur Bewegungsdifferenzierung wurden die Daten ergänzt. Die Umsetzung der Konzepte
in einer Foto-Applikation und einem Curling-Spiel konnte mit Hilfe dieser Bibliotheken erfolgreich
umgesetzt werden.
Da sich die Fertigstellung eines Multitouch-Tables an der Fachhochschule verzögerte, erfolgte die
Erprobung der Konzepte in den Anwendungen mit dem TUIO-Simulator.
Die neuen Konzepte funktionieren bis auf kleine Schwierigkeiten wie in der Entwicklung vorgesehen.
Allerdings stellen die unterschiedlichen Touchscreengrößen ein Problem bei der Definierung fester
Werte dar.
4
Kapitel 2
Stand der Technik
Dieses Kapitel gibt einen Überblick über den aktuellen Stand der Technik des Multitouch-Tables. Es
werden die verschiedenen Technologien zur Umsetzung eines multitouchfähigen Systems vorgestellt,
um zu prüfen, welche technischen Möglichkeiten die unterschiedlichen Ansätze bieten. Anschließend
wird sich mit der Software des Multitouch-Tables befasst. Die vorhandenen Softwarekonzepte werden
anhand ihrer Anwendungsbereiche vorgestellt. Diese Analyse dient als Grundlage für die Prüfung der
in der Software umgesetzten Konzepte zur Interaktion.
2.1
Einleitung
Es erfolgt eine Analyse der vorhandenen Techniken des Multitouch-Tables. Nicht alle Technologien zur Realisierung eines Touchscreens eignen sich zur Umsetzung eines Multitouch-Tables. Der
Multitouch-Table setzt die Möglichkeit mehrerer Eingaben gleichzeitig voraus. Technologien, die
nicht mehr als einen Finger erkennen, werden deshalb nicht berücksichtigt. Die technischen Ansätze,
die alle Anforderungen erfüllen, werden vorgestellt und Vor- und Nachteile aufgezeigt.
Anschließend erfolgt eine Analyse der Multitouch-Table Software. Da es eine große Anzahl von
Applikationen gibt, die sich jedoch in ihren Funktionen kaum unterscheiden, werden die verschiedenen Anwendungsbereiche der Software anhand von Beispielanwendungen exemplarisch vorgestellt.
2.2
Multitouch-Table Technologien
Eine Vielzahl verschiedener Technologien, die mehrere Berührungspunkte erkennen und verarbeiten
können, liegen zur Mensch-Computer-Interaktion vor.
Hierbei wird zwischen folgenden technischen Ansätzen unterschieden:
• Elektrische Systeme
Die resistive und kapazitive Technologie basiert auf der Messung von Spannung und Strom.
• Mechanische Systeme
Die despersive signal Technologie basiert auf der Messung von Vibrationen.
5
2.2. Multitouch-Table Technologien
• Akustische Systeme
Die surface acoustic wave Technologie basiert auf der Messung von Ultraschallwellen.
• Optische Systeme
Die Ansätze von diffused illumination, frustrated total internal reflection, diffused surface
illumination, laser light Plane, IR-Lichtvorhang und IR-light plane basieren auf der Erkennung
und Messung von Infrarot-Licht.
Neben dem technischen Hintergrund, werden die Vor- und Nachteile der Technologien beleuchtet.
2.2.1
Resistive Technologie
Bei resistiven Touchscreens ist der Monitor mit einer flexiblen, berührungsempfindlichen Schicht
versehen, die auf Druck reagiert [SS08] [Cor07]. Diese Schicht besteht aus zwei leitfähigen, transparenten ITO (Indiumzinnoxid)-Schichten, welche durch Abstandhalter (spacer dots) voneinander
getrennt sind. An die untere Schicht wird eine Spannung in Richtung X und an die obere in Richtung
Y angelegt. Wird durch eine Berührung Druck ausgeübt, berühren sich die Schichten und die Spannung wird an Sensoren weitergeleitet. Anhand dieser Spannung können die X- und Y-Koordinaten
der Berührung errechnet werden. Die Leistungsfähigkeit des Systems hängt von der Anzahl der Sensoren zur Messung der Spannung ab. Aus diesem Grund werden resistive Systeme nach der Anzahl
der Sensoren benannt. Ein 4-Wire System verfügt beispielsweise nur über vier Sensoren und ist somit nur singletouchfähig. Ein sogenanntes X-Wire System verfügt dahingegen über eine Matrix aus
kleinen Sensoren und kann somit multitouchfähig sein. Nachteil dieser Technologie ist die geringe
Lichtdurchlässigkeit der berührungsempfindlichen Schicht. Resistive Touchscreens sind preislich sehr
günstig, sodass sie vorwiegend in mobilen Geräten wie PDAs, Navigationsgeräten, Tablet-PCs und
Handys Verwendung finden.
c
Abbildung 2.1: Schematische Darstellung der Funktionsweise von resistiven Touchscreens. Visam
2.2.2
Kapazitive Technologie
Bei der kapazitiven Technologie wird auf einer Glasscheibe vor dem Display eine leitfähige MetalloxidSchicht aufgetragen und an den vier Eckpunkten dieser Schicht eine Rechteckspannung angelegt
6
2.2. Multitouch-Table Technologien
[Cor07] [UL09]. Hierdurch wird ein elektrisches Feld erzeugt, welches durch Berührung über den
menschlichen Körper eine kapazitive Verbindung mit der Erde herstellt. Der hier entstehende Ladungstransport wird nun in Form von elektrischen Strom gemessen und ausgewertet. So können
die X- und Y-Koordinaten der Berührung errechnet werden. Ein Nachteil dieser Technologie ist,
dass sie nur Finger und dafür entwickelte Stifte erkennen kann. Von Vorteil ist, dass die MetalloxidSchicht mit einem Sicherheitsglas geschützt werden kann und diese Technologie hierdurch sehr widerstandsfähig gegenüber Beschädigungen wird. Sie wird häufig in mobilen Geräten wie dem iPhone
verwendet, kann aber auch in weitaus größeren Geräten Anwendung finden.
Abbildung 2.2: Schematische Darstellung der Funktionsweise von kapazitiven Touchscreens.
c
Visam
2.2.3
Despersive signal Technologie (DST)
Bei der despersive signal Technologie werden auf der Rückseite einer Glasplatte vor dem Bildschirm Sensoren angebracht, welche Vibrationen erkennen und messen [Fas09]. Wird die Glasscheibe
berührt, messen diese Sensoren die Vibration und wandeln die mechanische Energie in elektrische
Energie um (siehe Abbildung 2.3). Diese Daten werden mit einer Dispersionsanalyse ausgewertet
und ein Berührungspunkt errechnet. Bei dieser Technologie werden jedoch nur Berührungen und
Bewegungen erkannt, stillstehende Objekte und Finger werden nicht erfasst. Diese Technik eignet
sich besonders für große öffentliche Systeme, da sie sehr stabil ist. Selbst Kratzer in der Glasscheibe
beeinflussen nicht die Qualität der Daten.
7
2.2. Multitouch-Table Technologien
Abbildung 2.3: Schematische Darstellung der Funktionsweise der dispersive signal Technologie.
[Fas09]
2.2.4
Surface acoustic wave (SAW)
Bei der Oberwellen-Technologie werden Ultraschallwellen von einem Controller sowohl horizontal als
auch vertikal in eine Glasplatte eingespeist [Cor07]. Auf der jeweils gegenüberliegenden Seite treffen
diese Wellen auf einen Reflektorstreifen, der diese zu einem Sensor weiterleitet. Durch Berührung
der Glasplatte wird ein Teil der Schallwellen absorbiert. Mittels Messung der Absorptionszeit können
die X- und Y-Koordinaten der Berührung errechnet und mithilfe der Stärke der Absorption der
Druck einer Berührung gemessen werden. Da die Glasplatte keinerlei Beschichtungen benötigt, bietet
dieses System optimale Transparenz. Durch die kompakte Bauweise wird diese Technologie sowohl
in kleinen, als auch in großen Systeme eingesetzt.
Abbildung 2.4: Schematische Darstellung der Funktionsweise eines surface acoustic wave Touchsc
creens. Visam
2.2.5
Diffused illumination (DI)
Diffused illumination ist eine der kostengünstigsten optischen Technologien für ein multitouchfähiges System [UL09] [AT09] [Mul08]. Ein Projektor projiziert das Bild von unten auf eine matte
8
2.2. Multitouch-Table Technologien
Acrylglasscheibe, die gleichmäßig von Infrarotstrahlern beleuchtet wird. Eine Infrarotkamera filmt
nun die Platte und zeichnet das durch Annäherung oder Berührung der Acrylglasscheibe reflektierte
Infrarotlicht auf. Die Daten der Kamera werden anschließend ausgewertet und somit die X- und YKoordinaten einer Berührung errechnet. Nicht gleichmäßige Bestrahlung durch Infrarotstrahler führt
zu Fehlern in der Bilderkennung. Da es keine sensorischen Einschränkungen gibt, ist es mit dieser
Technologie möglich, eine unbegrenzte Anzahl von Objekten und Fingern zu verfolgen. Beispielsweise
Microsoft Surface nutzt diese Technologie.
Abbildung 2.5: Schematische Darstellung der Funktionsweise eines diffused illumination Touchsc
creens. Palomavillegas
Die optischen Systeme diffused illumination, frustrated total internal reflection, diffused surface illumination sowie laser light plane, bei denen das Bild von einem Projektor auf eine Glasscheibe projiziert wird, müssen einen Mindestabstand zwischen Projektor und Projektionsfläche einhalten. Daher
ergibt sich bei diesen Technologien die Form des Tisches (Multitouch-Table). Bei diesen optischen
Systemen hängt die Qualität der Tracking-Daten außerdem stark von der Auflösung und Bildrate
der Kamera ab. Die Aufzeichnung des Infrarotlichtes kann durch hohe Anteile der Infrarotstrahlung im Sonnenlicht gestört werden. Um die Störungen zu minimieren, ist eine vor Infrarotstrahlung
schützende Schicht nötig. Optimal funktioniert diese Technologien in Räumen mit künstlichem Licht
ohne Infrarotanteile.
2.2.6
Frustrated total internal reflection (FTIR)
Die FTIR-Technologie ähnelt im Aufbau sehr der DI-Technologie, es wird jedoch keine matte, sondern eine klare Acrylglasscheibe verwendet und diese auch auf eine andere Weise beleuchtet [UL09]
[AT09] [Mul08]. Die Scheibe wird nicht aus Richtung des Projektors, sondern seitlich der Acrylglasscheibe durch Infrarotlicht von LEDs bestrahlt. Dieses seitlich eingestrahlte Licht verlässt die Glasplatte nicht, bedingt durch die entstehende Totalreflexion, die beim Übergang von Licht aus einem
optisch dichterem zu einem optisch dünneren Medium entsteht. Treffen die Lichtstrahlen in einem
9
2.2. Multitouch-Table Technologien
bestimmten Winkel auf die Grenzfläche der Medien, werden diese vollständig reflektiert. Durch eine
Berührung der Acrylglasscheibe entsteht nun Streulicht, welches wie bei der DI-Technik von einer
Infrarotkamera aufgenommen wird. Der Vorteil dieser Technologie gegenüber der DI-Technologie ist,
dass sich Berührungen stärker abheben und so besser erkannt und gefiltert werden können. Aufgrund
der hohen Genauigkeit können Objekte präziser erkannt werden. Allerdings kann die lichtleitende klare Acrylglasscheibe nicht als Projektionsfläche dienen, weshalb sie noch mit einer Projektionsschicht
versehen werden muss. Eine sensorische Einschränkung ist, wie ebenfalls bei der DI-Technologie,
nicht vorhanden. Da bei der FTIR-Technologie das Bauvolumen ähnlich dem DI System ist, eignet
sich diese Technik ebenfalls nur für große Displays.
Abbildung 2.6: Schematische Darstellung der Funktionsweise eines frustrated total internal reflecc
tion Touchscreens. Palomavillegas
2.2.7
Diffused surface illumination (DSI)
Der Aufbau der DSI-Technologie ähnelt dem der DI- und FTIR-Technologie [AT09]. Es dient ebenfalls ein Rahmen aus Infrarot-LEDs als Lichtquelle, es wird in diesen Rahmen keine Acrylglasscheibe
eingesetzt, sondern eine spezielle endlighten Plexiglasscheibe. Endlighten bedeutet, dass sich innerhalb der Scheibe kleine Teilchen befinden, die sich wie tausende kleine Spiegel verhalten. Dadurch
wird das in die Ränder der Scheibe gestrahlte Infrarotlicht gleichmäßig innerhalb der Oberfläche
verteilt (siehe Abbildung 2.7). Der Nachteil dieser Methode gegenüber der DI- und FTRI-Methode
ist der schlechtere Kontrast der zu erkennenden Finger und Objekte, da in Richtung der Kamera Infrarotlicht durch die Teilchen im Glas gespiegelt wird. Dieses System kann ebenfalls eine unbegrenzte
Anzahl von Fingern verfolgen und Objekte erkennen.
10
2.2. Multitouch-Table Technologien
Abbildung 2.7: Schematische Darstellung der Funktionsweise eines diffused surface illumination
Touchscreens. [AT09]
2.2.8
Laser light plane (LLP)
LPP ist vom Aufbau dem DI-, FTIR- und DSI-System sehr ähnlich und unterscheidet sich ebenfalls
nur in der Beleuchtung [UL09] [AT09]. Hier werden Lasermodule verwendet, die durch spezielle
Linienlinsen eine Fläche aus Infrarotlicht über der Oberfläche des Displays aufspannen. Wird diese
Infrarotfläche durch eine Berührung durchbrochen, zeichnet eine Kamera die Infrarotstrahlen zur
Auswertung auf. Ein Nachteil hierbei ist das mögliche Entstehen von Abschattungseffekten, die vor
allem die Objekterkennung einschränken. Aufgrund der Bauweise ist auch dieses System nur für
große Displays geeignet.
Abbildung 2.8: Schematische Darstellung der Funktionsweise eines laser light plane Touchscreens.
c
NUI-Group
11
2.2. Multitouch-Table Technologien
2.2.9
IR-Lichtvorhang
Bei diesem Verfahren wird durch LEDs an den beiden nicht gegenüberliegenden Seiten eine Art
Lichtvorhang über dem Display aufgespannt [UL09]. An der jeweils gegenüberliegenden Seite der LED
befinden sich Infrarotlicht-Detektoren, die das gestrahlte Licht empfangen. Durch eine Berührung
wird der Lichtfluss zu den Detektoren an dieser Stelle unterbrochen. Diese Detektoren ohne Lichtfluss
geben die X- und Y-Koordinaten der Berührung an. Da größere Objekte mehr Dioden verdecken, kann
somit auch die Größe von Objekten erkannt werden, jedoch ohne genaue Konturen. Ein gravierender
Nachteil dieser Technologie ist, dass mehrere zeitgleiche und sich kreuzende Berührungen zu Fehlern
des Systems führen können, da die X- und Y-Koordinaten nicht mehr eindeutig zugeordnet werden
können. Durch die kompakte Bauweise kann diese Technologie sowohl bei großen als auch bei kleinen
Displays verwendet werden. Ein weiterer Vorteil ist die problemlose Anbringung des IR- Lichtvorhangs
an herkömmliche Flachbildschirme.
Abbildung 2.9: Schematische Darstellung der Funktionsweise eines IR-Lichtvorhang Touchscreens.
[UL09]
2.2.10
IR-light plane (IRLP)
Das IRLP-Verfahren funktioniert technisch ähnlich wie der IR-Lichtvorhang, unterscheidet sich im
Aufbau [UL09]. Zwei Sensor/Emitter-Module befinden sich in den gegenüberliegenden Seiten über
dem Display. Die Emitter spannen einen Lichtvorhang über das Display und die Sensoren messen Unterbrechungen durch Berührungen (siehe Abbildung 2.10). Aufgrund der Bauweise tritt eine
Verzerrung auf, welche durch komplexe Algorithmen behoben wird. Wie bei der IR-LichtvorhangTechnologie ist die Erkennung von Objekten ebenfalls nur eingeschränkt möglich. Die IR-Light Plane
kann, wie bereits der IR-Lichtvorhang, an großen und kleinen Flachbildschirmen angebracht werden.
12
2.3. Multitouch-Table Software
Abbildung 2.10: Schematische Darstellung der Funktionsweise eines IR-light plane Touchscreens.
Zu sehen ist der Lichtvorhang von zwei Sensor/Emitter-Modulen durchbrochen von einem Finger.
c
Next
Window
2.3
Multitouch-Table Software
Nachdem die verschiedenen Technologien und deren technische Möglichkeiten aufgezeigt wurden,
beschäftigt sich der folgende Abschnitt mit der bisher zur Verfügung stehenden Software. Die Technik
des Multitouch-Tables wird für viele verschiedene Zwecke mit unterschiedlicher Software eingesetzt.
Um neue Konzepte zu entwickeln, ist es erforderlich einen Überblick über die bisher vorhandene
Software zu schaffen. Aufgrund der bereits umfangreich vorliegenden Software erfolgt eine Gliederung in die Bereiche Betriebssysteme, Technologie-Demonstrationen, Informations-Visualisierung
und -Bearbeitung, virtuelle Musikinstrumente sowie Grafik-Erstellung und -Bearbeitung. Des Weiteren werden die vorhandene Software im Spielbereich und die Anwendungen im Terminalbereich
untersucht.
2.3.1
Betriebssysteme
Eine wesentliche Voraussetzung für die Verbreitung des Multitouch-Tables sind die Betriebssysteme [ct037] [PK55]. Sie erlauben es, Anwendungen über standardisierte Schnittstellen mit der
Multitouch-Hardware zusammenzuführen, sofern die Treiber der Hardware vom Hersteller bereitgestellt werden. Dadurch können Anwendungen indirekt über das Betriebssystem auf die MultitouchHardware zugreifen.
Bisher gibt es zwei Betriebssysteme für einen Multitouch-Table: MPX Linux und Windows 7. MPX
Linux ist Linux mit einer Multi-Point X Server (MPX)-Modifikation. Das Programm ist in der Lage,
mehrere Mauszeiger oder mehrere Bewegungsquellen, wie bei einem Multitouch-Table, zu verwalten.
Somit bietet MPX Linux eine Plattform für Multitouch-Anwendungen, das Angebot an Softwareund Hardware-Unterstützung ist noch sehr begrenzt.
Windows 7, das jüngste Betriebssystem von Microsoft, verfügt ebenfalls über Multitouch Unterstützung und enthält zusätzlich Programme zur Nutzung von Multitouch. Anwendungen, wie
beispielsweise Wordpad, Paint oder auch der Internet Explorer, lassen sich mit Multitouch-Gesten
bedienen (siehe Abbildung 2.11).
13
2.3. Multitouch-Table Software
Abbildung 2.11: Verschieben von Objekten in Microsoft Windows 7 auf einem Touchscreen.
c
Microsoft
2.3.2
Technologie-Demonstrationen
Es existierten eine Vielzahl von Anwendungen, die neben dem Demonstrieren der Interaktionsmöglichkeiten kein erkennbares Ziel verfolgen. Sie entstehen vorrangig als Ergebnis von Forschungsprojekten
im Bereich Multitouch oder werden von Privatpersonen experimentell erstellt [UL09] [PK55].
Eine der bekanntesten Technologiedemonstration ist das im Jahr 2006 erschienene Video des Teams
von Jefferson Han1 . Es zeigt eine Vielzahl von Anwendungen, die durch intuitive Bewegungen gesteuert werden.
c
Abbildung 2.12: Bilder des Jefferson Han Technologie-Demonstrations-Videos. Jefferson
Han
2.3.3
Informations-Visualisierung und -Bearbeitung
Ein weiterer Anwendungsbereich von Multitouch ist die Visualisierung und Bearbeitung von Datenund Informationsmengen [UL09] [WB09]. Ein häufig umgesetztes Konzept der Informations-Visualisierung
und -Bearbeitung ist das eines Photo Browsers, Bilder können durch Berührungen verschoben, vergrößert und gedreht werden. Eine ebenso vielfach umgesetztes Multitouch-Konzept ist die Globusnavigation, basierend auf dem Datenbestand von beispielsweise Google Earth. Bei dieser Anwendung
1
http://cs.nyu.edu/%7Ejhan/
14
2.3. Multitouch-Table Software
kann der Benutzer mit Berührungen durch eine dreidimensionale geografische Darstellung der Erde
navigieren.
Darüber hinaus existieren zahlreiche Anwendungen für Präsentationszwecke. Beispielsweise nutzte der amerikanische Fernsehsender NBC bei der Präsidentenwahl 2008 Microsoft Surface, um die
Wahlergebnisse für den Zuschauer zu veranschaulichen.
Abbildung 2.13: Microsoft Surface bei der Präsidentenwahl auf dem Sender NBC. [WB09]
Darüber hinaus gibt es zahlreiche Terminal-Anwendungen zur Informations-Visualisierung und Bearbeitung, auf die später genauer eingegangen wird.
2.3.4
Virtuelle Musikinstrumente
Eine gängige Multitouch-Anwendung im Bereich der Musikinstrumente ist die Umsetzung eines
Pianos [UL09]. Auf dem Bildschirm werden die Tasten eines Pianos dargestellt und können durch
Berührung des Bildschirms gespielt werden.
Ein neuartiges, auf der Technologie des Multitouch-Table basierendes elektronisches Musikinstrument, ist der reacTable. Durch das Platzieren und Manipulieren von fiducials markierten Objekten
auf dem reacTable können verschiedene Elemente, wie Synthesizer, Effekte, Loops oder Kontrollelemente, zum Erzeugen von Musik gesteuert und miteinander verbunden werden (siehe Abbildung
2.14).
15
2.3. Multitouch-Table Software
Abbildung 2.14: Interaktionen mit dem reacTable durch die Manipulation von Objekten.
c
reacTable
2.3.5
Grafik-Erstellung und -Bearbeitung
Zahlreiche Anwendungen zur Grafikerstellung für Multitouch-Tables liegen bereits vor [UL09]. Überwiegend sind es Technik-Demos zum Malen in verschiedenen Farben durch Berührungen. Im Demonstrationsvideo von Jefferson Han ist eine Anwendung zu sehen, die zusätzlich aus verbundenen
Linien Vektorgrafiken erstellte und diese an automatisch erstellten Bones durch Berührung bewegt
werden konnten.
Das Projekt Shared Design Space der Fachhochschule Oberösterreich ermöglicht darüber hinaus das
Zeichnen mit digitalen Stiften. Die Anwendung wurde für einen überdimensionalen Multitouch-Table
geschrieben und ermöglicht das gleichzeitige Arbeiten mehrere Personen an einer Zeichnung oder
einem Bild.
Eine weitere nennenswerte Anwendung ist Photoshop MT. Photoshop MT ist ein Bildbearbeitungsprogramm und wurde an der Hochschule für Gestaltung in Schwäbisch Gmünd entwickelt. Neben
dem Zeichnen bietet es zusätzlich eine Anzahl von Funktionen, die für Bildbearbeitungssoftware
typisch sind. Es steht nicht mit der gleichnamigen Software der Firma Adobe in Verbindung.
c
Abbildung 2.15: Bedienung von Photoshop MT durch langes Drücken. Envis-Precisely
16
2.3. Multitouch-Table Software
2.3.6
Spiele
Im Bereich der Computerspiele finden sich weitere Einsatzgebiete des Multitouch-Tables [UL09]
[WF09]. Ein vor allem für den Bereich der Spielerstellung genutzter Vorteil des Multitouch-Tables
gegenüber anderen Eingabegeräten ist die Multi-Benutzer-Fähigkeit. Sie ermöglicht das Zusammenspielen mehrerer Personen an einem Tisch.
Ein bekanntes Spiel, welches diese Möglichkeit nutzt, ist das von UI Centric auf den MultitouchTable übertragene Air Hockey. Es gewann große Popularität, da es auf einem sehr großen 103 Zoll
Panasonic Plasma-TV mit U-Touch Overlay präsentiert wurde. Der Spieler schlägt mit einem virtuellen Schläger, welcher mit dem Finger gesteuert wird, einen ebenso virtuellen Puck. Ziel des Spiels
ist es, den Puck in das Tor des Gegenspielers zu stoßen und Treffer im eigenen Tor abzuwehren.
Einen hohen Bekanntheitsgrad erreichte das Spiel RUSE der Firma Ubisoft. Es ist ein technisch
hochwertiges Strategiespiel, es kann mit Maus und Tastatur bedient werden und bietet darüber
hinaus volle Multitouch-Unterstützung. Bei RUSE handelt es sich um ein Strategiespiel, welches
die Touchsteuerung nutzt, um, ähnlich der Globusnavigation, durch eine 3D Karte zu steuern und
militärischen Einheiten Befehle zu erteilen.
c
Abbildung 2.16: Das Strategie-Spiel RUSE auf einem Multitouch-Table. Ubisoft
2.3.7
Terminal-Anwendungen
Terminal-Anwendungen unterscheiden sich von den bisher aufgeführten Anwendungsbereichen [UL09]
[WB09]. Ungelernte Benutzer sollen die Multitouch-Anwendungen bedienen können. Das impliziert
das Verstehen der Bedienung ohne Anleitung, auch Menschen, die den täglichen Umgang mit Computersystemen nicht praktizieren. Terminal-Anwendungen werden überwiegend im Bereich der Informationsstände genutzt. Diesen Anwendungsbereich dominiert Microsoft Surface. Gründe hierfür
sind die führende Marktposition von Microsoft sowie der frühe Start des Systems. AT & T Mobility
wendet Microsoft Surface an, um dem Kunden durch Auflegen von markierten Handys Informationen
zu diesen auf dem Tisch zu präsentieren.
BMW nutzte bereits Microsoft Surface zur Konfiguration seiner Fahrzeuge durch den Kunden. Im
Rio All-Suite Hotel sowie in Casinos können mit Microsoft Surface Getränke gemixt und bestellt
werden (siehe Abbildung 2.17). Die Einsatzmöglichkeiten von Multitouch-Terminals sind nahezu
grenzenlos.
17
2.4. Schlussfolgerung und Zusammenfassung
Abbildung 2.17: Microsoft Surface Terminal-Anwendung zum Bestellen von Essen und Getränken.
c
Microsoft
2.4
Schlussfolgerung und Zusammenfassung
Im Kapitel Stand der Technik wurde ein Überblick über die vorhandene Hard- und Software des
Multitouch-Tables geschaffen. Die vorhandenen Technologien zur Umsetzung eines multitouchfähigen Systems wurden vorgestellt.
Die elektrischen Ansätze zur Umsetzung eines multitouchfähigen Systems basieren auf der Messung von Spannung beziehungsweise Strom. Da diese Systeme kompakt sind und günstig produziert werden können, kommen sie hauptsächlich in mobilen Geräten zur Anwendung. Die kapazitive
Technologie kann nur Finger und bestimmte Stifte erkennen. Sie ist widerstandsfähig gegenüber
Beschädigungen. Nachteil der resistiven Technologie ist die geringe Lichtdurchlässigkeit.
Der mechanische Ansatz der despersive signal Technologie basiert auf der Messung von Vibrationen. Hierbei können nur Berührungen und Bewegungen identifiziert werden. Stillstehende Objekte
und Finger werden nicht erkannt. Diese Technologie wird hauptsächlich in öffentlichen Systemen
verwendet, da sie weitgehendst resistent gegenüber Beschädigungen ist.
Der akustische Ansatz der surface acoustic wave Technologie basiert auf dem Messen von Schallwellen. Hierdurch wird es möglich, den Druck einer Berührung zu messen. Dieses System schafft
optimale Transparenz.
Eine große Auswahl an Technologien bietet der optische Ansatz zur Umsetzung eines multitouchfähigen Systems. Der Großteil dieser Systeme ist identisch aufgebaut und unterscheidet sich nur in der
Art der Beleuchtung von Infrarotlicht, welches von einer Kamera aufgenommen und ausgewertet
wird. Die Systeme unterscheiden sich im Kontrast der Berührungen und bei der Genauigkeit der
Objekterkennung. Schwächen gegenüber Infraroteinstrahlung von außen sind bei beiden Systemen
vorhanden. Alle hier vorgestellten Systemen können eine unbegrenzte Anzahl von Fingern gleichzeitig erkennen, es gibt keine sensorischen Einschränkungen. Ein weiterer optischer Ansatz ist die
Messung des Infrarotlichts mit Sensoren. Systeme, die diesen Ansatz nutzen, können problemlos auf
18
2.4. Schlussfolgerung und Zusammenfassung
vorhandene Bildschirmsysteme montiert werden.
Die Wahl der Technologie für einen Multitouch-Table sollte unter Berücksichtigung des Einsatzbereiches und der Größe des Tisches getroffen werden.
Anhand von Softwarebeispielen wurde eine Übersicht über die verschiedenen Anwendungsbereiche
des Multitouch-Tables geschaffen. Trotz der vielfältigen Anwendungsmöglichkeiten ist das Angebot
an unterschiedlichen Softwarekonzepten für den Multitouch Table, aufgrund der beschränkten Verbreitung des Systems, bisher noch gering.
Ein wesentlicher Faktor für die Verbreitung der Technologie stellt die Verfügbarkeit von Betriebssystemen dar. Die Touchscreenunterstützung von Windows 7 könnte die Verbreitung der Technologie
bei Privatanwendern fördern. Im Bereich der Spiele zum Beispiel wurde durch Windows 7 die Anwendung RUSE der Firma Ubisoft mit Touchunterstützung erst für Privatanwender möglich.
Viele der Anwendungen wurden zu Forschungs- oder Testzwecken an Universitäten und Fachhochschulen entwickelt und dienen der Technologiedemonstration. Auch Photoshop MT zur GrafikErstellung und -Bearbeitung wurde an einer Hochschule entwickelt. Der reacTable, ein neuartiges
Musikinstrument, entstand im Rahmen eines Forschungsprojektes an einer spanischen Universität.
Ein großer Teil der Anwendungen wurde nur für gewisse Präsentationszwecke geschrieben und nicht
kommerziell vertrieben. Andere Anwendungen wiederum, wie beispielsweise Microsoft Surface, werden nur in Verbindung mit der entsprechenden Hardware verkauft.
Kommerziell erfolgt die Nutzung des Multitouch-Table schon heute sehr erfolgreich. Die überwiegend
intuitive und beobachtbare Bedienung macht die Steuerung der Anwendungen einfach, verständlich
und nachvollziehbar. Dies sind optimale Vorraussetzungen zur Informationsvisualisierung, es weckt
Neugier und lädt dazu ein, selbst aktiv zu werden. Daher wird der Multitouch-Table als TerminalAnwendung häufig zur Produktwerbung oder Informationsverbreitung bereits eingesetzt.
In jedem seiner vielfältigen Einsatzbereiche ermöglicht der Multitouch-Table neue Erfahrungen der
einfachen Interaktion mit Computerprogrammen.
In Kapitel 3 werden die in den vorgestellten Anwendungsbereichen umgesetzten Konzepte zur Interaktion an einem Multitouch-Table analysiert. Es erfolgt eine Überprüfung, welche der vorhandenen
Konzepte die Beschleunigung oder Geschwindigkeit einer Bewegung nutzen.
19
Kapitel 3
Konzepte zur Interaktion an einem
Multitouch-Table
Im Kapitel Stand der Technik wurden die verschiedenen technischen Ansätze zur Umsetzung eines
Multitouch-Tables sowie die vielseitigen Anwendungsbereiche der bereits vorhandenen Software für
solch ein System vorgestellt.
Auf der Grundlage dieser Ergebnisse wird überprüft, welche Konzepte zur Interaktion die Anwendungen für den Multitouch-Table nutzen. Verschiedene Konzepte werden kategorisiert und deren
Anwendung und Funktionsweise untersucht. Besonderes Augenmerk wird hier auf die Nutzung der
Bewegungsgrößen von Benutzereingaben gelegt, um zu prüfen, in wie weit Beschleunigung oder
Geschwindigkeit einer Bewegung zur Interaktion genutzt werden.
3.1
Einleitung
Die bereits umgesetzten Konzepte berührungsintensiver Interaktion zwischen Anwender und Computer werden in diesem Kapitel untersucht. Bereits vorhandene Konzepte und die dahinterstehende
Aktion auf dem Touchscreen werden vorgestellt, sowie die genutzten Anwendungsmöglichkeiten der
Konzepte erörtert. Soweit möglich, folgt die Erläuterung der hinter dem Konzept stehenden Funktionsweise.
Die Eingabemöglichkeiten werden in zwei Kategorien unterteilt. Die Interaktion durch Berührung
des Touchscreens mit einem oder mehrerer Finger und die Interaktion durch reale, mit fiducials
markierten Objekten.
Die bisher genutzten Konzepte zur Interaktion an einem Multitouch-Table werden anhand von
kostenlosen Anwendungen und Demonstrationsvideos analysiert. Die Funktionsweisen der Interaktionsmöglichkeiten werden anhand des Quellcodes der touchlib Beispielanwendungen überprüft.
Touchlib ist eine von NUI-Group bereitgestellte Bibliothek zur Multitouch-Interaktion. Diese Bibliothek enthält mehrere beispielhafte Anwendungen, wie zum Beispiel eine Foto-Applikation.
20
3.2. Finger
3.2
Finger
Das folgende Unterkapitel befasst sich mit den vorhandenen Interaktionskonzepten an einem MultitouchTable durch Berührung mit einem oder mehreren Fingern. Vorweg ist anzumerken, dass in der Studie
Touch it, move it, scale it - Multitouch festgestellt wurde, dass die Interaktion mit mehreren Fingern
Benutzern schwerer fällt als die Interaktion mit nur einem Finger [MB09].
Nachfolgende Interaktionskonzepte zur Finger-Interaktion an einem Multitouch-Table wurden bereits
in Anwendungen umgesetzt:
• Drücken
Das Drücken von Schaltflächen durch eine Berührung des Touchscreens, gefolgt vom Anheben
des oder der Finger.
• Ziehen und Fallenlassen (Drag & Drop)
Die Bewegung von dargestellten Inhalten durch die Bewegung eines oder mehrerer Finger über
den Touchscreen.
• Rotation
Die Rotation eines dargestellten Objektes mit einem oder zwei Fingern. Bei der Rotation mit
einem Finger wird durch eine Kreisbewegung um eine, in der Mitte des Objektes festgelegte,
Achse rotiert. Bei der Rotation mit zwei Fingern kann diese Achse mit dem anderen Finger
festgelegt werden.
• Skalieren
Das Skalieren von dargestellten Inhalten durch Zusammenführen oder Auseinanderführen zweier Finger auf dem Touchscreen.
• Bildlauf (Scrolling)
Die Bewegung innerhalb eines Bildschirminhaltes durch eine Bewegung entgegen der Scrollrichtung.
• Stoßen
Das Wegstoßen von dargestellten Objekten durch eine stoßartige Bewegung in eine Richtung.
• 3D Navigation
Die Navigation durch dreidimensionale Welten durch leichte Abwandlung der Konzepte des
Bildlaufs, der Rotation und der Skalierung.
3.2.1
Drücken
Eine der einfachsten und am häufigsten genutzten Interaktionsmöglichkeiten ist das Drücken [WF09].
Hierbei handelt es sich um eine Berührung des Touchscreens durch einen oder mehrere Finger, gefolgt vom Anheben des Fingers, beziehungsweise der Finger.
Hierbei gibt es verschiede Konzepte und Abstufungen. Häufig werden nur die X- und Y-Koordinaten
der Berührung des Bildschirms ausgelesen und das auf diesen Koordinaten liegende Element beim
Berühren oder Loslassen aktiviert. Manche Systeme lesen zusätzlich die Dauer der Berührung aus,
um langen Berührungen der selben X- und Y-Koordinaten eine andere Funktion zuzuteilen. Dies wird
21
3.2. Finger
beispielsweise bei Microsoft Windows 7 genutzt, um den schon durch andere Microsoft Produkte
bekannten Rechts-Klick zu ersetzen, welcher weitere Bedienungsmöglichkeiten einblendet.
Kaum eine Anwendung kommt ohne das Drücken von auf dem Touchscreen dargestellten Schaltflächen aus. Vor allem einfach aufgebaute System wie Navigationsgeräte, Informationsterminals oder
Fahrkartenautomaten arbeiten ausschließlich mit dieser Eingabemöglichkeit.
c
Abbildung 3.1: Bedienung der Bildschirmtastatur durch Drücken. Mindflow
3.2.2
Ziehen und Fallenlassen (Drag & Drop)
Die Multitouch Betriebssysteme Windows 7, MPX Linux und andere Anwendungen, in denen Daten,
wie beispielsweise Fotos oder Videos verwaltet werden, nutzen Drag & Drop zur intuitiven Steuerung
[WF09] [Mul08]. Überschneiden sich die Koordinaten einer Berührung mit einem auf dem Bildschirm
dargestellten bewegbaren Objekt, folgt dieses dem Finger so lange die Berührung anhält. Jegliche
Differenz der Koordinaten des Fingers wird auch auf die Koordinaten des Objektes übertragen. Wird
der Finger wieder vom Touchscreen entfernt, bleibt das Objekt an der neuen Position stehen.
c
Abbildung 3.2: Verschieben von Fotos mit dem Finger durch Drag & Drop. Microsoft
22
3.2. Finger
3.2.3
23
Rotation
Zur Rotation von Objekten werden zwei gängige Konzepte genutzt - zum Einen die Rotation eines
Objektes mit einem Finger, welche auch bei manchen Anwendungen mit Drag & Drop zusammen
verwendet wird und zum Anderen die Rotation mit zwei Fingern [Mos07] [Mul08] [WF09]. Bei beiden
Varianten wird die atan2 Funktion genutzt, welche einen Winkel im Bogenmaß zurück gibt, dessen
Tangens der Quotient zwei angegebener Zahlen ist.
Bei der Rotation mit einem Finger werden die Koordinaten des Mittelpunktes des zu rotierenden
Objektes von den Koordinaten des Fingers subtrahiert. Diese X- und Y-Differenzwerte werden mit
Hilfe der atan2 Funktion in einen Winkel umgerechnet. Wird dieser Winkel mit Pi/180 multipliziert,
erhält man den Winkel im Grad-Maß, der als Rotationswinkel verwendet werden kann. Ähnlich wie
schon beim Drag & Drop-Verfahren wird jegliche Differenz dieses Winkels während der Berührung
auf die Rotation des Objektes übertragen.
Abbildung 3.3: Atan2 Funktion bei der Rotation mit einem Finger.
Bei der Rotation eines Objektes mit zwei Fingern wird wie bei der Rotation mit einem Finger verfahren. Allerdings wird nicht mit der Distanz zum Mittelpunkt gerechnet, sondern mit der Distanz
der beiden das Objekt berührenden Finger. Beide Verfahren finden Anwendungen in Applikationen
zum Verwalten und Betrachten von Fotos.
3.2.4
Skalieren
Das Skalieren erfolgt bei Multitouch Anwendungen mit zwei oder mehr Fingern [Mos07] [Mul08]
[WF09]. Die Entfernung zweier Berührungspunkte wird mit dem aktuellen Zoomfaktor gleichgesetzt.
Wird die dazwischen liegende Strecke durch Zusammenführen oder Auseinanderbewegen der Finger
verändert, wirkt sich dies auf den Zoomfaktor aus. Der Zoomfaktor wird in der Regel proportional
zur Differenz der Strecke zum vorherigen Messpunkt verändert.
3.2. Finger
24
Ein weiterer Anwendungsbereich für diese Technik ist die Verwendung bei Fotoverwaltungs- und
Fotovisualisierungs-Programmen, um die Größe eines Bildes zu manipulieren. Hier wird die X-und
Y-Differenz der Berührungspunkte auf die X- und Y-Größe des berührten Bildes übertragen.
c
Abbildung 3.4: Skalierung eines Bildes mit zwei Fingern. Mindflow
3.2.5
Bildlauf (Scrolling)
Als Bildlauf wird das Bewegen innerhalb von Bildschirminhalten bezeichnet [WF09]. Was mit der
Computermaus mithilfe eines Scrollbalkens am Rande der Anwendung gelöst wird, funktioniert bei
Touchanwendungen ohne diesen. Die zu scrollende Anwendung wird berührt und entgegen der Scrollrichtung bewegt.
c
Abbildung 3.5: Seitliches Scrollen bei einer Microsoft Surface Anwendung. Microsoft
Bewegt man den Finger von der Mitte des Bildschirms nach oben, bewegt sich der zu scrollende
Inhalt ebenfalls mit nach oben und es wird nach unten gescrollt. Technisch wird hier wie beim Drag
& Drop-Verfahren vorgegangen. Jegliche Differenz der Koordinaten des Fingers wird auf den zu
scrollenden Inhalt übertragen. Wenige Anwendungen, wie Microsoft Surface, nutzen hier zusätzlich
3.2. Finger
die Geschwindigkeit einer Scrollbewegung, was bei größeren Scrollvorgängen von großem Vorteil ist.
Nach einer schnellen Bewegung scrollt der Inhalt weiter und die Scrollgeschwindigkeit wird erst langsam, von einem festgelegten Wert ausgehend verringert. Die touchlib-Beispielanwendung Tangram
nutzt ebenfalls dieses Konzept, um durch Inhalte zu scrollen.
3.2.6
Stoßen
Das Stoßen wurde bisher nur in einem Air-Hockey-Spiel der Firma UI Centric1 genutzt. Es wurde
für den damals größten Multitouch-Table der Welt entwickelt und erlangte große Popularität. Der
Tisch basiert auf einem 103 Zoll Panasonic Plasma-TV mit einem U-Touch-Overlay. Air Hockey,
ein Geschicklichkeitsspiel konzipiert für zwei Spieler, wird herkömmlich auf einer billardtischgroßen,
ebenen Platte gespielt. Ziel des Spiels ist es, einen Puck mit Hilfe eines Schläger in das Tor des
Gegners zu spielen. Durch Löcher im Tisch wird Luft geblasen, sodass unter dem Puck ein Luftkissen entsteht. Aufgrund dieses Luftkissens gleitet der Puck beinahe ohne Reibungswiderstand und
erreicht hohe Geschwindigkeiten. Das Spielprinzip wurde von UI Centric auf den Multitouch-Table
übertragen. Hier schlägt der Spieler mit einem virtuellen Schläger, welcher mit dem Finger gesteuert
wird, den ebenso virtuellen Puck.
Das Stoßen konnte in seiner Funktionsweise als einziges Konzept nicht überprüft werden, da es
bisher nur in UI Centrics Air Hockey umgesetzt wurde und der Quelltext dieser Anwendung nicht
verfügbar ist.
Abbildung 3.6: UI Centrics Air Hocky auf einem 103 Zoll Panasonic Plasma-TV mit U-Touchc
Overlay. UI-Centric
3.2.7
3D Navigation
Die 3D-Navigation findet vor allem bei der Globusnavigation Verwendung [Mul08]. Sowohl für
Google-Earth als auch für Nasa-World-Wind existieren bereits Multitouch-Interfaces. Bei diesen
Anwendungen wird der Globus von oben betrachtet. Durch die schon bekannte Aktion des Skalierens kann der Zoomfaktor der Kamera beeinflusst werden. Die Erdkugel kann darüber hinaus durch
1
http://www.uicentric.net/
25
3.3. Fiducials (Objekte)
eine Rotation mit zwei Fingern oder durch eine dem Scrollvorgang sehr ähnliche Bewegung rotiert
werden. Zusätzlich erfolgt beim Rotieren der Erdkugel das Auslesen der Geschwindigkeit einer Bewegung, um den Globus nach einer schnellen Rotationsbewegung noch weiter schwingen zu lassen.
Dies ist bei größeren Rotationsvorgängen von Vorteil, sie werden beschleunigt und vereinfacht.
c
Abbildung 3.7: Nasa World Wind auf einem Multitouch-Table. NASA
3.3
Fiducials (Objekte)
Viele Multitouch-Tables können, neben den Bildschirm berührenden Fingern, auch Objekte erkennen.
Durch bestimmte Markierungen an einem Gegenstand, sogenannte fiducials, kann dieser vom System
eindeutig erkannt werden (siehe Abbildung 3.8). Zusätzlich zu den Positionsdaten können auch Daten
über die Rotation des Objektes anhand der Markierungen erkannt werden.
c
Abbildung 3.8: Von Reactivision verwendete Markierungen für Objekte. Reactivision
Folgende Konzepte zur Objekt-Interaktion werden umgesetzt und untersucht:
• Auflegen
Das Auslösen einer Aktion durch das Auflegen eines markierten Objektes auf den Touchscreen.
26
3.3. Fiducials (Objekte)
• Rotationsausrichtung
Die Manipulation von Einstellungen durch die Rotationsausrichtung eines Objektes.
3.3.1
Auflegen
Durch das Auflegen eines Objektes mit einer bestimmten Markierung auf den Touchscreen wird eine
Aktion ausgeführt [WB09]. Microsoft Surface nutzt dies beispielsweise, um Informationen zu einem
auf den Multitouch-Table gestellten Getränk durch eine Markierung am Glas zu liefern.
Beim BMW-Product-Navigator, der ebenfalls auf Microsoft Surface basiert, wird die Farbe des Autos
und der Inneneinrichtung durch das Auflegen von Objekten manipuliert. Die Farbe des Objektes dient
hier als Muster für die Farbänderung, die durch das Auflegen des Objektes erfolgt.
c
Abbildung 3.9: Farbauswahl beim BMW-Product-Navigator durch Auflegen des Musters. BMW
3.3.2
Rotationsausrichtung
In vielen Anwendung werden Einstellungen durch die Rotationsausrichtung eines aufgelegten Objektes manipuliert [WB09]. Die Einstellung kann in diesem Fall Verschiedenes bedeuten. In einigen
Anwendungen, wie dem Audi-Car-Configurator, werden Menüpunkte, die um das aufgelegte Objekt
erscheinen, mithilfe der Rotation ausgewählt (siehe Abbildung 3.10).
Auch beim reacTable werden verschiedene Komponenten zum Musikerzeugen durch Rotationsausrichtung manipuliert. Durch das Auflegen von Objekten können Komponenten zum Musikerzeugen hinzugefügt werden. Die Einstellungen der Komponenten werden durch Rotation des Objektes
verändert und eine um das Objekt dargestellte Skala macht eine Orientierung möglich, sie zeigt die
momentane Einstellung.
27
3.4. Schlussfolgerung und Zusammenfassung
c
Abbildung 3.10: Farbauswahl beim Audi Car Configurator durch Objektrotation. Audi
3.4
Schlussfolgerung und Zusammenfassung
In diesem Kapitel wurden die bereits umgesetzten Konzepte zur Interaktion an einem MultitouchTable vorgestellt. Es wurde zwischen der Interaktion mit Fingern und Objekten unterschieden.
Bei der Fingerinteraktion werden die Bewegungsgrößen der Benutzereingaben bisher selten genutzt.
Das Konzept des Drückens verwendet die Koordinaten einer Berührung. In manchen Anwendung
bestimmt zusätzlich die Dauer der Berührung die auszuführende Aktion.
Bei den Konzepten des Drag & Drop, der Rotation und des Skalierens werden ebenfalls die Koordinaten der Berührung verwendet. Jegliche Veränderung der Position eines Fingers wird hier, je nach
Konzept auf unterschiedliche Weise, auf den berührten Bildschirminhalt übertragen.
Beim Konzept des Scrollens wird ebenfalls jegliche Veränderung der Position des Fingers auf den
Bildschirminhalt übertragen. In wenigen Anwendungen erfolgt die Nutzung der Geschwindigkeit der
Bewegung, um das Scrollen durch große Inhalte zu erleichtern. Nach dem Loslassen des Fingers wird
die Geschwindigkeit der Bewegung an den zu scrollenden Inhalt übertragen und erst langsam wieder
abgebaut.
Das Konzept des Stoßens basiert als einziges Konzept auf der Nutzung der Bewegungsgrößen von
Benutzereingaben. UI-Centric verwendet es, um das Spiel Air-Hockey auf den Multitouch-Table zu
übertragen und schafft damit ein realistisches Spielgefühl. Zur 3D-Navigation werden die Konzepte
des Skalierens, Scrollens und der Rotation in minimal abgeänderter Form verwendet. Da hier meist
durch sehr große Inhalte, wie beispielsweise die Erde, navigiert wird, erfolgt das Auslesen und Nutzen
der Geschwindigkeit. Das Zurücklegen von großen Strecken mit wenigen Bewegungen ist möglich.
Mit Ausnahme des Konzepts des Stoßens dienen die Bewegungsgrößen bei der Fingerinteraktion
bisher nur optional der Bewegung innerhalb großer Bildschirminhalte. Größere Veränderungsschritte
können hier durch weniger Bewegungen erledigt werden.
Bei den Interaktionsmöglichkeiten mit Objekten erfolgte bisher keine Nutzung der Bewegungsgrößen.
Die Interaktionsmöglichkeiten beschränkten sich auf das Platzieren und Ausrichten der Rotation an
einer um das Objekt dargestellten Skala.
Bei der Untersuchung der Konzepte zeigte sich, dass trotz der bereits vielfältigen verschiedener
Anwendungsbereiche des Multitouch-Tables bisher nur wenige unterschiedliche Konzepte zur Inter-
28
3.4. Schlussfolgerung und Zusammenfassung
aktion vorliegen.
Alle bisherigen Konzepte zur Interaktion bieten eine intuitive Bedienung. Die Konzepte der FingerInteraktion bedienen sich dem beim Anwender bereits vorhandenen Wissen über die Interaktion mit
realen Objekten. Zur Interaktion werden Gesten genutzt, die häufig im Alltag mit gleichem Effekt
ausgeführt werden. Schon im Kindesalter wird beispielsweise das Drücken von Knöpfen oder das
Verschieben von Gegenständen erlernt. Eine Vielzahl der Touchscreen-Anwendungen simuliert gewissermaßen das Interagieren mit realen Objekten.
Die Interaktion mit realen Objekten auf dem Touchscreen versucht, die reale und virtuelle Welt miteinander zu verbinden. Beispielsweise ist die Manipulation durch den Rotationswinkel eines Objektes
identisch mit dem Drehen an einem Lautstärkeregler.
Die Physik spielt bei der Interaktion mit realen Objekten eine große Rolle, die physikalischen Größen
der Beschleunigung und Geschwindigkeit einer Bewegung werden jedoch nur selten in TouchscreenAnwendungen eingesetzt. UI-Centrics Air-Hockey für den Multitouch-Table zeigt, dass durch Nutzung der Bewegungsgrößen ein realistisches Spielgefühl geschaffen werden kann. Bei vielen Spielen
könnte eine Steuerung durch Beschleunigung oder Geschwindigkeit einer Bewegung ein neues Spielgefühl unterstützen.
Das Potential der Möglichkeiten zur Nutzung der Bewegungsgrößen von Benutzereingaben wird bisher nur ansatzweise genutzt. In vielen Anwendungsbereichen des Multitouch-Tables bietet sich das
Auslesen der Beschleunigung oder Geschwindigkeit zur Interaktion an.
Im folgenden Kapitel werden neue Konzepte zur Interaktion an einem Multitouch-Table mit Nutzung
der Bewegungsgrößen von Benutzereingaben entwickelt und anschließend in Beispielanwendungen
umgesetzt und bewertet.
29
Kapitel 4
Konzeptentwicklung
Im vorherigen Kapitel erfolgte die Vorstellung der bereits umgesetzten Konzepte zur berührungssensitiven Interaktion an einem Multitouch-Table. Auf deren Funktionsweise und mögliche Anwendungsbereiche wurde eingegangen. Hierbei zeigte sich, dass es kaum Konzepte gibt, die Geschwindigkeit
oder Beschleunigung zur Anwendungssteuerung nutzen.
Dieses Kapitel befasst sich mit der Entwicklung neuer Konzepte zur Interaktion mit einem MultitouchTable, die auf der Nutzung der Bewegungsgrößen von Benutzereingaben basieren. Darüber hinaus
werden Konzepte entwickelt, welche dem Benutzer die Geschwindigkeitskontrolle erleichtern sollen.
Zusätzlich werden mögliche Anwendungsbeispiele zur Nutzung der neuen Konzepte benannt.
4.1
Einleitung
Die Intuitivität steht bei Touchscreen-Anwendungen im Vordergrund. Auch die neuen Konzepte mit
Nutzung der Bewegungsgrößen der Benutzereingaben sollen diese Anforderung erfüllen. Im besten
Fall werden ähnliche Aktionen im Alltag durchgeführt und mit der Funktion in der TouchscreenAnwendung assoziiert. Die Funktionsweisen der neuen Konzepte werden erläutert und Anwendungsmöglichkeiten in Applikationen für den Multitouch-Table vorgestellt. Darüber hinaus befasst
sich dieses Kapitel mit der Entwicklung von Konzepten, die den Umgang mit Geschwindigkeit erleichtern sollen.
Für die Entwicklung neuer Konzepte mit Nutzung der Bewegungsgrößen von Benutzereingaben ist
es erforderlich, die Bewegungsgrößen Geschwindigkeit und Beschleunigung zu definieren [EH02].
Geschwindigkeit
Unter Geschwindigkeit versteht man die zurückgelegte Wegstrecke innerhalb einer bestimmten Zeitspanne. Je größer die Geschwindigkeit, umso größer ist der zurückgelegte Weg innerhalb dieses
Zeitraums. Die Geschwindigkeit berechnet sich, indem der zurückgelegte Weg durch die benötigte Zeit dividiert wird. Die Geschwindigkeit einer Bewegung entspricht demnach der zurückgelegten
Strecke eines Fingers, dividiert durch die Zeitspanne, in der ein Finger den Bildschirm berührt.
Geschwindigkeit =
X1−X2
Z1−Z2
30
4.2. Konzepte mit Nutzung der Bewegungsgrößen
X1 = Anfangsposition
X2 = Endposition
Z1 = Anfangszeit der Berührung
Z2 = Endzeit der Berührung
Beschleunigung
Die Beschleunigung definiert jegliche Änderung der Geschwindigkeit. Sie ist umso größer, je stärker
sich die Geschwindigkeit innerhalb einer Zeitspanne ändert. Folglich kann die Beschleunigung als
Differenz der Geschwindigkeit zu verschiedenen Zeitpunkten verstanden werden.
Beschleunigung = G1 − G2
G1 = Geschwindigkeit zum Zeitpunkt a
G2 = Geschwindigkeit zum Zeitpunkt b
4.2
Konzepte mit Nutzung der Bewegungsgrößen
Nachdem die Bewegungsgrößen definiert wurden, folgt die Entwicklung neuer Konzepte mit der
Nutzung dieser Bewegungsgrößen. Die Intuitivität und Funktion der Konzepte steht hierbei im Vordergrund.
4.2.1
Geschwindigkeit einer Objektrotation
Ein häufig umgesetztes Konzept ist die Bedienung einer Anwendung durch die Rotationsausrichtung
eines auf den Display gelegten realen Objektes. Wie bei vielen Konzepten zur Multitouch-Interaktion
werden Bedienungselemente, die sich bewährt haben, nachgeahmt. Als Beispiel sind die Regler eines
Mischpultes zu nennen.
Die Geschwindigkeit der Rotation eines Objektes zur Manipulation von Einstellungen wird bereits
real genutzt. Beispielsweise haben viele Musikverstärker zum Verstellen der Lautstärke keine Skala
am Rad (siehe Abbildung 4.1). Das Rad lässt sich beliebig ohne Anschlagspunkt in beide Richtungen
rotieren, da sich die Skala nicht direkt am Rad befindet.
Dieses Konzept lässt sich auf den Multitouch-Table übertragen und noch erweitern. Die Manipulation von Einstellungen durch die Rotationsgeschwindigkeit eines auf den Display gestellten Objektes
ermöglicht eine intuitive und effiziente Steuerung. Große Einstellungsschritte können durch eine
schnelle Rotation und kleine, präzise Einstellungsschritte durch eine langsame Rotation vorgenommen werden. Die Rotation beschränkt sich dabei nicht auf eine 360 Grad-Anwendung. Der Vorteil bei
besonders großen Einstellungsschritten besteht darin, dass durch die schnelle Rotation der Benutzer
nicht nachfzuassen braucht. Wünscht der Benutzer besonders kleine Veränderungsschritte, ist eine
in kleinsten Schritten mögliche Skalierung, ohne Berücksichtigung einer vorgegebenen Skalierung
und Beschränkung auf 360 Grad, gegeben.
31
4.2. Konzepte mit Nutzung der Bewegungsgrößen
c
Abbildung 4.1: Lautstärkeregler ohne Skala an einem Verstärker. Antec
Die Rotationsrichtung gibt an, ob es sich um eine positive oder negative Einstellungsveränderung
handelt. Die Rotationsgeschwindigkeit muss in kurzen Zeitabständen gemessen werden. Die angestrebte Veränderung während der Aktion soll fortlaufend für den Benutzer sichtbar sein. Ihm wird
hiermit die Möglichkeit gegeben, die erzielte Veränderung einzuschätzen, um sie gegebenenfalls korrigieren zu können. Das Berechnen der Geschwindigkeit erst am Ende der Rotation würde hingegen
zu einer Reaktion führen, die einmalig am Ende der Bewegung auftritt. Die fehlende Rückmeldung
während der Aktion könnte den Anwender über seine Aktion im Unklaren lassen.
Ein weiterer Vorteil besteht in der Bedienung von Skalen, die immer präsent sein sollen, auch wenn
das Objekt zum Bedienen sich nicht auf dem Multitouch-Table befindet. Dies ist zum Beispiel bei
der Darstellung eines komplexen Mischpultes mit sehr vielen Einstellungen der Fall.
c
Abbildung 4.2: Unterschiedliche Skalen bei einem Mischpult. Midas
Zum Verändern der Skalen müssen beim Konzept der Rotationsausrichtung die Einstellungen zwei
mal dargestellt werden. Zu der festen Skala wird eine weitere Skala um das Objekt zur Ausrichtungsorientierung benötigt. Beim Konzept der Rotationsgeschwindigkeit hingegen muss mit dem
Objekt nach dem Auflegen nur eine schnelle oder langsame Rotation in die entsprechende Richtung
ausgeführt werden, um große oder kleine Einstellungsschritte vorzunehmen.
Auch Einstellungen ohne sichtbare Skalen können durch dieses Konzept problemlos bedient werden.
32
4.2. Konzepte mit Nutzung der Bewegungsgrößen
Das vorhandene Konzept des Skalierens fällt, wie bereits erwähnt, den Benutzern schwerer, als alle anderen Interaktionskonzepte. Das Skalieren könnte in vielen Anwendungen durch das Konzept
der Geschwindigkeit einer Objektrotation gelöst werden. Beispielsweise wäre es möglich, bei der
3D-Navigation, durch die Geschwindigkeit der Rotation, eines auf den Display gelegten Objektes,
hinein- und herauszuzoomen. Die Vorteile des schnellen oder langsamen Rotierens wären auch hier
von großem Nutzen.
Dieses Konzept könnte in Foto-Applikationen Anwendung finden. Da ein Objekt zusätzlich zu den
Rotationsdaten auch Positionsdaten liefert, ist der Benutzer, durch entsprechendes Positionieren des
Objektes in der Lage, die auszuführende Aktion zu beeinflussen. Zum Einen kann er beim Vorgang
des Zoomen mit der gewählten Position des Objektes den Fokus für den Zoomvorgang bestimmen und zum Anderen wird das Skalieren von Fotos durch die Geschwindigkeit einer Objektrotation
möglich. Liegt eine Überschneidung der Objektposition mit einem dargestellten Foto vor, kann durch
die Rotationsgeschwindigkeit das Foto skaliert werden.
4.2.2
Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
Die Anzahl der Interaktionsmöglichkeiten kann durch die Nutzung der Bewegungsgrößen von Benutzereingaben vervielfacht werden. Durch unterschiedliche Bewegungsgeschwindigkeiten ist es möglich,
mit der gleichen Bewegung verschiedene Aktionen auszuführen. Hierzu muss die Geschwindigkeit am
Ende einer Bewegung gemessen und anschließend kategorisiert werden.
In Foto-Applikationen kann so ein Bild durch eine mit einer bestimmten Geschwindigkeit ausgeführten Bewegung auf dem Touchscreen in Richtung Bildschirmrand vom Bildschirm entfernt werden.
Dies würde dem Herunterwerfen eines Bildes von einem Tisch ähneln. Ebenso ist denkbar, dass ein
Foto auf einem Multitouch-Table, verbunden mit einem Beamer, durch eine schnelle Bewegung in
Richtung des Beamers auf diesen projiziert wird.
In bestimmten Anwendungen könnte durch eine Bewegung mit einer vorgegebenen Geschwindigkeit
über eine bestimmte Strecke die Bildschirmtastatur hervorgerufen werden. Dabei ist denkbar, durch
die Bewegungsrichtung den Winkel der aufgerufenen Tastatur zu bestimmen.
4.2.3
Geschwindigkeit einer Bewegung zur physikalischen Interaktion
Das Bewegen von Objekten auf einem Multitouch-Table durch Drag & Drop ähnelt dem Verschieben
von Gegenständen in der Realität. Hierbei wurde bisher die physikalische Komponente der Geschwindigkeit einer Bewegung vernachlässigt. Werden Gegenstände auf einer glatten Oberfläche mit hoher
Geschwindigkeit bewegt, gleiten diese in der Realität so lange weiter, bis sie, bedingt durch die
Reibung, zum Stillstand kommen. Dieses Verhalten könnte in Anwendungen genutzt werden, um die
Interaktion an einem Multitouch-Table noch realer wirken zu lassen. Hierzu muss die Geschwindigkeit
einer Bewegung am Ende der Berührung an das bewegte Objekt weitergegeben werden. Zusätzlich
muss eine Simulation der Reibung erfolgen, sonst würde sich das bewegte Objekt unendlich mit
dieser Geschwindigkeit weiterbewegen. Die Reibung kann dabei je nach Bedarf stark oder schwach
definiert werden. Auch die physikalische Interaktion von bewegten Objekten untereinander trägt zur
Echtheit der Simulation bei, wie beispielsweise beim Billard der Fall.
33
4.2. Konzepte mit Nutzung der Bewegungsgrößen
In Computerspielen für den Multitouch-Table bietet das Konzept der Nutzung von Geschwindigkeit
einer Bewegung eine intuitive und präzise Steuerung. Da Computerspiele gegenwärtig in jeder denkbaren Form existieren, sind die Möglichkeiten zur Nutzung des Konzeptes nahezu grenzenlos. Große
Bedeutung könnte dieses Konzept in Spielen erhalten, in denen Objekte mit präzisen Geschwindigkeiten, meist unter Berücksichtigung der physikalischen Interaktion, in bestimmte Richtungen
bewegt werden müssen.
In einem Golfspiel könnte so beispielsweise der Abschlag eines Balles simuliert werden. Geschwindigkeit und Richtung würde hierbei auf den Schläger übertragen und somit die Flugbahn des Balls
bestimmt werden.
Eine ähnliche Umsetzung ist auch beim Bowling-Spiel denkbar. Durch die Geschwindigkeit und Richtung einer Bewegung auf dem Touchscreen ließe sich die Geschwindigkeit und Richtung der Kugel
bestimmen.
Auch bei einem Curling-Spiel könnte dieses Konzept Anwendung finden. Richtung und Geschwindigkeit der Bewegung könnten ausgelesen werden, um den Curling-Stein präzise zu spielen. Zusätzlich
ist es denkbar, das Wischen mit diesem Konzept umzusetzen. Schnelles Wischen mit einem Besen
kann beim Curling die Reibung des Steins verringern. Mit Hilfe der Messung der Geschwindigkeit
einer Auf- und Abbewegung vor dem Stein auf dem Touchscreen wäre dies möglich.
Dies bietet große Vorteile gegenüber herkömmlichen Eingabegeräten. Die Vorgänge werden bisher
in Spielen meist durch zwei getrennte Aktionen behandelt - zum Einen das Bestimmen der Richtung und zum Anderen das Bestimmen der Geschwindigkeit. Die Geschwindigkeitsbestimmung wird
hierbei größtenteils mit Hilfe einer Skala umgesetzt. Ein Wert auf dieser Skala, meist dargestellt in
Form eines Balkens, bewegt sich auf und ab. Der Spieler soll durch Drücken einer Taste im richtigen
Moment die Geschwindigkeit bestimmen (siehe Abbildung 4.3). Dies ähnelt eher einem Glücksspiel.
Abbildung 4.3: Screenshot aus dem Spiel Tiger Woods PGA Tour 08. Rechts unten die Skala zum
c
Dosieren der Schlagkraft. Electronic
Arts
Das Dosieren von Geschwindigkeit und die Bestimmung der Richtung durch eine Bewegung auf
dem Touchscreen kommt hier der realen Aktion viel näher und ermöglicht eine weitaus präzisere
Bestimmung der Werte.
34
4.3. Konzepte zur Steigerung der Benutzerfreundlichkeit
4.2.4
Beschleunigung der Benutzereingaben
Bei der Entwicklung von Konzepten mit Nutzung der Beschleunigung von Benutzereingaben trat
folgendes Problem auf.
Die Beschleunigung definiert jegliche Änderung der Geschwindigkeit und liefert somit nur Werte bei
einer Veränderung der Geschwindigkeit, anderenfalls beträgt der Wert Null.
Eine Bewegung, die vom Benutzer mit einer kontinuierlichen Geschwindigkeit ausgeführt wird, erzeugt folglich nur am Anfang beim Beschleunigen auf die gewünschte Geschwindigkeit eine Veränderung des Wertes (von dem Stillstand Null bis zur erreichten Geschwindigkeit). Führt der Benutzer die
Bewegung unverändert weiter, findet, da keine neuen Werte mehr übermittelt werden, keine weitere
Beschleunigung statt, die Aktion wird unterbrochen. Für den Benutzer ist dies nicht nachvollziehbar. Da diese Reaktion im Konflikt mit der Intuitivität der Multitouch-Bedienung steht, findet die
Beschleunigung einer Bewegung bei der Entwicklung der Konzepte keine weitere Berücksichtigung.
4.3
Konzepte zur Steigerung der Benutzerfreundlichkeit
Um die Benutzerfreundlichkeit der Konzepte von Geschwindigkeit zur physikalischen Interaktion
und Geschwindigkeit zur Aktionsdifferenzierung zu erhöhen, erfolgt eine Unterscheidung zwischen
fortlaufenden und durch einen kurzen Stopp gebremsten Bewegungen. Zusätzlich wird die Geschwindigkeit einer Objekt bewegenden Berührung visuell dargestellt, um dem Benutzern das Einschätzen
der Geschwindigkeit zu erleichtern.
4.3.1
Bewegungsdifferenzierung
Bei der Bewegungsdifferenzierung wird unterschieden, ob eine Bewegung aus einem Schwung heraus beendet oder durch Stillhalten des Fingers gestoppt wird. Beim Stoppen des Fingers werden
die Anfangswerte der Geschwindigkeitsberechnung auf die aktuellen Werte zurückgesetzt, es erfolgt
eine Berechnung der Geschwindigkeit von der neuen Position aus. Dies ermöglicht den Benutzern
die intuitive Steuerung der durch eine Bewegung aufgebauten Geschwindigkeit.
Dem Benutzer wird die Möglichkeit gegeben, beim Konzept von Geschwindigkeit zur physikalischen
Interaktion, selbst zu entscheiden, ob die aufgebaute Geschwindigkeit an das bewegte Objekt weitergegeben werden soll oder nicht. Dies ermöglich sowohl das kontrollierte Verschieben und genaue
Positionieren als auch das Wegstoßen von Objekten. Würde diese Unterscheidung nicht vorgenommen, hätte der Benutzer keinerlei Möglichkeiten, das Weiterbewegen eines Objektes nach dem Loslassen zu verhindern. Das Bestimmen einer neuen Abstoßposition für ein Objekt ohne Loslassen wird
ebenfalls ermöglicht. Würde der Geschwindigkeitsvektor durch Stoppen an der gewünschten Position nicht zurückgesetzt werden, entstände ein verfälschter Geschwindigkeitsvektor (siehe Abbildung
4.4).
35
4.3. Konzepte zur Steigerung der Benutzerfreundlichkeit
Abbildung 4.4: Entstehung eines falschen Geschwindigkeitsvektors beim Positionieren eines Objektes ohne Loslassen.
Das Unterscheiden zwischen fortlaufenden und durch einen kurzen Stopp gebremsten Bewegungen
ist beim Konzept von Geschwindigkeit zur Aktionsdifferenzierung ebenso von großem Vorteil. Wird
eine Bewegung zu schnell ausgeführt, kann durch kurzes Stoppen vor dem Loslassen des Bildschirms
die Geschwindigkeit zurückgesetzt werden. Dies verhindert das ungewollte Ausführen von geschwindigkeitsabhängigen Funktionen.
4.3.2
Geschwindigkeitsvisualisierung
Da die Geschwindigkeit einer Bewegung für Benutzer schwer einzuschätzen ist, ist es sinnvoll, die
Geschwindigkeit die bei der Bewegen eines Objektes aufgebaut wird, optisch darzustellen. Durch eine
Verzögerung der Bewegung des Objektes beim Folgen des Fingers ist dies realisierbar. Je schneller sich der Finger bewegt, desto weiter entfernt er sich vom Objekt und umso höher wird dessen
Geschwindigkeit. Somit kann der Benutzer anhand der Strecke zwischen Finger und Objekt die aufgebaute Geschwindigkeit abschätzen.
Dies steht mit dem Konzept der Bewegungsentscheidung im Einklang. Beim Stoppen einer Bewegung rückt das Objekt der Position des Fingers näher. Verharrt der Finger so lange, bis die Position
des Fingers mit der Position des Objektes identisch ist, entspricht die Stecke und die Geschwindigkeit durch das Zurücksetzen dem Wert Null. Anderenfalls würde der Benutzer durch Stillstand
des Fingers auf dem Bildschirm nur die Strecke zwischen und Finger und bewegten Objekt auf Null
verringern, aber nicht die Geschwindigkeit auf Null setzen.
Zusätzlich kann durch diese Bedienung die Rotation eines Objektes während der Bewegung beeinflusst werden. Die Änderung des Winkels zwischen Finger und Objekt kann auf die Rotation des
Objektes übertragen werden. Beim klassischen Drag & Drop Verfahren ist dies nicht möglich, da
sich die Position des Fingers zum Objekt durch das Übertragen jeglicher Positionsänderung nicht
verändert, das heißt, die Bewegung des Fingers und des Objektes werden gleichgesetzt.
Beim Konzept von Geschwindigkeit zur physikalische Interaktion hilft dies dem Benutzer, die aufgebaute Geschwindigkeit sowie das Zurücksetzen der Geschwindigkeit präziser einzuschätzen. Werden
beim Konzept von Geschwindigkeit zur Aktionsdifferenzierung geschwindigkeitsabhängige Funktio-
36
4.4. Wahl der Anwendungsbeispiele
nen beim Bewegen von Objekten ausgeführt, kann diese Hilfe auch hier verwendet werden, um die
Geschwindigkeit besser kontrollieren zu können. Das Rotieren beim Bewegen wird in den Anwendungen ebenfalls getestet.
4.4
Wahl der Anwendungsbeispiele
Das Konzept der Geschwindigkeit einer Objektrotation zur Anwendungssteuerung wird in einer FotoApplikation umgesetzt und getestet. Durch die Rotationsrichtung und Rotationsgeschwindigkeit eines auf den Display gestellten Objektes soll der Benutzer die Möglichkeit erhalten, den Zoomfaktor
der Anwendung zu verändern und Fotos zu skalieren. Die Position des Objektes soll hierbei angeben,
welche Aktion durchgeführt wird. Steht das Objekt während der Rotation auf einem dargestellten Foto, soll dieses skaliert werden. Überdeckt es kein Foto, soll das Zoomen durch die Rotation
erfolgen. Im Rahmen dieser Testentwicklung kann die Genauigkeit und Intuitivität des Konzeptes
überprüft werden.
Des Weiteren erfolgt die Erprobung des Konzepts von Geschwindigkeit zur Aktionsdifferenzierung in
dieser Foto-Applikation. Die Bestimmung verschiedener Aktionen soll durch die Geschwindigkeit einer Bewegung erfolgen, Fotos sollen wie auch bisher gewohnt mit dem Finger bewegt werden. Findet
eine Bewegung des Fotos mit einer schnellen Bewegung in Richtung des oberen Bildschirmrandes
statt, soll dieses vom Touchscreen verschwinden und von einem Beamer projiziert werden. Hierbei
wird überprüft, ob sich die Aktionen durch unterschiedlich schnelle Geschwindigkeiten komfortabel
und intuitiv unterscheiden lassen. Des Weiteren soll das Aufrufen der Bildschirmtastatur durch die
Geschwindigkeit einer Bewegung realisiert werden. Hierzu soll zusätzlich die Position und Ausrichtung der Bewegung die Position und Rotation der Tastatur bestimmen, eine weitere Überprüfung
der Genauigkeit dieses Konzeptes kann hierdurch erfolgen.
Das Konzept von Nutzung der Geschwindigkeit zur physikalischen Interaktion bietet in Spielen für
den Multitouch-Table sehr viele Anwendungsmöglichkeiten. Das Konzept soll in der Umsetzung eines
Spieles getestet werden, das bisher bereits als Computerspiel existiert und sich großer Beliebtheit
erfreut. Es soll überprüft werden, ob es den Spielspaß durch eine intuitive und präzisere Steuerung
noch weiter erhöhen kann. Hierfür wurde Curling ausgewählt. Je schneller sich der Finger bewegt,
desto weiter entfernt er sich vom Objekt und umso höher ist dessen Geschwindigkeit. Somit kann der
Benutzer anhand der Strecke zwischen Finger und Objekt die erreichte Geschwindigkeit abschätzen.
Beim Curling-Spiel sollen die Steine mit dem Finger bewegt und auf die Bahn geschleudert werden.
Richtung und Geschwindigkeit der Bewegung werden durch Schnelligkeit der Bewegung des Fingers
ermittelt und im Moment des Loslassen an den Stein weitergegeben. Da beim Curling die Richtung
und Geschwindigkeit von bewegten Objekten, den Steinen, spielentscheidend ist, kann optimal getestet werden, ob das Konzept eine intuitive und präzise Steuerung in Spielen ermöglicht.
Die Konzepte der Bewegungsdifferenzierung und Geschwindigkeitsvisualisierung zur Benutzerfreundlichkeit können in beiden Applikationen angewandt und überprüft werden. Des Weiteren kann festgestellt werden, inwiefern diese zur Funktionalität und Kontrolle der auf Geschwindigkeit basierenden
Konzepte der Fingerinteraktion beitragen. Beide Anwendungen eigenen sich für die Überprüfung des
Anspruches der Intuitivität.
37
4.5. Zusammenfassung
4.5
Zusammenfassung
Drei neue Konzepte mit Nutzung der Geschwindigkeit von Benutzereingaben wurden vorgestellt:
• Geschwindigkeit einer Objektrotation
• Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
• Geschwindigkeit einer Bewegung zur physikalischen Interaktion
Diese neu entwickelten Konzepte können vielseitig in Multitouch-Anwendungen genutzt werden.
Die Geschwindigkeit einer Objektrotation bietet eine intuitive Manipulation von Einstellungen. Benutzer werden rasch erkennen und verstehen können, dass eine schnelle Rotation große Einstellungsschritte und eine langsame Rotation kleine Einstellungsschritte auslöst. Die Rotationsrichtung gibt
zusätzlich an, ob es sich um positive oder negative Einstellungsveränderung handelt. Die Position
des Objektes auf dem Bildschirm kann die auszuführende Aktion beeinflussen. Die Überprüfung des
Konzeptes findet in einer Foto-Applikation statt. Hier soll es dem Benutzer ermöglicht werden, durch
die Rotationsgeschwindigkeit eines auf den Display gestellten Objektes den Zoomfaktor zu verändern
und Bilder zu skalieren.
Die Nutzung der Geschwindigkeit von Bewegungen zur Aktionsdifferenzierung vervielfacht die unterschiedlichen Eingabemöglichkeiten an einem Multitouch-Table. Es können durch die gleiche Bewegung in verschiedenen Geschwindigkeiten unterschiedliche Aktionen ausgeführt werden. Dieses
Konzept wird, wie schon das der Geschwindigkeit einer Objektrotation, in einer Foto-Anwendung
getestet. Durch eine schnelle Bewegung eines dargestellten Fotos in Richtung oberen Bildschirmrands soll das Bild auf einen Projektor dargestellt werden. Das Aufrufen der Bildschirmtastatur soll
ebenfalls durch eine schnelle Bewegung gelöst werden.
Das Konzept zur Anwendung der Geschwindigkeit einer Bewegung zur physikalischen Interaktion
kann dazu genutzt werden, Multitouch-Anwendungen noch realer wirken zu lassen. Wird eine Bewegung ausgeführt, werden beim Enden der Berührung die X- und Y- Geschwindigkeiten ausgelesen
und genutzt. Vor allem im Bereich der Spiele für den Multitouch-Table ermöglicht es eine intuitive und präzise Steuerung. Dies wird in einem Curling-Spiel erprobt. Der Benutzer soll durch eine
Bewegung mit dem Finger über den Touchscreen Geschwindigkeit und Richtung der Curling Steine
bestimmen. Außerdem wird versucht, das Konzept des Wischens durch die Geschwindigkeit einer
Bewegung zu realisieren.
Darüber hinaus wurden zwei Konzept entwickelt, die es dem Benutzer erleichtern sollen, die Geschwindigkeit einer Bewegung mit dem Finger auf dem Touchscreen zu kontrollieren und einzuschätzen:
• Bewegungsdifferenzierung
• Geschwindigkeitsvisualisierung
Bei dem Konzept der Bewegungsdifferenzierung wird zwischen einer endenden Bewegung aus einem
Schwung heraus und gestoppten Bewegungen unterschieden. Das Stoppen führt zum Zurücksetzten
der Geschwindigkeit der Bewegung. Hierdurch soll der Benutzer Kontrolle über die Geschwindigkeitsauswirkung seiner Aktionen erhalten.
38
4.5. Zusammenfassung
Das Konzept der Geschwindigkeitsvisualisierung soll helfen, die aufgebaute Geschwindigkeit einer
Bewegung, die eine Objekt bewegt, einzuschätzen. Zusätzlich soll es zum Verständnis und dadurch
zur Kontrolle des Zurücksetzung der Geschwindigkeit durch die Bewegungsdifferenzierung dienen.
Beide Konzepte werden in der Foto-Applikation sowie im Curling-Spiel umgesetzt, um zu prüfen, ob
sie zur Benutzerfreundlichkeit beim Nutzen von Geschwindigkeit beitragen.
Das Nutzen der Beschleunigung von Benutzereingaben stellte ein Problem dar. Da nur die Änderung
der Geschwindigkeit gemessen wird, würde eine Bewegung mit gleich bleibender Geschwindigkeit auf
dem Touchscreen nur am Anfang einen Wert liefern. Obwohl der Benutzer seine Bewegung nicht
verändert, wird nach der Anfangsbeschleunigung keine Veränderung mehr ausgelöst. Dies könnte zu
einer Verwirrung des Benutzers führen und steht im Gegensatz zur Intuitivität des Multitouch-Tables.
Um die Konzepte zu realisieren, müssen Berührungsdaten empfangen und verarbeitet werden. Das
nächste Kapitel der technischen Umsetzung befasst sich mit diesem Thema. Nachdem auf die Kommunikation zwischen Reactivision und Flash eingegangen wird, folgt die Dokumentation des Auslesens und Verarbeiten der Berührungsdaten in Flash.
39
Kapitel 5
Technische Umsetzung
Im vorherigen Kapitel wurden neue Konzepte mit Nutzung der Bewegungsgrößen zur Interaktion
an einem Multitouch-Table entwickelt. Dieses Kapitel befasst sich mit der technischen Umsetzung.
Zuerst erfolgt die Vermittlung eines Grundwissen über das Framework zum Auslesen der Berührungsdaten und das TUIO-Protokoll zum Übermitteln der Daten. Anschließend die Erklärung des Auslesens
und Verarbeitens dieser Daten in Flash.
5.1
Einleitung
Die Anwendungen werden für einen Multitouch-Table, basierend auf der FTIR-Technologie geschrieben. Zum Auslesen und Verarbeiten der Infrarotkamera-Daten wird das Open Source Framework
Reactivision verwendet, welches zur Datenübertragung das TUIO-Protokoll nutzt.
Nach der Erläuterung des technischen Hintergrundes wird die Verarbeitung der TUIO-Daten in Flash
behandelt. Das Empfangen, Auslesen und Verarbeiten der Daten wird erläutert und die dazu benötigten Klassen werden vorgestellt.
5.2
Reactivision
Reactivision ist ein plattformunabhängiges Framework für die schnelle und stabile Verfolgung von
mit fiducials markierten Objekten, welches darüber hinaus mehrere Finger verfolgen kann [AT09].
Ursprünglich wurde dieses Framework in Spanien an der Universität Pompeu Faba als Teil des
reacTable Projektes entwickelt. Der reacTable ist ein neuartiges, elektronisches Musikinstrument,
basierend auf der Technologie des Multitouch-Tables. Durch Platzieren und Manipulieren von markierten Objekten auf dem reacTable können verschiedene Elemente, wie Synthesizer, Effekte, Loops
oder Kontrollelemente, gesteuert und miteinander verbunden werden, um so Musik zu erzeugen.
Reactivision dient hierbei nur zur Erkennung und Verfolgung der Finger und Objekte und enthält
selbst keinerlei musikalische Effekte, wie Synthesizer oder ähnliches. Reactivision ist eine eigenständige Anwendung, die eine Open Sound Control (OSC) Nachricht über User Datagram Protokoll (UDP)
Port 3333 sendet. Es implementiert das TUIO-Protokoll zur Übermittlung von Informationen wie
40
5.2. Reactivision
Position, Rotation oder Geschwindigkeit von markierten Objekten und Fingern.
Reactivision bezieht seine Informationen zu Fingern und Objekten über den Echtzeit-Video-Stream
der Infrarotkamera. Die Quellbilder werden mit Hilfe eines Algorithmus in Schwarz/Weiß-Bilder umgewandelt. Danach werden diese Schwarz/Weiß-Bilder nach von den fiducials bekannten schwarzen
und weißen Regionen abgesucht. Beim Erkennen einer bekannten Schwarz/Weiß-Kombination erfolgt anhand dieser die Zuweisung einer eindeutigen ID. Zusätzlich erhält jedes erkannte Objekt eine
Session ID, die von Sitzung zu Sitzung variieren kann.
Wenn etwas den Touchscreen berührt und Reactivision keine bekannten Schwarz/Weiß-Kombination
darin erkennen kann, erfolgt automatisch die Registrierung als Finger. Finger werden umgangssprachlich als Blobs (deutsch: Klecks) bezeichnet, da sie auf dem Video-Stream nur als weiße Punkte
erscheinen.
Abbildung 5.1: Fünf Berührungspunkte von Fingern aufgenommen und gefiltert von Reactivision.
c
Reactivision
Um die Anwendungsentwicklung auf herkömmlichen Computersystemen zu ermöglichen, stellt Reactivision den TUIO-Simulator bereit.
Abbildung 5.2: Screenshot des TUIO-Simulators mit einem simulierten Finger und einem simulierten
Objekt auf dem Touchscreen. Der Finger und das Objekt wurden gekennzeichnet.
Der TUIO-Simulator ist eine Java-Software, die es ermöglicht Berührungsdaten, wie sie Reactivision
senden würde, zu simulieren. Mit der Computermaus können so in eine Java-Fenster Finger mit der
41
5.3. TUIO-Protokoll
Maus simuliert werden. Auch Grafiken, welche mit Fiducials markierte Objekte darstellen, können
mit der Maus bewegt und rotiert werden.
5.3
TUIO-Protokoll
Das TUIO-Protokoll dient als Kommunikationsinterface für Multitouch-Table Interfaces und darunter liegende Applikationen. Es wurde entwickelt, um Informationen über Objekte und Fingern an
Anwendungen zu übermitteln [MK05].
Hierzu definiert das TUIO-Protokoll zwei Hauptklassen von Nachrichten: Set- und Alive-Nachrichten.
Set-Nachrichten werden verwendet, um detaillierte Informationen, wie zum Beispiel Position oder
Ausrichtung über Objekte und Cursor, zu senden. Die Alive-Nachrichten identifizieren mit Hilfe
von Session IDs alle auf dem Touchscreen erkannten Finger und Objekte, auch wenn die Daten
unveränderten bleiben. Zusätzlich gibt es noch fseq-Nachrichten, um jeden Aktualisierungsvorgang
mit einer eindeutigen Frame Sequenz (fseq) ID zu kennzeichnen.
Um schlechten Latenzen vorzubeugen, bedient sich das TUIO-Protokoll an dem UDP Transport zum
Senden der Daten. Da hier die Möglichkeit eines Paketverlusts besteht, sendet TUIO redundante
Daten.
Generelle Syntax der Open Sound Control OSC - Nachrichten von TUIO:
/ tu i o /[ profileName
/ tu i o /[ profileName
/ tu i o /[ profileName
/ tu i o /[ profileName
] source [ Addresse ]
] s e t s e s s i o n I D [ Parameter L i s t e ]
] a l i v e [ L i s t e von a k t i v e n s e s s i o n I D s ]
] fseq
Am Profilnamen kann erkannt werden, ob die folgenden Informationen einen Blob oder ein mit Fiducial markiertes Objekt betreffen. /tuio/2Dobj steht für ein erkanntes Objekt. /tuio/2Dcur steht
für einen Blob.
Eine Set-Nachricht enthält folgende Informationen:
s
i
x,
a,
X,
A,
m
r
P
y,
b,
Y
B,
z
c
,Z
C
S e s s i o n I D , t e m p o r ä r e O b j e k t ID
C l a s s e n ID , F i d u c i a l ID
P o s i t i o n (0 −1)
Wi n k el (0−2 PI )
Bewegungsvektor ( Bewegungsgeschwindigkeit & Richtung )
R o t a t i o n s v e k t o r ( R o t a t i o n s g e s c h w i n d i g k e i t & Richtung )
Bewegungsbeschleunigung
Rotationsbeschleunigung
F r e i e r Pa r a m eter , Typ w i r d ü b e r den OSC Pa k et H ea d er d e f i n i e r t
Da die Kamera eine andere Auflösung als die Projektionsfläche haben kann, werden die Positionsdaten vor dem Senden durch die Sensorbreite dividiert. Somit werden ausschließlich Positionswerte von
Null bis Eins gesendet, die vor dem Verwenden mit der Projektionsbreite multipliziert werden müssen.
5.4
Kommunikation mit Flash
Reactivision sendet Open Sound Control Nachrichten mit dem TUIO-Protokoll [MK05] [Mul08].
Dieses implementiert ein User Datagram Protokoll, welches alle Informationen der Objekte und Fin-
42
5.4. Kommunikation mit Flash
ger auf dem Display enthält.
Flash ist jedoch nicht befähigt UDP-Pakete zu lesen. Eine Javasoftware namens Flosc1 hilft an dieser Stelle die UDP-Pakete mit OSC Nachrichten in Transmission Control Protocol (TCP)-Pakete
mit Extensible Markup Language (XML)-Nachrichten umzuwandeln. In Flash können diese Pakete
anschließend über einem XML Socket empfangen werden. Der Flash XML Socket ermöglicht es,
kontinuierliche TCP-Verbindungen herzustellen und XML Nachrichten über diese zu senden und zu
empfangen. Von Flash über den XML Socket gesendete Paketen können mit Flosc auch wieder in
UPD Pakete konvertiert werden.
Mit Hilfe das DataHandler Event, der jedes mal, wenn der XML Socket Daten empfängt, ausgeführt
wird, werden die eingehenden TCP-Pakete und deren XML Inhalt ausgelesen und analysiert.
Generelle Syntax der von flosc in XML umgewandelten Pakete:
<OSCPACKET ADDRESS= ” 1 2 7 . 0 . 0 . 1 ” PORT=”1785” TIME=” −3548345445577129984” >
<MESSAGE NAME=”/ t u i o /2 Dobj”>
<ARGUMENT TYPE=”s ” VALUE=” a l i v e ” />
<ARGUMENT TYPE=” i ” VALUE=”49” />
<MESSAGE NAME=”/ t u i o /2 Dcur”>
<ARGUMENT TYPE=”s ” VALUE=” a l i v e ” />
<ARGUMENT TYPE=” i ” VALUE=”1” />
</MESSAGE>
An den Nachrichten Namen kann hier erkannt werden, dass es sich um ein Objekt und einen Finger
handelt. Alive signalisiert, dass sie vom Sensor erkannt wurden. Das zweite Argument enthält die
sessionID des Objektes und des Finger und dient zur eindeutig zu identifizierung.
<MESSAGE NAME=”/ t u i o /2 Dcur”>
<ARGUMENT TYPE=”s ” VALUE=” s e t ” />
<ARGUMENT TYPE=” i ” VALUE=”1” />
<ARGUMENT TYPE=” f ” VALUE =”0.540625” />
<ARGUMENT TYPE=” f ” VALUE=”0.58125” />
<ARGUMENT TYPE=” f ” VALUE=”7.937674 E−13” />
<ARGUMENT TYPE=” f ” VALUE=”7.937674 E−13” />
<ARGUMENT TYPE=” f ” VALUE=”0.0” />
</MESSAGE>
</OSCPACKET>
Da hier der Nachrichten Name /tuio/2Dcur ist, handelt es sich um einen Blob. Set bedeutet, dass
sich die Parameter dieses Blobs verändert haben. Nun können aus den Argumenten der Reihe nach die
Parameter sessionID, x-Position, y-Position, x-Bewegungsvektor, y-Bewegungsvektor und Beschleunigung ausgelesen werden. Die x- und y-Werte müssen mit den Verhältnissen der Projektionsfläche
multipliziert werden. Der Argument Type zeigt den Datentyp der Information an: S für String, i für
Integer und f für Float.
In diesem Paket wird übermittelt, dass ein Objekt mit der sID 49 sich noch unverändert auf dem
Multitouch-Table befindet und ein Finger mit der sID 1 sich über den Tisch bewegt.
1
http://www.benchun.net/flosc/
43
5.5. Verarbeiten der TUIO-Protokoll Daten
5.5
Verarbeiten der TUIO-Protokoll Daten
Um eine Multitouch-Applikationen in Flash zu realisieren, müssen die von Flosc gesendeten Pakete
über einen XML-Socket empfangen werden. Die erhaltenen Pakete werden auf ihren Inhalt geprüft,
ausgelesen und die Informationen über den Touchscreen berührende Finger und Objekte gespeichert.
Zur besseren Verarbeitung wird für jeden erkannten Finger und jedes erkanntes Objekt eine Klasse
instanziert, die alle gesendeten Informationen speichert. Anhand der von Reactivision gesendeten ID,
kann eine Berührung oder ein Objekt der zugehörigen Instanz zugeordnet werden. Die Eigenschaften
einer instanzierten Blob- oder Fiducial-Klasse werden ständig mit den von Reactivision gesendeten
Daten aktualisiert. Wird ein Finger oder ein Objekt wieder vom Touchscreen entfernt, erfolgt auch
die Löschung der dazugehörigen Instanz. Zusätzlich zu den von Reactivision gesendeten Informationen können selbst erstellte Eigenschaften in den Klassen gespeichert und aktualisiert werden.
Um die Kommunikation mit anderen Klassen zu vereinfachen, werden sogenannte Events definiert.
Diese Events können in anderen Klassen initialisiert werden und führen eine Funktion aus, wenn
der Event eintritt. Werden neue Informationen zu einem Fingern oder Objekten gesendet, wird der
dazugehörige Event ausgeführt. Zusätzlich erfolgt die Definierung von Events für das Erscheinen
sowie das Verschwinden von Fingern oder Objekten.
5.5.1
Blobs
Eine Instanz der Blob-Klasse repräsentiert einen den Touchscreen berührenden Finger. Beim Auftreten einer neuen Blob-ID in einem der von Reactivision gesendeten Pakete wird ein neues Objekt
der Blob-Klasse instanziert, in der alle von Reactivision gesendeten Informationen zu dem Finger
gespeichert werden.
Beim Erzeugen des Objektes werden die von Reactivision gesendeten Informationen dem Objekt als
Eigenschaften übergeben. Das Objekt wird der dazugehörigen Berührung anhand seiner ID zugeordnet. So lange die Berührung anhält, werden die Informationen ständig den empfangenen Daten
angeglichen. Neben den von Reactivision gesendeten Informationen enthält die Blob-Klasse eigens
festgelegte Eigenschaften zur Berechnung der Geschwindigkeit einer Bewegung, die während der
Berührung festgelegt und aktualisiert werden. Wobei Reactivision Bewegungsvektoren und Beschleunigungsvektoren liefert, bietet es sich an, diese Daten selbst zu errechnen, um sie besser nachzuvollziehen und kontrollieren zu können.
Blob.as
package
{
// I m p o r t d e r M o v i e C l i p −K l a s s e
import f l a s h . d i s p l a y . MovieClip ;
p u b l i c c l a s s Blob
{
p u b l i c v a r i d : Number ; // ID d e s B l o b s
p u b l i c v a r x : Number ; // A k t u e l l e X−K o o r d i n a t e
p u b l i c v a r y : Number ; // A k t u e l l e Y−K o o r d i n a t e
p u b l i c v a r X : Number ; // X−B e w e g u n g s v e k t o r
p u b l i c v a r Y : Number ; // Y−B e w e g u n g s v e k t o r
p u b l i c v a r m: Number ; // B e w e g u n g s b e s c h l e u n i g u n g
p u b l i c v a r i n i t X : Number ; // E r s t e X−K o o r d i n a t e
p u b l i c v a r i n i t Y : Number ; // E r s t e Y−K o o r d i n a t e
44
5.5. Verarbeiten der TUIO-Protokoll Daten
public
public
public
public
public
var
var
var
var
var
o l d X : Number ; // V o r h e r i g e X−K o o r d i n a t e
o l d Y : Number ; // V o r h e r i g e Y−K o o r d i n a t e
s t a r t T i m e : Number ; // Z e i t zum Anfang d e r B er ü h r u n g
endTime : Number ; // Z e i t zum Ende d e r B er ü h r u n g
mc : M o v i e C l i p ; // M o v i e c l i p z u r D a r s t e l l u n g d e s B l o b s
p u b l i c f u n c t i o n B l o b ( i d : Number , x : Number , y : Number , X : Number , Y : Number , m: Number )
{
// V a r i a b l e n beim E r z e u g e n d e s O b j e k t e s d e f i n i e r e n
this . id = id ;
v a r d : Date = new Date ( ) ;
t h i s . startTime = d . time ;
this . initX = x ;
this . initY = y ;
this .x = x ;
this .y = y ;
t h i s .X = X;
t h i s .Y = Y;
t h i s .m = m;
t h i s . oldX = x ;
t h i s . oldY = y ;
t h i s . endTime = d . t i m e ;
}
}
}
Eigenschaften eines Blob-Objektes
• ID
Die ID entspricht der Session-ID des Blobs. An der ID kann ein Blob eindeutig erkannt werden.
Die ID stimmt mit der des von Reactivision erkannten Fingers überein. Die ID wird beim
Instanzieren der Klasse festgelegt und nicht mehr verändert.
• x, y
Die aktuellen X- und Y-Koordinaten der Berührung. Bei jeder Positionsveränderung des Fingers
werden diese Eigenschaft aktualisiert.
• X, Y
Der X- und Y-Bewegungsvektor einer Berührung wird bei jeder Positionsveränderung aktualisiert.
• m
Die Bewegungsbeschleunigung des Fingers wird ständig aktualisiert.
• oldX, oldY
Die vorherigen X- und -Y Koordinaten werden bei jeder Änderung der X- und Y-Koordinaten
aktualisiert. Diese Eigenschaft wird definiert, um Aktionen zu unterscheiden.
• initX, initY
Die ersten X- und Y-Koordinaten der Berührung werden beim Instanzieren des Objektes festgelegt. Diese Eigenschaften werden den Reactivision Daten angefügt.
• startTime, endTime
Diese definierten Kriterien geben den Zeitpunkt zum Anfang und zum Ende der Berührung
an. Der Anfangszeitpunkt wird beim Instanzieren festgelegt. Der Endzeitpunkt wird beim
Verschwinden des Objektes von Touchscreen festgelegt.
45
5.5. Verarbeiten der TUIO-Protokoll Daten
• mc
Der mc wurde als Merkmal hinzugefügt, um einfacher auf eine Grafik, die den Finger auf
dem Display darstellt, zugreifen zu können. Somit kann die Grafik direkt dem Blob zugeordnet
werden.
Um das Konzept der Bewegungsunterscheidung zu realisieren ist es nötig, die Eigenschaften oldX,
oldY sowie initX, initY, startTime und endTime hinzuzufügen. Mit dem Konzept der Bewegungsunterscheidung soll ermöglicht werden, die Geschwindigkeit durch das Stoppen der Bewegung zurückzusetzen. Um das Stoppen einer Bewegung zu erkennen, erfolgt ein Vergleich der zuletzt gesendeten
Positionsdaten einer Berührung mit den aktuellen Daten. Die Eigenschaften oldX und oldY werden
mit den aktuellen X- und Y-Koordinaten einer Berührung verglichen. Sind diese identisch, wurde
der Finger eine kurze Zeit nicht bewegt, das Zurücksetzen der Geschwindigkeit erfolgt.
Die für die Geschwindigkeitsmessung nötigen Variablen müssen eigens definiert werden. Da Informationen in Flash nur empfangen und nicht gesendet werden können, funktioniert das Nullsetzen der
von Reactivision bereitgestellten Geschwindigkeitsvariablen nicht. Das Zurücksetzten der Reactivision Daten in der dazugehörigen Blob-Instanz hätte nur einen kurzweiligen Effekt. Die Daten von
Reactivision bleiben unverändert und überschreiben bei der nächsten Aktualisierung die zurückgesetzten Variablen mit den unberührten Geschwindigkeitsdaten.
Die Eigenschaft mc dient nur dem leichteren Zugriff auf den die Berührung darstellenden Movieclip.
Über die Blob Instanz können direkt die Eigenschaften der Berührung auf den zugehörigen Movieclip
übertragen werden.
5.5.2
Fiducials
Die Fiducial-Klasse repräsentiert auf den Touchscreen gestellte Objekte, die anhand von Markierungen erkannt werden können. Wie schon bei der Blob-Klasse wird ein neues Objekt der Fiducial-Klasse
beim Auftreten einer neuen Fiducial-ID erzeugt. In der Fiducial-Klasse werden die gleichen Daten
wie in der Blob-Klasse gespeichert. Zusätzlich zu den Informationen der Blob Klasse speichert die
Fiducial Klasse Informationen zur Rotation des Objektes. Außerdem verfügt ein Fiducial Objekt über
zwei IDs, eine SessionID, welche die gleiche Funktion wie die ID des Blobs erfüllt und eine ID, die
angibt, welches Objekt anhand der Markierung erkannt wurde. Eigene Eigenschaften werden hinzugefügt.
Fiducial.as
package
{
// I m p o r t d e r M o v i e C l i p −K l a s s e
import f l a s h . d i s p l a y . MovieClip ;
public class Fiducial
{
p u b l i c v a r s I D : Number ; // S e s s i o n I D d e s F i d u c i a l s
p u b l i c v a r i d : Number ; // ID d e s F i d u c i a l s
p u b l i c v a r x : Number ; // A k t u e l l e X−K o o r d i n a t e
p u b l i c v a r y : Number ; // A k t u e l l e Y−K o o r d i n a t e
p u b l i c v a r a : Number ; // R o t a t i o n s w i n k e l
p u b l i c v a r o l d a : Number ; // V o r h e r i g e r R o t a t i o n s w i n k e l
p u b l i c v a r i n i t A : Number ; // E r s t e r R o t a t i o n s w i n k e l
p u b l i c v a r X : Number ; // X−B e w e g u n g s v e k t o r
46
5.5. Verarbeiten der TUIO-Protokoll Daten
public
public
public
public
public
public
public
var
var
var
var
var
var
var
Y : Number ; // Y−B e w e g u n g s v e k t o r
A : Number ; // R o t a t i o n s v e k t o r
m: Number ; // B e w e g u n g s b e s c h l e u n i g u n g
r : Number ; // R o t a t i o n s b e s c h l e u n i g u n g
s t a r t T i m e : Number ; // Z e i t zum Anfang d e r B er ü h r u n g
endTime : Number ; // Z e i t zum Ende d e r B er ü h r u n g
mc : M o v i e C l i p ; // M o v i e c l i p z u r D a r s t e l l u n g d e s F i d u c i a l s
p u b l i c f u n c t i o n F i d u c i a l ( s I D : Number , i d : Number , x : Number , y : Number , a : Number , X : Number ,
Y : Number , A : Number , m: Number , r : Number )
{
// V a r i a b l e n beim E r z e u g e n d e s O b j e k t e s d e f i n i e r e n
t h i s . sID = sID ;
this . id = id ;
this .x = x ;
this .y = y ;
this .a = a;
t h i s . olda = a ;
this . initA = a ;
t h i s .X = X;
t h i s .Y = Y;
t h i s .A = A;
t h i s .m = m;
this . r = r ;
v a r d : Date = new Date ( ) ;
t h i s . startTime = d . time ;
t h i s . endTime = 0 ;
}
}
}
Zusätzliche Eigenschaften eines Fiducial-Objektes
• ID
An der ID wird erkannt, welches Objekt auf den Touchscreen gestellt wurde. Diese Eigenschaft
wird wie die SessionID nach dem Erzeugen nicht mehr verändert.
• a
Der aktuelle Rotationswinkel des Objektes. Nach jeglicher Änderung erfolgt eine Aktualisierung.
• oldA
Speicherung des vorherigen Rotationswinkel des Objektes, welcher bei jeder Änderung des
Rotationswinkels aktualisiert wird.
• A
Der Rotationsvektor wird ständig den Reactivision-Daten angeglichen.
• r
Die Rotationsbeschleunigung wird permanent aktualisiert.
Neben der Eigenschaft oldA wurden alle beim Blob zusätzlich definierten Eigenschaften auch beim
Fiducial definiert.
5.5.3
Touch Events
Um die Kommunikation mit anderen Klassen zu vereinfachen, werden TouchEvents definiert. Diese
starten, wenn gewisse Ereignisse eintreten. Die Events können anderen Klassen hinzugefügt werden
47
5.5. Verarbeiten der TUIO-Protokoll Daten
und führen dort bestimmte Funktionen aus, wenn sie eintreten. Die Events werden beim Auslesen der
von Reactivision gesendeten Daten aufgerufen. Sie enthalten in den Event-Daten die ID des Fingers
oder Objektes, durch das sie aufgerufen wurden. Nachdem einer Klasse diese Events hinzugefügt
wurden, können alle Berührungsinformationen dort empfangen werden.
TouchEvent.as
package
{
// I m p o r t d e r Event −K l a s s e
import f l a s h . even ts . ∗ ;
p u b l i c c l a s s TUIOEvent e x t e n d s E ven t
{
// D e f i n i t i o n B l o b e v e n t s
p u b l i c s t a t i c c o n s t BlobAdded : S t r i n g = ” BlobAdded ” ;
p u b l i c s t a t i c c o n s t B l o b O n Scr een : S t r i n g = ” B l o b O n Scr een ” ;
p u b l i c s t a t i c c o n s t BlobRemoved : S t r i n g = ” BlobRemoved ” ;
// D e f i n i t i o n F i d u c i a l e v e n t s
p u b l ic s t a t i c const FiducialAdded : Str i n g = ” FiducialAdded ”;
p u b l ic s t a t i c const FiducialOnScreen : Str i n g = ” FiducialOnScreen ”;
p u b l i c s t a t i c const FiduciaRemoved : S t r i n g = ” FiduciaRemoved ” ;
// S p e i c h e r t d i e E v e n t d a t e n
p u b l i c var data ;
// K o n s t r u k t o r
p u b l i c f u n c t i o n TUIOEvent ( t y p e : S t r i n g , d a t a )
{
super ( type ) ;
t h i s . data = data ;
}
}
}
Definierte TouchEvents
• BlobAdded
Wird ausgeführt, wenn eine neue Berührung erkannt wird.
• BlobOnScreen
Wird ausgeführt, wenn sich die Position eines bereits erkannten Fingers ändert.
• BlobRemoved
Wird ausgeführt, wenn ein Finger vom Display genommen wird.
• FiducialAdded
Wird ausgeführt, wenn ein neues Objekt erkannt wird.
• FiducialOnScreen
Wird ausgeführt, wenn sich die Position oder Rotation eines bereits bekannten Objektes ändert.
• FiduciaRemoved
Wird ausgeführt, wenn ein Objekt vom Display entfernt wird.
5.5.4
Verarbeiten der Reactivision-Daten
Die von Flosc in XML umgewandelten Tracking-Daten werden über einen XML-Socket in Flash
empfangen und anschließend ausgelesen. Aus dem Namen der Nachricht wird ersichtlich, ob es sich
48
5.5. Verarbeiten der TUIO-Protokoll Daten
um einen erkannten Finger oder ein erkanntes Objekt handelt. Ist die ID neu, wird eine dazugehörige Instanz der Blob- oder Fiducial-Klasse erstellt. Die Informationen der Reactivision Daten werden
in der Instanz gespeichert und ständig anhand der ID aktualisiert. Die Instanzen der Blob- oder
Fiducial-Klassen werden jeweils in eine Array gespeichert. Dies dient der Übersicht über die den
Bildschirm berührende Finger und Objekte. Zusätzlich wird noch jeweils ein Array mit den Blobund Fiducial-IDs, die momentan erkannt werden, erstellt. Wenn zu einer der ID im Array keine Daten
mehr gesendet werden, wird das Objekt oder der Finger entfernt und die dazugehörige Instanz der
Fiducial- oder Blob-Klasse gelöscht.
Beim Auslesen der Tracking-Daten und dem Erstellen, Aktualisieren und Löschen der Blob- und
Fiducial-Instanzen werden die dazugehörigen TUIOEvents aufgerufen.
TUIO.as
package
{
import
import
import
import
import
import
f l a s h . n e t . XMLSocket ;
f l a s h . e v e n t s . D a ta E ven t ;
f la s h . events .∗;
TUIOEvent ;
Blob ;
Fiducial ;
Die benötigten Klassen müssen importiert werden. Die XMLSocket-, DataEvent- und Event-Klasse
dienen zum Empfangen und Auslesen der Pakete. Ebenso werden die schon vorgestellten Klassen
Blob, Fiducial und TUIOEvent importiert. Die Blob und Fiducial Klassen dienen zum Speichern der
Eigenschaften der Finger und Objekte auf dem Touchscreen. Die TUIOEvent Klasse wird benötigt,
um festzulegen wann, die Events eintreten sollen.
public class
{
private
private
private
private
private
private
private
private
private
TUIO e x t e n d s E v e n t D i s p a t c h e r
var
var
var
var
var
var
var
var
var
T UI O s o ck et : XMLSocket ;
IPaddress : String ;
p o r t : Number ;
blobArray : Array ;
blobIDs : Array ;
f i d u c i a l A r r a y : Array ;
f i d u c i a l I D s : Array ;
s Wi d th : Number ;
s H e i g h t : Number ;
Die Variablen für den XML-Socket samt IP-Adresse und Port werden für das Aufbauen der Verbindung zu Flosc deklariert. Das Blob- und Fiducial-Array dient der Speicherung aller den Bildschirm
berührender Finger und Objekte. Alle Instanzen der Blob-Klasse werden im blobArray und alle Instanzen der Fiducial-Klasse im fiducialArray gespeichert. Die Arrays blobIDs und fiducialIDs dienen
der Speicherung aller IDs der den Bildschirm berührenden Finger und Objekte. Die Variablen sWidth
und sHeight werden für die Speicherung der Dimensionen genutzt und beim Instanzieren der Klasse
übergeben.
p u b l i c f u n c t i o n TUIO ( s t a g e W i d t h : Number , s t a g e H e i g h t : Number )
{
s Wi d th = s t a g e W i d t h ;
sHeight = stageHeight ;
b l o b A r r a y = new A r r a y ( ) ;
49
5.5. Verarbeiten der TUIO-Protokoll Daten
b l o b I D s = new A r r a y ( ) ;
f i d u c i a l A r r a y = new A r r a y ( ) ;
f i d u c i a l I D s = new A r r a y ( ) ;
IPaddress = ”127.0.0.1”;
port = 3000;
T UI O s o ck et = new XMLSocket ( ) ;
T UI O s o ck et . a d d E v e n t L i s t e n e r ( D a ta E ven t . DATA, d a t a H a n d l e r ) ;
T UI O s o ck et . c o n n e c t ( I P a d d r e s s , p o r t ) ;
}
Die beim Instanzieren übergebenen Dimensionswerte der Anwendung werden in den Variablen sWidth
und sHeight gespeichert. Die Erstellung der Arrays erfolgt und die IP-Adresse und der Port von Flosc
werden in den dazugehörigen Variablen gespeichert. Nach der Erstellung des XML-Sockets muss der
DataEvent zum Abfangen der Pakete hinzugefügt werden. Die Verbindung zu Flosc wird mit der
festgelegten IP-Adresse und dem Port über den XML-Socket aufgebaut.
p u b l i c f u n c t i o n g e t B l o b B y I d ( i d : Number ) : B l o b
{
f o r ( v a r i = 0 ; i <b l o b A r r a y . l e n g t h ; i ++)
{
i f ( b l o b A r r a y [ i ] . i d == i d )
{
return blobArray [ i ] ;
}
}
return null ;
}
p u b l i c f u n c t i o n g e t F i d u c i a l B y I d ( s I D : Number ) : F i d u c i a l
{
f o r ( v a r i = 0 ; i <f i d u c i a l A r r a y . l e n g t h ; i ++)
{
i f ( f i d u c i a l A r r a y [ i ] . s I D == s I D )
{
return fiducialArray [ i ] ;
}
}
return null ;
}
Die Funktionen getBlobByID und getFiducialByID können mit Hilfe einer ID aufgerufen werden. Sie
durchsuchen das dazugehörige Array nach einem Blob, beziehungsweise Fiducial mit dieser ID. Wird
der Blob oder das Fiducial gefunden, gibt die Funktion diesen zurück. Bei erfolgloser Suche wird Null
zurückgegeben. Diese Funktionen kann auch in der Hauptanwendung aufgerufen werden, um durch
die ID des Events die dazugehörige Instanz der Blob- oder Fiducial-Klasse mit allen Informationen
zu holen.
p r i v a t e f u n c t i o n d a t a H a n d l e r ( e : D a ta E ven t )
{
p a r s e M e s s a g e s (XML( e . d a t a ) ) ;
}
p r i v a t e f u n c t i o n p a r s e M e s s a g e s ( msg : XML)
{
v a r node : XML;
f o r ea ch ( node i n msg . MESSAGE)
{
Die dataHandler Funktion fängt am XML-Socket ankommende TCP-Pakete ab und ruft zum Auslesen der XML-Daten die parseMasseges Funktion auf. Dort werden die einzelnen XML-Nachrichten
50
5.5. Verarbeiten der TUIO-Protokoll Daten
und deren Inhalt mit einer for-Schleife untersucht.
i f ( node .@NAME == ”/ t u i o /2 Dcur ” )
{
i f ( node .ARGUMENT [ 0 ] . @VALUE == ” s e t ” )
{
v a r i d = node .ARGUMENT [ 1 ] . @VALUE ;
v a r x = Number ( node .ARGUMENT [ 2 ] . @VALUE)∗ s Wi d th ;
v a r y = Number ( node .ARGUMENT [ 3 ] . @VALUE)∗ s H e i g h t ;
v a r X = Number ( node .ARGUMENT [ 4 ] . @VALUE ) ;
v a r Y = Number ( node .ARGUMENT [ 5 ] . @VALUE ) ;
v a r m = Number ( node .ARGUMENT [ 6 ] . @VALUE ) ;
Wenn der Name der Nachricht /tuio/2Dcur entspricht, handelt es sich um eine Information zu einem Blob. Ist zusätzlich das erste Argument der Nachricht set, werden neue Daten zu dem Blob
gesendet. Diese werden anschließend der Reihe nach ausgelesen und zwischengespeichert. An dieser
Stelle erfolgt auch die Nutzung der Variablen sWidth und sHeight. Somit kann eine Anpassung der
empfangenen X- und Y-Koordinaten der Berührung, die in einem Verhältnis zwischen Null und Eins
gesendet werden, an das Verhältnis der Hauptanwendung erfolgen.
va r t u i o b l o b : Blob = getBlobById ( i d ) ;
i f ( t u i o b l o b == n u l l )
{
t u i o b l o b = new B l o b ( i d , x , y , X , Y , m) ;
b l o b Arra y . push ( t u i o b l o b ) ;
d i s p a t c h E v e n t ( new TUIOEvent ( TUIOEvent . BlobAdded , i d ) ) ;
}
Mit der getBlobByID Funktion wird im blobArray nach einem schon gespeicherten Blob mit der
gleichen ID gesucht. Befindet sich noch kein Blob mit dieser ID in dem Array, wird ein neuer Blob
mit den zwischengespeicherten Daten erstellt und dem blobArray hinzugefügt. Zusätzlich wird der
BlobAdded Event mit der ID des neuen Blobs ausgeführt.
else
{
t u i o b l o b . oldX = t u i o b l o b . x ;
t u i o b l o b . oldY = t u i o b l o b . y ;
tuioblob . x = x ;
tuioblob . y = y ;
tuiobl ob .X = X;
tuiobl ob .Y = Y;
t u i o b l o b .m = m;
d i s p a t c h E v e n t ( new TUIOEvent ( TUIOEvent . B l o b O n Scr een , i d ) ) ;
}
}
Bei Vorhandensein des Blobs im blobArray, folgt eine Aktualisierung der Daten durch die zwischengespeicherten Informationen zu dem Finger. Der BlobOnScreen Event wird an dieser Stelle mit der
ID des Blobs ausgeführt.
else
{
i f ( node .ARGUMENT [ 0 ] . @VALUE == ” a l i v e ” )
v a r n e w b l o b I D s : A r r a y = new A r r a y ( ) ;
var icount = 0;
f o r ea ch ( v a r a l i v e I t e m : XML i n node .ARGUMENT . ( @VALUE != ” a l i v e ” ) )
{
n e w b l o b I D s [ i c o u n t ] = ( a l i v e I t e m . @VALUE ) ;
51
5.5. Verarbeiten der TUIO-Protokoll Daten
i c o u n t ++;
}
i f ( b l o b I D s != n u l l )
{
f o r ( v a r n = 0 ; n < b l o b I D s . l e n g t h ; n++)
{
var found = f a l s e ;
f o r ( v a r m = 0 ; m < i c o u n t ; m++)
{
i f ( b l o b I D s [ n]== n e w b l o b I D s [m] )
{
found = true ;
break ;
}
}
i f ( f o u n d == f a l s e )
{
va r t u i o b l o b : Blob = getBlobById ( b l o b I D s [ n ] ) ;
v a r d : Date = new Date ( ) ;
t u i o b l o b . endTime = d . t i m e ;
d i s p a t c h E v e n t ( new TUIOEvent ( TUIOEvent . BlobRemoved , b l o b I D s [ n ] ) ) ;
f o r ( v a r i =0; i <b l o b A r r a y . l e n g t h ; i ++)
{
i f ( b l o b A r r a y [ i ] . i d == b l o b I D s [ n ] )
{
blobArray . s p l i c e ( i , 1);
}
}
}
}
}
blobIDs = newblobIDs ;
}
}
Wenn das erste Argument der Nachricht nicht set sondern alive ist, handelt es sich um einen erkannten Blob, der seine Position nicht verändert hat. Da das TUIO-Protokoll keine Information über das
Entfernen von Fingern sendet, muss überprüft werden, welche IDs nicht mehr vom Sensor erkannt
werden.
Hierzu wird ein neues Array namens newblobIDs erstellt, in dem alle IDs der auf dem Display erkannten Finger gespeichert werden. Der Inhalt des blobIDs Array wird mit dem Inhalt des newblobIDs
Array verglichen. Ist in dem blobIDs Array eine ID vorhanden, welche nicht mehr im newblobIDs
Array vorhanden ist, wurde der Finger vom Display entfernt. Ist dies der Fall, erfolgt die Speicherung
des Endzeitpunkts der Berührung und der BlobRemoved Event wird mit der ID des Blobs ausgeführt.
Anschließend wird der Blob aus dem blobArray entfernt und das BlobIDs Array mit dem newblobIDs
Array überschrieben.
i f ( node .@NAME == ”/ t u i o /2 Dobj ” )
{
i f ( node .ARGUMENT [ 0 ] . @VALUE == ” s e t ” )
{
v a r s I D = node .ARGUMENT [ 1 ] . @VALUE ;
v a r i d = node .ARGUMENT [ 2 ] . @VALUE ;
v a r x = Number ( node .ARGUMENT [ 3 ] . @VALUE)∗ s Wi d th ;
v a r y = Number ( node .ARGUMENT [ 4 ] . @VALUE)∗ s H e i g h t ;
v a r a = Number ( node .ARGUMENT [ 5 ] . @VALUE ) ;
v a r X = Number ( node .ARGUMENT [ 6 ] . @VALUE ) ;
v a r Y = Number ( node .ARGUMENT [ 7 ] . @VALUE ) ;
v a r A = Number ( node .ARGUMENT [ 8 ] . @VALUE ) ;
v a r m = node .ARGUMENT [ 9 ] . @VALUE ;
v a r r = node .ARGUMENT [ 1 0 ] . @VALUE ;
va r t u i o f i d u c i a l : F i d u c i a l = g e t F i d u c i a l B y I d ( sID ) ;
i f ( t u i o f i d u c i a l == n u l l )
{
52
5.5. Verarbeiten der TUIO-Protokoll Daten
t u i o f i d u c i a l = new F i d u c i a l ( sID , i d , x , y , a , X , Y , A , m, r ) ;
f i d u c i a l A r r a y . push ( t u i o f i d u c i a l ) ;
d i s p a t c h E v e n t ( new TUIOEvent ( TUIOEvent . F i d u c i a l A d d e d , s I D ) ) ;
}
else
{
t u i o f i d u c i a l . olda = t u i o f i d u c i a l . a ;
tuiofiducial .x = x;
tuiofiducial .y = y;
tuiofiducial .a = a;
t u i o f i d u c i a l .X = X;
t u i o f i d u c i a l .Y = Y;
t u i o f i d u c i a l .A = A;
t u i o f i d u c i a l .m = m;
tuiofiducial . r = r ;
d i s p a t c h E v e n t ( new TUIOEvent ( TUIOEvent . F i d u c i a l O n S c r e e n , s I D ) ) ;
}
}
else
{
i f ( node .ARGUMENT [ 0 ] . @VALUE == ” a l i v e ” )
v a r n e w f i d u c i a l I D s : A r r a y = new A r r a y ( ) ;
var icount = 0;
f o r ea ch ( v a r a l i v e I t e m : XML i n node .ARGUMENT . ( @VALUE != ” a l i v e ” ) )
{
n e w f i d u c i a l I D s [ i c o u n t ] = ( a l i v e I t e m . @VALUE ) ;
i c o u n t ++;
}
i f ( f i d u c i a l I D s != n u l l )
{
f o r ( v a r n = 0 ; n < f i d u c i a l I D s . l e n g t h ; n++)
{
var found = f a l s e ;
f o r ( v a r m = 0 ; m < i c o u n t ; m++)
{
i f ( f i d u c i a l I D s [ n]== n e w f i d u c i a l I D s [m] )
{
found = true ;
break ;
}
}
i f ( f o u n d == f a l s e )
{
var t u i o f i d u c i a l : F i d u c i a l = g etFid u cia lB yI d ( f i d u c i a l I D s [ n ] ) ;
v a r d : Date = new Date ( ) ;
t u i o f i d u c i a l . endTime = d . t i m e ;
d i s p a t c h E v e n t ( new TUIOEvent ( TUIOEvent . Fi d u ci a R em o ved , f i d u c i a l I D s [ n ] ) ) ;
f o r ( v a r i =0; i <f i d u c i a l A r r a y . l e n g t h ; i ++)
{
i f ( f i d u c i a l A r r a y [ i ] . s I D == f i d u c i a l I D s [ n ] )
{
fiducialArray . splice ( i , 1);
}
}
}
}
}
fid ucia lID s = newfiducialIDs ;
}
}
}
}
}
}
Bei einem Fiducial ist der Name der Nachricht /tuio/2Dobj. Das Auslesen und Verarbeiten der
Daten erfolgt wie bei den Daten des Blobs. Zusätzlich erfolgt die Speicherung und Verwaltung der
Daten zur Rotation des Objektes.
53
5.6. Zusammenfassung
5.6
Zusammenfassung
Die Vorgänge vom Erkennen der Finger und Objekte bis hin zum Verarbeiten der Daten in Flash
wurden aufgezeigt. Eine Infrarot-Kamera zeichnet das durch Finger und Objekte reflektierte InfrarotLicht auf. Reactivision filtert die Bilder der Kamera und wertet diese aus.
Jede Berührung durch ein Objekt oder Finger erhält von Reactivision eine eindeutige SessionID.
Die erhaltenen Informationen zu den Berührungen werden als UDP-Pakete mit OSC-Nachrichten
gesendet. Das TUIO-Protokoll dient hierbei als Kommunikationsinterface. Es wurde entwickelt, um
Informationen von Objekten und Fingern an Anwendungen zu übermitteln. Da Flash nicht in der
Lage ist UDP-Pakete zu empfangen, werden die von Reactivision gesendeten Pakete mit Flosc in
TCP-Pakete mit XML-Nachrichten umgewandelt. Die umgewandelten Pakete können von Flash über
einen XML-Socket empfangen und ausgelesen werden.
Zur Speicherung und Verwaltung der Informationen wird für jeden Finger eine Instanz der BlobKlasse und für jedes Objekt eine Instanz der Fiducial-Klasse erzeugt. Die Speicherung aller von
Reactivision gesendeten Informationen zu einem Display berührenden Finger oder Objekt findet in
der zugehörigen Instanz statt. Die Instanz der Klasse wird anhand der ID der Berührung zugeordnet,
die Informationen werden ständig mit den von Reactivision gesendeten Daten abgeglichen.
Zusätzlich ist es möglich, beim Erstellen, Aktualisieren sowie vor dem Löschen der Instanzen auch
selbst erstellte Eigenschaften mit Werten zu versorgen. Dies ermöglicht, Informationen zu Fingern
und Objekten zu speichern, welche nicht von Reactivision mitgeliefert werden. Somit können alle
benötigten Informationen zu einem Finger oder Objekt direkt in der Instanz gespeichert und durch
diese auch wieder abgerufen werden.
Zur Realisierung der Bewegungsdifferenzierung wurde diese Möglichkeit genutzt, um die vorherige
Position eines Fingers oder Objektes zu speichern. Zusätzliche Eigenschaften zur Geschwindigkeitsberechnung werden angefügt, um die Geschwindigkeit einer Bewegung zurückzusetzen und um eigene
Messintervalle festzulegen.
Zusätzlich wurden Events definiert. Bei jeder neuen Berührung oder dem Ende einer Berührung wird
der zugehörige Event ausgeführt. Auch für das Empfangen neuer Informationen zu einer bestehenden
Berührung existiert ein Event. Werden diese Events einer andern Klasse hinzugefügt, wird immer,
wenn diese Events eintreten, eine dazugehörige Funktion ausgeführt.
Durch Importieren dieser Bibliotheken und das Hinzufügen der Events können die von Reactivision
gesendeten Berührungsdaten in sämtlichen Flash-Klassen genutzt werden.
Im folgenden Kapitel werden diese Daten genutzt, um die neu entwickelten Konzepte zur Interaktion an einem Multitouch-Table mit Nutzung der Bewegungsgrößen umzusetzen. Die Konzepte
werden in einem Curling-Spiel und einer Foto-Applikation erprobt.
54
Kapitel 6
Konzeptumsetzung
Im Kapitel Technische Umsetzung wurde das Empfangen und Verarbeiten von Berührungsdaten
behandelt. Flash-Bibliotheken, welche die Speicherung und Aktualisierung der Informationen zu Fingern und Objekten übernehmen, wurden entwickelt. Darüber hinaus wurden Events definiert, die
über jegliche Veränderung der Objekte und Finger auf dem Touchscreen informieren.
Mit Hilfe dieser Bibliotheken erfolgt in diesem Kapitel die Umsetzung der neu entwickelten Konzepte.
6.1
Einleitung
Die neu entwickelten Konzepte werden in Anwendungen überprüft. Hierzu wird die Implementierung
der bereits vorgestellten Bibliotheken und deren Anwendung zum Empfangen der Berührungsdaten
erklärt.
Es folgt eine Erläuterung der Umsetzung der für die Benutzerfreundlichkeit beitragenden Konzepte
von Bewegungsdifferenzierung und Geschwindigkeitsvisualisierung.
Anschließend erfolgt die Dokumentation der Umsetzung der Beispielanwendungen. In einem CurlingSpiel soll das Konzept von Nutzung der Geschwindigkeit einer Bewegung zur physikalischen Interaktion erprobt werden. Durch die Geschwindigkeit und Richtung einer Bewegung sollen die Curling-Steine
bewegt werden. Zusätzlich wird versucht, die Geschwindigkeit einer Bewegung zur Umsetzung des
Wischens zu nutzen. Ziel ist es, hiermit eine intuitive und präzise Steuerung des Spiels zu erreichen.
Die Konzepte von Nutzung der Geschwindigkeit einer Objektrotation und Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung sollen in einer Foto-Applikation realisiert werden. Es gibt bereits
eine Vielzahl von Foto-Applikationen, in denen jedoch immer nur die gleichen Konzepte zur Interaktion genutzt werden. Das Konzept der Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
soll genutzt werden, um die Bildschirmtastatur aufzurufen. Dies wurde bisher vorwiegend durch das
Drücken einer auf dem Bildschirm dargestellten Schaltfläche umgesetzt. Zusätzlich soll bei einer
schnellen Bewegung eines Bildes in Richtung des oberen Bildschirmrandes, das Bild vom Bildschirm
entfernt und von einem Beamer projiziert werden. Mithilfe der Geschwindigkeit einer Objektrotation
soll das Konzept des Skalierens ersetzt werden, da dies den Benutzern schwerer fällt als alle bisher
vorhandenen Interaktionskonzepte.
55
6.2. Grundgerüst
6.2
Grundgerüst
Das Importieren der im Kapitel Technische Umsetzung vorgestellten Klassen TUIO, TUIOEvent,
Blob und Fiducial ist zum Empfangen der Berührungsdaten nötig. Die TUIO-Klasse wird mit der
Auflösung der Anwendung instanziert. Die TUIOEvents müssen der Instanz hinzugefügt werden, um
alle Informationen zu den Bildschirm berührenden Finger und Objekten zu empfangen. Tritt einer
der Events ein, können in der dazugehörigen Funktion durch die getBlobByID oder getFiducialByID
Funktion, aufgerufen mit der im Event gelieferten ID, alle Informationen zu dem Blob oder Fiducial
abgerufen werden. Die Blob- und Fiducial-Klassen dienen an dieser Stelle der Speicherung und Verwaltung der Informationen.
In der BlobAdded und FiducialAdded Funktion wird ein Movieclip erstellt, der die Position des Fingers oder Objektes auf dem Bildschirm darstellt. Die Position der Grafik wird der Position des Fingers
und des Objektes angepasst. Eine Speicherung der Grafik in der Eigenschaft mc des dazugehörigen
Objektes erfolgt. In der BlobOnScreen und FiducialOnScreen Funktion wird die Position des Movieclips der neuen Position des Fingers oder Objektes angepasst. Beim Verschwinden des Fingers oder
Objektes wird auch der Movieclip in der BlobRemoved und FiducialRemoved Funktion gelöscht.
Mit dem Aufbau dieses Grundgerüstes können die in Kapitel 5 entwickelten Bibliotheken in Anwendungen genutzt werden. Das Empfangen und Verarbeiten aller Informationen zu Fingern und
Objekten in den Events ist somit möglich. Auch Grafiken für Finger und Objekte werden dargestellt.
6.3
Bewegungsdifferenzierung
Die Differenzierung zwischen fortlaufenden und durch einen kurzen Stopp gebremsten Bewegungen
erfolgt in der BlobOnScreen Funktion. Ein Vergleich der vorherigen und aktuellen Koordinaten einer
Berührung findet statt. Sind die Koordinaten identisch, wurde der Finger eine kurze Zeit nicht bewegt. Die Identifizierung einer abgebremsten Bewegung ist möglich. Die ersten Koordinaten und die
Startzeit der Berührung werden auf die aktuellen Werte gesetzt. Hierdurch erfolgt ein Zurücksetzen
der Geschwindigkeit.
Sind die vorherigen und aktuellen Koordinaten einer Berührung unterschiedlich, ist von einer fortlaufenden Bewegung auszugehen und die Variablen zur Geschwindigkeitsberechnung bleiben unberührt.
Die Bewegungsdifferenzierung wird sowohl beim Curling zum Positionieren der Steine vor dem
Schleudern auf die Bahn als auch in der Foto-Applikation zum Verhindern des ungewollten Ausführens
geschwindigkeitsabhängiger Funktionen eingesetzt.
6.4
Geschwindigkeitsvisualisierung
Um die durch eine Bewegung ausgeübte Geschwindigkeit für den Benutzer transparent darzustellen,
sollen bewegte Objekte den Finger mit einer Verzögerung folgen. Die Strecke zwischen Finger und
Objekt soll mit steigender Geschwindigkeit größer werden und mit sinkender Geschwindigkeit sich
verkleinern.
Um dies zu realisieren erfolgt in der BlobAdded Funktion, welche beim Auftreten eines neuen Fin-
56
6.5. Curling
gers aufgerufen wird, eine Abfrage, ob die Koordinaten des Fingers sich mit den Koordinaten eines
Objektes überschneiden. Ist dies der Fall, wird das Folgen des Objektes jeden Frame der Anwendung
berechnet. Die Differenz zwischen Finger und Objekt muss errechnet und durch den Verzögerungswert dividiert werden. Ein größerer Wert stellt eine größere Verzögerung dar. Es folgt eine Addition
der dividierten X- und Y-Differenzwerte zu den X- und Y- Koordinaten des Objektes.
Die Aktualisierung muss jeden Frame erfolgen, da eine Berechnung im BlobOnScreen Event, wie
beim Drag & Drop Verfahren üblich, beim Stillhalten des Fingers zu Fehlern führen würde. Das
Senden von neuen Positionsdaten würde in diesem Fall ausbleiben, somit der Event nicht aufgerufen
und das Näherrücken des Objektes nicht mehr umgesetzt werden.
Die Rotationsveränderung des Objektes kann auch berechnet werden. Es erfolgt eine Berechnung
des Winkels zwischen Finger und Objekt. Die Positionsdifferenzwerte werden, vor dem Dividieren
mit den Verzögerungswerten, mit der atan2 Funktion in einen Winkel umgerechnet. Durch Multiplikation dieses Winkels mit Pi/180 erfolgt eine Umrechnung in Gradmaß. Jegliche Veränderung des
Winkels bei der Bewegung wird nun vom aktuellen Rotationswinkel des Objektes subtrahiert. Dies
entspricht dem Konzeptes der Rotation mit einem Finger.
Die Geschwindigkeitsvisualisierung sowie die Rotation beim Bewegen eines Objektes werden in beiden Konzepten angewandt.
6.5
Curling
Curling ist ein Spiel auf einer Eisfläche zwischen zwei Mannschaften mit je vier Spielern [cur08].
Jeder Spieler der Mannschaften lässt zwei Granitsteine über das Eis gleiten. Beide Mannschaften
wechseln sich mit ihren Spielzügen ab und versuchen mit den Steinen dem Zentrum eines zweifarbigen
Zielkreises so nahe wie möglich zu kommen (siehe Abbildung 6.1). Für jeden Stein, der zum Ende
des Durchgangs am Mittelpunkt des Zielkreises näher liegt als der Stein des Gegners, erhält die
Mannschaft einen Punkt.
c
Abbildung 6.1: Curling Zielkreis mit gespielten Steinen beider Mannschaften. Deutsches
Generalkonsulat Vancouver
Es dürfen Steine, die von der gegnerischen Mannschaft bereits gespielt wurden, mit eigenen Steinen
weggestoßen werden. Nach neun Durchgängen werden die Punkte der Mannschaften addiert und
der Gewinner wird ermittelt.
57
6.5. Curling
Curling ist überwiegend ein taktisches Spiel. Neben der Richtung des gespielten Steins ist die Bestimmung der Geschwindigkeit ein wesentlicher Faktor. Möchte man einen Stein des Gegners wegstoßen,
muss der Stein mit hoher Geschwindigkeit auf die Bahn geschleudert werden. Um wiederum den
Stein im Zielkreis zu positionieren, ist die exakte Dosierung der Geschwindigkeit wichtig, um den
Stillstand des Steins am richtigen Punkt zu erreichen. Die Geschwindigkeit eines Steines kann, nach
dem der Stein abgespielt wurde, nur noch durch Wischen beeinflusst werden (siehe Abbildung 6.2).
Das Wischen der Eisfläche mit einem Besen bewirkt eine Erhitzung der Eisfläche, die entstehende Reibung mit dem Stein wird verringert. Durch schnelles Wischen der Fläche kann somit der
Geschwindigkeitsverlust des Steines vermindert werden.
c
Abbildung 6.2: Wischen mit dem Besen vor einem gespielten Curlingstein. Deutsches
Generalkonsulat Vancouver
Da die Geschwindigkeit der gespielten Steine mit spielentscheidend ist, wurde eine Umsetzung des
Curling zum Erproben des Konzeptes von Nutzung der Geschwindigkeit zur physikalischen Interaktion gewählt. Es existieren bereits Curling-Spiele für Computer und Konsolen mit herkömmlichen
Eingabegeräten. Es liegt jedoch noch keine Umsetzung für den Multitouch-Table beziehungsweise
für ein Touchscreen-System vor. Durch die Touchscreen-Bedienung und vor allem das Nutzen der
Geschwindigkeit einer Bewegung könnte die Steuerung des Spiels um ein vielfaches intuitiver und
präziser gestalten werden als mit herkömmlichen Eingabegeräten.
Zur Umsetzung auf den Multitouch-Table werden die Regeln vereinfacht, damit das Spiel nicht zu
komplex gestaltet wird. Die Dauer des Spieles ist mit neun Durchgängen für ein Spiel auf dem
Multitouch-Table zu langatmig. Daher wird auf das Durchführen mehrerer Durchgänge verzichtet.
Der Benutzer soll nicht gezwungen werden, bei jedem Spiel neun Runden spielen zu müssen. Eine
so mögliche frühere Revanche erhöht den Spielspaß. Zwei Spieler dürfen je vier Steine spielen Um
Spannung beim Spielen aufzubauen, erreicht jeder Stein je nach Position Punkte, unabhängig davon,
58
6.5. Curling
ob er näher am Mittelpunkt des Zielkreises ist als ein Stein des Gegners.
Die Curling-Steine werden mit dem Konzept der Geschwindigkeitsvisualisierung bewegt. Auch das
Konzept der Bewegungsdifferenzierung wird angewendet, um das exakte Positionieren der Steine zu
ermöglichen. Bei Entfernung des Fingers erfolgt die Berechnung der Geschwindigkeit aus der Dauer
der Berührung und der zurückgelegten Strecke. Wenn der Stein über den vorgegebenen Bereich
hinaus gespielt wird, in dem der Spieler den Stein bewegen darf, wird er so behandelt, als ob der
Spieler den Stein losgelassen hätte.
Die berechnete Geschwindigkeit wird an den Stein weiter gegeben und durch eine simulierte Reibung
verringert. Durch eine schnelle Auf- und Abbewegung vor dem gleitendem Stein erfolgt eine Verringerung der Reibung. Schnelle Wischbewegung vermindern hierbei die Reibung stärker als langsame.
Das Konzept des Wischens soll durch die Geschwindigkeit einer Bewegung umgesetzt werden.
Neben der Reibung wird das Verhalten gegeneinander gestoßener Steine simuliert. Um zu verhindern,
dass zu stark beschleunigte Steine aus dem Bildschirm rutschen, wird an den Seiten die Bandenkollision berücksichtigt. Am Ende der Eisfläche wird darauf verzichtet, da sonst zu schnell gespielte Steine
abprallen und eventuell Punkte geben würden, obwohl sie eigentlich im Aus gelandet sind. Verlässt
ein Stein die Bahn hinter dem Zielkreis, wird dieser Stein somit entfernt. Es erfolgt eine Festlegung
der Reihenfolge der Spielzüge und eine Errechnung der Punkte, um das Spiel interessant zu gestalten.
6.5.1
Geschwindigkeit einer Bewegung zur physikalischen Interaktion
Die Eisfläche und Curling-Steine der Spieler sind Grafiken. Die Curling-Steine werden als ObjektInstanzen erstellt, um zusätzliche Informationen zu den Steinen zu speichern. Neben dem Movieclip
werden die Eigenschaften xSpeed und ySpeed definiert, welche die Geschwindigkeit eines bewegten
Steins speichern.
Zur besseren Abfrage der Position und Geschwindigkeit aller Steine in einer for-Schleife, werden alle
Objekt-Instanzen der Steine in einem Array gespeichert. Das abwechselnde Hinzufügen der Steine
von Spieler Eins und Spieler Zwei erleichtert das Abfragen der Spielzüge und der Punkte im Array.
Eine Variable, deren Wert beim Start des Programms Null entspricht, wird jedes Mal, wenn ein
Stein auf der Bahn gespielt wird, um den Wert Eins erhöht. Nur wenn diese Variable der Position
eines Steines im Array entspricht, kann der Stein, wie im Konzept der Geschwindigkeitsvisualisierung
beschrieben, bewegt werden.
Abbildung 6.3: Strecke zwischen der Berührung und dem Stein dient als Geschwindigkeitsindikator,
hier rot gekennzeichnet. Links langsame Bewegung. Rechts schnelle Bewegung.
59
6.5. Curling
Das Konzept der Bewegungsunterscheidung hilft die Position des Steines zu bestimmen, bevor dieser
gespielt wird.
Die Berechnung der Geschwindigkeit erfolgt im BlobRemoved Event. Die getBlobByID Funktion
verschafft alle Daten zu dem Event ausführenden Blob. Die Geschwindigkeitsberechnung erfolgt erst
am Ende einer Berührung, damit die gegebenenfalls durch das Konzept der Bewegungsdifferenzierung zurückgesetzten Werte genutzt werden können. Die Differenz der im Blob gespeicherten ersten
und aktuellen Koordinaten stellt die zurückgelegte Strecke dar. Die benötigte Zeit stellt die Differenz
zwischen dem Anfangszeitpunkt der Messung und der aktuellen Zeit dar. Durch das Dividieren der
Strecke durch Zeit wird die Geschwindigkeit berechnet. Die X- und Y-Geschwindigkeitswerte werden
in der Instanz der bewegten Objekte gespeichert.
Im BlobOnScreen Event erfolgt eine Überprüfung, ob die X-Position des Steins einen gewissen Wert
übersteigt, da der Stein nur bis zu einem gewissen Punkt bewegt werden darf. Wird dieser Wert
beim Bewegen überschritten, werden die gleichen Aktionen wie im BlobRemoved Event ausgeführt.
Berührt ein Stein einen Anderen, erfolgt die Berechnung der Kollision. Mit Hilfe des Satzes des Pythagoras kann aus den X-und Y-Abständen der Steine die Strecke zwischen diesen errechnet werden.
Beträgt die Strecke zwischen den Steinen weniger als der Umfang der beiden Steine dividiert durch
zwei, tritt eine Kollision ein. Die neu berechneten Geschwindigkeitswerte werden in den Instanzen
der Steine gespeichert.
Mit einer for-Schleife werden die X- und Y-Geschwindigkeitswerte aller im Array der bewegbaren Objekte gespeicherten Instanzen jeden Frame der Anwendung überprüft. Ist der Geschwindigkeitswert
ungleich Null, erfolgt die Addition der gespeicherten Geschwindigkeit zur Position des Objektes. Vor
dem Addieren wird jedoch der Geschwindigkeitswert temporär durch 50 dividiert, da die Anwendung
mit 50 Bildern pro Sekunde läuft. Nach dem Addieren der Geschwindigkeit werden die Geschwindigkeitswerte des Objektes um die festgelegte Reibung verringert.
Für den Fall, dass ein Stein durch zu hohe Geschwindigkeit die Eisfläche verlassen würde, erfolgt die
Abfrage einer Bandenkollision. Falls ein Stein in X-Richtung die Bahn verlassen würde, erfolgt eine
Umkehrung der X-Geschwindigkeit der dazugehörigen Objekt-Instanz. Verlässt der Stein die Bahn
in Y-Richtung hinter dem Zielkreis, wird dieser entfernt.
Die Punkte der Spieler werden mit Hilfe der atan2 Funktion berechnet. Durch die atan2 Funktion
kann die Entfernung zum Mittelpunkt der Zielscheibe errechnet und somit die Punkte vergeben
werden. Ist die Position des Steins im Array durch zwei teilbar, handelt es sich um einen Stein von
Spieler Eins. Ist dies nicht der Fall, ist es ein Stein von Spieler Zwei. Die Punkte werden jeden Frame
der Anwendung aktualisiert und in Textfeldern ausgegeben. Sind alle Spielzüge ausgeführt und die
Geschwindigkeit aller Steine beträgt Null, wird der Gewinner anhand der Punkte ermittelt.
6.5.2
Bildschirmbegrenzung
Bei der Begrenzung des Curling-Spielfeldes auf nur den Bildschirm können bei kleinen Touchscreens
Probleme auftreten. Durch wenig Platz zum Bewegen der Objekte sind die Möglichkeiten zur Dosierung der Geschwindigkeit eingeschränkt (siehe Abbildung 6.4). Je größer die Fläche zum Bewegen
des Objektes ist, umso genauer kann die Geschwindigkeit im Laufe der Bewegung korrigiert werden.
Ist die Fläche zur Bewegung der Objekte allerdings zu groß, bleibt kaum noch Platz für das Spielfeld
und somit auch kaum Freiraum für die Bewegung des Steins durch die mitgegebene Geschwindigkeit.
60
6.5. Curling
Durch eine kurze Strecke nach dem Loslassen des Steins wird auch das für Curling typische Wischen
relativ unbedeutend.
Abbildung 6.4: Screenshot des Curling-Spiels bei der Begrenzung auf den Bildschirm.
Um diese Probleme zu beheben, muss die Eisfläche über den Bildschirm hinaus gehen. Diese wird in
Flash mit Hilfe eines Sprites erledigt. Ein Sprite ist eine Art Container, in dem Movieclips gespeichert
werden können. Dem Sprite werden die Movieclips einer Eisbahn, die über den Bildschirm hinaus
geht, sowie die Movieclips der Curling-Steine hinzugefügt. Der Sprite mit den Elementen des Spiels
kann nun über den Bildschirm bewegt werden, um den momentan interessanten Teil des Spielfeldes
zu zeigen. Ein Problem tritt hierbei auf, da die Koordinaten des Bildschirms von den Koordinaten
der Inhalte des Sprites abweichen.
Abbildung 6.5: Vergleich der Koordinaten des Sprites mit der Eisbahn und des Bildschirms. Schwarz
die Koordinaten des Sprites. Rot die Koordinaten des Bildschirms.
Die von Flash gelieferten Funktionen globalToLocal und localToGlobal helfen bei diesem Problem.
Mit diesen Funktionen können lokale Koordinaten eines Punktes, die des Sprites, in globale Koordinaten, die der Bühne, und umgekehrt umgerechnet werden. Dies beinhaltet, dass jedes Mal, wenn
61
6.5. Curling
die Koordinaten des Blobs auf der Bühne mit den Koordinaten der Curling-Steine auf dem Sprites
interagieren, diese umgerechnet werden müssen.
Da bei dieser Variante das Ende der Eisbahn mit der Zielscheibe während der Spielzüge nicht zu
sehen ist, wird zum Planen des nächsten Zuges eine Übersicht benötigt. Hierzu wird ein weiterer
Sprite mit dem Spielfeld und den Curling-Steinen im Verhältnis 1:20 erstellt. Die Positionsdaten der
Steine in der Übersicht werden ständig mit den Koordinaten der Steine auf dem Feld abgeglichen.
Zur Umrechnung in das Verhältnis der Übersicht müssen diese mit dem Faktor 0,2 multipliziert
werden.
Abbildung 6.6: Screenshot des Curling-Spiels mit Eisfläche über den Bildschirm hinaus und hinzugefügter Übersicht.
6.5.3
Wischen
Die Umsetzung des Wischens erfolgt in der BlobOnScreen Funktion. Verlässt der aktuell gespielte
Stein den Bereich in dem er bewegt werden darf, kann der Benutzer durch eine schnelle Auf- und
Abbewegung die Reibung des Steins verringern. Es erfolgt eine Abfrage der Position des Fingers.
Bei jeder Auf- und Abbewegung des Fingers, welche die Y-Koordinate des Steins schneidet, erfolgt
für einen kurzen Moment das Verringern der Reibung des Steines.
Abbildung 6.7: Korrekte Ausführung der Wischbewegung vor dem Stein, hier blau gekennzeichnet.
62
6.6. Foto-Applikation
Die Umsetzung des Wischens durch die Geschwindigkeit einer Bewegung konnte im Rahmen dieser
Diplomarbeit jedoch nicht umgesetzt werden, da folgende Probleme deutlich wurden. Neben der
Geschwindigkeit einer Bewegung ist die Position und Richtungsänderung für den Effekt des Wischens
von großer Bedeutung. Würde der Effekt des Wischens durch die Geschwindigkeit einer Bewegung
errechnet werden, könnte der Benutzer überall auf dem Bildschirm den Finger auf und abbewegen,
um die Reibung zu verringern. Schnelle Bewegungen ohne starke Richtungsänderung würden ebenso
den gleichen Effekt erzielen.
6.6
Foto-Applikation
Es existieren bereits sehr viele Foto-Applikationen, jedoch werden fast ausschließlich die gleichen
Konzepte zur Interaktion umgesetzt. Durch die Konzepte von Drag & Drop, der Rotation und des
Skalierens erhält der Benutzer die Möglichkeit dargestellte Bilder zu manipulieren. In manchen Anwendungen kann zusätzlich durch Drücken einer dargestellten Schaltfläche die Bildschirmtastatur
hervorgerufen werden.
Die entwickelte Foto-Applikation unterscheidet sich von diesen Konzepten. Das den Benutzern
schwer fallende Konzept des Skalierens zum Hinein- und Herauszoomen und Skalieren von Bildern wird durch das Konzept von Nutzung der Geschwindigkeit einer Objektrotation ersetzt.
Durch das Plazieren und Rotieren eines auf den Display gestellten Objektes kann der Benutzer zoomen. Überschneiden sich die Koordinaten des Objektes mit einem dargestellten Foto, wird das Bild
durch die Rotationsgeschwindigkeit skaliert. Die Richtung der Rotation gibt hierbei an, ob vergrößert
oder verkleinert werden soll. Das Nutzen der Geschwindigkeit soll den Vorteil bieten, dass sowohl
kleine als auch große Skalierungsvorgänge schnell und intuitiv erledigt werden können.
Darüber hinaus wird das Konzept von Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
genutzt. Der Benutzer kann mit einer Aktion, in verschiedenen Geschwindigkeiten ausgeführt, unterschiedliche Effekte erzielen.
Das Aufrufen der Bildschirmtastatur wird durch dieses Konzept gelöst. Die Tastatur erscheint,
wenn eine Bewegung in einer bestimmten Geschwindigkeit über den Bildschirm ausgeführt wird.
Die Anfangs- und Endkoordinaten dieser Bewegung bestimmen hierbei die Position und Rotation
der Tastatur.
Darüber hinaus wird eine noch nie umgesetzte Aktion mit Hilfe dieses Konzeptes realisiert. Wird ein
Bild mit dem bei der Geschwindigkeitsvisualisierung beschriebenen Verfahren mit einer festgelegten
Geschwindigkeit in Richtung des oberen Bildschirmrandes bewegt, wird dieses vom Bildschirm entfernt und von einem Beamer projiziert. Damit dies nicht ungewollt geschieht, kann der Benutzer
durch kurzes Verharren mit dem Finger an einer Position die Geschwindigkeit der Bewegung zurücksetzen.
Um die Anwendung zu vervollständigen, ist neben dem Bewegen der Fotos mit dem Finger auch die
Rotation mit zwei Fingern möglich. Das Verschieben des gesamten Bildschirminhalts wird in dieser
Anwendung ebenfalls realisiert. Dies nicht wie üblich mit einem Finger, da sonst beim Aufrufen der
Bildschirmtastatur immer der gesamte Bildschirminhalt verschoben würde. Der Benutzer muss die
Fläche zwischen den Fotos mit zwei Fingern berühren, um alle Inhalte zu verschieben.
63
6.6. Foto-Applikation
Abbildung 6.8: Screenshot der Foto-Applikation mit aufgerufener Bildschirmtastatur.
6.6.1
Rahmendbedingungen
Um das Zoomen in der Anwendung zu ermöglichen, müssen in Flash die Bildschirminhalte skaliert
werden. Häufig wird dies in Flash-Foto-Applikationen durch Skalieren der Bühne realisiert. Alle auf
dem Bildschirm dargestellten Elemente werden skaliert. Dies bringt das Problem mit sich, dass neben
den Bildern auch die Bildschirmtastatur und die Grafiken zur Darstellung der Blobs und Fiducials
skaliert werden. Um dies zu verhindern, wird, wie bereits bei der Umsetzung des Curling-Spieles,
ein Sprite verwendet. Alle Bilder werden diesem hinzugefügt und nur der Sprite wird skaliert. Da
die Koordinaten der Inhalte des Sprites von den Koordinaten des Bildschirmes abweichen, ist eine
Umrechnung von lokalen zu globalen und globalen zu lokalen Koordinaten nötig, wenn die Positionsdaten der Finger mit den Positionsdaten der dargestellten Objekte interagieren. Zusätzlich ist
eine Multiplizierung der lokalen Koordinaten mit dem Skalierfaktor erforderlich. Hierzu werden Variablen definiert, welche die aktuelle Skalierung des Sprites speichern. Diese werden beim Start der
Anwendung auf 1 gesetzt.
In der Foto-Applikation werden die bewegbaren Bilder, wie schon beim Curling, als Objekt-Instanz
mit dem Movieclip und den Eigenschaften xSpeed und ySpeed zur Speicherung der Geschwindigkeit
erstellt. Die Foto-Objekt-Instanzen werden auch hier zur besseren Abfrage einem Array hinzugefügt.
Die Position des Objektes im Array entspricht einer eindeutigen Foto-ID.
Da in der Anwendung mehrere Singletouchaktionen gleichzeitig und Multitouchaktionen möglich
sein sollen, wird den Blobs eine zusätzliche Eigenschaft angefügt. Die zusätzliche Eigenschaft Objekt gibt an, welches Objekt der Blob berührt. Die Eigenschaft wird beim Erstellen des Blobs auf 100
gesetzt, da das Array der Fotos diese Länge nicht erreicht. In der BlobOnScreen Funktion, welche
beim Auftreten eines neuen Fingers aufgerufen wird, erfolgt eine Überprüfung, ob die Koordinaten
eines Fingers sich mit denen eines dargestellten Fotos überschneiden. Ist dies der Fall, folgt in der
Objekt-Eigenschaft des Blobs eine Speicherung der Position des Bildes im dazugehörigen Array. Somit kann über die Objekt-Eigenschaft eines Blobs direkt auf das berührende Bild zugegriffen werden.
Ist die Eigenschaft unverändert 100, wird keines der Bilder berührt.
Da in der Foto-Applikation Single- und Multitouchaktionen möglich sein sollen, ist die Unterschei-
64
6.6. Foto-Applikation
dung dieser notwendig. Hierzu werden alle Blobs beim ersten Auftreten einem Array hinzugefügt
und beim Verschwinden wieder entfernt. An der Länge des Arrays kann die Anzahl der den Display
berührenden Finger bestimmt werden. Wird nur eine Berührung erkannt, handelt es sich um eine
Singletouch Aktion. Ist die Länge des Arrays größer Eins muss unterschieden werden, ob es sich um
mehrere Singletouchaktionen oder Multitouchaktionen handelt. Hierzu erfolgt anhand der ObjektEigenschaft der Blobs eine Überprüfung, ob mehrere Finger das gleiche Objekt berühren. In diesem
Fall ist von einer Multitouchaktion auszugehen. Zur Verarbeitung werden die Singletouchaktionen
und Multitouchaktionen in getrennte Arrays gespeichert. Die Kategorisierung von Single- und Multitouchaktionen wird jeden Frame der Anwendung wiederholt.
Ist die Länge des Arrays der Singletouchaktionen größer eins, werden die dort gespeicherten Blobs
nach dem Konzept der Geschwindigkeitsvisualisierung verarbeitet um das in der Objekt-Eigenschaft
gespeicherte Bild zu verschieben und zu rotieren.
Abbildung 6.9: Rotation eines Fotos beim Verschieben, Position des Fingers rot gekennzeichnet.
Ist die Länge des Arrays der Multitouchaktionen größer Zwei, werden die Multitouchaktionen verarbeitet. Die Rotation des in der Objekt-Eigenschaft der Blobs gespeicherten Bildes erfolgt nach dem
Konzept der Rotation mit zwei Fingern. Anhand der Differenz zwischen den beiden Fingern wird
mit der atan2 Funktion der Winkel zwischen den Berührungen bestimmt. Jede Veränderung dieses
Winkels wird auf das berührte Bild übertragen. Ist der Wert der Objekt-Eigenschaft 100, wird kein
Objekt berührt. In diesem Fall wird das Bewegen des gesamten Sprites umgesetzt, indem jegliche
Veränderung der Koordinaten einer der Berührungen, wie beim Drag & Drop, auf den Sprite übertragen wird.
Die Überprüfung und Kategorisierung der Berührungen wird ständig wiederholt, da aus Singletouchaktionen durch Hinzufügen eines weiteren Fingers Multitouchaktionen werden können. Umgekehrt
kann durch das Entfernen eines Fingers aus einer Multitouchaktion eine Singletouchaktion werden.
Die Arrays der Single- und Multitouchaktionen werden nach dem Ausführen der Aktion geleert und
erst beim neuen Kategorisieren wieder gefüllt.
Wurde die Bildschirmtastatur aufgerufen, erfolgt in der BlobOnScreen Funktion die Abfrage, ob eine
Überschneidung der Koordinaten der Tastatur und des Fingers vorliegt. Ist dies der Fall, folgt eine
65
6.6. Foto-Applikation
weitere Überschneidungsabfrage zwischen den Koordinaten des Fingers und den einzelnen Tasten.
Liegt auch hier eine Überschneidung vor, wird die entsprechende Taste gedrückt. Liegt eine Überschneidung mit der Tastatur und keiner der Tasten vor, kann die Tastatur per Drag & Drop bewegt
werden. Das Konzept zur Bewegungsdifferenzierung wird auch in dieser Anwendung angewendet.
6.6.2
Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
In der BlobRemoved Funktion wird die X- und Y-Geschwindigkeit einer Bewegung berechnet. Es
folgt eine Abfrage der Eigenschaft Objekt der Blob Instanz.
Entspricht der Wert 100, berührt der Finger kein Objekt. Ist dies der Fall, werden die X- und YGeschwindigkeiten der Bewegung addiert. Negative Geschwindigkeitswerte werden vorher in positive
umgewandelt, um Verfälschungen des Wertes zu verhindern. Überschreitet die Summe der X-und
Y-Geschwindigkeiten einen festgelegten Wert, wird der Winkel zwischen den ersten und letzten Koordinaten der Berührung mit der atan2 Funktion berechnet. Die Rotation der Bildschirmtastatur
wird diesem Winkel angepasst und die Position der Tastatur den letzen Koordinaten der Berührung
angeglichen. Zuletzt wird die Grafik der Bildschirmtastatur sichtbar gestellt.
Enthält die Eigenschaft objekt der Blob Instanz hingegen die Position eines Bild-Objektes im dazugehörigem Array, wird ein Bild bewegt. Zur Überprüfung, ob das Bild mit der benötigten Geschwindigkeit in Richtung des oberen Bildschirmrandes bewegt wurde, erfolgt der Abruf des Wertes der
Y-Geschwindigkeit. Tritt dieser Fall ein, erfolgt eine Speicherung der Geschwindigkeitswerte in der
Instanz des Bild-Objektes.
Die Position des Bildes im Array wird in einer Variable gespeichert, deren Standardwert 100 entspricht, da das Bilder Array diese Länger nicht ereicht. Der Inhalt dieser Variable wird jeden Frame
überprüft. Weicht der Wert vom Standardwert ab, wird ein Bild zum Beamer bewegt. Der Wert
der Variable entspricht in diesem Fall der Position des zu projizierendem Bildes im Bilder-Array.
Das Bild wird mit der in der Objekt Instanz gespeicherten Geschwindigkeit so lange bewegt, bis es
den Bildschirm verlässt und von einem Beamer projiziert wird. Der Wert der Variable wird hiernach
wieder auf den Standardwert zurückgesetzt.
6.6.3
Nutzung der Geschwindigkeit einer Objektrotation
Die Skalierung durch die Geschwindigkeit einer Objektrotation findet in der FiducialOnScreen Funktion statt. Diese Funktion wird immer dann aufgerufen, wenn neue Informationen zu einem bereits
erkannten Fiducial gesendet werden. Durch die getFiducialByID Funktion werden alle Informationen
zu dem Event ausführendem Objekt beschafft. Um Verzögerungen zwischen der Interaktion des Benutzers und der Aktion in der Applikation zu vermeiden, erfolgt die Geschwindigkeitsmessung bei
jeder Aktualisierung der Daten. Hierzu wird die Eigenschaft des Startzeitpunktes der Messung bei
jedem Aufruf als letzte Handlung auf die aktuelle Zeit gesetzt.
Hiervor erfolgt ein Vergleich des aktuellen und vorherigen Rotationswinkels des Objektes. Sind die
Winkel unterschiedlich, wurde das Objekt bewegt und es erfolgt die Berechnung der Rotationsgeschwindigkeit. Zuerst wird die Differenz der Winkel berechnet. Da ein Sprung von 360 auf 0 Grad
und umgekehrt möglich ist, folgt eine Überprüfung, ob die Rotation -300 oder 300 Grad übersteigt
66
6.7. Zusammenfassung
(siehe Abbildung 6.10). Ist diesem Fall wird je nach Ergebnis 360 zum Wert addiert oder vom Wert
subtrahiert.
Abbildung 6.10: Problematik des Grad-Sprungs von 0 auf 360 Grad und umgekehrt.
Anschließend wird der Endzeitpunkt der Messung mit der aktuellen Zeit definiert. Die Berechnung
der Rotationsgeschwindigkeit erfolgt durch das Dividieren der Rotationsveränderung durch die Zeit
zwischen den Messungen. Um einen neuen Skalierungsfaktor zu berechnen, wird die Rotationsgeschwindigkeit vom alten Skalierungsfaktor abgezogen. Der Wert wird subtrahiert, da eine Rotation
nach links eine Vergrößerung des Skalierungsfaktors bewirken soll.
Bei der Skalierung zeigt sich ein weiterer Vorteil der Nutzung des Sprites. Da der Sprite im Gegensatz
zur Bühne verschoben werden kann, ist es möglich, zu einem festgelegten Punkt zu skalieren. Somit
kann die Position des rotierten Objektes den Fokus für den Zoom definieren. Bevor die Skalierung
stattfindet, wird hierzu die Matrix des Sprites zu den lokalen Koordinaten des Fiducials verschoben,
erst danach skaliert und wieder zurück verschoben. Die Variablen des Skalierungsfaktors werden den
neuen Skalierungsfaktoren angeglichen.
Überschneiden sich jedoch die Koordinaten des Objektes mit den Koordinaten eines Bildes, wird der
Skalierfaktor des Bildes um die Rotationsgeschwindigkeit erhöht.
6.7
Zusammenfassung
In diesem Kapitel wurde die Umsetzung der entwickelten Konzepte dokumentiert. Hierzu erfolgte
zuerst die Implementierung der im Kapitel der technischen Umsetzung vorgestellten Klassen zum
Empfangen und Verarbeiten der Berührungsdaten. Das Grundgerüst der Anwendungen wurde vorgestellt, welches auch das Darstellen von Berührungen und Objekten, die den Bildschirm berühren,
beinhaltet.
Es erfolgte die Realisierung der Konzepte zur Benutzerfreundlichkeit. Die Geschwindigkeitsvisualisierung und Bewegungsdifferenzierung, mit Hilfe der eigens definierten Variablen, konnte sowohl in
dem Curling-Spiel als auch in der Foto-Applikation erfolgreich umgesetzt werden.
Die Umsetzung des Konzeptes von Geschwindigkeit zur physikalischen Interaktion erfolgte im CurlingSpiel. Hierzu wurde die Geschwindigkeit einer Bewegung beim Enden einer Berührung ausgelesen
67
6.7. Zusammenfassung
und an das bewegte Objekt übergeben. Zusätzliche folgte die Erstellung physikalischer Rahmenbedingungen wie Reibung und Kollision von Objekten. Für den Ablauf des Spiels wurden Regeln
festgelegt sowie Punkte anhand der Position gespielter Steine berechnet.
Da auf kleinen Touchsystemen die Begrenzung des Spielfeldes auf nur den Bildschirm den Spielspaß
beeinträchtigt und das für das Curling übliche Wischen an Bedeutung verliert, wurde eine zweite
Variante des Spiels realisiert. Hierbei ragt das Spielfeld über den Bildschirmrand hinaus, es wird nur
der interessante und entscheidende Teil des Spiels gezeigt. Um den Überblick zu gewähren, wurde
eine Übersicht der gesamten Eisfläche hinzugefügt.
Das Wischen konnte durch die Geschwindigkeit einer Bewegung nicht realisiert werden, da die Position des auf- und abbewegenden Fingers bedeutender als die Geschwindigkeit der Bewegung ist.
Um die Konzepte von Geschwindigkeit zur Aktionsdifferenzierung und Geschwindigkeit einer Objektrotation in einer Foto-Applikation umzusetzen, wurden die für solch eine Anwendung vertrauten
Konzepte realisiert. Die Bewegung durch den Bildschirminhalt muss durch zwei Finger erfolgen,
sonst treten durch das Konzept der Aktionsdifferenzierung zum Aufrufen der Bildschirmtastatur
Fehler auf.
Das Auslesen der Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung erfolgt, wie schon
beim Curling, am Ende einer Berührung. Die Geschwindigkeit einer Objektrotation wird hingegen
bei jeglicher Änderung der Rotation eines Objektes gemessen.
Nachdem die neu entwickelten Konzepte erfolgreich in Beispielanwendungen realisiert wurden, erfolgt im anschließenden Kapitel dessen Bewertung.
68
Kapitel 7
Konzeptbewertung
Das vorherige Kapitel dokumentierte die exemplarische Umsetzung der entwickelten Konzepte in
Beispielanwendungen. Das Konzept von Nutzung der Geschwindigkeit einer Bewegung zur physikalischen Interaktion wurde in einem Curling-Spiel getestet. Die Erprobung der Konzepte von
Nutzung der Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung und Geschwindigkeit einer Objektrotation fand in einer Foto-Applikation statt. Darüber hinaus wurden die Konzepte der
Bewegungsunterscheidung und Geschwindigkeitsvisualisierung zur Benutzerfreundlichkeit bei der Geschwindigkeitsbestimmung von Fingerbewegungen realisiert und in den Anwendungen verwendet.
Eine Bewertung der umgesetzten Konzepte erfolgt in diesem Kapitel. Im Fokus steht neben der
Funktionalität die für den Multitouch-Table gängige Intuitivität der Konzepte.
7.1
Einleitung
Der folgende Abschnitt bewertet die in den Anwendungen umgesetzten Konzepte. Die Fertigstellung
eines Multitouch-Tables an der Fachhochschule hat sich verzögert. Aufgrund dessen musste auf eine
Erprobung der Konzepte auf einem Multitouch-Table verzichtet werden, sodass die Erprobung nur
in Verbindung mit dem TUIO-Simulator erfolgen konnte. Auf die Durchführung einer Evaluation
mit Testpersonen zur Bewertung des Umgangs von Benutzern mit diesen Konzepten musste ebenso
verzichtet werden.
Als Grundlage dieser Bewertung dienen somit die Erfahrungen im Umgang mit den umgesetzten
Konzepten durch Bedienung auf der Grundlage des TUIO-Simulators.
7.2
Geschwindigkeit einer Bewegung zur physikalischen Interaktion
Das Konzept von Nutzung der Geschwindigkeit einer Bewegung zur physikalischen Interaktion konnte in einem Curling-Spiel erfolgreich umgesetzt werden. Das Übertragen der Geschwindigkeit an ein
bewegtes Objekt am Ende einer Berührung funktioniert einwandfrei. Es ist leicht zu erkennen und
nachzuvollziehen, dass die aufgebaute Geschwindigkeit beim Bewegen des Objektes mit dem Finger
69
7.2. Geschwindigkeit einer Bewegung zur physikalischen Interaktion
an das Objekt weitergegeben wird. Benutzer, die mit den Prinzipien des Curlings vertraut sind, dürften die Bedienung intuitiv und ohne Einweisung schon nach kurzem Kontakt mit der Anwendung
verstehen.
Auch die physikalische Interaktion dürfte positiv wahrgenommen werden. Durch die Nutzung der
physikalischen Größe Geschwindigkeit scheint auch das physikalische Verhalten des Objektes nach
dem Loslassen des Fingers plausibel. Eine Reibung, die das Objekt abbremst, sowie die Interaktion
mit anderen Objekten erfolgt wie erfahrungsgemäß erwartet.
Die Dosierung der Geschwindigkeit funktioniert zufriedenstellend. Ohne Übung fällt es schwer die
Wirkung der Geschwindigkeit richtig einzuschätzen. Es bedarf einer gewissen Erfahrung, wie die Umsetzung der Geschwindigkeit erfolgt und in welchem Maße die Reibung den Stein abbremst. Nach
wenigen Probeläufen mit der Anwendung fällt die richtige Einschätzung der Wirkung einer Bewegung immer leichter. In der Umsetzung von Spielen dürfte dies jedoch nicht weiter störend sein, da
sowohl in realen Spielen als auch in Computersimulationen erwartet wird, dass sich die Leistung des
Spielers erst nach und nach steigert. Aus diesem Grund wird bei fast allen Computerspielen mit dem
Erreichen eines höheren Levels auch der Schwierigkeitsgrad gesteigert.
Die Optimierung der Anwendung für Multitouch-Tables in den verschiedensten Größen erweist sich
bei diesem Konzept als problematisch. Bei überdimensionalen Touchscreens, wie beispielsweise zur
Umsetzung von UI Centrics Air Hockey genutzt, können Spiele problemlos auf dem Bildschirm dargestellt werden. Bei kleinen Multitouch-Tables wird dies jedoch problematisch. Die Fläche, die benötigt
wird, um Geschwindigkeit durch eine Bewegung aufzubauen, darf nicht zu klein sein, da sonst die
Präzision der Bedienung leidet. Außerdem erforder die Fläche zum Abbauen der Geschwindigkeit
eines losgelassenen Objektes eine gewisse Größe des Spielfeldes, damit die Geschwindigkeit nicht an
Bedeutung verliert und der Spielspass erhalten bleibt.
Dieses Problem trat bei der Umsetzung der Curling-Anwendung auf. Beim Begrenzen der Eisfläche
auf dem Bildschirm wird die Strecke, die der Stein nach dem Loslassen auf dem Eis gleiten kann,
sehr kurz. Hierdurch kann das Konzept des Wischens den Spielverlauf kaum noch beeinflussen und
verliert somit an Bedeutung.
Um dieses Problem zu beheben, wurde folgender Lösungsweg gewählt: Die komplette Eisfläche wird
nicht dargestellt und ragt virtuell über den Bildschirmrand hinaus. Der bewegte Stein wird innerhalb des möglichen Ausschnittes fokussiert. Damit dem Benutzer ein Überblick über das gesamte
Spielfeld möglich ist, erfolgt eine Darstellung des gesamten Spielfeldes am rechten Rand.
Abbildung 7.1: Vergleich der Länge der Eisbahnen der zwei Curling-Spiel-Umsetzungen. Links mit
Begrenzung auf den Bildschirm. Rechts mit virtueller Erweiterung über den Bildschirm hinaus.
70
7.3. Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
Voraussetzung für diese Lösung ist jedoch, dass die Spieler abwechselnd ihre Spielzüge durchführen.
In Spielen, in denen mehrere Benutzer gleichzeitig interagieren oder sich gegenüberstehen, ist die
Nutzung nicht möglich.
7.3
Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
Das Konzept von Nutzung der Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung wurde
in einer Foto-Applikation getestet. Dabei erwies sich das Abfragen der Geschwindigkeit beim Enden
einer Berührung am benutzerfreundlichsten.
Die Differenzierung zwischen der Bewegung eines Bildes und der Aktion zum Projizieren eines Bildes
auf einem Beamer funktioniert hervorragend. Dass eine hohe Geschwindigkeit, die ausschließlich in
eine bestimmte Richtung ausgeführt wird, diese Aktion auslöst, hilft zusätzlich beim Differenzieren. Das Bewegen des Fotos bis zum Loslassen des Fingers trägt zur Intuitivität des Konzeptes bei
und überzeugt damit, dass das Foto durch den Schwung der Bewegung auf die Projektionsfläche
befördert wird.
Sowohl das Aufrufen der Bildschirmtastatur als auch die Bestimmung der Rotation und Position der
Tastatur durch die Position der Bewegung konnte gut umgesetzt werden. Durch den Zeitpunkt des
Loslassen können diese Daten kontrolliert werden.
Üblicherweise kann mit einem Finger der gesamte Bildschirminhalt in einer Foto-Applikation bewegt
werden. Zur Differenzierung der Aktionen muss in dieser Anwendung mit zwei Fingern erfolgen,
da sonst beim Aufrufen der Bildschirmtastatur immer eine Verschiebeaktion durchgeführt werden
würde. Die geschwindigkeitsabhängige Funktion darf sich nicht mit einer anderen nicht zusammenhängenden Aktion überschneiden, da bis zum Berechnen der Geschwindigkeit immer die andere
Aktion ausgeführt wird.
Die Intuitivität vom Konzept der Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung hängt
von der geschwindigkeitsabhängigen Funktion ab. Das Projizieren des Fotos wirkt sehr intuitiv. Das
Aufrufen der Bildschirmtastatur hingegen steht in keinem Zusammenhang mit der ausgeführten Bewegung.
7.4
Geschwindigkeit einer Objektrotation
Des Weiteren wurde das Konzept zur Nutzung der Geschwindigkeit einer Objektrotation in der FotoApplikation erprobt. Dies ermöglicht Benutzern durch die Rotationsgeschwindigkeit eines auf den
Display gelegten Objektes kleine und große Einstellungsschritte durch eine Bewegung vorzunehmen.
Hierbei erweist es sich am benutzerfreundlichsten die Geschwindigkeit bei jeder Änderung auszulesen, da jegliche Veränderung der Geschwindigkeit direkt übertragen wird. Das Auslesen erst am Ende
einer Rotationsbewegung würde zu Verzögerungen führen und es somit dem Benutzer erschweren,
den erzielten Effekt einzuschätzen.
Dass die Rotationsrichtung für die Änderung entscheidend ist, kann intuitiv wahrgenommen und
umgesetzt werden, da dies auch beim Konzept der Rotationsausrichtung der Fall ist.
Das Zoomen durch die Rotationsgeschwindigkeit funktioniert sehr präzise. Durch das direkte Feed-
71
7.5. Bewegungsdifferenzierung
back kann die Wirkung der Manipulation gut abgeschätzt werden. Sowohl kleine als auch große
Schritte können problemlos durchgeführt werden. Das Definieren des Fokus für den Zoomvorgang
durch die Position des Objektes ist schnell begreifbar und kann sehr präzise erfolgen.
Hierdurch ist für den Benutzer nachvollziehbar, dass die Position des Objektes für die Aktion entscheidend ist. Ebenso wird dem Benutzer ohne Schwierigkeiten klar, dass Bilder durch das selbe
Objekt skaliert werden können. Bei der Skalierung eines Bildes wird jedoch ein Teil des Bildes durch
das Objekt verdeckt. Dies kann beim Vergrößern eines sehr kleinen Bildes zur kompletten Verdeckung
führen.
Abbildung 7.2: Screenshot der Foto-Applikation. Das rote Objekt verdeckt das Foto beim Skalieren.
Allgemein ist zu hinterfragen, ob die Intuitivität der Interaktion durch Objekte gegeben ist. Ohne
Vorwissen wird eine Interaktion mit einer Anwendung nicht mit der Manipulation eines realen Objektes assoziiert. Um die Intuitivität des Konzeptes zu fördern könnte es sinnvoll sein auf den Objekten
Symbole darzustellen, welche die Funktion der Objekte beschreiben.
7.5
Bewegungsdifferenzierung
Durch die Bewegungsdifferenzierung wird zwischen fortlaufenden und gestoppten Bewegungen unterschieden. Dies geschieht durch Überprüfung und Vergleich der vorherigen und aktuellen Koordinaten
einer Berührung. Stimmen diese überein, wird die Geschwindigkeit zurückgesetzt. Bei der Nutzung
der Geschwindigkeit erweist sich das Konzept dieser Bewegungsdifferenzierung als essentiell.
Bei der Nutzung der Geschwindigkeit zur physikalischen Interaktion wird hierdurch, neben dem
Wegstoßen von Objekten, die genaue Positionierung eines bewegbaren Objektes erst möglich. Ohne dieses Konzept wäre es zum Beispiel sehr schwierig beim Curling-Spiel Steine zu positionieren,
da sie sich nach dem Loslassen immer weiter bewegen würden. Außerdem würden Fehler bei der
Geschwindigkeitsberechnung entstehen, falls ein Benutzer versucht, einen Stein ohne Loslassen zu
positionieren.
Auch beim Konzept von Geschwindigkeit zur Aktionsdifferenzierung erweist sich die Möglichkeit der
72
7.6. Geschwindigkeitsvisualisierung
Bewegungsdifferenzierung als sinnvoll. Durch das Messen der Geschwindigkeit am Ende einer Aktion
kann mit diesem Konzept die Geschwindigkeit von zu schnell ausgeführten Bewegungen zurückgesetzt werden, sodass das Ausführen ungewollter geschwindigkeitsabhängiger Aktionen verhindert
wird.
7.6
Geschwindigkeitsvisualisierung
Bei der Geschwindigkeitsvisualisierung folgt ein Objekt dem bewegendem Finger. Die Strecke zwischen Finger und Objekt dient der Einschätzung der aufgebauten Geschwindigkeit.
Die Geschwindigkeitsvisualisierung erweist sich in beiden Anwendungsbeispielen als sehr vorteilhaft.
Durch das Liefern eines optischen Feedbacks zur aufgebauten Geschwindigkeit wird diese schnell als
ein Bestandteil der Anwendung wahrgenommen und genutzt.
Bei der Foto-Anwendung wird der Benutzer hierdurch für die geschwindigkeitsabhängigen Aktionen
sensibilisiert.
Im Curling Spiel kann nach nur wenigen Übungen die Geschwindigkeit des Steines besser abgeschätzt
werden. Aufgrund der Differenz der Strecke zwischen Stein und dem Finger des Benutzers wird dies
kalkulierbar.
Mit dem Konzept der Geschwindigkeitsvisualisierung ist das Konzept der Bewegungsdifferenzierung
leicht nachzuvollziehen. Durch das Verharren mit dem Finger an einer Position verringert sich die
Strecke zwischen Objekt und Finger bis zur Überschneidung. Somit ist die Strecke zwischen Finger
und Objekt Null und die Geschwindigkeit ist durch die Bewegungsdifferenzierung ebenfalls Null.
Anderenfalls würde der Benutzer durch Stillstand des Fingers auf dem Bildschirm nur die Strecke
zwischen Finger und bewegtem Objekt auf Null verringern, nicht jedoch die Geschwindigkeit auf
Null setzen.
Daher ist es erforderlich bei Nutzung des Konzeptes der Geschwindigkeitsvisualisierung das Konzept
der Bewegungsdifferenzierung einzusetzen.
7.7
Probleme bei der Geschwindigkeitsmessung einer Bewegung
Da die Zeitkomponente bei der Geschwindigkeitsmessung auf verschiedenen Bildschirmgrößen variiert, stellt die Nutzung von Geschwindigkeit bei der Definition von festen Werten ein Problem dar.
Wird eine Anwendung beispielsweise auf einem 103 Zoll Bildschirm ausgeführt, muss ein Finger
circa 261,5 cm bewegt werden, um den Sensor vollständig diagonal zu durchlaufen. Um den Sensor
auf einem 32 Zoll Bildschirm diagonal zu durchlaufen, muss der Finger nur circa 81,5 cm bewegt
werden.
Die Positionsdaten werden immer im Verhältnis Null bis Eins geliefert und mit der Auflösung der
Anwendung multipliziert. Zur Geschwindigkeitsberechnung wird die zurückgelegte Strecke in der Anwendung durch die dafür benötigte Zeit dividiert. Der Benutzer benötigt jedoch für das Zurücklegen
einer Strecke von circa 261,5 cm eine andere Zeit als für die Strecke von circa 81,5 cm. Somit werden bei zwei verschiedenen Bildschirmgrößen zwei unterschiedliche Geschwindigkeitswerte errechnet.
Unterschiedliche Möglichkeiten sind denkbar, um dieses Problem zu beheben.
73
7.8. Zusammenfassung
• Anwendungen, wie beispielsweise solche von Microsoft Surface, werden nur für einen bestimmten Tisch optimiert. Somit kann eine Anpassung der Werte an das verwendete System
vorgenommen werden.
• Eine andere Lösung wäre das Definieren unterschiedlicher Werte für verschiedene Bildschirmgrößen. Der Benutzer muss hier beim Start der Anwendung die Größe seines Touchscreens
einstellen, um die Werte dem verwendeten System anzupassen.
7.8
Zusammenfassung
Das Konzept von Geschwindigkeit einer Bewegung zur physikalischen Interaktion kann als Erfolg
betrachtet werden. In Kombination mit den Konzepten zur Bewegungsdifferenzierung und Geschwindigkeitsvisualisierung wurde eine präzise, gut kontrollierbare und intuitive Steuerung geschaffen. Im
Optimalfall wird das Konzept auf großen Touchsystemen genutzt, da auf kleinen Systemen die
Möglichkeiten eingeschränkt sind und nicht voll genutzt werden können.
Die Bestimmung von Aktionen durch die Geschwindigkeit einer Bewegung funktioniert gut. Das
Auslesen und Abfragen der Geschwindigkeit am Ende einer Berührung erweist sich als beste Variante. Die Konzepte der Bewegungsdifferenzierung und Geschwindigkeitsvisualisierung helfen dem
Benutzer die Geschwindigkeit abzuschätzen und zu kontrollieren. Das ungewollte Ausführen von
geschwindigkeitsabhängigen Funktionen kann verhindert werden. Bei der Überschneidung von geschwindigkeitsunabhängigen und -abhängigen Aktionen ist zu berücksichtigen, dass diese in einem
Zusammenhang stehen sollten. Die Intuitivität des Konzeptes hängt von der durch die Geschwindigkeit bestimmten Funktion ab.
Das Manipulieren von Einstellungen durch die Geschwindigkeit einer Objektrotation fällt leicht. Das
ständige Abfragen und Umsetzen der Geschwindigkeit erweist sich als benutzerfreundlichste Lösung.
Die Realisierung von großen und kleinen Einstellungssprüngen mit nur einer Bewegung wird mit
diesem Konzept ermöglicht. Das Bestimmen der Aktion durch die Position des Objektes kann zu
Problemen führen, da in manchen Fällen die Verdeckung durch das Objekt suboptimal ist. Um die
Intuitivität des Konzeptes zu steigern, können Symbole auf Objekten deren Funktion beschreiben.
Ein Problem bei der Bestimmung von Werten bei der Geschwindigkeitsmessung stellen die unterschiedlichen Größen der Touchsysteme dar.
74
Kapitel 8
Zusammenfassung und Ausblick
Im Rahmen dieser Diplomarbeit sollte untersucht werden, wo und wie Geschwindigkeit und Beschleunigung einer Bewegung zur Bedienung von Multitouch-Anwendungen gegenwärtige genutzt
wird. Auf der Grundlage dieses Wissens sollten neue Konzepte zur Interaktion entwickelt werden,
insbesondere unter Berücksichtigung der Auswertung und Nutzung von Bewegungsgrößen von Benutzereingaben. Diese entwickelten Konzepte sollten exemplarisch anhand von Beispielanwendungen
überprüft und bewertet werden.
Um sich einen Grundwissen über die technischen Möglichkeiten des Multitouch-Tables zu verschaffen, wurden die unterschiedlichen Ansätze zur Umsetzung eines multitouchfähigen System untersucht. Anschließend erfolgte die Analyse der mit dieser Technologie umgesetzten Softwarekonzepte.
Es zeigte sich die Vielfältigkeit der Einsatzbereiche des Multitouch-Tables, ebenso jedoch auch die
Begrenzung der Anzahl unterschiedlicher Softwarelösungen für solch ein System.
Nach der Untersuchung der unterschiedlichen Anwendungsbereiche der Software folgte die Prüfung
der dort umgesetzten Konzepte. Hierbei wurde unterschieden zwischen der Interaktion durch Berührung
mit Fingern und der Interaktion mit realen Objekten, die den Bildschirm berühren. Trotz der vielen
bereits vorhandene Einsatzmöglichkeiten des Multitouch-Tables existieren bisher nur wenige unterschiedliche Konzepte zur Interaktion. In allen vorliegenden Konzepten wurde die Umsetzung einer
intuitiven Bedienung deutlich. Das Potential der Möglichkeiten zur Nutzung der Bewegungsgrößen
von Benutzereingaben wurde dabei nur ansatzweise und unzureichend genutzt.
Auf der Grundlage der Ergebnisse wurden neue Konzepte mit Nutzung der Geschwindigkeit entwickelt:
• Geschwindigkeit einer Objektrotation
• Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung
• Geschwindigkeit einer Bewegung zur physikalischen Interaktion
Die Nutzung der Geschwindigkeit einer Objektrotation bringt gegenüber dem bisherigen Konzept
der Rotationsausrichtung Vorteile. Es wird keine Skala zur Orientierung um das Objekt benötigt
und somit besteht keine 360 Grad Beschränkung der Eingabe. Große und kleine Einstellungsschritte
können präzise und schneller umzusetzen. Die Position des Objektes kann die auszuführende Aktion
beeinflussen. Zur exemplarischen Überprüfung soll das Zoomen und Skalieren von Fotos in einer
75
Zusammenfassung und Ausblick
Foto-Applikation mit diesem Konzept realisiert werden.
Die Nutzung der Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung vervielfacht die Anzahl der Interaktionsmöglichkeiten. Mit der gleichen Bewegung, in unterschiedlicher Geschwindigkeit
ausgeführt, können mehrere verschiedene Aktionen durchgeführt werden. Ebenfalls in einer FotoApplikation soll das Konzept zum Aufrufen der Bildschirmtastatur sowie zum Projizieren von Bildern
mit Hilfe eines Beamers erprobt werden.
Durch die Nutzung der Geschwindigkeit einer Bewegung zur physikalischen Interaktion können
Touchscreen-Anwendungen noch realer wirken. Dies könnte vor allem bei der Entwicklung neuer
Spielkonzepte von großer Bedeutung sein, deshalb erfolgt die Überprüfung anhand eines CurlingSpiels.
Darüber hinaus erfolgte die Entwicklung eines Konzeptes zur Bewegungsdifferenzierung sowie ein
Konzept zur Geschwindigkeitsvisualisierung. Durch die Bewegungsdifferenzierung wird zwischen fortlaufenden und gestoppten Bewegungen unterschieden. Bei der Geschwindigkeitsvisualisierung folgt
ein Objekt dem bewegenden Finger, die Strecke zwischen Finger und Objekt dient der Einschätzung
der aufgebauten Geschwindigkeit. Diese beiden Konzepte ergänzen sich gegenseitig in ihrer Funktion. Daher ist es erforderlich, bei Nutzung des Konzeptes der Geschwindigkeitsvisualisierung das
Konzept der Bewegungsdifferenzierung einzusetzen. Dies soll den Benutzer eine besser Kontrolle
und Einschätzung der Geschwindigkeit einer Bewegung ermöglichen. Die Konzepte werden sowohl
in der Foto-Applikation als auch im Curling-Spiel getestet.
Da die Beschleunigung mit der Intuitivität der Touchscreen-Bedienung des Multitouch-Tables im
Konflikt steht, wurde sie bei der Konzeptentwicklung nicht berücksichtigt.
Die Anwendungen wurden für einen Multitouch-Table, basierend auf der FTIR-Technologie entwickelt. Zum Auslesen und Verarbeiten der Infrarotkamera-Daten wurde das Open Source Framework
Reactivion verwendet, welches zur Datenübertragung das TUIO-Protokoll nutzt. Zur Umsetzung der
Anwendungen in Flash wurden Bibliotheken zum Empfangen und Verarbeiten der Reaktivion-Daten
geschrieben, zur Berechnung der Geschwindigkeit sowie zur Bewegungsdifferenzierung die Daten
ergänzt.
Die Umsetzung der Konzepte konnte mit Hilfe dieser Bibliotheken erfolgreich umgesetzt werden.
Bei den Konzepten Geschwindigkeit einer Bewegung zur physikalischen Interaktion und Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung,erwies sich die Messung und Errechnung der
Geschwindigkeit am Ende einer Berührung als erfolgreiche Lösung. Zur Realisierung des Konzeptes
der Geschwindigkeit einer Objektrotation wurde die Geschwindigkeit bei jeder Aktualisierung gemessen und errechnet. Die Konzepte Geschwindigkeitsvisualisierung und Bewegungsdifferenzierung zur
Benutzerfreundlichkeit konnten mit Hilfe der eigens definierten Variablen realisiert und in beiden
Anwendungen umgesetzt werden.
Da sich die Fertigstellung eines Multitouch-Tables an der Fachhochschule verzögerte, erfolgte die
Erprobung der Konzepte in den Anwendungen mit dem TUIO-Simulator.
Die Änderung des Zoomfaktors durch das Konzept der Geschwindigkeit einer Objektrotation in einer
Foto-Applikation ermöglicht die Realisierung von großen und kleinen Einstellungssprüngen mit nur
einer Bewegung. Beim Skalieren der Fotos kann jedoch in manchen Fällen das Objekt große Teile
des Bildes verdecken.
Das Konzept Geschwindigkeit einer Bewegung zur Aktionsdifferenzierung konnte erfolgreich in der
Foto-Applikation erprobt werden. Die Differenzierung zwischen der Bewegung eines Bildes und der
Aktion zum Projizieren eines Bildes auf einem Beamer funktioniert hervorragend. Vorteil hierbei
76
8.1. Ausblick
ist, dass nur eine hohe Geschwindigkeit, ausschließlich in eine bestimmte Richtung ausgeführt, diese Aktion auslöst. Das Bewegen des Fotos bis zum Loslassen trägt zur Intuitivität des Konzeptes
bei. Bei der Überschneidung von geschwindigkeitsunabhängigen und -abhängigen Aktionen ist zu
berücksichtigen, dass diese in einem Zusammenhang stehen sollten. Sowohl das Aufrufen der Bildschirmtastatur als auch die Bestimmung der Rotation und Position der Tastatur durch die Position
der Bewegung funktioniert gut. Allerdings musste hier eine sich überschneidende Aktion abgeändert
werden.
Das Konzept Geschwindigkeit zur physikalischen Interaktion in einem Curlingspiel bietet eine intuitive und präzise Bedienung. Auch die physikalische Interaktion dürfte positiv wahrgenommen werden.
Nach wenigen Probeläufen fällt die Einschätzung der Wirkung einer Bewegung immer leichter. In
Spiel-Umsetzungen ist dies jedoch nicht weiter störend, da eine Leistungssteigerung des Spielers erst
nach und nach erwartet wird. Bei der Umsetzung des Konzeptes muss berücksichtigt werden, dass
die Fläche, die benötigt wird, um Geschwindigkeit durch eine Bewegung aufzubauen, nicht zu klein
sein darf, die Präzision der Bedienung leidet sonst. Die Fläche zum Abbauen der Geschwindigkeit
eines losgelassenen Objektes erfordert eine gewisse Größe, damit die Geschwindigkeit nicht an Bedeutung verliert.
Die Konzepte der Bewegungsdifferenzierung und Geschwindigkeitsvisualisierung erweisen sich in beiden Anwendungsbeispielen als sehr vorteilhaft. Durch die Kombination der Konzepte wird das intuitive, fehlerfreie und genaue Platzieren von Objekten beim Konzept von Geschwindigkeit zur physikalischen Interaktion erst möglich, da der Benutzer Kontrolle und Feedback über die Weitergabe
der Geschwindigkeit erhält. Beim Konzept der Aktionsdifferenzierung kann mit diesen Konzepten
das Ausführen ungewollter geschwindigkeitsabhängiger Aktionen verhindert werden.
Die Zeitkomponente bei der Geschwindigkeitsmessung auf verschiedenen Bildschirmgrößen variiert.
Dies stellt ein Problem bei der Nutzung von Geschwindigkeit und der Definition von festen Werten
dar.
8.1
Ausblick
In dieser Arbeit wurde aufgezeigt, dass die Interaktionsmöglichkeiten an einem Multitouch-Table
durch Auslesen der Geschwindigkeit bisher nur unzureichend genutzt werden. Vielfältig anwendbare
neue Konzepte wurden entwickelt, die im Einklang mit den vorhandenen Konzepten stehen und in
vielen Fällen als Ergänzung gesehen werden können. Die bisher noch relativ eingeschränkte Anzahl
unterschiedlicher Konzepte zur Interaktion an einem Multitouch-Table könnte durch die Nutzung
der Geschwindigkeit um ein Vielfaches erweitert werden.
Die Überprüfung konnte nur mithilfe des TUIO-Simulators erfolgen. Eine Überprüfung der angewendeten Konzepte auf einem Multitouch-Table steht zur endgültigen Bewertung noch aus. Aufgrund
der vielfältigen Möglichkeiten der neuen Konzepte wird eine umfassende Evaluation empfohlen, um
den Umgang der potentiellen Benutzer mit den Konzepten zu überprüfen. Hierbei sollte vor allem die Benutzerfreundlichkeit in der praktischen Anwendung getestet werden. Ebenso sollte eine
Überprüfung der Intuitivität der Konzepte erfolgen.
77
Glossar
Array
In einem Array können mehrere Elemente, die verschiedene Dateitypen darstellen, gespeichert und einzelne Elemente durch
eine Zahl, die die Position des Elements im Array angibt, aufgerufen werden.
Atan2 Funktion
Die Atan2 Funktion gibt einen Winkel im Bogenmaß zurück,
dessen Tangens der Quotient zwei angegebener Zahlen ist.
Blob
Von einem Touchsystem erkannte Finger (deutsch: Klecks).
Drag & Drop
Das Verschieben von Objekten mit einem Zeigegerät auf einer
grafischen Benutzeroberfläche.
Endlighten
Endlighten beschreibt den Zustand, wenn sich innerhalb einer
Scheibe kleine Teilchen befinden, die sich wie tausende kleine
Spiegel verhalten.
Events
Ereignisbehandlungsroutinen in der Programmierung.
Extensible Markup Language
XML ist eine Auszeichnungssprache zur Übertragung strukturierter Datensätze.
Fiducials
Fiducials sind Markierungen an einem Objekt, die von einem
Touchsystem eindeutig erkannt werden können.
Flash
Flash ist eine Entwicklungsumgebung der Firma Adobe.
Flosc
Ein Java Server zum Umwandeln von UDP- in TCP-Pakete.
Framework
Ein Framework bietet Rahmenbedingungen für die Erstellung
von Software.
Instanz
Ein Objekt, welches zur Laufzeit aus einer Klasse erzeugt wird.
78
Glossar
79
Interface
Eine Schnittstelle zur Kommunikation.
Microsoft Surface
Ein Multitouch-Table von Microsoft.
Movieclip
Ein Grafikobjekt, das über eine Zeitline verfügt.
Open Sound Control
OSC ist ein nachrichtenbasiertes Kommunikationsprotokoll, das
vor allem in der Echtzeitverarbeitung von Multimediainstallationen Anwendung findet.
Open Source
Software mit einem frei verfügbaren öffentlichen Quelltext.
Physik Engine
Teil einer Software, der zur Simulation physikalischer Prozesse
dient.
reacTable
Ein neuartiges Musikinstrument,
Multitouch-Table.
Reactivision
Reactivision ist ein plattformunabhängiges Framework zur Erkennung und Verarbeitung von Berührungsdaten.
Scrollen
Das Bewegen innerhalb von Bildschirminhalten.
Socket
Ein Software-Modul zum Datenaustausch.
Sprite
Ein Container für Grafiken.
touchlib
Touchlib ist eine von NUI-Group bereitgestellte Bibliothek zur
Multitouch-Interaktion.
Transmission Control Protocol
TCP ist ein paketbasierendes Protokoll zum verbindungsorientierten Datenaustausch.
TUIO-Protokoll
Das TUIO-Protokoll dient als Kommunikationsinterface für
Multitouch-Table Interfaces und darunter liegende Applikationen.
TUIO-Simulator
Eine Java-Software, die es ermöglicht Berührungsdaten, wie sie
Reactivision senden würde, zu simulieren.
User Datagram Protocol
UDP ist ein verbindungsloses Netzwerkprotokoll zur Datenübertragung.
basierend
auf
einem
Literaturverzeichnis
[AT09]
C. Yanc C. Moore D. Solms G. Cetin J. Riggio N. Ramseyer L. Muller R. Khoshabeh R. Bedi
M. Bintahir T. Hansen T. Roth S. Sandler A. Teiche, A. Rai. Multi-Touch Technologies.
NUI Group, 2009.
[Cor07] Densitron Corporation. White Paper: Introduction to Touch Solutions. 2007.
[ct037] Windows 7 mit Multitouch-Oberflaeche. Heise Verlag, Ct Ausgabe 12/08, S.37.
[cur08] The Rules of Curling - For General Play. Canadian Curling Association, 2008.
[EH02] M. Stohrer E. Hering, R. Martin. Physik für Ingenieure. Springer Verlag, ISBN: 3-54042964-6, 2002.
[Fas09] F. Fasoglio. Interaktive Displays machen Informationen anschaulich. Polyscope, Ausgabe
3, 2009.
[MB09] C. Höflacher M. Burmester, F. Koller. Touch it, move it, scale it - Multitouch. Hochschule
der Medien Stuttgart und User Interface Design GmbH (UID), 2009.
[MK05] R. Bencina E. Costanza M. Kaltenbrunner, T. Bovermann. TUIO: A Protocol for TableTop Tangible User Interfaces. Ergebnisse des 6. Internationalen Workshops in Gesture in
Human-Computer Interaction and Simulation, 2005.
[Mos07] T. Moscovich. Principles and Applications of Multi-touch Interaction. New York University,
2007.
[Mul08] L. Muller. Multi-touch displays: design, applications and performance evaluation. Universität Amsterdam, 2008.
[PK55] Ulrike Kuhlmann Peter König. Finger-fertig? Multitouch: Wunsch und Wirklichkeit. Heise
Verlag, Ct Ausgabe 14/08 S.150-155.
[SS08]
Inc. SiMa Systems. White Paper: X-wire resistive multi-touch screens. 2008.
[UL09]
J. Link A. Ardilio A. Schuller J. Bierkant U. Laufs, M. Block. Studie Multitouch: Technologie, Hard-/Software und deren Anwendungszenarien. Fraunhofer-Institut für Arbeitswirtschaft und Organisation (IAO), 2009.
80
Literaturverzeichnis
[WB09] R. Witzsche W. Bollhoefer, K. Meyer. White Paper: Microsoft Surface und das Natural
User Interface (NUI). Pixelpark, 2009.
[WF09] P. v. d. Vet A. Nijholt W. Fikkert, M. Hakvoort. Experiences with interactive multi-touch
tables. University of Twente, 2009.
81

Documents pareils