Hi all, this is just an informative post (with some discussion points at the end).
I'm sure many of you have not only used Microsoft's SDK, but also OpenNI, at some point in the past. So far, using OpenNI version 1.x (1.5.x as of late) introduced the trouble that you would normally have to switch the Kinect drivers (SensorKinect by avin2
for OpenNI apps, and the Microsoft SDK drivers for apps using the MS SDK).
OpenNI 2.0 has been released mid/end December 2012. It is "cross-platform" in general (but does not offer cross-platform device support, well, only for PrimeSense depth devices, like "Carmine 1.08"). It does support the Kinect, however, only on Windows,
because actually it does not support Kinect directly, but supports the Kinect SDK (and therefore, on Windows, it supports the XBox and K4W version).
In any case, if you are on Windows, make sure to head over to
OpenNI.org and check out OpenNI2 and NITE2, as well as the many other 3rd party middlewares. You need to have version
1.6 of the MS SDK installed. Note, however, that the other middleware are mostly not free (for commercial use), but can be at least downloaded/tested for free. Interesting stuff, such as hand gesture recognition and hand-skeleton detection
are offered by some of the frameworks/APIs.
Rant/discussion section: :)
Anyhow, Linux/Mac users will be quite disappointed that no official Kinect support exists. In the official forums, the OpenNI-devs are being blind about it, stating (figuratively) "we support the Kinect SDK, so if there is a Linux/Mac version of it one day,
the Kinect will be supported on these platforms as well". We all know that's not gonna happen :D - so Linux users will need to hope that guys like avin2 add
unofficial Kinect support (just as he has done for OpenNI 1.x, which never officially supported Kinect either).
In my view, in the end, it always boils down to companies wanting to make money and being under contract, etc, rather than being truly open-source and open. OpenNI 2 works well and is truly cross-platform if and only if you buy sensors from the people involved
in it (PrimeSense). The fact that OpenNI only supports MS Kinect SDK does not even make sense (in the context of cross-platformness and being "open"), well, unless you consider the strong ties between Primesense and Microsoft. OpenNI 1.x was the method of
choice for Linux users, and unless the Kinect will truly be supported for OpenNI 2, that is not going to change, I guess.