我正在使用 Microsoft Kinect 传感器和罗技网络摄像头在 Ubuntu 12.04 和 ROS Fuerte(机器人操作系统)上制作应用程序。两者独立运行都很好。作为参考,我使用 Kinect 的 OpenNI 驱动程序。问题出现在同时使用 Kinect 和网络摄像头时,在这种情况下只有网络摄像头可以工作。尝试了所有可能的 USB 端口配置都无济于事。
现在我有一些关于我的问题的更多信息。这是 lsusb 报告。
总线 001 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
总线 002 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 003 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 004 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 005 设备 001:ID 1d6b:0001 Linux Foundation 1.1 根集线器
总线 001 设备 002:ID 18e8:6229 Qcom RT2573
总线 001 设备 003:ID 0409:005a NEC 公司高速集线器
总线 001 设备 004:ID 1a40:0101 Terminus Technology Inc. 4 端口 HUB
总线 001 设备 005:ID 058f:6254 Alcor Micro Corp. USB 集线器
总线 001 设备 006:ID 045e:02b0 Microsoft Corp. Xbox NUI 电机
总线 001 设备 007:ID 046d:c518 Logitech, Inc. MX610 激光无线鼠标
总线 001 设备 008:ID 05ac:1002 Apple, Inc. 扩展键盘集线器 [Mitsumi]
总线 001 设备 009:ID 067b:2303 Prolific Technology, Inc. PL2303 串行端口
总线 001 设备 010:ID 046d:082c Logitech, Inc.
总线 001 设备 011:ID 0451:2077 德州仪器公司 TUSB2077 集线器
总线 001 设备 012:ID 05ac:0204 Apple, Inc.
总线 001 设备 013:ID 045e:02ad Microsoft Corp. Xbox NUI 音频
总线 001 设备 014:ID 06c2:0033 Phidgets Inc.(以前称为 GLAB)
总线 001 设备 015:ID 06c2:0059 Phidgets Inc.(以前称为 GLAB)
总线 001 设备 016:ID 06c2:004f Phidgets Inc.(原为 GLAB)
总线 001 设备 017:ID 06c2:0045 Phidgets Inc.(原 GLAB)PhidgetInterface Kit 8-8-8
总线 001 设备 018:ID 045e:02ae Microsoft Corp. Xbox NUI 摄像头
我知道最简单的方法是更换硬件。但我知道同样的设置在 Windows 上也能正常工作。现在我有几个问题:
看来我只有一个 usb 2.0 总线和几个 usb 1.1 总线,这很常见吗?还是说操作系统无法识别其他 usb 2.0 总线?
我已经确认 Microsoft Windows Kinect 驱动程序为 Kinect 保留了 60% 的 USB 带宽,OpenNI 驱动程序是否也这样做?
我尝试通过要求网络摄像头发送 mjpeg 流而不是 rgb 图像来降低网络摄像头带宽。这应该会大大减少网络摄像头的带宽,但结果是一样的,当摄像头打开时 Kinect 无法工作。你们知道 Ubuntu 上的 USB 带宽管理是如何工作的吗?是 USB 驱动程序、网络摄像头驱动程序还是 Ubuntu 保留了 USB 带宽?
如何减少为网络摄像头预留的带宽?我已经设置为 mjpeg 流,分辨率为 640x480,帧率为 15 fps... 这已经很低了!
非常感谢您的帮助,如果您需要其他信息,请告诉我。