Hatena::ブログ(Diary)

Раздан-3の備忘録

このダイアリーは、「razdan3の備忘録(改)」へ引っ越しました。

2012-07-13

[][][] KinectOSCの導入

Pharoを使っていて、Kinectを持っていて、それを繋げようなんて考える人がいるとは思わないんだけど、とりあえず作ったので公開してみた。

http://ss3.gemstone.com/ss/KinectOSC.html

この記事ではその導入方法について説明する。

KinectOSCは、Kinectから情報OSC(Open Sound Control)プロトコルを通じて得て、それをMorphicで利用できるようにするためのPharoのクラスである。サンプルとして簡単なモーフも付けているが、いろんなアプリケーションで活用することを目指している。

KinectOSCは、KinectとPharo以外にもいくつかのツールやパッケージを利用して動作するようになっており、その構成は下の通りである

Kinect - OpenNI - OSCeleton = (OSCプロトコル) = Pharo - OSCClient - KinectOSC

以下、順に導入方法を説明していく。

OpenNI

KinectPCMacで利用するためのドライバなどである。これがないとOSCeletonが動作しない。

インストール方法適当にググってください。

OSCeleton

OpenNIを利用して、Kinectから得た情報OSC(Open Sound Control)プロトコルネットワークに送信するツール。

ソースGithubに公開されている。

https://github.com/Sensebloom/OSCeleton/

WindowsMacOSX用のバイナリが以下のページからダウンロードできるので対応する方をダウンロードする。

https://github.com/Sensebloom/OSCeleton/downloads

ダウンロードしたら適当フォルダに展開しておく。

Pharo

Pharo使いであれば特に説明は不要でしょう。KinectOSCは1.3か1.4で動作確認しているのでどちらかを入手。

http://www.pharo-project.org

ダウンロードして展開したら起動する。

OSCClient

OSCClientはOSCeletonが送信したOSCメッセージをPharoに取り込むためのクラス群。

KinectOSCではOSCの受信のためにOSCClientを使っているため、以下のようにPharoにインストールしておく。

  • Monticello Browserを開き、+RepositoryでHTTPを選び、以下を入力コピペ)してOKを押す。
MCHttpRepository
    location: 'http://www.squeaksource.com/OSCClient’
    user: ''
    password: ''

KinectOSC

いよいよKinectOSCをPharoにインストールする。

  • Monticello Browserの+RepositoryでHTTPを選び、以下を入力してOKを押す。
MCHttpRepository
    location: 'http://ss3.gemstone.com/ss/KinectOSC’
    user: ''
    password: ''
  • 右側のペインで上記のリポジトリを選択してOpenを押す。
  • 左側のペインでKinectOSCを選び、右側のペインで一番上のKinectOSC.mczを選んで、Loadを押す。
  • System BrowserでKinectOSC-Testsクラスカテゴリを選択し、右ボタンでRun Testsを選び、テスト成功することを確認する。
  • とりあえずPharoをSave & Quitする。

テストモーフの実行

KinectOSCでは動作確認用に簡単なモーフを実装している。

以下のようにして動作を確認する。

  1. OSCeletonを実行する。Windows場合はOSCeleton.exeダブルクリックして実行すれば良い。
  2. Initializing...の後、Initialized Kinect, looking for users...が表示されればOK。そうでなければKinect接続かOpenNIのインストールに問題がある(多分)。
  3. Pharoを起動して、Workspaceに「KOSampleMorph new openInWorld.」という式を入力し、選択後にDo itする。
  4. 赤いモーフが現れるが、これはユーザー認識されていない状態。Kinectの前に立って認識されれば緑色に変化する。
  5. バルタン星人のポーズを取って骨格が認識されると、モーフに関節が表示され、動きに応じて変化する(はず)。

その他

OSCCeletonは引数に「-a 192.168.254.99」のようにIPアドレスを指定すれば他のPCデータを送ることもできるので、Kinect接続するPCとPharoを動作させるPCを分けて使用することができる。結構便利。