3
votes

This query is related to configuring the Occipital Structure Sensor with the OpenNI2 SDK. The SDK has already been in use with the MS Kinect family of depth-sensing devices originating from the XBox 360 technology. The Structure Sensor is basically an overwhelmingly reduced version of MS Kinect/Carmine which is specifically built with the iPad in mind. However, the manufacturers have made it configurable with the OpenNI2 SDK as well.

I am trying to configure this device with the NiViewer provided as part of the OpenNI2 interface. Based on the quick start guide at the following link, the "UsbInterface=2" must be changed to "UsbInterface=0" in the PS1080.ini file and this step should allow the depth and IR streams of this device to work properly.

http://com.occipital.openni.s3.amazonaws.com/Structure%20Sensor%20OpenNI2%20Quick%20Start%20Guide.pdf

However, when the NIViewer is run, despite showing the device as connected, it does not stream any of the streams of this device. After a bit of trying, I found that it was possible to right-click on the NIViewer and manually enable both the (the depth and IR) streams. However, when this is done, the following error appears (for the IR stream attempt):

Failed to create IR Stream: XnOniDevice: Can't initialize stream of type 1: Failed to set USB interface! Stream: couldn't create using source 1 Context: Couldn't create stream from device: 0237c220, source 1

Based on my own search, similar "failed to set USB interface" problems are reported for Kinect with MACOSX but the solution is not really specific to the Structure Sensor with the Windows 7 64-bit.

If you directly look into the XnOniDevice.cpp, it does show unavailability of streams being caught:

https://github.com/OpenNI/OpenNI2/blob/master/Source/Drivers/PS1080/DriverImpl/XnOniDevice.cpp

I reckon, a recompilation of source should not be necessary as this was not required for Windows-based systems. Any help in this regard would be highly appreciated. I'll report back if I found a solution to this issue.

1

1 Answers

5
votes

After looking further into the editing details of the "PS1080.ini" file, I noticed that the solution to this problem was a simple one. The semicolons ';' in the INI file are basically used in commenting and that's where the mistake was. If you forget to remove the ';' before the "UsbInterface=0" command, the comment is basically ignored. Once saved, the Sensor works perfectly and both the Depth and IR feeds can be seen in the NIViewer window.