本发明涉及智能医疗的,尤其是涉及一种基于unity引擎虚拟场景碰撞距离测算方法、系统、可读存储介质及电子设备。
背景技术:
1、在unity引擎平台中,如果两个物体发生碰撞,需要依赖于自身的碰撞器组件(collider),且附带碰撞检测脚本的物体需要附有刚体组件(rigidbody)。
2、现有技术中,碰撞检测主要有两种接口函数,一种是碰撞信息检测,另一种是触发信息检测。其中,在使用碰撞信息检测时,两个物体的碰撞器组件碰撞接触,在附带有刚体组件的物体上受到力的反馈作用;在使用触发信息检测时,在附带有刚体组件的物体上不会受到力的反馈作用。
3、实际应用中,我们需要检测两个物体是否有接触,但是又不希望两者之间产生力的影响,此种情况下可选择触发信息检测两个物体间是否碰撞接触。
4、现有的触发信息检测,需要通过3d物体碰撞后的结果反馈来判断是否碰撞接触成功,在具体的实际操作过程中,不能精确地做到一次性碰撞成功,需要一次以上的设备调整,导致检测效率较低。
技术实现思路
1、本发明的第一目的在于提供一种基于unity引擎虚拟场景碰撞距离测算方法,以缓解现有技术中存在的碰撞检测不能精确地做到一次性碰撞成功,导致检测效率较低的技术问题。
2、本发明提供一种基于unity引擎虚拟场景碰撞距离测算方法,包括以下步骤:
3、获取虚拟场景中的手术器械的末端中心点坐标,以及虚拟场景中的相关物体的物体中心点坐标;
4、以所述手术器械的末端中心点坐标为起点并沿手术器械z轴方向绘制射线;
5、基于虚拟场景中相关物体的所在区域,通过控制所述手术器械运动使其发射的射线检测到虚拟场景中的目标物体;
6、基于所述手术器械的末端中心点坐标和所述目标物体的物体中心点坐标,计算两坐标之间的初始距离,并在虚拟场景中显示出初始距离;
7、根据所述初始距离,通过控制所述手术器械朝向所述目标物体移动,以实时计算所述手术器械的末端中心点坐标与所述目标物体的物体中心点坐标之间的实时距离,并在虚拟场景中显示出实时距离;
8、基于虚拟场景中显示的实时距离,判断实时距离是否在预设距离范围内;如果在预设距离范围内,则提示手术器械可以开始模拟手术操作。
9、进一步的,获取虚拟场景中的相关物体的物体中心点坐标的步骤,包括:
10、判断物体的状态,如果物体为静止状态,则通过调用transform.position函数一次获取物体中心点坐标;如果物体为运动状态,则通过调用transform.position函数实时获取物体中心点坐标;
11、基于获取的物体中心点坐标,使用dictionary字典以键值对保存,以被调取和/或计算。
12、进一步的,以所述手术器械的末端中心点坐标为起点并沿手术器械z轴方向绘制射线,包括:
13、通过调用raycast函数绘制具有物理属性的射线。
14、进一步的,计算两坐标之间的初始距离的步骤,包括:
15、调用以下公式计算所述手术器械的末端中心点坐标与所述目标物体的物体中心点坐标之间的初始距离:
16、distance=(a.position-b.position).magnitude。
17、进一步的,判断物体的状态,如果物体为运动状态,则将每一帧获取到的所述手术器械的末端中心点坐标与所述目标物体的物体中心点坐标进行数据同步,以计算出两坐标之间的实时距离。
18、进一步的,其特征在于,通过控制所述手术器械朝向所述目标物体移动的步骤,包括:
19、连续获取预设时间节点实时距离与前一时间节点实时距离之间的差值;
20、判断最大差值与最小差值之间的差异,以评价手术器械朝向目标物体的移动幅度大小。
21、进一步的,其特征在于,通过控制所述手术器械朝向所述目标物体移动的步骤,包括:
22、确定手术器械朝向目标物体移动过程中在xy轴变化的阈值范围;
23、判断是否超出所述阈值范围,如果超出所述阈值范围,则以当前位置的手术器械的末端中心点坐标为起点并沿手术器械z轴方向重新绘制射线;
24、获取重新绘制的射线检测到的虚拟场景中的新的物体;
25、判断新的物体与目标物体两者是否为同一物体;如果是,则计算当前的实时距离,并显示在虚拟场景中;如果不是,则重复重新绘制射线的步骤,以使射线检测到的虚拟场景中的新的物体与目标物体为同一物体。
26、本发明的第二目的在于提供一种基于unity引擎虚拟场景碰撞距离测算系统,包括:
27、获取模块,用于获取虚拟场景中手术器械的末端中心点坐标,以及虚拟场景中的相关物体的物体中心点坐标;
28、绘制模块,用于以所述手术器械的末端中心点坐标为起点并沿手术器械z轴方向绘制射线;
29、控制模块,用于控制所述手术器械运动;
30、计算模块,用于计算所述手术器械的末端中心点坐标与所述目标物体的物体中心点坐标两者之间的初始距离和实时距离;
31、显示模块,用于在虚拟场景中显示所述初始距离和所述实时距离;
32、判断模块,通过判断所述实时距离是否在预设距离范围内,以提示手术器械可以开始模拟手术操作。
33、本发明的第三目的在于提供一种可读存储介质,其上存储有程序,所述程序运行时,实现前述的基于unity引擎虚拟场景碰撞距离测算方法。
34、本发明的第四目的在于提供一种电子设备,包括处理器和可读存储介质,所述处理器用于执行所述可读存储介质上所存储的程序。
35、本发明提供的基于unity引擎虚拟场景碰撞距离测算方法、系统、可读存储介质及电子设备,至少具有以下有益效果:
36、1、与现有技术相比,无需建立透明物体进行碰撞反馈来碰撞触发任务,采用射线后,去掉透明物体创建的繁琐过程,使用射线便可触发任务目标,可精确地做到一次性碰撞成功;
37、2、采用射线测距,对运动物体的检测更精确和灵活,能够实时跟随运动物体进行触发任务目标;
38、3、由于减少了额外物体(即透明物体)的创建,测算效率和程序运行效率得到极大的提升,同时可进行每帧结果分析和测算。
1.一种基于unity引擎虚拟场景碰撞距离测算方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于unity引擎虚拟场景碰撞距离测算方法,其特征在于,获取虚拟场景中的相关物体的物体中心点坐标的步骤,包括:
3.根据权利要求1所述的基于unity引擎虚拟场景碰撞距离测算方法,其特征在于,以所述手术器械的末端中心点坐标为起点并沿手术器械z轴方向绘制射线,包括:
4.根据权利要求1所述的基于unity引擎虚拟场景碰撞距离测算方法,其特征在于,计算两坐标之间的初始距离的步骤,包括:
5.根据权利要求4所述的基于unity引擎虚拟场景碰撞距离测算方法,其特征在于,判断物体的状态,如果物体为运动状态,则将每一帧获取到的所述手术器械的末端中心点坐标与所述目标物体的物体中心点坐标进行数据同步,以计算出两坐标之间的实时距离。
6.根据权利要求1-5任一项所述的基于unity引擎虚拟场景碰撞距离测算方法,其特征在于,通过控制所述手术器械朝向所述目标物体移动的步骤,包括:
7.根据权利要求1-5任一项所述的基于unity引擎虚拟场景碰撞距离测算方法,其特征在于,通过控制所述手术器械朝向所述目标物体移动的步骤,包括:
8.一种基于unity引擎虚拟场景碰撞距离测算系统,其特征在于,包括:
9.一种可读存储介质,其上存储有程序,其特征在于,所述程序运行时,实现权利要求1~8中任一项所述的基于unity引擎虚拟场景碰撞距离测算方法。
10.一种电子设备,其特征在于,包括处理器和权利要求9所述的可读存储介质,所述处理器用于执行所述可读存储介质上所存储的程序。