Java Museum: Java Magazin kostenlos im entwickler.kiosk lesen!
Teil 1: Erste Schritte mit Kinect

Kinectologie

Kommentare

Mit der Nintendo Wii hat die Bewegungssteuerung vor einigen Jahren Einzug in den Spielebereich gehalten. Microsoft reagierte auf diesen durchschlagenden Erfolg mit dem Project Natal, das im Kinect genannten Sensor für die Xbox 360 mündete. In diesem Artikel werfen wir einen Blick auf die technische Innovation Kinect, die die Bewegungssteuerung in die nächste Generation führt: dreidimensionale Lokalisierung.

Der Erfolg der Nintendo Wii war für Sony und Microsoft durchaus eine Überraschung. Als 2005 die aktuelle Konsolengenereation, bestehend aus Microsofts Xbox 360, Nintendos Wii und Sonys Playstation 3, angekündigt wurde, rechnete zunächst niemand damit, dass sich ausgerechnet die Wii trotz ihrer Leistungsschwäche gegen die Konkurrenten durchsetzen würde. Doch die Analysten lagen hier, wie übrigens auch auf dem Goldmarkt, vollkommen falsch. Die innovative Bewegungssteuerung des Nunchuck Controller verhalf der Wii über Nacht zum Hitstatus. Mit ihren Verkaufszahlen führte die “Sparkonsole” von Nintendo haushoch den Markt an. Sowohl Sony als auch Microsoft mussten reagieren. Die Reaktion aus Redmond bestand im Project Natal, das im Kinect genannten Sensor für die XBox 360 mündete. Dieses Produkt ist ein wahres Kraftpaket, das die dreidimensionale Lokalisierung des Spielers ermöglicht. Kinect wurde von Microsoft gemeinsam mit PrimeSense entwickelt und verkauft sich seit November 2010 gar nicht so schlecht. Immerhin wurden schon zehn Millionen “Kinecte” an den Mann oder die Frau gebracht. Der Preis betrug zum Zeitpunkt der Markteinführung übrigens 149 Euro. Inzwischen sind die Kosten etwas gesunken. Heute erhält man Kinect (Microsoft Xbox 360 – Edition inklusive Games) bereits ab 120 Euro.

Prinzipiell basiert das Lokalisierungssystem von Kinect darauf, dass die vom ganz links sitzenden IR-Emitter ausgesendeten Infrarotstrahlen je nach Position des Objekts anders zur ganz rechts sitzenden IR-Kamera reflektiert werden. Dadurch lässt sich eine dreidimensionale Position errechnen. Zusätzlich enthält Kinect noch eine Tiefensensor-Farbwebcam, ein dreidimensional arbeitendes Mikrofonsystem und einen motorisch verstellbaren Standfuß zur besseren Anpassung des Sichtfelds. Die Software beziehungsweise ein Spiel wird ausschließlich durch die Bewegungen und Sprache der User gesteuert. Eine genauere Beschreibung befindet sich in einem PDF des österreichischen Projekts CADET [1], einer Initiative der Fachhochschule Salzburg und des Linzer Ars Electronica Futurelab.

Kinectologie

Kinect von Microsoft wird mittlerweile in drei verschiedenen Hardwarevarianten angeboten. Die Urversion des Peripheriegeräts war für die normale Xbox 360 vorgesehen, hatte einen USB-Anschluss und ein separates Steckernetzteil zur Versorgung des motorischen Standfußes. Die Slim-Version der Xbox 360 bekam einen eigenen, AUX genannten, Port spendiert. Bundles aus Xbox 360S und Kinect enthalten einen Sensor mit dem in Abbildung 1 gezeigten Kabel.

Abb. 1: Das ist kein USB-Port
Abb. 1: Das ist kein USB-Port

Wer ein derartiges Kinect besitzt, benötigt zwangsweise ein externes Netzteil samt Adapter, das es sowohl offiziell von Microsoft als auch von anderen Herstellern gibt. Während die beiden bereits erwähnten Hardwarevarianten für die Verwendung mit der Konsole vorgesehen sind (und auf dem PC vom SDK noch für einige Jahre nur für nichtkommerzielle Nutzung “geduldet” werden), will Microsoft ab Februar eine spezielle Version des Produkts, “Kinect for Windows”, ausliefern. Kinect for Windows zielt auf Unternehmensanwender, nicht auf Spieler. Da so die potenzielle Quersubvention durch Spielverkäufe entfällt, kostet sie 100 Euro mehr, ist dafür aber auch in der Lage, Objekte schon ab 50 cm Mindestabstand zuverlässig zu erkennen. Der Autor verwendet für die folgenden Artikel ein Kinect aus einem Xbox Bundle, das um ein Zweitherstellernetzteil erweitert wurde.

Kinect aktiv

Wer wie der Autor normalerweise nur für Windows Phone 7 programmiert, braucht im ersten Schritt eine aktuelle Version der Visual Studio 2010 Express Edition für den Desktop. Der Autor empfiehlt die Verwendung von Visual C# Express, das unter [2] heruntergeladen werden kann. Der erste Schritt zur funktionierenden Kinect-Konsole führt in jedem Fall zum Download des SDK [3]. Es wird als .msi-Datei angeboten, die unter Windows 7 und Windows 8 Developer Preview läuft. Wer unter Windows XP arbeitet, hat aufgrund des geänderten Treibermodells keine Chance mehr. Vista-User können die .msi-Datei hingegen nach der Installation des msi-Editors Orca [4] rechts anklicken und wie in Abbildung 2 gezeigt bearbeiten.

Abb. 2: Nach dem Bearbeiten speichern nicht vergessen
Abb. 2: Nach dem Bearbeiten speichern nicht vergessen

Dabei sei angemerkt, dass es sich hier keineswegs um Bösartigkeit seitens Microsoft handelt. Der Samsung X360 des Autors ist ein für Vista-Verhältnisse relativ leistungsfähiges Gerät. Beim leicht ruckelnden Ausführen mancher Samples verwandelt er sich allerdings wegen totaler Überlastung des SU9400-Prozessors in einen portablen Taschenwärmer. Das lässt den sicher nicht unplausiblen Schluss zu, dass die Mehrheit der unter Vista laufenden Hardware mit Kinect überfordert sein dürfte. Nach der Installation des SDK muss die DirectX-Version aktualisiert werden. Dazu holt man sich unter [5] die Datei dxwebsetup.exe. Sie erledigt nämlich den Rest des Updateprozesses automatisch. Als Nächstes müssen die Sprachkomponenten nachgerüstet werden. Sie stehen unter [6] und [7] zum Download bereit. Zu guter Letzt fehlt Kinect jetzt noch ein Sprachpaket, das unter [8] heruntergeladen werden kann. Damit ist die Arbeitsumgebung testbereit. Nachdem Kinect auch noch mit Strom und USB versorgt ist (und die grüne LED blinkt), starten wir die “Sample Kinect Audio Demo”. Sie sollte das Kinect erkennen und auf Zuruf die angezeigte Farbe ändern. Wer sich nicht sicher ist, kann seinem Kinect auch im Gerätemanager auf den Zahn fühlen. Funktionstüchtig erscheint es in Form von drei funktionierenden Komponenten mit den folgenden Namen:

  • Microsoft Kinect Audio Array Control
  • Microsoft Kinect Camera
  • Microsoft Kinect Device

Autor

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag