Multitouch-Entwicklung mit GestureWorks

[toc]Der vorliegende Artikel ist der zweite Bericht aus der Einführungs-Serie für Multitouch-Entwicklungsumgebungen und stellt die kommerzielle Software GestureWorks vor. Mit diesem Framework können Adobe Flash Applikationen mit Multitouch-Unterstützung erstellt werden, wobei eine breite Palette von Multitouch-Hardware unterstützt wird. Das Spektrum an unterstützten Gesten ist enorm, was sich u.a. auch in der von GestureWorks eingeführten Gesture Markup Language widerspiegelt. Im Folgenden wird eine kurze Einführung in die Plattform gegeben, einige vorgefertigte Beispiele gezeigt sowie ein kleine Anwendung selbst implementiert.

Einführung

  • Framework zur Erstellung von Multitouch-Anwendungen mit Adobe Flash
  • Unterstützung aller Adobe Flash-Komponenten
  • Verwendung der Adobe Flash Rendering Engine
  • Implementierung basiert auf Adobe ActionScript
  • Anbindung beliebiger Hardware mit Windows 7 oder dem TUIO-Protokoll
  • Über 100 verfügbare Gesten, assoziiert mit der Gesture Markup Language

Demo

Um vor der Vorstellung der technischen Details einen ersten Eindruck zu schaffen, demonstriert das folgende Beispielvideo die Funktionalität einer Applikation mit Flickr und Google Maps Integration:

Historie

Das Framework wird seit 2008 von dem US-Unternehmen Ideum Inc. entwickelt und steht derzeit in der Version 3.1 zur Verfügung. Es werden zwei Versionen vertrieben. Zum einen als Standard-Version für $149, welche auf fünf Gesten beschränkt ist und in jeder Anwendung ein Logo enthält, und die unbeschränkte Professional-Version für $349. Außerdem wird eine Demo-Version bereitgestellt, bei der jede Anwendung auf 30 Minuten Laufzeit eingeschränkt ist. Die Version 2 des Frameworks ist als über das Projekt Open Exhibits als Open-Source verfügbar.

Komponenten und Aufbau

Die nachfolgende Tabelle gibt einen Überblick über die technischen Eigenschaften sowie bereitgestellten Gesten und Komponenten des Frameworks:

Eigenschaft Ausprägung bei GestureWorks
Programmiersprache
  • Adobe Flash
  • Adobe Flex
Rendering
  • Adobe Flash Rendering Engine (Geräteabhängig)
Hardware-Anbindung
  • Unterstützt jede Hardware, auf der Windows 7 ausgeführt oder welche mit dem TUIO-Protokoll genutzt werden kann
Multitouch-Gesten
  • Über 100 vorhandene Gesten, assoziiert mit der GestureML, einer Markup-Sprache für Multitouch-Gesten
    • Drag
    • Rotate
    • Anchor Rotate
    • Scale
    • Anchor Scale
    • Tap
    • Anchor Tap
    • Double Tap
    • Anchor Double Tap
    • Triple Tap
    • Tap and Hold
    • Flick
    • Anchor Flick
    • Scroll
    • Split
    • Gesture Draw
  • Vorhandene Gesten können erweitert werden
Bereitgestellte Komponenten
  • Verwendung aller in Adobe Flash verfügbaren Komponenten möglich
  • Keine zusätzliche Bereitstellung von vorgefertigten Objekten
  • Unterstützung aller Formate, welche durch Adobe Flash verwendet werden können
    • Bilder und Grafiken
    • Audio
    • Video

Installation

Bevor die Installation starten kann, muss zunächst auf der Homepage eine Version gekauft werden. Alternativ steht auf der gleichen Seite auch eine Evaluationsversion zur Verfügung.

  1. Die Adobe Air Laufzeitumgebung herunterladen und installieren
  2. Die heruntergeladene Setup-Datei für GestureWorks ausführen
  3. Den Installationsschritten folgen
  4. Zum Ende der Installation die Lizenznummer eingeben und bestätigen
  5. Nach der Installation öffnet sich der Windows Explorer und zeigt den Installationsordner. In diesem sind die Programm-Bibliotheken enthalten, die benötigt werden, um Multitouch-fähige Anwendungen mit Adobe Flash zu kompilieren. Es ist keine ausführbare Anwendung enthalten!

[nggtags gallery=GestureWorks+Installation]

Einrichtung von Adobe Flash

Um Anwendungen auf Basis von Adobe Flash und GestureWorks entwickeln zu können, wird die Entwicklungsumgebung Adobe Flash Professional CS5+ benötigt. Im Folgenden wird erklärt, wie diese Anwendung eingerichtet werden muss, damit Applikationen mit GestureWorks erstellt werden können.

  1. Dieses vorbereitete Template herunterladen und entpacken. Es enthält die Ordnerstruktur, welche für jedes neue Projekt benötigt wird.
  2. Anlegen eines neuen Adobe AIR Projekts unter „Datei“ -> „Neu“ (Adobe AIR Projekt auswählen)
  3. Abspeichern des Projekts unter beliebigem Namen in dem Template-Ordner
  4. Neue Adobe ActionScript Klasse anlegen unter „Datei“ -> „Neu“ (ActionScript 3.0 auswählen)
  5. Die neue Klasse im „src“-Ordner abspeichern unter dem Name „Main“
  6. ActionScript Einstellungen festlegen unter „Datei“ -> „ActionScript Einstellungen
    1. Als Klassenname „Main“ angeben
    2. Neuen Quellpfad „.\src“ erstellen
    3. Bibliothekspfade hinzufügen. Alle GestureWorks-Projekte müssen mit den Bibliotheken „GestureWorksCML.swc“ und „GestureWorksGML.swc“ verknüpft werden. Diese Dateien befinden sich im „lib“-Ordner im Verzeichnis von GestureWorks und müssen mit dem Icon „SWC-Datei hinzufügen“ je als neue Bibliothek eingefügt und aus dem GestureWorks-Ordner (C:\Users\“Name“\GestureWorks3\lib) ausgewählt werden.
  7. Veröffentlichungseinstellungen festlegen unter „Datei“ -> „Einstellungen für Veröffentlichungen“
    1. Der Pfad für die Ausgabedatei (.swf) ist „.\bin\Main.swf“
  8. Nun kann der eigentliche Inhalt der Applikation implementiert werden. Dazu wird mit „Klassendefinition bearbeiten“ von „Main“ eine neue Klasse für ActionScript erstellt.

[nggtags gallery=GestureWorks+Flasheinrichtung]

Mitgelieferte Beispiele

Die Beispielanwendungen für GestureWorks sind nicht in der Installation enthalten, sondern als Tutorial und Download auf der Webseite verfügbar. Die Applikationen sind allesamt einfach gehalten und lassen sich mit der Anleitung auf der Webseite einfach nachvollziehen. Für die weitere Betrachtung werden die Applikationen in zwei Kategorien eingeteilt. Zum einen die Beispiele, welche die grundlegenden Touch-Gesten demonstrieren, und zum anderen erweiterte Anwendungen. Letztere haben einen größeren Funktionsumfang und geben einen Einblick in die reale Entwicklung.

Die derzeit auf der Homepage befindlichen Beispiele sind für die Version 2 von GestureWorks ausgelegt.

Grundlegende Beispiele

Diese Beispielanwendungen dienen vor allem zum Erlernen der grundlegenden Touchgesten. Es werden jeweils nur wenige Geste mit einfachen Objekt kombiniert, um die Funktionalität zu erlernen.

[nggtags gallery=GestureWorks+Beispielanwendung+basic]

Erweiterte Beispiele

Anwendungen in dieser Kategorie sind für fortgeschrittene Entwickler geeignet und zeigen wie man gewöhnliche Flash-Inhalte wie beispielsweise Karten oder 3D-Objekte mit Multitouch-Gesten versehen kann.

[nggtags gallery=GestureWorks+Beispielanwendung+advanced]

Minimalimplementierung

Eine Anwendung mit GestureWorks zu implementieren ist sehr einfach. Es werden nur zwei Dateien und etwas Quellcode (Adobe ActionScript 3) benötigt. Wie bei den anderen Beispielanwendungen für Multitouch-Frameworks dieser Seite soll die Beispielanwendung Bilder darstellen und mit entsprechenden Gesten (Drag, Scale, Rotate) manipulieren können. Für die Applikation wird zunächst ein neues Flash-Projekt benötigt. Dieses muss, wie bereits oben gezeigt, konfiguriert und mit dem GestureWorks-Framework verknüpft werden. Das Minimal-Beispiel steht ebenfalls als fertiger Download zur Verfügung.

Den eigentlichen Quellcode beinhaltet die „Main.as“-Datei. Diese besteht, wie bei objektorientierten Programmiersprachen üblich aus verschiedenen Bestandteilen. Zunächst werden die Grundfunktionen per Import-Anweisung eingebunden. Im Anschluss wird die Klasse von „Application“ abgeleitet und die benötigten Methoden implementiert. Die Methode „initialize“ enthält den Hauptbestandteil der Anwendung. Im Folgenden der vollständige Code für das Minimal Beispiel:

package{
import com.gestureworks.core.GestureWorks;
import com.gestureworks.core.TouchSprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;

public class Main extends GestureWorks{
	private var loader:Loader;
	private var myDisplay:TouchSprite;

	public function Main():void{
		super();
		key = "KEY HIER EINFUEGEN";
	}

	override protected function gestureworksInit():void{
		trace("GestureWorks has initialized");

		myDisplay = new TouchSprite();
		loader = new Loader();
		myDisplay.x = (stage.stageWidth) / 2;
		myDisplay.y = (stage.stageHeight) / 2;
		myDisplay.scaleX = 0.2;
		myDisplay.scaleY = 0.2;

		myDisplay.gestureTouchInertia = true;
		myDisplay.gestureReleaseInertia = true;
		myDisplay.clusterEvents = true;
		myDisplay.gestureEvents = true;
		myDisplay.transformEvents = true;
		myDisplay.disableNativeTransform = false;

		var gList:Object = new Object;
		gList["pivot"] = true;
		gList["n-drag"] = true;
		gList["n-rotate"] = true;
		gList["n-scale"] = true;
		myDisplay.gestureList = gList;

		loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
		loader.load(new URLRequest("library/assets/pic.jpg"));

		myDisplay.addChild(loader);
		addChild(myDisplay);
	}

	private function loaderComplete(event:Event):void{
		loader.x = 0 - (loader.width / 2);
		loader.y = 0 - (loader.height / 2);
	}
}}

Alternative Möglichkeiten zur Interaktion mit großen vertikalen Displays

[toc] Ein Großteil der Entwicklungen im Bereich der Natural User Interfaces basiert auf (Multi-)Touch Interfaces und der Steuerung durch Touchgesten. Da diese Form der natürlichen Benutzerschnittstellen beispielsweise bei sehr großen vertikalen Displays oder an für den Benuter nicht erreichbaren Displays nicht verwendet werden kann, besteht die Notwendigkeit, alternative natürliche Interaktionsmechanismen einzusetzen, die eine berührungslose Interaktion mit vertikalen Displays aus einer gewissen Entfernung ermöglichen. Um einen Überblick über bereits existierende Prototypen solcher über die Touchinteraktion hinausgehenden (Beyond Touch) Interaktionsmechnismen zu geben, werden nun einige dieser Prototypen vorgestellt.

Aus der Vielzahl der Prototypen von natürlichen Interaktionsmechanismen lassen sich einige gehäuft auftretende, grundlegende Bedienkonzepte identifizieren. So werden vermehrt Ansätze gewählt, bei denen es beispielsweise möglich ist auch aus einiger Entfernung durch Touchgesten in unteschiedlichen Ausprägungen zu interagieren. Andere Prototypen basieren auf mouseähnlichen tragbaren Eingabegeräten, die eine Bedienung auf intuitive und natürliche Weise anstreben. Andere Interaktionsmechanismen beruhen auf der Gestensteuerung und verzichten auf zusätzliche Eingabegeräte auf Nutzerseite. Des Weiteren wird hier auch ein sogenanntes Brain-Computer Interface vorgestellt, das eine Anwendungsnutzung allein durch Gehirnstrommessung ermöglicht. Zunächst werden nun einige Mechanismen beschrieben, die durch die Körperbewegungen des Nutzers gesteuert werden. Nach diesen gestenbasierten Interaktionsmechanismen werden die Remote-Touch Interaktionsmechanismen, die gerätevermittelten Interaktionsmechanismen und das Brain-Computer Interface vorgestellt.

Gestenbasierte Interaktionsmechanismen

Die natürlichste Form der HCI ist die Bedienung einer Nutzerschnittstelle ohne die bewusste Nutzung eines Interaktionsmechanismus zur Erreichung der Zielsetzung. Dies bedingt einen vollständigen Verzicht auf Eingabegeräte auf Nutzerseite und die Interaktion zwischen System und Nutzer auf Basis der dem Nutzer zur Verfügung stehenden Kommunikationsmittel. Ebenso wie die Interaktion zwischen Menschen kann der Nutzer dem System seine Absichten über die Bemühung von Mimik, Gestik und Sprache mitteilen. [ref]Dahm, Markus (2006): Grundlagen der Mensch-Computer-Interaktion. 1. Aufl., . München: Pearson Studium, S. 112.[/ref] Die Gesture Based Interfaces nutzen zur Interaktion zwischen Mensch und Computer nur die Gestik zur Eingabe auf Nutzerseite und visuelles oder akustisches Feedback durch den Computer.

Magic Window

Magic Window[ref]Lee, Johnny C. (2008a): Hacking the Nintendo Wii Remote. IEEE Pervasive Computing, 3/2008 (7). IEEE Computer Society, S. 39–45.[/ref] ist ein Interaktionsmechanismus, der es dem Nutzer erlaubt ohne die Zuhilfenahme von Eingabegeräten mit Bildmaterial zu interagieren. Dazu wird die Position des Kopfes des Nutzers verfolgt (Headtracking) indem die Position der an der Brille des Nutzers befestigten Infrarot-LED von der Infrarotkamera einer Wii-Remote erfasst wird. Da die Darstellung auf dem Display stets zum Nutzer ausgerichtet wird, entsteht für diesen ein der Effekt, dass er den dargestellten Inhalt wie durch ein Fenster betrachtet. Bewegt sich der Nutzer also nach links, kann er mehr von der rechten Seite des Bildes sehen. Bewegt er seinen Kopf nach unten, kann er mehr von der oberen Seite des Bildes sehen. Nähert er sich dem Display, kann er mehr vom gesamten Bild sehen usw. Diese Form der Interaktion ist sehr natürlich, da der Nutzer das Prinzip der Paralaxe, also der scheinbaren Änderung der Position eines Objektes, wenn der Beobachter seine eigene Position verschiebt, bereits aus der im Alltag gesammelten Erfahrung kennt. Um der Interaktion weitere Freiheitsgrade hinzuzufügen kann z.B. ein weiterer Wii-Remote Controller in die Interaktion eingebunden werden.

[nggtags gallery=MagicWindow]

SixthSense

SixthSense[ref]Mistry, Pranav & Maes, Pattie (2009): SixthSense: A Wearable Gestural Interface. In: Anjyo, Ken (Hrsg.): ACM SIGGRAPH ASIA 2009 Sketches. New York, USA: ACM Press, S. 11:1[/ref] ist ein Interaktionsmechanismus der in die Rubrik des Wearable Computing eingeordnet werden kann, da die Hardware wie Kleidung am Körper getragen wird. Diese Hardware besteht aus einem Projektor und einer Kamera, die vor der Brust getragen werden sowie farbigen Markern an Daumen und Zeigefinger beider Hände. Somit können Inhalte durch den Projektor auf jeder beliebigen Fläche dargestellt werden und durch Handgesten manipuliert werden, die von der Kamera aufgenommen werden. So kann der Nutzer beispielsweise jederzeit und nahezu überall seinen Kalender anzeigen lassen, um seine Termine zu verwalten, Skizzen oder Notizen machen, Kartenmaterial der Umgebung betrachten oder gestengesteuert Fotos machen.

[nggtags gallery=SixthSense]

Imaginary Interface

Imaginary Interface[ref]Gustafson, Sean; Bierwirth, Daniel & Baudisch, Patrick (2010): Imaginary Interfaces: Spatial Interaction with Empty Hands and without Visual Feedback. In: Perlin, Ken; Czerwinski, Mary & Miller, Rob (Hrsg.): Proceedings of the 23nd Annual ACM Symposium on User Interface Software and Technology. New York, USA: ACM Press, S. 3–12.[/ref] ist ebenfalls eine Wearable Computing Benutzerschnittstelle und nutzt eine Kamera zur Erfassung von Handgesten, verzichtete aber anders als SixthSense vollständig auf eine Darstellung von Inhalten und erlaubt daher eine sehr kompakte Bauweise, da kein Anzeigegerät erforderlich ist. Durch eine L-Geste mit der nichtdominanten Hand wird eine imaginäre Eingabefläche aufgespannt, auf der dann durch das Zusammenführen von Daumen und Zeigefinger gezeichnet oder geschrieben werden kann. So kann der Nutzer jederzeit  Dokumente zu in seinem aktuellen Umfeld relevanten Themen erstellen. Diese auf einfachen Gesten basierende Form der Interaktion ist leicht erlernbar, jedoch sind komplexe Zeichnungen wegen des fehlenden visuellen Feedbacks schwierig zu realisieren.

[nggtags gallery=ImaginaryInterface]

Multitoe

Mit Multi Toe[ref]Kaefer, Konstantin; Kanitz, Dorian; Meusel, René; Fetzer, Caroline; Augsten, Thomas; Stoff, Thomas; Holz, Christian & Baudisch, Patrick (2010): “Multi-Toe” Interaction with a High-Resolution Multi-Touch Floor. Potsdam, Germany, S. 1-6.[/ref] kann der Benutzer eine Anwendung mit den Füßen steuern. Dazu erfolgt die Interaktion auf einem touchsensitiven Untergrund, der sich wiederum über einem Display befindet. Bei dieser Form der Touchinteraktion treten einige Besonderheiten auf. So hat der Nutzer nahezu dauerhaften Kontakt zur Interaktionsoberfläche. Außerdem ist die Kontakfläche um einiges größer als bei der Touchinteraktion mit Fingern, sodass ein Interaktionspunkt an der Sohle des Benutzers identifiziert werden muss, um eine präzise Bedienung zu gewährleisten. Allerdings bietet Multi Toe auch einige Vorteile gegenüber einer herkömlichen Touchinteraktion mit Fingern. So kann der Nutzer anhand des individuellen Profils seiner Schuhsohle identifiziert werden. Außerdem kann eine Gewichtsverlagerung des Nutzers erkannt werden, wodurch eine differenzierte Touchinterakion mit zusätzlichen Freiheitsgraden erfolgen kann.

[nggtags gallery=MultiToe]

Wii Gesture Interface

Wii Gesture Interface[ref]Lin, Jiaqing; Nishino, Hiroaki; Kagawa, Tsuneo & Utsumiya, Kouichi (2010): Free Hand Interface for Controlling Applications Based on Wii Remote IR Sensor. In: Spencer, Stephen N. (Hrsg.): Proceedings of the 9th ACM SIGGRAPH Conference on Virtual-Reality Continuum and its Applications in Industry VRCAI 2010. New York, USA: ACM Press, S. 139–142.[/ref] ist ein Interaktionsmechanismus zur Steuerung vertikaler Displays durch natürliche Handgesten. Eine Platine mit einer Vielzahl von Infrarot-LED leuchtet dazu den Raum vor dem Display aus. Die reflektierte Infrarotstrahlung wird dann von der Infrarotkamera eines Wii-Remote Controllers  in ein Bild umgewandelt, dass es ermöglicht die Hand des Benutzers und ihre Bewegungen zu identifizieren. Somit können einfache Gesten, wie eine Bewegung der Hand von links nach rechts genutzt werden, um beispielsweise den nächsten Inhalt auszuwählen oder eine Berührungsgeste, um einen Inhalt auszuwählen. Um dann weitere Interaktionsmöglichkeiten zu schaffen und die Präzision der Interaktion zu steigern, kann zusätzlich noch ein weiterer Wii-Remote Controller eingebunden werden, dessen Tasten z.B. mit schwer durch Gesten darstellbaren Aktionen belegt werden können.

[nggtags gallery=Wii Gesture Interface]

Remote-Touch Interaktionsmechanismen

Diese Form der alternativen natürlichen Interaktionsmechanismen erfordert keine Präsenz des Nutzers an einem vertikalen oder horizontalen Touchscreen sondern verlagert die direkte Interaktion mit dem System auf das vom Benutzer verwendete Gerät. Zwar erfolgt die Interaktion mit dem verwendeten Interaktionsmechanismus wiederum durch intuitive Touchgesten, jedoch ist der Nutzer nun nicht mehr dazu gezwungen sich zur Interaktion in unmittelbarer Nähe des großen vertikalen Displays aufzuhalten. Auf diese Weise können mehr Nutzer und auch entfernt stehende Nutzer in die Interaktion einbezogen werden. Je nach visuellem Feedback des genutzten Interaktionsmechanismus kann auch eine uneingeschränkte Interaktion wie am großen vertikalen Touchscreen selbst erfolgen. Außerdem ist es mit Remote Touch Interfaces möglich auch Displays, die keine Touchscreen sind mittel touchbasierter Nutzerinteraktion zu steuern.

SecondLight

SecondLight[ref]Izadi, Shahram; Hodges, Steve; Taylor, Stuart; Rosenfeld, Dan; Villar, Nicolas; Butler, Alex & Westhues, Jonathan (2008): Going Beyond the Display: A Surface Technology with an Electronically Switchable Diffuser. In: Cousins, Steve & Beaudouin-Lafon, Michel (Hrsg.): Proceedings of the 21st Annual ACM Symposium on User Interface Software and Technology. New York, USA: ACM Press, S. 269–278.[/ref] ist ein von Microsoft auf Basis der Technologie des MS Surface entwickelter Ansatz, der die gleichzeitige Projektion zweier unterschiedlicher Bilder auf die Oberfläche eines horizontalen Displays ermöglicht. Während das eine Bild wie gewohnt auf der Darstellungsfläche des Gerätes angezeigt wird, wird das zweite Bild durch diese Darstellungsfläche hindurch projiziert und kann durch weniger lichtdurchlässige Materialien sichtbar gemacht werden. Dies ermöglicht auch eine Projektion auf in einer geringen Entfernung über dem Gerät befindliche Oberflächen. Zusätzlich können auf diesen entfernten Oberflächen auch Touchinteraktion erfolgen.

[nggtags gallery=SecondLight]

Touch Projector

Touch Projector[ref]Boring, Sebastian; Baur, Dominikus; Butz, Andreas; Gustafson, Sean & Baudisch, Patrick (2010): Touch Projector: Mobile Interaction Through Video. In: Henry, Nathalie & Tabard, Aurélien (Hrsg.): Proceedings of the 28th International Conference on Human Factors in Computing Systems. Atlanta, GA, USA: ACM Press, S. 2287–2296.[/ref] ist ein Interaktionsmechanismus, der es erlaubt Inhalte auf gewöhnlichen Displays mittels Touchgesten zu manipulieren. Zu diesem Zweck wird das Echtzeitbild der Kamera eines Smartphones genutzt. Die darauf sichtbaren Inhalte, die auf dem herkömmlichen Display dargestellt werden, können nun durch Touchgesten auf dem Display des Smartphones manipuliert werden. Anschließend wird die Veränderung auch auf die Darstellung auf dem herkömmlichen Display übertragen. Dabei werden alle Displays in der Umgebung und das Smartphone über eine Server synchronisiert, was auch das verschieben eines Inhalts von einem Display auf ein anderes ermöglicht. Durch diesen Mechanismus können auch für den Benutzer unzugängliche nicht touchfähige Displays via Touchgesten genutzt werden.

[nggtags gallery=TouchProjector]

Light Space

Auf den ertsen Blick unterscheidet sich Light Space[ref]Wilson, Andrew D. & Benko, Hrvoje (2010): Combining Multiple Depth Cameras and Projectors for Interactions On , Above , and Between Surfaces. In: Perlin, Ken; Czerwinski, Mary & Miller, Rob (Hrsg.): Proceedings of the 23nd Annual ACM Symposium on User Interface Software and Technology. New York, USA: ACM Press, S. 273–282.[/ref] nicht wesentlich von andern natürlichen Benutzerschnittstellen. Es bietet sowohl eine horizontale als auch eine vertikale projizierte Darstellungsfläche, auf denen die gewohnten Touchgesten zur Manipulation von Bildinhalten ausgeführt werden können. Die Innovation liegt bei Light Space zwischen den Darstellungsflächen, denn ein dritter Projektor sowie drei  Kameras zur Entfernungsmessung erlauben eine Touchinteraktion auf gewöhnlichen Gegenständen aber auch eine Darstellungsübergreifende Interaktion mit den Inhalten. So kann ein Nutzer einen Inhalt auf der einen Darstelungsfläche berühren, danach die andere Darstellungsfläche berühren und so den Inhalt dorthin zu verschieben. Außerdem kann er einen Inhalt vom Rand der Darstellungsfläche auf seine Hand verschieben, wodurch der Inhalt im Sinne der Augmented Reality zu einem projizierten Ball wird, den der Nutzer auf seinem Arm umherrollen kann oder in die andere Hand bzw. auf einen Gegenstand legen kann. Berührt der Nutzer wiederum mit der Hand ohne Ball eine Darstellungsfläche, wird der durch den Ball repräsentierte Inhalt dorthin verschoben. Des Weiteren können durch die präzise Tiefenwahrnehmung der Anwendung Menüs im Raum platziert werden. Hält der Benutzer seine Hand über einen auf den Boden projizierten Menü Schriftzug, ändert sich die nun auf der Hand befindliche Darstellung je nach Höhe über dem Boden zu einem Menüpunkt, der dann durch das Entfernen der Hand ausgewählt werden kann.

[nggtags gallery=LightSpace]

Gerätevermittelte Interaktionsmechanismen

Zur Interaktion mit den Device Mediated Interfaces benötigt der Nutzer ein zusätzliches Eingabegerät, das er bei der Interaktion bei sich trägt oder in der Hand hält. Entgegen der indirekten Manipulation mit einer gewöhnlichen Maus, die nur über Sensoren zur Erfassung einer Positionsveränderung in einer zweidimensionalen Ebene verfügt und diese auf den Zeiger überträgt, können die für Device Mediated Interfaces genutzten Interaktionsmechanismen ihre Position im Raum oder relative Lageveränderungen durch zusätzliche optische, gyroskopische oder Beschleunigungssensoren ermitteln. So kann der Nutzer direkt mit Inhalten interagieren, denn wenn er mit dem Gerät auf einen Inhalt zeigt, zeigt auch der Cursor auf dieses Ziel. So wird die natürliche Interaktion des Nutzers über die Sensorik der genutzten Interaktionsmechanismen an den Computer übertragen und dort in entsprechende Manipulationen umgesetzt. Der Interaktionsmechanismus übernimmt sozusagen eine Mediatorrolle zwischen dem Nutzer und dem genutzten System, da er die natürlichen Interaktionen des Nutzers in vom System interpretierbare Manipulationen umwandelt. Außerdem bieten die Zusatztasten des jeweiligen Interaktionsmechanismus die Option Shortcuts für bestimmte Funktionen zu nutzen. Auf diese Weise muss der Nutzer keine komplexen Muster von Manipulationen nachbilden, um das System zu Steuern. Zur weiteren Steigerung der Effizienz der Interaktion sind Device Mediated Interfaces ergonomisch gestaltet, sodass der Nutzer gewissermaßen mit dem Gerät verschmilzt und das Gerät die natürliche Interaktion des Nutzers nicht beeinträchtigt.

Soap

Soap[ref]Baudisch, Patrick; Sinclair, Mike & Wilson, Andrew (2007): Soap: A Pointing and Gaming Device for the Living Room and Anywhere else. In: Heart, John C. (Hrsg.): ACM SIGGRAPH 2007 Emerging Technologies. New York, USA: ACM Press, S. 17–20.[/ref] ist ein Interaktionsmechanismus, der die Steuerung eines Zeigers zur Nutzung einer Anwendung auf großen vertikalen Wanddisplays ermöglicht. In einer flexiblen Kunststoffhülle befindet sich der optische Sensor einer Mouse sowie eine Taste auf der Rückseite der Platine, die durch die Kunsstoffhülle hindurch betätigt werden kann. Die Kunststoffhülle ist wiederum mit einem dehnbaren Stoffüberzug bespannt. Auf diese Weise kann eine Verschiebung der Stoffhülle durch den optischen Sensor registriert werden und so die Bewegung des Cursors gesteuert werden. Eine schnelle Verschiebung des Cursors hingegen ist in vertikale Richtung durch dauerhaftes fixieren des Gerätes durch Zusammendrücken von Daumen und Zeigefinger oder in horizontale Richtung durch Drehen des Gerätes um die Längsachse ähnlich einem nassen Stück Seife in der Handfläche möglich. Aufgrund dieser Seifenmetapher trägt der Mechanismus auch seinen Namen.

[nggtags gallery=Soap]

Brain-Computer Interface

Das Brain-Computer Interface[ref]McFarland, Dennis J. & Wolpaw, Jonathan R. (2011): Brain-Computer Interfaces for Communication and Control. Communications of the ACM, 5/2011 (54), S. 60-66.[/ref] ist eine Form der Mensch-Computer Interaktion, die auf der Messung von Gehirnströmen basiert. Da dies über an der Kopfhaut platzierte Elektroden geschieht, ist dieser Interaktionsmechanismus im Gegensatz zu den bisher vorgestellten Mechanismen auch für Menschen mit eingeschränkter Bewegungsfähigkeit geeignet. Die Anwendung von McFarland und Wolpaw erlaubt z.B. eine Texteingabe ohne die Nutzung zusätzlicher Eingabegeräte. Auf einem Display wird dazu eine Matrix von Buchstaben angezeigt, von denen jeweils abwechselnde Gruppen aufleuchten. Der Nutzer muss während der Blinksequenz eine Buchstaben mit den Augen fixieren. Da jeder Buchstabe eine individuelle Blinksequenz hat und das Aufleuchten des fixierten Buchstaben mittels EEG gemessen werden kann, ist der vom Nutzer ausgewählte Buchstabe eindeutig bestimmbar. So wird eine Texteingabe allein durch das Anschauen der Buchstabenmatrix möglich. Allerdings ist durch die Dauer der Blinksequenz keine schnelle Eingabe möglich und die für diesen Interaktionsmechanismus benötigte Hardware ist im Vergleich zu den meisten zuvor beschriebenen Prototypen sehr teuer.

[nggtags gallery=BCI]

Fazit

Fallende Preise durch die kommerzielle Massenfertigung von Sensortechnik wie der Wii-Remote oder der Microsoft Kinect aber auch sinkende Preise bei großen vertikalen Displays oder Projektoren haben dazu beigetragen, dass die Zahl neu entwickelter Interaktionsmechanismen zur Gestaltung der Schnittstelle zwischen Mensch und Computer zunimmt. Da gerade im Bereich der NUI bisher nur wenig Forschungsarbeit im Bezug auf die Standardisierung solcher Nutzerschnittstellen und die Eignung eines Interaktionsmechanismus für die Nutzung in einem bestimmten Anwendungsumfeld oder für eine bestimmt Aufgabe erfolgt ist, müssen zukünftige Arbeiten weitere Erkenntnisse über die Leistungsfähigkeit und Nutzerakzeptanz natürlicher Interaktionsmechnismen liefern. Außerdem haben alle der in diesem Artikel vorgeschlagenen Kategorien von natürlichen Interaktionsmechnismen ihre Vor- und Nachteile, sodass eventuell eine Kombination der Merkmale existierender natürlicher Benutzerschnittstellen oder die Entwicklung neuer Ansätze zur Gestaltung dieser Schnittstellen einen Interaktionsmechnismus hervorbringen, der das Potential hat, eine ähnlich hohe Verbreitung und Nutzerakzeptanz zu erreichen, wie es heute bei Maus und Tastatur für die GUI der Fall ist.

Microsoft Surface 2.0 SDK für Sommer 2011 angekündigt

Auf der MIX11 kündigte Microsoft das Surface 2.0 Software Development Kit für Sommer 2011 an. In der Session A Whole NUI World: Microsoft Surface 2 and Windows Touch stellte Luis Cabrera die neue PixelSense™-Oberfläche und  360° Multiuser Applications anhand eines Prototypen vor. Die neue Technologie lässt auch einen vertikalen Einsatz zu.

Applikationen die mit dem neuen Surface SDK erstellt wurden, lassen sich gleichzeitig mit Surface 2.0 und Windows 7 betreiben: „Write Once Touch Anywhere“. Neben einer Core API mit Zugriff auf die Raw IR Images und Touch Events des Vision Systems, wird es wieder eine WPF API mit neuen Anwendungs-spezifischen Touch Controls geben. Die Hardware umfasst einen AMD Athlon II X2 2.9 GHz Dual-Core mit 4-8 GB RAM, 320 GB HDD, sowie einer AMD Radeon HD 6570M 1 GB GDDR 5 DirectX 11-kompatiblen Grafikkarte mit HMDI-Ein/Ausgang. (Quellen:  ZDNet, Luis Cabrera)

Weitere Highlights von der MIX11:

[nggallery id=30]

Vorstellungsreihe Microsoft Surface Anwendungen – #001 GrandPiano

Hier Teil 1 unserer Vorstellungsreihe „Microsoft Surface Anwendungen“, in der wir  mehrere Surface Anwendungen kurz vorstellen und ihre Bezugsquellen nennen.
Heute steht die Anwendung GrandPiano aus dem Microsoft Surface SDK im Mittelpunkt.

Diese Anwendung zeigt ein 2 Oktaven umfassendes Klavier, beziehungsweise dessen Tasten. Eine Berührung der Tasten erzeugt den dazugehörigen Ton, so, dass der Anwender kleine Musikstücke auf einem Surface spielen kann.

httpv://www.youtube.com/watch?v=j-EtM2SUyoY

Basierend auf eigener Erfahrung lässt sich festhalten, dass es sich eher um eine Spaß-Anwendung als um einen Klavierersatz handelt. Trotzdem ist der Spaßfaktor vor allem für Kinder nicht zu unterschätzen.

Die Installation dieser Anwendung erfolgt zusammen mit der Installation des Microsoft Surface SDK, das hier erhältlich ist.

Weite Informationen finden sich u.a. auf der MSDN-Seite zur GrandPiano-Anwendung oder dem MSDN-Bogeintrag zum GrandPiano.

[nggtags gallery=Microsoft_Surface+Grandpiano]

Surface Bluetooth Mobile Manager

[toc]

Der Bluetooth Mobile Manager ist eine Anwendung für das Microsoft Surface, die im Sommer 2010 an der Universität der Bundeswehr München in einem Programmierprojekt der Professur für Programmierung kooperativer Systeme an der Fakultät für Informatik entstand. Die Anwendung dient dazu, mobile Endgeräte via Bluetooth in die intuitive Mehrbenutzerinteraktion des Surface einzubinden. Auf diese Weise werden die Vorteile der Steuerung durch Touch-Gesten auf die Interaktion mit den Inhalten auf einem Mobiltelefon übertragen und somit einerseits Medienbrüche umgangen und andereseits die Möglichkeit geschaffen, die Inhalte gemeinsam zu erleben und zu explorieren.

httpvh://www.youtube.com/watch?v=45TAVHlhlMI

Anbindung von mobilen Endgeräten

Der Bluetooth Mobile Manager stützt sich auf eine von Microsoft herausgegebene Beispielanwendung, das MS Bluetooth Connect Sample[ref]Die Anwendung wurde am 15.06.2010 im Microsoft Surfaceblog angekündigt und kann im MSDN Code Sample Bereich unter http://archive.msdn.microsoft.com/surfacebluetooth heruntergeladen werden.[/ref]

[singlepic id=283 w=618]

Basierend auf der bereits implementierten Bluetoothanbindung für das Surface wurde bei der Weiterentwicklung besonders die Einbeziehung der mobilen Endgeräte in die Nutzerinteraktion als sog. „Tangibles“ und die Visualisierung der Geräte auf dem Surface gegenüber der Microsoft Anwendung verbessert. So verfügt ein mit dem Surface via Bluetooth gepairtes Endgerät beispielsweise über eine eigene, mit dem Gerät verschiebbare visuelle Repräsentation als virtuelle Bedienfläche, die nur angezeigt wird, wenn das mit einem Tag versehene Gerät auf der Oberfläche des Surface platziert wird.

[nggtags gallery=Kontextmenü]

Interaktion mit den Inhalten auf den mobilen Endgeräten

Die Bedienfläche ermöglicht das Betrachten der Inhalte auf dem mobilen Endgerät und darüber hinaus das intuitive Verschieben und Austauschen dieser Inhalte zwischen verschiedenen Endgeräten oder zwischen einem Endgerät und dem Surface.

[singlepic id=120 w=618]

Auf diese Weise wird der virtuelle Inhalt für den Benutzer greifbar und die natürliche Interaktion steigert das Interesse, weitere Inhalte zu entdecken oder Inhalte gemeinsam mit anderen Nutzern zu betrachten. Hierdurch verschwimmen die Grenzen zwischen den virtuellen Inhalten auf dem Surface und dem realen Gegenstand, der darauf platziert ist, was letztlich zu einer Verbesserung der soziotechnischen Integration beiträgt.

[singlepic id=123 w=618]

Die intuitive und natürliche Interaktion wird v.a. dadurch verbessert, dass das Verschieben des physischen mobilen Endgerätes auf der Darstellungsfläche des Surface im Gegensatz zur ursprünglichen Microsoft Version ebenfalls eine Verschiebung der virtuellen Bedienfläche nach sich zieht.

[nggtags gallery=Inhalte]

Pairingdialog zur Einbindung neuer Geräte

Um Inhalte von bisher nicht mit dem Surface verbundenen mobilen Endgeräten anzeigen und nutzen zu können, müssen das Gerät und das Surface miteinander gepairt werden. Anschließend ist, wie bei den meisten Bluetooth-Anwendungen für die folgende Benutzerinteraktionen wie beispielsweise das  Verschieben von Inhalten, kein erneuter Verbindungsaufbau notwendig. Der Pairingvorgang selbst, der durch eine automatische Anzeige verfügbarer Geräte in Reichweite des Surface initiiert wird, wird durch eine visuelle Schritt für Schritt Anleitung auf dem Surface zusätzlich unterstützt.

[nggtags gallery=Pairing]

Abgrenzung  des Bluetooth Mobile Manager vom MS Mobile Connect Sample

In der nachfolgenden Tabelle werden einige der wesentlichen Unterschiede zwischen der entstandenen Anwendung und der Beispielanwendung von Microsoft gegenübergestellt.

MS Bluetooth Connect Sample Bluetooth Mobile Manager
Fixe Darstellung und Orientierung der mobilen Endgeräte am rechten Rand Flexibel orientierbare und verschiebbare visuelle Repräsentation der mobilen Endgeräte
Repräsentation eines mobilen Endgerätes nur durch Handy-Icon Zusätzliche Einbeziehung des Endgerätes als Tangible
Ausschließlich virtuelle Interaktion auf dem Surface Interaktion zwischen realen Endgeräten und virtuellem Inhalt
Datenübertragung über Push-Verfahren (kontinuierliche Bestätigungen) Pairing zwischen Surface und mobilem Endgerät (anschließend keine Interaktionsbarrieren)
Lose, ungeordnete Darstellung der Inhalte eines mobilen Geräts Zusätzliche Container zur Strukturierung und Verbesserung der Übersichtlichkeit

Insbesondere die fixe und in eine Richtung orientierte Darstellung der nur als Icon vorhandenen mobilen Geräte muss als großer Nachteil der Originalanwendung von Microsoft gesehen werden, da er in jeglicher Hinsicht der Forderung direkter Manipulierbarkeit bei einem Natural User Interface widerspricht. In der Aufhebung dieser Interaktionsbarriere ist demnach ein Hauptmehrwert der Weiterentwicklung zu sehen.

Das Projektsetting

Der Bluetooth Mobile Manager auf dem Surface ist das Ergebnis eines Master-Projektes der beiden Wirtschaftsinformatiker Tim Saldik und David Weidt in Kombination mit einem Praktikum der Informatik-Studenten Florian Geißler, Alexander Reeb und Steffen Schurig. Im Rahmen des Masterprojekts wurde die Anwendung zunächst konzipiert und anschließend während des Praktikums umgesetzt. Die Anwendung wurde auf Basis von Scrum entwickelt, wobei ein Sprint eine Dauer von dreieinhalb Tagen hatte und insgesamt sieben Sprints vorgesehen waren. Den Wirtschaftsinformatikern kam dabei die Rolle der “Product Owner” zu, während die Informatiker das Scrum-Team bildeten. Als Scrum Master fungierte zusätzlich der Projektbetreuer Florian Ott.


MS Bluetooth Connect Sample

Bluetooth Mobile Manager

§ Darstellung der mobilen Endgeräte am rechten Rand

§ Repräsentation eines mobilen Endgerätes durch Handy-Icon

§ ausschließlich virtuelle Interaktion auf dem Surface

§ Datenübertragung über Push-Verfahren

§ lose, ungeordnete Darstellung der Inhalte

§ bewegliche Darstellung der mobilen Endgeräte

§ Einbeziehung des Endgerätes selbst als Tangible

§ Interaktion zwischen realen Endgeräten und virtuellem Inhalt

§ Pairing zwischen Surface und mobilem Endgerät

§ Container für Inhalte zur Steigerung der Übersicht

Technik State-of-the-Art: Technische Fortschritte

[toc]

Im Rahmen des EU-Projekts SI-Screen (Social Interaction Screen), an dem wir als einer von zehn Projektpartnern teilnehmen, wird binnen der nächsten drei Jahre ein Gerät entwickelt, das u.a. Älteren einen einfachen Zugang zu sozialen Netzwerken wie z.B. Facebook ermöglicht. Im derzeitigen Stadium untersuchen wir den Markt hinsichtlich relevanter Trends, Konzepte, Technologien und Geräte, die für die Entwicklung eines Prototypen-Konzepts inspirierend sein könnten.

Dieser Teil unserer kleinen Mini-Serie beschäftigt sich mit Bereichen, in deren derzeit große Fortschritte erzielt werden. Insbesondere mit Hinblick auf die 3-jährige Projektlaufzeit könnten die Ergebnisse in diesen Feldern neue Möglichkeiten bei der Konzeptfindung eröffnen.

Die meisten der hier zusammengetragenen Bildern stammen aus entsprechenden Artikeln auf der Internetplattform engadget.com. Des Weiteren wurden Bilder von wired.com, gizmodo.com, it-tech.org, oopsconcept.co.cc und concepte.info übernommen.

Performance

Natürlich ist eine verbesserte Leistungsfähigkeit in allen Bereichen der Technologie zu erwarten. Bei ausreichender Verbesserung der Geschwindigkeit einer Technologie ergibt sich beispielsweise häufig ein vorher undenkbar Echtzeit-Einsatz, was wiederum eine neue Dimension möglicher Anwendungsbereiche eröffnet.
[nggtags gallery=Performance+Technik+Fortschritt]

Displays

[nggtags gallery=Display+Technik+Fortschritt]

Konnektivität

Durch ein gutes Zusammenspiel von verschiedenen Geräten an unterschiedlichen Orten lässt sich eine neuer Grad an Freiheit erzielen.
[nggtags gallery=Konnektivität+Technik+Fortschritt]

Robotik

Fortschritte im Umfeld der Robotik werden in (naher) Zukunft einen ersten produktiven Einsatz zur Unterstützung des Menschen erlauben. Im Rahmen des Projekts birgt eine Erleichterung alltäglicher Aufgaben natürlich ein großes Potential für Ältere.
[nggtags gallery=Robotik+Technik+Fortschritt]

Augmented Reality

Augmented Reality bezeichnet die künstliche Einbettung audiovisueller Inhalte in die reale Welt. Beispielsweise lassen sich in die Echtzeitanzeige des Kamerabilds eines mobilen Geräts Zusatzinformationen einblenden (z.B. zur Routenplanung oder als Stadtführung).
[nggtags gallery=Augmented_Reality+Technik+Fortschritt]

Danksagung

Dieser Beitrag steht im Zusammenhang mit dem Forschungsprojekt SI-Screen, das mit Mitteln des Bundesministeriums für Bildung, und Forschung (Förderkennzeichen 16SV3982), sowie durch das Europäische AAL Joint Programm (AAL-2009-2-088) gefördert wird. Das Vorhaben wird von der innovationsmanufaktur GmbH (ehemals SportKreativWerkstatt GmbH) koordiniert und gemeinsam mit der Universität der Bundeswehr München realisiert. Weiterführende Informationen sind verfügbar unter http://www.si-screen.eu.