Saturday, November 13, 2010

Kinect working on Fedora

As most of the internet has already heard, there is a very large effort underway to reverse engineer Microsoft's new Kinect for the XBox.  The community quickly assembled around the first working open driver, and spawned a project called OpenKinect on github and Google Groups.

Once I heard that an open (GPLv2+) driver had reached a working state with the Kinect, I immediately went on Amazon and got myself one.  Two days later (love that Amazon Prime) it arrived and I spent the night coding intensely trying to get a driver to work using the Player robot server.  I spent a few hours looking over the example code provided by OpenKinect and porting it into a Player driver that serves the data through a Camera interface.  A few hours later, this is the result:

The above is data from both camera sensors: the upper one is from the RGB sensor, and the lower one is the depth image, with a color gradient applied (hot colors are closer, cool colors are farther.)  The Player server collecting, parsing, and publishing the data to the network, and the PlayerCam application subscribes to the server and displays the broadcast information.

This project still has a long way to go: as of yet the OpenKinect project has yet to integrate the PTZ controls, audio streaming, LED control, and accelerometer readings into a single library.  The Robotics SIG is following OpenKinect closely, and once OpenKinect is ready we'd like to include it in Fedora, with a working implementation via the Player package.