一种基于虚拟现实体感交互的现代冰壶运动模拟系统和方法

文档序号:28263809发布日期:2021-12-31 17:34阅读:444来源:国知局
一种基于虚拟现实体感交互的现代冰壶运动模拟系统和方法

1.本发明属于计算机仿真技术领域,涉及计算机图形学、人机交互学和虚拟仿真技术,另外涉及到现代冰壶运动,是一种利用计算机图形学来数字虚拟化现代冰壶运动,并允许用户通过体感交互技术进行虚拟现代冰壶运动的方法。


背景技术:

2.冬季奥林匹克运动会(winter olympic games),简称为冬奥会。冰壶(curling)是冬奥会中一项以队为单位的冰上投掷竞技比赛项目。但是,由于现代冰壶运动通常需要在冰壶场馆中比赛,且需要冰壶、冰刷等设备,因此其相对严格的场地和装备要求使得大众参与其中的门槛很高。这些问题严重限制了现代冰壶运动的体验。
3.目前除在正式的冰壶场馆体验外,还存在“陆地冰壶”的体验方式。“陆地冰壶”是以冬奥会冰壶项目为基础,同样以队为单位的,在陆地上进行并更适合大众广泛开展的体育运动项目。“陆地冰壶”虽然能够达到一定的体验效果,但由于非冰面场地和设备的简易性等问题无法真实还原实际冰壶运动的效果,更无法起到冰壶运动的训练和比赛模拟功能。另外,目前也缺少利用虚拟现实体感交互技术来模拟现代冰壶运动的实际优质产品或技术方法。


技术实现要素:

4.针对目前进行现代冰壶运动体验所存在的各类局限与不足之处,本发明提供了一种虚拟现实体感交互的现代冰壶运动模拟系统和方法,用户能够通过简单的肢体动作交互冰壶和冰刷,在虚拟环境中完成冰壶手持移动、旋转、投掷、释放、使用冰刷扫冰的一系列动作,以提供良好的现代冰壶运动交互体验。
5.本发明采用的技术方案如下:
6.一种基于虚拟现实体感交互的现代冰壶运动模拟系统,借助计算机、体感传感器、显示设备和虚拟仿真软件实现。
7.它以个人计算机、显示设备、体感输入设备为硬件基础,通过个人计算机运行本专利中的软件来进行虚拟现实的模拟,再利用显示设备将结果提供给用户和观览者。
8.该系统的硬件部分包括个人计算机,持握式体感交互控制器和显示设备。其中:
9.1.个人计算机:用于运行本系统中的软件。它必须是一台能够流畅运行本系统软件的个人电脑,与本系统中的其他硬件具有良好的兼容性。作用是流畅运行本系统的软件,接收来自体感交互控制器的输入信息并将其发送给软件,软件再根据内置功能将交互结果通过显示设备进行输出。
10.2.持握式体感交互控制器:用户可以使用两个体感交互控制器与本系统的软件进行交互。控制器必须在本系统中与软件和个人计算机兼容(例如htc公司生产的vive操控手柄)。作用是接收用户的体感动作输入信息,并将它们通过个人计算机上的接口传给软件。
11.3.显示设备:用于显示本系统中的视觉信息,为用户和其他观览者展示虚拟现实
内容。
12.软件部分为基于虚拟现实体感交互的现代冰壶运动模拟软件,包括体感交互输入模块、逻辑判断模块和视觉显示模块。其中:
13.1.体感交互输入模块用于收集与处理用户的动作输入信息,信息可被逻辑判断模块随时进行调用。它能够接收体感控制器传入的用户动作数据,并将这种动作状态与细节传达给逻辑判断模块。
14.2.逻辑判断模块用于控制系统的整体逻辑,接收来自体感交互输入模块提供的用户输入信息,并进行逻辑运算以调用指定的功能,再通过视觉显示模块将交互结果反馈给用户。逻辑判断模块中包含了本虚拟现实交互系统中所有的功能逻辑,是本系统的核心。它还管理当前运行时所处的功能模块,可以根据用户的输入信息切换当前运行的功能模块,以实现不同的功能和运算。
15.3.视觉显示模块用于运算处理视觉信息,并将结果通过显示屏进行输出。当逻辑判断模块调用视觉显示模块时,该模块将显示相应的视觉信息,以及接收来自逻辑判断模块传输的命令,加载不同的资源,在显示设备上显示交互结果。本虚拟现实交互系统着重对现代冰壶运动进行模拟,显示模块将根据逻辑判断模块的数据,模拟冰刷的移动以及冰壶的移动、行进路线和预测轨迹信息。
16.一种基于虚拟现实体感交互的现代冰壶运动模拟方法,包括以下步骤:
17.1.使用持握式体感控制器移动冰壶的步骤。
18.①
用户以站姿将两个持握式体感控制器分别握在双手中,系统将持握式体感控制器的位置映射到虚拟环境中。在虚拟环境中将会出现虚拟的“手”,其位置即由控制器所映射。另外,虚拟环境的地面上会出现虚拟冰壶赛道和一个虚拟冰壶。
19.②
用户在双手持握体感控制器的前提下,由站姿转变为准备投掷冰壶的蹲姿。此时用户的右手应位于身体前方,左手自然下垂于一侧。用户将右侧体感控制器所控制的“手”移动到虚拟场景中的冰壶手柄上后,按下体感控制器上的按键(如可设定为右手柄下方的扳机键),虚拟的“手”会自动握住虚拟的冰壶;若用户松开按键,则虚拟的“手”将松开冰壶,将回到

的状态。
20.③
在上一步的基础上,若用户在按住右体感控制器按键不松开的前提下移动右手位置,则虚拟冰壶会同虚拟的“手”随用户的该行为而移动(不会在竖直方向上移动)。
21.2.使用持握式体感控制器投掷与释放冰壶的步骤。
22.①
在使用持握式体感控制器移动冰壶的基础上,若用户通过改变身体重心等方式,持握体感控制器使其沿身体前向移动并使得移动距离超出设定阈值后,系统则会判定虚拟冰壶被投掷出去。此时虚拟的“手”会和冰壶一起移动,移动的速度向量与超出阈值时体感控制器的速度向量一致。
23.②
冰壶被投掷后,用户无法再次改变虚拟冰壶的速度,但能够在不松开按键的前提下,以垂直地面方向的轴旋转右体感控制器,从而改变虚拟的“手”和冰壶的旋转角度(以虚拟场景的“上方向”为轴)。
24.③
当用户决定释放冰壶时,可松开右体感控制器的按键。之后虚拟的“手”松开冰壶,冰壶则会以之前的线速度和释放时的角速度移动和旋转,从而完成冰壶的释放。
25.④
在虚拟赛道上另设置了“交付线”,它是一条垂直于冰壶释放方向的横线。虚拟
冰壶超过了“交付线”时,若用户仍没有松开按键,则冰壶会被强制脱离控制而释放出去。这一设定是为了匹配现代冰壶运动的一条比赛规则,即必须在“交付线”前释放冰壶。
26.⑤
冰壶被释放后,其移动的具体方式由逻辑判断模块所控制。逻辑判断模块还会预测冰壶的行进路线,并将数据输入给视觉显示模块,后者则会对冰壶的已运动轨迹和预测的行进路线进行渲染工作,以提供给用户更良好的体验。但若冰壶超出了虚拟赛道范围,则会立即停止移动。
27.3.使用持握式体感控制器扫冰的步骤。
28.①
虚拟冰壶在场景出现后,同时会在其右侧生成虚拟的冰刷,并等待冰壶的释放。一旦冰壶被释放出去,冰刷便会迅速移动到“交付线”前方,并位于虚拟冰壶的行进轨迹上。
29.②
虚拟冰壶被释放后,视觉显示模块会将释放冰壶的视角转变为扫冰视角,以俯视并平行于冰壶的移动方向视角来方便用户进行扫冰。用户可由蹲姿俯身站起,并将两个体感控制器一上一下地置于身体前(如可设定为左控制器在下,右控制器在上),作为扫冰的预备姿势。当视角转变完成后,虚拟环境会出现两只虚拟的“手”并握住冰刷,它们对应了两个体感控制器。
30.③
此时,用户可通过沿身体前向同时移动两个体感控制器,使虚拟冰刷在垂直于冰壶行进方向上移动以实现扫冰操作;用户还能够以下方体感控制器为轴心,以身体右方向为轴旋转上方体感控制器,从而改变虚拟冰刷的持握部分以底端为轴心,冰壶行进方向为轴的旋转角度。在此过程中,虚拟的“手”与冰刷的相对位置保持不变。
31.④
用户可选择在冰壶移动的任意时刻进行扫冰操作,直到冰壶超出了虚拟环境中设定的“有效线”(类似于“交付线”,位于冰壶释放区域的远端),即“交付线”和“有效线”间是可扫冰范围,超出后冰刷将自动停下。另外,若冰壶超出了所设定的虚拟冰壶赛道范围,冰刷也会停止交互响应。扫冰操作能够使虚拟冰壶移动更远。
32.⑤
逻辑判断模块会实时监测冰刷是否可能会与虚拟环境中的冰壶发生接触,并根据冰壶到冰刷底端的距离,使冰刷自动抬高。冰刷被抬高时,将取消用户的交互响应。
33.通过上面所述,用户可以使用持握式体感设备与基于虚拟现实体感交互的现代冰壶运动模拟系统中的虚拟设备进行交互。本发明的目的是通过使用本专利中的体感交互方法,让使用者在相对自由区域能体验一种交互内容丰富的沉浸式现代冰壶运动。
34.使用本发明中的系统与方法,可以带来如下有益效果:
35.1.利用虚拟现实技术,使用目前较为成熟的相关硬件设备,展示现代冰壶运动。由于任何对冰壶运动感兴趣的大众都可以在相对自由区域进行体验,从而大大降低了这项运动的门槛。解决了现实中现代冰壶运动体验的:场地环境要求较高、使用真实冰壶和冰刷的不便、资源消费较多的问题。有利于这项冰雪运动的推广。
36.2.结合体感交互技术,解决了因体验人员自身技能水平不足造成的体验效果差的问题。用户通过简单的交互,就可以专注于体验完整的现代冰壶运动,而无需为自身技能或比赛规则等问题过于苦恼,从而增加了体验的互动性和趣味性。
附图说明
37.图1为本发明所涉及的硬件设备组成框图
38.图2为本发明所涉及的交互系统组成框图
39.图3为本发明所模拟的冰壶赛道样式
40.图4为本发明所模拟的冰壶样式(左:侧视图,右:俯视图)
41.图5为本发明所模拟的冰刷样式(左:侧视图,右:俯视图)
42.图6为移动冰壶交互方式的示意图(小人表示用户的动作状态)
43.图7为移动冰壶交互的方法流程图
44.图8为冰壶投掷和释放交互方式的示意图(小人表示用户的动作状态)
45.图9为用于冰壶移动和路线预测的相关物理参数
46.图10为冰壶投掷和释放的方法流程图
47.图11为使用冰刷扫冰的示意图(小人表示用户的动作状态)
48.图12为冰刷躲避冰壶接触的方法说明图
49.图13为交付冰壶的视角说明图
50.图14为扫冰的视角说明图
51.图15为使用冰刷扫冰的方法流程图
具体实施方式
52.下面结合附图给出本发明的具体实施方式。
53.基于虚拟现实体感交互的现代冰壶运动模拟系统,包括硬件设备和系统软件。
54.硬件设备的组成框图如图1所示,包括个人计算机,持握式体感交互控制器和显示设备:
55.个人计算机,用于运行系统软件,输出视频信号至显示设备。它必须是一台能够流畅运行基于虚拟现实体感交互的现代冰壶运动模拟软件,并与其他硬件很好兼容的个人电脑。
56.持握式体感交互控制器,用于将用户的体感信息输入至个人计算机,从而实现交互功能。
57.显示设备,用于显示本系统中的视觉信息,为用户和其他观览者展示内容。
58.软件部分安装在计算机内,下面分别介绍各模块的实现方法:
59.软件部分包括体感交互输入模块、逻辑判断模块和视觉显示模块。
60.1.体感交互输入模块,用于采集和处理用户的动作输入信息,并将其转换成利用c#语言编写的命令,主要功能是将体感交互控制器输入的数据传入到交互系统中,等待逻辑判断模块使用。
61.2.逻辑判断模块,包含交互软件的主要逻辑处理功能,通过c#实现。此模块主要用于控制整体逻辑,根据体感交互控制器提供的用户输入信息进行判断,再调用视觉显示模块将交互结果反馈给用户。
62.3.视觉显示模块,用于运算处理视觉信息,以及接收来自逻辑判断模块传输的命令,加载不同的资源,在显示设备上显示交互结果。
63.在这里,本虚拟现实交互系统着重对现代冰壶运动进行模拟,显示模块将根据逻辑判断模块的数据,对冰壶的投掷和释放过程以及使用冰刷的扫冰过程进行模拟。其中,本系统中模拟的冰壶赛道样式、冰壶样式和冰刷的样式如图3、图4和图5所示。
64.一种基于虚拟现实体感交互的现代冰壶运动模拟方法,包括以下步骤:
65.1.使用持握式体感控制器移动冰壶的步骤。
66.软件实现过程中执行以下逻辑:
67.①
视觉显示模块会在虚拟环境中渲染出虚拟的“手”和虚拟冰壶。当用户移动右体感控制器时,体感交互输入模块会获取其移动增量,并将值输入给逻辑判断模块,再利用该值更新虚拟的“手”的位置。计算完毕后,体感交互输入模块将调用视觉显示模块以更新“手”的位置。
68.②
当“手”的位置移动至虚拟冰壶的手柄附近时,体感交互输入模块会监测用户是否按下了右体感控制器的按键,并将结果输入到逻辑判断模块。若用户按住按键,该模块会更新“手”到冰壶手柄位置,并调用视觉显示模块使“手”渲染为握住冰壶的状态;若用户没有按住按键,则回到

步骤。
69.③


的基础上,体感输入模块会一直监测用户是否按住按键并接收控制器的移动增量。这些信息将输入到逻辑判断模块,并在用户不松开按键的前提下使得虚拟冰壶同“手”的位置随控制器的移动而改变,但不会改变二者在虚拟环境的竖直方向上的高度。同样的,视觉显示模块会实时被调用以渲染“手”和冰壶的新位置。
70.2.使用持握式体感控制器投掷与释放冰壶的步骤。
71.软件实现过程中执行以下逻辑:
72.①
冰壶的投掷和释放交互建立在移动冰壶的交互基础上进行。体感交互输入模块除按键状态和控制器的移动增量信息外,还会获取控制器的前向,并输入信息到逻辑判断模块。逻辑判断模块则会监视冰壶沿用户身体前向的移动距离,若超过设定阈值则判定冰壶被投掷出去。此时模块会设置“手”和冰壶的速度向量,并计算二者新的位置以调用视觉显示模块来更新渲染结果。对于阈值的设置,可通过现实世界中用户的控制器纵向移动范围来确定:即测量出用户在手臂放松下垂情况下的控制器位置与手臂伸直时能移动到的沿身体前向的最远位置之间的距离,以此范围作为阈值,使控制器在此范围内移动时使冰壶跟随移动,否则冰壶认定被交付出去。本专利所设的阈值为0.4m。
73.②
冰壶判定被投掷后,体感交互输入模块将监听用户的按键状态与右控制器的旋转信息,并输入给逻辑判断模块。后者会根据旋转信息改变“手”和冰壶以虚拟环境的“上方向”为轴的旋转角度,并调用视觉显示模块渲染结果。逻辑判断模块还会在用户松开按键时,根据旋转信息设置冰壶的角速度,加上冰壶的原线速度信息,使冰壶释放出去。
74.③
逻辑判断模块还会判断冰壶是否超过了“交付线”(见图3)且用户没有松开按键。在这种情况下,该模块会强制执行步骤

,使冰壶释放出去。
75.④
冰壶释放后的移动由逻辑判断模块所控制,该模块还会预测冰壶的行进路线,并将数据输入给视觉显示模块,后者则会对冰壶的已运动轨迹和预测的行进路线进行渲染工作。当冰壶超出了虚拟赛道的范围,则立即停止移动。
76.其中,冰壶的移动和路线预测的方法以下文算法所述进行:首先,在冰壶运动的某一时刻,设其线速度为角速度为av(规定逆时针转动为正值)、与移动方向相反的摩擦力为垂直移动方向的摩擦力为如图9所示。
77.下面将建立起冰壶移动的物理模型。
78.对于首先考虑其大小(模长)的计算:设冰壶施加于赛道的正压力大小为n,其
与赛道间的动摩擦因数为μ,由滑动摩擦力的计算公式可得:
79.f
y
=μ
·
n
ꢀꢀꢀ
(2.1)
80.对于冰壶,易得其施加于赛道的正压力大小即为其所受重力g,即:
81.n=g
ꢀꢀꢀ
(2.2)
82.设冰壶的质量为m,其所处位置的重力加速度为g,由重力的定义可得:
83.g=m
·
g
ꢀꢀꢀ
(2.3)
84.将(2.3)和(2.2)代入(2.1)中可得:
85.f
y
=μ
·
n=μ
·
g=μ
·
m
·
g
ꢀꢀꢀ
(2.4)
86.由(2.4)可知,当已知动摩擦因数、冰壶质量和重力加速度时,即可计算出的大小。
87.另根据滑动摩擦力的性质,可知的方向即为的反方向(由得到);结合(2.4)可得:
[0088][0089]
对于当av为正值时,其方向由的方向逆时针旋转90
°
得到;否则由的方向顺时针旋转90
°
得到。该方向由所表示。
[0090]
设冰壶移动的横向受力因子为hf,则的大小定义为:
[0091]
f
x
=av
·
hf
ꢀꢀꢀ
(2.6)
[0092]
易知,的大小由av和hf共同决定。
[0093]
最后,对冰壶受力分析可知,其移动过程中所受合力全部由摩擦力构成;其中该摩擦力由和进行矢量和求得,即由(2.5)和(2.6)得:
[0094][0095]
其中为的垂直方向。
[0096]
以上为冰壶受力的物理模型建立过程。下面将建立计算和av所用的物理模型。
[0097]
设冰壶移动的线加速度为线速度的增量为时间增量为dt,由牛顿第二运动定律和加速度定义可得:
[0098][0099]
由(2.8)可推得:
[0100]
[0101]
由(2.9)得到的即可更新
[0102]
对于av的更新,仍使用非完全符合物理定律的经验模型。
[0103]
设av的变化仅由f
y
造成,且始终令其数值减少;设av的增量为dav、时间增量为dt,则由(2.4)并类比(2.8)定义:
[0104][0105]
由(2.10)推出:
[0106][0107]
另外,尽管av为标量,但其值表示了冰壶的旋向,即逆时针为正值,顺时针为负值。因此,影响其数值的dav也应有正负之分。于是设转动受到的摩擦力方向为afdir,其值为1(顺时针转动时)或

1(逆时针转动时),使其与dav相乘便可实现始终阻碍冰壶沿原旋向继续旋转的效果。
[0108]
最后,类似于(2.6)所述关于使用经验模型的原因,设角速度增量因子为davf,用于矫正角速度增量。
[0109]
综上,根据(2.11)和afdir与davf的引入,使用
[0110][0111]
更新av。
[0112]
再建立好以上物理模型之后,便可计算出冰壶的移动。设冰壶的位置增量为ds、旋转角度增量为da、时间增量为dt,由速度定义可得则:
[0113][0114]
da=

av
·
dt
ꢀꢀꢀ
(2.14)
[0115]
据此可对冰壶的移动进行完整的迭代过程,即每帧可通过由(2.13)和(2.14)得到的ds与da来得到冰壶新的位置和旋转角度;也可每帧通过循环迭代(以线速度和角速度变为0为迭代结束标志),对冰壶的移动和旋转进行预测,得到该帧到冰壶最终停止之间的全部位置和旋转信息。
[0116]
3.使用持握式体感控制器扫冰的步骤。
[0117]
软件实现过程中执行以下逻辑:
[0118]

视觉显示模块将在虚拟的“手”和虚拟冰壶渲染完毕后,在冰壶右侧渲染出虚拟的冰刷。逻辑判断模块会在判定冰壶被释放后,使冰刷的位置迅速移动到“交付线”前方,并位于虚拟冰壶的行进轨迹上。
[0119]

视觉显示模块将实时根据冰刷的新位置使其渲染。同时,视觉显示模块还会将释放冰壶的视角转变为扫冰视角,以俯视并平行于冰壶移动方向的视角来方便用户进行扫冰操作;扫冰时为使用户能够清晰地观察到冰壶的位置和移动方向,还在上方添加了正交透视的俯视相机,并使两个相机的渲染内容同屏出现(见图13和图14)。扫冰时,该模块还会渲染两个“手”的位置到冰刷的抓握点上。
[0120]

体感交互输入模块会检测两个体感控制器沿身体前向的移动增量的平均值,并将该值作为冰刷在垂直于冰壶行进方向上移动的移动增量;另外,当以下方的体感控制器
为轴心,以身体右方向为轴旋转上方的体感控制器时,该模块会以两个控制器的位置向量相减得到的方向向量与垂直地面的方向向量间的角度,旋转虚拟冰刷的持握部分以其底端为轴心,冰壶行进方向为轴的旋转角度。上述交互如图11所示。此过程中,两个“手”与冰刷的相对位置保持不变。以上数据计算完毕后,将调用视角显示模块渲染冰刷和“手”。
[0121]

逻辑判定模块还会判断冰壶是否位于“交付线”和“有效线”之间,以及是否超出了冰壶的赛道范围,如果不在两线之间或超出范围,则冰刷停止移动和交互响应。并调用视觉显示模块更新渲染结果。
[0122]

最后,冰刷会适时自动抬高以防止和冰壶相接触。逻辑判定模块会实时监测冰刷底端到赛道上的任一冰壶的距离,并使得在检测范围内,距离越近,冰刷自动抬起的高度越高;另外当冰刷被抬高时,停止冰刷的扫冰响应,如图12所示。视觉显示模块会根据综合数据渲染出冰刷应处于的位置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1