1

Greg Borenstein の「Making Things See」の手順を実行しようとしています。http://www.amazon.co.uk/Making-Things-See-Processing-MakerBot/dp/1449307078

以前に Kinect を使用したことがありますが、Windows SDK を使用し、それが示唆する OpenNI ライブラリを使用しませんでした。そこで、提案どおりに SDK とデバイス ドライバーをアンインストールしました。しかし、OpenNI をサンプルで動作させるのに苦労しています。Processing (http://www.processing.org/download/) で c# の例を実行しようとすると、次のエラーが表示されます。

UnsatisfiedLinkError: SimpleOpenNI.SimpleOpenNIJNI.swig_module_init()V

この情報は次のとおりです。

SimpleOpenNI ライブラリ (SimpleOpenNI32) をロードできません: java.lang.UnsatisfiedLinkError: C:\Users\Ryan\Documents\Processing\libraries\SimpleOpenNI\library\SimpleOpenNI32.dll: 依存ライブラリが見つかりません SimpleOpenNI を正しくインストールしたかどうかを確認します。http://code.google.com/p/simple-openni/wiki/インストール スレッド「アニメーション スレッド」での例外 java.lang.UnsatisfiedLinkError: SimpleOpenNI.SimpleOpenNIJNI.swig_module_init()V の SimpleOpenNI.SimpleOpenNIJNI.swig_module_init()V .java:54) で SimpleOpenNI.SimpleOpenNI.(SimpleOpenNI.java:212) で DepthImage.setup(DepthImage.java:41) で processing.core.PApplet.handleDraw(PApplet.java:2103) で processing.core.PGraphicsJava2D で。 requestDraw(PGraphicsJava2D.java:190) で processing.core.PApplet.run(PApplet.java:2006) で java.lang.Thread.run(Thread.java:662) で

インターネットを数回検索しましたが、この問題の解決策をまだ見つけていません。ここで Windows を再起動する必要があることが示唆されているのを見ました: http://code.google.com/p/simple-openni/issues/detail?id=27 これを 2 回試しましたが、まだエラーが発生します。

注: ライブラリをインポートする方法がわかりませんが、それを参照する必要があるかどうかはわかりませんが、Processing よりも Windows Visual Studio を使用したいと思います。私はコーディングと開発にかなり慣れていますが、このようなライブラリを使用することはあまりありません。

4

1 に答える 1

2

WindowsXP の Processing で SimpleOpenNI を使用しましたが、私のマシンでは問題なく動作します。これが私の構成です:

WinXP SP3 with OpenNI dev 32bit (OpenNI1.5.4.0,Nite1.5.2.21,avin2 SensorKinect5.1.2.1) および Processing 1.5.1 with SimpleOpenNI 0.20 (0.27 でもテスト済み)

私の知る限り、SimpleOpenNI は JNI を使用して OpenNI ライブラリおよびドライバーと通信するため、上記のエラーは次の 2 つの場所から発生する可能性があります。

  1. OpenNI が正しくインストールされていない
  2. SimpleOpenNI ライブラリが正しくインストールされていません

OpenNI が適切にインストールされているかどうかを確認する最も簡単な方法は、NiViewer ( C:\Program Files\OpenNI\Samples\Bin\Debug. それが実行されない場合は、OpenNI のインストールに問題があることを示しています。

SimpleOpenNI プロジェクト ページにセンサー ドライバー/OpenNI/Nite インストーラーがあることに気付きましたが、自分のマシンでそれらを使用した覚えがありません。手動でインストールしました:

  1. OpenNI 32bit 不安定
  2. Nite 32bit 不安定
  3. avin2 の互換性のある SensorKinect ドライバー

上記の順番で。アンインストール/クリーンアップしてから再インストールし、OpenNI サンプルを試してみてください。

OpenNI/Nite/SensorKinect が正しくインストールされていて、サンプルを実行できる場合は、Java/JNI 側の問題です。以下を確認してください。

  1. SimpleOpenNI フォルダーは次の場所にあります。%homepath%\My Documents\Processing\libraries
  2. OpenNI システム変数 ( OPEN_NI_BIN,OPEN_NI_INCLUDE,OPEN_NI_INSTALL_PATH,OPEN_NI_LIB) は、Windows の環境変数で設定されます

また、Processing の代わりに Visual Studio を使用したいとおっしゃいました。Processing は最高の IDE ではないことに同意します (これは初心者を対象としており、最小限の/シンプルな認識であることを意図しています)。Making Things See の正確なコードをより良い環境で続けたい場合は、Proclipsing プラグインでeclipseを使用することをお勧めします。Eclipse は適切な IDE (オートコンプリート/リファクタリングなど) であり、Proclipsing を使用すると、Processing プロジェクト (SimpleOpenNI などの外部ライブラリを使用するプロジェクトを含む) を簡単に管理できます。

頭に浮かぶもう 1 つのことは、VisualStudioofxOpenNIアドオンで OpenFrameworks を使用することです。OpenFrameworks は Processing にいくぶん似ており、ofxOpenNI ラッパーには優れた機能がいくつかありますが、おそらく Processing/SimpleOpenNI 構文を oF/ofxOpenNI に移植する必要があります。

個人的には、Kinect の開発を始めたばかりで、Making Things See の例を簡単にフォローしたい場合は、SimpleOpenNI を使い始めるのは本当に簡単だと思います (私が見た中で最も優れた OpenNI ラッパーです)。 eclipse の有無にかかわらず) と SimpleOpenNI。これにどのように取り組むかによって異なります: サンプル コードをそのまま使用するか、追加の労力をかけて移植する方が簡単ですが、OpenNI 自体がどのように機能するか (ラッパー/「トレーニング ホイール」なし) をより理解できます。

アイデアは、最も快適な方法で始めることです。SimpleOpenNI を使用すると作業が簡単になりますが、Processing/Java に慣れておらず、経験豊富な開発者であれば、ドキュメントを使用して C# で元の OpenNI API を使用する方法を理解できるでしょう。

お気づきのように、C# のサンプルも OpenNI に同梱されています。たとえばC:\Program Files\OpenNI\Samples\SimpleViewer.net。SimpleViewer.net.exe をobj\x86\Debugフォルダから移動するか、 MainWindow.csobjのパスを変更することをお勧めします。SAMPLE_XML_FILE

少し話が逸れますが、ブリッジ ライブラリを使用して公式の Kinect SDK と OpenNI の両方を実際に使用することは可能かもしれませんが、私自身はまだ使用していないため、経験からアドバイスすることはできません。

HTH

于 2012-10-13T19:27:39.587 に答える