API’s for the Kinect
There are three primary programming API’s commonly used when working with the Kinect.
On this page a general overview of the API’s is given and then we direct you to resources regarding each of those discussed.
Note that the pro’s and con’s of each API is really for you to find out. The work done with Kinect here at CAST has primarily been with the OpenNI API.
The capabilities of each API and their limitations will be project specific to your project.
So which API is the best?
While each of the presented API’s offer differences in the way of community support, programming language options, and actual accessibility to the Kinect it would be impossible to state that one is the best or significantly better than the other ones across the board. Your program development skills and the situation of your application will dictate which is the route for you to choose.
Currently, the GMV series on the Kinect is not intended to be focused on development at an in-depth level. Rather, we hope only to provide a resource that pools existing materials in one location and gives you examples of a few of the many projects in which you can use the Kinect.
Furthermore, rapid updating and continual revisions to each of these projects require you to read up on their respective websites for the most current changes.
At the time of writing this page (summer 2012) the three primary options are the
Microsoft supported SDK (v1.5), OpenNI (v1.5.2), and the Open Kinect Project.
There are other means and routes to obtaining access to the Kinect hardware each requiring different expertise in programming knowledge, OS requirements, and licensing requirements.
A final note and a somewhat important one:
These libraries usually do not play well with each other, with each of them requiring their own driver’s and dependencies for using them.
There are options to bridge these gaps but in general terms, it will be necessary to completely remove any legacy or conflicting installations before switching from one to the other. That includes drivers, .dll’s, and registry/environment path settings.
Overview of OpenNI
About the OpenNI organization
The OpenNI organization is an industry-led, not-for-profit organization formed to certify and promote the compatibility and interoperability of Natural Interaction devices, applications and middleware. One of the OpenNI organization goals is to accelerate the introduction of Natural Interaction applications into the marketplace.
Their website is www.openni.org, where you can download the latest binaries and software packages available. They also offer documentation for their API, review sample projects, and provide a forum for user generated-projects (most of which come with source code).
Overview of Microsoft SDK
Kinect for Windows and Xbox Kinect
The Kinect for Windows SDK is provided free of charge to developers who wish to create applications using C++, C# or Visual Basic. Being formally supported by Microsoft gives you access to all of the capabilities of the Kinect including gesture and voice recognition.
An important consideration is that the Microsoft SDK is intended for the “Kinect for Windows”, which is different than the “Xbox Kinect”.
While as of v.1.5 SDK the Xbox Kinect is still accessible for development purposes,THERE IS NO DISTRIBUTABLE CAPABILITY with this API due to licensing issues regarding the hardware. Which consequently is the only major difference between the Kinect for Windows and Xbox Kinect at this point. For more information on the differences between these seemingly twin sensors, please check out the links at the bottom of this slide.
Microsoft prepackages drivers for using the Kinect sensor on a computer running Windows 7, Windows 8 Consumer Preview, and Windows Embedded Standard 7. In addition, the download includes application programming interfaces (APIs) and device interfaces.
Microsoft also offers their Development Toolkit which comes with about a dozen example projects that you can reuse in your own work.
Current Version: 1.5, updated 05/21/2012
Size: 221 MB
Main Site: www.microsoft.com/en-us/kinectforwindows
Download Page: www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx
Gallery(User Forum): www.microsoft.com/en-us/kinectforwindows/develop/community_support.aspx
Overview of The Open Kinect Project
OpenKinect is an open community of people interested in making use of the amazing Xbox Kinect hardware with PCs and other devices. They are working on free, open source libraries that will enable the Kinect to be used with Windows, Linux, and Mac.
The OpenKinect community consists of over 2000 members contributing their time and code to the Project. Members have joined this Project with the mission of creating the best possible suite of applications for the Kinect.
OpenKinect is a true “open source” community!
The primary focus is currently the libfreenect software. Code contributed to OpenKinect where possible is made available under an Apache20 or optional GPL2 license.
You are reading the series: Microsoft Kinect - Getting Started
- Microsoft Kinect – Hardware
- Microsoft Kinect Software – Ready To Use
- Microsoft Kinect – An Overview of Programming API’s
- Microsoft Kinect API’s – Installing the OpenNI Modules