Libfreenect2 USB连接失败

时间:2017-03-17 15:45:38

标签: libusb openkinect kinect-v2 libfreenect2

我一直试图在我的Windows 10计算机上启动并运行libfreenect2库,但我遇到了一个我无法解决的问题。我已经构建了库及其示例。我遇到的问题是当我去运行" Protonect"示例代码。我得到的输出如下:

$ ./install/bin/Protonect.exe
Version: 0.2.0
Environment variables: LOGFILE=<protonect.log>
Usage: U:\Repositories\libfreenect2\build\install\bin\Protonect.exe [-gpu=<id>] [gl | cl | clkde | cuda | cudakde | cpu] [<device serial>]
        [-noviewer] [-norgb | -nodepth] [-help] [-version]
        [-frames <number of frames to process>]
To pause and unpause: pkill -USR1 Protonect
[Info] [Freenect2Impl] enumerating devices...
[Info] [Freenect2Impl] 8 usb devices connected
[Info] [Freenect2Impl] found valid Kinect v2 @12:2 with serial 003370163847
[Info] [Freenect2Impl] found 1 devices
Pipeline Not-Used
libusb_open returned: -99
BLAH BLAH BLAH
[Error] [Freenect2Impl] failed to open Kinect v2: @12:2 LIBUSB_ERROR_OTHER Other error
failure opening device!

请忽略&#34; BLAH BLAH BLAH&#34;我正在使用它作为打印语句调试。我想我已经将问题一直追溯到libusb库中core.c文件libusb_open()函数的这一部分:

r = usbi_backend->open(_dev_handle);
    if (r < 0) {
        usbi_dbg("open %d.%d returns %d", dev->bus_number, dev->device_address, r);
        libusb_unref_device(dev);
        usbi_mutex_destroy(&_dev_handle->lock);
        free(_dev_handle);
        return r;
    }

我无法在错误代码-99上找到任何内容,因此我的调试结束了。根据我的理解,似乎示例代码无法出于某种原因将USB设备打开到Kinect。

我使用Windows SDK使用Kinect Studio测试了Kinect,并且在拾取Kinect提要时没有问题。有没有人遇到过这个问题,你是如何解决它的?有关错误代码的含义或如何修复USB开放问题的任何建议?

1 个答案:

答案 0 :(得分:0)

问题最终解决了。通过一系列调试尝试,您可以在此处看到: https://github.com/OpenKinect/libfreenect2/issues/812#issuecomment-288143166

我最终重新安装了usbdk 1.0.17并且神奇地一切都恢复了。显然,usbdk 1.0.17存在一些问题,需要重新安装才能解决一些问题。 Idk为什么,但如果有人在将来遇到这个问题,这就是我的解决方法。