スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

両腕でマウスを操作してみた-Kinect-

先日言った両腕でマウスを操作するプログラムの動画を作りました。

両腕でマウスを操作するプログラム作った【Kinect】
http://www.nicovideo.jp/watch/sm13442841

テストが迫っているので今日の記事はこの辺でノシ



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

スポンサーサイト

Kinectつづき

さてさて前回に引き続いてKinectで遊んでいますよ~

一応卒研の一環なので”遊ぶ”という表現はちょっとアレですが、もはや私にとって卒研と遊びは同等ですw

Kinectから得た情報を元に人体をトラッキングし、GLUTで骨の絵を描くプログラムがOpenNIにはもともと入っているのですがそれをいじっています。



左のウィンドウがKinectから得た深度情報、中央がトラッキングした人間の骨、右がコントローラーです。
今回は中央と右のものを作りました。

骨の描画はもともとできるようなプログラムが用意されているのでわりとすんなりいきましたが。
コントローラが結構大変でしたw

始めはGLUTとフォームアプリを合体させれば簡単にボタンとか作れると思ったのですが、それが無理で・・・
しかたなくGLUTのみでボタンを作りましたw

四角形と枠の線を書いて、テキストの位置も少し調整しています。
みためはちゃっちぃかもしれませんが、オンマウスで光りますし、クリックすればちゃんとイベントが発生します。
引数に位置とIDとテキストを指定してボタンの作成が一撃でできる関数を作りました。

で、動作としては
・CsvExportで全関節の位置情報をcsvファイルに出力
・GetDegで指定した関節の角度を取得
・Muscleで右腕に連動して人工筋肉が伸縮
・BodyMouseで全身を使ったマウス操作

となっています。

というかBodyMouse以外は今日作ったので大分ウンコみたいなプログラムになっていて機能もいまいちです。
とりあえず明日からテスト週間でその後は真面目に卒研をやらねばならないので、kinectで遊べるのもここまでかもしれません(´∩ω∩`)



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

Kinectで全身マウス

Kinectで全身を使ってマウスカーソルを動かせるようにしました。
日ごろパソコンばかりやっていて運動不足の人にお勧めかもwww

右手でカーソル移動、左手パンチでクリックです。
右手の移動量が大きいので全身を使わないとカーソル移動ができないという意味で全身ですw



OpenNIのサンプルNiUserTrackerを改変しました。
以下の関数を記述して実行していますっ

void BodyMouse(XnUserID player, XnSkeletonJoint eJoint1, XnSkeletonJoint eJoint2, XnSkeletonJoint eJoint3)
{
    if (!g_UserGenerator.GetSkeletonCap().IsTracking(player))
    {
        printf("not tracked!\n");
        return;
    }

    XnSkeletonJointPosition joint1,joint2,joint3;
    g_UserGenerator.GetSkeletonCap().GetSkeletonJointPosition(player, eJoint1, joint1);
    g_UserGenerator.GetSkeletonCap().GetSkeletonJointPosition(player, eJoint2, joint2);
    g_UserGenerator.GetSkeletonCap().GetSkeletonJointPosition(player, eJoint3, joint3);
    
    /*if (joint1.fConfidence < 0.5 || joint2.fConfidence < 0.5 || joint3.fConfidence < 0.5)
    {
        return;

    }*/
    XnPoint3D pt[3];
    pt[0] = joint1.position;
    pt[1] = joint2.position;
    pt[2] = joint3.position;
    g_DepthGenerator.ConvertRealWorldToProjective(3, pt, pt);
    printf("%.3f\r",pt[1].Z-pt[2].Z);
    SetCursorPos((int)pt[0].X*2,(int)pt[0].Y*2);
    if(pt[1].Z-pt[2].Z>400){
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    }else{
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    }
}

Kinect楽しい^^x

この動画もそのうちうpしようと思っています。

とりあえず首、手首、足首、指以外の全身の間接位置を取得できるようになったので、間接角を算出してロボットのサーボに流しこめば
【V-Sido】Kinect+カメラでロボット用コクピットをつくってみた
http://www.nicovideo.jp/watch/sm13326942
みたいなことも簡単にできると思います。



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

kinectきた!!

前回卒研でkinectを使うと書きましたが、ついにkinectがきたので遊んでみました^^x

導入はtotakke website>OpenNI: WindowsでKinectを使うで行いました。
・kinectドライバ
・OpenNI
・NITE
をインストールして研究室のWindows XP proと自分のPCのWindows7の両方で問題なく動作しましたよ^^x

サンプルプログラムを動かすとこんな感じで人体骨格をトラッキングしてくれます。






で、実は私がMMD杯で使っているMMDというソフトはこのkinectに対応していましてw
3Dのモデルにリアルタイムに自分の動作を反映できます。
そこで私も遊んでみました。

kinect+MMDで遊んでみたよ(ニコニコ動画)

とまあかなり忠実に動いてくれてとても面白いです。

動画サイトなんか見るとこれであそんでいる方が結構大勢います。
モーションキャプチャは昔からやってみたいと思っていましたが、まさかこんなに手軽にできるとは思いませんでしたよwww

私の場合はkinectでロボットを動かすことを目的とするので、とりあえずこんな感じで

【V-Sido】Kinect+カメラでロボット用コクピットをつくってみた(ニコニコ動画)


姿勢の取得ができるようにしてみたいと思っています^^x




にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

色々

以前書いたと思いますが、私の卒研では人工筋肉を使っています。
卒研の核には触れることはできないのですが、人工筋肉の紹介程度ならいいかな~と思って動画を作ってみました。

人工筋肉!!

ただ動いてるだけのつまらない動画ですw
空気圧の場合はポンプとか電空比例弁とか非常に大掛かりになってしまいますが、電気の場合は電池1本で電流を流すだけでおkなんです。
いやぁ素晴らしい~

それと卒研であのKinectを購入することになりました!!
あのCMでやってる体がまるごとコントローラになるやつですっ
ちょうど面白そうだなぁ遊んでみたいなぁと思っていたところだったのでw
凄いラッキーですwww

Kinectは間接があるなら手でも体でもモーションキャプチャーができるそうです。
私の研究ではいままでARtoolkitを使ってきましたが、その代わりになるとのこと。
どれくらいの測定精度がでるかは知りませんが、もし使えるようだったら大学に行っても個人的に買ってロボット動かしたりするのに遊んでみたいと思います。

ああ、阪大の細田研の研究にも使えますね。あそこは人間のロコモーションを研究してるわけですしw
とにかく面白そうです^^x

それとそれと後輩に冬コミのお土産をもらいました。
よくみるとComic martket 79と書いてあります。
使い道に困りますねwでも可愛いので使ってあげたいです^^x





にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

プロフィール

回路師

Author:回路師
趣味がロボットと動画製作です。
便利な機械やあほなマシンの動画を投稿しています.

最新記事
最新コメント
カテゴリ
電子工作キット








月別アーカイブ
書籍






Twitter
リンク
RSSリンクの表示
ソーシャル

検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。