2

Kinect/デバイスを許可するものを見つけようとしてドキュメントを調べていましたか?

加速度計のデータを取得しようとしていますが、方法がわかりません。これまでのところ、ガイドとドキュメントで見つけた 2 つのことがありました: XnModuleDeviceInterface/xn::ModuleDeviceXnModuleLockAwareInterface/xn::ModuleLockAwareInterface.

ModuleDevice の Get/Set メソッドを使用してデバイスと通信し、加速度計のデータを要求できるかどうか疑問に思っています。もしそうなら、どうすれば始められますか?

また、freenect などを介して加速度計データを取得しようとしているときに一時的に openni 機能を「ロック」し、読み取りが完了した後に「ロック解除」できるかどうかを考えていました。

誰もこれを試したことがありますか?任意のヒント?

現在、SimpleOpenNI ラッパーと Processing を使用していますが、OpenFrameworks と C++ ライブラリを使用しているため、言語はそれほど重要ではありません。

4

1 に答える 1

4

標準の OpenNI Kinect ドライバーは、加速度計、モーター、または LED コントロールを公開したり、それらへのアクセスを許可したりしません。これらの制御はすべて、SensorKinect Kinect ドライバーが通信しない「NUI モーター」USB デバイス (プロトコル リファレンス) を介して行われます。

これを回避する 1 つの方法は、変更された OpenNI SensorKinect ドライバーを使用することです。つまり、これは NUI Motor デバイスに接続し、「CameraAngleVertical」整数プロパティを介して基本的な加速度計とモーター制御を公開します。SimpleOpenNI と Processing を使用して、任意の整数プロパティを読み書きできるはずです。

OpenNI ベース以外のソリューションを使用する場合は、libfreenect に基づくDaniel Shiffman の Kinect Processing ライブラリを使用できます。優れた加速度計、モーターなどを取得できますが、OpenNI スケルトン/ジェスチャー サポートへのアクセスが失われます。OpenFrameworksの同様のライブラリはofxKinectです。

OpenNI ノードのロックに関して、私の理解では、これは単にプロパティの更新を妨げ、USB ドライバー レベルでは何もしないということです。実行時にドライバー (PrimeSense ベースの SensorKinect と libusb ベースの libfreenect) を切り替えることはできません。カメラデバイス用に OpenNI を構成し、freenect を使用して NUI Motor デバイスと通信することは可能かもしれません (試したことはありません)。これらのデバイス間のロック/同期は必要ありません。

于 2011-12-25T02:55:21.780 に答える