2
votes

I have two kinect sensors that are connected on different USB controllers. If I enable the skeleton stream on both of them, I get an exception when I call the start method on the second sensor:

This API has returned an exception from an HRESULT: 0x830100AA

The stack trace:

   at Microsoft.Kinect.KinectExceptionHelper.CheckHr(Int32 hr)
   at Microsoft.Kinect.NuiSensor.NuiInitialize(UInt32 dwFlags)
   at Microsoft.Kinect.KinectSensor.Initialize(SensorOptions options)
   at Microsoft.Kinect.KinectSensor.Start()

Why I'm not able to have skeletal tracking from both kinects?

P.S. I'm using Kinect for Windows SDK 1.5

Thanks!

2

2 Answers

5
votes

Just to clarify:

  • Tracking works from both Kinects. (tested with Microsoft SDK 1.6)
  • What you need to do is to connect the Kinects on a seperate USB Bus.

Also have a look at some of the examples in the SDK. In the 1.6 SDK there is an example called "Kinect Explorer" for managed code, which shows how to handle multiple Kinects safely.

Handling multiple Skeletons is not an easy task (if you want to detect if a user from kinect 1 ist the same user in kinect 2) you need to write your own logic.

2
votes

If you are using multiple Kinect sensors, skeleton tracking works only on the first device that you Initialize (with the RuntimeOption for skeletal tracking). To switch the device being used to track, uninitialize the old one and initialize the new one.