Download - Tmcn Leap Motion
あなたが知らないLeap Motion
2014/04/21
Natural Software 中村薫
Tokyo MotionControl Network tech-cafe Vol.01
自己紹介
中村薫フリーランスで主にDepthセンサー系の仕事をしています
アプリケーション開発
講演、ハンズオンセミナー
執筆など
Microsoft MVP for Kienct for Windows
Tokyo MotionControl Network
https://www.facebook.com/TokyoMotioncontrolNetwork
http://www.buildinsider.net/small/leapmotioncs
http://www.buildinsider.net/small/leapmotioncpp
アジェンダ
•Leap Motion Overview
•Leap Motion SDK
•Deep Leap Motion
Leap Motion Overview
Leap Motion とは
• Leap Motion社が販売しているデバイス
•手や指の動きを認識する
Leap Motion とは
• 2012年5月22日 Pre-Oder開始
• 2013年7月一般発売
Leap Motionの認識範囲
https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Overview.html
Leap Motion SDK
Hand and Finger Tracking Gesture
http://www.buildinsider.net/small/leapmotionfirstimp/01
Touch
Airspace
内蔵されたLeap Motion
http://gizmodo.com/heres-the-first-laptop-with-leap-motion-built-right-in-1346551607
Leap Motion + LEGO EV3
https://www.facebook.com/photo.php?v=676173909095336
Magic Table
https://www.behance.net/gallery/Magic-Table-Digital-action-painting/12491753
空中ディスプレイ
Leap Motion SDK
Leap Motion SDK
Hand and Finger Tracking Gesture
http://www.buildinsider.net/small/leapmotionfirstimp/01
Touch
サポートするプログラム言語
• C++
• Objective-C
• C#
• Java
• Python
• JavaScript
• Other Languages
https://developer.leapmotion.com/documentation/GetStarted/Leap_Architecture.html
サポートするOS
• OS X 10.6 以降
• Windows 7 以降
• Linux(α版)
サポートする環境
• Windows デスクトップ
• Windows ストアアプリ(非公式)
• Mac OS
• Unity
• Webブラウザ
サポートする環境
Windows Desktop App Mac OSX App Unity
Browser Windows Store App(Unofficial)
Leap Motion のインタフェース
Leap Motion Application Interface Leap Motion WebSocket Interface
https://developer.leapmotion.com/documentation/GetStarted/Leap_Architecture.html
Leap Motionの認識範囲(3次元)
https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Overview.html
Leap Motionの座標系
https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Overview.html
指の位置を表示する(3次元、C++)
void CinderSampleApp::draw()
{
// clear out the window with black
gl::clear( Color( 0, 0, 0 ) );
gl::setMatrices( mCam );
// 指の位置を表示する
auto frame = mLeap.frame();
for ( auto finger : frame.fingers() ) {
gl::drawSphere( toVec3f( finger.tipPosition() ), 10 );
}
}
指の位置を表示する(3次元、Unity)
// Update is called once per frame
void Update () {
Frame frame = leap.Frame();
for ( int i = 0; i < FingerObjects.Length; i++ ) {
var leapFinger = frame.Fingers[i];
var unityFinger = FingerObjects[i];
SetVisible( unityFinger, leapFinger.IsValid );
if ( leapFinger.IsValid ) {
unityFinger.transform.localPosition = ToVector3( leapFinger.TipPosition );
}
}
}
アプリケーションからの認識(2次元)
InteractionBox
ProjectionIntersection
https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Screen_Location.html
指の位置を表示する(2次元、C++)
void TouchEmulationApp::draw()
{
gl::clear( Color( .97, .93, .79 ) );
auto pointables = leap.frame().pointables();
auto iBox = leap.frame().interactionBox();
for( auto p : pointables) {
auto normalizedPosition = iBox.normalizePoint(p.stabilizedTipPosition());
float x = normalizedPosition.x * windowWidth;
float y = windowHeight – (normalizedPosition.y * windowHeight);
}
}
Deep Leap Motion
注意
•Leap Motionを分解しています。
•サポートなど得られなくなると思いますので、ご自分でも分解される場合は自己責任にてお願いします。
•ライセンス的にどうなのかもわかりません。
可視光を通しにくく、赤外線を通すフィルタ
Leap Motion本体
(ステレオ)カメラ
赤外線LED
https://twitter.com/NeoTechLab/status/440666975253958657
https://twitter.com/NeoTechLab/status/440666975253958657
https://www.google.com/patents/US8638989
https://www.facebook.com/TokyoMotioncontrolNetwork