Ultraleap社 Hand Tracking用Windows版SDK Version5.7.2について
このエリアに目次が生成されます
1. はじめに
2021年9月に「Ultraleap社 Windows版SDKを用いたリープモーションコントローラを用いて手の関節の3次元座標を標準出力する方法」として、Ultraleap社のHand Tracking用Windwos版SDKのダウンロード・インストール・build方法・3次元座標の標準出力について、当社Webマガジンに掲載しました。
上記掲載時点では、Gemini(Version5世代のSDKの名称)としては、Version5.0.0が最新版であり、またプレビュー版としての扱いした。
2022年12月時点でWindows版正式版Geminiとして、Version5.7.2がリリースされており、またインストール手順や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ダウンロード
まずはWindows版Hand Tracking SDK 5.7.2のインストーラーをダウンロードが必要です。
ここでは、Hand Tracking SDK 5.7.2のダウンロード手順を説明します。
(1)Ultraleap社のWeb siteにアクセスし、「Products」にカーソルを合わせ、表示されるメニューの中から右端の「Gemini spftware」を選択します。

(2)ブラウザで下方向にスクロールし、「Sownload Gemini now」ボタンをクリックします。

(3)「DOWNLOAD GEMINI」ボタンをクリックします。

(4)ログイン画面が表示される場合は、アカウント登録メールアドレスおよびパスワードを入力後、「サインイン」ボタンをクリックします。

(5)Hand Tracking SDK 5.7.2のインストーラー「Ultraleap_Tracking_Installer_5.7.2+2022.09.15.exe」の保存先を選択し、「保存」ボタンをクリックして保存します。

4. SDKインストール
「3. Windows版SDKダウンロード」でダウンロードしたインストーラー「Ultraleap_Tracking_Installer_5.7.2+2022.09.15.exe」を用いてHand Tracking SDK 5.7.2をインストールします。
ここでは、Hand Tracking SDK 5.7.2のインストール手順を説明します。
(1)保存済みのインストーラー「Ultraleap_Tracking_Installer_5.7.2+2022.09.15.exe」をダブルクリックします。

(2)Ultraleap社のサイネージ用ツール「TouchFree」がインストール済みの場合、以下のメッセージが表示されるので、「はい」をクリックします。

(3)License Agreementウィンドウが表示されるので、内容を確認の上、「I accept the agreement」を選択した後、「Next」をクリックします。

(4)ソフトウェア改善のための情報収集に関するInformationウィンドウが表示されるので、内容を確認の上、「Next」をクリックします。

(5)インストール先のフォルダを設定するウィンドウが表示されるので、変更があればフォルダを変更し(変更不要であればdefaultのまま)、「Next」をクリックします。

(6)インストール確認ウィンドウが表示されるので、「Install」をクリックします。

(7)インストール中のウィンドウが表示されます。

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

(9)タスクバー上にHand Tracking SDK用のアイコンがあることを確認します。

(10)Ultraleap社のステレオカメラ(Leap Motion controller, Stereo IR 170, 3Diなど)をWindows PCに接続した後、(9)のアイコンを右クリックして「Open Control Panel」を選択します。

(11)Hand Tracking SDKのControl Panel(旧名称:Visualizer)が起動するので、Ultraleap社のステレオカメラ上に手をかざして、手が認識されることを確認します。

5. SDKサンプルプログラムのbuild
Hand Tracking SDKにはサンプルプログラムがついており、各自でbuildすることにより実行ファイルを生成することが可能です。
ここではサンプルプログラムをbuildする手順を説明します。なお、cmakeがすでに使用可能な状態かつVisual Studioがインストール済みとして説明しております。
(1)Windowsのエクスプローラーにて、「4. SDKインストール」の(5)で設定したHand Tacking SDKをインストールしたフォルダまで移動します。
※default設定のままであれば以下のフォルダです。
C:\Program Files\Ultraleap
(2)さらにその下の\LeapSDK\samplesまで移動します。
※default設定のままであれば以下のフォルダです。
C:\Program Files\Ultraleap\LeapSDK\samples
(3)(2)のフォルダ上に「build」というフォルダを作成します。
(4)(3)で作成した「build」フォルダを選択した状態で右クリックし、「PowerShell ウィンドウをここで開く」を選択します。

(5)以下のコマンドを実行してcmakeによるbuild環境構築→buildを行います。
(6)Windowsのエクスプローラーで以下のフォルダに移動します。
C:\build\Release\LeapSDK\leapc_example\Release
(7)(6)のフォルダ内にexeファイルが生成されているの確認します。

(8)Windows PCにUltraleap社のステレオカメラを接続した状態で、なんらかのexeファイルをダブルクリックして実行して動作確認を行ってください。
CallbackSample.exeを実行した場合の表示例を以下に示します。

6. 3次元座標の標準出力
手の関節の3次元座標を標準出力する方法については、Version5.0.0での記事として投稿済みです。詳細に関してはVersion5.0.0時の内容をご参照下さい。
念のため、こちらでもCallbackSample.cを用いて手の関節の3次元座標を標準出力する方法を記載いたします。
(1)Windowsのエクスプローラーにて、「4. SDKインストール」の(5)で設定したHand Tacking SDKをインストールしたフォルダまで移動します。
※default設定のままであれば以下のフォルダです。
C:\Program Files\Ultraleap
(2)さらにその下の\LeapSDK\samplesまで移動します。
※default設定のままであれば以下のフォルダです。
C:\Program Files\Ultraleap\LeapSDK\samples
(3)CallbackSample.cをテキストエディタ等で開きます。
(4)OnFrame()関数内の32行目から40行目までの記述を以下のように修正します。
◆修正前
| for(uint32_t h = 0; h < frame->nHands; h++){ LEAP_HAND* hand = &frame->pHands[h]; 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); } |
◆修正後
| for(uint32_t h = 0; h < frame->nHands; h++){ LEAP_HAND* hand = &frame->pHands[h]; 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); 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); printf(” palm :x=%8.3f, y=%8.3f, z=%8.3f\n”, hand->palm.position.x, hand->palm.position.y, hand->palm.position.z); for(int f = 0; f < 5; f++){ LEAP_DIGIT finger = hand->digits[f]; for(int b = 0; b < 4; b++){ 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); } } } |
(5)「5. SDKサンプルプログラムのbuild」に記載した手順にしたがって再度buildを実行します。最後の(8)の際に、CallbackSample.exeを実行します。修正後の表示例を以下に示します。

今回はUltraleap社のHand Tracking用Windows版SDK Version5.7.2についてご紹介しました。
本コラムに関するご質問やご要望等ございましたら、ページ下部のお問い合わせフォームより、お気軽にお問い合わせください。
この記事の監修者
コーンズテクノロジー編集部
コーンズテクノロジーでは先進的な製品・技術を日本産業界へ紹介する技術専門商社として、通信計測・自動車・防衛セキュリティ・電子機器装置・航空宇宙・産業機械といった技術分野のお役立ち情報を紹介しています。