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マガジンお問い合わせフォームより、お気軽にお問い合わせください。
前のページ