一种拉力模拟方法及系统转让专利

申请号 : CN201510105394.1

文献号 : CN104699246B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘宛平黄和青何文韬

申请人 : 深圳威阿科技有限公司

摘要 :

本发明涉及一种拉力模拟方法及系统,属于虚拟现实应用领域。该方法及系统通过把使用者作用在推拉力计上的作用力输入到虚拟现实软件中,使这个真实的力变量作用于虚拟现实中的虚拟物体,以改变物体的受力状态,从而能够在特定的虚拟应用场景下,给用户带来真实作用力的体验,在3D模拟训练中,提高训练质量,效果更逼真。

权利要求 :

1.一种拉力模拟方法,其特征在于,包括以下步骤:

建模步骤,根据用户选择的模拟场景建立包含拉力模型函数以及拉力传感器的用于模拟真实拉力场景的3D受力模型;

初始化步骤,初始化建模步骤中3D受力模型的软件参数和拉力获取数据链路的软件参数;

拉力获取步骤,读取拉力传感器发送至PC端的数据包;

拉力解析步骤,PC端解析数据包,计算出拉力值;

拉力作用步骤,将拉力解析步骤得到的拉力值作用在3D虚拟物体上,改变物体的受力状态,然后重复拉力获取步骤;

采用Unity 3D模型函数作为上层函数,上层软件通过Unity 3D平台模拟空中跳伞,以两个垂直悬挂的拉力传感器来模拟降落伞的左右控制杆,初始化虚拟场景,初始化人和降落伞的起始速度,空气密度;加载动态链接库文件,调用底层接口,获取到实时的左右两个拉力数据作为输入变量,通过循环调用Unity 3D自带的添加作用力的接口函数使拉力数据作用于虚拟的人的左右手控制降落伞的左右控制杆,依据实现建好的人和降落伞受力的数学模型,改变人和伞的运动速度和方向,最终使人安全着地;实现随着作用于拉力传感器上的拉力大小变化而影响虚拟中对象的物理受力情况。

2.根据权利要求1所述的拉力模拟方法,其特征在于,所述拉力获取步骤进一步包括:缓冲区建立子步骤,用于在与拉力传感器相连的PC端建立存储拉力值的缓冲区;

拉力测量子步骤,用于测量当前时刻拉力传感器的拉力;

拉力值传输子步骤,用于将拉力传感器的拉力值存储至缓冲区。

3.根据权利要求2所述的拉力模拟方法,其特征在于,所述缓冲区建立子步骤中拉力传感器与电脑之间通过串口连接。

4.根据权利要求1所述的拉力模拟方法,其特征在于,所述建模步骤中的所述拉力模型函数是Unity 3D模型函数。

5.一种拉力模拟系统,其特征在于,包括以下模块:

建模模块,用于根据用户选择的模拟场景建立包含拉力模型函数以及拉力传感器的用于模拟真实拉力场景的3D受力模型;

初始化模块,用于初始化3D受力模型的软件参数和拉力获取数据链路的软件参数;

拉力获取模块,用于读取拉力传感器发送至PC端的数据包;

拉力解析模块,用于在PC端解析数据包,计算出拉力值;

拉力作用模块,将拉力解析模块得到的拉力值作用在3D虚拟物体上,改变物体的受力状态,然后调用拉力获取模块;

采用Unity 3D模型函数作为上层函数,上层软件通过Unity 3D平台模拟空中跳伞,以两个垂直悬挂的拉力传感器来模拟降落伞的左右控制杆,初始化虚拟场景,初始化人和降落伞的起始速度,空气密度;加载动态链接库文件,调用底层接口,获取到实时的左右两个拉力数据作为输入变量,通过循环调用Unity 3D自带的添加作用力的接口函数使拉力数据作用于虚拟的人的左右手控制降落伞的左右控制杆,依据实现建好的人和降落伞受力的数学模型,改变人和伞的运动速度和方向,最终使人安全着地;实现随着作用于拉力传感器上的拉力大小变化而影响虚拟中对象的物理受力情况。

6.根据权利要求5所述的拉力模拟系统,其特征在于,所述拉力获取模块进一步包括:缓冲区建立子单元,用于在与拉力传感器相连的PC端建立存储拉力值的缓冲区;

拉力测量子单元,用于测量当前时刻拉力传感器的拉力;

拉力值传输子单元,用于将拉力传感器的拉力值存储至缓冲区。

7.根据权利要求6所述的拉力模拟系统,其特征在于,所述缓冲区建立子单元中拉力传感器与电脑之间通过串口连接。

8.根据权利要求5所述的拉力模拟系统,其特征在于,所述建模模块中的所述拉力模型函数是Unity 3D模型函数。

说明书 :

一种拉力模拟方法及系统

技术领域

[0001] 本发明涉及一种拉力模拟方法及系统,属于虚拟现实应用领域。

背景技术

[0002] 虚拟现实是利用电脑产生一个三维空间的虚拟世界,在佩戴3D头盔(Oculus Rift)的前提下,提供关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。
[0003] 虚拟现实是多种技术的综合,包括实时三维计算机图形技术,广角(宽视野)立体显示技术,对观察者头、眼和手的跟踪技术,以及触觉/力觉反馈、立体声、网络技术、语音输入输出技术等。
[0004] 虚拟现实可以用于模拟训练应用。例如:医学方面的可以在虚拟环境中建立人体的虚拟模型,学生可以很容的了解人体的内部个器官结构比采用教科书的方式效果好很多,在军事航空航天方便可以模拟航天驾驶,虚拟的战场,大大的降低军队的训练成本,并提高安全性和方便性,在游戏领域,使用者可以完全沉浸在3D虚拟游戏世界中,可以带来如同身临其境的感官体验。
[0005] 在人机交互时,某些模拟训练场景下如果使用者需要推或拉动虚拟世界中的一个物体,如一个虚拟的木箱,常用的方法是通过操作鼠标,键盘,触摸屏或游戏操作杆等输入信号,然后由程序产生一个虚拟的力作用于物体,这样的操作无法让使用者感受移动物理说需要的力的大小,并且无法实时模拟在力的作用下物体的受外力大小的改变,降低了使用者的真实体验效果。
[0006] 因此,需要提供一种方法,可以让使用者在操作虚拟场景中的物体时能够真实的感觉到自己提供了多大的力量作用在虚拟物体上,从而达到人机交互的效果来弥补技术缺陷。

发明内容

[0007] 本发明主要是解决现有技术所存在的无法让使用者感受移动物理说需要的力的大小,并且无法实时模拟在力的作用下物体的受外力大小的改变,降低了使用者的真实体验效果等的技术问题;提供了一种拉力模拟方法及系统。该方法及系统通过把使用者作用在推拉力计上的作用力输入到虚拟现实软件中,使这个真实的力变量作用于虚拟现实中的虚拟物体,以改变物体的受力状态,从而能够在特定的虚拟应用场景下,给用户带来真实作用力的体验,在3D模拟训练中,提高训练质量,效果更逼真。
[0008] 本发明的上述技术问题主要是通过下述技术方案得以解决的:
[0009] 一种拉力模拟方法,包括以下步骤:
[0010] 建模步骤,根据用户选择的模拟场景建立包含拉力模型函数以及拉力计的用于模拟真实拉力场景的模拟模型;
[0011] 初始化步骤,初始建模步骤中所使用的拉力计的初始拉力参数;
[0012] 拉力获取步骤,测量拉力计在当前时刻所承受的拉力;
[0013] 拉力分析步骤,根据拉力测量步骤所获取的拉力并结合拉力模型函数得到在下一时刻的预测拉力值;
[0014] 拉力反馈步骤,将拉力分析步骤得到的下一时刻的预测拉力值反馈至模拟模型,然后重复拉力获取步骤。
[0015] 优化的,上述的拉力模拟方法,所述拉力获取步骤进一步包括:
[0016] 缓冲区建立子步骤,用于在与拉力计相连的电脑侧建立用于存储拉力值的缓冲区;
[0017] 拉力测量子步骤,用于测量当前时刻拉力计的拉力;
[0018] 拉力值传输子步骤,用于将拉力计的拉力存储至缓冲区。
[0019] 优化的,上述的拉力模拟方法,所述拉力获取步骤进一步包括:
[0020] 所述缓冲区建立子步骤中拉力计与电脑之间通过串口连接。
[0021] 优化的,上述的拉力模拟方法,所述拉力获取步骤进一步包括:
[0022] 所述拉力模型函数就Unity 3D模型函数。
[0023] 一种拉力模拟系统,包括以下模块:
[0024] 建模模块,用于根据用户选择的模拟场景建立包含拉力模型函数以及拉力计的用于模拟真实拉力场景的模拟模型;
[0025] 初始模块,用于初始建模模块中所使用的拉力计的初始拉力参数;
[0026] 拉力获取模块,用于测量拉力计在当前时刻所承受的拉力;
[0027] 拉力分析模块,用于根据拉力测量步骤所获取的拉力并结合拉力模型函数得到在下一时刻的预测拉力值;
[0028] 拉力反馈模块,用于将拉力分析模块得到的下一时刻的预测拉力值反馈至模拟模型,然后启动拉力获取模块。
[0029] 优化的,上述的拉力模拟系统,所述拉力获取模块进一步包括:
[0030] 缓冲区建立子单元,用于在与拉力计相连的电脑侧建立用于存储拉力值的缓冲区;
[0031] 拉力测量子单元,用于测量当前时刻拉力计的拉力;
[0032] 拉力值传输子单元,用于将拉力计的拉力存储至缓冲区。
[0033] 优化的,上述的拉力模拟系统,所述缓冲区建立子单元中拉力计与电脑之间通过串口连接。
[0034] 优化的,上述的拉力模拟系统,所述拉力模型函数就Unity 3D模型函数。
[0035] 因此,本发明具有如下优点:在特定的虚拟应用场景下,给用户带来了现有技术所不能满足的真实作用力的体验,在3D模拟训练中,提高训练质量,效果更逼真。

附图说明

[0036] 附图1是本发明的一种流程图;
[0037] 附图2是本发明的实施例流程图;

具体实施方式

[0038] 下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0039] 实施例:
[0040] 一种拉力模拟方法,包括以下步骤:建模步骤,根据用户选择的模拟场景建立包含拉力模型函数以及拉力计的用于模拟真实拉力场景的模拟模型;将拉力计通过串口连接电脑的串口,基于具体操作系统(如windows或linux)设计串口通信软件。初始化步骤,初始建模步骤中所使用的拉力计的初始拉力参数;软件初始化电脑串口后,依据拉力计厂商提供的通信协议发送拉力计初始化命令。拉力获取步骤,测量拉力计在当前时刻所承受的拉力;拉力计初始化成功后就开始连续的发送数据到电脑串口,依据通信协议解析数据包,实时获取有效的拉力值。可将通信程序编译成动态链接库文件(如DLL文件),提供标准的软件接口,作为底层软件。拉力分析步骤,根据拉力测量步骤所获取的拉力并结合拉力模型函数得到在下一时刻的预测拉力值;拉力反馈步骤,将拉力分析步骤得到的下一时刻的预测拉力值反馈至模拟模型,然后重复拉力获取步骤。
[0041] 其中:拉力获取步骤进一步包括:缓冲区建立子步骤,用于在与拉力计相连的电脑侧建立用于存储拉力值的缓冲区;拉力测量子步骤,用于测量当前时刻拉力计的拉力;拉力值传输子步骤,用于将拉力计的拉力存储至缓冲区。
[0042] 本发明的拉力模拟方法中,所述拉力获取步骤进一步包括:所述缓冲区建立子步骤中拉力计与电脑之间通过串口连接。
[0043] 图2是采用Unity 3D模型函数作为本发明的上层函数的示意图。上层软件以Unity 3D以平台模拟空中跳伞为例,以两个垂直悬挂的拉力计来模拟降落伞的左右控制杆,参照程序流程图(2),初始化虚拟场景,初始化人和降落伞的起始速度,空气密度等。加载动态链接库文件,调用底层接口,获取到实时的左右两个拉力数据作为输入变量,通过循环调用Unity 3D自带的添加作用力的接口函数使拉力数据作用于虚拟的人的左右手控制降落伞的左右控制杆,依据实现建好的人和降落伞受力的数学模型,改变人和伞的运动速度和方向,最终使人安全着地。实现随着作用于拉力计上的拉力大小变化而影响虚拟中对象的物理受力情况。此发明适用于虚拟现实领域的3D游戏,医疗、工业、军事的模拟训练等应用。
[0044] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。