[Kinect+C#]Microsoft Kinect SDK beta2のインストールに失敗した話

MicrosoftからKinect SDKのbeta2がリリースされたので、インストールしようとしたら失敗しました。

起こったのは、インストール途中でサービスを開始できないというトラブル。KinectManageというサービスらしいのですが・・・

解決策としては、installのボタンではなく、advance(だったかな?)というボタンの方に進むこと。理由は分からない。

[Kinect+C#]まずはRuntimeより始めよ!?(カメラの首振り)

早速、プログラミングを。身体の動きを認識させて…と思ったのですが、画像を出す前にカメラの位置を調整するためのツールが欲しくて、まずは首振りをするためのプログラミングからです。

■新しいプロジェクトを作成して、コントロールを配置するまで

  1. いつものようにWindowsアプリケーションで新しいプロジェクトを作成
  2. Kinectのための参照を追加。
    「.NET」タブを選んで、「Microsoft.Research.Kinect」を選択
  3. フォームにボタンを2個追加。UPボタンとDOWNボタン。

■コーディング

  1. Form1のフィールドに、Runtimeのインスタンスを定義
            private Runtime nui;
  2. Form1のLoadイベントとFormClosedイベントを追加
            private void Form1_Load(object sender, EventArgs e)
            {
                nui = new Runtime();
                try
                {
                    nui.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking | RuntimeOptions.UseColor);
                }
                catch (InvalidOperationException)
                {
                    MessageBox.Show("Runtime initialization failed. Please make sure Kinect device is plugged in.");
                    return;
                }
            }

            private void Form1_FormClosed(object sender, FormClosedEventArgs e)
            {
                nui.Uninitialize();
                Environment.Exit(0);
            }
  3. button1(UP)とbutton2(DOWN)のClickedイベントを追加
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    Camera camera = nui.NuiCamera;
                    int nowAngle = camera.ElevationAngle;
                    int nextAngle = Math.Min(Camera.ElevationMaximum, nowAngle + 4);
                    camera.ElevationAngle = nextAngle;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

            private void button2_Click(object sender, EventArgs e)
            {
                try
                {
                    Camera camera = nui.NuiCamera;
                    int nowAngle = camera.ElevationAngle;
                    int nextAngle = Math.Max(Camera.ElevationMinimum, nowAngle - 4);
                    camera.ElevationAngle = nextAngle;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

■試してみましょう&感想

  • ボタンに合わせて、Kinectセンサーが上下に首を振ります。
  • 首振りの角度は、CameraクラスのElevationAngleプロパティで設定しますが、最初Cameraインスタンスの取得方法が分からず悩みました。まず、Runtimeインスタンスを生成して、NuiCameraプロパティから取得できましたが。

では、また。

[Kinect+C#]はじめの話

Kinect for Windows SDK betaとC#を使って、Kinectセンサーで遊んでみようかと。
で、記録のために、セットアップから。

■用意したもの

  • Windows7 Home Premium (32bit) の入ったノートPC
  • Visual Studio 2010 Professional Edition
  • Kinectセンサー(単体・・・USB電源ケーブル付!)

■Kinect for Windows SDK betaのインストール

  1. SDKをダウンロードする
    http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx
    ファイル名  KinectSDK32.msi (32bitOSの場合)
  2. ダウンロードしたファイルを実行 → 指示の通りに進める → 終わり

■Kinectセンサーを接続する

  1. KinectセンサーのAUXケーブルにUSB電源ケーブルを付ける。(最初から付いていると思う)
  2. AC電源をコンセントに挿す
  3. USBケーブルをPCに接続する → 自動的にドライバがインストールされて、認識される(デバイスマネージャで確認できます)

■サンプルを試してみる

  1. スタートボタンの「すべてのプログラム」から、「Microsoft Kinect for Windows SDK BETA」に進み、「Sample Skeletal Viewer」を実行する
  2. Kinectセンサーがきちんと認識されていれば、ヒトの骨格が表示されます!

プログラミングで遊ぶのはまた明日。

2019年10月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ