Über die Kinect und wie man für sie programmieren kann

Kinect

Bildquelle: Amazon

Wer die Kinect am Computer bestimmungsgemäß nutzen möchte, hat damit sehr wenig Freude. Es gibt so gut wie keine Anwendungen für die Kinect unter dem Betriebssystem Windows. Auch ist für die aktuellen Treiber Windows 7 nötig. Gehe ich jetzt aber in die Eigenentwicklung, lerne das Programmieren mit C# oder C++, beginne zu verstehen, wie die kinect arbeitet, dann gestaltet sie sich immer interessanter. Es gibt zwei Versionen, die sogenannte „Kinect 360“ und eine neuere „Kinect for Windows“. Die neuere Kinect hat meiner Meinung nach keinen Vorteil.

Was kann ich mit der Kinect machen? Zuerst einmal hat die Kinect drei diskrete Funktionen: Sie hat eine Reihe von Mikrofonen, die es ermöglichen nicht nur Klang aufzunehmen bzw. Stimmen sondern auch deren Richtung. Oder aber festzulegen, daß Klang aus genau dieser Richtung gefiltert werden soll und alle anderen Klangquellen ausgeblendet werden sollen. Dann ist es eine Kamera, die auch für Skype verwendet werden kann und letztlich gewinnt sie Tiefeninformationen aus der Aufnahme der Verzerrung eines mit einem Infrarotlaser projizierten Musters.

Diese Tiefeninformationen wandelt die Software in ein Array um, das 640 mal von 0 bis 479 die Tiefeninformationen als Ganzzahlen in der Einheit Millimeter Entfernung von der Kinect angibt. Die Frage ist jetzt natürlich, was macht man damit? Bislang klingt das alles noch ziemlich langweilig, wenn man noch nie etwas mit Programmierung zu tun hatte. Wenn doch, sollten so einige hier leuchtende Augen bekommen.

Wenn ich bei dem Videoportal YouTube oder einer Suchmaschine den Begriff Kinect und Hack eingebe, finde ich ungefähr 20 % gute Entwicklungen. So etwa ReconstructMe.

Es ist nach wie vor so, daß sich die Entwickler nicht auf ein Treiberpaket einigen können. So gibt es Treiber von Microsoft, die sogenannten offiziellen Treiber und es gibt Treiber des Herstellers der Tiefenkamera. Die Letzteren haben keine Unterstützung für die Mikrofonmöglichkeiten implementiert, dafür sind sie aber in vielen Fällen schneller. Nachdem Microsoft seine Treiber und damit auch seine Codestrukturen häufig ändert, haben viele Programmierer keine Lust, diese Treiber zu nutzen um damit ständig ihren Code optimieren zu müssen für eine geringe Leistungssteigerung.

Ich verwende trotzdem die aktuellen Kinect Treiber, da sie sich leichter installieren lassen. Außerdem verwende ich in meinen Anwendungen alle Sensoren der Kinect und kann daher die anderen Treiber nicht nutzen.

Es gibt übrigens nicht nur C# und C++ um für die Kinect zu programmieren. So kann man etwa auch Processing verwenden, das auf Java und die OpenNI-Treiber aufbaut. Ganz entgegen dem Klischee, daß Java sehr langsam sei geht das erstaunlich gut.

Auch ipiSoft hat sich der Thematik angenommen und eine beeindruckende Motion-Capture-Software geschrieben.

Kinect bei Amazon bestellen.

Das HMZ-T1 Head Mounted Display

HMZ-T1

Bildquelle: Amazon

Seit Ende 2011 ist der HMZ-T1 auf dem Markt erhältlich. Eigentlich ist erhältlich das falsche Wort. Das Gerät ist zur Zeit lediglich im Geschäft im Berlin zu bekommen, und das auch ziemlich kompliziert. Das Gerät zu erhalten hat mich zum ersten Mal in meinem Leben an Zustände wie in der ehemaligen DDR erinnert, in der man auch sehr lange Zeit auf ein bestimmtes Produkt warten mußte.

Ich habe nun seit einiger Zeit die Möglichkeit, dieses Gerät zu testen. Man glaubt zuerst, man würde damit seltsam aussehen, es paßt sich aber erstaunlich gut an das Gesicht an. Ja, es sieht sogar edel aus, dieses Gerät auf dem Kopf zu haben. Die Auflösung des HMZ ist mit 1920 × 1080 bei 24 Bildern pro Sekunde meiner Ansicht nach relativ hoch. Das bekannte Kinogefühl tritt tatsächlich ein. Den Kopfhörern wird gerne nachgesagt, daß sie besonders gut seien, mir fallen sie lediglich nicht negativ auf. Das Gerät soll einen virtuellen Umgebungsklang produzieren, letztlich läuft es meiner Erfahrung nach aber schlicht auf Stereo raus.

Besonders begeistert hat mich an diesem Gerät die 3-D Darstellung. Nachdem beide Monitore individuell angesteuert werden können (über HDMI 1.4a), kann dort natürlich auch in 3-D dargestellt werden. Mit entsprechenden Tastenkombinationen, die aktiv werden während man ein 3-D Spiel spielt, kann man definieren wo die Szenerie durch die Bildebene geteilt werden als auch wie der maximale Abstand von nahestem zu entferntestem Punkt sein soll. Geeignete Spiele vorausgesetzt; viele Spiele sind nicht darauf ausgelegt, sodaß an falschen Stellen im Raum sich Objekte befinden.

Es ist für mich ein Gerät, das sein Geld wert ist. Es ist schwer zu beschaffen gewesen und genauso schwer zu tragen (ca. 400 g), wenn man es nicht entsprechend modifiziert. Hat man aber geeignete Spiele oder Filme als auch eine Modifikation, die einen Gewichtsausgleich ermöglicht, macht das Gerät wirklich Spaß.

Wer sich ärgern möchte, kann sich auch nach anderen Alternativen umschauen. Dort findet er zu einem Preis, der etwa 300€ darüber liegt ein Gerät, das im Vergleich zum HMZ-T1 120° Betrachtungswinkel hat als auch einen Headtracker. Mir sind diese Zusätze diesen zusätzlichen Aufpreis nicht wert.

HMZ-T1 bei Amazon bestellen.