2013-10-26 1 views
2

Я загрузил исходные коды OpenNI SDK2 x64, скомпилировал и попытался запустить образцы, но не был успешным.OpenNI SDK2, не удается найти устройство Kinect (Ubuntu 13.04)

100 INFO  New log started on 2013-10-27 00:03:47 
    130 INFO  --- Filter Info --- Minimum Severity: VERBOSE 
    166 VERBOSE No override device in configuration file 
    182 VERBOSE Configuration has been read from './OpenNI.ini' 
    190 VERBOSE OpenNI 2.2.0 (Build 32)-Linux-x86 (Oct 26 2013 21:13:04) 
    197 VERBOSE Using './OpenNI2/Drivers' as driver path 
    208 VERBOSE Looking for drivers in drivers repository './OpenNI2/Drivers' 
    933 INFO  New log started on 2013-10-27 00:03:47 
    950 INFO  --- Filter Info --- Minimum Severity: VERBOSE 
    966 VERBOSE Initializing USB... 
1074 INFO  USB is initialized. 
4274 INFO  New log started on 2013-10-27 00:03:47 
4292 INFO  --- Filter Info --- Minimum Severity: VERBOSE 
4304 VERBOSE Initializing USB... 
4366 INFO  USB is initialized. 

15321 VERBOSE Trying to open device by URI '(NULL)' 
15367 ERROR  Can't open default device - none found 
Couldn't open device 
DeviceOpen using default: no devices found 

lsusb получает этот

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 001 Device 003: ID 058f:b002 Alcor Micro Corp. 
Bus 001 Device 004: ID 045e:00f0 Microsoft Corp. 
Bus 002 Device 003: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard 
Bus 002 Device 007: ID 0409:005a NEC Corp. HighSpeed Hub 
Bus 002 Device 004: ID 1c7a:0603 LighTuning Technology Inc. 
Bus 002 Device 009: ID 045e:02ad Microsoft Corp. Xbox NUI Audio 
Bus 002 Device 008: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor 
Bus 002 Device 010: ID 045e:02ae Microsoft Corp. Xbox NUI Camera 

Я также попробовал некоторые libfreenect примеры с Kinect он работал без каких-либо проблем.

Я добавить строку в SimpleRead main.cpp файл

Array<DeviceInfo> dev_info; 
OpenNI::enumerateDevices(&dev_info); 
printf("Number of devices %d \n",dev_info.getSize()); 

который выписывает 0.

Вывод lsmod | grep gspca_kinect недействительна

Что может быть, возможно, не так?

я на Ubuntu 64-битной v13.04, Kinect является "Kinect для Xbox", используя USB2

ответ

2

Я добавляю этот ответ, потому что ссылка Tompsett @ Брайан сломана. При компиляции libfreenect есть простой способ: просто убедитесь, что вы включили флаг -DBUILD_OPENNI2_DRIVER=ON при вызове cmake во время сборки libfreenect's.

После установки, над головой

/home/$(whoami)/path/to/libfreenect/build/lib/OpenNI2-FreenectDriver

и скопировать libFreenectDriver.so* в загруженный каталог OpenNI2 Bin, т.е .: /path/to/OpenNI2/Bin/x64-Release/

Проверьте, если установка в порядке, проверяя прекомпилированный NiViewer. В зависимости от правил, настроенных в вашей папке udev, вам может потребоваться запустить NiViewer с помощью root.

Удачи вам!

1

@ Ответ на калорирование работал для меня.

Кроме того, обязательно обновите файл OpenNI.ini, например. для запуска приложений OpenNI в OpenNI2/Samples/Bin или примерах приложений NiTE в /path/to/NiTE*/Samples/Bin.

Например, я использовал 32-битную версию OpenNI версии 2.2:

  1. Я скопировал libFreenectDriver.so* в /path/to/OpenNI2/Tools (нет bin/x64-release папки в этой OpenNI версии).
  2. В OpenNI2/Samples/Bin, редактировать файл OpenNI.ini
  3. В разделе [Drivers], в конце файла добавьте строку: Repository=/path/to/OpenNI2/Tools (где вы положили файл libFreenectDriver.so). Ниже приведен мой отредактированный файл OpenNI.ini. Я использовал относительный путь, но также будет действовать абсолютный путь.

    #/path/to/OpenNI2/Samples/Bin/OpenNI.ini 
    [Log] 
    ; 0 - Verbose; 1 - Info; 2 - Warning; 3 - Error. Default - None 
    Verbosity=3 
    LogToConsole=0 
    LogToFile=0 
    
    [Device] 
    ;Override="" 
    
    [Drivers] 
    ; Location of the drivers specified by a relative path based on OpenNI's shared library or an absolute path. 
    ; Path separator "/" can be used to be portable for any platforms. 
    ; Default - OpenNI2/Drivers 
    Repository=../../Tools 
    

Вы должны сделать то же самое для образцов Nite. Теперь образцы должны запускаться.

Без обновления OpenNI.ini я всегда получаю ошибку DeviceOpen using default: no devices found

* пс. установка libfreenect поместит libFreenectDriver.so в /usr/local/lib/OpenNI2-FreenectDriver/