Playing Kinect games is a really great experience. Programming for Kinect is even greater! Browsing the web, you can find many cool "hacks" (CLNUI, OpenKinect) which allow Kinect be used by a PC rather than an XBOX. Via these hacks, we gain access to Kinect's cameras (color and depth), LED, accelerometer and motor. Obtaining both the raw and the depth image, it is easier to build Machine Vision applications. But the main problem remains: Kinect magic is its software and the device simply cannot give us all those body-tracking algorithms by itself.
Fortunately, PrimeSense, the company behind Kinect, released OpenNI framework and NITE middleware. This means that we can now have access to features such as real-time skeleton tracking, gesture recognition, wave detection and much more!
OpenNI and NITE installation can be painful if not done properly. Let's do it step by step:
Uninstall any previews drivers, such as CLNUI. Look at the end of this post if you want to see how you can have multiple drivers installed.
- Download Kinect Drivers and unzip.
- Open the unzipped folder and navigate to Bin folder.
- Run the msi Windows file.
Drivers are now installed in your PC.
Download and install the latest stable or unstable OpenNI Binaries from OpenNI website.
Download and install the latest stable or unstable OpenNI Compliant Middleware Binaries (NITE) from OpenNI website.
During installation, provide the following (free) PrimeSense key: 0KOIk2JeIBYClPWVnMoRKn5cdY4=
Download and install the latest stable or unstable OpenNI Compliant Hardware Binaries from OpenNI website.
Both stable and unstable releases have worked for me. If you have trouble installing the unstable releases, just try the stable ones.
- Plug in your Kinect device and connect its USB port with your PC.
- Wait until the driver software is found and applied.
- Navigate to the Device Manager (Control Panel). You should see something like the following:
Navigate to C:\Program Files\OpenNI\Samples\Bin\Release (or C:\Program Files (x86)\OpenNI\Samples\Bin\Release) and try out the existing demo applications. Try the demos found in C:\Program Files\Prime Sense\NITE\Samples\Bin\Release (or C:\Program Files (x86)\Prime Sense\NITE\Samples\Bin\Release), too. If they work properly, then you are done! Congratulations!
You have successfully installed Kinect in your Windows PC! Read the documentation and familiarize yourself with the OpenNI and NITE API. You'll find the proper assemblies in:
- C:\Program Files\OpenNI\Bin (or C:\Program Files (x86)\OpenNI\Bin) and
- C:\Program Files\Prime Sense\NITE\Bin (or C:\Program Files (x86)\Prime Sense\NITE\Bin)
OpenNI is the primary assembly you'll need when developing Natural User Interfaces applications.
C# tutorials on using the managed OpenNI.net libraries can be found in this blog, so stay tuned ;-).
Update June 12, 2011: Troubleshooting
- If you are running a version of OpenNI older than 220.127.116.11, then you need to replace the XML files found under Program Files\OpenNI\Data and Program Files\PrimeSense\NITE\Data with the corresponding ones found here.
- If the demos do not run, then navigate to the Control Panel and open the Environment Variables panel. Under "System variables", find OPEN_NI_BIN variable and replace C:\Program Files\OpenNI\bin with C:\Program Files\OpenNI\Bin (uppercase "B").
Installing Multiple Drivers
Thanks to my friend George Karakatsiotis (@erevodifwntas), you can now have various Kinect drivers installed concurrently. Here's how to achieve this:
- Open Device Manager
- Right click Kinect Camera under PrimeSensor.
- Select "Update driver software"
- Select "Browse my computer for driver software" and "Let me pick from a list of device drivers on my computer".
- Select the driver of your preference (e.g. CLNUI).
- You are done!
I have been a student at Athens University of Economics and Business, Department of Informatics, since September 2007.
I mainly develop and design .NET applications in C#, ASP.NET and Silverlight, but I have also worked on J2EE, LAMP and C++.
Currently, I am a member of Microsoft Student Partners team and I work as a freelancer for several employers including the Institute for the Management of Information Systems and Vodafone Corporation. As a Student Partner, I have made lots of speaking engagements considering Microsoft technologies (ASP.NET, Silverlight, Windows Phone etc) to undergraduate / postgraduate students and developers.