空间鼠标的数据处理方法以及鼠标指针的控制方法转让专利

申请号 : CN201310298200.5

文献号 : CN103389807B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龙涛乔磊滕敏

申请人 : 江苏惠通集团有限责任公司

摘要 :

一种空间鼠标的数据处理方法以及鼠标指针的控制方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,所述空间鼠标的数据处理方法包括:记录所述惯性器件关闭前最后一次采集到的空间坐标数据;在所述惯性器件重新开启后,获取当前空间坐标的补偿值,所述当前空间坐标的补偿值为前一次采集到的空间坐标数据和所记录的空间坐标数据的差值;采用所述当前空间坐标的补偿值对当前采集到的空间坐标数据进行补偿,以获得当前空间坐标数据的输出值。本发明技术方案可以有效解决空间鼠标输出的空间坐标数据存在误差的问题,使得所述空间鼠标输出的空间坐标数据精确、可靠,提高空间鼠标定位准确性。

权利要求 :

1.一种空间鼠标的数据处理方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,其特征在于,包括:记录所述惯性器件关闭前最后一次采集到的空间坐标数据;

在所述惯性器件重新开启后,获取当前空间坐标的补偿值,所述当前空间坐标的补偿值为前一次采集到的空间坐标数据和所记录的空间坐标数据的差值;

采用所述当前空间坐标的补偿值对当前采集到的空间坐标数据进行补偿,以获得当前空间坐标数据的输出值。

2.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,还包括:当所述当前空间坐标的补偿值达到补偿阈值,则不再对当前采集到的空间坐标数据进行补偿。

3.如权利要求2所述的空间鼠标的数据处理方法,其特征在于,所述补偿阈值为0。

4.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,还包括:丢弃所述惯性器件重新开启后第一次获得的空间坐标数据的输出值。

5.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,还包括:基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量。

6.如权利要求5所述的空间鼠标的数据处理方法,其特征在于,所述基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量包括:由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算所述空间鼠标的位移变化量。

7.如权利要求5所述的空间鼠标的数据处理方法,其特征在于,所述基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量包括:若未接收到坐标输出关闭命令或在接收到坐标输出关闭命令后预设时间范围内接收到坐标输出开启命令,则由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算所述空间鼠标的位移变化量;

若接收到坐标输出关闭命令,则停止计算所述空间鼠标的位移变化量;

若在接收到坐标输出关闭命令后预设时间范围内未接收到坐标输出开启命令,则关闭所述惯性器件。

8.如权利要求7所述的空间鼠标的数据处理方法,其特征在于,还包括:在接收到坐标输出关闭命令后预设时间范围内记录所述惯性器件采集的空间坐标数据。

9.如权利要求7所述的空间鼠标的数据处理方法,其特征在于,所述预设时间范围大于或等于5s。

10.如权利要求6或7所述的空间鼠标的数据处理方法,其特征在于,所述基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量还包括:丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量。

11.如权利要求10所述的空间鼠标的数据处理方法,其特征在于,所述基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量还包括:在丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量后,对数据丢弃标志位置位;所述数据丢弃标志位在空间鼠标初始化时和惯性器件关闭时复位。

12.如权利要求5所述的空间鼠标的数据处理方法,其特征在于,还包括:基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量。

13.如权利要求12所述的空间鼠标的数据处理方法,其特征在于,所述空间鼠标的运动状态由重力加速度传感器的数据获得,所述运动状态包括水平状态下的运动、垂直状态下的运动和侧立状态下的运动;如果空间鼠标输出的位移变化量在z方向上的分量没有变化时,仅在y方向上有变化时,判断当前空间鼠标处于水平状态下运动;如果空间鼠标输出的位移变化量仅在z方向上的分量有变化时,而在x方向上和y方向的分量均没有变化时,判断当前空间鼠标处于垂直状态下运动;如果空间鼠标输出的位移变化量仅在x方向上的分量有变化量时,而在y方向上和z方向的分量均没有变化时,判断当前空间鼠标处于侧立状态下运动。

14.如权利要求12所述的空间鼠标的数据处理方法,其特征在于,所述基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量包括:若所述空间鼠标在水平状态下运动,则保持所述空间鼠标的位移变化量;

若所述空间鼠标在垂直状态下运动,则缩小所述空间鼠标的位移变化量在x方向和y方向上的分量;

若所述空间鼠标在侧立状态下运动,则放大所述空间鼠标的位移变化量在y方向上的分量。

15.如权利要求14所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越大。

16.如权利要求14或15所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在x方向上的分量dx缩小为(f(z)/a)×dx,所述空间鼠标的位移变化量在y方向上的分量dy缩小为(f(z)/a)×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,a为衰减系数,1≤a≤5。

17.如权利要求14所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量还包括:若缩小后的所述空间鼠标的位移变化量在x方向和y方向上的分量大于分量阈值,则将所述空间鼠标的位移变化量在x方向和y方向上的分量设置为所述分量阈值。

18.如权利要求17所述的空间鼠标的数据处理方法,其特征在于,所述分量阈值为100。

19.如权利要求14所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在y方向上的分量放大程度越大。

20.如权利要求14或19所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在y方向上的分量dy放大为(b/f(z))×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,b为放大系数,1≤b≤5。

21.一种鼠标指针的控制方法,其特征在于,包括:

采用权利要求1至20任一项所述的空间鼠标的数据处理方法获取所述空间鼠标的位移变化量;

根据所述空间鼠标的位移变化量控制鼠标指针的移动。

说明书 :

空间鼠标的数据处理方法以及鼠标指针的控制方法

技术领域

[0001] 本发明涉及空间鼠标技术领域,尤其涉及一种空间鼠标的数据处理方法以及鼠标指针的控制方法。

背景技术

[0002] 目前,计算机鼠标指针的定位大多数都依靠光学传感器或激光传感器来实现,这些传感器都基于物理光学原理,使得传感器需要依靠桌面等平台来实现。但是在很多场合,例如在计算机多媒体教学中,用户想在空中操控鼠标指针或是通过在空中操控鼠标指针来实现多媒体电视播放、网页浏览等应用,仅使用传统的传感器就无法实现,于是空间鼠标应运而生。空间鼠标是一种输入设备,像传统鼠标一样操作鼠标指针(屏幕光标),但却不需要放在任何平面上,在空中晃动就能直接依靠空中运动姿态的感知实现对鼠标指针的控制。要实现空中运动姿态的感知,一般在空间鼠标中设置惯性器件,利用惯性器件测量技术实现对运动载体姿态的跟踪。
[0003] 惯性跟踪系统的基本原理是在目标初始位置和姿态已知的基础上,依据惯性原理,利用陀螺仪传感器、加速度传感器等惯性器件测量物体运动的角速度和直线加速度,然后通过积分获得物体的位置和姿态。
[0004] 但是在实际使用的过程中,当关闭空间鼠标后就无法再检测到所述空间鼠标的运动过程,而在所述空间鼠标再次开启时,它的坐标零点就无法和关闭空间鼠标前的坐标零点重合,这是因为,空间鼠标的初始点,即坐标零点是由空间鼠标的系统假设的,在每次开启所述空间鼠标时,系统重新确定坐标零点,而所述重新确定的坐标零点是很难与上次关闭空间鼠标前的坐标零点重合的,此时所述空间鼠标的初始点就会有问题,以此为基础获得的空间鼠标的空间坐标就会有误差,并进而确定的所述空间鼠标的位置和姿态就会有误差,鼠标定位就会有误差。
[0005] 相关技术可参考公开号为US2009295729(A1)的美国专利申请,该专利申请公开了一种空间定位的具体实现。

发明内容

[0006] 本发明解决的问题是空间鼠标输出的空间坐标数据存在误差的问题。
[0007] 为解决上述问题,本发明提供一种空间鼠标的数据处理方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,所述方法包括:记录所述惯性器件关闭前最后一次采集到的空间坐标数据;在所述惯性器件重新开启后,获取当前空间坐标的补偿值,所述当前空间坐标的补偿值为前一次采集到的空间坐标数据和所记录的空间坐标数据的差值;采用所述当前空间坐标的补偿值对当前采集到的空间坐标数据进行补偿,以获得当前空间坐标数据的输出值。
[0008] 可选的,当所述当前空间坐标的补偿值达到补偿阈值,则不再对当前采集到的空间坐标数据进行补偿。
[0009] 可选的,所述补偿阈值为0。
[0010] 可选的,丢弃所述惯性器件重新开启后第一次获得的空间坐标数据的输出值。
[0011] 可选的,基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量。
[0012] 可选的,所述基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量包括:由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算所述空间鼠标的位移变化量。
[0013] 可选的,所述基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量包括:若未接收到坐标输出关闭命令或在接收到坐标输出关闭命令后预设时间范围内接收到坐标输出开启命令,则由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算所述空间鼠标的位移变化量;若接收到坐标输出关闭命令,则停止计算所述空间鼠标的位移变化量;若在接收到坐标输出关闭命令后预设时间范围内未接收到坐标输出开启命令,则关闭所述惯性器件。
[0014] 可选的,在接收到坐标输出关闭命令后预设时间范围内记录所述惯性器件采集的空间坐标数据。
[0015] 可选的,所述预设时间范围大于或等于5s。
[0016] 可选的,所述基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量还包括:丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量。
[0017] 可选的,所述基于所述空间坐标数据的输出值获得所述空间鼠标的位移变化量还包括:在丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量后,对数据丢弃标志位置位;所述数据丢弃标志位在空间鼠标初始化时和惯性器件关闭时复位。
[0018] 可选的,基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量。
[0019] 可选的,所述空间鼠标的运动状态由重力加速度传感器的数据获得,所述运动状态包括水平状态下的运动、垂直状态下的运动和侧立状态下的运动。
[0020] 可选的,所述基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量包括:若所述空间鼠标在水平状态下运动,则保持所述空间鼠标的位移变化量;若所述空间鼠标在垂直状态下运动,则缩小所述空间鼠标的位移变化量在x方向和y方向上的分量;若所述空间鼠标在侧立状态下运动,则放大所述空间鼠标的位移变化量在y方向上的分量。
[0021] 可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越大。
[0022] 可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量通过下述方式实现:
[0023] 所述空间鼠标的位移变化量在x方向上的分量dx缩小为(f(z)/a)×dx,所述空间鼠标的位移变化量在y方向上的分量dy缩小为(f(z)/a)×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,a为衰减系数,1≤a≤5。
[0024] 可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量还包括:若缩小后的所述空间鼠标的位移变化量在x方向和y方向上的分量大于分量阈值,则将所述空间鼠标的位移变化量在x方向和y方向上的分量设置为所述分量阈值。
[0025] 可选的,所述分量阈值为100。
[0026] 可选的,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在y方向上的分量放大程度越大。
[0027] 可选的,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在y方向上的分量dy放大为(b/f(z))×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,b为放大系数,1≤b≤5。
[0028] 为了解决上述技术问题,本发明技术方案还提供一种鼠标指针的控制方法,其特征在于,包括:采用如上所述的空间鼠标的数据处理方法获取所述空间鼠标的位移变化量;根据所述空间鼠标的位移变化量控制鼠标指针的移动。
[0029] 与现有技术相比,本发明的技术方案具有以下优点:
[0030] 在惯性器件重新开启后,采用前一次采集到的空间坐标数据和记录的惯性器件关闭前最后一次采集到的空间坐标数据的差值作为所述当前空间坐标的补偿值,对当前采集到的空间坐标数据进行补偿,获得当前空间坐标数据的输出值的方法,可以使得惯性器件重新开启后,经过上述补偿过程,将空间坐标的输出值和关闭所述惯性器件前所采集的空间坐标值处于同一个空间坐标体系中,有效解决重新开启惯性器件后由于初始点位置的不同,所导致的空间坐标数据存在误差的问题,使得输出的空间坐标数据精确和可靠。
[0031] 在可选方案中,在所述惯性器件开启后,丢弃第一次计算得到的空间鼠标的位移变化量,可以有效避免因第一次计算得到的空间鼠标的位移变化量存在误差而导致后续数据处理不准确的问题。
[0032] 在可选方案中,在接收到坐标输出关闭命令后,在预设时间范围内继续记录所述惯性器件采集的空间坐标数据,停止计算所述空间鼠标的位移变化量,则在预设时间范围内再次收到坐标输出开启命令的时候,就可以根据所述记录的惯性器件采集的空间坐标数据快速、准确获得所述空间鼠标的位移变化量的输出值。
[0033] 在可选方案中,根据所述空间鼠标的运动状态,修正空间鼠标的位移变化量,可以准确获得所述空间鼠标的位移变化量。

附图说明

[0034] 图1是本发明实施例一的空间鼠标的运动轨迹示意图;
[0035] 图2是本发明实施例一的空间鼠标的数据处理方法的流程示意图;
[0036] 图3是本发明实施例二的空间鼠标的数据处理方法的流程示意图;
[0037] 图4是本发明实施例三的空间鼠标的数据处理方法的流程示意图;
[0038] 图5是本发明实施例四的空间鼠标的数据处理方法的流程示意图;
[0039] 图6是本发明实施例五的空间鼠标的数据处理方法的流程示意图;
[0040] 图7是本发明实施例六的空间鼠标的数据处理方法的流程示意图;
[0041] 图8是本发明实施例七的空间鼠标的数据处理方法的流程示意图;
[0042] 图9是本发明实施例八的空间鼠标的数据处理方法的流程示意图。

具体实施方式

[0043] 空间鼠标在正常使用时,要先打开空间鼠标和终端的电源开关,待空间鼠标和终端之间的无线通信链路建立后,空间鼠标就进入了工作状态。具体的,空间鼠标进入工作状态后首先由惯性器件采集空间坐标数据,其中惯性器件可以是陀螺仪传感器或重力加速度传感器,可以通过陀螺仪传感器测量得到的角速度等参数信息而得到所述空间鼠标的空间坐标数据,也可以通过重力加速度传感器测量得到的直线加速度等参数信息而得到所述空间鼠标的空间坐标数据,也可以通过结合陀螺仪传感器以及重力加速度传感器测量得到的参数信息得到所述空间鼠标的空间坐标数据,所述得到所述空间鼠标的空间坐标数据的方法可以采用本领域技术人员所知晓的多种方法进行,在此不再赘述。终端接收到空间鼠标的空间坐标数据后,根据前后两次的所述空间坐标数据可以获得所述空间鼠标的位移变化量,然后通过转换计算将其转换为鼠标指针数据,如显示屏幕上的鼠标指针的平面坐标或平面坐标的变化量,就完成了空间鼠标对鼠标指针的控制。如果空间鼠标的内存允许,还可以将空间坐标数据到鼠标指针数据的转换过程放在空间鼠标内部执行,然后直接将鼠标指针数据发送给终端,再由终端完成对鼠标指针在显示屏幕上的移动控制。
[0044] 在基于惯性器件得到空间坐标数据、得到空间鼠标的位移变化量以及最终得到鼠标指针数据的过程中,在任何一个阶段中都可能会产生误差,现有技术中,有对空间鼠标的位移变化量进行校正的相关技术,但并没有一个完整、有效的方法可以使得上述各个阶段所得到的数据都准确和有效。
[0045] 上述过程中,在基于惯性器件得到空间坐标数据是存在误差的。这是因为,在每次开启惯性器件时(所述开启惯性器件是指使惯性器件处于工作状态,通过所述惯性器件可以采集空间鼠标的空间坐标数据),系统需要重新确定空间鼠标的初始点,即需要重新确定坐标零点,而所述坐标零点是由空间鼠标系统假设的,重新确定的坐标零点是很难与上次关闭惯性器件前的坐标零点重合的。而对于空间的任意一点,它的空间坐标数据(即绝对坐标数据)应该是基于同一个坐标系确定的,应该是唯一的,不应该由于关闭或者开启惯性器件而有所不同。现有技术中并没有对此进行处理,所以由于每次开启惯性器件所确定的空间坐标的初始点的不同,会导致以不同的空间坐标的初始点为基础获得的惯性器件的空间坐标数据就会有误差,导致在得到空间鼠标各个阶段的数据中都会存在误差,使得空间鼠标定位不准确。而且,空间鼠标在运动的过程中,由于受到地球重力加速度的影响,其本身在输出数据的过程中,也会存在误差,同样会导致鼠标定位不准确的问题产生。
[0046] 为解决上述问题,本发明技术方案提供一种空间鼠标的数据处理方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,所述方法包括:记录所述惯性器件关闭前最后一次采集到的空间坐标数据;在所述惯性器件重新开启后,获取当前空间坐标的补偿值,所述当前空间坐标的补偿值为前一次采集到的空间坐标数据和所记录的空间坐标数据的差值;采用所述当前空间坐标的补偿值对当前采集到的空间坐标数据进行补偿,以获得当前空间坐标数据的输出值。
[0047] 为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0048] 实施例一
[0049] 在本实施例中,在空间鼠标重新开启后,对当前采集到的空间坐标数据进行补偿,通过对当前采集到的空间坐标数据的补偿,使得在空间鼠标所含有的惯性器件由关闭状态到再次打开后,当前采集到的空间坐标数据和上次关闭惯性器件前所采集到的空间坐标数据处于同一个坐标系中,即使得惯性器件在再次打开和上次关闭前的空间坐标系的零点坐标(空间坐标系的坐标原点)重合在一起,这样就使得得到的空间坐标数据是基于同一个坐标系确定的,对于同一个位置空间鼠标所输出的空间坐标数据是唯一的,不会由于关闭或者开启惯性器件而有所不同。
[0050] 在本实施例中,采用迭代的算法使得惯性器件在重新开启后和上次关闭惯性器件前获取空间坐标数据的坐标系的零点坐标(坐标系的坐标原点)重合在一起。
[0051] 如图1所示,在空间鼠标运行的过程中,通过惯性器件采集空间鼠标的空间坐标数据,图中所示的点(如点L、点A、点B、点C)的位置就是每次采集到的空间鼠标的空间坐标数据。假设轨迹a是惯性器件关闭前的空间鼠标的运行轨迹,其中,点L为所述惯性器件关闭前空间鼠标最后位于空间的位置,在点L处惯性器件采集的空间坐标数据为(x,y,z),在此将点L的空间坐标数据记为L(x,y,z),假设轨迹b是惯性器件重新开启后的空间鼠标的运行轨迹,点A为惯性器件重新开启后空间鼠标运动的起始点位置,在空间鼠标从点A开始运行时,惯性器件首先采集所述空间鼠标在点A处的空间坐标数据(x1,y1,z1),在此记为A(x1,y1,z1),空间鼠标由点A运动到点B时,惯性器件采集所述空间鼠标在点B处的空间坐标数据(x2,y2,z2),在此记为B(x2,y2,z2),在空间鼠标由点B运动到C点时,惯性器件采集所述空间鼠标在点C处的空间坐标数据(x3,y3,z3),在此记为C(x3,y3,z3),依次类推。
[0052] 为了使惯性器件在重新开启后和上次关闭惯性器件前获取空间坐标数据的坐标系的零点坐标重合在一起,需要对所述惯性器件每次所采集到的空间坐标数据进行补偿,即需要对惯性器件在点A、B、C以及后续的各点所采集的空间坐标数据进行补偿,在本实施例中,利用前一次采集的空间坐标数据和惯性器件关闭前最后一次采集到的空间坐标数据的差值对当前采集到的空间坐标数据进行补偿。
[0053] 举例来说,在空间鼠标运行的过程中,当空间鼠标由点A运行到点B的时候,可以用前一次在点A采集的空间坐标数据和惯性器件关闭前在最后一次在点L采集到的空间坐标数据的差值对当前采集到的点B的空间坐标数据进行补偿。具体地,首先计算点A的空间坐标数据A(x1,y1,z1)和点L的空间坐标数据L(x,y,z)之间的差值,所述差值为点A和点L之间的矢量差值,在此将所述差值记为Δm,用Δm的值对当前采集到的点B的空间坐标数据B(x2,y2,z2)进行补偿,将B(x2,y2,z2)和Δm的和值作为点B的空间坐标数据补偿后的值,即作为点B的空间坐标数据的最终输出值,在此记为B(x2L,y2L,z2L)。
[0054] 在所述空间鼠标继续从点B运行到点C的时候,可以用前一次在点B采集的空间坐标数据和惯性器件关闭前在最后一次在点L采集到的空间坐标数据的差值对当前采集到的点C的空间坐标数据进行补偿,在对点C的空间坐标数据C(x3,y3,z3)进行补偿时,用点B的空间坐标数据B(x2,y2,z2)和点L的空间坐标数据L(x,y,z)之间的差值对其进行补偿,将点B的空间坐标数据B(x2,y2,z2)和点L的空间坐标数据L(x,y,z)之间的矢量差值记为Δn,将C(x3,y3,z3)和Δn的和值作为点C的空间坐标数据补偿后的值,即作为点C的空间坐标数据的最终输出值,在此记为C(x3L,y3L,z3L)。
[0055] 依次类推,采用上述迭代的过程依次对惯性器件重新开启后运行轨迹中的各点所采集到的空间坐标数据进行补偿,如上所述,由前一次采集的空间坐标数据(例如A(x1,y1,z1))和惯性器件关闭前最后一次采集到的空间坐标数据(L(x,y,z))的差值(例如Δm)对当前采集到的空间坐标数据(例如B(x2,y2,z2))进行补偿,以获得当前空间当前坐标数据的最终输出值(例如B(x2L,y2L,z2L))。
[0056] 需要说明的是,通过上述迭代过程可以看出,对于初始点A的空间坐标数据,由于A(x1,y1,z1)是惯性器件重新开启后第一次采集到的空间坐标数据,其前一次采集的空间坐标数据实际是惯性器件关闭前最后一次采集到的空间坐标数据,如果用上述补偿的方法,由前一次采集的空间坐标数据(对于A点而言,即为惯性器件关闭前最后一次采集到的空间坐标数据)和惯性器件关闭前最后一次采集到的空间坐标数据的差值(所述差值在此计算结果为0)对在A点采集到的空间坐标数据进行补偿,则相当于没有对A点的空间坐标数据进行补偿,A点的空间坐标数据仍是有问题的,所以在具体实施时,对于点A的空间坐标数据A(x1,y1,z1)通常可以不进行输出,即丢弃点A的空间坐标数据的输出值。
[0057] 在上述迭代的过程中,如果由前一次采集的空间坐标数据和惯性器件关闭前最后一次采集到的空间坐标数据的差值逐渐的缩小,当所述差值趋近于0的时候,即对当前所采集到的空间坐标数据的补偿值趋近于0的时候,说明不再需要对当前所采集到的空间坐标数据进行补偿,即说明当前惯性器件所采集的空间坐标数据所在的坐标系和上次关闭所述惯性器件前所采集的空间坐标数据所在的坐标系基本上处于同一个坐标系,即惯性器件在重新开启时和上次关闭前的坐标系的零点坐标重合在一起,此时输出的惯性器件所采集的空间坐标数据误差已基本上消除,可以直接将惯性器件所采集的空间坐标数据作为空间坐标数据的输出值。
[0058] 基于上述说明,本实施例提供的空间鼠标的数据处理方法如图2所示,首先执行步骤S201,记录所述惯性器件关闭前最后一次采集到的空间坐标数据。
[0059] 执行步骤S202,在所述惯性器件重新开启后,获取当前空间坐标的补偿值。
[0060] 所述当前空间坐标的补偿值为前一次采集到的空间坐标数据和所记录的空间坐标数据的差值。
[0061] 执行步骤S203,丢弃所述惯性器件重新开启后第一次获得的空间坐标数据的输出值。
[0062] 执行步骤S204,采用所述当前空间坐标的补偿值对当前采集到的空间坐标数据进行补偿。
[0063] 将当前采集到的空间坐标数据加上在步骤S202中得到的补偿值作为当前空间坐标数据的输出值。
[0064] 执行步骤S205,当所述当前空间坐标的补偿值达到补偿阈值,则不再对当前采集到的空间坐标数据进行补偿。
[0065] 所述补偿阈值可以根据实际系统的处理能力以及对于空间坐标数据精确性的具体要求进行设定,可以设定为一个接近于0的一个阈值,在本实施例中,所述补偿阈值设置为0。
[0066] 通过本实施例可以看出,通过对当前采集到的空间坐标数据进行补偿,获得当前空间坐标数据的输出值的方法,可以使得惯性器件重新开启后所采集到的空间坐标数据和前一次关闭所述惯性器件前所采集的空间坐标数据处于同一个空间坐标体系中,有效解决了重新开启惯性器件后由于零点位置的不同,所导致的输出的空间坐标数据存在误差的问题,使得采集到的空间坐标数据精确和可靠。
[0067] 实施例二
[0068] 本实施例是在基于实施例一获得补偿后的空间坐标数据的输出值,获得空间鼠标的位移变化量的过程中,对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除。
[0069] 在基于实施例一获得空间坐标数据的输出值后,可以由当前空间坐标数据的输出值和前一次空间坐标数据的输出值获得空间鼠标的位移变化量。
[0070] 在实际应用中,用户经常会根据各种实际使用需求,短时间或者长时间关闭空间鼠标的惯性器件。但在重新打开惯性器件的时候,初始点位置的位移变化量就会有问题。这是因为所述位移变化量是由当前采集到的空间坐标数据和所记录的前一次采集的空间坐标数据的差值,而在短时间或者长时间关闭空间鼠标的惯性器件时,空间鼠标系统在惯性器件关闭的这段时间是无法检测到惯性器件的运动过程的,系统所记录的最后的空间坐标数据是在所述惯性器件关闭前最后一次采集到的空间坐标数据,在惯性器件重新开启时,对于初始点位置而言,其前一次采集的空间坐标数据为所述惯性器件关闭前最后一次采集到的空间坐标数据,由此计算出的初始点位置的空间鼠标的位移变化量可能是有问题的,因为惯性器件在关闭和重新开启时通常都不会是处于同一位置或相近位置的。
[0071] 在本实施例中,在惯性器件开启后,丢弃所述惯性器件开启后第一次计算得到的空间鼠标的位移变化量(即上述初始点位置的位移变化量),而由于在此之后计算得到的空间鼠标的位移变化量不存在如计算初始点位置时的问题,所以可以直接输出所述空间鼠标的位移变化量。
[0072] 图3是本实施例提供的空间鼠标的数据处理方法的流程示意图,如图3所示,首先执行步骤S301,获得当前空间坐标数据的输出值。
[0073] 步骤S301可以参考实施例一步骤S201至步骤S205。在其他实施例中,也可以采用现有技术中的多种方法获得当前空间坐标数据的输出值,而不采用如实施例一步骤S201至步骤S205所提供的对空间坐标数据进行补偿的方法获得当前空间坐标数据的输出值。
[0074] 步骤S302,由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算空间鼠标的位移变化量。
[0075] 步骤S303,判断数据丢弃标志位是否置位。
[0076] 在本实施例中,可以预先设置一个数据丢弃标志位,用于标示计算得到的空间鼠标的位移变化量是否被丢弃,此数据丢弃标志位在空间鼠标初始化时或者惯性器件关闭时复位。在惯性器件第一次开启或重新开启后的第一次计算得到的空间鼠标的位移变化量是需要丢弃的,在丢弃所述惯性器件第一次开启或重新开启后第一次计算得到的空间鼠标的位移变化量后,对所述数据丢弃标志位置位。
[0077] 在此步骤中,判断数据丢弃标志位是否置位,如果是,则执行步骤S305,否则执行步骤S304。
[0078] 步骤S304,丢弃所述空间鼠标的位移变化量,对数据丢弃标志位置位。也就是说,对于惯性器件第一次开启或重新开启后的第一次计算得到的空间鼠标的位移变化量直接丢弃,不需要进行后续的数据处理。
[0079] 在数据丢弃标志位没有被置位的时候,即复位的情况下,标志着当前得到的这包数据就是惯性器件第一次开启或者是重新开启后,第一次计算得到的空间鼠标的位移变化量,而所述第一次计算得到的空间鼠标的位移变化量如上所述是有问题的,此时丢弃所述当前空间鼠标的位移变化量,并对数据丢弃标志位置位。
[0080] 在丢弃第一次计算得到的空间鼠标的位移变化量后,继续获取之后的空间坐标数据的输出值,并计算所述空间鼠标的位移变化量,即返回执行步骤S301。
[0081] 需要说明的是,在空间鼠标初始化(第一次开启空间鼠标)时,不存在前一次空间坐标数据的输出值,此时,可以预先设置前一次空间坐标数据的输出值为0,计算初始点位置的位移变化量时,可以用当前空间坐标数据的输出值和0的差值,即用当前空间坐标数据的输出值作为第一次计算得到的空间鼠标的位移变化量,在此步骤中,丢弃所述第一次计算得到的空间鼠标的位移变化量,并对数据丢弃标志位置位。
[0082] 步骤S305,输出所述空间鼠标的位移变化量。
[0083] 在数据丢弃标志位被置位的时候,标志着惯性器件开启后,第一次计算得到的空间鼠标的位移变化量已被丢弃,此时得到的空间鼠标的位移变化量为正确的,可以直接输出所述空间鼠标的位移变化量,以进行后续的数据处理。
[0084] 在惯性器件每次采集空间坐标数据后都可以执行本实施例的步骤S301至S305。本实施例的空间鼠标的数据处理方法,不仅有效解决重新开启惯性器件后由于零点位置的不同,所导致的输出的空间坐标数据存在误差的问题;而且,在本实施例中,在开启了惯性器件后,通过在得到空间鼠标的位移变化量时先滤除初始点位置的位移变化量,可以有效避免因开启惯性器件后第一次计算得到的空间鼠标的位移变化量存在误差而导致后续数据处理不准确的问题。
[0085] 实施例三
[0086] 本实施例是在基于实施例一获得补偿后的空间坐标数据的输出值,获得空间鼠标的位移变化量的过程中,根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正。
[0087] 在基于实施例一获得空间坐标数据的输出值后,可以由当前空间坐标数据的输出值和前一次空间坐标数据的输出值获得空间鼠标的位移变化量,在现有技术中,为解决各种因素对空间鼠标的数据处理准确性的影响,已有多种对于空间鼠标在运动过程中的位移变化量dx、dy进行补偿的方法,但却没有涉及到根据空间鼠标的运动状态来修正位移变化量dx、dy。其中,dx为位移变化量在x方向上的分量,dy为所述位移变化量在y方向上的分量。通常,x方向对应屏幕的水平方向,y方向对应屏幕的竖直方向,z方向垂直x方向和y方向。
[0088] 在空间鼠标的实际使用中,当空间鼠标运动的时候,可以通过z方向上的数据对空间鼠标的旋转角度等进行补偿,进而得到空间鼠标在运动过程中的位移变化量dx和dy。正常情况下,z方向上的数据是会受到重力加速度影响的,会以重力加速度作为参考点的,但当空间鼠标处于垂直状态下运动的时候,此时z方向上重力加速度的值接近于所述重力加速度的参考点的零点,即此时相当于没有重力加速度做参考,则测得的z方向上的数据是有误差,测得的值会比较大,而用一个比较大的值对空间鼠标的旋转角度等进行补偿时,得到的空间鼠标在运动过程中的位移变化量dx和dy也是偏大的,空间鼠标运动时越垂直,则得到的位移变化量dx和dy值也就越偏大。
[0089] 同理,对于空间鼠标处于水平状态下的运动,以及处于侧立状态下的运动,也会由于重力加速度的原因,而导致输出的空间鼠标的位移变化量在x方向的分量dx以及在y方向上的分量dy的值可能会有误差。
[0090] 在本实施例中,基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量。
[0091] 所述空间鼠标的运动状态可以根据重力加速度传感器的数据进行判断,所述运动状态可以为水平状态下的运动、垂直状态下的运动以及侧立状态下的运动等。
[0092] 图4是本实施例提供的空间鼠标的数据处理方法的流程示意图,主要示出了对于空间鼠标处于不同运动状态时,修正所述空间鼠标的位移变化量的具体流程。
[0093] 如图4所示,首先执行步骤S401,获得当前空间坐标数据的输出值。步骤S401可以参考实施例一步骤S201至步骤S205。
[0094] 步骤S402,由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算空间鼠标的位移变化量。
[0095] 步骤S403,判断空间鼠标的运动状态。
[0096] 根据重力加速度传感器的数据判断当前空间鼠标的运动状态。例如,在所述空间鼠标在运动的过程中可以通过重力加速度传感器测量得到的直线加速度等参数信息而得到基于重力加速度传感器的空间坐标数据,根据前后至少两次得到的基于重力加速度传感器的空间坐标数据来判断当前空间鼠标的运动状态。
[0097] 具体地,如果空间鼠标输出的位移变化量在z方向上的分量没有变化时,仅在y方向上的分量有变化时,判断当前空间鼠标处于水平状态下运动,此时执行步骤S404,确定当前空间鼠标为水平状态下运动。
[0098] 如果空间鼠标输出的位移变化量仅在z方向上的分量有变化时,而在x方向上和y方向的分量均没有变化时,判断当前空间鼠标处于垂直状态下运动,此时执行步骤S405,确定当前空间鼠标为垂直状态下运动。
[0099] 如果空间鼠标输出的位移变化量仅在x方向上的分量有变化量时,而在y方向上和z方向的分量均没有变化时,判断当前空间鼠标处于侧立状态下运动,此时执行步骤S406,确定当前空间鼠标为侧立状态下运动。
[0100] 然后根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正。具体地,若所述空间鼠标在水平状态下运动,则可以不进行任何修正;若所述空间鼠标在垂直状态下运动,当空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越小,当空间鼠标的空间坐标数据在z方向的输出值越小(即空间鼠标越垂直的时候),所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越大;若所述空间鼠标在侧立状态下运动,当空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越小,当空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在y方向上的分量放大程度越大。
[0101] 在由步骤S404确定当前空间鼠标为水平状态下运动时,执行步骤S407,保持所述空间鼠标的位移变化量。
[0102] 由于水平状态下运动时,重力加速度对于空间鼠标运动的影响基本可以忽略不计,所以对于由步骤S402所获得的空间鼠标位移变化量可以不进行任何修正,直接输出即可。
[0103] 在由步骤S405确定当前空间鼠标为垂直状态下运动时,执行步骤S408,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量。
[0104] 当空间鼠标为垂直状态下运动时,由于受重力加速度的影响,得到的dx和dy是偏大的,此时应该适当的对dx和dy进行衰减,即缩小所述空间鼠标的位移变化量在x方向和y方向上的分量。
[0105] 本实施例中,所述缩小所述空间鼠标的位移变化量在x方向和y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在x方向上的分量dx缩小为(f(z)/a)×dx,所述空间鼠标的位移变化量在y方向上的分量dy缩小为(f(z)/a)×dy,其中,f(z)是基于重力加速度传感器的空间坐标数据在z方向的数据,a为衰减系数,1≤a≤5。
[0106] 进一步,还可以预先设置分量阈值,用于控制dx以及dy缩小的程度。举例来说,可以预先设置分别对应于dx和dy的分量阈值(单位为长度单位),若缩小后的所述空间鼠标的位移变化量在x方向上的分量大于对应于dx的分量阈值,则将所述空间鼠标的位移变化量在x方向上的分量强制设置为该对应于dx的分量阈值;若缩小后的所述空间鼠标的位移变化量在y方向上的分量大于对应于dy的分量阈值,则将所述空间鼠标的位移变化量在y方向上的分量强制设置为该对应于dy的分量阈值。所述对应于dx的分量阈值和对应于dy的分量阈值为经验值,可以根据实际应用设置为同样的数值,例如100,也可以设置为不同的数值,在此不做限定。
[0107] 在由步骤S406确定当前空间鼠标为侧立状态下运动时,执行步骤S409,放大所述空间鼠标的位移变化量在y方向上的分量。
[0108] 当空间鼠标处于侧立状态下运动的时候,此时重力加速度对y方向上的运动会影响最大,相对于z方向上的数据,此时相当于以较大的重力加速度做参考,测得的z方向上的数据值相对来说会比较小,用一个比较小的值对空间鼠标的旋转角度等进行补偿时,得到的空间鼠标在运动过程中的位移变化量dy也是偏小的,此时应该适当的对dy进行放大,即放大所述空间鼠标的位移变化量在y方向上的分量。
[0109] 本实施例中,所述放大所述空间鼠标的位移变化量在y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在y方向上的分量dy放大为(b/f(z))×dy,其中,f(z)是基于重力加速度传感器的空间坐标数据在z方向的数据,b为放大系数,1≤b≤5。
[0110] 执行步骤S410,输出所述空间鼠标的位移变化量。
[0111] 将上述根据空间鼠标的不同运动状态,修正后的空间鼠标的位移变化量作为最终值进行输出。
[0112] 在惯性器件每次采集空间坐标数据后都可以执行本实施例的步骤S401至S410。本实施例的空间鼠标的数据处理方法,不仅有效解决重新开启惯性器件后由于零点位置的不同,所导致的输出的空间坐标数据存在误差的问题。而且,在本实施例中,考虑到在输出空间鼠标的位移变化量的过程中,由于重力加速度的原因,使输出的空间鼠标的位移变化量会因为运动状态的不同(水平、垂直以及侧立状态下的运动)而产生不同的误差,因此根据所述空间鼠标的运动状态,对输出的空间鼠标的位移变化量进行相应的修正,从而可以使输出的空间鼠标的位移变化量更为准确。
[0113] 实施例四
[0114] 本实施例是在基于实施例一获得补偿后的空间坐标数据的输出值,获得空间鼠标的位移变化量的过程中,先对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除,然后根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正。
[0115] 如图5所示,首先执行步骤S501,获取当前空间坐标数据的输出值,可以参考实施例一步骤S201至步骤S205。
[0116] 然后执行步骤S502,由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算空间鼠标的位移变化量。
[0117] 在得到所述空间鼠标的位移变化量后,首先对所述空间鼠标的位移变化量的初始点位置的数据进行滤除。具体地,执行步骤S503和步骤S504,可以参考实施例二的步骤S303和S304。
[0118] 接着,根据空间鼠标不同的运动状态,对空间鼠标的位移变化量进行修正。具体地,执行步骤S505至步骤S511,具体可以参考实施例三步骤S403至步骤S409。
[0119] 执行步骤S512,输出所述空间鼠标的位移变化量。
[0120] 将上述根据空间鼠标的不同运动状态,修正后的空间鼠标的位移变化量作为最终值进行输出。
[0121] 需要说明的是,在步骤S503的判断结果为是之后且执行步骤S505之前,或者在步骤S509、S510或S511执行之后且执行步骤S512之前,还可以根据实际应用情况,进一步采用一些现有的对位移变化量dx、dy进行修正或补偿的方法,以消除其他因素对空间鼠标的位移变化量的影响,可以使得最终输出空间鼠标的位移变化量更为精确。
[0122] 本实施例的空间鼠标的数据处理方法,不仅有效解决重新开启惯性器件后由于零点位置的不同,所导致的输出的空间坐标数据存在误差的问题。而且,本实施例的空间鼠标的数据处理方法也可以有效避免因开启惯性器件后第一次计算得到的空间鼠标的位移变化量存在误差的问题和由于重力加速度的原因使输出的空间鼠标的位移变化量因为运动状态的不同而产生误差的问题。
[0123] 实施例五
[0124] 本实施例是在基于实施例一获得补偿后的空间坐标数据的输出值,获得空间鼠标的位移变化量的过程中,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行的数据处理。
[0125] 在空间鼠标的使用过程中,可以通过对空间鼠标上特定的按键操作发出用于关闭坐标输出功能的坐标输出关闭命令,以控制空间鼠标暂停向接收终端(如控制屏幕鼠标指针移动的计算机等处理设备)发送坐标数据(如空间鼠标的位移量或空间坐标数据的输出值),但此时并不关闭惯性器件,即惯性器件仍然不间断地采集所述空间鼠标的空间坐标数据。通常,考虑到系统功耗的问题,在接收到坐标输出关闭命令后,如果在预设时间范围内,没有再次收到坐标输出开启命令,系统可以自动关闭空间鼠标的惯性器件。
[0126] 而如果在短时间(如上述的预设时间范围)关闭坐标输出的情况下,也按照实施例一所述的通过迭代的方法对采集到的空间坐标数据进行补偿或者仍然计算空间鼠标的位移变换量,则可能会有以下问题:由于系统进行补偿和计算是需要一定的系统消耗的,而在坐标输出关闭的短时间内并不需要输出坐标数据,短时间内的补偿计算反而会造成不必要的系统消耗。考虑到上述问题,在这段短时间内,也可以不进行空间坐标数据的补偿和空间鼠标的位移变化量的计算以降低对系统的消耗。因此,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况,本实施例的空间鼠标的数据处理方法在收到坐标输出关闭命令时,继续采集空间坐标数据并对其进行记录,但并不计算所述空间鼠标的位移变化量,如果在预设的时间范围内再次接收到坐标输出开启命令,则可以直接由当前采集的空间坐标数据以及记录的前一次空间坐标数据计算所述空间鼠标的位移变化量,可以快速、准确获得所述空间鼠标的位移变化量。
[0127] 所述预设时间范围应该是一个合理的时间范围,如果设置的太短,则可能会频繁关闭和开启惯性器件,由此造成不必要的系统消耗;如果设置的太长,系统在不需要输出坐标数据的情况下,一直采集和记录空间坐标数据也会产生系统消耗。当然,如果不考虑功耗问题,预设时间范围也可以设置的长些。本实施例中,所述预设时间范围设置为5s。
[0128] 如图6所示的本实施例的空间鼠标的数据处理方法,首先执行步骤S601,获得当前空间坐标数据的输出值。可以参考实施例一步骤S201至步骤S205。
[0129] 执行步骤S602和步骤S603,由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算空间鼠标的位移变化量,然后输出所述空间鼠标的位移变化量。
[0130] 执行步骤S604,判断是否收到坐标输出关闭命令。
[0131] 系统实时判断是否收到坐标输出关闭命令,如果是,则执行步骤S605;如果否,则继续由空间坐标数据计算和输出所述空间鼠标的位移变化量,即返回执行步骤S601。
[0132] 步骤S605,记录所述惯性器件采集的空间坐标数据。
[0133] 由于此时已收到坐标输出关闭命令,则不需要再计算所述空间鼠标的位移变化量,而记录所述惯性器件采集的空间坐标数据,是为了在预设时间范围内再次收到坐标输出开启命令的时候,可以直接由最后一次记录的空间坐标数据计算所述空间鼠标的位移变化量。
[0134] 执行步骤S606,判断是否收到坐标输出开启命令,如果是,则恢复计算并输出空间鼠标的位移变化量,即返回执行步骤S601;如果否,则执行步骤S607,判断坐标输出关闭命令所持续的时间是否超过5s。
[0135] 如果步骤S607的判断结果为是,也就是5s内都没有收到坐标输出开启命令,则执行步骤S608,关闭空间鼠标的惯性器件;如果步骤S607的判断结果为否,则执行步骤S609,采集当前空间坐标数据,然后执行步骤S605,记录惯性器件采集的空间坐标数据。
[0136] 需要说明的是,如果在超过5s后,再次收到坐标输出开启命令,则先开启惯性器件,然后从步骤S601开始执行。
[0137] 本实施例的空间鼠标的数据处理方法,在接收到坐标输出关闭命令后,在预设时间范围内停止空间坐标数据的补偿、空间鼠标的位移变化量的计算和输出,可以降低系统功耗;并且,在预设时间范围内继续记录所述惯性器件采集的空间坐标数据,使得在预设时间范围内再次收到坐标输出开启命令的时候,可以根据记录的惯性器件采集的空间坐标数据快速、准确计算得到空间鼠标的位移变化量。
[0138] 实施例六
[0139] 本实施例是在基于实施例一获得补偿后的空间坐标数据的输出值,获得空间鼠标的位移变化量的过程中,根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正,并针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行的数据处理。
[0140] 如图7所示,首先执行步骤S701,获得当前空间坐标数据的输出值。可以参考实施例一步骤S201至步骤S205。
[0141] 执行步骤S702,由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算空间鼠标的位移变化量。
[0142] 执行步骤S703和步骤S704,根据空间鼠标不同的运动状态,对空间鼠标的位移变化量进行修正。具体可以参考实施例三步骤S403至步骤S409。
[0143] 执行步骤S705,输出所述空间鼠标的位移变化量。
[0144] 执行步骤S706至步骤S711,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行数据处理,具体可以参考实施例五步骤S604至步骤S609。
[0145] 本实施例的空间鼠标的数据处理方法,不仅有效解决重新开启惯性器件后由于零点位置的不同,所导致的输出的空间坐标数据存在误差的问题。而且,本实施例的空间鼠标的数据处理方法也可以有效避免由于重力加速度的原因使输出的空间鼠标的位移变化量因为运动状态的不同而产生误差的问题。而且针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况进行数据处理,可以有效降低系统功耗,可以快速、准确得到空间鼠标的位移变化量。
[0146] 实施例七
[0147] 本实施例是在基于实施例一获得补偿后的空间坐标数据的输出值,获得空间鼠标的位移变化量的过程中,先对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除,然后针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行的数据处理。
[0148] 如图8所示,首先执行步骤S801,获得当前空间坐标数据的输出值,可以参考实施例一步骤S201至步骤S205。
[0149] 步骤S802,由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算空间鼠标的位移变化量。
[0150] 在得到所述空间鼠标的位移变化量后,首先对所述空间鼠标的位移变化量的初始点位置的数据进行滤除。具体地,执行步骤S803和步骤S804,可以参考实施例二的步骤S303和S304。
[0151] 在对空间鼠标的位移变化量的初始点位置的数据滤除之后,执行步骤S805,输出所述空间鼠标的位移变化量。
[0152] 执行步骤S806至步骤S811,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行数据处理,具体可以参考实施例五步骤S604至步骤S609。
[0153] 本实施例的空间鼠标的数据处理方法,不仅有效解决重新开启惯性器件后由于零点位置的不同,所导致的输出的空间坐标数据存在误差的问题。而且,本实施例的空间鼠标的数据处理方法也可以有效避免因开启惯性器件后第一次计算得到的空间鼠标的位移变化量存在误差的问题,而且针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况进行数据处理,可以有效降低系统功耗,并可以快速、准确得到空间鼠标的位移变化量。
[0154] 实施例八
[0155] 本实施例是在基于实施例一获得补偿后的空间坐标数据的输出值,获得空间鼠标的位移变化量的过程中,先对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除,然后根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正,并针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行的数据处理。
[0156] 如图9所示,首先执行步骤S901,获得当前空间坐标数据的输出值。可以参考实施例一步骤S201至步骤S205。
[0157] 步骤S902,由当前空间坐标数据的输出值和前一次空间坐标数据的输出值计算空间鼠标的位移变化量。
[0158] 执行步骤S903和步骤S904,对所述空间鼠标的位移变化量的初始点位置的数据进行滤除,可以参考实施例二的步骤S303和S304。
[0159] 接着,根据空间鼠标不同的运动状态,对空间鼠标的位移变化量进行修正。具体地,执行步骤S905和步骤S906,具体可以参考实施例三步骤S403至步骤S409。
[0160] 执行步骤S907,输出所述空间鼠标的位移变化量。
[0161] 执行步骤S908至步骤S913,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行数据处理,具体可以参考实施例五步骤S604至步骤S609。
[0162] 本实施例的空间鼠标的数据处理方法,不仅有效解决重新开启惯性器件后由于零点位置的不同,所导致的输出的空间坐标数据存在误差的问题。而且,本实施例的空间鼠标的数据处理方法也可以有效避免因开启惯性器件后第一次计算得到的空间鼠标的位移变化量存在误差的问题和由于重力加速度的原因使输出的空间鼠标的位移变化量因为运动状态的不同而产生误差的问题。而且针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况进行数据处理,可以有效降低系统功耗,并可以快速、准确得到空间鼠标的位移变化量。
[0163] 通过本实施例所提供的方法,可以使得空间鼠标的各个阶段所得到的数据都准确、有效。
[0164] 本发明技术方案还提供了一种鼠标指针的控制方法,所述方法采用上述空间鼠标的数据处理方法获取所述空间鼠标的位移变化量,根据所述空间鼠标的位移变化量控制鼠标指针的移动。
[0165] 虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。