空鼠的位移获取方法和装置与流程

文档序号:11176597阅读:919来源:国知局
空鼠的位移获取方法和装置与流程

本发明涉及空鼠技术领域,尤其涉及一种空鼠的位移获取方法和装置。



背景技术:

空鼠是一种无线鼠标,其具有体积小,携带方便,操作舒适,不受空间限制等特点,应用越来越广泛,在诸如耳机、虚拟现实(virtualreality,简称vr)、增强现实(augmentedreality,简称ar)等体感交互领域备受关注。比如在游戏应用中,在一些体感设备中实现空鼠功能(也称为体感空鼠),可以使广大游戏玩家可以摆脱传统的机械鼠标进行游戏操作,体验更佳。

实际应用中,往往会遇到这样的情况:用户实际上并不想要让空鼠移动,但是由于某些原因空鼠却发生小幅度的移动,由于空鼠的敏感度过高很可能导致显示屏上显示的空鼠的坐标位置发生抖动,不能稳定停留在某个位置。因此,迫切需要提供一种有效的空鼠的真实位移的获取方法,避免空鼠的过敏感对确定空鼠在显示屏上的坐标位置的不利影响。



技术实现要素:

有鉴于此,本发明实施例提供一种空鼠的位移获取方法和装置,用以克服空鼠的过敏感对确定空鼠在显示屏上的坐标位置的不利影响。

第一方面,本发明实施例提供一种空鼠的位移获取方法,包括:

采集空鼠当前对应的三轴方向的重力加速度;

根据所述重力加速度确定所述空鼠当前对应的第一姿态角;

对所述第一姿态角进行校正处理;

根据校正后的第一姿态角与第二姿态角的比较结果,确定所述空鼠的移动速度;

根据所述空鼠的移动速度和原坐标,确定所述空鼠对应的当前坐标,其中,所述第二姿态角与所述原坐标对应,所述原坐标为根据所述移动速度移动前所述空鼠对应的坐标。

可选地,所述第一姿态角包括:俯仰角和翻滚角,以及,所述根据校正后的第一姿态角与第二姿态角的比较结果,确定所述空鼠的移动速度,包括:

根据如下分段函数确定所述空鼠的在x轴方向的移动速度vxn以及在y轴方向的移动速度vyn:

其中,分别为x轴方向和y轴方向对应的预设速度常数,所述校正后的第一姿态角包括俯仰角picthn和翻滚角rolln,所述第二姿态角包括与所述原坐标对应的俯仰角picthn-1和与所述原坐标对应的翻滚角rolln-1,picthcut和rollcut分别为预设俯仰角阈值和预设翻滚角阈值。

可选地,所述根据所述空鼠的移动速度和原坐标,确定所述空鼠对应的当前坐标,包括:

根据如下公式确定所述空鼠对应的当前坐标(xn,yn):

xn=xn-1+vxn·δt

yn=yn-1+vyn·δt

其中,(xn-1,yn-1)为所述原坐标,δt为所述原坐标的获取时刻与当前时刻的时间差。

第二方面,本发明实施例提供一种空鼠的位移获取装置,包括:

采集模块,用于采集空鼠当前对应的三轴方向的重力加速度;

第一确定模块,用于根据所述重力加速度确定所述空鼠当前对应的第一姿态角;

校正模块,用于对所述第一姿态角进行校正处理;

第二确定模块,用于根据校正后的第一姿态角与第二姿态角的比较结果,确定所述空鼠的移动速度;

第三确定模块,用于根据所述空鼠的移动速度和原坐标,确定所述空鼠对应的当前坐标,其中,所述第二姿态角与所述原坐标对应,所述原坐标为根据所述移动速度移动前所述空鼠对应的坐标。

本发明实施例提供的空鼠的位移获取方法和装置,通过加速度传感器可以采集空鼠当前对应的三轴方向的重力加速度,并根据采集到的重力加速度确定空鼠当前对应的第一姿态角。之后,通过对该第一姿态角进行校正处理,比如进行平滑、去噪等处理,以得到平滑的、干净的姿态角信息。进而,比较校正后的第一姿态角与空鼠上一次稳定停留在显示屏上的坐标称为原坐标时所对应的第二姿态角,以根据比较结果确定空鼠当前的移动速度,进而确定空鼠对应的当前坐标。通过第一姿态角与第二姿态角的比较,可以防止用户无意导致的空鼠抖动对空鼠在显示屏中坐标位置确定的不利影响,进而提高用户使用空鼠进行交互操作的使用体验,比如可以避免由于用户对空鼠的无意识晃动使得显示屏中空鼠坐标位置移动而导致空鼠不能稳定停留在用户希望的屏幕位置的现象。综上,基于对第一姿态角的校正和第一姿态角与第二姿态角的比较,可以克服空鼠的过敏感对确定空鼠在显示屏上的坐标位置的不利影响。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的空鼠的位移获取方法实施例一的流程图;

图2为空鼠的姿态角与空鼠在显示屏的坐标系中的位移变化的对应关系示意图;

图3为本发明实施例提供的空鼠的位移获取方法实施例二的流程图;

图4为本发明实施例提供的空鼠的位移获取装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述xxx,但这些xxx不应限于这些术语。这些术语仅用来将xxx区分开。例如,在不脱离本发明实施例范围的情况下,第一xxx也可以被称为第二xxx,类似地,第二xxx也可以被称为第一xxx。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

进一步值得说明的是,本发明各实施例中各步骤之间的顺序是可以调整的,不是必须按照以下举例的顺序执行。

图1为本发明实施例提供的空鼠的位移获取方法实施例一的流程图,本实施例提供的该空鼠的位移获取方法可以由一空鼠的位移获取装置来执行,该空鼠的位移获取装置可以实现为软件,或者实现为软件和硬件的组合,该空鼠的位移获取装置可以集成设置在某体感设备中,比如耳机、ar或vr应用场景使用的头戴式设备等。如图1所示,该方法包括如下步骤:

101、采集空鼠当前对应的三轴方向的重力加速度。

本实施例中,假设空鼠具体可以实现为耳机,可以在耳机中设置运动传感器以实现空鼠耳机。可选地,该运动传感器可以是加速度传感器,用于检测空鼠在xyz三轴方向上分别对应的重力加速度(gx,gy,gz),其中,gx为x轴方向对应的重力加速度,gy为y轴方向对应的重力加速度,gz为z轴方向对应的重力加速度。

可以理解的是,该三轴方向相当于是建立物理空间对应的三维坐标系,坐标原点可以是加速度传感器在耳机中的设置位置。gx,gy,gz相当于是加速度传感器当前测得的重力加速度在三轴方向的分量。

实际应用中,可以预先设置加速度传感器的采集间隔,使得加速度传感器可以每隔该采集间隔采集一次重力加速度。

102、根据重力加速度确定空鼠当前对应的第一姿态角。

可选地,第一姿态角可以包括:俯仰角和翻滚角。具体地,根据当前采集到的重力加速度(gx,gy,gz)确定空鼠当前对应的第一姿态角,可以实现为:

确定空鼠当前对应的俯仰角为:pitchn=-arcsin(gx/g);确定空鼠当前对应的翻滚角为:rolln=-arctan(gy/gz);其中,g为预设重力加速度常数,n代表当前时刻。

103、对第一姿态角进行校正处理。

实际应用中,空鼠可能由于某些原因发送用户并不希望出现的抖动现象,即实际上用户并不想要让空鼠移动,但是客观上却发生了空鼠的抖动现象,此时,可能导致在显示屏上空鼠对应的坐标位置发生位移变化,而该位移变化是不希望出现的,即是由空鼠的过敏感导致的。

因此,为避免空鼠在显示屏的坐标系中的坐标位置不发生抖动现象,可选地,可以预先对用于确定空鼠在显示屏中的坐标位置的第一姿态角进行校正,以获得真实可靠的姿态角信息。其中,对第一姿态角的校正处理比如可以包括平滑处理、去噪处理等。

104、根据校正后的第一姿态角与第二姿态角的比较结果,确定空鼠的移动速度,第二姿态角与原坐标对应。

其中,该原坐标为根据移动速度移动前空鼠对应的坐标,亦即空鼠在显示屏中最近一次稳定停留在的坐标位置。

105、根据空鼠的移动速度和原坐标,确定空鼠对应的当前坐标。

可以预先保存空鼠在显示屏中之前时刻所位于的坐标位置,称为原坐标,并且保存用于确定该原坐标的姿态角,称为第二姿态角。

从而,在根据当前确定出的第一姿态角确定空鼠在显示屏中的坐标位置是否需要改变,改变到何处时,可以比较第一姿态角与第二姿态角,以根据第一姿态角相对于第二姿态角发生的角度改变的程度,确定是否需要改变空鼠在显示屏中的坐标位置以及改变到何处。

当确定需要改变空鼠在显示屏中的坐标位置时,可以根据预先设定的姿态角改变程度与空鼠移动速度的对应关系,确定出当前在显示屏中空鼠坐标的移动速度,进而基于该移动速度和原坐标确定空鼠在显示屏中当前对应的坐标位置。

另外,值得说明的是,在确定空鼠在显示屏中当前对应的坐标位置时,是一个确定空鼠在显示屏中相对于原坐标向什么方向移动多少距离的过程。其中,移动方向可以根据第一姿态角相对于第二姿态角的差值来确定,即根据第一姿态角相对于第二姿态角的改变方向来确定。如图2所示,俯仰角的改变会引起空鼠在显示屏中x轴方向坐标的改变,翻滚角的改变会引起空鼠在显示屏中y轴方向坐标的改变。

本实施例中,首先采集空鼠当前对应的三轴方向的重力加速度,并根据采集到的重力加速度确定空鼠当前对应的第一姿态角。之后,通过对该第一姿态角进行校正处理,比如进行平滑、去噪等处理,以得到平滑的、干净的姿态角信息。进而,比较校正后的第一姿态角与空鼠上一次位于原坐标时所对应的第二姿态角,以根据比较结果确定空鼠当前的移动速度,进而确定空鼠对应的当前坐标。通过第一姿态角与第二姿态角的比较,可以防止用户无意导致的空鼠抖动对空鼠在显示屏中坐标位置确定的不利影响。综上,基于对第一姿态角的校正和第一姿态角与第二姿态角的比较,可以克服空鼠的过敏感对确定空鼠在显示屏上的坐标位置的不利影响。

图3为本发明实施例提供的空鼠的位移获取方法实施例二的流程图,如图3所示,可以包括如下步骤:

201、采集空鼠当前对应的三轴方向的重力加速度。

202、采用预先获得的标定参数对重力加速度进行标定。

假设当前采集到的重力加速度为(gx,gy,gz),标定后的重力加速度为(gx',gy',gz')。

具体地,对重力加速度(gx,gy,gz)进行标定的过程可以是:

gx'=kxxgx+kxygy+kxzgz+offset_x;

gy'=kyxgx+kyygy+kyzgz+offset_y;

gz'=kzxgx+kzygy+kzzgz+offset_z.

其中,kxx,kxy,kxz,offset_x,kyx,kyy,kyz,offset_y,kzx,kzy,kzz,offset_z为标定参数。

这些标定参数的确定过程可以采用“六位置”法进行确定。以空鼠具体实现为耳机为例,可以在耳机出厂时对标定参数进行确定。具体来说,可以调整加速度传感器在耳机中的安放位置,使得加速度传感器分别位于六个不同位置,该安放位置的调整可以理解为是调整物理空间三维坐标系中xyz三轴的指向。另外,在每个安放位置处,如果加速度传感器都处于理想工作状态,则会具有对应的理论重力加速度值,从而,结合加速度传感器在各安放位置处对应的理论重力加速度值以及实际测得的重力加速度值,可以求解标定参数。

加速度传感器的安放位置与理论重力加速度值的情况如下表所示:

表1:加速度传感器的标定参考表

结合上述表格可知加速度传感器分别在六个不同安放位置处时对应的理论重力加速度值的情况,进而,结合加速度传感器在各安放位置处实际测得的重力加速度值,根据如下的公式,可以求解各标定参数:

gx实测=kxxgx理论+kxygy理论+kxzgz理论+offset_x;

gy实测=kyxgx理论+kyygy理论+kyzgz理论+offset_y;

gz实测=kzxgx理论+kzygy理论+kzzgz理论+offset_z.

203、根据标定后的重力加速度确定空鼠当前对应的第一姿态角。

第一姿态角的确定过程参照前述实施例实现,在此不赘述。

204、结合k个第三姿态角对第一姿态角进行平滑处理,k个第三姿态角与在所述重力加速度之前采集到的k个重力加速度对应。

205、对平滑处理后的第一姿态角进行去噪处理。

本实施例中,可以采用平滑处理的方式克服空鼠抖动的问题。具体来说,针对当前获得的第一姿态角,可以向前取k个第三姿态角,以采用这k个第三姿态角对该第一姿态角进行平滑处理。

由于加速度传感器被预先设置为以一定的采集间隔不断采集重力加速度,从而可以根据姿态角的确定方法,确定出每次采集的重力加速度所对应的姿态角。上述k个第三姿态角即为:与采集到第一姿态角对应的重力加速度之前采集到的k个重力加速度分别相对应的姿态角。

实际应用中,可以预先设置合理的取值范围,k的取值可以在该取值范围内随机选择;或者,也可以预先设置k取某个固定的数值。该取值范围的设定可以结合加速度传感器的采集间隔来设定,采集间隔越短,取值范围上限可以越大。

以k=5为例,对第一姿态角的平滑处理具体可以为:其中,为第一姿态角,为平滑后的第一姿态角,相当于是对当前的第一姿态角以及之前的五个第三姿态角进行平均运算,得到平滑后的第一姿态角。

之后,可以采用比如fft(傅里叶)滤波方法对平滑后的第一姿态角进行去噪处理,以滤除第一姿态角中的高频噪声部分。该fft滤波方法运行速度快,功耗低。

206、采用预设分段函数比较去噪后的第一姿态角与第二姿态角,以确定空鼠的移动速度,第二姿态角与原坐标对应。

其中,原坐标的含义参见前述实施例中的说明,在此不赘述。

207、根据空鼠的移动速度和原坐标,确定空鼠对应的当前坐标。

具体地,可以根据如下分段函数确定空鼠在显示屏中x轴方向的移动速度vxn以及y轴方向的移动速度vyn:

其中,分别为x轴方向和y轴方向对应的预设速度常数,校正后的第一姿态角包括俯仰角picthn和翻滚角rolln,第二姿态角包括与原坐标对应的俯仰角picthn-1和与原坐标对应的翻滚角rolln-1,picthcut和rollcut分别为预设俯仰角阈值和预设翻滚角阈值。

由上述分段函数可知:针对翻滚角来说,如果翻滚角的变化程度较小,则空鼠在显示屏中的x轴方向位置不变,如果翻滚角的变化程度较大,则空鼠在显示屏中的x轴方向的坐标移动速度与翻滚角的变化程度具有正比关系。同样地,针对俯仰角来说,如果俯仰角的变化程度较小,则空鼠在显示屏中的y轴方向位置不变,如果俯仰角的变化程度较大,则空鼠在显示屏中的y轴方向的坐标移动速度与俯仰角的变化程度具有正比关系。

基于分段函数进行空鼠在显示屏中移动速度的确定,一方面可以去除噪声和空鼠抖动对空鼠在显示屏中移动的不利影响;另一方面可以让空鼠‘滞空’停留,即停留在需要的位置,以便用户可以在该位置处触发对空鼠的其他控制操作,比如通过敲击空鼠而触发对该位置处的某个应用图标进行打开操作,等等。

在确定出空鼠在显示屏中x轴方向的移动速度vxn以及y轴方向的移动速度vyn后,可以根据如下公式确定空鼠在显示屏中对应的当前坐标(xn,yn):

xn=xn-1+vxn·δt

yn=yn-1+vyn·δt

其中,(xn-1,yn-1)为原坐标,δt为原坐标的获取时刻与当前时刻的时间差。

实际应用中,对空鼠在显示屏中坐标位置进行确定处理的时间间隔与加速度传感器的采集间隔可以一致,也可以略大于采集间隔。当与采集间隔一致时,该坐标的获取时刻与当前时刻的时间差可以为采集间隔的时长。

综上,本实施例中,在采集到空鼠当前对应的三轴方向的重力加速度之后,通过对该重力加速度的标定处理,对基于该重力加速度确定的第一姿态角的平滑、去噪处理,可以保证用于确定空鼠在显示屏中坐标位置的姿态角信息的准确、可靠。进而,基于分段函数对空鼠在显示屏中的坐标移动速度进行确定,可以实现空鼠在显示屏中的滞空停留效果。

图4为本发明实施例提供的空鼠的位移获取装置的结构示意图,如图4所示,该装置包括:采集模块11、第一确定模块12、校正模块13、第二确定模块14、第三确定模块15。

采集模块11,用于采集空鼠当前对应的三轴方向的重力加速度。

第一确定模块12,用于根据所述重力加速度确定所述空鼠当前对应的第一姿态角。

校正模块13,用于对所述第一姿态角进行校正处理。

第二确定模块14,用于根据校正后的第一姿态角与第二姿态角的比较结果,确定所述空鼠的移动速度。

第三确定模块15,用于根据所述空鼠的移动速度和原坐标,确定所述空鼠对应的当前坐标,其中,所述第二姿态角与所述原坐标对应,所述原坐标为根据所述移动速度移动前所述空鼠对应的坐标。

可选地,该装置还包括:标定模块16。

标定模块16,用于采用预先获得的标定参数对所述重力加速度进行标定。

可选地,所述校正模块13包括:平滑单元131、去噪单元132。

平滑单元131,用于结合k个第三姿态角对所述第一姿态角进行平滑处理,所述k个第三姿态角与在所述重力加速度之前采集到的k个重力加速度对应,k为大于1的预设值。

去噪单元132,用于对平滑处理后的第一姿态角进行去噪处理。

可选地,所述第一姿态角包括:俯仰角和翻滚角,以及,所述第一确定模块12具体用于:

确定所述空鼠当前对应的俯仰角为:pitchn=-arcsin(gx/g);

确定所述空鼠当前对应的翻滚角为:rolln=-arctan(gy/gz);

其中,g为预设重力加速度常数,gx为x轴方向对应的重力加速度,gy为y轴方向对应的重力加速度,gz为z轴方向对应的重力加速度。

可选地,所述第二确定模块14具体用于:

根据如下分段函数确定所述空鼠的在x轴方向的移动速度vxn以及在y轴方向的移动速度vyn:

其中,分别为x轴方向和y轴方向对应的预设速度常数,所述第二姿态角包括与所述原坐标对应的俯仰角picthn-1和与所述原坐标对应的翻滚角rolln-1,picthcut和rollcut分别为预设俯仰角阈值和预设翻滚角阈值。

从而可选地,所述第三确定模块15具体用于:

根据如下公式确定所述空鼠对应的当前坐标(xn,yn):

xn=xn-1+vxn·δt

yn=yn-1+vyn·δt

其中,(xn-1,yn-1)为所述原坐标,δt为所述原坐标的获取时刻与当前时刻的时间差。

图4所示装置可以执行图1、图3所示实施例的方法,本实施例未详细描述的部分,可参考对图1、图3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1、图3所示实施例中的描述,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1