0

我一直在尝试在我的 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!

请忽略我用作打印语句调试的“BLAH BLAH BLAH”。我想我已经将问题一直追溯到 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 和 Kinect Studio,并且在获取 Kinect 提要时没有问题。有没有人遇到过这个问题,你是如何解决的?关于错误代码的含义或如何解决 USB 开启问题的任何建议?

4

1 回答 1

1

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

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

于 2017-03-31T15:17:28.477 回答