虚拟现实手势控制方法与流程

文档序号:12663131阅读:688来源:国知局

本发明涉及虚拟现实技术领域,尤其是一种在虚拟现实中用于控制手势交互的方法。



背景技术:

在移动端VR技术即虚拟现实模拟技术中,用手与VR内容进行交互可以让人们感受到更为真实更为方便的体验。而现有的虚拟现实手势控制一般采用佩戴在手上的传感器对手掌手臂等动作进行传输数据的采集,为了达到更高的仿真程度,常用多个传感器对多个关节一一对应采集信息,这样既浪费传感器,造成设备复杂成本高,而且会出现另一个问题,即一个传感器采集得到3个自由度的信息,而整个手势的自由度少于所有关节数量的3倍,这样就造成部分自由度的重复取值,如果手臂和手指全是理想圆柱体,重复取的值会相同,但实际上手臂及手指并不是理想圆柱体,因而在控制过程中出现位置错误、角度错误或移动速度与现实不符,导致反馈到信息终端的手势动作失真,影响使用效果。



技术实现要素:

本发明所要解决的问题是提供一种虚拟现实手势控制方法,以解决现有虚拟现实手势控制方法用多个传感器产生采集数据失真的问题。

为了解决上述问题,本发明的技术方案是:本虚拟现实手势控制方法包括使用一种虚拟现实手势控制装置以控制虚拟手势;所述虚拟现实手势控制装置包括微型处理器和通过所述微型处理器内部的控制单元连接的带有传感器的数据采集件,所述微型处理器通过无线连接的信息终端,所述数据采集件设有分别贴于人体上臂和前臂及手掌处的三个传感器,所述传感器为MPU6050加速度传感器或MPU6500加速度传感器,所述MPU6050加速度传感器或MPU6500加速度传感器输出的数据为四元数形式的动态数据;

控制虚拟手势步骤包括:A、分别在人体的上臂和前臂及手掌上各贴一个所述传感器,姿态初始化,前臂垂直向下,3个所述传感器的6轴运动处理组件对人体手的上臂和前臂及手掌的姿态进行追踪,获得9个自由度的动态数据,并以四元数形式输出;

B、微处理器的控制单元接收到贴于上臂和前臂及手掌的传感器四元数形式的数据后,将四元数形式的数据转换成欧拉角度数据,此时的数据为初始数据,将这些数据传送到信息终端;贴有传感器的手势开始变化,控制单元进行如下操作:

C、控制单元接收到贴于上臂的传感器的其中一个自由度的数据和贴于前臂的传感器的该自由度的数据存在差异,将上臂的传感器的该自由度数据设定为初始默认值;

D、取上臂的传感器的该自由度数据在时间T内的变化值S1,取前臂的传感器的该自由度数据在时间T内的变化值S2;比较S1和S2,当S1大于S2,上臂的传感器的该自由度数据变化过快,失真,停止记录上臂的传感器的该自由度的动态数据,停止时上臂的传感器的该自由度数据为K1,停止时的前臂的传感器的该自由度数据为K2;

E、设置时间T1,使K1的值以T1为时间间隔向K2的值变化,取K1与K2的差值除以时间T,得到在时间上的一元函数,以时间T2的周期按照此函数取值,并将取得的值赋给K1,此时K2的值一直在变化,直到K1变化的值等于K2时,停止;

F、继续取上臂的传感器的该自由度数据,重复步骤D和步骤E;

G、控制单元接收到贴于前臂的传感器的其中一个自由度数据和贴于手掌的传感器的该自由度的数据存在差异,将前臂的传感器的该自由度数据设定为初始默认值;将步骤C、步骤D和步骤E中的上臂的传感器替换为前臂的传感器,前臂的传感器替换为手掌的传感器,依次按步骤C、步骤D和步骤E进行重复操作,将这些数据传送到信息终端。

在上述技术方案中,更为具体的技术方案是:步骤E和步骤G中的TI在0.01秒至0.6秒范围内取值;T2在0.05秒至0.1秒的范围内取值。

进一步的:步骤E和步骤G中的TI=0.5秒,T2=0.1秒。

由于采用了上述技术方案,本发明与现有技术相比具有如下有益效果:

本虚拟现实手势控制方法所使用的装置,采用MPU6000系列加速度传感器代替普通的传感器采集数据,可以通过该传感器四元数形式的动态数据,大大提高了仿真程度和灵敏度,而且可以将工作中数据更新速度从60hz提高到100hz;控制单元中的控制步骤,解决了人体手臂不是理想圆柱体的缺陷,避免了姿态错误累积到手掌上出现的较大误差,结合三个特定位置的传感器设置,将9个自由度中重复的2个自由度经过数据平滑算法得到该自由度上变化更平稳且姿态更接近下级可动部分手臂的姿态数据,使整个模拟体验更逼真,而且本方法只用了3个传感器,控制装置的结构简单,制造成本不高,既节约了传感器资源,又可以使模拟体验更逼真,且使用轻便灵活。

附图说明

图1是本发明的结构示意图。

具体实施方式

下面结合附图对本发明实施例作进一步详述:

本虚拟现实手势控制包括使用一种虚拟现实手势控制装置以控制虚拟手势。如图1所示的虚拟现实手势控制装置,它包括微型处理器1,通过微型处理器1内部的控制单元2连接的带有传感器5的数据采集件4,这里的微型处理器1通过有线连接数据采集件4,微型处理器1通过无线连接的信息终端3,数据采集件4设有分别贴于人体上臂和前臂及手掌处的三个传感器5,传感器5为MPU6050加速度传感器,这里的MPU6050加速度传感器在有些文献中也称为MPU6000加速度传感器,MPU6050加速度传感器输出的数据为四元数形式的动态数据;可以通过该传感器四元数形式的动态数据,大大提高了仿真程度和灵敏度,而且可以将工作中数据更新速度从60hz提高到100hz。

控制虚拟手势步骤包括:

A、分别在人体的上臂和前臂及手掌上各贴一个MPU6050加速度传感器,姿态初始化,前臂垂直向下,3个MPU6050加速度传感器的6轴运动处理组件对人体手的上臂和前臂及手掌的姿态进行追踪,获得9个自由度的动态数据,并以四元数形式输出。

B、微处理器的控制单元接收到贴于上臂和前臂及手掌的传感器四元数形式的数据后,将四元数形式的数据转换成欧拉角度数据,此时的数据为初始数据,将这些数据传送到信息终端;贴有传感器的手势开始变化,控制单元进行如下操作:

C、控制单元接收到贴于上臂的传感器的其中一个自由度的数据和贴于前臂的传感器的该自由度的数据存在差异,将上臂的传感器的该自由度数据设定为初始默认值。

D、取上臂的传感器的该自由度数据在时间T内的变化值S1,取前臂的传感器的该自由度数据在时间T内的变化值S2;比较S1和S2,当S1大于S2,上臂的传感器的该自由度数据变化过快,失真,停止记录上臂的传感器的该自由度的动态数据,停止时上臂的传感器的该自由度数据为K1,停止时的前臂的传感器的该自由度数据为K2。

E、设置时间T1=0.5秒,使K1的值以T1为时间间隔向K2的值变化,取K1与K2的差值除以时间T,得到在时间上的一元函数,以T2=0.1秒的周期按照此函数取值,并将取得的值赋给K1,此时K2的值一直在变化,直到K1变化的值等于K2时,停止;该步骤相当于上臂传感器的数据停下来根据函数去追赶前臂传感器的数据。

F、继续取上臂的传感器的该自由度数据,重复步骤D和步骤E。

G、控制单元接收到贴于前臂的传感器的其中一个自由度数据和贴于手掌的传感器的该自由度的数据存在差异,将前臂的传感器的该自由度数据设定为初始默认值;将步骤C、步骤D和步骤E中的上臂的传感器替换为前臂的传感器,前臂的传感器替换为手掌的传感器,依次按步骤C、步骤D和步骤E进行重复操作,将这些数据传送到信息终端。

上述步骤该操作在unity3D环境下运行,它解决了人体手臂不是理想圆柱体的缺陷,避免了姿态错误累积到手掌上出现的较大误差,结合三个特定位置的传感器设置,将9个自由度中重复的2个自由度经过数据平滑算法得到该自由度上变化更平稳且姿态更接近下级可动部分手臂的姿态数据,使整个模拟体验更逼真;本装置只用了3个传感器,整个装置结构不复杂,制造成本不高,使用轻便灵活。

在其他实施例中,传感器还可以是可输出四元数动态数据的MPU6500加速度传感器,步骤E和步骤G中的时间T1还可以是0.01秒到0.6秒范围中的任何一个时间数值,时间T2还可以是0.05秒至0.1秒范围中的任何一个时间数值。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1