2010年12月16日木曜日

自作マルチタッチシステムを作ってみた

いまさら感がありますが、「5分で作れるマルチタッチパネルシステム」を参考に
マルチタッチシステムを作ってみました。
上記のシステムは「Touchlib」を使っていますが、
今回は「Community Core Vision v1.4 (CCV)」を使って、Flashと連携させました。
少し前まで「tbata」という名前だったんですが、いつの間にか「CCV」に変わってますね。


この記事を書いた時点でのCCV最新版は1.3ですが、
プロジェクトページではv1.4βが配布されています。
v1.4βではReacTable等で使われるFiducialsマーカーを認識できるようになっています。


作る際に用意したものは、
-----------------------------------
・スチレンボードで作ったテーブル
・トレーシングペーパーで作ったテーブル天板
・赤外線カメラ
・赤外線ライト
-----------------------------------

赤外線カメラはフレームレートの高いものを用意すると認識精度が上がります。
100fps出るモーションキャプチャ用のOptiTrack FLEX:V100R2カメラを用意できるのが理想ですが、
PlayStationEyeでも十分精度が高いです。
実はPSeye値段に似つかわしくない程ハイスペックで、なんと640x480の解像度で75fps出ます。
数万円してもおかしくないのに3000円でお釣りがきちゃいます。
このコストパフォーマンスの高さからなのか画像認識まわりではPSeyeを使うのが常套手段になっていますねー。

今なら、PSeyeとMOVEコントローラがセットになった「PlayStationMOVE スターターパック」を
買うのが賢いかも。
MOVEコントローラみたいな赤外線ペンライトがあるとキャリブレーションがすごく楽です。


PSeyeの赤外線カメラ化はここここを参考にしました。
可視光をカットするIRフィルターは富士フイルムの「IR 86」を使いました。
ただ、このフィルターだと蛍光管の光も少し拾ってしまうので、
どなたか最適なIRフィルターがあれば教えて下さい。


PSeyeのドライバはCode Laboratoriesの「CL Eye Platform DriverCL Eye Platform Driver」を使います。
このドライバにはノーマルモードとアドバンスモードがあって、
「640x480/75fps」で使用するにはまずアドバンスモードにする必要があります。

アドバンスモードにするには、下のコードをメモ帳にコピペして、「cleye.config」として保存します。

    
    

このファイルを「Community Core Vision.exe」と同じディレクトリに配置すると「640x480/75fps」が選べるようになります。


立ち上げる度に設定するのは面倒なので、
CCVの「data/config.xml」の一部を下のように書き換えて、自動的で「640x480/75fps」にします。


        1
        0
        640
        480
        75


これで運用時に楽になります。


赤外線ライトはなんでもいいのですが、ケイヨーの「K-Light」あたりがオススメです。

あとは、CCVを起動してFlash XMLにチェックを入れておくとCCV-Flash間でソケット通信してくれます。


0 件のコメント:

コメントを投稿