CN115268623A - 一种用于虚拟手力觉交互的接触处理方法及系统 - Google Patents
一种用于虚拟手力觉交互的接触处理方法及系统 Download PDFInfo
- Publication number
- CN115268623A CN115268623A CN202210384860.4A CN202210384860A CN115268623A CN 115268623 A CN115268623 A CN 115268623A CN 202210384860 A CN202210384860 A CN 202210384860A CN 115268623 A CN115268623 A CN 115268623A
- Authority
- CN
- China
- Prior art keywords
- hand
- virtual
- ball
- contact
- finger
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 98
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000001514 detection method Methods 0.000 claims description 39
- 210000001145 finger joint Anatomy 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 26
- 238000005457 optimization Methods 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 20
- 239000011159 matrix material Substances 0.000 claims description 16
- 101100291369 Mus musculus Mip gene Proteins 0.000 claims description 13
- 101150116466 PALM gene Proteins 0.000 claims description 13
- 210000000811 metacarpophalangeal joint Anatomy 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 5
- 230000009466 transformation Effects 0.000 claims description 3
- 238000013459 approach Methods 0.000 claims description 2
- 230000035807 sensation Effects 0.000 claims 4
- 230000000007 visual effect Effects 0.000 abstract description 12
- 238000004088 simulation Methods 0.000 abstract description 8
- 230000000149 penetrating effect Effects 0.000 abstract description 7
- 210000003811 finger Anatomy 0.000 description 68
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000002452 interceptive effect Effects 0.000 description 5
- 210000003813 thumb Anatomy 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 210000004247 hand Anatomy 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 210000000236 metacarpal bone Anatomy 0.000 description 3
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001633942 Dais Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000001308 synthesis method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种用于虚拟手力觉交互的接触处理方法及系统,从虚拟手结构出发,考虑到人类手指各个关节粗细不同,将手指用圆台表示。在此基础上,采用球树模型构建虚拟物体,提出用于虚拟手和虚拟物体力觉交互的球‑圆台接触处理系统,该系统在实现稳定、非穿透且较为真实的虚拟手力觉交互仿真的同时,能够达到较高(高达1kHz)的接触处理效率。利用圆台铰链模型模拟真实手,确保了虚拟手的可视化真实,利用球体与圆台之间的接触约束确保虚拟手指的侧边不嵌入虚拟物体,从而有效解决了现有技术中简化的虚拟手模型与真实手的外形差距较大导致的交互过程中图形手和触觉手难以匹配,而导致视触觉反馈不一致的问题。
Description
技术领域
本发明涉及触力觉交互技术领域,特别是涉及一种用于虚拟手力觉交互的接触处理方法及系统。
背景技术
为了模拟使用工具操作对象的交互体验,国内外研究者已开发了一系列用于虚拟工具力觉交互的接触处理方法(3-DOF(Degree of Freedom)/6-DOF)与系统,推动了桌面式力觉交互装置的广泛应用,例如将Phantom Premium用于牙科手术模拟器。日常生活中,人们通常直接用手触摸和操作物体。为了模拟这种直观的交互方式,以增强与虚拟世界交互的沉浸感(例如虚拟装配、虚拟手术、高危工作环境模拟、职业技能培训、娱乐、游戏等),除了需要研发用于虚拟手交互的力反馈设备,例如岱仕科技的Dexmo力反馈手套,还需要用于虚拟手力觉交互的高保真接触处理方法及系统作支撑。
与虚拟工具力觉交互的接触处理方法相比,虚拟手力觉交互的接触处理方法的实现更具挑战,这主要是由于虚拟手力觉交互涉及的操作自由度较多、操作方式多样化、接触点/区域较多,使得用于虚拟手力觉交互的接触处理方法所涉及的计算更加复杂、耗时。用于虚拟手力觉交互的接触处理方法主要需要解决以下两个关键问题:(1)快速准确地确定虚拟手与虚拟物体的接触状态;(2)快速准确地计算不穿透虚拟物体的虚拟手化身及接触力。
以上两个问题的解决均需要涉及虚拟手模型,用来描述虚拟手的三维形状、运动自由度以及手掌和多个手指的几何约束,以满足运动映射、碰撞检测、碰撞响应、接触力计算以及图形渲染的需求。在虚拟手几何建模中,通常采用简化模型(如胶囊模型表示手指或者在虚拟手模型表面采样部分点/区域)来应对力觉交互对高更新频率的需求,这些简化模型也可以与其他几何模型相结合来表示虚拟手。
虽然通过现有方法可以在一定程度上提高虚拟手力觉交互的接触处理性能,但由于简化的虚拟手模型与真实手的外形差距较大,在虚拟手力觉交互的过程中,会出现图形手和触觉手难以匹配而导致视触觉反馈不一致的问题,例如当图形手嵌入虚拟物体时未能执行有效的接触处理,用户会无法感受到力反馈。此外,受限于接触约束模型的复杂度,现有接触处理方法仅能实现数十赫兹的更新频率,无法满足力觉交互对高更新频率(例如1kHz)的需求。
因此,本领域亟需一种在确保虚拟手可视化真实的情况下,实现快速稳定力反馈的同时确保虚拟手与虚拟物体交互的非穿透模拟技术方案。
发明内容
本发明的目的是提供一种用于虚拟手力觉交互的接触处理方法及系统,利用圆台铰链模型模拟真实手,确保了虚拟手的可视化真实,利用球体与圆台之间的接触约束确保虚拟手指的侧边不嵌入虚拟物体,从而有效解决了现有技术中简化的虚拟手模型与真实手的外形差距较大导致的交互过程中图形手和触觉手难以匹配,而导致视触觉反馈不一致的问题。此外,用圆台模拟真实手的指节,减少了接触约束的数量,可采用并行处理方式,从而有效解决了现有技术接触处理效率地的问题。
为实现上述目的,本发明提供了如下方案:
一种用于虚拟手力觉交互的接触处理方法,所述方法包括:
利用圆台铰链模型模拟真实手,得到虚拟手;所述圆台铰链模型包括若干个圆台,每个所述圆台模拟所述真实手的每一个指节;掌指关节及两个指节间的关节采用球体模拟;所述虚拟手还包括若干个半球,每个半球位于模拟末端指节的圆台上,所述半球用于模拟所述真实手的指尖;
利用球树模型模拟物体,得到虚拟物体;所述虚拟物体包括若干个带有编号的球体;
获取用户真实手的姿态;
利用所述真实手的姿态驱动虚拟手,称为触觉手;
将所述触觉手在虚拟场景中显示,得到图形手,并将所述虚拟物体在所述虚拟场景中显示;
构建所述球体与所述圆台之间的接触判断条件:和其中,|OC|j为虚拟物体上编号为j的球体的球心到图形手中圆台的中心轴线l的距离,Rj为虚拟物体上编号为j的球体的半径,M为虚拟物体上有待检测的球体个数,Cj表示虚拟物体上编号为j的球体的球心在中心轴线l上的垂足,E和D分别表示图形手中圆台上下底面的圆心,α表示图形手中圆台侧边与其中心轴线的夹角,r2和r1分别表示图形手中圆台上下底面的半径;
根据图形手位姿信息、虚拟物体位姿信息,以及所述球体与圆台之间的接触判断条件得到与所述图形手手指侧边接触的碰撞球信息;所述碰撞球信息包括碰撞球的编号、碰撞球的球心坐标和碰撞球的球体半径;所述碰撞球是所述虚拟物体中与所述图形手发生接触的球体;所述图形手手指侧边是手指圆台指节的侧边;所述图形手位姿信息用于图形显示;
利用和分别代表图形手每个手指的掌指关节角、近指关节角和远指关节角,根据所述图形手位姿信息,以及图形手与虚拟物体接触的碰撞球信息,构建图形手手指的侧边与虚拟物体的非嵌入接触约束其中N为虚拟物体上与图形手手指接触的球体个数;根据所述圆台与球体的非嵌入接触约束,对于图形手的每个手指,将其三个关节角和作为一个整体在非嵌入接触约束集下进行优化,求解得到不嵌入虚拟物体的图形手手指关节角信息;
根据所述图形手手指关节角信息和公式Fi=Gi·n·|Pig-Pih|计算第i个碰撞球与对应的虚拟手指接触的正压力Fi;其中,Gi为3×3刚度矩阵,n表示的单位向量,Oi表示第i个碰撞球的球心,Pi表示第i个碰撞球与虚拟手指侧边的接触点,|Pig-Pih|为图形手上点Pi与触觉手上相应位置点Pi'之间的线段长度;
在一些实施例中,在图形手与虚拟物体的接触判断时:
所述图形手位姿是前一时刻的图形手位姿;
所述图形手的每一个指节圆台截面半径均增加Δr;
所述图形手的每一个指节半球半径均增加Δr;
通过以上改变得到的图形手用于图形手与虚拟物体的接触判断,根据所述球-圆台接触判断条件和球-球接触判断条件得到的碰撞球用于非嵌入接触约束集的构建。
在一些实施例中,在所述根据公式Fi=Gi·n·|Pig-Pih|计算第i个碰撞球与对应的虚拟指节接触的正压力Fi之后,还包括:
利用公式fi=u·ni·|Fi|计算虚拟手滑动过程中的摩擦力;其中,fi表示在第i个碰撞球处的摩擦力,u表示动摩擦系数,ni为第i个碰撞球与虚拟手指之间相对运动的法向量。
一种用于虚拟手力觉交互的接触处理系统,所述系统包括:
虚拟手构建模块,用于:
利用圆台铰链模型模拟真实手,得到虚拟手;所述虚拟手包括若干个圆台,每个所述圆台模拟所述真实手的每一个指节;掌指关节及两个指节间的关节采用球体模拟;所述虚拟手还包括若干个半球,每个半球位于模拟远端指节的圆台上,每个半球模拟所述真实手的每一个指尖;
利用球树模型模拟物体,得到虚拟物体;所述虚拟物体包括若干个带有编号的球体;
获取用户真实手的姿态;
利用所述真实手的姿态驱动虚拟手,称为触觉手;
将所述触觉手在虚拟场景中显示,得到图形手,并将所述虚拟物体在所述虚拟场景中显示;
球-圆台碰撞检测模块,用于:
构建所述球体与所述圆台之间的接触判断条件:和其中,|OC|j为虚拟物体上编号为j的球体的球心到图形手中圆台的中心轴线l的距离,Rj为虚拟物体上编号为j的球体的半径,M为虚拟物体上有待检测的球体个数,Cj表示虚拟物体上编号为j的球体的球心在中心轴线l上的垂足,E和D分别表示图形手中圆台上下底面的圆心,α表示图形手中圆台侧边与其中心轴线的夹角,r2和r1分别表示图形手中圆台上下底面的半径;
根据图形手位姿信息、虚拟物体位姿信息,以及所述球体与圆台之间的接触判断条件得到与所述图形手手指侧边接触的碰撞球信息;所述碰撞球信息包括碰撞球的编号、碰撞球的球心坐标和碰撞球的球体半径;所述碰撞球是所述虚拟物体中与所述图形手发生接触的球体;所述图形手手指侧边是手指圆台指节的侧边;所述图形手位姿信息用于图形显示;
球-圆台碰撞响应模块,用于:
利用和分别代表图形手每个手指的掌指关节角、近指关节角和远指关节角,根据所述图形手位姿信息,以及图形手与虚拟物体接触的碰撞球信息,构建图形手手指的侧边与虚拟物体的非嵌入接触约束其中N为虚拟物体上与图形手虚拟手指接触的球体个数;根据所述圆台与球体的非嵌入接触约束,对于图形手的每个手指,将其三个关节角和作为一个整体在非嵌入接触约束集下进行优化,求解得到不嵌入虚拟物体的图形手手指关节角信息;
接触力计算模块,用于:
根据所述图形手手指关节角信息和公式Fi=Gi·n·|Pig-Pih|计算第i个碰撞球与对应的虚拟手指接触的正压力Fi;其中,Gi为3×3刚度矩阵,n表示的单位向量,Oi表示第i个碰撞球的球心,Pi表示第i个碰撞球与虚拟手指侧边的接触点,|Pig-Pih|为图形手上点Pi与触觉手上相应位置点Pi'之间的线段长度;
在一些实施例中,在图形手与虚拟物体的接触判断时:
球-圆台碰撞检测模块,还包括以下特点:
所述图形手位姿是前一时刻的图形手位姿;
所述图形手的每一个指节圆台截面半径均增加Δr;
所述图形手的每一个指节半球半径均增加Δr;
通过以上改变得到的图形手用于图形手与虚拟物体的接触判断,根据所述球-圆台接触判断条件和球-球接触判断条件得到的碰撞球用于非嵌入接触约束集的构建。
在一些实施例中,还包括:端点接触处理模块,用于:
若碰撞球与模拟指尖的球体没有接触,则仅构建球体与圆台之间的接触约束。
在一些实施例中,在所述根据公式Fi=Gi·n·|Pig-Pih|计算第i个碰撞球与对应的虚拟指节接触的正压力Fi之后,还包括:
利用公式fi=u·ni·|Fi|计算虚拟手滑动过程中的摩擦力;其中,fi表示在第i个碰撞球处的摩擦力,u表示动摩擦系数,ni为第i个碰撞球与虚拟手指之间相对运动的法向量。
在一些实施例中,当涉及手掌交互时,先优化图形手的手掌位姿信息,通过矩阵变换得到图形手的手指位姿信息后,再根据图形手的手指位姿信息、虚拟物体的位姿信息,采用所述球-圆台碰撞检测模块、球-圆台碰撞响应模块、端点接触处理模块优化求解不嵌入虚拟物体的图形手手指关节角信息。
在一些实施例中,当处理多手指交互时,采用并行处理方式。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供了一种用于虚拟手力觉交互的接触处理方法及系统,以实现准确、高效的接触处理为目标,从虚拟手结构出发,考虑到人类手指各个关节粗细不同,将手指用圆台表示。在此基础上,采用球树模型构建虚拟物体,提出用于虚拟手和虚拟物体力觉交互的球-圆台接触处理系统,该系统在实现稳定、非穿透且较为真实的虚拟手力觉交互仿真的同时,能够达到较高(高于1kHz)的接触处理效率。利用圆台铰链模型模拟真实手,确保了虚拟手的可视化真实,利用球体与圆台之间的少量接触约束在降低计算复杂度的同时确保虚拟手指的侧边不嵌入虚拟物体,并可通过并行处理方式提高计算效率,从而有效解决了现有技术中简化的虚拟手模型与真实手的外形差距较大导致的交互过程中图形手和触觉手难以匹配,而导致视触觉反馈不一致的问题,以及接触处理效率低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的用于虚拟手力觉交互的接触处理方法的流程图。
图2为本发明实施例二提供的用于虚拟手力觉交互的接触处理系统的示意图。
图3为本发明实施例二提供的基于圆台铰链和不同层级球树的一种混合虚拟手模型。
图4为本发明实施例二提供的用于球-圆台离散碰撞检测的球-圆台接触状态示意图。
图5为本发明实施例二提供的球树模型与圆台模型接触约束存在端点优化异常问题。
图6为本发明实施例二提供的用于解决端点优化问题的物体球-指尖半球(包含指节圆台)接触状态示意图。
图7为本发明实施例二提供的基于接触约束预测的手指-物体交互接触处理过程示意图。
图8为本发明实施例二提供的虚拟手指与虚拟物体的接触力模型(部分接触)示意图。
图9为本发明实施例二提供的虚拟手力觉交互系统流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种用于虚拟手力觉交互的接触处理方法及系统,利用圆台铰链模型模拟真实手,确保了虚拟手可视化的逼真度,利用球体与圆台之间的接触约束确保虚拟手指的侧边不嵌入虚拟物体,从而有效解决了现有技术中简化的虚拟手模型与真实手的外形差距较大导致的交互过程中图形手和触觉手难以匹配,而导致视触觉反馈不一致的问题。
本发明目的在于克服现有技术的缺陷,提供一种用于虚拟手力觉交互的接触处理方法及系统,以实现高效、非穿透的接触处理为目标,从虚拟手结构出发,考虑到人类手指各个关节粗细不同,将手指用圆台表示。在此基础上,采用球树模型构建虚拟物体,提出用于虚拟手和虚拟物体力觉交互的球-圆台接触处理系统,该系统在实现稳定、非穿透且较为真实的虚拟手力觉交互仿真的同时,能够达到较高(高达1kHz)的接触处理效率。
在虚拟手触觉模拟中,将用户的手在虚拟环境中的化身称为触觉手(haptichand),其姿态为用户真实手的位姿在虚拟世界(OpenGL或者现有引擎,例如Unity、Unreal等。C++、c#等)中的直接映射。在图形显示中,将触觉手的视觉化身定义为图形手(graphichand)。
本发明的技术方案是:一种用于虚拟手力觉交互的接触处理系统,该系统由虚拟手构建模块、球-圆台碰撞检测模块、球-圆台碰撞响应模块、端点接触处理模块及接触力计算模块构成。其中,
虚拟手构建模块根据手指具体参数(包括每个手指各指节的长度和各指节两端的截面直径)建立圆台铰链虚拟手模型;
球-圆台碰撞检测模块用于确定虚拟手指是否与虚拟物体发生了碰撞,并返回碰撞信息;
球-圆台碰撞响应模块用于快速准确地计算图形手的合理位姿,以确保图形手不嵌入虚拟物体;
端点接触处理模块用于处理虚拟手指尖与虚拟物体接触可能出现的指尖悬空或者嵌入问题;
接触力计算模块根据碰撞检测模块得到的碰撞信息以及碰撞响应模块的优化结果来计算虚拟手与虚拟物体之间的接触力。以下将从虚拟手模型的构建出发,详细介绍上述模块。
值得说明以下三个问题:
(1)本发明提出的虚拟手力觉交互接触处理系统适用于不同的虚拟手交互应用,例如虚拟手单手抓取物体、双手操作物体、多人协作操作物体等,本发明提出的方法支持多物体、多手操作、多人协作。
(2)本发明重点在于虚拟手手指的建模与接触处理,虚拟手手掌可以有多种建模方式,例如球树模型、三角网格模型,本实施例虚拟手手掌采用球树模型构建。
(3)本发明提出的接触力计算模块能计算出虚拟物体与虚拟手交互过程中所有接触点处的正压力,在此基础上,可根据不同力反馈设备能够提供的力反馈形式(例如指尖力反馈)设计不同的反馈力计算模型,从而能使用户通过不同的力反馈设备体验不同的反馈力模式。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一:
如图1所示,本实施例提供了一种用于虚拟手力觉交互的接触处理方法,该方法包括:
S1、利用圆台铰链模型模拟真实手,得到虚拟手;所述圆台铰链模型包括若干个圆台,每个所述圆台模拟所述真实手的每一个指节;所述虚拟手还包括若干个半球,每个半球位于模拟末端指节的圆台上,所述半球用于模拟所述真实手的指尖;
S2、利用球树模型模拟物体,得到虚拟物体;所述虚拟物体包括若干个带有编号的球体;
S3、获取用户真实手的姿态;
S4、利用所述真实手的姿态驱动虚拟手,称为触觉手;
S5、将所述触觉手在虚拟场景中显示,得到图形手,并将所述虚拟物体在所述虚拟场景中显示。
在自由空间(即虚拟手与虚拟物体未接触)中,将所述触觉手在虚拟场景中显示,得到图形手,并将所述虚拟物体在所述虚拟场景中显示;在约束空间中,如果将触觉手的位姿直接用于图形手,图形手会嵌入虚拟物体,通过以下接触处理步骤得到保持在虚拟物体表面的图形手。
S6、构建所述球体与所述圆台之间的接触判断条件:和其中,|OC|j为虚拟物体上编号为j的球体的球心到图形手中圆台的中心轴线l的距离,Rj为虚拟物体上编号为j的球体的半径,M为虚拟物体上有待检测的球体个数,Cj表示虚拟物体上编号为j的球体的球心在中心轴线l上的垂足,E和D分别表示图形手中圆台上下底面的圆心,α表示图形手中圆台侧边与其中心轴线的夹角,r2和r1分别表示图形手中圆台上下底面的半径;
S7、根据图形手位姿信息、虚拟物体位姿信息,以及所述球体与圆台之间的接触判断条件得到与所述图形手手指侧边接触的碰撞球信息;所述碰撞球信息包括碰撞球的编号、碰撞球的球心坐标和碰撞球的球体半径;所述碰撞球是所述虚拟物体中与所述图形手发生接触的球体;所述图形手手指侧边是手指圆台指节的侧边;所述图形手位姿信息用于图形显示;
S8、利用和分别代表图形手每个手指的掌指关节角、近指关节角和远指关节角,根据所述图形手位姿信息,以及图形手与虚拟物体接触的碰撞球信息,构建图形手手指的侧边(即圆台)与虚拟物体(即球体)的非嵌入接触约束其中N为虚拟物体上与图形手手指接触的球体个数;根据所述圆台与球体的非嵌入接触约束,对于图形手的每个手指,将其三个关节角和作为一个整体在非嵌入接触约束集下进行优化,求解得到不嵌入虚拟物体的图形手手指关节角信息;
S9、根据所述图形手手指关节角信息和公式Fi=Gi·n·|Pig-Pih|计算第i个碰撞球与对应的虚拟手指接触的正压力Fi;其中,Gi为3×3刚度矩阵,n表示的单位向量,Oi表示第i个碰撞球的球心,Pi表示第i个碰撞球与虚拟手指侧边的接触点,|Pig-Pih|为图形手上点Pi与触觉手上相应位置点Pi'之间的线段长度。
在所述球-圆台接触判断条件和球-球接触判断条件中用到的图形手及其位姿,还包括以下特点:
所述图形手位姿是前一时刻的图形手位姿;
所述图形手的每一个指节圆台截面半径均增加Δr;
所述图形手的每一个指节半球半径均增加Δr;
通过以上改变得到的图形手用于图形手与虚拟物体的接触判断,根据所述球-圆台接触判断条件和球-球接触判断条件得到的碰撞球用于非嵌入接触约束集的构建。
在所述根据公式Fi=Gi·n·|Pig-Pih|计算第i个碰撞球与对应的虚拟指节接触的正压力Fi之后,还包括:
利用摩擦计算公式,例如虚拟手指在虚拟物体表面滑动,利用公式fi=u·ni·|Fi|计算虚拟手滑动过程中的摩擦力;其中,fi表示在第i个碰撞球处的摩擦力,u表示动摩擦系数,ni为第i个碰撞球与虚拟手指之间相对运动的法向量。
上述给出了本申请的较佳实施方式,本申请可以以许多不同的形式来实现,例如虚拟手模型的构建、虚拟手位姿优化方法以及交互力的计算方法等,并不限于本文所描述的实施方式。
实施例二:
如图2所示,本实施例提供了一种用于虚拟手力觉交互的接触处理系统,该系统包括:
虚拟手构建模块,用于:
利用圆台铰链模型模拟真实手,得到虚拟手;所述虚拟手包括若干个圆台,每个所述圆台模拟所述真实手的每一个指节;掌指关节及两个指节间的关节采用球体模拟;所述虚拟手还包括若干个半球,每个半球位于模拟远端指节的圆台上,每个半球模拟所述真实手的每一个指尖。
利用球树模型模拟物体,得到虚拟物体;所述虚拟物体包括若干个带有编号的球体。
获取用户真实手的姿态;
利用所述真实手的姿态驱动虚拟手,称为触觉手;
在自由空间中,将所述触觉手在虚拟场景中显示,得到图形手,并将所述虚拟物体在所述虚拟场景中显示;在约束空间中,如果将触觉手的位姿直接用于图形手,图形手会嵌入虚拟物体,通过以下功能模块的接触处理得到保持在虚拟物体表面的图形手。
本实施例中,虚拟手构建模块,采用圆台铰链模型构建虚拟手指,即采用圆台(上下截面直径大小不同)表示虚拟手指的各个关节,用一个球体连接两个相邻指节以表示关节,指尖采用半球表示。为了更好的模拟大拇指,可以采用其他模型(例如球树模型)构建大拇指的掌骨关节。
值得注意地是,本发明重点描述了虚拟手的手指构建模型,可以使用三角网格模型、球树模型等来构建虚拟手的手掌,均在本发明的保护范围内。
具体来讲,采用球树模型构建虚拟工具与虚拟物体,在提高tool-based的六自由度力觉合成方法的计算效率及非穿透模拟方面卓有成效。然而,采用八叉球树构建虚拟手,在实现虚拟手与虚拟物体交互过程中,随着交互/接触手指及接触数量增多,接触处理耗时也增多。人类真实手的指节可以近似成圆台,能够使用圆台铰链模型来表示虚拟手的手指,一个圆台代表手指的一个指节。直观上,用于虚拟手建模的圆台数量比球树模型所需球体的数量要少,与多层球树模型相比,使用圆台铰链模型来表示手指更有利于高效地执行虚拟手力觉交互的接触处理。
对于每一个用圆台构建的虚拟指节而言,包含三个关键参数,即指节的长度和指节上下两个端面的直径。上述三个参数,可以通过测量用户真实手的指节长度和每个关节处截面的直径获得。此外,为了视觉显示及交互逼真性的实现,采用一个球体来代表相邻指节之间的关节,并将一个半球连接到远端指节的圆台来代表指尖。
人类的手掌是由五个掌骨组成的复杂物体。大拇指掌骨有旋转自由度,其余四个掌骨的活动非常小,将大拇指的掌骨区域视为指骨,并像其他指骨一样使用圆台模型来表示。因此,虚拟手的每一根手指都使用包括三个圆台的铰链模型来建模。考虑到其他四个掌骨的运动范围较小,可将除拇指掌骨区域外的手掌作为刚体,进一步地可用八叉球树模型表示该刚体。图3给出了基于圆台铰链的一种虚拟手模型,其中手掌采用不同层级的八叉球树模型。
球-圆台碰撞响应模块,用于:
构建所述球体与所述圆台之间的接触判断条件(此处为手指侧边与虚拟物体的接触检测条件):和其中,|OC|j为虚拟物体上编号为j的球体的球心到图形手中圆台的中心轴线l的距离,Rj为虚拟物体上编号为j的球体的半径,M为虚拟物体上有待检测的球体个数,Cj表示虚拟物体上编号为j的球体的球心在中心轴线l上的垂足,E和D分别表示图形手中圆台上下底面的圆心,α表示图形手中圆台侧边与其中心轴线的夹角,r2和r1分别表示图形手中圆台上下底面的半径;
根据所述球体与圆台之间的接触约束得到所述图形手的手指位姿信息和碰撞球信息;所述碰撞球信息包括碰撞球的编号、球心坐标和球体半径;所述碰撞球是与所述图形手的手指发生接触的球体。
根据图形手位姿信息、虚拟物体位姿信息,以及所述球体与圆台之间的接触判断条件得到与所述图形手手指侧边接触的碰撞球信息;所述碰撞球信息包括碰撞球的编号、碰撞球的球心坐标和碰撞球的球体半径;所述碰撞球是所述虚拟物体中与所述图形手发生接触的球体;所述图形手手指侧边是手指圆台指节的侧边;所述图形手位姿信息用于图形显示。
本实施例中球-圆台碰撞检测模块,在虚拟手指采用圆台表示、虚拟物体采用球树模型表示的基础上,采用球-圆台碰撞检测算法确定虚拟手指是否与虚拟物体发生了碰撞,该算法充分考虑圆台虚拟手指各个截面半径不同的特点,能准确确定虚拟手指不同位置与物体的接触状态。
具体来讲:碰撞检测的目的是判断虚拟手化身在某一时刻是否与虚拟场景中的虚拟物体发生了接触,以及接触方式是怎样的。为了支持实时的接触处理,用于虚拟手交互的碰撞检测算法需要有较高的计算效率。同时,需要准确计算虚拟手与虚拟物体接触状态的相关参数,从而为碰撞响应提供精确的接触信息。本实施例提出球-圆台碰撞检测算法确定虚拟手指与虚拟对象的接触状态。
如图4所示,圆为虚拟物体上的球体,梯形表示模拟手指的圆台。点C是从球体球心O到圆台中心轴线l的垂足。D和E表示圆台两个圆底面的中心,其坐标分别为(xD,yD,zD)和(xE,yE,zE)。虚拟物体和手指之间的接触状态可以通过比较当前的|OC|(即物体球的中心O到虚拟手指中心轴线l的距离)和球体与圆台侧面相切时的阈值|OC|Γ(图4(a))来确定。如果满足|OC|≤|OC|Γ,则可以确定圆台与球发生了碰撞,|OC|可以用下式计算:
其中l1,l2,l3和l4通过以下公式计算:
假设圆台上下底部的半径分别为r2和r1(r2<r1),则可通过下式计算碰撞检测条件的阈值|OC|Γ:
其中,l5=(xO-xE)(xD-xE)+(yO-yE)(yD-yE)+(zO-zE)(zD-zE)。
如图4(b)所示,虽然满足条件|OC|≤|OC|Γ,但灰色虚线球体并未与圆台接触。更具体地说,当k>1+R/|DE|或k<-R/|DE|时,球体将不会与圆台接触。当k=1+R/|DE|时,球面与圆台的下底部(延伸)相切(即图4(c)中的黑色虚线球体O1);当k=-R/|DE|时,球体与圆台的上底部(延伸)相切(即图4(c)中的黑色虚线球体O2);当k=0时,垂足C与端点E重合;当k=1时,垂足C与端点D重合。总的来说,判断球体和圆台发生碰撞还需要满足另一个条件,即-R/|DE|<k<1+R/|DE|。因此,当满足以下条件可判定虚拟手指与虚拟物体发生了碰撞。
球-圆台碰撞响应模块,用于:
利用和分别代表图形手每个手指的掌指关节角、近指关节角和远指关节角,根据所述图形手位姿信息,以及图形手与虚拟物体接触的碰撞球信息,构建图形手手指的侧边(即圆台)与虚拟物体(即球体)的非嵌入接触约束其中N为虚拟物体上与图形手虚拟手指接触的球体个数;根据所述圆台与球体的非嵌入接触约束,对于图形手的每个手指,将其三个关节角和作为一个整体在非嵌入接触约束集下进行优化,求解得到不嵌入虚拟物体的图形手手指关节角信息。
本实施例中球-圆台碰撞响应模块,在球-圆台碰撞检测算法所得碰撞信息的基础上,采用球-圆台碰撞响应算法求解合理的虚拟手位姿,该算法构造适应虚拟手指不同半径截面的球-圆台接触约束,能优化求解出侧边不嵌入虚拟物体的虚拟手指位姿。
具体来讲:碰撞响应是力觉渲染的核心组件之一,该模块需要碰撞检测模块所得信息作为其输入,然后执行碰撞响应相关计算。在早期,虚拟手力觉交互的接触处理依赖于预先定义的手和/或物体接触的先验信息,根据实际操作行为和预定义操作行为之间的接近程度来执行碰撞响应,该方法在预定义的操作中表现良好,但在实际应用中,会出现虚拟手和被操纵对象之间不真实的接触(如相互穿透)。为了实现逼真的虚拟手交互,本实施例采用基于约束的方法来执行虚拟手力觉交互过程中的接触处理,具体而言是针对构建的虚拟手模型,建立优化目标并根据碰撞检测结果建立虚拟手与虚拟物体交互的非穿透约束,最终求解得到不穿透虚拟物体的虚拟手合理图形位姿。
在虚拟手触觉交互仿真中,将虚拟环境中用户手的直接映射化身称为触觉手(haptic hand),其姿态是通过将真实手的姿态(例如,HTC tracker获取手部六自由度位置信息,诺亦腾数据手套获取各手指指节的弯曲角度)直接映射到虚拟世界中得到的。将haptic hand的视觉化身定义为图形手(graphic hand),用于图形显示。为了虚拟手交互的逼真自然再现,需要确保交互过程中graphic hand不会穿透虚拟对象。
本实施例虚拟手手指采用圆台铰链模型,需要构造球-圆台接触约束来计算与虚拟物体交互过程中图形手的手指位姿信息(用于显示),其中 和分别代表每个手指的掌指关节角、近指关节角和远指关节角。对于每一个手指而言,将这三个关节角度作为一个整体进行优化,优化目标可以写成:
其中,PD/E指D或E的在全局坐标系下的坐标,指D或E的局部坐标,由虚拟手指指节长度确定。为包含中六维变量的齐次平移旋转矩阵。Ms(θs)为掌骨关节外展运动的旋转矩阵,θs为外展角度。为掌骨关节对于掌腕关节坐标系的齐次平移旋转矩阵,为近指关节相对于掌骨关节的平移旋转矩阵,为远指关节相对于近指关节的平移旋转矩阵。
因此,圆台与球面接触约束可表示为:
其中,Cj表示第j个约束条件,M为虚拟物体上与圆台接触的球的数目。
根据球-圆台碰撞检测模块中所述的球-圆台碰撞检测条件(式(5)),式(8)中球与圆台之间的接触约束可表示为:
其中,|OC|j为与圆台碰撞的第j个球体的球心O(xOj,yOj,zOj)到圆台中心轴线l的距离,Rj为该球体的半径,kj表示球心O(xOj,yOj,zOj)在中心轴线l上的垂足的位置,即公式(8)是约束的统一写法,公式(9)是约束的计算方法。
对于一个特定的手指,圆台的参数r1,r2和α是恒定的。将和代入式(2)和式(4),可以用待优化的参数表示式(9)。使用Taylor展开将接触约束线性化后,使用有效集方法迭代优化求解得到图形手的五个手指的关节角信息
端点接触处理模块,用于:
处理虚拟手指尖与虚拟物体接触可能出现的指尖悬空或者嵌入的问题。该模块通过确定虚拟物体球在手指圆台中心轴线上的位置,确定虚拟手手指与虚拟物体球的接触状态,并根据该状态确定碰撞响应约束优化求解时是采用球-圆台约束还是球-球约束。
具体来讲,采用球-圆柱碰撞响应算法执行虚拟手交互过程中,会出现手指指尖位姿信息优化异常的问题,如图5所示,(a)为图形手手指指尖悬空(即图形手与虚拟物体分离)的案例,(b)为图形手手指嵌入(即图形手穿透虚拟物体)的案例。
为了解决上述端点异常问题,本实施例构建了端点接触处理模块。虚拟手指指尖与物体上的球接触状态如图6所示,当连接在圆台底部的半球与物体球发生碰撞时,采用球-球碰撞检测确定虚拟手指尖与虚拟物体的接触状态,即通过比较指尖与虚拟物体上两球的球心距是否小于两球半径之和,具体如下式:
|OC|2≤(R+r2)2 (10)
其中,|OC|2=(xT-xO)2+(yT-yO)2+(zT-zO)2,(xT,yT,zT)和(xO,yO,zO)分别表示虚拟手指尖半球与虚拟物体球在全局坐标系中的球心坐标,R表示虚拟物体球的半径。
具体而言,根据球-圆台的碰撞检测条件,在保存碰撞球本身信息(包括球号、球心坐标、球半径)的同时,保存碰撞球的状态。在构建约束时,如果碰撞球的状态为其球心在圆台中心轴线上的位置满足式(11)条件下同时满足式(10),则将该球的接触约束建立为球-球接触约束,否则将该球的接触约束建立为式(8)所表示的球-圆台接触约束:
其中,R表示与圆台碰撞的球体的半径。球-球接触约束是指两球的球心距大于等于两球半径之和,是根据式(10)球-球碰撞检测条件得到的。每对球处理方式相同,不需要区分第几个球体。
公式(11)是根据图6中物体球和指尖半球,以及物体球与手指圆台的几何关系得到的。
k=-R*sinα/|DE|是物体球圆心与手指圆台上底面边缘的连线垂直于圆台侧边。
此外,当haptic hand嵌入虚拟物体较深时,会出现graphic hand优化异常的问题,即虚拟手指嵌入虚拟物体的现象。这主要是由于采用haptic hand作为碰撞主体,当haptic hand嵌入虚拟物体较深(甚至穿过)时,碰撞检测所得结果是当前时刻与haptichand接触的物体球。一方面,这些球有可能不在虚拟物体表面,导致无法建立表面接触约束;另一方面,当haptic hand穿透虚拟物体时,碰撞检测所得结果基本无效,导致无法建立恰当的球-圆台及球-球接触约束。从而使得无法优化得到合适的graphic hand位姿。
通过对上述haptic hand嵌入虚拟物体较深时存在的graphic hand优化异常问题的分析,本实施例采用graphic hand作为碰撞检测的主体,检测graphic hand的手指构成元素—圆台和球是否与物体球发生了碰撞,碰撞结果用于球-圆台及球-球接触约束的构建。此外,采用接触预测的思想缓解漏检问题,如图7所示,黑色梯形代表图形手在t-1时刻的指节,将t-1时刻的指节各截面半径均增加Δr,得到虚线梯形,然后使用第2节中描述的碰撞检测算法得到圆台-球接触对,再根据公式(8)建立相交圆台和球的接触约束,最后在此约束下便,采用Taylor展开将接触约束线性化后,使用有效集方法迭代优化求解虚拟手指的无穿透关节角度,图7所示的梯形t为计算出来的虚拟手手指。
作为一种可选的实施方式,当涉及手掌交互时,先优化图形手的手掌位姿信息,通过矩阵变换得到图形手的手指位姿信息后,再根据图形手的手指位姿信息、虚拟物体的位姿信息,采用所述球-圆台碰撞检测模块、球-圆台碰撞响应模块、端点接触处理模块优化求解不嵌入虚拟物体的图形手手指关节角信息。
接触力计算模块,用于:
计算虚拟手与虚拟物体交互过程中的接触力信息。该模块根据碰撞检测模块得到的接触信息以及碰撞响应模块的优化结果来计算交互过程中虚拟手指与虚拟物体之间的接触力信息。
值得注意地是,除了本发明提到的接触点及接触区域所涉及的接触力计算方法,根据本发明提出的碰撞检测模块得到的接触信息以及碰撞响应模块的优化结果来计算更为丰富的反馈力,例如可为仅能提供指尖反馈力的力反馈手套计算指尖法向接触力,也在本发明的保护范围内。
具体来讲,除了高效准确的碰撞检测、碰撞响应算法,虚拟手指与虚拟物体交互过程中的接触力计算是实现连续、稳定力反馈的又一关键环节。图8展示了虚拟手指与虚拟物体交互过程中的部分接触情况,其中灰色梯形表示一个虚拟指节(圆台)的截面,黑色圆表示与虚拟手指接触的虚拟物体表面上的部分球体。图8展示的虚拟手与虚拟物体的接触状态是采用碰撞检测算法及碰撞响应算法等一系列接触处理方法,最终通过优化求解所得。具体而言,在虚拟手与虚拟物体交互过程中,虚拟手指不嵌入虚拟物体。
假设虚拟物体表面有n个球与虚拟手指发生了接触,以图8为例,假设第i个球(球心为Oi)与虚拟手指侧边的接触点(即切点)为Pi,交互过程中虚拟手指受到的正压力(灰色箭头)为Fi,其方向与虚拟手指侧边垂直,即与向量方向相同。球心Oi的全局坐标已知,计算Fi的方向需要先求解Pi的全局坐标
接下来介绍Pi的全局坐标的一种计算方法。令的延长线与l的交点为通过式(3)可计算进而在已知α及Ci在中轴线l上的位置表征参数ki(式(4))的前提下,可计算出Qi的全局坐标及与的比值,从而计算出Pi的全局坐标将其记作Pig,即graphic hand上接触位置的坐标。采用同样的方式根据haptic hand上相应指节两端点的局部坐标可计算出与Pi相对应位置Pi'处的全局坐标,将其记作Pih,则可通过下式计算第i个球与相应虚拟指节接触的正压力Fi:
Fi=Gi·n·|Pig-Pih| (12)
进一步地,如果第i个球与虚拟手指之间有相对运动的趋势或者发生了相对运动,通过本发明计算的接触正压力可计算出第i个球与虚拟手指之间的摩擦力fi。如果两者之间发生了相对摩擦,虚拟物体表面的摩擦系数为u,则一种计算fi的方法为:
fi=u·ni·|Fi| (13)
其中,ni为第i个球与虚拟手指之间相对运动的法向量。
以上计算所得均为虚拟物体表面上某一个球与虚拟手指接触所产生的正压力和摩擦力。考虑到所用力反馈设备能够提供的反馈力形式及在手指上的施力位置,可进一步计算出力反馈设备所需提供的反馈力。本实施例具体流程图如图9所示。
所述用于虚拟手力觉交互的接触处理方法与系统,不仅可以用于单指单指节交互,还可以用于单指多指节交互以及多指交互,当涉及多指交互时,可采用并行处理方式来提高接触处理的效率,均在本发明的保护范围内。
值得注意地是,此处交互包括虚拟手触碰、抓取虚拟物体以及虚拟手在物体表面滑动等操作,还包括单人双手操作及多人协作。
所述用于虚拟手力觉交互的接触处理方法与系统,不仅支持虚拟手采用上述交互方式与虚拟场景中的一个虚拟物体执行交互操作,还支持虚拟手与虚拟场景中多种不同形状虚拟物体之间的交互,也在本发明的保护范围内。
值得注意地是,此处多种物体不仅指球体、圆柱体、立方体等具有规则几何形状的虚拟物体,还包括包含复杂几何特征(例如具有尖锐特征的形状、凹面形状)的虚拟物体。此外,虚拟物体可以是刚体还可以是变形体,均在在本发明的保护范围内。
本实施例提出的用于虚拟手力觉交互的接触处理系统具有以下优点:
1.该系统中虚拟手模型所采用的圆台模型有利于更加真实的虚拟手可视化,且方便执行虚拟手指与虚拟物体的碰撞检测算法和碰撞响应算法,实现高效稳定的接触处理;
2.提出的球-圆台碰撞检测算法,能够准确高效地确定虚拟手指侧边与虚拟物体的接触状态,且能适应复杂的接触类型,例如多点/多区域的滑动接触、凹面接触等;
3.提出的球-圆台碰撞响应算法,能够准确地将优化求解的图形虚拟手指侧边约束在虚拟物体的表面,有效避免虚拟手指嵌入虚拟物体,且能良好地适应复杂接触(多点/多区域的滑动接触、凹面接触等)的约束优化;
4.提出的端点接触处理方法,能够有效避免交互过程中虚拟手指尖悬空于物体表面一段距离或者嵌入虚拟物体表面,良好地支持指尖操作,例如指尖在物体表面滑动、两指指尖对捏等;
5.提出的用于虚拟手力觉交互的接触处理方法,能够有效计算虚拟手交互所涉及的多种接触类型(单点接触、多点接触等)的接触力,包括法向接触力和切向接触力;
6.提出的用于虚拟手力觉交互的接触处理方法,能够根据人手的解剖结构特点,采用并行处理方式对接触处理涉及的碰撞检测、碰撞响应、端点接触处理及接触力计算等方法进行加速,提高虚拟手力觉交互的效率;
7.提出的用于虚拟手力觉交互的接触处理方法与系统能够在不采用图形显卡加速的情况下获得1kHz的力觉交互更新频率,能用于游戏、娱乐等虚拟手交互应用系统的低成本开发。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种用于虚拟手力觉交互的接触处理方法,其特征在于,所述方法包括:
利用圆台铰链模型模拟真实手,得到虚拟手;所述圆台铰链模型包括若干个圆台,每个所述圆台模拟所述真实手的每一个指节;掌指关节及两个指节间的关节采用球体模拟;所述虚拟手还包括若干个半球,每个半球位于模拟末端指节的圆台上,所述半球用于模拟所述真实手的指尖;
利用球树模型模拟物体,得到虚拟物体;所述虚拟物体包括若干个带有编号的球体;
获取用户真实手的姿态;
利用所述真实手的姿态驱动虚拟手,称为触觉手;
将所述触觉手在虚拟场景中显示,得到图形手,并将所述虚拟物体在所述虚拟场景中显示;
构建所述球体与所述圆台之间的接触判断条件:和其中,|OC|j为虚拟物体上编号为j的球体的球心到图形手中圆台的中心轴线l的距离,Rj为虚拟物体上编号为j的球体的半径,M为虚拟物体上有待检测的球体个数,Cj表示虚拟物体上编号为j的球体的球心在中心轴线l上的垂足,E和D分别表示图形手中圆台上下底面的圆心,α表示图形手中圆台侧边与其中心轴线的夹角,r2和r1分别表示图形手中圆台上下底面的半径;
根据图形手位姿信息、虚拟物体位姿信息,以及所述球体与圆台之间的接触判断条件得到与所述图形手手指侧边接触的碰撞球信息;所述碰撞球信息包括碰撞球的编号、碰撞球的球心坐标和碰撞球的球体半径;所述碰撞球是所述虚拟物体中与所述图形手发生接触的球体;所述图形手手指侧边是手指圆台指节的侧边;所述图形手位姿信息用于图形显示;
利用和分别代表图形手每个手指的掌指关节角、近指关节角和远指关节角,根据所述图形手位姿信息,以及图形手与虚拟物体接触的碰撞球信息,构建图形手手指的侧边与虚拟物体的非嵌入接触约束其中N为虚拟物体上与图形手虚拟手指接触的球体个数;根据所述圆台与球体的非嵌入接触约束,对于图形手的每个手指,将其三个关节角和作为一个整体在非嵌入接触约束集下进行优化,求解得到不嵌入虚拟物体的图形手手指关节角信息;
2.根据权利要求1所述的用于虚拟手力觉交互的接触处理方法,其特征在于,在图形手与虚拟物体的接触判断时:
所述图形手位姿是前一时刻的图形手位姿;
所述图形手的每一个指节圆台截面半径均增加Δr;
所述图形手的每一个指节半球半径均增加Δr;
通过以上改变得到的图形手用于图形手与虚拟物体的接触判断,根据所述球-圆台接触判断条件和球-球接触判断条件得到的碰撞球用于非嵌入接触约束集的构建。
4.根据权利要求1所述的用于虚拟手力觉交互的接触处理方法,其特征在于,在所述根据公式Fi=Gi·n·|Pig-Pih|计算第i个碰撞球与对应的虚拟指节接触的正压力Fi之后,还包括:
利用公式fi=u·ni·|Fi|计算虚拟手滑动过程中的摩擦力;其中,fi表示在第i个碰撞球处的摩擦力,u表示动摩擦系数,ni为第i个碰撞球与虚拟手指之间相对运动的法向量。
5.一种用于虚拟手力觉交互的接触处理系统,其特征在于,所述系统包括:
虚拟手构建模块,用于:
利用圆台铰链模型模拟真实手,得到虚拟手;所述虚拟手包括若干个圆台,每个所述圆台模拟所述真实手的每一个指节;掌指关节及两个指节间的关节采用球体模拟;所述虚拟手还包括若干个半球,每个半球位于模拟远端指节的圆台上,每个半球模拟所述真实手的每一个指尖;
利用球树模型模拟物体,得到虚拟物体;所述虚拟物体包括若干个带有编号的球体;
获取用户真实手的姿态;
利用所述真实手的姿态驱动虚拟手,称为触觉手;
将所述触觉手在虚拟场景中显示,得到图形手,并将所述虚拟物体在所述虚拟场景中显示;
球-圆台碰撞检测模块,用于:
构建所述球体与所述圆台之间的接触判断条件:和其中,|OC|j为虚拟物体上编号为j的球体的球心到图形手中圆台的中心轴线l的距离,Rj为虚拟物体上编号为j的球体的半径,M为虚拟物体上有待检测的球体个数,Cj表示虚拟物体上编号为j的球体的球心在中心轴线l上的垂足,E和D分别表示图形手中圆台上下底面的圆心,α表示图形手中圆台侧边与其中心轴线的夹角,r2和r1分别表示图形手中圆台上下底面的半径;
根据图形手位姿信息、虚拟物体位姿信息,以及所述球体与圆台之间的接触判断条件得到与所述图形手手指侧边接触的碰撞球信息;所述碰撞球信息包括碰撞球的编号、碰撞球的球心坐标和碰撞球的球体半径;所述碰撞球是所述虚拟物体中与所述图形手发生接触的球体;所述图形手手指侧边是手指圆台指节的侧边;所述图形手位姿信息用于图形显示;
球-圆台碰撞响应模块,用于:
利用和分别代表图形手每个手指的掌指关节角、近指关节角和远指关节角,根据所述图形手位姿信息,以及图形手与虚拟物体接触的碰撞球信息,构建图形手手指的侧边与虚拟物体的非嵌入接触约束其中N为虚拟物体上与图形手虚拟手指接触的球体个数;根据所述圆台与球体的非嵌入接触约束,对于图形手的每个手指,将其三个关节角和作为一个整体在非嵌入接触约束集下进行优化,求解得到不嵌入虚拟物体的图形手手指关节角信息;
接触力计算模块,用于:
6.根据权利要求5所述的用于虚拟手力觉交互的接触处理系统,其特征在于,在图形手与虚拟物体的接触判断时:
球-圆台碰撞检测模块,还包括以下特点:
所述图形手位姿是前一时刻的图形手位姿;
所述图形手的每一个指节圆台截面半径均增加Δr;
所述图形手的每一个指节半球半径均增加Δr;
通过以上改变得到的图形手用于图形手与虚拟物体的接触判断,根据所述球-圆台接触判断条件和球-球接触判断条件得到的碰撞球用于非嵌入接触约束集的构建。
8.根据权利要求5所述的用于虚拟手力觉交互的接触处理系统,其特征在于,在所述根据公式Fi=Gi·n·|Pig-Pih|计算第i个碰撞球与对应的虚拟指节接触的正压力Fi之后,还包括:
利用公式fi=u·ni·|Fi|计算虚拟手滑动过程中的摩擦力;其中,fi表示在第i个碰撞球处的摩擦力,u表示动摩擦系数,ni为第i个碰撞球与虚拟手指之间相对运动的法向量。
9.根据权利要求5所述的用于虚拟手力觉交互的接触处理系统,其特征在于,当涉及手掌交互时,先优化图形手的手掌位姿信息,通过矩阵变换得到图形手的手指位姿信息后,再根据图形手的手指位姿信息、虚拟物体的位姿信息,采用所述球-圆台碰撞检测模块、球-圆台碰撞响应模块、端点接触处理模块优化求解不嵌入虚拟物体的图形手手指关节角信息。
10.根据权利要求5所述的用于虚拟手力觉交互的接触处理系统,其特征在于,当处理多手指交互时,采用并行处理方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210384860.4A CN115268623A (zh) | 2022-04-13 | 2022-04-13 | 一种用于虚拟手力觉交互的接触处理方法及系统 |
PCT/CN2022/111749 WO2023197485A1 (zh) | 2022-04-13 | 2022-08-11 | 一种用于虚拟手力觉交互的接触处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210384860.4A CN115268623A (zh) | 2022-04-13 | 2022-04-13 | 一种用于虚拟手力觉交互的接触处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115268623A true CN115268623A (zh) | 2022-11-01 |
Family
ID=83758633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210384860.4A Pending CN115268623A (zh) | 2022-04-13 | 2022-04-13 | 一种用于虚拟手力觉交互的接触处理方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115268623A (zh) |
WO (1) | WO2023197485A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339129B (zh) * | 2011-09-19 | 2013-12-25 | 北京航空航天大学 | 一种基于语音和手势的多通道人机交互方法 |
CN103869983B (zh) * | 2014-03-26 | 2016-09-28 | 南京信息工程大学 | 一种用于力触觉人机交互的柔性物体变形仿真方法 |
US10509468B2 (en) * | 2016-01-27 | 2019-12-17 | Tactai, Inc. | Providing fingertip tactile feedback from virtual objects |
CN109116992B (zh) * | 2018-08-31 | 2020-12-04 | 北京航空航天大学 | 一种用于虚拟手力反馈交互的碰撞响应系统 |
-
2022
- 2022-04-13 CN CN202210384860.4A patent/CN115268623A/zh active Pending
- 2022-08-11 WO PCT/CN2022/111749 patent/WO2023197485A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023197485A1 (zh) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108983978B (zh) | 虚拟手控制方法及装置 | |
Oprea et al. | A visually realistic grasping system for object manipulation and interaction in virtual reality environments | |
US7084869B2 (en) | Methods and apparatus for detecting and correcting penetration between objects | |
Popescu et al. | Virtual reality simulation modeling for a haptic glove | |
CN109116992B (zh) | 一种用于虚拟手力反馈交互的碰撞响应系统 | |
US20130307850A1 (en) | Action modeling device, method, and program | |
Kim et al. | Physics-based hand interaction with virtual objects | |
JP2009531745A (ja) | 変形可能な物体間の相互作用をモデル化する方法 | |
Li et al. | A surface mass-spring model with new flexion springs and collision detection algorithms based on volume structure for real-time soft-tissue deformation interaction | |
Kim et al. | Computationally efficient techniques for real time surgical simulation with force feedback | |
Abate et al. | A pervasive visual–haptic framework for virtual delivery training | |
CN112506339A (zh) | 一种用于穿戴式触觉交互的虚拟手力觉合成方法及系统 | |
JP2008512750A (ja) | 規則に基づいた逐次アプローチを利用した人間の姿勢を予測するためのシステムおよび方法 | |
Teleb et al. | Data glove integration with 3d virtual environments | |
CN109147057A (zh) | 一种面向穿戴式触觉设备的虚拟手碰撞检测方法 | |
Yukang et al. | Gesture-based target acquisition in virtual and augmented reality | |
Raees et al. | GIFT: Gesture-Based interaction by fingers tracking, an interaction technique for virtual environment | |
Shi et al. | Grasping 3d objects with virtual hand in vr environment | |
CN116185205B (zh) | 非接触手势交互方法和装置 | |
CN115268623A (zh) | 一种用于虚拟手力觉交互的接触处理方法及系统 | |
Mahdikhanlou et al. | Object manipulation and deformation using hand gestures | |
Han et al. | A framework for virtual hand haptic interaction | |
JPH11272157A (ja) | 物体の把持動作シミュレーション装置 | |
Wan et al. | A 4-layer flexible virtual hand model for haptic interaction | |
Fuchs et al. | Holistic animation and functional solution for digital manikins in context of virtual assembly simulations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |