Hi-farm blog

ActionScript 3.0 , AIR , FLEXからCocoa, OpenGL

Archive for the ‘Kinect’ Category

ライブでのKinect使用例

少し前の話になりますが、2011/12/22にageHaにて行われた
「m-flo presents BONENKAI」でBoxステージでのPanty & Stocking OrchestraのライブにてKinect+OpenNIを使った演出を行いました。

ちょっとわかりにくいですが、右下にいるアーティストの動き(この画像はTeddyLoidさん)にあわせてスクリーン上のロボットが動く、というものです。OpenNI Unity Wrapperを使いました。

pso_kinect

より効果的に見せるための課題など反省点は色々ありますが、まずは問題なく本番で使う事ができて一安心です。

今年2012年はよりパワーアップしたものをお届けするべく頑張りますのでよろしくお願いします。

  • 0 Comments
  • Filed under: Kinect, OpenNI, Unity3D, live
  • OpenNIの新しいバージョンがunstableながら出たようです。(バージョンは1.4.0.2)
    http://75.98.78.94/
    ※ググった結果の一番上なんですけどなんでIPアドレスなんだろう。。。

    今回からなんとOpenNIでスケルトン認識する時の例のポーズがいらなくなった、という大きすぎるアップグレードがあります。
    「かおるんダイアリー」様が早速デモ動画をアップされています。
    http://d.hatena.ne.jp/kaorun55/20111121

    MSのSDKでは画面から外れた時の暴れっぷりや全身が映っていないときの反応がちょっと荒かった印象がありましたが、OpenNIの方は比較的ましな感じがしています。

    今はSensorKinectの人にも問い合わせしているので進展があれば追記します。

    早速試したかったのですが、僕の環境では実行しようとしても
    Segmentation fault: 11
    が出てしまい実行できませんでした。

    あまりにもわからなかったのでOpenNIのGoogleGroupで質問してみたところ、
    Kinectの時に使っているドライバ、SensorKinectが新しいバージョンに対応していないからだそうです。

    これはOpenNI使う時はKinectじゃなくてXtion使えよ、っていうことなんでしょうかね。。。

    追記:
    動作することを確認しました。
    すみません。僕が使っていたSensorKinectが古かったようです。

    ここにあるバージョン(5.0.5.1で確認しました)を使うと無事動作しました。
    OpenNI, SensorKinect、NITE、入れていればOpenNIのサイトにあるSensorをアンインストールし、KinectをUSBから抜いて再度インストールすると問題なく動作するようになりました。
    (NITEは先ほどリリースされた1.5.0.2をインストールしました。)
    https://github.com/avin2/SensorKinect

    さあ、これで試せるよ!

    備考:
    動作確認バージョン:
    OpenNI: 1.4.0.2
    NITE: 1.5.0.2
    SensorKinect 5.0.5.1
    Mac OS X 10.7 Lion
    デバイス: Kinect

    撮影するための環境が無くて僕とKinectの距離が近かったのでスケルトンが暴れていますが、実際はもう少しましだと思います。

    これになったことでスケルトンを使ったアプリを作りやすくなりましたが、暴れることが以前より多くなった(当然)ので、こういったノイズデータをハンドリングする必要がありそうですね。

  • 0 Comments
  • Filed under: Kinect, OpenNI
  • 新しく(2011/10月発売?)MacBook Proを買ったものの時間が無くてOpenNIのインストールをしばらくできてなかったのですが、必要に駆られてOpenNIのインストールをしてみたところはまったところがあったので残しておきます。

    おこった問題:
    Sample-NiUserTracker の実行ができなかった。(ただし、Sample-NiSimpleViewerは実行できた)

    エラーメッセージ:
    Could not find data file /usr/etc/primesense/Features_1_4_2/s.dat
    current working directory = /Users/xxxxx/Documents/OpenNI/OpenNI-Bin-Dev-MacOSX-v1.3.4.6/Samples/Bin/x86-Release
    →実際該当するパスにファイルが存在しなかった。

    解決方法:
    うまく動いていた状態の古いマシンには /usr/etc/primesense/ 以下に Features_1_3_1と Hands_1_3_1というフォルダがあったので、そのファイルを使い、フォルダ名を Features_1_4_2、Hands_1_4_2と変更した。

    OpenNI、NITE、SensorKinectともにバラバラにインストールしてしまっていたのが原因だとは思うが、これで動作するようになりました。

  • 0 Comments
  • Filed under: Kinect
  • KinectをOpenNIを使えばunstable版ではありますが、Macでも使う事ができます。
    で、普段のWebやPC、Mobileのアプリとは異なりハードウェア的な観点で注意しないと行けない事があり、ちょっとハマってしまった事があったので書いておきます。

    今までまったくもって普通に動いていたアプリが突然すごくカクカクと動いてしまっていたのですが、ソースコード上の無駄をどれだけそぎ落としても、Kinectのデータ更新を別スレッドで行うようにしてもカクつきがまったく改善されなく、原因がわからなくて途方に暮れていたところ、試しにUSBの差し口を変更した所今までどおり高速に動作するようになりました。
    どうやら状態によって通信速度が変わる事が考えられます。

    MacBook ProのUSBポートは内部的には同じもののはずだからどちらに差したからと言って通信速度が変わることはないと思っていたのですが、そんな事も無かったです。

    Kinect自身はUSBでPCと繋いでデータを受信します。KinectはXtion Proなどのデバイスとは違い、USBだけでは正しく動作しないのでコンセントにさす必要もあるのですが、電気の供給が不足しているときにも動きがカクカクしてしまう事がありました。

    USBを差し替える前後の違いが分かるように動画をアップしましたので気になる方はご覧下さい。

    はまりどころを抜けて、こんな感じのサンプルを作りました。

  • 0 Comments
  • Filed under: Kinect, Mac, OpenNI
  • こんにちは。
    ここしばらくKinectで何かをする事が多かったので、忘れないうちに記事を残しておこうと思います。

    Kinectとは?

    kinect
    Kinectとは、MicrosoftがXbox360向けに発売したゲームデバイスです。
    従来と違い、距離センサーなどを搭載した事で、全く何のコントローラーを持つ事無く人のジェスチャーでゲームを楽しむ事ができます。

    どんな事ができるのかは、この動画をみると分かりやすいと思います。

    これがもし、Xboxだけでしか使えないものであればここまで流行る事も無かったと思うのですが、あまりにも安価なセンサーデバイスだったため、世界中のハッカーが勝手にハックしてKinectの情報をプログラムで扱えるようになりました。

    センサー部分を開発している、イスラエルのPrime Sensor社がOpenNIというライブラリを公開したことは、Kinectのパーツを実際に作っているところからの公開であり、準公式とも言えそうなライブラリの登場に非常に興奮したものです。
    C++, C#で利用する事ができます。
    http://www.openni.org/

    また、Microsoft自身もSDKを公開するとの事ですが、僕はMac使いなため、OpenNIを使う事に変わりないと思います。
    http://japanese.engadget.com/2011/02/21/kinect-sdk/

    他にもOpenFrameworksで使われるためのofxkinectというアドオンもあります。
    https://github.com/ofTheo/ofxKinect

    MicrosoftのKinectに関するページ:
    http://www.xbox.com/ja-JP/kinect

    先ほども書いたように、Mac使いである僕はC++(OpenFrameworks)+OpenNIという方法でKinectをいじり始めるのでした。
    続く。

  • 0 Comments
  • Filed under: Kinect, OpenNI