Kinect v2 and USB2.0?

1,289 views
Skip to first unread message

Brandon Swift

unread,
Oct 1, 2015, 1:37:54 PM10/1/15
to OpenKinect
Hi all, noob here.

I'm curious whether it is *technically* possible or impossible to get data from a Kinect v2 via a USB2.0 port. I have looked around here and elsewhere on the internet and have not found satisfying answers, as they are usually of the form "there is not enough bandwidth in the USB2.0 protocol to handle the video stream from the Kinect v2".

However, what about those of us who don't want to stream depth video at all? I simply need individual frames at a much lower rate (1 per second, maybe 2 per second at most). Surely this is technically feasible, but I'd like to know for sure.

USB2.0 has about 60MB/sec max bandwidth. If each depth frame is 515x424, filled with 16-bit values, that's less than 0.5MB/frame, so with my requirements is only about 1 MB/sec, max. Any other communication overheads should be negligible.

Bandwidth for what I need should not be an issue, then...so is there any other technical hangup that I am not aware of, and can we get around it?

Cheers,
Brandon

NB- I'm an astronomer primarily, shoehorned into having to engineer some things. I have messed with the Kinect v1 a bit for my application (actively measuring the surface of a radio telescope dish) and would like to test drive the v2, but I cannot currently upgrade to a system with USB3.0 for some technical reasons. If USB2.0 *can* be supported, I could probably help develop this feature in the code, but would need a good advisor who knows what they're doing.

Joshua Blake

unread,
Oct 1, 2015, 1:48:54 PM10/1/15
to OpenKinect
Hi Brandon,

The summary you posted is about right. The bandwidth is the limit.

Kinect v2 actually doesn't provide the depth data over USB. It provides 300 (yes, three hundred) frames per second of infrared images at 512x424 over USB, and then the SDK (or libfreenect2) uses the computer's GPU to compute 30 frames per second of depth at the same resolution. So, 10 frames of IR to 1 frame of depth, as this is how time-of-flight works.

Second challenge, the USB specification requires devices to reserve their full bandwidth on the USB bus when the device is plugged in/enabled, so that there aren't weird race conditions with bandwidth and multiple devices. (That could cause data loss with e.g. USB hard drives!) 

It is possible from a technical perspective for a device to switch between a low bandwidth USB configuration and a high bandwidth USB configuration. Unfortunately, Kinect v2 isn't designed to support that. It would require both hardware chipset support (a dual-mode USB2/USB3 chip in the camera) and firmware and driver support. 

Short version, unfortunately it isn't possible with Kinect v2. But stay tuned for other devices...

---
Joshua Blake
Co-founder & VP of Engineering
 

--
You received this message because you are subscribed to the Google Groups "OpenKinect" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openkinect+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Erwin José Lopez Pulgarin

unread,
Oct 1, 2015, 1:50:04 PM10/1/15
to openk...@googlegroups.com
Hi Brandon

As far as I know, it is not possible, I have seen people suggesting that have tried it, with no luck. The main point is that you cannot say to Kinectv2 "just give me RGB camera frames".

Kinectv2 is "tricky" to say the least. I use Kinectv2 and even with USB3 it only works with some type of USB3 controllers and requires a lot of computational power.


--
You received this message because you are subscribed to the Google Groups "OpenKinect" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openkinect+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Gracias

Erwin José López Pulgarín
Ingeniero Mecatrónico
Universidad Nacional de Colombia

Brandon Swift

unread,
Oct 1, 2015, 1:57:28 PM10/1/15
to OpenKinect
Thanks for the info. Wow, ok, that's annoying. :)

I guess I was assuming it was operating something like the Kinect v1 and doing a bunch of on-board processing, but apparently not! This has been enlightening, thanks.

Looking forward to following things as they progress.
-Brandon
Reply all
Reply to author
Forward
0 new messages