天天看點

LeapMotion控制器Java語言開發手冊

(1)LeapMotion系統識别和追蹤手,手指,以及根手指類似的工具,這個裝置運作在一個極小的範圍,這個範圍擁有個高精度,高跟蹤頻率可以記錄離散的點,手勢,和動作。

(2)LeapMotion控制器使用的是光學傳感器和紅外線,當控制器在其标準操作位置,有大約150度的視野時光學傳感器直接沿y軸向上。在控制器上面(2英尺到1英寸)LeapMotion控制器的有效範圍從25到600毫米。控制器有一個明确的、高對比度的視圖對象輪廓時,控制器的檢測和追蹤效果最好。                       LeapMotion控制軟體将傳感器資料和人手的内部模型結合起來去幫助處理有挑戰性的跟蹤情況。

LeapMotion控制器Java語言開發手冊

(3)LeapMotion的坐标系統(如上圖所示)LeapMotion系統有一個右手的笛卡兒坐标系統。控制器的實體機關,距離:毫米  時間:微秒(一般是這樣,除非有說明) 速度:毫米/秒  角度:弧度

(4)運動跟蹤資料:當LeapMotion在其範圍内跟蹤手,手指和工具時,它提供了更新的一組資料或者一幀。每一個Frame對象代表了一個包含一組像手,手指,工具,以及被被識别出來的手勢和描述整體運動場景的一組實體的幀。Frame對象本質上是LeapMotion的根資料模型。

(5)Hands:手模型提供了關于被檢測到的手,這個手的手臂,和這個手有關系的手指集合的特性,位置,以及其它特性的資訊。

LeapMotion控制器Java語言開發手冊

        Hands由Hand類來表示。Hand類的 palmNormal() 和direction()傳回的向量值定義了手的方向。

        LeapMotion軟體使用一個内部的模型人手提供預測的跟蹤,即使部分手是不可見的。手模型總是提供了五個手指的位置,當一隻手的輪廓及其所有手指都清晰可見時跟蹤是最優的。LeapMotion軟體使用手的可見部分,軟體的内部模型,以及過去觀測計算最有可能位置的目前不可見的部分。 需要注意的是,掩

        藏在手内部的手指或者LeapMotion傳感器屏蔽掉的手指是通常檢測不到的。Hand類的 confidence()方法傳回的值表示觀測到的資料和軟體内部模型的符合度。

        如果超過了一個人的手或者其它跟手類似的模型在出現在控制器的視圖中,超過兩個手可以出現在Frame的手集合。然而,為了保證好的跟随效果官方建議最多隻能兩隻手在控制器的感應區域内。

(6)Arms:一個Arm類的對象是一個類似骨頭的對象,他提供了方向、長度、寬度 和手臂的終點。當肘部不在控制器的感應範圍你内,LeapMotion控制器根據過去的觀察以及典型的人體比例來推測它(手臂)的位置。

(7)Fingers:LeapMotion控制器提供手上面的每一根手指的資訊,如果手指完全(部分)不可見則可根據最近的觀察和解剖模型的手來推測手指的特征。這些手指分别被命名為大拇指,食指,中指,無名指,和小指。

        手指由Finger類得來,Finger類繼承了pointable接口。

LeapMotion控制器Java語言開發手冊

     Finger類的 |Finger_tipPosition|_ and |Finger_direction|_ 向量屬性值提供了手指的之間位置和之間的指向。

     一根手指對象提供了一個骨頭對象描述每個解剖手指骨的位置和姿态。所有手指都含有四個骨頭從底部到尖。具體的結構如下圖。

LeapMotion控制器Java語言開發手冊

       大拇指不适合這個骨頭體系,大拇指隻有三根骨頭,為了程式設計友善,我們這裡也将大拇指定義有四個骨頭,隻是認為Metacarpls骨頭的長度為0.

(8)Tools:一個工具類的對象就像一個鉛筆一樣。鉛筆對象都是由Tool類來執行個體化的,Tool類實作了Pointable接口。

LeapMotion控制器Java語言開發手冊

        一個工具對象比手指更長,更細,更直;隻有細,圓的物體才會被認為是tool對象。在文檔的第二版本中tools是獨立于hands的。

(9)Gestures:LeapMotion軟體認出确定确定的運動模型作為手勢,這些手勢可以表明使用者的意圖和控制。Gesture對象是有Gesture類或者它的子類來定義并執行個體化的。

LeapMotion控制器Java語言開發手冊

      注意點:當你将手勢運用到你的應用中之前,你必須識别出你想要使用的手勢。控制器類有一個enableGesture()的方法來識别你使用的手勢類型。

(10)運動:運動是一段時間内使用者手運動的改變,運動包括:scale,ratation,translation,如下圖所示

LeapMotion控制器Java語言開發手冊

         運動是兩個幀之間的計算,你可以在整個Frame對象的場景中獲得運動因素。同樣你也可以從一個與之相關的單手Hand對象中獲得運動因素。你可以使用提到的運動元素去設計你的應用程式的互動,例如,為了代替跟蹤在很多幀之間的穿梭的手指的變化的數              據,你可以使用兩個偵之間scale元素去讓使用者改變一個物體的形狀。

LeapMotion控制器Java語言開發手冊

(11)sesor image(傳感器圖像):随着計算跟蹤資料你可以從Leapmotion控制器得到原始的圖像。

LeapMotion控制器Java語言開發手冊

      圖像的資料包括所測得紅外亮度值和校正複雜透鏡畸變所需的資料,你可以使用傳感器圖像增強現實效果的應用程式,尤其是在将控制器應用到VR領域。