(1)LeapMotion系统识别和追踪手,手指,以及根手指类似的工具,这个设备运行在一个极小的范围,这个范围拥有个高精度,高跟踪频率可以记录离散的点,手势,和动作。

(2)LeapMotion控制器使用的是光学传感器和红外线,当控制器在其标准操作位置,有大约150度的视野时光学传感器直接沿y轴向上。在控制器上面(2英尺到1英寸)LeapMotion控制器的有效范围从25到600毫米。控制器有一个明确的、高对比度的视图对象轮廓时,控制器的检测和追踪效果最好。                       LeapMotion控制软件将传感器数据和人手的内部模型结合起来去帮助处理有挑战性的跟踪情况。

(3)LeapMotion的坐标系统(如上图所示)LeapMotion系统有一个右手的笛卡儿坐标系统。控制器的物理单位,距离:毫米  时间:微秒(一般是这样,除非有说明) 速度:毫米/秒  角度:弧度

(4)运动跟踪数据:当LeapMotion在其范围内跟踪手,手指和工具时,它提供了更新的一组数据或者一帧。每一个Frame对象代表了一个包含一组像手,手指,工具,以及被被识别出来的手势和描述整体运动场景的一组实体的帧。Frame对象本质上是LeapMotion的根数据模型。

(5)Hands:手模型提供了关于被检测到的手,这个手的手臂,和这个手有关系的手指集合的特性,位置,以及其它特性的信息。

Hands由Hand类来表示。Hand类的 palmNormal() 和direction()返回的向量值定义了手的方向。

LeapMotion软件使用一个内部的模型人手提供预测的跟踪,即使部分手是不可见的。手模型总是提供了五个手指的位置,当一只手的轮廓及其所有手指都清晰可见时跟踪是最优的。LeapMotion软件使用手的可见部分,软件的内部模型,以及过去观测计算最有可能位置的目前不可见的部分。 需要注意的是,掩

藏在手内部的手指或者LeapMotion传感器屏蔽掉的手指是通常检测不到的。Hand类的 confidence()方法返回的值表示观测到的数据和软件内部模型的符合度。

如果超过了一个人的手或者其它跟手类似的模型在出现在控制器的视图中,超过两个手可以出现在Frame的手集合。然而,为了保证好的跟随效果官方建议最多只能两只手在控制器的感应区域内。

(6)Arms:一个Arm类的对象是一个类似骨头的对象,他提供了方向、长度、宽度 和手臂的终点。当肘部不在控制器的感应范围你内,LeapMotion控制器根据过去的观察以及典型的人体比例来推测它(手臂)的位置。

(7)Fingers:LeapMotion控制器提供手上面的每一根手指的信息,如果手指完全(部分)不可见则可根据最近的观察和解剖模型的手来推测手指的特征。这些手指分别被命名为大拇指,食指,中指,无名指,和小指。

手指由Finger类得来,Finger类继承了pointable接口。

Finger类的 |Finger_tipPosition|_ and |Finger_direction|_ 向量属性值提供了手指的之间位置和之间的指向。

一根手指对象提供了一个骨头对象描述每个解剖手指骨的位置和姿态。所有手指都含有四个骨头从底部到尖。具体的结构如下图。

大拇指不适合这个骨头体系,大拇指只有三根骨头,为了编程方便,我们这里也将大拇指定义有四个骨头,只是认为Metacarpls骨头的长度为0.

(8)Tools:一个工具类的对象就像一个铅笔一样。铅笔对象都是由Tool类来实例化的,Tool类实现了Pointable接口。

一个工具对象比手指更长,更细,更直;只有细,圆的物体才会被认为是tool对象。在文档的第二版本中tools是独立于hands的。

(9)Gestures:LeapMotion软件认出确定确定的运动模型作为手势,这些手势可以表明使用者的意图和控制。Gesture对象是有Gesture类或者它的子类来定义并实例化的。

注意点:当你将手势运用到你的应用中之前,你必须识别出你想要使用的手势。控制器类有一个enableGesture()的方法来识别你使用的手势类型。

(10)运动:运动是一段时间内用户手运动的改变,运动包括:scale,ratation,translation,如下图所示

运动是两个帧之间的计算,你可以在整个Frame对象的场景中获得运动因素。同样你也可以从一个与之相关的单手Hand对象中获得运动因素。你可以使用提到的运动元素去设计你的应用程序的交互,例如,为了代替跟踪在很多帧之间的穿梭的手指的变化的数              据,你可以使用两个侦之间scale元素去让用户改变一个物体的形状。

(11)sesor image(传感器图像):随着计算跟踪数据你可以从Leapmotion控制器得到原始的图像。

图像的数据包括所测得红外亮度值和校正复杂透镜畸变所需的数据,你可以使用传感器图像增强现实效果的应用程序,尤其是在将控制器应用到VR领域。

LeapMotion控制器 java语言开发笔记--(LeapMotion控制器简介)的更多相关文章

  1. LeapMotion控制器 java语言开发笔记--(Java开发环境的准备)

    (1)官方文档说的是必须是JDK6,JDK7,我试了一下JDK8也是可以的 (2)我是在Windows系统下用的是Eclipse Java的开发环境这里不再多说.将下载的JDK里面的java.dll和 ...

  2. LeapMotion控制器 java语言开发笔记--(连接控制器)

    (1)为了连接LeapMotion控制器,创建controller对象,这个对象自动创建与控制器的服务或者后台程序连接,然后捕获数据提供给你的应用程序.可以使用该对象来获取连接信息. (2)获取Fra ...

  3. Java 学习笔记 第一章:Java语言开发环境搭建

    第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...

  4. 用Hyperledger Fabric(超级账本)来构建Java语言开发区块链的环境

    面向 Java 开发人员的链代码简介 您或许听说过区块链,但可能不确定它对 Java™ 开发人员有何用.本教程将帮助大家解惑.我将分步展示如何使用 Hyperledger Fabric v0.6 来构 ...

  5. 软件-集成开发环境:IDEA(Java 语言开发的集成环境)

    ylbtech-软件-集成开发环境:IDEA(Java 语言开发的集成环境) IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他开发语言),IntelliJ在业界 ...

  6. IntelliJ IDEA for Mac(Java 语言开发的集成环境)破解版安装

    1.软件简介    IntelliJ IDEA 是 macOS 系统上一款 java 语言开发的集成环境,IntelliJ 在业界被公认为最好的 java 开发工具之一,尤其在智能代码助手.代码自动提 ...

  7. java语言学习笔记1

    最近也在春节的节假日里,总是会有各种各样的事情出现,没有很完整的时间来学习java以及其他方面的知识. 从昨天开始有了完整的学习体系,我去娄老师推荐的极客学院网站开始学习java语言的语法.在假期之初 ...

  8. 基于Java语言开发jt808、jt809技术文章精华索引

    很多技术开发人员喜欢追逐最新的技术,如Node.js, go等语言,这些语言只是解决了某一个方面,如只是擅长异步高并发等等,却在企业管理后台开发方面提供的支持非常不够,造成项目团队技术选项失败,开发后 ...

  9. 微信小程序后端开发(Java语言)笔记

    前言: 因为是第一次真正接触后端开发,从编码到部署服务器到上线,所以做个笔记,也供和我一样的开发小白一些参考. 一.前期工作:开发环境与工具: 1. 编程语言:Java    #笔者还没学PHP,只想 ...

随机推荐

  1. Xmind常用的快捷键

    1.Xmind常用的快捷键 DEL --删除 TAB--新增下一级主题 ENTER--新建同级主题 Ctrl+I--插入图片 Ctrl+f --查找.替换 空格--当前主题内容编辑 通过概要.格式.联 ...

  2. 图论——迪杰斯特拉算法(Dijkstra)实现,leetcode

    迪杰斯特拉算法(Dijkstra):求一点到另外一点的最短距离 两种实现方法: 邻接矩阵,时间复杂度O(n^2) 邻接表+优先队列,时间复杂度O(mlogn)(适用于稀疏图) (n:图的节点数,m:图 ...

  3. 从go-libp2p开始

    这里是从一系列关于libp2p的go实现教程开始,go-libp2p 我们会讲述go的安装,go模块的设置,启动libp2p节点,并在它们之间发送消息. 安装go go-libp2p推荐使用包含 mo ...

  4. 个人项目(wc.exe)

    一.项目在GitHub上的地址: ·https://github.com/DawsonHuang/Word_Count 二.项目描述: ·项目名:WordCount(以下简称WC或项目) ·项目简述: ...

  5. 数组编程题(github每日一题)

    /** * 随机生成一个长度为 10 的整数类型的数组,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20], * 将其排列成一个新数组,要求新数组形式如下,例如 [[2, 3, 4 ...

  6. 笔记-Cats Transport<已写题解>

    笔记-Cats Transport Cats Transport 令 \(D_i=\sum_{j=1}^id_i\),\(T_i=t_i-D_{h_i}\). 为 \(T_i\) 从小到大排序,令 \ ...

  7. 微信开发中,不同手机系统遇到的bug(不定时更新)

    Ios系统 1.body上绑定click事件失效. 解决:body标签下面,用个div,当做包裹所有内容的大容器.给这个div,绑定click事件. 2.不支持 YYYY-MM-DD 的时间格式. 用 ...

  8. 通过游戏学javascript系列第一节Canvas游戏开发基础

    本节教程通过一个简单的游戏小例子,讲解Canvas的基础知识. 最终效果: 点击移动的方块,方块上的分数会增加,方块的行进方向会改变,并且方块的速度会增加. 在线演示 源码 HTML5引入了canva ...

  9. 免费部署个人博客到远端GitHub

    前言 前面的博客我写到怎么样用hexo建立一个自己的博客网站(没看的可以先看前面那个文章地址,)但是它只能运行在本地端口,如果你分享给你的小伙伴他们是打不开的.如果把它部署到服务器上或空间上每个月都会 ...

  10. sqli-labs lexx25-28a(各种过滤)

    less-25AND OR 过滤 less-25a基于Bool_GET_过滤AND/OR_数字型_盲注 less-26过滤了注释和空格的注入 less-26a过滤了空格和注释的盲注 less-27过滤 ...