[[devel]] * ダウンロードとか [#qfebb947] - Leapmotionのサイトに行ってDEVSから最新のSDKを落としてくる - インストーラが付いてるのでインストールする * チェックアウトとか [#p9324ee3] ''KinectSDKも入れてあるのでLibraries全体をチェックアウトしちゃってもいいかも'' + 以下の構造になるようにLeapSDKフォルダを作る Projects +- Springhead2 +- Experiments +- Libraries +- LeapSDK + LeapSDKフォルダに以下のアドレスからSVNチェックアウトする svn+ssh://springhead.info/home/svn/lab/Libraries/trunk/LeapSDK + Leap.dllにパスを通す -- Libraries\LeapSDK\lib\x64 のフルパスを環境変数PATHに追加する * Leapmotionの有効化 [#j90728d1] - 標準ではLeapmotion関連は無効化してあります。 -- Springhead2/src/HumanInterface/HILeap.h 13行目の以下のコメントアウトを外してください。 // #define USE_LEAP -- うっかりコメントアウトしたままコミットしないように注意! * サンプルプログラム [#f52e7566] - Springhead2\src\Samples\HumanInterface\LeapmotionBoxStack - 注)LeapMotion用のプロジェクト設定はBoxStack10.slnにしかしてないので他のバージョン使う場合はプロジェクト設定してください。 追加のライブラリディレクトリに ../../../../../Libraries/LeapSDK/lib/x64; を入れるだけでいいはず * UDP対応の道のり [#v05d1054] - C++でUDPを受取るクラスはくまろぼのプログラムを参考にするとよいです -- svn+ssh://springhead.info/home/svn/lab/Experiments/trunk/StuffedRobot/PCProgram/PyKumarobo -- UDPConnection.h と socket.h がそれ -- 送信はしないのでUDPConnection.hのProtocolPCクラスの受信関連だけ使えばよいとおもう - SpringheadでのLeapmotion関連ソースは以下の通り -- include/HumanInterface/SprHILeap.h -- src/HumanInterface/HILeap.h -- src/HumanInterface/HILeap.cpp - 本当はLeap::Controller()のAPIを抽象化するDRLeapクラスを作って、DRLeapUSBとDRLeapUDPを用意してHILeapからはDRLeapUSBかDRLeapUDPのどちらを使うか選べる仕組みにするのがベスト。 -- なのですが、とりあえずHILeapUDPという別クラスを作るのでもよいです(HILeapUDPIf, HILeapUDPDescもつくらないといけないので忘れずに。ファイルは上記3ファイルの中で良いでしょう)。 * Pythonのサンプル [#m9bf9a28] こんなんでうごく import sys sys.path.append('/home/mitake/LeapDeveloperKit_2.0.1+15831_linux/LeapSDK/lib') sys.path.append('/home/mitake/LeapDeveloperKit_2.0.1+15831_linux/LeapSDK/lib/x64') import Leap controller = Leap.Controller() while True: frame = controller.frame() hand_cnt = 0 for hand in frame.hands: hand_cnt+=1 finger_cnt = 0 for finger in hand.fingers: finger_cnt+=1 for bone_idx in range(0,4): bone = finger.bone(bone_idx) print(hand_cnt, finger_cnt, bone_idx, bone.center.x, bone.center.y, bone.center.z) * SprBlenderでのサンプルの実行 [#rf1b16f8] - Experiments/KogumaBlender/koguma_leap3_delaysel.blend を実行する。