Notice: MediaWiki has been updated. Report any rough edges to marcan@marcan.st

Difference between revisions of "FAQ"

From OpenKinect
Jump to: navigation, search
(Framesize etc. of depth/rgb/IR - it is IR that's 640x488, depth and rgb is 640x480. Thanks zarvox again!)
(I get a 'Failed to submit isochronous transfer 0: -1' error: usb1.1 related. From channel.)
Line 54: Line 54:
  
 
This was reported with some ATI Radeon drivers (R600 cards for instance) and relates to the glColour4f parameter in glview.c. Try this [https://github.com/OpenKinect/libfreenect/issues#issue/144 fix].
 
This was reported with some ATI Radeon drivers (R600 cards for instance) and relates to the glColour4f parameter in glview.c. Try this [https://github.com/OpenKinect/libfreenect/issues#issue/144 fix].
 +
 +
=== I get a 'Failed to submit isochronous transfer 0: -1' error? ===
 +
 +
This may happen with old(er) computers using USB1.1, which has nowhere near enough bandwidth to allocate and process the 20MB/sec+ stream from the depth and rgb camera. See also Performance [http://openkinect.org/wiki/FAQ#I.27m_trying_to_troubleshoot_a_stability_or_performance_issue.2C_do_you_have_any_advice.3F issues].

Revision as of 04:51, 3 February 2011

Why are there black shadows in the depth image?

Shadow explanation diagram

Can optical polarization (or other tricks) be used to combine two Kinect sensors viewing the same scene from different angles?

Unfortunately, polarization is not generally preserved when reflecting off an object. Special surfaces can be used that preserve polarization, but the concept of tagging each Kinect's IR field by polarizing the light does not appear to be feasible. Initial tests using two simultaneous Kinect sensors suggest that they may not severely interfere with one another.

What is the frame size/bitrate of the rgb/depth/IR stream contained in the isochronous usb tranfers etc.?

  • There are 242 packets for one frame for the depth camera (including 0x71 and 0x75 packets). All packets are 1760 bytes except 0x75 packet - 1144 bytes. Minus headers it gives 422400 bytes of data * 30 frames per second = 12672000 bytes/sec
  • There are 162 packets for one frame for the color camera (including 0x81 and 0x85 packets). All packets are 1920 bytes (the isochronous packets arrive in two 960-byte chunks, sometimes in reverse order, which sum up to one 1920-byte packet) except 0x85 packet - 24 bytes. Minus header it gives 307200 bytes of data * 30 frames per second = 9216000 bytes/sec
  • The depth camera returns values with 11-bits of precision
  • The frame output of the RGB camera is a 640x480 Bayer pattern
  • The frame output of the depth camera is 640x480 (the rightmost 8 columns are always "no data", so you get an effective potential image size of 632x480 in a 640x480 buffer)
  • The frame output for the IR stream is 640x488
  • When the Kinect can't see the ir reflection or has no depth data for a pixel, it returns 2047 for the depth value

See the Protocol Documentation, /include/libfreenect.h and other documents of the Knowledge base for more information.

I'm trying to troubleshoot a stability or performance issue, do you have any advice?

Depending on the platform and hardware, many factors may come into play. But in general, one should look into these:

  • is libfreenect properly compiled and installed from the latest source
  • usb bandwidth issues: are there too many devices sharing the usb port, has the Kinect been tried on a different port, is it connected directly or through a usb hub? Is there data loss on the usb cable? Is the full usb 2.0 bandwidth enabled on the computer? On a laptop one might add an external usb mouse to the setup to see if that changes anything
  • graphics card issues: some graphics card's driver may exhibit a particular behavior; trying a different one may help

Tip: in glview.c or other straight c project file, try freenect_set_log_level(f_ctx, FREENECT_LOG_SPEW); (as opposed to FREENECT_LOG_DEBUG) to enable a more verbose output for debugging purposes.

Under Mac OSX I get a "Isochronous transfer error: 1" warning with packet loss and the stream eventually stops?

First make sure you've looked at the general troubleshooting advice. This may also be related to a isochronous transfer frame scheduling problem and there may be a partial solution documented here (see in particular post #6) to restart isochronous transfers that die...

How should I ask for help in the irc channel or on the mailing list?

In order to get an appropriate response to your support questions, please include the following information, if relevant:

  • What platform are you using, what version, and is it a 32 or 64 bit OS? ex. Windows (XP, Win7 64 bit), OSX 10.6.5, Linux (Ubuntu 10.10)
  • What hardware are you using? ex. a desktop, a laptop, what cpu, graphics card, connected usb devices etc.
  • If compiling from source, where did you download it from, which branch is it and are you using the latest? are you talking about libfreenect?
  • What IDE/compiler are you using and which version? Visual Studio 2010-2008-2005, CodeBlocks, MingW etc.
  • What is the exact error message? Please give the full output, using pastebin.com for instance and include the link with your question
  • Are you following the instructions on the wiki or some tutorial and if so which one?
  • What is the context in which the error appears: is it when you compile the source code, when you run glview, or when you use some wrapper?

Taking an extra minute to document your issue will go a long way in getting a response rather than a further question!

I have an ATI card and I'm getting a white screen instead of the depth camera image in glview with Linux or OSX?

This was reported with some ATI Radeon drivers (the x1400 and x1800 cards/chips for instance) that do not support non-power-of-two textures. See this thread for more information.

I have an ATI card and I'm getting a white screen instead of the RGB image and only 2 or 3 colors for the depth image in glview with Linux or OSX?

This was reported with some ATI Radeon drivers (R600 cards for instance) and relates to the glColour4f parameter in glview.c. Try this fix.

I get a 'Failed to submit isochronous transfer 0: -1' error?

This may happen with old(er) computers using USB1.1, which has nowhere near enough bandwidth to allocate and process the 20MB/sec+ stream from the depth and rgb camera. See also Performance issues.