2013年1月3日木曜日

Kinect で ROBO XERO 制御

 昨日は仕事だったんですが、幸い今日は一日ゆっくりできるので、早速朝から、 Kinect for Windows でポーズ認識して ROBO XEROを動かすっていうのをやってみました。


と、いっても、各関節の角度を検出して同じポーズをさせているわけではなく、特定のポーズを認識したら、ROBO XERO側にプリセットしておいた同じポーズをさせているだけです。いずれは、各関節の角度検出してマスタ・スレーブで同じポーズを取らせる・・・みたいなことをやってみたいんですが、とりあえず、お勉強がてら、簡単な方法をとってみました。
 Kinect側のポーズ認識からROBO XEROが動作開始するまでに間が空くのは、ROBO XEROへのコマンド送信をわざと500ms間隔に制限しているためです。実は、自分が作ったポーズ認識の処理は出来が悪く、認識状態がパラパラと変わってしまうため、そのたびにコマンドを送ってしまうとROBO XEROくんが暴れてしまうからです。
 今後、ポーズ認識の方法、関節単位での角度検出してROBO XEROに送る場合のコマンド体系(現状、ROBO XEROが持っている6バイト、ヘッダとチェックサムあわせて8バイトのコマンドを送ることで、ROBO XERO の V120~125変数へ渡す方法を使っているので、)を考えないと・・・。