WEBマガジン詳細

Webマガジン Vol.55- Mar., 2022

Column: Ultraleap社 Hand Tracking用Windows版SDK Version5.4.5について

目次

1. はじめに
2. 旧SDKのアンインストール
3. Windows版SDKダウンロード
4. SDKインストール
5. SDKサンプルプログラムのbuild
6. 3次元座標の標準出力

1. はじめに

2021年9月に「Column: Ultraleap社 Windows版SDKを用いたリープモーションコントローラを用いて手の関節の3次元座標を標準出力する方法」として、Ultraleap社のHand Tracking用Windwos版SDKのダウンロード・インストール・build方法・3次元座標の標準出力について、当社Webマガジンに掲載しました。

上記掲載時点では、Gemini(Version5世代のSDKの名称)としては、Version5.0.0が最新版であり、またプレビュー版としての扱いした。

2022年3月にWindows版正式版Geminiとして、Version5.4.5がリリースされており、またインストール手順やbuild方法に関して変更が入っているため、今回改めて各手順を掲載いたします。

なお、Ultraleap社のユーザーアカウント作成済みとして説明いたします。またcmake・Visual Studioなどの必要なツールに関してもインストール済みとして説明いたします。

2. 旧SDKのアンインストール

Windows上に旧VersionのHnad Tracking SDKがインストールされている場合、アンインストールした上で、最新版のSDKをインストールする必要があります。

ここでは、Hand Tracking SDKのアンインストール方法を説明します。

(1)スタートメニュー→「設定」をクリックします。

(2)「アプリ」をクリックします。

(3)「アプリと機能」をクリックします。

(4)「このリストを検索」の箇所をクリックします。

(5)「ultraleap」と入力し、「Ultraleap Tracking」と表示されることを確認します。
※Orion(Version4.x.xの名称)がインストールされている場合は、「leap」と入力し、「Leap Motion SDK」と表示されることを確認します。

(6)「Ultraleap Tracking」(または「Leap Motion SDK」)をクリックした後、「アンインストール」をクリックします。

(7)再度「アンインストール」をクリックします。

(8)以下のウィンドウが表示されるので、「アンインストール」をクリックします。

(9)アンインストール終了後、「閉じる」をクリックします。

(10)(6)のウィンドウにて、旧SDKが消えていることを確認します。

(11)Windowsを再起動します。

 

前のページ

目次

3. Windows版SDKダウンロード

2022年3月時点のUltraleap社のWebサイトの内容に合わせて、Windows版SDKのダウンロード手順を説明します。

(1)Ultraleap社のGemini用サイトにアクセスします。

(2)左上の「Tracking」→右側の「Gemini」の順でクリックします。

(2)下にスクロールし、「Download Gemini now」ボタンをクリックします。

(3)左側のWindowsマーク下の「DOWNLOAD GEMINI」をクリックします。

(4)以下のログイン画面が表示された場合は、Ultraleap社のユーザーアカウントでログインします。

(5)Windwos版SDK Version5.4.5用のインストーラ(Ultraleap_Tracking_Installer_5.4.5_win64.exe)の保存ウィンドウが表示されるので、任意のフォルダーに保存します。

 

4. SDKインストール

ダウンロードしたWindows版SDKのインストーラーを用いて、SDKをインストールします。インストール手順は以下の通りです。

(1)Windowsのエクスプローラーにてインストーラー(Ultraleap_Tracking_Installer_5.4.5_win64.exe)をダブルクリックして起動します。

(2)以下のウィンドウが表示されるので、「次へ」をクリックします。

(3)ライセンス契約書が表示されるので、内容を確認の上、「同意する」をクリックします。

(4)以下のウィンドウが表示されるので、「次へ」をクリックします。

(5)インストール先フォルダの設定ウィンドウが表示されますが、変更せずに(default設定のまま)「次へ」をクリックします。
※default設定のままでないとcmake時にbuild環境の構築ができないため。

(6)スタートメニューフォルダの設定ウィンドウが表示されるので、「次へ」をクリックします。

(7)インストールオプションの設定ウィンドウが表示されるので、「Ultraleap Tracking SDK」にチェックを入れ、「インストール」をクリックします。

(8)SDKのインストールが開始されます。

(9)SDKのインストール終了後、下記ウィンドウが表示されます。「完了」をクリックして終了します。

(10)以下、SDKインストール後の動作確認を行います。LMCまたはSIR170をカメラが上を向くように配置(卓上に置くなど)した後、Windows PCにUSB接続します。なお、USBハブを介さずに直接USBコネクタに接続して下さい。またUSB3.0があれば、USB3.0側に接続して下さい。

(11)接続完了後、タスクバー内にあるUltraleap用「Control Panel」のアイコンが緑色になっていることを確認します。

(12)Ultraleap用「Control Panel」のアイコンを右クリックし、「Open Visualizer」を選択してVisualizerを起動します。

(13)LMCまたはSIR170のカメラ上に手をかざし、Visualizerで手を認識していることを確認します。Visualizerはウィンドウ右上の「X」をクリックすることで終了できます。

5. SDKサンプルプログラムのbuild

Windows版SDK、cmake、Visual Studioを用いて、以下の手順でSDKサンプルプラグラムのbuildを行います。

(1)Windowsのエクスプローラーにて、C:\Program Files\Ultraleap\LeapSDK\samplesに移動します。

(2)(1)のフォルダー上で、「build」という名前のフォルダーを作成します(エクスプローラーにて右クリック→新規作成→フォルダー→フォルダー名をbuildにします)。

(3)Windowsのエクスプローラーにて、(2)で作成したbuildフォルダーを選択後にShiftキーを押しながら右クリックし、「PowerShellウィンドウをここで開く」を選択し、実行します。

(4)PowerShellウィンドウが開くので、そのウィンドウにて以下の順番でコマンドを入力し、cmakeを実行します。
※C:\Program Files\Ultraleap\LeapSDK\README.mdの「## Building Samples:」部の「3. Configure & Generate CMake with the generator of your choice
」に記載があるコマンドの内容です。

$env:BUILD_TYPE = ‘Release’

※buildするタイプをReleaseとして設定。

$env:REPOS_BUILD_ROOT = ‘C:/build’

※上記はbuild先のフォルダなので、任意に設定可能。

$env:REPOS_INSTALL_ROOT = ‘C:/Program Files’

※上記は設定変更不可。

cmake -j -S “C:/Program Files/Ultraleap/LeapSDK/samples” -B $env:REPOS_BUILD_ROOT/$env:BUILD_TYPE/LeapSDK/leapc_example `
-DCMAKE_INSTALL_PREFIX=”$env:REPOS_INSTALL_ROOT/leapc_example” `
-DCMAKE_BUILD_TYPE=”$env:BUILD_TYPE”

※上記でbuild環境構築。

cmake –build $env:REPOS_BUILD_ROOT/$env:BUILD_TYPE/LeapSDK/leapc_example -j –config $env:BUILD_TYPE

※上記でbuild実施。

(5)PowerShellウィンドウで以下のコマンドを実行し、PowerShellを終了します。

exit

(6)Windowsエクスプローラーにて、((4)のコマンドのままで実施したのであれば)C:\build\Release\LeapSDK\leapc_example\Releaseファルダーに移動し、以下のようにサンプルプログラムの実行ファイル(exeファイル)が生成できていることを確認します。

(7)LMCまたはSIR170を接続し、いずれかのサンプルプログラムのexeファイルをダブルクリックして、正常動作することを確認します。以下、CallbackSample.exe実行時の表示例を示します。

※以前のSDKにはGLUT(The OpenGL Utility Toolkit)を使用したサンプルプログラムが含まれていましたが、正式版GeminiのSDKからは削除されています。

6. 3次元座標の標準出力

最後にSDKサンプルプログラムを用いた手の関節の3次元座標を標準出力する方法を説明します。

C:\Program Files\Ultraleap\LeapSDK\samples内にある、CallbackSample.cを基にしています。

34行目~39行目に下記標準出力の記述があります。左・右および手の中点の位置を出力しています。

    printf(”    Hand id %i is a %s hand with position (%f, %f, %f).\n”,
                   hand->id,
                   (hand->type == eLeapHandType_Left ? “left” : “right”),
                   hand->palm.position.x,
                   hand->palm.position.y,
                   hand->palm.position.z);

 

上記を肘・手首・指の各関節をxyz座標として標準出力するように変更したソースコードを以下に記載します。

    printf(”    Hand id %i is a %s.\n”, hand->id, (hand->type == eLeapHandType_Left ? “left” : “right”)); //★左・右の出力
    printf(”    elbow:x=%8.3f, y=%8.3f, z=%8.3f\n”, hand->arm.prev_joint.x, hand->arm.prev_joint.y, hand->arm.prev_joint.z); //★肘の3次元座標出力
    printf(”    wrist:x=%8.3f, y=%8.3f, z=%8.3f\n”, hand->arm.next_joint.x, hand->arm.next_joint.y, hand->arm.next_joint.z); //★手首の3次元座標出力
    printf(”    palm :x=%8.3f, y=%8.3f, z=%8.3f\n”, hand->palm.position.x, hand->palm.position.y, hand->palm.position.z); //★手の中心の3次元座標出力
    for(int f = 0; f < 5; f++){  //★0:親指、1:人差し指、2:中指、…
        LEAP_DIGIT finger = hand->digits[f];
        for(int b = 0; b < 4; b++){ //★0→3で手首側から指先の関節
            LEAP_BONE bone = finger.bones[b];
            printf(”      f[%d]_b[%d]:x=%8.3f, y=%8.3f, z=%8.3f\n”, f, b, bone.next_joint.x, bone.next_joint.y, bone.next_joint.z); //★関節の3次元座標出力
        }
    }

 

以上の3次元座標の標準出力の修正を加えたうえで、再度buildを実行してください。

修正後のCallbackSample.exeの実行結果を以下に示します。標準出力に各3次元座標が出力されているのが確認できます。

 

以上、Hand Tracking用Windows版SDK Version5.4.5を用いた各種手順に関してご説明しました。

本コラムに関するご質問やご要望等ございましたら、ページ下部のWEBマガジンお問い合わせフォームより、お気軽にお問い合わせください。

ページトップへ戻る