Requirements for Kinect programming

Josh picture Josh · Mar 4, 2012 · Viewed 14.4k times · Source

I wish to program with the Kinect ToF camera, however I am not certain of the hardware and software requirements to do so. I have come across a number of articles/books that cover this topic, but there seems to be some inconsistencies that have left me somewhat confused.

Questions

  1. What Kinect product do I need to buy to ensure that I have all the necessary components for using it for software development on a computer? (i.e. all cables included "in-the-box")

  2. What are the hardware requirements of the development system (cpu, ram, etc)?

  3. What are the drivers, development frameworks, and other software components for Kinect development? From these, what are needed, what are strongly recommended, and what are optional?

Please note that I do not want to be locked into developing within a Windows environment, although I would like the option to do so. I also have no intention of developing commercial applications at this time.

Answer

George Profenza picture George Profenza · Mar 4, 2012
  1. The Kinect sensor itself is all you need and by default it includes usb. You wouldn't need to buy a Xbox360 unless you want to play the Kinect Adventures :)
  2. I'm not entirely sure on hardware requirements, as it a bit on operating system and the library/driver/language you end up using, but it shouldn't be a major concern. I'm using mine on an older laptop (macbook from 2008 with 2GB of RAM,2.1 GHz processor and really bad integrated video card) with no problems.
  3. There quite a few choices, so I'll list them bellow

Drivers/libraries:

  1. As p.campbell mentioned, the Official Kinect SDK is one option. With that, you've got quite a lot of features avialable like skeleton tracking and speech recognition, but you're constrained to Windows and .NET.

  2. one other option is the opensource OpenKinect/libreenect driver which runs on osx/windows/linux and has wrappers for quite a few languages (like actionscript,c#,java,matlab,python,ruby,etc.), but bare in mind this gives access to the device(rgb/depth/ir data, accelerometer data,led/motor access), but doesn't include complex algorithms like skeleton tracking/speech recognition.

  3. another opensource option is OpenNI (that runs on linux/windows/osx) which allows you to access rgb/depth/ir data, but currently there's no implementation for motor/led/accelerometer/audio. Still, it includes skeleton tracking, hand tracking and also gesture recognition. You can use OpenNI with C/C++/Java/.net/Unity3D

If you are used to creative coding environments, there are wrappers for most of them also:

Depending on what OS/language and Kinect features you need to use, you should be able to make your choice.

Also note that if you can use OpenNI with other depth cameras like Asus Xtion.