一种VR空间定位系统适配方法、装置和计算机设备与流程

文档序号:27490214发布日期:2021-11-22 14:13阅读:99来源:国知局
一种VR空间定位系统适配方法、装置和计算机设备与流程
一种vr空间定位系统适配方法、装置和计算机设备
技术领域
1.本发明涉及系统适配技术领域,特别是涉及一种vr空间定位系统适配方法、装置、计算机设备和存储介质。


背景技术:

2.目前htc软件、oculus软件和indexcontroller软件的控制手柄、头显以及使用到的硬件跟踪器均能够适配于steamvr系统,由于该硬件跟踪器的跟踪范围较小且使用过程较为繁杂,拥有vr空间定位系统的公司提出一种替换该硬件跟踪器的方案以使得针对steamvr系统下的游戏应用手柄和头显的跟踪能力更强且更易调控,然而如何将vr空间定位系统与steamvr系统进行有效适配,是本发明所需要解决的问题。


技术实现要素:

3.本发明的目的在于克服现有技术的不足,提供了一种vr空间定位系统适配方法、装置、计算机设备和存储介质,能够实现vr空间定位系统与steamvr系统之间的适配,具有良好的实用价值。
4.为了解决上述中至少一个技术问题,本发明实施例提供了一种vr空间定位系统适配方法,所述方法包括:
5.定义一个定位器驱动控制子类并继承定位器驱动控制父类下的第一函数接口,再利用所述第一函数接口对相关设备驱动进行信息设置;
6.生成vr空间定位系统的运行参数字段并将其记录到steamvr系统的配置文件中;
7.定义一个定位器设备管理子类并继承定位器设备管理父类下的第二函数接口,再通过所述第二函数接口对所述运行参数字段进行响应同时管理自身与vr空间定位系统之间的线程连接;
8.在所述定位器设备管理子类中创建一个数据处理接口,通过已连接的线程调用所述数据处理接口来接收vr空间定位系统中的设备姿态数据,进而执行对所述第一函数接口的数据更新;
9.定义一个看门狗服务子类并继承看门狗服务父类下的第三函数接口,再利用所述第三函数接口对所述相关设备驱动进行运作管控;
10.通过steamvr系统运行并调用驱动接口对所述定位器设备管理子类和所述看门狗服务子类进行加载,以完成与vr空间定位系统之间的适配。
11.优选地,所述继承定位器驱动控制父类下的第一函数接口,再利用所述第一函数接口对相关设备驱动进行信息设置包括:
12.创建所述定位器驱动控制子类内部的若干个公有枚举成员,并根据所述若干个公有枚举成员确定相对应的若干个设备实例;
13.继承所述定位器驱动控制父类下的第一函数接口包括activate接口、setpose接口、runframe接口和getserialnumber接口,其中所述activate接口用于设置所述若干个设
备实例的相关属性参数,所述setpose接口用于设置所述若干个设备实例所关联的姿态信息,所述runframe接口用于外发所述若干个设备实例所关联的姿态信息,所述getserialnumber接口用于返回当前处于数据更新状态的设备实例所关联的序列号。
14.优选地,所述若干个公有枚举成员包括头显跟踪器、左手柄跟踪器和右手柄跟踪器,所述若干个设备实例包括与所述头显跟踪器相对应的头部设备实例、与所述左手柄跟踪器相对应的左手设备实例和与所述右手柄跟踪器相对应的右手设备实例。
15.优选地,所述生成vr空间定位系统的运行参数字段包括:
16.生成数据覆盖配置信息:将若干个跟踪器所反馈的定位数据对应替换为vr空间定位系统中的若干个刚体姿态信息;
17.生成驱动应用配置信息:确定vr空间定位系统的访问地址以及所述若干个刚体姿态信息的最终输出状态,同时记录其中每一个刚体姿态信息所关联的刚体名称;
18.生成角色绑定配置信息:将vr空间定位系统中的若干个刚体对应与steamvr系统所提供的跟踪器角色进行绑定。
19.优选地,所述通过所述第二函数接口对所述运行参数字段进行响应同时管理自身与vr空间定位系统之间的线程连接包括:
20.基于所述第二函数接口包括init接口和cleanup接口,通过所述init接口根据每一个刚体姿态信息所关联的刚体名称创建对应的设备实例,再根据所述访问地址开启与vr空间定位系统之间的线程以跟踪每一个设备实例的姿态信息;
21.通过所述cleanup接口根据用户需求对所述init接口中所创建的设备实例进行删除管理,以及根据用户需求对所述init接口中所开启的线程进行停止操作。
22.优选地,所述执行对所述第一函数接口的数据更新包括:
23.在所述数据处理接口中对接收到的设备姿态数据进行过滤分类,以对所述init接口所创建的每一个设备实例分配相对应的刚体姿态数据;
24.基于所述第一函数接口包括setpose接口和runframe接口,通过所述数据处理接口调用所述setpose接口并对所述setpose接口内部名称相匹配的设备实例进行姿态信息的替换,以及调用所述runframe接口并对所述runframe接口内部名称相匹配的设备实例进行替换后姿态信息的外发。
25.优选地,所述利用所述第三函数接口对所述相关设备驱动进行运作管控包括:
26.基于所述第三函数接口包括init接口和cleanup接口,通过所述init接口对所述相关设备驱动的日志文件进行初始化,并开启看门狗线程以管理所述相关设备驱动的运行状态;
27.通过所述cleanup接口根据用户需求对所述相关设备驱动的日志文件进行关闭处理,以及根据用户需求对所述init接口中所开启的看门狗线程进行停止操作。
28.另外,本发明实施例还提供了一种vr空间定位系统适配装置,所述装置包括:
29.设置模块,用于定义一个定位器驱动控制子类并继承定位器驱动控制父类下的第一函数接口,再利用所述第一函数接口对相关设备驱动进行信息设置;
30.生成模块,用于生成vr空间定位系统的运行参数字段并将其记录到steamvr系统的配置文件中;
31.管理模块,用于定义一个定位器设备管理子类并继承定位器设备管理父类下的第
二函数接口,再通过所述第二函数接口对所述运行参数字段进行响应同时管理自身与vr空间定位系统之间的线程连接;
32.更新模块,用于在所述定位器设备管理子类中创建一个数据处理接口,通过已连接的线程调用所述数据处理接口来接收vr空间定位系统中的设备姿态数据,进而执行对所述第一函数接口的数据更新;
33.控制模块,用于定义一个看门狗服务子类并继承看门狗服务父类下的第三函数接口,再利用所述第三函数接口对所述相关设备驱动进行运作管控;
34.加载模块,用于通过steamvr系统运行并调用驱动接口对所述定位器设备管理子类和所述看门狗服务子类进行加载,以完成与vr空间定位系统之间的适配。
35.另外,本发明实施例还提供了一种计算机设备,其包括:存储器、处理器及存储在存储器上并可在处理器上运行的应用程序,处理器执行应用程序时实现上述任一实施例方法的步骤。
36.另外,本发明实施例还提供了一种计算机可读存储介质,其上存储有应用程序,应用程序被处理器执行时实现上述任一实施例方法的步骤。
37.在本发明实施例中,以将vr空间定位系统的运行参数字段写入到steamvr系统的配置文件中这一过程作为基础建设,通过创建定位器驱动控制子类和定位器设备管理子类并继承若干个相关接口进行关联调用,可为vr空间定位系统的适配过程以及数据对接过程提供便利条件,最后通过在steamvr系统运行时调用驱动接口可实现vr空间定位系统与steamvr系统之间的适配,具有良好的实用价值。
附图说明
38.图1是本发明实施例中的vr空间定位系统适配方法的流程示意图;
39.图2是本发明实施例中的vr空间定位系统适配装置的结构示意图;
40.图3是本发明实施例中的计算机设备的结构组成示意图。
具体实施方式
41.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
42.本发明实施例提供了一种vr空间定位系统适配方法,如图1所示,该方法包括以下步骤:
43.s101、定义一个定位器驱动控制子类并继承定位器驱动控制父类下的第一函数接口,再利用所述第一函数接口对相关设备驱动进行信息设置;
44.具体地,定义一个定位器驱动控制子类为vrtrackerdevicedriver类,其在继承定位器驱动控制父类(即itrackeddeviceserverdriver类)的过程中,首先创建所述定位器驱动控制子类内部的若干个公有枚举成员,并根据所述若干个公有枚举成员确定相对应的若干个设备实例;其次继承所述定位器驱动控制父类下的第一函数接口包括activate接口、setpose接口、runframe接口和getserialnumber接口,其中的所述activate接口用于设置
所述若干个设备实例的相关属性参数,该参数包括设备类型、控制类型、渲染模型、对应序列号,所述setpose接口用于设置所述若干个设备实例所关联的姿态信息,所述runframe接口用于外发所述若干个设备实例所关联的姿态信息且是通过调用现有的trackeddeviceposeupdated接口来实现的,所述getserialnumber接口用于返回当前处于数据更新状态的设备实例所关联的序列号。
45.其中,所述若干个公有枚举成员包括头显跟踪器、左手柄跟踪器和右手柄跟踪器,所述若干个设备实例包括与所述头显跟踪器相对应的头部设备实例、与所述左手柄跟踪器相对应的左手设备实例和与所述右手柄跟踪器相对应的右手设备实例。
46.s102、生成vr空间定位系统的运行参数字段并将其记录到steamvr系统的配置文件中;
47.在一实施例中,vr空间定位系统运行参数字段的生成过程包括:
48.(1)生成数据覆盖配置信息(即trackingoverrides配置信息):将若干个跟踪器所反馈的定位数据对应替换为vr空间定位系统中的若干个刚体姿态信息,其中任意一个刚体姿态信息包括位置信息和旋转信息;
49.具体地,利用vr空间定位系统中的head刚体姿态信息替换掉头显跟踪器的定位数据,利用vr空间定位系统中的lefthand刚体姿态信息替换掉左手柄跟踪器的定位数据,以及利用vr空间定位系统中的righthand刚体姿态信息替换掉右手柄跟踪器的定位数据。
50.(2)生成驱动应用配置信息(即driver_vrtracker配置信息):确定vr空间定位系统的访问地址以及所述若干个刚体姿态信息的最终输出状态,同时记录其中每一个刚体姿态信息所关联的刚体名称;
51.具体地,将所述驱动应用配置信息中的onlyuserigibodyheadposition参数设置为true时可确定仅利用head刚体的位置信息来替换掉头显跟踪器的定位数据,反之若将该参数设置为false时可确定利用head刚体的位置信息和旋转信息来替换掉头显跟踪器的定位数据;将所述驱动应用配置信息中的outputrevrigidbodydatainfo参数设置为true时可确定任一刚体的相关姿态信息为允许输出状态,反之若将该参数设置为false时可确定任一刚体的相关姿态信息为不允许输出状态;将所述驱动应用配置信息中的trackerrigidbodyheadname参数设置为上述head刚体的名称,同理将其中的trackerrigidbodylhandname参数设置为上述lefthand刚体的名称以及将trackerrigidbodyrhandname参数设置为上述righthand刚体的名称;将所述驱动应用配置信息中的trackerserveraddress参数设置为vr空间定位系统运行所在主机的ip地址。
52.(3)生成角色绑定配置信息(即trackers配置信息):将vr空间定位系统中的若干个刚体对应与steamvr系统所提供的跟踪器角色进行绑定。
53.具体地,基于steamvr系统所提供的跟踪器角色包括手持角色且该手持角色进一步细分为左手手持角色和右手手持角色,将vr空间定位系统中的lefthand刚体与左手手持角色(即trackedcontrollerrole_lefthand)进行绑定,同理将vr空间定位系统中的righthand刚体与右手手持角色(即trackedcontrollerrole_righthand)进行绑定。
54.s 103、定义一个定位器设备管理子类并继承定位器设备管理父类下的第二函数接口,再通过所述第二函数接口对所述运行参数字段进行响应同时管理自身与vr空间定位系统之间的线程连接;
55.具体地,定义一个定位器设备管理子类为serverdriver_vrtracker类,其继承定位器设备管理父类(即iservertrackeddeviceprovider类)下的第二函数接口包括init接口和cleanup接口,此时可通过所述init接口根据每一个刚体姿态信息所关联的刚体名称创建对应的设备实例,即根据上述head刚体的名称创建头部设备实例、根据上述lefthand刚体的名称创建左手设备实例以及根据上述righthand刚体的名称创建右手设备实例,再根据所述访问地址开启与vr空间定位系统之间的线程以跟踪每一个设备实例的姿态信息;相反地,通过所述cleanup接口根据用户需求对所述init接口中所创建的设备实例进行删除管理,以及根据用户需求对所述init接口中所开启的线程进行停止操作。
56.s104、在所述定位器设备管理子类中创建一个数据处理接口,通过已连接的线程调用所述数据处理接口来接收vr空间定位系统中的设备姿态数据,进而执行对所述第一函数接口的数据更新;
57.具体地,当通过调用所述定位器设备管理子类中所创建的数据处理接口(即recvtrackerdata接口)接收到设备姿态数据后优先执行过滤分类工作,以对所述init接口所创建的每一个设备实例分配相对应的刚体姿态数据;其次基于所述第一函数接口包括setpose接口和runframe接口,通过所述数据处理接口调用所述setpose接口并对所述setpose接口内部名称相匹配的设备实例进行姿态信息的替换,且在此过程中若涉及到头部设备实例的信息替换时需要按照上述设置的onlyuserigibodyheadposition参数执行,以及通过所述数据处理接口调用所述runframe接口并对所述runframe接口内部名称相匹配的设备实例进行替换后姿态信息的外发,且此过程的可行性依赖于上述设置的outputrevrigidbodydatainfo参数。
58.s105、定义一个看门狗服务子类并继承看门狗服务父类下的第三函数接口,再利用所述第三函数接口对所述相关设备驱动进行运作管控;
59.具体地,定义一个看门狗服务子类为watchdogdriver_vrtracker类,其继承看门狗服务父类(即ivrwatchdogprovider类)下的第三函数接口包括init接口和cleanup接口,此时可通过所述init接口对所述相关设备驱动的日志文件进行初始化,并开启看门狗线程以管理所述相关设备驱动的运行状态;相反地,通过所述cleanup接口根据用户需求对所述相关设备驱动的日志文件进行关闭处理,以及根据用户需求对所述init接口中所开启的看门狗线程进行停止操作。
60.s106、通过steamvr系统运行并调用驱动接口对所述定位器设备管理子类和所述看门狗服务子类进行加载,以完成与vr空间定位系统之间的适配。
61.具体地,当steamvr系统运行时,优先创建所述定位器设备管理子类中的全局静态变量为g_serverdrivernull以及所述看门狗服务子类中的全局静态变量为g_watchdogdrivernull;其次在确保所述定位器设备管理父类和所述看门狗服务父类的合理性后,调用驱动接口(即hmddriverfactory接口)来加载g_serverdrivernull和g_watchdogdrivernull运行。
62.进一步的,确保所述定位器设备管理父类和所述看门狗服务父类的合理性这一过程体现为:确定所述定位器设备管理父类的版本号和对应接口参数保持一致,以及确定所述看门狗服务父类的版本号和对应接口参数保持一致,其中上述提及到的两类版本号均是由steamvr系统的软件开发工具包直接定义的,上述提及到的两类接口参数均是由steamvr
系统运行时自动传入的。
63.在本发明实施例中,以将vr空间定位系统的运行参数字段写入到steamvr系统的配置文件中这一过程作为基础建设,通过创建定位器驱动控制子类和定位器设备管理子类并继承若干个相关接口进行关联调用,可为vr空间定位系统的适配过程以及数据对接过程提供便利条件,最后通过在steamvr系统运行时调用驱动接口可实现vr空间定位系统与steamvr系统之间的适配,具有良好的实用价值。
64.在一实施例中,本发明还提供一种vr空间定位系统适配装置,如图2所示,该装置包括:
65.设置模块201,用于定义一个定位器驱动控制子类并继承定位器驱动控制父类下的第一函数接口,再利用所述第一函数接口对相关设备驱动进行信息设置;
66.生成模块202,用于生成vr空间定位系统的运行参数字段并将其记录到steamvr系统的配置文件中;
67.管理模块203,用于定义一个定位器设备管理子类并继承定位器设备管理父类下的第二函数接口,再通过所述第二函数接口对所述运行参数字段进行响应同时管理自身与vr空间定位系统之间的线程连接;
68.更新模块204,用于在所述定位器设备管理子类中创建一个数据处理接口,通过已连接的线程调用所述数据处理接口来接收vr空间定位系统中的设备姿态数据,进而执行对所述第一函数接口的数据更新;
69.控制模块205,用于定义一个看门狗服务子类并继承看门狗服务父类下的第三函数接口,再利用所述第三函数接口对所述相关设备驱动进行运作管控;
70.加载模块206,用于通过steamvr系统运行并调用驱动接口对所述定位器设备管理子类和所述看门狗服务子类进行加载,以完成与vr空间定位系统之间的适配。
71.关于一种vr空间定位系统适配装置的具体限定可以参见上文中对于一种vr空间定位系统适配方法的限定,在此不再赘述。上述一种vr空间定位系统适配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
72.本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序,该程序被处理器执行时实现上述实施例中任意一个实施例的一种vr空间定位系统适配方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd

rom、和磁光盘)、rom(read

only memory,只读存储器)、ram(random access memory,随即存储器)、eprom(erasable programmable read

only memory,可擦写可编程只读存储器)、eeprom(electrically erasable programmableread

only memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
73.此外,图3是本发明实施例中的计算机设备的结构组成示意图。
74.本发明实施例还提供了一种计算机设备,如图3所示。所述计算机设备包括处理器302、存储器303、输入单元304以及显示单元305等器件。本领域技术人员可以理解,图3示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组
合某些部件。存储器303可用于存储应用程序301以及各功能模块,处理器302运行存储在存储器303的应用程序301,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、zip盘、u盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
75.输入单元304用于接收信号的输入,以及接收用户输入的关键字。输入单元304可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元305可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元305可采用液晶显示器、有机发光二极管等形式。处理器302是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器303内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
76.作为一个实施例,所述计算机设备包括:一个或多个处理器302,存储器303,一个或多个应用程序301,其中所述一个或多个应用程序301被存储在存储器303中并被配置为由所述一个或多个处理器302执行,所述一个或多个应用程序301配置用于执行上述实施例中的任意一实施例中的一种vr空间定位系统适配方法。
77.另外,以上对本发明实施例所提供的一种vr空间定位系统适配方法、装置、计算机设备和存储介质进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1