さらに分析するために、XTION から BeagleBone Black (BBB) にカラー フレームと深度フレームを保存しようとしています。
BBB と開発用コンピューター (Kubuntu 14.04 を搭載した MacAir) の両方に OpenNI2 をコンパイルしてインストールしました。SimpleRead は両方のプラットフォームで正しく動作します。
私のプログラムは、MacAir 上で 30fps で正しく動作するようになりました。カラー フレームと深度フレームの両方が openni::OpenNI::waitForAnyStream(...) から正常に返されます。
(新しいフレームを無期限に待機するプロデューサー スレッド内で waitForAnyStream をポーリングしています。その後、フレームはバッファーにコピーされ、ブースト spsc_queue に入れられ、コンシューマー スレッドによって分析および保存されます。)
次に、g++ クロスコンパイラを使用してプログラムを BBB に移植しました。640x480 の BBB で実行すると、openni::OpenNI::waitForAnyStream(...) が返されません。解像度を 320x240 に下げて、カラー ストリームのピクセル フォーマットを openni::PIXEL_FORMAT_YUYV に変更すると、正しく返されます。私は YUYV 形式を使用できますが、640x480 を動作させる必要があります。
私の質問は、以前に OpenNI2 フレームワークでこの問題を見たことがありますか? もしそうなら、どのように修正しましたか?
時間をありがとう、ベン
PS。Kinect を BBB にまったく認識させることができませんでした。MacAir に差し込むと、緑色の LED が点灯し、正しく動作します。BBB では、暗いままで、OpenNI2 で見つけられません。これについて何か考えはありますか?