2

我正在查看文档,试图找到任何可以让我使用 Kinect/设备的东西?

我正在尝试获取加速度计数据,但不确定如何。到目前为止,我在指南和文档中发现了两件事: XnModuleDeviceInterface/xn::ModuleDeviceXnModuleLockAwareInterface/xn::ModuleLockAwareInterface.

我想知道是否可以使用 ModuleDevice Get/Set 方法与设备通信并询问加速度计数据。如果是这样,我该如何开始?

另外,我在想,如果在我尝试通过 freenect 或类似的东西获取加速度计数据时可以暂时“锁定”openni 功能,那么在阅读完成后“解锁”。

有没有人试过这个?有小费吗?

我目前正在使用 SimpleOpenNI 包装器和处理程序,但使用过 OpenFrameworks 和 C++ 库,因此语言不是很重要。

4

1 回答 1

4

标准的 OpenNI Kinect 驱动程序不会公开或允许访问任何加速度计、电机或 LED 控件。所有这些控制都是通过SensorKinect Kinect 驱动程序不与之通信的“NUI Motor”USB 设备(协议参考)完成的。

解决此问题的一种方法是使用修改后的 OpenNI SensorKinect 驱动程序,即确实连接到 NUI 电机设备的驱动程序,并通过“CameraAngleVertical”整数属性公开基本的加速度计和电机控制。看来您应该能够使用 SimpleOpenNI 和 Processing 读取/写入任意整数属性。

如果您愿意使用非基于 OpenNI 的解决方案,您可以使用Daniel Shiffman 的基于 libfreenect 的 Kinect 处理库。您将获得良好的加速度计、电机等...,但将无法访问 OpenNI 骨架/手势支持。OpenFrameworks 的一个类似库是ofxKinect

关于 OpenNI 节点的锁定,我的理解是这只会阻止属性更新,并且在 USB 驱动程序级别没有任何作用。无法在运行时在驱动程序之间切换(基于 PrimeSense 的 SensorKinect 和基于 libusb 的 libfreenect)。可能(我没有尝试过)为相机设备配置 OpenNI,并使用 freenect 与 NUI Motor 设备进行通信。这些设备之间不需要锁定/同步。

于 2011-12-25T02:55:21.780 回答