zoukankan      html  css  js  c++  java
  • 【转】LeapMotion原理

    Leap Motion 傳感器的結構:



    大體上,Leap 傳感器根據內置的兩個攝像頭從不同角度捕捉的畫面,重建出手掌在真實世界三維空間的運動信息。檢測的範圍大體在傳感器上方 25 毫米到 600 毫米之間,檢測的空間大體是一個倒四棱錐體。

    首先,Leap Motion 傳感器會建立一個直角座標系,座標的原點是傳感器的中心,座標的 X 軸平行於傳感器,指向屏幕右方。Y 軸指向上方。Z 軸指向背離屏幕的方向。單位爲真實世界的毫米。如圖:


    在使用過程中, Leap Motion 傳感器會定期的發送關於手的運動信息,每份這樣的信息稱爲「幀」( frame )。每一個這樣的幀包含檢測到的:

    • 所有手掌的列表及信息;
    • 所有手指的列表及信息;
    • 手持工具(細的、筆直的、比手指長的東西,例如一枝筆)的列表及信息;
    • 所有可指向對象(Pointable Object),即所有手指和工具的列表及信息;


    Leap 傳感器會給所有這些分配一個唯一標識(ID),在手掌、手指、工具保持在視野範圍內時,是不會改變的。根據這些 ID,可以通過 Frame::hand( ) , Frame::finger( ) 等函數來查詢每個運動對象的信息。

    Leap 可以根據每幀和前幀檢測到的數據,生成運動信息。例如,若檢測到兩隻手,並且兩隻手都超一個方向移動,就認爲是平移;若是像握着球一樣轉動,則記爲旋轉。若兩隻手靠近或分開,則記爲縮放。所生成的數據包含:

    • 旋轉的軸向向量;
    • 旋轉的角度(順時針爲正);
    • 描述旋轉的矩陣;
    • 縮放因子;
    • 平移向量;

    對於每隻手,可以檢測到如下信息:

    • 手掌中心的位置(三維向量,相對於傳感器座標原點,毫米爲單位);
    • 手掌移動的速度(毫米每秒);
    • 手掌的法向量(垂直於手掌平面,從手心指向外);
    • 手掌朝向的方向;
    • 根據手掌彎曲的弧度確定的虛擬球體的中心;
    • 根據手掌彎曲的弧度確定的虛擬球體的半徑;


    其中,手掌的法向量和方向如下圖所示:


    「手掌球」的圓心和半徑:


    對於每個手掌,亦可檢測出平移、旋轉(如轉動手腕帶動手掌轉動)、縮放(如手指分開、聚合)的信息。檢測的數據如全局變換一樣,包括:

    • 旋轉的軸向向量;
    • 旋轉的角度(順時針爲正);
    • 描述旋轉的矩陣;
    • 縮放因子;
    • 平移向量;


    Leap 除了可以檢測手指外,也可以檢測手持的工具。像上文所說的,就是細的、筆直的、比手指長的物件:



    對於手指和工具,會統一地稱爲可指向對象(Pointable Object,抱歉不太會翻譯),每個 Pointable Object 包含了這些信息:

    • 長度;
    • 寬度;
    • 方向;
    • 指尖位置;
    • 指尖速度;


    方向和指尖位置如下圖:
    根據全局的信息、運動變換,手掌、手指和工具的信息和變換,開發者就可以靠這些來製作遊戲、程序了。

    大概就是這樣了~

    參考:
    Leap Motion 的開發者文檔 Leap Motion | Developers

    本文来源:http://www.zhihu.com/question/20252985

  • 相关阅读:
    导包路径
    django导入环境变量 Please specify Django project root directory
    替换django的user模型,mysql迁移表报错 django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependen cy user.0001_initial on database 'default'.
    解决Chrome调试(debugger)
    check the manual that corresponds to your MySQL server version for the right syntax to use near 'order) values ('徐小波','XuXiaoB','男','1',' at line 1")
    MySQL命令(其三)
    MySQL操作命令(其二)
    MySQL命令(其一)
    [POJ2559]Largest Rectangle in a Histogram (栈)
    [HDU4864]Task (贪心)
  • 原文地址:https://www.cnblogs.com/ppffs/p/3187260.html
Copyright © 2011-2022 走看看