一种基于数据手套和物理引擎的虚拟手的实时抓取方法技术

技术编号:10281976 阅读:206 留言:0更新日期:2014-08-03 07:13
一种基于数据手套和物理引擎的虚拟手的实时抓取方法,它有五大步骤:一、启动计算机、数据手套和位置跟踪器;二、戴上数据手套,运行计算机获取数据手套和位置跟踪器发来的数据;三、佩戴数据手套做手指弯曲、手掌平移旋转,数据手套和位置跟踪器将手指和手掌的位置及变化数据发送给程序,程序通过接收数据驱动虚拟手的手指和手掌的运动;四、使用数据手套的手在现实中模拟抓取动作控制计算机中的虚拟手去抓取物体,程序会判断虚拟物体是否处于被抓取状态;若未满足被抓取,返回三,继续执行三、四,直到程序退出;若满足被抓取,执行五;五、通过计算虚拟手的位置和姿态的变化来控制虚拟物体的位置和姿态的变化,从而控制虚拟物体的移动和旋转。

【技术实现步骤摘要】

本专利技术涉及,具体涉及一种虚拟现实领域的基于数据手套的实时虚拟手的驱动以及基于数据手套、位置跟踪器以及物理引擎的虚拟手和虚拟物体的实时抓取方法,属于虚拟现实

技术介绍
虚拟现实技术是一种可以创建和体验虚拟世界的计算机技术,它利用计算机生成一种模拟环境,在模拟环境中来逼真现实世界。虚拟现实技术是一种多源信息融合交互式的三维动态视景和实体行为的系统仿真,可借助传感头盔、数据手套等专业设备,让用户进入虚拟空间,实时感知和操作虚拟世界中的各种对象,从而通过视觉、触觉和听觉等获得身临其境的真实感受。人手是人体中最具灵活的器官,人们在日常生活及工作中无时无刻都在使用手,而人手抓取物体的运动又是所有手部运动中最为复杂的运动,所以研究虚拟世界中如何模拟人手的抓取运动是十分有意义的。数据手套是虚拟现实领域的重要交互设备,是一种通用的人机接口,其直接目的在于实时获取人手的动作姿态,以便在虚拟环境中再现人手动作,达到理想的人机交互目的。现有的虚拟手抓取虚拟物体的方法中存在一些问题:第一,虚拟手抓取虚拟物体的方法准确性较差,不能很真实准确地模拟物体被抓取的过程;第二,由于一些判断虚拟物体是否被虚拟手所抓取的判定条件较为复杂,从而导致虚拟手与虚拟物体的抓取方法实时性较差,使得程序在一般计算机中不能流畅地运行。基于以上原因,有必要开发一套准确性较高并且实时性较好的虚拟手抓取虚拟物体的方法。本专利技术提出一种基于数据手套和物理引擎的实时虚拟手抓取方法,可以准确地模拟虚拟手抓取虚拟物体的过程并且流畅地在一般计算机上运行。
技术实现思路
本专利技术的目的在于提供,它是一种基于普通计算机的实时准确的虚拟手抓取虚拟物体的方法,以解决现有方法中虚拟手抓取虚拟物体时存在的抓取过程不准确,运行不流畅满足不了实时性的问题。本专利技术提供的技术方案是:,具体是通过数据手套内的传感器获取的数据,实时驱动虚拟手的手指关节的转动。通过位置跟踪器获取的6自由度的位置信息,实时驱动虚拟手在虚拟空间的位置及姿态。通过物理引擎中的碰撞检测模块以及程序中设定的判断虚拟物体是否处于抓取状态的条件,实现虚拟手实时准确地抓取虚拟物体。本专利技术,它包括如下步骤:步骤一:将数据手套和位置跟踪器通过USB接口和串口接入计算机,启动系统中的所有设备,包括计算机、数据手套和位置跟踪器。步骤二:用户戴上数据手套,运行计算机上的的程序,程序会自动连接数据手套和位置跟踪器,并实时获取数据手套和位置跟踪器发送来的数据。步骤三:用户佩戴数据手套做一系列动作,包括:手指弯曲,整个手掌的平移旋转运动,数据手套和位置跟踪器会将手指的弯曲和手的位置及姿态的变化的数据发送给程序,程序通过接收到的数据驱动虚拟手的手指运动和手掌的运动。步骤四:用户通过使用佩戴数据手套的手在现实世界中模拟抓取物体的动作控制计算机中的虚拟手去抓取物体。程序会调用物理引擎中的碰撞检测算法以及执行程序中的抓取条件的判定来判断虚拟物体是否处于被抓取的状态。如果虚拟物体没有满足被抓取的条件时,程序返回步骤三,继续从步骤三开始执行步骤三、四,直到程序退出。如果虚拟物体满足被抓取条件,执行步骤五。步骤五:通过计算虚拟手的位置变化和朝向的变化来控制虚拟物体的位置和姿态的变化,从而控制虚拟物体的移动和旋转。其中,步骤一中所述的数据手套为Immersion公司的具有18个传感器的CyberGlove II (虚拟现实数据手套)。其中,步骤一所述的位置跟踪器为Ascension公司的Flock of Birds位置追踪器,可以提供空间中6自由度的位置信息。其中,步骤三中数据手套发送给程序的传感器数值和虚拟手模型的手指弯曲的角度之间需要进行转换,具体的转换公式为:angle=M(Scur—Smin) / (Smax—Smin)其中,angle为某一手指的一个关节的当前弯曲角度,Scur是数据手套的对应的这个关节的传感器的当前数值,Smax和Smin是对应的那个传感器发送的最大值和最小值,M是对应的这个关节能够弯曲的最大角度。其中,步骤四中所述的物理引擎采用的是Bullet开源物理模拟计算引擎,能够进行碰撞检测功能的实现。其中,计算机中的的软件功能包括加载场景模型,实时接收数据手套和位置跟踪器发来的数据,实时进行虚拟手和虚拟物体的碰撞检测,实时进行场景的更改和绘制。其中,步骤四中所指的调用物理引擎中的碰撞检测算法以及执行程序中的抓取条件的判定具体过程包括:(I)程序生成虚拟物体和虚拟手的手指以及手掌的包围盒。(2)判断各手指以及手掌的包围盒是否与虚拟物体有重叠,如果有重叠则继续执行后面的步骤,否则判定虚拟物体没有处于被抓取的状态。(3)包围盒有重叠的部分调用物理引擎bullet中面片级的碰撞检测方法生成碰撞物体对。(4)判断碰撞对中是否包含手掌或者大拇指,如果包含其中之一,则继续执行后面的步骤,否则判定虚拟物体没有处于被抓取的状态。(5)判断碰撞对中除大拇指外的手指的数量是否大于1,如果满足条件,则认为虚拟物体处于被抓取的状态,否则,判定虚拟物体没有处于被抓取的状态。其中,包围盒是指平行于坐标轴的能够将虚拟物体以及虚拟手包裹在里面的最小立方体。本专利技术,其优点及功效在于:通过利用物体包围盒进行初探,判断物体是否有可能发生碰撞,从而只在有可能发生碰撞的部分进一步调用更加精确的碰撞检测算法,提高了碰撞检测的效率,从而解决了实时性不好,运行不流畅的问题。在完成碰撞检测的基础上,通过特定抓取策略的设定,使得虚拟手能够精确地对虚拟物体进行抓取操作。【附图说明】图1是本专利技术所提出的的系统组成示意图。图2是本专利技术所提出的的流程图。图3是本专利技术中判断虚拟物体是否处于抓取状态的具体过程的流程图。图4是本专利技术中的软件流程框图。图1中具体标号如下:I普通显示器;2位置跟踪器;3数据手套;4普通计算机主机;5、6、7是连接线。【具体实施方式】下面结合附图,对本专利技术的技术方案做进一步的说明。见图2,本专利技术方法中,系统运行的操作方法具体步骤如下:步骤一:将数据手套3和位置跟踪器2通过USB接口和串口接入计算机,启动系统中的所有设备,包括计算机、数据手套3和位置跟踪器2。步骤二:用户戴上数据手套3,运行计算机上的的程序,程序会自动连接数据手套3和位置跟踪器2,并实时获取数据手套3和位置跟踪器2发送来的数据。步骤三:用户佩戴数据手套3做一系列动作,包括:手指弯曲,整个手掌的平移旋转运动,数据手套3和位置跟踪器2会将手指的弯曲和手的位置及姿态的变化的数据发送给程序,程序通过接收到的数据驱动虚拟手的手指运动和手掌的运动。步骤四:用户通过使用佩戴数据手套3的手在现实世界中模拟抓取物体的动作控制计算机中的虚拟手去抓取物体。程序会调用物理引擎中的碰撞检测算法以及执行程序中的抓取条件的判定来判断虚拟物体是否处于被抓取的状态。如果虚拟物体没有满足被抓取的条件时,程序返回步骤三,继续从步骤三开始执行步骤三、四,直到程序退出。如果虚拟物体满足被抓取条件,执行步骤五。步骤五:通过计算虚拟手的位置变化和朝向的变化来控制虚拟物体的位置和姿态的变化,从而控制虚拟物体的移动和旋转。其中,步骤一中所述的数据手套3为Immersion公司的具有18个传感器的CyberGlove II (虚本文档来自技高网...

【技术保护点】
一种基于数据手套和物理引擎的虚拟手的实时抓取方法,其特征在于:它包括如下步骤:步骤一:将数据手套和位置跟踪器通过USB接口和串口接入计算机,启动系统中的所有设备,包括计算机、数据手套和位置跟踪器;步骤二:用户戴上数据手套,运行计算机上的一种基于数据手套和物理引擎的虚拟手的实时抓取方法的程序,程序会自动连接数据手套和位置跟踪器,并实时获取数据手套和位置跟踪器发送来的数据;步骤三:用户佩戴数据手套做一系列动作,包括:手指弯曲,整个手掌的平移旋转运动,数据手套和位置跟踪器会将手指的弯曲和手的位置及姿态的变化的数据发送给程序,程序通过接收到的数据驱动虚拟手的手指运动和手掌的运动;步骤四:用户通过使用佩戴数据手套的手在现实世界中模拟抓取物体的动作控制计算机中的虚拟手去抓取物体,程序会调用物理引擎中的碰撞检测算法以及执行程序中的抓取条件的判定来判断虚拟物体是否处于被抓取的状态;如果虚拟物体没有满足被抓取的条件时,程序返回步骤三,继续从步骤三开始执行步骤三、四,直到程序退出;如果虚拟物体满足被抓取条件,执行步骤五;步骤五:通过计算虚拟手的位置变化和朝向的变化来控制虚拟物体的位置和姿态的变化,从而控制虚拟物体的移动和旋转。...

【技术特征摘要】
1.一种基于数据手套和物理引擎的虚拟手的实时抓取方法,其特征在于:它包括如下步骤: 步骤一:将数据手套和位置跟踪器通过USB接口和串口接入计算机,启动系统中的所有设备,包括计算机、数据手套和位置跟踪器; 步骤二:用户戴上数据手套,运行计算机上的一种基于数据手套和物理引擎的虚拟手的实时抓取方法的程序,程序会自动连接数据手套和位置跟踪器,并实时获取数据手套和位置跟踪器发送来的数据; 步骤三:用户佩戴数据手套做一系列动作,包括:手指弯曲,整个手掌的平移旋转运动,数据手套和位置跟踪器会将手指的弯曲和手的位置及姿态的变化的数据发送给程序,程序通过接收到的数据驱动虚拟手的手指运动和手掌的运动; 步骤四:用户通过使用佩戴数据手套的手在现实世界中模拟抓取物体的动作控制计算机中的虚拟手去抓取物体,程序会调用物理引擎中的碰撞检测算法以及执行程序中的抓取条件的判定来判断虚拟物体是否处于被抓取的状态;如果虚拟物体没有满足被抓取的条件时,程序返回步 骤三,继续从步骤三开始执行步骤三、四,直到程序退出;如果虚拟物体满足被抓取条件,执行步骤五; 步骤五:通过计算虚拟手的位置变化和朝向的变化来控制虚拟物体的位置和姿态的变化,从而控制虚拟物体的移动和旋转。2.根据权利要求1所述的一种基于数据手套和物理引擎的虚拟手的实时抓取方法,其特征在于:步骤一中所述的数据手套为具有18个传感器的CyberGlove II虚拟现实数据手套。3.根据权利要求1所述的一种基于数据手套和物理引擎的虚拟手的实时抓取方法,其特征在于:步骤一所述的位置跟踪器为能提供空间中6自由度位置信息的Flock of Birds位置追踪器。4.根据权利要求1所述的一种基于数据手套和物理引擎的虚拟手的实时抓取方法,其特征在于:步骤三中数据手套发送给程序的传感器数值和虚拟手模型的手指弯曲的角度之间需要进行转换,具体的转换公式为:an...

【专利技术属性】
技术研发人员:邢若瀚赵罡薛俊杰马国财
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1