LeapMotion体感控制应用在实验学习系统中的研究与实现(4)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

LeapMotion体感控制应用在实验学习系统中的研究与实现(4)

图2-4 手在Leap Motion上方大致的位置

2。2。1  坐标系统

Leap Motion的系统采用的是右手笛卡尔坐标系,返回的数值均以毫米为单位。原点被设置在Leap Motion 控制器的中心。X轴和Z轴在器件的水平面上,X轴和设备的长边平行,Z轴和短边平行。Y轴是垂直的,以正值增加形式朝上。距离计算机屏幕越远,Z轴正值不断增加。三维坐标系示意图如图2-5所示。

图2-5 Leap Motion采用的右手笛卡尔三维坐标系

Leap Motion在三维坐标系内检测并跟踪时需要用到的物理量与其对应的单位[8]见表2-1所示。

表2-1 Leap Motion 需要用到的物理量与单位

物理量 距离 时间 速度 角度

单位 毫米 微秒 毫米/秒 弧度

2。2。2  动作跟踪数据

由于Leap Motion设备最终在它视野中的是手、手指和工具,它会提供一组数据集更新,或者是帧,或者是数据。每帧数据包含一个基本追踪数据列表,如手、手指和工具,也包括识别出的手势和描述场景中的运动因素。

但检测到手、手指和工具或手势时,Leap Motion'软件为它分配一个唯一的ID指示符。只要这个实体一直存在于设备可视范围内,这个ID指示符就保持不变。如果追踪目标丢失或者失而复得,Leap Motion软件会分配一个新的ID(软件无法得知手、手指是否在之前已经被探测过)[9]。

1)

一个帧对象提供追踪数据、手势和在Leap Motion可视范围内的整体运动因素的列表。帧运动信息的产生是通过比较当前帧与之前一个特别的帧。描述合成运动的属性包含:

Hands手,所有的手。

Pointables有端点的,手指和有段点的工具。

Fingers手指,所有的手指。

Tools工具,所有的工具。

Gesture手势---所有手势的开始、结束或者哪个进行了更新。

这三个具有端点的列表(Pointables,Fingers,Tools)包含了任何在数据帧检测出的有端点的对象。通过访问手的列表,可以获取手中物体的信息。需要注意的是,如果用户的手只在Leap Motion的视野中出现一部分,那么手指或者工具都无法与手关联。文献综述

如果通过一帧又一帧的来追踪一个单一的物体,例如手指,可以使用与物体关联的ID,在新的帧中查询它。通过ID,可以查询手、手指、工具、端点物体和手势。如果这个物体在当前帧存在,那么查询函数返回一个关于物体的引用。如果物体不存在了,那么返回一个特别的无效对象。无效对象被很好定义,但不包含任何有效的追踪数据。这个技术使得在使用Leap Motion追踪数据时,简化了大量的对于空指针的检测。

2) 帧运动

Leap Motion软件分析总体运动,只要之前帧数据发生了位移、旋转、尺度变化等。例如,如果把双手同时移动到Leap Motion的左侧视野,帧就包含了位移变化。如果扭动双手,好像旋转一个球,帧就包含旋转。如果将双手靠近或者远离,帧就包含缩放信息。Leap Motion软件会使用视野范围内的物体,只要分析到发生了运动。如果它只检测到一只手,那么Leap Motion程序就会基于那只手的运动,给出帧运动因素。如果它检测出一双手,它就将双手的运动趋势结合起来,给出运动因素。通过每只手对应的手对象,也可以获取单独运动参数。 (责任编辑:qin)