Kinect Installation auf Ubuntu 12.04


Processing 2.0

Mit dem Kinect Sensor und Processing lassen sich wirklich tolle Sachen machen. Z.B.: 2 Arbeiten von Cedric Kiefer: unnamed-soundsculpture, magic story telling.

Buchtip:

Als guter Einstieg in englischer Sprache eignet sich : Making-Things-See.

Hardware:

Um die Kinect am Computer betreiben zu können braucht man eine externe Stromversorgung. Die gibt es auch im Bundle, welches ich auf die Schnelle im Amazon Webshop nicht mehr finden konnte. Es sollte aber nach wie vor verfügbar sein.

Installation:

Um unter Processing mit dem Kinect Sensor arbeiten zu können, braucht man einen Treiber inkl. Java/Processing wrapper. Hier gibt es im derzeit 2 Möglichkeiten.

  1. Den Treiber des OpenKinect Projekts mit einem Wrapper von Daniel Shiffman. Dieser funktioniert in der vorliegenden Version allerdings nur auf dem Mac.Er kann aber unter dieser Anleitung von Nikolaus Gradwohl auch für Linux kompiliert werden.
  2. Für alle Plattformen ist hingegen die simple-openni verfügbar. Die Installation unter Windows und Linux funktioniert lt. Anleitung. Einzig die Version des Treibers im Linux Paket geht aus der Anleitung nicht klar hervor. Hier muss die Version im /Ordner/kinect/….. installiert werden.Dann noch den Wrapper herunterladen und wie beschrieben im /libraries Ordner im Sketchbook entpacken und schon kanns mit dem Beipielcode von der Seite ans Testen gehen.Tipp: Auf Ubuntu 12.04 wird die Kinect nach dem Verbinden sofort von dem Programm Guvcview belegt. Damit das nicht passiert, muss die Datei /etc/modprobe.d/blacklist.conf als root mit der Zeile blacklist gspca_kinect angereichert werden.

import SimpleOpenNI.*;

SimpleOpenNI  context;

void setup()
{
context = new SimpleOpenNI(this);

// enable depthMap generation
context.enableDepth();

// enable camera image generation
context.enableRGB();

background(200,0,0);
size(context.depthWidth() + context.rgbWidth() + 10, context.rgbHeight());
}

void draw()
{
// update the cam
context.update();

// draw depthImageMap
image(context.depthImage(),0,0);

// draw camera
image(context.rgbImage(),context.depthWidth() + 10,0);
}

void keyReleased() {
//if (key == DELETE || key == BACKSPACE) background(360);
if (key == 's' || key == 'S') saveFrame(timestamp()+"_##.png");
}

// timestamp
String timestamp() {
Calendar now = Calendar.getInstance();
println("Frame saved");
return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS", now);
}
Advertisements

4 Kommentare

  1. Hallo,
    ich habs mit Hilfe deines Blogbeitrags und den Anleitungen von OpenNI geschafft den ganzen Kram auch unter Arch-linux64 zu installen.
    Wenn ich jetzt obrigen sketch antesten will bekomm ich eine IllegalArgumentExpection: Width(10) and Height(0) cannot <= 0 in der setup-void in dieser Zeile:
    size(context.depthWidth() + context.rgbWidth() + 10, context.rgbHeight());

    Setz ich dann testweise mal die Weite und Höhe manuell bekomm ich eine NullPointerException in der Zeile:
    image(context.depthImage(),0,0);

    Falls du nen Tip hättest für mich, wärs toll wenn du mir den mitteilst. Wär da echt dankbar. Bin halt noch neu in der Processing-Welt. Ich weiß halt nicht so recht in welche Richtung ich gucken muss. Also hab ich noch Treiber-Thema oder eher ein Library-Thema im Processing selbst.

    Ansonsten schon mal nen nettes Danke für den Beitrag hier.

  2. Pingback: Processing – Über dieses Weblog « processing – tutorial

  3. Pingback: Kinect und Processing | processing - tutorial

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: