Как я могу получить доступ к Kinect / устройству через OpenNI? - PullRequest
2 голосов
/ 09 декабря 2011

Я просматривал документацию, пытаясь найти что-нибудь, что позволило бы мне Kinect / устройство?

Я пытаюсь получить данные акселерометра, но не знаю как.До сих пор в руководстве и документах я заметил две вещи: XnModuleDeviceInterface/xn::ModuleDevice и XnModuleLockAwareInterface/xn::ModuleLockAwareInterface.

Мне интересно, могу ли я использовать методы получения / установки ModuleDevice, чтобы общаться с устройством и запрашивать данные акселерометра.Если так, как я могу начать?

Кроме того, я подумал, что если можно будет временно заблокировать функциональность openni, пока я пытаюсь получить данные акселерометра через freenect или что-то подобное, тогда «разблокировка» после чтения завершена.

Кто-нибудь пробовал это раньше?Любые советы?

В настоящее время я использую оболочку SimpleOpenNI и приложение Processing, но я использовал OpenFrameworks и библиотеку C ++, поэтому язык не будет иметь большого значения.

1 Ответ

4 голосов
/ 25 декабря 2011

Стандартные драйверы OpenNI Kinect не предоставляют доступ к акселерометру, двигателю или светодиодным элементам управления и не предоставляют им доступ.Все эти элементы управления выполняются через USB-устройство «NUI Motor» ( ссылка на протокол ), с которым драйвер SensorKinect Kinect не связывается.

Одним из способов решения этой проблемы является использованиемодифицированный драйвер OpenNI SensorKinect, т. е. , этот , который подключается к устройству NUI Motor и предоставляет базовый акселерометр и управление двигателем через целочисленное свойство CameraAngleVertical.Похоже, что вы должны иметь возможность читать / записывать произвольное целочисленное свойство, используя SimpleOpenNI и Processing.

Если вы хотите использовать решение, не основанное на OpenNI, вы можете использовать Daniel Shiffman's KinectОбработка библиотеки на основе libfreenect.Вы получите хороший акселерометр, мотор и т. Д., Но потеряете доступ к поддержке скелетов / жестов OpenNI.Похожая библиотека для OpenFrameworks: ofxKinect .

Что касается блокировки узлов OpenNI, я понимаю, что это просто предотвращает обновление свойств и ничего не делает на уровне драйвера USB.Переключение между драйверами - на основе PrimeSense SensorKinect и libusb на основе libfreenect - во время выполнения невозможно.Может быть возможно (я не пробовал) настроить OpenNI для устройства камеры и использовать freenect для связи с устройством NUI Motor.Блокировка / синхронизация между этими устройствами не требуется.

...