tmcn leap motion

Post on 17-May-2015

3.595 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

あなたが知らないLeap Motion

2014/04/21

Natural Software 中村薫

Tokyo MotionControl Network tech-cafe Vol.01

自己紹介

中村薫フリーランスで主にDepthセンサー系の仕事をしています

アプリケーション開発

講演、ハンズオンセミナー

執筆など

Microsoft MVP for Kienct for Windows

kaorun55@naturalsoftware.jp

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月一般発売

なにができるのか

http://www.youtube.com/watch?v=3b4w749Tud8

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

http://www.systemfriend.co.jp/node/519

エア書道 KOFUDE

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

OpenLeap

https://github.com/openleap/OpenLeap

OpenLeap

https://github.com/openleap/OpenLeap

OpenLeap

https://www.youtube.com/watch?v=QQMGvWaFhuo

top related