Kinect for Xbox Compatiable with OpenNI - kinect

I am using the Kinect for Xbox and I am planning on using the OpenNI framework along with the Point Cloud Library for processing but I am having trouble getting OpenNI to recognize my Kinect for Xbox and I wanted to make sure that it is actually compatible with the device.
For some reason I haven't been able to find any documentation on this exact topic.

PCL does indeed work with OpenNI. I've managed to easily compile the OpenNI Grabber Sample on Windows (using the All In One installer). I must admit I haven't managed the same on osx (had some issues with various versions of VTK being installed on the machine).
By the looks of it the issue doesn't look like it's on the PCL side, but on the OpenNI driver side. Can you run any of the samples ? If not, what error messages are you getting ?
I recommend cleaning up (uninstalling OpenNI, NITE, SensorKinect) and installing the unstable versions, but try installing in this order:
OpenNI 1.5.4.0
Nite 1.5.2.21
Avin's SensorKinect

Which version of OpenNI that you use?
If you use version 1.5.4, I think there is no problem because OpenNI interact directly with your Kinect Xbox.
However, if you use OpenNI version 2.x, it will interact with your device via Kinect SDK (http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/a11ff6d9-7fbe-4636-8ff0-92d6220ac3f8/) Since there is no Kinect SDK on linux, you can't make OpenNI 2 to recognize your device.

Related

Use Kinect XBOX one with NIVIEWER

I am really new to the whole Kinect world.
I have the XBox One Kinect with the Windows Adapter, have installed the last version of the Kinect SDK sucessfully and recorded some videos with the Kinect Studio v2.0 and got some .xef files, which I cannot use, since I need .oni files for a certain program.
So I tried to record with the OpenNI 2's NIVIEWER program, but it does not recognize the Kinect. I tested the NIVIEWER with the ASUS xtion Pro and it did work. I even reinstalled OPENNi2.2/NITE2/KINECT SDK but it still does not work.
Am I doing something wrong?
Kinect v2 and the kinect for xbox one, doesn't work with OpenNI directly. You have a couple of options:
Work with Kinect v1
Work with Kinect SDK only
Work with experimental drivers such as this one. Note that it only works in windows.
You may try to save the rgb and depth images and create the oni by any other means (I think this option is not that easy)
Hope this helps you

What should i use after OpenNI down?

As we know,the OpenNI and openni.org have been closed. But I need to use Kinect or Xtion to make a 3D scanner. what should I use now? I find that structure.io provides OpenNI 2, but I am not sure if it is compatible with those codes or driver using OpenNI.
Just use Kinect SDKs provided by Microsoft. You can definitely access all the functionality and there are many resources out there to get a quick start. I did a virtual dressing room project using only Kinect SDKs and XNA.

Kinect for XBox 360 and Kinect SDK 1.5

Microsoft has recently released Kinect SDK 1.5 and some very neat associated features such as face tracking.
I have a Kinect sensor for XBox 360 and Windows 7 (driver, Kinect studio) do not seem to recognize the device.
Can anyone advise if this is an "operator error" or if SDK 1.5 indeed does not support Kinect for XBox sensor but only Kinect for Windows (I have USB and power adapter for it).
Thank you,
Edmon
As Chris Ortner pointed out, the Kinect for Xbox sensor is compatible with Windows 7 for development purposes only - you need to have the SDK installed.
It might be worth checking to see if the SDK has installed properly.
In Device Manager you should see if it has the following:
Microsoft.Kinect
Microsoft Kinect Audio Array Control
Microsoft Kinect Camera
Microsoft Kinect Security Control
And:
Sound, video and game controllers
Kinect USB Audio
I have read that it is recommended that you do not have the sensor connected when installing the SDK. This is also implied by the msdn article setting up a kinect sensor. I have also read, although unable to provide a reference, having things like OpenNI or libfreenect may cause issues and should be uninstalled before installing the SDK. The link also provides other troubleshooting tips.
One last thing to check, ensure you are plugged into a USB 2.0 or USB 3.0 bus. It is one of the hardware requirements, and I am aware that one of the KinectSensor states is InsufficientBandwidth.
The SDK supports Kinect for Xbox360 as a development device, so this is probably an operator- or hardware error.
Please keep in mind, however, that the SDK must be installed for the Xbox360 version to work - the device is not supported for deployment on machines which have just the driver installed.

Can the SDK 1.5.1 run on the same computer as Open-Source Libraries for Kinect now?

It used to be that the beta 2 SDK couldn't run on the same computer as any other Kinect hacking software. Is this still true? Can I incorporate OpenNI and the SDK in the same project now?
That's a tricky one. Theoretically yes. The practical problem, however, is that when working with OpenNI, you need an OpenNI-compliant driver. The usual choice for that is SensorKinect. The Kinect for Windows SDK requires Microsoft's own driver, which is incompatible
with OpenNI. Having two drivers operate at the same time is not possible.
So, Kinect for Windows SDK and OpenNI are mutually exclusive. Exchanging the driver is necessary when switching between libraries.
One possible way to make the SDK and OpenNI work at the same time would require you to write a OpenNI-compliant sensor module, which uses Microsoft's Kinect driver. Nobody has done this before, to my knowledge, and I'm not entirely sure that it would work. Check the OpenNI Programmer Guide for more information on OpenNI's architecture, if you intend to pursue this path.

What is the difference between OpenNI and OpenKinect?

I am considering using Kinect in one my projects, but I am totally lost between all the libraries. Don't know what is what exactly. Most importantly I am reading stuff about OpenNI and OpenKinect. But don't know their relation/differences. PS. I am using Ubuntu or Mac.
OpenKinect is a community of people, not a library. The OpenKinect community releases the libfreenect Kinect driver. libfreenect and OpenNI+SensorKinect are two competing, opensource libraries/drivers. libfreenect (Apache 2.0 or GPLv2) derives from the initial, reverse-engineered/hacked Kinect driver whereas OpenNI+SensorKinect is derived from open sourced (LGPL) PrimeSense code.
Both projects work on Windows, Linux (Ubuntu), and Mac OS X. Both projects allow you to access color and depth images from the camera. The projects are not compatible and they can not be used simultaneously.
Differences between the libraries are motor control (libfreenect has it, OpenNI+SensorKinect doesn't), and integration with the NITE middleware for higher-level NUI support (OpenNI+SensorKinect only). These differences tend to drive projects towards one of the libraries.
I should add that OpenNI 2 renders OpenNI unusable to anything else other than Windows.
OpenNI 1.x with Kinect was not oficially supported in other platforms, until a guy named avin2 created the SensorKinect project, which sits on top of OpenNI and exposes the interface of the Kinect to OpenNI. OpenNI 2.0 is a major refactoring, and does not oficially support anything else other than Windows for the Kinect. http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/a11ff6d9-7fbe-4636-8ff0-92d6220ac3f8/ . At the time of this writing, OpenKinect has a problem with the newest kinect (model 1473) , which renders the device unusable. I don't know if a fix is underway.
Therefore, to sum up:
-- If the problem with the device model 1473 is solved, then OpenKinect is the way to go. And, frankly, I wouldn't trust anything else which targets a specific platform.
-- Until this problem is solved, your only option is to use OpenNI 1.5 + SensorKinect, which is obsolete, and development on it has halted, but it's the only thing that works with all kinect models, actually.
Although this question is years ago, I would like to add something I know.
I am pretty amateur, therefore getting Kinect to work on Mac was always difficult for me. I downloaded the code from github and followed multiple instructions but I couldn't get it to work properly. I remember, around 10 months ago, I got the Kinect, OpenNI work on Mac, but it was very unstable. The glview sample program did show depth and color images from Kinect, but it failed every now and then.
Recently, I found out a guy created a homebrew formula for openni (1 and 2), together with NiTE and libfreenect. I tried and it worked flawlessly on Mavericks 10.9.2 + 10.9.3, so if you haven't got the Kinect working properly, have a look at:
https://github.com/totakke/homebrew-openni
At this time of writing, OpenNi is compatible with Kinect for Windows, libfreenect is not.