2014年6月23日月曜日

すごいUnity in 広島 #6 に参加しました(UnityFreeでKinectを使ってみました)

2014/6/23 すごいUnity in 広島 #6(もくもく会)に参加して来ましたのでその報告です。

すごいUnity in 広島
とは、広島で開かれているUnityの小規模の勉強会なのですが
Kinectが用意されていると聞いて飛び込んできました。

Kinectは最近ロボコンで良く目にするようになってきて
知能ロボットコンテストでも、それを使ってオブジェクトを回収するロボットが居て、一度手を出してみたいと思ってました。

もし、それらのようにKinectでオブジェクトを検知できるようになれば、格段に制御能力が上がることでしょう。

さらにこの前、UnityではCOMPortを開いてシリアル通信ができると知り

マイコン(ロボット)

Bluetooth

Unity(windows or Android or etc...)

Kinect

の図を思いつきました。

UnityではC#を使ってOpenCVなんかも普通に使えたりするし、処理系には困らないでしょう。
また、安価なステートマシンのプラグインもあるので、全体の制御系が容易に可視化出来るのではないかと目論んでます。
(ゲームエンジンとしても使ってますが、ロボット制御の良いソフトウェアにもなるのではないかとも考えてます)

以上、参加した背景です。


今回はKinectがUnityFreeで動作できるかどうかを確認するとこまでで、いっぱいいいっぱいでした。

色々あたふたした結果
KINECT SDKを使う その1・環境設定編
Kinect Wrapper Package for Unity3D をつかってみる
の2つのサイトを参考にして、UnityFreeでKinectが使えることを確認しました。

上記サイトにも書かれていますが、導入のおさらい。

1, Kinect for Windows の公式サイトからSDKをDL&インストール。(ついでにToolKitも入れておくと良い)
2, Microsoft Kinect - Microsoft SDK - Unity3D から Wrapper Package for Unity3D を DL。
3, Unityを開いて、Wrapper Package for Unity3Dをインポートする
4, サンプルシーンを開いて、Kinectを繋いだ状態でシーンを再生

これだけでOKです。
(なお、DLするファイルは公式のものをつかうこと。どこか別のところから古いファイルを持ってきてしまったせいで1時間無駄にしました…)

実際にやってみた動画が以下になります。
(カラーマップも取得できますが、顔が写ってしまうので表示してません)


全身が写っていないので、足が残念なのは仕方ないでしょう
けれども、DepthマップとColorマップは取得できているので、この画像を用いれば他のKinect処理をする人達と同様にKinectを使えるのではないでしょうか。

次の課題は人ではなく、オブジェクト(例えば本など)の位置を取得することでしょうか。
また、上手くいったら報告します。


0 件のコメント:

コメントを投稿