本发明涉及虚拟现实技术领域,尤其涉及一种虚拟现实系统的实现方法及其采用此种方法的虚拟现实系统。
背景技术:
虚拟现实(VR)是目前计算机领域的一个研究热点,各大厂商都争相研究自己的虚拟现实设备,并将发展方向定位为使得虚拟现实技术和社交、教育、游戏、医疗、流媒体等多个领域的服务相结合。
在现有的虚拟现实设备中,传感器是实现人机交互的主要途径,主要用于采样并通过计算机识别虚拟现实场景的变换、场景中物体的位置变化等等。其中,陀螺仪传感器是一种物体姿态的采样设备,用于采样物体姿态并输出至处理器中,进一步控制调整输出图像。陀螺仪传感器的性能、精度以及工作频率直接影响虚拟现实显示画面变化的细腻度和流畅性。但是,受限于操作系统软件和硬件的限制,陀螺仪传感器的工作频率可能和处理器的采样频率具有一定的偏差,有可能处理器或者软件系统的采样频率低于陀螺仪传感器的工作频率,在这种情况下,陀螺仪传感器的采样数据可能有部分丢失,进一步导致系统读取并显示的数据不再是连续均匀的,在一定程度上会影响虚拟现实系统的显示效果。在现有技术中,通常采用折中综合系统采样频率和陀螺仪传感器工作频率,选取一个合适的实际工作频率,以保证显示效果。但是,折中的处理方法可能牺牲了部分系统总体硬件性能,降低了设备的总体效率。
技术实现要素:
为解决现有技术虚拟现实系统中采样频率和陀螺仪工作频率不匹配,采样数据部分丢失,不得不采用折中处理方法,导致设备总体效率降低的问题,本发明提供一种虚拟现实系统的实现方法。
本发明公开一种虚拟现实系统的实现方法,包括以下步骤:
启动第一陀螺仪传感器;
处理器按照第一采样间隔采样第一陀螺仪传感器的检测数据;
所述第一陀螺仪传感器工作至第一时刻,启动辅助陀螺仪传感器;
处理器按照第一采样间隔采样所述辅助陀螺仪传感器的检测数据;
处理器按照第一陀螺仪传感器和辅助陀螺仪传感器的工作顺序交替离散排列所述第一陀螺仪传感器的检测数据和第二陀螺仪传感器的检测数据形成整合检测数据;
根据整合检测数据求解姿态信息;
其中,所述第一时刻小于所述第一采样间隔
进一步的,第一陀螺仪传感器和第一时钟模块同步动作,处理器按照第一采样间隔采样第一陀螺仪传感器的检测数据后,根据第一时钟模块生成第一时间戳,利用第一时间戳标记所述第一陀螺仪传感器检测数据;
辅助陀螺仪传感器和辅助时钟模块同步动作,处理器按照第一采样间隔采样辅助陀螺仪传感器的检测数据后,根据辅助时钟模块生成第二时间戳,利用第二时间戳标记所述辅助陀螺仪传感器检测数据;
处理器根据第一时间戳和第二时间戳交替离散排列第一陀螺仪传感器的检测数据和辅助陀螺仪传感器检测数据以形成整合检测数据。
进一步的,具有第一时间戳标记的第一陀螺仪传感器检测数据存储在第一数组中,具有第二时间戳标记的辅助陀螺仪传感器检测数据存储在第二数组中,根据时间戳交替使用第一数组和第二数组中的检测数据依次更新第三数组中的数据元素,更新后的所述第三数组形成整合检测数据。
进一步的,所述处理器分别对所述第一数组中的第一陀螺仪传感器检测数据和第二数组中的辅助陀螺仪传感器检测数据进行滤波,去除噪音后,根据所述第一时间戳和第二时间戳交替使用第一数组和第二数组中滤波后的检测数据依次更新第三数组中的数据元素,更新后的所述第三数组形成整合检测数据。
进一步的,所述辅助陀螺仪传感器设置有至少一个,所述辅助陀螺仪传感器的工作频率与第一陀螺仪传感器的工作频率一致,所述辅助陀螺仪传感器的测量精度和第一陀螺仪传感器的测量精度相同,所述第一采样间隔为所述工作频率的倒数。
进一步的,所述辅助陀螺仪传感器设置一个,当所述第一陀螺仪传感器工作至所述第一时间时,启动辅助陀螺仪传感器,所述第一时间为所述第一采样间隔的二分之一。
进一步的,所述处理器采样加速度传感器的检测数据,利用加速度传感器检测数据消除所述姿态信息的累计误差。
进一步的,所述处理器采样地磁传感器的检测数据,利用地磁传感器检测数据消除所述姿态信息的累计误差。
进一步的,所述第一陀螺仪传感器为九轴传感器或三轴传感器,所述辅助陀螺仪传感器为三轴传感器。
本发明所提供的虚拟现实系统的实现方法,将经过独立采样、时间标记、分别滤波、交替整合、消除累计误差后得到的姿态信息与显示图像结合,提高了陀螺仪传感器采样频率以及采样数据的精度,进一步提高了虚拟现实系统场景画面切换时显示图像的细腻度与流畅性,降低出现卡顿现象的概率,提供了一种高精度、高舒适性的用户体验。
本发明还公开了一种虚拟现实系统,包括:
采样模块,所述采样模块用于按照第一采样间隔采样第一陀螺仪传感器的检测数据,还用于在所述第一陀螺仪传感器工作至第一时刻后,按照第一采样间隔采样辅助陀螺仪传感器的检测数据;
第一时钟模块,所述第一时钟模块用于生成第一时间戳,并利用第一时间戳标记第一陀螺仪传感器检测数据;
第一存储模块,所述第一存储模块用于将具有第一时间戳标记的第一陀螺仪传感器检测数据存储在第一数组中;
辅助时钟模块,所述辅助时钟模块用于生成第二时间戳,并利用第二时间戳标记第二陀螺仪传感器检测数据;
第二存储模块,所述第二存储模块用于将具有第二时间戳标记的辅助陀螺仪传感器检测数据存储在第二数组中;
滤波模块,所述滤波模块用于分别对第一数组和第二数组中的数据进行滤波;
整合模块,所述整合模块用于根据时间戳交替利用第一数组和第二数组中滤波后的数据依次更新第三数组中的数据元素,形成整合检测数据;
姿态信息获取模块,所述姿态信息获取模块用于根据整合检测数据求解姿态信息;
误差消除模块,所述误差消除模块用于利用地磁传感器和加速度传感器消除根据整合检测数据求解出的姿态信息的累计误差;
显示模块,所述显示模块用于结合消除累计误差的姿态信息形成显示图像。
本发明所公开的虚拟现实系统,基于双陀螺仪的检测数据,将用于姿态解算的陀螺仪传感器数据获取频率提高至少一倍,同时由于对双陀螺仪侧检测数据分别滤波,可以更有效地去掉噪音数据,提高传感器的数据精度,进一步提高了虚拟现实场景画面切换的细腻度和流畅性,减少了卡顿现象的出现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所公开的虚拟现实系统的实现方法第一种实施例的流程图;
图2为本发明所公开的虚拟现实系统的实现方法第二种实施例的流程图;
图3为本发明所公开的虚拟现实系统一种实施例的结构示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示为本发明所公开的虚拟现实系统实现方法一种实施例的流程图。与现有技术完全不同,在本实施例所公开的实现方法中,虚拟现实系统采用至少两个陀螺仪传感器实现对人体姿态的检测。两个陀螺仪的组成,可以是选用一个具有三轴陀螺仪的九轴传感器作为第一陀螺仪传感器,也就是主传感器,以及另一个三轴陀螺仪作为辅助传感器,还可以选用两个三轴陀螺仪,其中一个三轴陀螺仪作为主传感器,另一个三轴陀螺仪作为辅助传感器,并配套设置一个加速度传感器以及一个地磁传感器的传感器组合。多个传感器之间的通信可以采用I2C串行通信,通过芯片电路板上的集成端口获取其它传感器的地址信息。其中,三轴陀螺仪用于同时检测X、Y、Z轴的旋转并输出包含转动方向的角速度检测值。在虚拟现实系统的显示模块中,结合陀螺仪传感器的检测值解算出的姿态信息生成带有动作姿态信息的显示图像,使得动作信息成为VR显示信息的一部分。在本实施例中,优选第一陀螺仪传感器和辅助陀螺仪传感器的工作频率和精度相同,利于后续程序的数据采样和数据处理,简化算法流程,提高数据处理效率。
为了克服单台陀螺仪传感器和处理器之间配合时采样频率、工作频率以及精度等固有硬件参数的限制,本实施例所公开的虚拟现实系统通过以下步骤实现:
当虚拟现实系统接通电源开始工作后,启动第一陀螺仪传感器,即主陀螺仪传感器开始工作生成加速度检测数据,处理器按照第一采样间隔采样第一陀螺仪传感器的检测数据,当第一陀螺仪传感器工作至第一时刻后,辅助陀螺仪传感器开始工作,处理器按照第一采样间隔采样辅助陀螺仪传感器的检测数据。处理器按照第一陀螺仪传感器和辅助陀螺仪传感器的工作顺序交替离散排列第一陀螺仪传感器检测数据和第二陀螺仪传感器检测数据的整合检测数据,根据整合检测数据求解姿态信息,并在后续的解算过程中调用整合检测数据。 举例来说,如果第一陀螺仪传感器的检测数据为A1,A2,...,An,辅助陀螺仪传感器的检测数据为B1,B2,...,Bn,交替离散排列的整合检测数据的形式即为A1,B1,A2,B2,...,An,Bn。
其中,第一采样间隔为第一陀螺仪传感器工作频率的倒数,因为第一陀螺仪传感器和辅助陀螺仪传感器的工作频率相同,也就是辅助陀螺仪传感器工作频率的倒数。当第一陀螺仪传感器工作至第一时刻后,也就是第一采样间隔的二分之一时刻时,处理器开始采样辅助陀螺仪传感器的检测数据,并进一步按照主陀螺仪传感器和辅助陀螺仪传感器的工作顺序交替排列整合两台陀螺仪的检测数据,因为在本实施例中,第一采样间隔为陀螺仪传感器工作频率的倒数,且辅助陀螺仪传感器开始检测的时间与主陀螺仪传感器开始检测的时间刚好相差第一采样间隔的二分之一,从而将处理器采样获得用于姿态解算的传感器数据的频率提高一倍,对后续提高图像精度提供了充足的数据准备。辅助陀螺仪传感器的个数还可以在适当的采样条件下设置不止一个,通过改变采样间隔和第一时刻的起始点,进一步改变处理器采样获得用于姿态解算的传感器数据的频率。
参见图2所示为本发明所公开的虚拟现实系统的实现方法一种更加具体的优选实施方式,具体来说,当第一陀螺仪传感器开始工作时,第一时钟模块同步动作。举例来说,第一陀螺仪传感器可以是集成在集成电路板上的,在集成电路板上预留一个第一时钟模块接口,当第一陀螺仪传感器开始工作时,第一时钟模块同步动作,第一陀螺仪传感器接收时钟信号,利用第一时钟模块产生的时钟信号生成第一时间戳,并利用第一时间戳标记第一陀螺仪传感器的检测数据使得第一陀螺仪传感器检测生成的离散检测数据具有按照时间排列的先后顺序。
类似的,当第一陀螺仪传感器运行至第一采样间隔的二分之一时刻后,辅助陀螺仪传感器和辅助时钟模块同步动作,利用辅助时钟模块产生的时钟信号生成第二时间戳,并利用第二时间戳标记辅助陀螺仪传感器的检测数据使得辅助陀螺仪传感器检测生成的离散检测数据具有按照时间排列的先后顺序。实际上,第一时钟模块和辅助时钟模块也可以选用一个时钟芯片实现,但是,两个独立使用的时钟模块可以保证采样不会受到系统本身输出误差的影响,提高采样的稳定性,因此设置两个独立运行的时钟是本实施例的一种优选的方式。
当第一陀螺仪传感器的检测数据和辅助陀螺仪传感器的检测数据均具有时间标记之后,分别将具有第一时间戳标记的第一陀螺仪传感器检测数据存储在第一数组中,将具有第二时间戳标记的辅助陀螺仪传感器检测数据存储在第二数组中。同时在处理器的存储单元中定义建立一个用于存储两台陀螺仪传感器检测数据的整合数组,也就是第三数组,根据第一时间戳和第二时间戳分别代表的时间顺序交替使用第一数组和第二数组中的检测数据依次更新第三数组中的数据元素,形成整合检测数据。举例来说,第一数组A = [A1,A2,...,An], 第二数组B = [B1,B2,...,Bn],整合后的第三数组C =[A1,B1,A2,B2,...,An,Bn],整合检测数据为后续求解姿态信息的数据基础。
在第三数组的数据整合之前,优选分别对第一数组中第一陀螺仪传感器的检测数据以及第二数组中辅助陀螺仪传感器的检测数据进行滤波,去掉噪音数据,对两个数组中的数据独立滤波可以更为有效地去掉噪音数据。滤波的算法可以选用卡尔曼滤波算法,也可以采用其它的类似的对陀螺仪传感器检测参数滤波的算法,在此不作限定。
得到整合后的滤除噪音数据的检测数据后,处理器根据检测数据求解姿态信息。求解姿态信息可以使用多种算法,在此不作限定。得到姿态信息数据后。处理器采样加速度传感器的检测数据,利用加速度传感器检测数据消除姿态信息的累计误差,同时处理器也开始采样地磁传感器的检测数据,利用地磁传感器消除姿态信息的累计误差。得到消除累计误差的姿态信息。
处理器最终将经过独立采样、时间标记、分别滤波、交替整合、消除累计误差后得到的姿态信息与显示图像结合,进一步提高了虚拟现实系统场景画面切换时显示图像的细腻度与流畅性,降低出现卡顿现象的概率,提供了一种高精度、高舒适性的用户体验。
本发明同时公开了一种虚拟现实系统,虚拟现实系统的实现基本基于上述实施例所公开的实现方法,现详细介绍虚拟显示系统的组成。 具体包括:
采样模块1,所述采样模块1用于按照第一采样间隔采样第一陀螺仪传感器的检测数据,还用于在所述第一陀螺仪传感器工作至第一时刻后,按照第一采样间隔采样辅助陀螺仪传感器的检测数据;第一时钟模块4,所述第一时钟模块4用于生成第一时间戳,并利用第一时间戳标记第一陀螺仪传感器检测数据;第一存储模块2,所述第一存储模块2用于将具有第一时间戳标记的第一陀螺仪传感器检测数据存储在第一数组中;辅助时钟模块5,所述辅助时钟模块5用于生成第二时间戳,并利用第二时间戳标记第二陀螺仪传感器检测数据;第二存储模块3,所述第二存储模块3用于将具有第二时间戳标记的辅助陀螺仪传感器检测数据存储在第二数组中;滤波模块6,所述滤波模块6用于分别对第一数组和第二数组中的数据进行滤波;整合模块7,所述整合模块7用于根据时间戳交替利用第一数组和第二数组中滤波后的数据依次更新第三数组中的数据元素,形成整合检测数据;姿态信息获取模块8,所述姿态信息获取模块8用于根据整合检测数据求解姿态信息;误差消除模块9,所述误差消除模块9用于利用地磁传感器和加速度传感器消除根据整合检测数据求解出的姿态信息的累计误差;显示模块10,所述显示模块10用于结合消除累计误差的姿态信息形成显示图像。
本实施例所公开的虚拟现实系统,基于双陀螺仪的检测数据,将用于姿态解算的传感器数据获取频率提高至少一倍,同时由于对双陀螺仪侧检测数据分别滤波,可以更有效地去掉噪音数据,提高传感器的数据精度,进一步提高了虚拟现实场景画面切换的细腻度和流畅性,减少了卡顿现象的出现。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。