本发明涉及虚拟现实与力觉反馈技术领域,尤其涉及一种用于虚拟手力反馈交互的碰撞响应系统。
背景技术:
目前,虚拟手交互作为虚拟现实技术重要组成部分,为人们触摸虚拟世界提供了一个可能性,通过数据手套或追踪采集装置,使人手的优势在计算机的人机交互中得到充分发挥,提升交互的自然性和交互效率。数据手套等穿戴式交互设备的出现不但意味着与计算机交互过程中的一个新的输入通道,也意味着人们可以从虚拟世界中得到更加多样化的反馈信息。
现有技术中的虚拟手碰撞响应方法,主要针对的是图形显示上的优化,很少涉及力觉合成,在虚拟手力觉合成上,极少涉及基于约束的碰撞响应,现有技术中缺乏相应的解决方案。
技术实现要素:
本发明的目的是提供一种用于虚拟手力反馈交互的碰撞响应系统,该系统能实现虚拟手的视觉图形无穿透,并满足交互力连续真实的要求,从而提升交互真实性。
本发明的目的是通过以下技术方案实现的:
一种用于虚拟手力反馈交互的碰撞响应系统,所述系统包括模型构建模块、主从控制模块、视觉反馈模块和力觉反馈模块,其中:
所述模型构建模块用于构建虚拟手的圆柱模型和虚拟物体的球树模型;基于所构建的模型进行后继视觉显示和物理线程计算;
所述主从控制模块通过位姿矩阵运算控制所述虚拟手的手指姿态运动,读取所述虚拟手和所述虚拟物体的交互数据,并将所述交互数据作为图形计算和力觉信息计算的输入信息;
所述视觉反馈模块采用基于图形工具位姿变化的优化模型,根据所述交互数据获取无穿透约束条件下的虚拟手位置姿态图形,并将图形结果通过头戴式hmd显示器反馈给操作者;
所述力觉反馈模块基于弹簧力和等效碰撞点的按压力计算模型,根据所述交互数据对虚拟手模型的位姿进行处理得到反馈力或力矩,并将该反馈力或力矩通过力反馈设备传递到所述操作者的指端。
由上述本发明提供的技术方案可以看出,上述系统能实现虚拟手的视觉图形无穿透,并满足交互力连续真实的要求,从而提升交互真实性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的用于虚拟手力反馈交互的碰撞响应系统结构示意图;
图2为本发明实施例所述模型构建模块构建虚拟手圆柱模型的示意图;
图3为本发明实施例所述虚拟物体的球树分解示意图;
图4为本发明实施例所述虚拟手指和虚拟物体小球的约束关系示意图;
图5为本发明实施例所述虚拟手指和虚拟物体多个小球的力计算示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
下面将结合附图对本发明实施例作进一步地详细描述,如图1所示为本发明实施例提供的用于虚拟手力反馈交互的碰撞响应系统结构示意图,所述系统主要包括模型构建模块、主从控制模块、视觉反馈模块和力觉反馈模块,其中:
所述模型构建模块用于构建虚拟手的圆柱模型和虚拟物体的球树模型;基于所构建的模型进行后继视觉显示和物理线程计算;
所述主从控制模块通过位姿矩阵运算控制所述虚拟手的手指姿态运动,读取所述虚拟手和所述虚拟物体的交互数据,并将所述交互数据作为图形计算和力觉信息计算的输入信息;
所述视觉反馈模块采用基于图形工具位姿变化的优化模型,根据所述交互数据获取无穿透约束条件下的虚拟手位置姿态图形,并将图形结果通过头戴式hmd显示器反馈给操作者;
所述力觉反馈模块基于弹簧力和等效碰撞点的按压力计算模型,根据所述交互数据对虚拟手模型的位姿进行处理得到反馈力或力矩,并将该反馈力或力矩通过力反馈设备传递到所述操作者的指端。
具体实现过程中,如图2所示为本发明实施例所述模型构建模块构建虚拟手圆柱模型的示意图,图2中圆柱模型的下底面圆心记为b点,上底面圆心记为t点,圆柱耦合的半径记为rc,手指圆柱的轴线长度记为lc。在初始状态下,圆柱下底面圆心与局部坐标系重合,该模型构建模块构建虚拟手的圆柱模型过程为:
首先将手指的三角网格模型数据转化成obj格式文件,对顶点在轴向方向上的三维信息进行遍历,得到轴向方向上的距离最大点pymax和最小点pymin;
根据公式lc=(pymax-pymin)计算出手指圆柱的轴线长度lc;
再将手指的三角网格模型切分为n段,记录每一个截面在x轴方向上的最大点pxmax和最小点pxmin;
再根据如下公式计算圆柱耦合的半径rc:
如图3所示为本发明实施例所述虚拟物体的球树分解示意图,依据hubbard的内轴理论对虚拟物体进行球状树的建模,得到力觉工具球树。具体实现中,将虚拟物体球状树中的任意一个球的球心记为oi,半径记为rs,该模型构建模块构建虚拟物体的球树模型过程为:
将虚拟物体虚拟成一个球体,也是球状树的第0层,用根节点表示虚拟物体;
对所述球体采用hubbard的内轴理论进行剖分,得到所述球状树第一层的8个子节点;
然后对第一层的8个子节点采用hubbard的内轴理论进行剖分,得到球状树第二层的64个子节点;
再对第二层的64个子节点采用hubbard的内轴理论进行剖分,得到球状树第三层的512个子节点。
具体实现中,所述主从控制模块通过位姿矩阵运算控制所述虚拟手的手指姿态运动的过程为:
所述虚拟手的手指姿态运动通过确定每一节指骨上下底面的圆心位置确定,相邻指骨的底面圆心位置由位姿矩阵运算获得,所述位姿矩阵运算的过程为:
首先设定物理工具掌指关节转动点在世界坐标系中的坐标o1hx1hy1hz1h,矩阵变换关系为:
然后设定物理工具近指关节转动点在世界坐标系中的坐标o2hx2hy2hz2h,矩阵变换关系为:
再设定物理工具远指关节转动点在世界坐标系中的坐标o3hx3hy3hz3h,矩阵变换关系为:
通过上述矩阵变换确定每一时刻下所述虚拟手的手指各节指骨的位置,然后虚拟手以确定姿态和虚拟物体交互,并读取所述虚拟手和所述虚拟物体的交互数据,该交互数据的读取过程为:
首先读取发生交互的物体小球球号id,表示为spherekey;
然后读取每一个小球发生交互的手指编号,以及每个手指发生交互的碰撞点落在手指轴线上的垂足,表示为scale;
再判断交互队列是否为空,若为空,则图形工具与物理工具位姿一致,若不为空,则进入视觉反馈模块;
主控制模块通过位姿矩阵运算控制所述虚拟手的手指姿态运动,并读取虚拟手和虚拟物体的交互数据,作为响应计算的输入。
进一步的,在视觉反馈模块处理过程中,所述基于图形工具位姿变化的优化模型表示为:
其中,
g表示海森矩阵;
ci表示近端指骨无穿透约束条件;
di表示中端指骨无穿透约束条件;
ei表示远端指骨无穿透约束条件;
xb1yb1zb1,xt1yt1zt1分别表示近端指骨圆柱的上下底面圆心在世界坐标系中的坐标;
xb2yb2zb2,xt2yt2zt2分别表示中端指骨圆柱的上下底面圆心在世界坐标系中的坐标;
xb3yb3zb3,xt3yt3zt3分别表示远端指骨圆柱的上下底面圆心在世界坐标系中的坐标。
如图4所示为本发明实施例所述虚拟手指和虚拟物体小球的约束关系示意图,虚拟物体球树球心oi到圆柱的的距离d应当大于等于物体球树的半径rs与圆柱的半径rc,进一步的,近端指骨无穿透约束条件ci表示为:
中端指骨无穿透约束条件di表示为:
远端指骨无穿透约束条件ei表示为:
举例来说,首先将虚拟图形工具的位姿用一个三维向量
约束的建立是利用读取的交互数据信息,让物体球树和虚拟手圆柱之间满足不穿透的关系,这样就得到了一组关于手指圆柱上下底面圆心应该满足的不等式组,通过坐标变换建立起优化变量与圆柱底面圆心坐标之间的关系,从而得到了一组关于优化变量的不等式组,将这样一组不等式看成是当前时刻图形工具位形空间的约束,为了加快优化算法的收敛速度,利用一阶泰勒展开将这样一组非线性的不等式线性化,然后利用经典的有效集方法求解此优化问题。
进一步的,在力觉反馈模块处理过程中,所述弹簧力和等效碰撞点的按压力计算模型具体为:
反馈力计算采用的弹簧力模型表示为:
力矩计算采用的扭簧扭矩模型表示为:τ=k(θg-θh)
其中,k,k分别表示弹簧的刚度系数和扭簧截面系数;在本实施例中,k可以取1n/mm,k可以取1nm/rad;
如图5所示为本发明实施例所述虚拟手指和虚拟物体多个小球的力计算示意图,虚拟物体球树上有多个小球和虚拟手指发生碰撞,在轴线上有多个垂足,本实施例提出一种等效碰撞计算的方法,将多个碰撞点等效为一个点,该等效碰撞点的按压力计算模型表示为:
其中,
值得注意的是,本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
综上所述,本发明实施例所述系统具有如下优点:
1)在虚拟手建模中采用圆柱模型的几何建模方法,可以有效地逼近手指形状,大幅度降低约束的数量,提供建立单边不可穿透约束方程的方法;
2)在视觉反馈模块采用基于图形工具位姿变化的优化模型,能够准确求解多点接触状态下的图形工具的位置,消除了传统方法带来的视觉穿透误差问题;
3)提出了基于弹簧力和等效碰撞点的按压力计算模型,能够准确计算多点接触下的力和力矩,并输出稳定连续的反馈力。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。