Hollywood präsentierte sie in dem Film “Minority Report”, Microsofts Kinect brachte sie ins Wohnzimmer: eine Computersteuerung über Gesten. Schon bald versprachen Projekte, sie auch auf gängige PCs zu bringen. Jetzt gibt es für wenig Geld ein sehr sensibles Eingabegerät mit Linux-Treibern: Leap Motion.
Kinect überwacht den ganzen Raum, der Leap-Motion-Controller [1] nur den unmittelbaren Bereich vor dem USB-Sensor. Während Microsoft eine Auflösung von wenigen Zentimetern genügt, strebt der kleine USB-Sensor mit den zwei Kameras und drei Infrarotsensoren nach mehr: Eine Bewegung über einen 100stel-Quadratmillimeter reicht, damit Leap Motion reagiert – und diese Empfindlichkeit spürt der Benutzer deutlich und nicht immer angenehm.
Mehr als zwei Jahre lang arbeitete das amerikanische Unternehmen mehr oder weniger geheim an einem Controller, der sich vor einen Computer legen lässt und es gestattet, innerhalb eines halbkugelförmigen Bereichs alle Hand- und Fingerbewegungen, ja sogar die der Fingerspitzen, mit extrem hoher Genauigkeit zu erfassen.
Wer 2011 für knapp 70 US-Dollar vorbestellte, hielt frühestens am 22. Juli 2013 seinen Leap-Motion-Controller in Händen. Den Versand an Europäer wickelte eine Partnerfirma in Tschechien ab, die aber mit deutschen Umlauten in der Adresse etwas überfordert schien.
Ausgepackt ist Leap Motion gerade mal doppelt so groß wie ein USB-Stick (Abbildung 1) und tastet – via USB mit dem Computer verbunden – den Raum über dem Gerät mit Sensoren und Kameras ab. Während aber Microsofts Kinect auf die Erfassung des gesamten Körpers im Raum ausgelegt ist und erst auf eher grobe Bewegungen der Nutzer reagiert, bemerkt Leap Motion schon das geringste Zucken mit dem kleinen Finger.
Windows, Mac – aber Linux?
Der Hersteller kündigte schon früh die Unterstützung von Windows- und Mac-Plattformen an; doch Linux bleibt bis heute offiziell außen vor. Erst auf Druck der Community erschien im Frühjahr 2013 ein SDK für Linux. Aber eine richtige Unterstützung mit Software für Leap Motion, die aus dem Gerät etwa einen Mausersatz macht, fehlt.
Windows- und Mac-User hingegen verwöhnt der Hersteller gleich nach der Inbetriebnahme mit diversen Programmen. Mit Airspace existiert ein App-Store, der zum Zeitpunkt der Artikelentstehung über 80 Apps anbot. Von simplen Experimenten und Spielen bis hin zu Plugins für 3-D-Modelling-Software ist alles vertreten, was man sich als sinnvolles Anwendungsszenario für eine berührungslose Steuerung vorstellen kann (Abbildung 2). Einige der angebotenen Apps sind nur für eine bestimmte Plattform verfügbar, andere hingegen decken beide Betriebssysteme ab.
Die Preise der Apps reichen bis zu 12 US-Dollar, bezahlen soll der Anwender mit Kreditkarte. Leider funktionierten einige Programme im Test nicht auf allen Systemen – umso ärgerlicher, dass der Kunde vergeblich nach einem Button für die Rückgabe der App sucht.
Unter Windows 8 zeigt der Leap-Motion-Controller seine Stärken: Mit Hilfe einer kostenlosen App aus Airspace kann der User ihn als Mausersatz verwenden, auch wenn die viel zu sensible Einstellung und diverse Probleme bei der Erkennung von Fingerbewegungen schnell frustrieren. Ebenso kommt dem Anwender immer wieder das Windows-8-Dashboard in die Quere. Hier zeigt sich, dass das Produkt noch in den Kinderschuhen steckt.
Immerhin: Einige Spiele machen richtig Spaß, darunter beispielsweise das Flugzeugspiel Solar Warfare, in dem der Spieler mit seiner Hand die Geschwindigkeit und Neigung eines Fliegers bestimmt (Abbildung 3). Doch unreife Software, viel zu sensible Standardeinstellungen und zu hohe Sensitivität bei der Fingererkennung machen die Steuerung in vielen Fällen nahezu unmöglich.
Nicht selten hat das Gerät die Bewegungen der Tester entweder gar nicht oder erst viel zu spät erkannt. Manche Anwendungen starteten nicht und gaben unerklärbare Ausnahmefehler zurück. Nicht zu unterschätzen ist auch ein gänzlich untechnisches ergonomisches Problem: Spätestens nach einer Stunde ermüden die Arme, womit sich der Spaß bei der Bedienung in Grenzen hält.
Experimente mit Linux
Unter Linux angeschlossen erkennt »dmesg« den Controller erst mal als ein USB Video Class Device, also als Kamera (Abbildung 4). An dieser Stelle sind Gesten noch völlig sinnlos: Linux kann Handbewegungen noch nicht erkennen oder gar in Aktionen umsetzen. Der Druck der Linux-Community ermöglichte es jedoch, dass Leap Motion immerhin ein Linux-SDK als Beta bereitstellt. Das Development Kit für Linux ist aber nur für registrierte Benutzer im Developer-Bereich zugänglich [2] und umfasst etwas mehr als 93 MByte.
Nach Eingabe des Befehls »tar xzvf DeveloperSdk_LM_0.8.0.5300_Linux.gz« findet der Tester ein Unterverzeichnis mit dem zunächst verblüffenden Inhalt von zwei Debian-Paketen. Leap Motion bestätigte auf Anfrage im Developer-Forum, dass sich der Linux-Support vorerst auf Ubuntu-Systeme mit Unity beschränkt. Nur so sei im Linux-Bereich eine große Anwenderzahl erreichbar. Hinweise auf Support für andere Distributionen oder die ARM-Architektur sowie Android und Raspberry Pi fehlen.
Mit ein paar Tricks lässt sich das SDK dennoch auf anderen Linux-Varianten ausprobieren: Die Anwendungen, die sich in den Debian-Paketen verstecken, liefen im Test auch erfolgreich unter Fedora 17, und im Web mehren sich Berichte von Bloggern, wonach die Binaries auch auf anderen Distributionen funktionieren.
Nicht nur Ubuntu
Unter Ubuntu und Debian installiert das Kommando »sudo dpkg -i Paketname« die Pakete. Benutzer von Distributionen, die nicht das Paketsystem von Debian verwenden, müssen sich hingegen mit dem Konverter-Tool »alien« behelfen.
Auf einem Testsystem konnten die Tester über »yum -y install dpkg« Debians Paketmanager nachinstallieren und das Paket dann mit »mkdir Leap« sowie »dpkg -x Leap-0.8.0-x64.deb Leap« entpacken. Anschließend geht es ans Kopieren der Dateien in die richtigen Pfade im »usr« -Verzeichnis:
cp -ir usr/bin/* /usr/bin/ cp -ir usr/lib/* /usr/lib/ cp -ir usr/share/* /usr/share/ cp -ir lib/udev/rules.d/25-com-leapmotion-leap.rules /lib/udev/rules.d/
Wer nun seinen Leap-Motion-Controller aus- und wieder einsteckt, kann als Root den Daemon Leapd aufrufen. Für Ubuntu- und Mint-User wird an dieser Stelle aufgrund von Rechteproblemen beim Zugriff auf USB-Geräte ein Neustart notwendig. Alle folgenden Schritte sollte dann Root ausführen.
Nach dem Aufruf von Leapd meldet das Programm im Erfolgsfall, dass es den Gesten-Controller erkennt (Abbildung 5). In einer zweiten Terminalsitzung kann der Benutzer nun den Inhalt des SDK unter die Lupe nehmen und die darin befindlichen Anwendungen starten.
Ein Blick in das Verzeichnis »LeapSDK« offenbart die Unterordner »docs« , »include« , »lib« , »samples« und »util« . Das »docs« -Verzeichnis enthält Dokumentationen und kleine Beispiele für das Leap-API, das sich mit diversen Programmiersprachen ansprechen lässt. Die Dokumentation geht auf C++, C#, Java, Python, Objective C und Javascript ein und macht deutlich, dass der Treiber des Leap-Motion-Controllers dem Entwickler viel Arbeit abnimmt. In selbst geschriebenen Applikationen muss er lediglich abfragen, ob das Gerät Gesten oder Fingerbewegungen entdeckt hat.
Das »include« -Verzeichnis stellt einige Headerdateien bereit, die sich in eigene Anwendungen einbinden lassen, während der Ordner »lib« Laufzeitbibliotheken enthält. Den Inhalt von »LeapSDK/libs/x86« und »LeapSDK/libs/x64« sollte der Tester für die Ausführung von Drittanwendungen nach »/usr/lib« kopieren. In »samples« findet man Beispieldateien für die oben angesprochenen Programmiersprachen, während »utils« einige nützliche Anwendungen zeigt, die jedoch noch kompiliert sein wollen. Das Leap-SDK-Verzeichnis bietet so eine gute Grundlage für das Basteln eigener Apps mit Fingersupport.
Auf die Plätze, fertig, los!
Wer zwar keine eigenen Anwendungen schreiben, aber trotzdem loslegen möchte, kann einen Blick auf die mitgelieferten und bereits funktionstüchtigen Applikationen werfen. Das Leap-SDK bringt neben dem Leapd-Daemon auch den »ScreenLocator« mit, der den Controller für die Wahl des richtigen Bildschirms kalibrieren soll. Obwohl – oder vielleicht gerade weil – im Test nur ein Bildschirm Verwendung fand, funktionierte dieses Programm allerdings nicht.
Das Leap-Control-Panel ist ebenfalls im Lieferumfang enthalten und bietet einige Möglichkeiten für die Konfiguration des Controllers (Abbildung 6). In den Tests blieben aber die meisten Einstellungsmöglichkeiten ausgegraut und damit nicht benutzbar.
Das wohl eindrucksvollste Tool aus dem SDK ist der »Visualizer« . Aus dem Terminal heraus gestartet, zeigt es (Abbildung 7) die Hand des Autors mit allen fünf Fingern an. Mit dem Button [H] (Help) ruft der Nutzer zudem eine Übersicht der vorhandenen Einstellungsmöglichkeiten auf, mit [J] stellt er die Hintergrundfarbe auf “hell” um. Nach dem Betätigen der Hotkeys [T] und [N] zeigt der Visualizer nur noch die von den Kameras erkannten Finger an (Abbildungen 8 und 9).
Umschaltbare Modi
Mit den weiteren Schaltern lassen sich nützliche Zusatzoptionen und interessante Modi schalten. Tabelle 1 stellt die wichtigsten Hotkeys vor. Besonders interessant: Hält man einen Stift oder einen ähnlichen Gegenstand in den Erkennungsbereich des Leap-Motion-Controllers, wechselt dieser automatisch in einen anderen Modus. Er blendet dann, soweit möglich, alle anderen Finger aus und stellt nur noch das Zeigegerät dar – besonders sinnvoll für Zeichner oder Präsentatoren, die auf eine klassische Maus verzichten wollen.
Tabelle 1
Hotkey-Übersicht für den Visualizer
|
Schalter |
Funktion |
|---|---|
|
[C] |
Ansicht zentrieren |
|
[=] |
Ansicht vergrößern |
|
[-] |
Ansicht verkleinern |
|
[-] |
Zeigt Koordinaten und Latenzen an |
|
[J] |
Schaltet zwischen dunkler und heller Farbgebung hin und her |
|
[T] |
Blendet Finger ein und aus |
|
[Y] |
Verlängert die Spur der gezeichneten Striche |
|
[N] |
Wechselt durch verschiedene Handdarstellungen |
|
[P] |
Pausiert die Aufzeichnung |
|
[D] |
Blendet das Gitter aus |
|
Pfeiltasten |
Lassen die Kamera automatisch schwenken |
Sensibler als eine Maus
Wie erwähnt können Anwender das Eingabegerät auf Linux-Systemen noch nicht als Mausersatz verwenden. In der Community gibt es seit Kurzem jedoch erste Bemühungen, genau für diesen Zweck Anwendungen zu schreiben. Ein Benutzer aus dem Devel-Forum namens Sirik etwa hat eine Java-App veröffentlicht, die schon jetzt den Mauscursor mit Leap Motion steuern lässt. Klicks, Zooms und gängige Desktopbedienung sind damit aber noch nicht möglich.
Mehr Erfolg hat bisher der Entwickler von Py Leap Mouse [3] erzielen können. Einmal heruntergeladen und entsprechend präpariert fungiert das Python-Skript in Zusammenarbeit mit dem Daemon Leapd und dem Leap-Motion-Controller als Mauszeiger. Im Linux-Magazin-Test gestaltete sich die Bedienung allerdings noch sehr schwerfällig und umständlich, einen Blick ist die Software jedoch definitiv wert.
Web-Apps: Browsergesten
Wer noch weitere Einsatzgebiete für seinen Leap-Motion-Controller sucht, darf sich über Web-Apps freuen. Die kleinen Javascript-Helfer greifen auf die Javascript-Bibliothek von Leap Motion zur Umsetzung von Fingerbewegungen zurück und funktionieren auch unter Linux. Die einzigen Voraussetzungen bestehen in einem angeschlossenen Controller sowie einem laufenden Leap-Daemon.
Die meisten Web-Apps konzentrieren sich aber noch auf die technischen Seiten im Umgang mit der Leap-Motion-Hardware selbst. Unter [4] jedoch finden sich gleich 24 Apps, die mögliche Anwendungsszenarien für Web-Apps andeuten. Eine davon heißt Draw (Abbildung 10) und erlaubt das gleichzeitige Zeichnen mit fünf Fingern.
Beim Testen der Web-Apps stellte allerdings der Leap-Daemon öfter den Dienst ein und verlangte einen Neustart. Die Unterstützung von Web GL und der Besitz einer schnellen Grafikkarte sind sicher auch Voraussetzungen, die nicht jeder Nutzer erfüllt. Wem jedoch die offiziellen Web-Apps nicht ausreichen, der findet im Web zahlreiche gleichgesinnte Leap-Fans, die zum Teil eigene Demos ins Netz stellen – mit überaus kreativen Ideen.
Vorschau für Linux
Wer sich mit dem SDK und den Web-Apps nicht zufriedengeben möchte, kann unter [5] weitere Demo-Anwendungen für Linux herunterladen. Hier lädt Pohung Chen, selbst Mitglied des Entwicklungsteams von Leap Motion, seine Eigenkreationen hoch. Besonders interessant sind Anwendungen, die “LeapFirstPerson” im Namen tragen. In diesen Spielen läuft man in der Egoperspektive durch eine Sandbox und kann entweder fingergesteuert in alle Richtungen blicken oder tatsächlich durch das Greifen von Objekten Einfluss auf seine Umwelt nehmen (Abbildung 11).
Die meisten Apps sind für Linux fertig kompiliert und ausführbar. Sie setzen nur Leapd und die »libGLU.so.1« -Datei voraus, eine Bibliothek, die unter Fedora das Paket »mesa-libGLU« mitbringt. Die getesteten Apps sind allesamt auf 32-Bit-Plattformen kompiliert, »libGLU.so.1« muss also ebenfalls aus einem 32-Bit-Paket stammen.
Linus als Hardware-Tester
Die Erfahrungen der Linux-Magazin-Tester mit Leap Motion wurden kurz vor Redaktionsschluss prominent bestätigt. Linus Torvalds höchstselbst postete auf Google+ mit gewohnter Deutlichkeit seine Enttäuschung über den Stand des Projekts. [6]. Damit spricht der oberste Kernelentwickler aus, was viele denken: Der Leap-Motion-Controller könnte so cool sein, wenn Hard- und Software etwas ausgereifter wären.
Auch die Elektronik spielt nämlich nicht immer mit: Seit dem letzten Firmware-Upgrade mehren sich im Leap-Motion-Forum die Berichte zu Überhitzungen; auch in Linux-Magazin-Tests wurde der Controller bereits nach wenigen Minuten der Benutzung richtig heiß, kühlte dann aber im Laufe der nächsten zwei Stunden wieder etwas ab.
Bei normaler Beleuchtung durch Deckenlampen oder hereinfallendes Sonnenlicht lässt sich Leap Motion übrigens nur noch schwer bedienen, unter Windows 8 weist dann ein Tooltip darauf hin, dass eine externe Infrarotquelle die Erfassung der Bewegungen erschwert. Im Dunkeln, mit heruntergelassenen Rollos und ausgeschalteter Lampe funktioniert das Gerät hingegen tadellos.
Das Erkennen von Finger- und Gestenbewegungen klappt sowohl unter Windows als auch unter Linux teils sehr gut, teils komplett unzureichend. Es scheint, dass Leap Motion die Bewegungen in einem Moment vollständig fließend umsetzt, im nächsten hingegen überhaupt nicht mehr. Ein Grund für die Aussetzer ließ sich nicht ausmachen.
Der Linux-Support kann sich nach dem gegenwärtigen Stand nur verbessern: Zwar bietet das SDK eine ausgezeichnete Grundlage für eigene Entwicklungsprojekte, doch Linux-Nutzer müssen lange nach Anwendungen suchen, die schon jetzt gut funktionieren. Es bleibt also abzuwarten, wie wichtig Leap Motion die Linux-Nutzer nimmt und ob mehr Ressourcen in den Ausbau des Linux-Supports fließen.
Aber dass Linuxer sogar für selbstverständliche Anwendungszwecke in den Devel-Bereich der Leap-Motion-Webseite müssen, zeigt, dass der Hersteller sie nicht besonders ernst nimmt. Auch hier bietet das SDK eine gute Grundlage, aber fertige Software sucht man vergebens.
OEM-Hardware?
Die Chance wäre da: Leap Motion führt bereits seit Längerem Gespräche mit großen Hardwareherstellern und will den Einbau seiner Controller in fertige PC-Produkte erwirken. Asus und HP haben bereits verlauten lassen, dass die Gestensteuerung noch Ende 2013 Einzug in Notebooks und PCs halten kann. Spätestens bis dahin werden sowohl das Leap-Motion-Projekt als auch die Hersteller von Hard- und Software die Technik perfektionieren müssen.
Infos
- Leap Motion: http://www.leapmotion.com
- Developer-Bereich: https://www.leapmotion.com/developers
- Python Leap Mouse: https://github.com/openleap/PyLeapMouse
- Web-Apps für Leap Motion: http://js.leapmotion.com/examples
- Web-Apps von Pohung Chen: https://bitbucket.org/pohung
- Linus ist not amused: https://plus.google.com/+LinusTorvalds/posts/6TUjyBV7yuh

















