0
votes

I need to plug two Kinects simultaneously for an application. I know this can be done (I've seen blogs that demonstrate this).

So, I dug into the DepthBasics C# code that comes packaged as a sample with the SDK and identified the snippet -

foreach (var potentialSensor in KinectSensor.KinectSensors){
            if (potentialSensor.Status == KinectStatus.Connected){
                this.sensor = potentialSensor;
                break;
            }
        }

From here, I just created another 'sensor' object and said -

this.sensor = KinectSensor.KinectSensors[0];
this.sensor1 = KinectSensor.KinectSensors[1];

Now the problem is that when I check the status of the two sensors, I get "Connected" for the first one, but "InsufficientBandWidth" for the second one. Is this a hardware thing? Any way around it?

2

2 Answers

2
votes

This is most likely caused due to both Kinects being connected to a single USB controller. If you're using an external USB hub (powered or not), stop.

Make sure you're plugging each Kinect into two different controllers on your PC. Other devices plugged into the same controller will also potentially cause the Kinects to not be recognized correctly. Try just swapping the 2nd Kinect around if you are unsure which ports are paired on your computer. If you have USB ports in the front & back of your computer, use 1 of each -- they are most likely on different controllers.

1
votes

I had a similar issue when plugging two Kinects into my HP EliteBook (which no doubt has but a single USB controller).

I found that by reducing the depth resolution on one of the sensors I was able to get both connected (I used the KinectExplorer sample app both to down the res and to check whether connection happened properly).

I can now see both sensors (one KfW 1.0, one Kinect for Xbox 360) from within the new Kinect Fusion multi static cameras sample, although I'm yet to get meaningful results from it.