[Ros-kinect] Kinect on USB 3.0 pci express card (Ubuntu)

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[Ros-kinect] Kinect on USB 3.0 pci express card (Ubuntu)

Christian Potthast
Hi all,
I recently bought a pci express USB 3.0 card to be able to connect more kinect's to one pc. It seems that a USB 2.0 bus can only support 1 kinect. I am not sure whether this is a driver issue or a throughput  issue. However I thought if it is a throughput issue USB 3.0 could help. It seems not. Nevertheless it should give me one more kinect.

However starting the openni_camera node the kinect is detected but if I subscribe to the point cloud topic nothing is displayed. It seems that there is an issue either with the Linux USB driver itself or with the openni_camera node. My guess however is the openni_camera node. Subscribing to the node produces an error in dmesg

' 848.288963] usb 9-3.3: usbfs: usb_submit_urb returned -22'

'-22' is EINVAL, implying an invalid parameter.

Cheers
Chris
_______________________________________________
Ros-kinect mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-kinect
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Ros-kinect] Kinect on USB 3.0 pci express card (Ubuntu)

Patrick Mihelich
Hi Christian,

On Mon, Jun 20, 2011 at 5:40 PM, Christian Potthast <[hidden email]> wrote:
I recently bought a pci express USB 3.0 card to be able to connect more kinect's to one pc. It seems that a USB 2.0 bus can only support 1 kinect. I am not sure whether this is a driver issue or a throughput  issue.

It's a throughput issue. USB 2.0 can only handle two of the streams at once. So, for example, you could get the RGB and depth streams from a single Kinect; or you could get both depth streams (but not RGB) from two Kinects.

However I thought if it is a throughput issue USB 3.0 could help. It seems not. Nevertheless it should give me one more kinect.

A USB 3.0 host actually contains a USB 2.0 controller alongside the new SuperSpeed controller. Kinect is a USB 2.0 device, so it will simply use the legacy controller; there's no advantage to using USB 3.0 with the Kinect.

You are correct though, you should at least be able to use another Kinect with the extra USB 2.0 bus.

However starting the openni_camera node the kinect is detected but if I subscribe to the point cloud topic nothing is displayed. It seems that there is an issue either with the Linux USB driver itself or with the openni_camera node. My guess however is the openni_camera node. Subscribing to the node produces an error in dmesg

' 848.288963] usb 9-3.3: usbfs: usb_submit_urb returned -22'

'-22' is EINVAL, implying an invalid parameter.

Weird. I haven't tried using a USB 3.0 bus, so I'm not much help. I'd suggest asking this on the OpenNI-dev mailing list. It looks like someone else recently had the same problem:
https://groups.google.com/group/openni-dev/browse_thread/thread/d4a610815cd5a813/d83bd07df73af6ee?hl=en&lnk=gst&q=USB+PCIe#d83bd07df73af6ee

At worst, you can always get a USB 2.0 PCI card instead.

HTH,
Patrick

_______________________________________________
Ros-kinect mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-kinect
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [Ros-kinect] Kinect on USB 3.0 pci express card (Ubuntu)

Patrick Mihelich
There's a more informative thread on the OpenKinect ML actually:
http://groups.google.com/group/openkinect/browse_thread/thread/555490cca239d9b9/e0d69ddc6f670c32?lnk=gst&q=USB+3.0#e0d69ddc6f670c32

Conclusion is:
All in all, it looks like a libusb and/or kernel problem - the kernel
seems to think that some of the control transfers are invalid, and
libusb doesn't know what to do.

Cheers,
Patrick
 
On Tue, Jun 21, 2011 at 2:55 PM, Patrick Mihelich <[hidden email]> wrote:
Hi Christian,

On Mon, Jun 20, 2011 at 5:40 PM, Christian Potthast <[hidden email]> wrote:
I recently bought a pci express USB 3.0 card to be able to connect more kinect's to one pc. It seems that a USB 2.0 bus can only support 1 kinect. I am not sure whether this is a driver issue or a throughput  issue.

It's a throughput issue. USB 2.0 can only handle two of the streams at once. So, for example, you could get the RGB and depth streams from a single Kinect; or you could get both depth streams (but not RGB) from two Kinects.

However I thought if it is a throughput issue USB 3.0 could help. It seems not. Nevertheless it should give me one more kinect.

A USB 3.0 host actually contains a USB 2.0 controller alongside the new SuperSpeed controller. Kinect is a USB 2.0 device, so it will simply use the legacy controller; there's no advantage to using USB 3.0 with the Kinect.

You are correct though, you should at least be able to use another Kinect with the extra USB 2.0 bus.

However starting the openni_camera node the kinect is detected but if I subscribe to the point cloud topic nothing is displayed. It seems that there is an issue either with the Linux USB driver itself or with the openni_camera node. My guess however is the openni_camera node. Subscribing to the node produces an error in dmesg

' 848.288963] usb 9-3.3: usbfs: usb_submit_urb returned -22'

'-22' is EINVAL, implying an invalid parameter.

Weird. I haven't tried using a USB 3.0 bus, so I'm not much help. I'd suggest asking this on the OpenNI-dev mailing list. It looks like someone else recently had the same problem:
https://groups.google.com/group/openni-dev/browse_thread/thread/d4a610815cd5a813/d83bd07df73af6ee?hl=en&lnk=gst&q=USB+PCIe#d83bd07df73af6ee

At worst, you can always get a USB 2.0 PCI card instead.

HTH,
Patrick


_______________________________________________
Ros-kinect mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-kinect
Loading...