Als Vorreiter auf dem Gebiet der berührungslosen Steuerung gilt der Kinect-Sensor, der mit Microsofts Spielkonsole Xbox 360 vertrieben wurde. Ende 2013 kam der Leap Motion Controller auf den Markt, welcher die Steuerung eines PCs, Laptops oder Macs mittels Gestensteuerung und ohne Berührung des Bildschirms erlaubt. Über zwei Kameras und drei Infrarot-LEDs werden Handbewegungen des Nutzers genau erfasst und ausgewertet. Der Leap Motion Controller bietet eine Programmierschnittstelle, mit der seine Funktionalität in jedes geeignete Programm integriert werden kann. Um den aktuellen Entwicklungsstand sowie die Zuverlässigkeit und Präzision des Controllers einschätzen zu können, hat das Unternehmen macio im Rahmen eines Forschungsprojekts eine eigenständige WPF-Anwendung entwickelt, welche vollständig mit dem Leap Motion Controller bedient werden kann. Sie zeigt den Einsatz des Controllers in praktischer Anwendung. Dafür wurden sowohl die Gesten verwendet, die standardmäßig vom Controller unterstützt werden, als auch neue Gesten entwickelt und umgesetzt.
Entwicklung der Gesten
Mit Hilfe der vier Standardgesten (Bild 2) und der drei neu entwickelten Gesten (Bild 3) kann der Nutzer der Anwendung unterschiedliche Aktionen ausführen. Zu diesen zählen u.a. Cursorbewegung, Mausklick, Scrollen, Zoomen sowie das Einblenden der Navigation innerhalb der Anwendung. Die Bedienung wurde wie folgt umgesetzt:
- KeyTap: Tippbewegung nach unten, wie bei einer Tastatur. In der WPF-Anwendung löst diese Geste einen Mausklick aus.
- ScreenTap: Tippbewegung nach vorne, wie bei der Bedienung eines vertikalen Touchmonitors. In der WPF-Anwendung löst diese Geste einen Mausklick aus.
- Circle: Kreisbewegung mit einer Fingerspitze. Diese Geste kann vielfältig eingesetzt werden. In der WPF-Anwendung wird das Menü eingeblendet, sobald eine Kreisbewegung im Uhrzeigersinn ausgeführt wird. Eine Kreisbewegung gegen den Uhrzeigersinn blendet dieses wieder aus.
- Swipe: Die Wischbewegung ist von der Touch-Bedienung bekannt. Durch die Bewegungen erfolgen Bildwechsel in vier Richtungen.
Weiterhin wurden folgende Gesten speziell entwickelt und implementiert:
- OneFingerMoved: Diese Geste beschreibt eine klassische Zeigebewegung mit dem Zeigefinger. Sie wird in der WPF-Anwendung verwendet um den Mauscursor zu bewegen.
- TwoHandsZoom: Diese Geste gibt dem Anwender die Möglichkeit, ein Bild zu vergrößern und zu verkleinern. Der Abstand zwischen beiden Zeigefingern gibt dabei den absoluten Zoomfaktor an. Diese Geste wurde für zwei Hände entwickelt, um die Erkennung beider Hände testen zu können.
- VirtualMouse: Die Gesten ScreenTap und KeyTap lösen immer einen kompletten Mausklick aus. Um Drag&Drop-Operationen oder Slider-Bedienung ausführen zu können, ist es sinnvoll, das MouseDown- und MouseUp-Event einzeln auslösen zu können. Die Geste VirtualMouse verknüpft den Zustand der virtuellen Maustaste mit dem Daumen. Der Zeigefinger bewegt weiterhin den Mauscursor. Streckt der Anwender den Daumen heraus, wird die virtuelle Maustaste gedrückt und solange gehalten, bis diese Geste nicht mehr ausgeführt wird.
WPF-Anwendung
Die entwickelte WPF-Anwendung besteht aus den drei Screens Image Area, Control Area und Leap Motion Options. Die Image Area (Bild 4) zeigt einen Anwendungsfall, bei dem verschiedene Abbildungen des menschlichen Körpers alleine mit Hilfe der Gestensteuerung angeschaut, gewechselt und gezoomt werden können. Die aus der Touch-Bedienung bekannte Swipe-Geste ermöglicht den Wechsel zwischen den vorhandenen Bildern. Die Bewegung des Cursors wird in der kompletten Anwendung mit der Zeigegeste (OneFingerMoved) ermöglicht und mit einem Screen- oder KeyTap lässt sich ein Mausklick zur Steuerung der Interface-Elemente ausführen. Für die Bedienung des Sliders oder die Ausführung einer Drag&Drop-Operation dient die VirtualMouse-Geste. Um das aktuell sichtbare Bild zu vergrößern oder zu verkleinern, kann die TwoHandsZoom-Geste verwendet werden. Eine Kreisbewegung im Uhrzeigersinn blendet das Menü ein und ermöglicht den Wechsel zwischen den verschiedenen Screens. Der Screen Control Area ermöglicht dem Anwender die Gesten an UI-Elementen ausgiebig zu testen und mehr über die technischen Hintergründe zu erfahren. Auf diese Weise können die verschiedenen Gesten ausprobiert werden und der Nutzer erhält gleichzeitig ein visuelles Feedback, ob die entsprechende Geste korrekt erkannt wurde. Mit Hilfe des letzten Screens, Leap Motion Options, kann der Nutzer die gewünschten Gesten aktivieren oder deaktivieren. Zusätzlich können dort Grenzwerte und die Genauigkeit der unterschiedlichen Gesten feinjustiert werden.
Erkenntnisse
Der amerikanischen Hersteller Leap Motion bietet mit seinem Controller ein kompaktes, leistungsfähiges und kostengünstiges Werkzeug zur gestenbasierten Steuerung von Computern. Dabei hinterließ gerade die Präzision des Leap Motion Controllers sowie die gut dokumentierte Programmierschnittstelle mit der Möglichkeit, eigene individuelle Gesten zu entwickeln, einen positiven Eindruck. Bei schwierigen Lichtverhältnissen funktionierte der 3D-Sensor jedoch nicht mehr zuverlässig. So kam es vor, dass einzelne Finger in bestimmten Positionen nicht mehr erkannt wurden. Auch bei der Erkennung von gekrümmten oder gekreuzten Fingern zeigte der Leap Motion Controller seine Schwächen. Die neu veröffentlichte Softwareversion (2.0) basiert auf einem neuartigen Ansatz der Gestenerkennung. Dabei dient ein detailliertes Handmodell als Referenz für die erkannten Daten. Probleme, die mit der Erkennung von gekrümmten Fingern auftraten, konnten mit diesem Ansatz teilweise behoben werden.