引き続きArduino

ロボットをコントロールしようとしている。気を付けるべきことはUARTがしばしば失敗する。シリアルポートのFIFOバッファをDISABLEにする必要がありそう。それとプログラムによってはアップロードが巧く動かなさそう+3つめにArduino用の赤外線といって売られているものとボードの配線が同一でなかったことがわかった。これはかなり腰をいれてやらないと行けなさそうだ


KINECT->BVH->Poserへのpath(20140601)

KinectでのモーションキャプチャからBVHを吐かせて、最終的にposerに読み込ませて自分の好きなアバターで動かそうと思っていた。
参考にしたのは、このサイトだった。これで
うまくいきそうに思えたが、いかんせん2011年10月の記事でもうかなり古いし、加えてOpenNIもサイトをこの4月で閉じた。とりあえず今入手可能なドライバ/アプリケーションで表題に述べたことができるかどうか、試してみた。OSはWindows 7 64bit professional.

1.前準備

    これはリンクにはったサイトとまったく同様、Microsoft Visual c++ 2010 Express、最新のDirectX
    それからMicrosoft XNA Framework Redistributable 4.0とMicrosoft .NET Framework 4をインストールした。
    PC環境をテストモードにするという項目もあったので、一応やったが、これが原因でうまくいったのかどうかは定かではない

2.Microsoft Kinect SDK & OpenNI2
昔のサイトで述べられたOpenNI for Win32bit 1.3.2.1 & Sensor-Win -5.0.3.3の組み合わせでうまく動作しなかったので、
ここでは、OpenNI-Windows-x64-2.2.0.33をインストール。そしてMicrosoftの開発環境を利用すべく、KinectSDK-v1.8-Setupならびに
KinectDeveloperToolkit-v1.8.0-Setupをインストールした。これでKinectを接続すると、デバイスマネージャには、PrimeSenseの配下に、Kinect for Windows Audio Array Control, Kinect for Windows Camera そして Kinect for Windows Security Controlが現れるようになった。
ここまでうまく行くと、Program Files/OpenNI2/Samples/Bin/simpleViewer.exeが動いてぼんやり自分の姿が映る。

3.NiTE2のインストール
NiTEも64bitベースのNiTE-Windows-x64-2.2をダウンロードしてインストール。ここまでできると、Program Files/PrimeSense/NiTE2/Samples/Bin/UserViewer.exeをたたくと、キャリブレーションの後、自分の姿がトレースされることに気づく。ここで注意すべきはKinectが認識するためには、センサから2,3m離れることが大事だ。そうでないといつまでたってもキャリブレーションから進まない。

4.LiveAnimationのインストール
bvhを吐かせるために、LiveAnimationをインストールする。このサイトからダウンロード。数々のバージョンがあり、以前の記述だと
46以前のバージョンでないとPoserが正しく読み込まないとあったが、Poser2014 Proに関しては最新のLiveAnimationでも問題なかった(今回は108をインストールした)。

5.キャプチャ&BVH出力
LiveAnimationを立ち上げたのち、アバターを一つ選んで出現させる。このあと左側の”キネクト”を選びその中からMotionCaptureを選ぶ。自分の姿も横に出てくるので、然るべくKinectにモーションを認識させる。そうするとアバターが同期して動き始めるのでゆっくり体を動かしてモーションデータをサンプルする。画面下にFPS(Frames per Second)の値があり、デフォルトは64となっているが30ぐらいで十分だろう。より少ないとPoserでうまく動かないようだ。取得できたらエクスポート/BVHでファイルに出力する。つま先をつけるなどのオプションは選択しない(poserで読めなくなる)

6.Poserからの読み込み
Poserを立ち上げ、Andy君を表示させ、これに先ほど出力したBVHを読み込ませる。うまくゆけばAndy君は先ほどの自分の動きと似通った動作をするはずだ。

以上です。Good Luck.