CN103365433B - 空间鼠标的数据处理方法以及鼠标指针的控制方法 - Google Patents
空间鼠标的数据处理方法以及鼠标指针的控制方法 Download PDFInfo
- Publication number
- CN103365433B CN103365433B CN201310297828.3A CN201310297828A CN103365433B CN 103365433 B CN103365433 B CN 103365433B CN 201310297828 A CN201310297828 A CN 201310297828A CN 103365433 B CN103365433 B CN 103365433B
- Authority
- CN
- China
- Prior art keywords
- space mouse
- displacement variable
- mouse
- described space
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Position Input By Displaying (AREA)
Abstract
一种空间鼠标的数据处理方法以及鼠标指针的控制方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,所述空间鼠标的数据处理方法包括:基于采集到的空间坐标数据获得所述空间鼠标的位移变化量;基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量。本发明技术方案根据所述空间鼠标的运动状态,对输出的空间鼠标的位移变化量进行相应的修正,从而可以使输出的空间鼠标的位移变化量更为准确,提高空间鼠标定位准确性。
Description
技术领域
本发明涉及空间鼠标技术领域,尤其涉及一种空间鼠标的数据处理方法以及鼠标指针的控制方法。
背景技术
目前,计算机鼠标指针的定位大多数都依靠光学传感器或激光传感器来实现,这些传感器都基于物理光学原理,使得传感器需要依靠桌面等平台来实现。但是在很多场合,例如在计算机多媒体教学中,用户想在空中操控鼠标指针或是通过在空中操控鼠标指针来实现多媒体电视播放、网页浏览等应用,仅使用传统的传感器就无法实现,于是空间鼠标应运而生。空间鼠标是一种输入设备,像传统鼠标一样操作鼠标指针(屏幕光标),但却不需要放在任何平面上,在空中晃动就能直接依靠空中运动姿态的感知实现对鼠标指针的控制。要实现空中运动姿态的感知,一般在空间鼠标中设置惯性器件,利用惯性器件测量技术实现对运动载体姿态的跟踪。
惯性跟踪系统的基本原理是在目标初始位置和姿态已知的基础上,依据惯性原理,利用陀螺仪传感器、加速度传感器等惯性器件测量物体运动的角速度和直线加速度,然后通过积分获得物体的位置和姿态。
但是在实际使用的过程中,当空间鼠标处于不同的运动状态(比如垂直运动状态、侧立运动状态或者水平运动状态等)时,由于重力加速度的原因,用现有的方法计算得到的所述空间鼠标的位移变化量可能是有问题的。在现有技术中,在空间鼠标的运动过程中,通过惯性器件采集到的空间坐标数据计算空间鼠标的位移变化量,在此计算过程中,通过惯性器件得到的数据对旋转角等进行补偿,进而得到空间鼠标在运动过程中的位移变化量,但由于重力加速度的影响(可以理解,在垂直运动的时候,重力对于惯性器件的作用会大一些,在水平运动的时候,重力对于惯性器件的作用相对来说会小一些),在不同的运动状态下,得到的用于补偿的数据值是不一样的,所以如果不对空间鼠标的运动状态进行区分,对于不同的运动状态,采用一样的补偿方式,则计算得到的位移变化量是有问题的。
相关技术可参考公开号为US2009295729(A1)的美国专利申请,该专利申请公开了一种空间定位的具体实现。
发明内容
本发明解决的问题是空间鼠标处于不同的运动状态时,计算得到的空间鼠标的位移变化量存在误差的问题。
为解决上述问题,本发明提供一种空间鼠标的数据处理方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,所述方法包括:基于采集到的空间坐标数据获得所述空间鼠标的位移变化量;基于空间鼠标的运动状态,修正所述空间鼠标的位移变化量。
可选的,所述基于采集到的空间坐标数据获得所述空间鼠标的位移变化量包括:由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。
可选的,所述空间鼠标的运动状态由重力加速度传感器的数据获得,所述运动状态包括水平状态下的运动、垂直状态下的运动和侧立状态下的运动。
可选的,所述基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量包括:
若所述空间鼠标在水平状态下运动,则保持所述空间鼠标的位移变化量;
若所述空间鼠标在垂直状态下运动,则缩小所述空间鼠标的位移变化量在x方向和y方向上的分量;
若所述空间鼠标在侧立状态下运动,则放大所述空间鼠标的位移变化量在y方向上的分量。
可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越大。
可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量通过下述方式实现:
所述空间鼠标的位移变化量在x方向上的分量dx缩小为(f(z)/a)×dx,所述空间鼠标的位移变化量在y方向上的分量dy缩小为(f(z)/a)×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,a为衰减系数,1≤a≤5。
可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量还包括:若缩小后的所述空间鼠标的位移变化量在x方向和y方向上的分量大于分量阈值,则将所述空间鼠标的位移变化量在x方向和y方向上的分量设置为所述分量阈值。
可选的,所述分量阈值为100。
可选的,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在y方向上的分量放大程度越大。
可选的,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量通过下述方式实现:
所述空间鼠标的位移变化量在y方向上的分量dy放大为(b/f(z))×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,b为放大系数,1≤b≤5。
可选的,所述基于采集到的空间坐标数据获得所述空间鼠标的位移变化量包括:
若未接收到坐标输出关闭命令或在接收到坐标输出关闭命令后预设时间范围内接收到坐标输出开启命令,则由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量;
若接收到坐标输出关闭命令,则停止计算所述空间鼠标的位移变化量;
若在接收到坐标输出关闭命令后预设时间范围内未接收到坐标输出开启命令,则关闭所述惯性器件。
可选的,在接收到坐标输出关闭命令后预设时间范围内记录所述惯性器件采集的空间坐标数据。
可选的,所述预设时间范围大于或等于5s。
可选的,所述基于采集到的空间坐标数据获得所述空间鼠标的位移变化量还包括:丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量。
可选的,所述基于采集到的空间坐标数据获得所述空间鼠标的位移变化量还包括:在丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量后,对数据丢弃标志位置位;所述数据丢弃标志位在空间鼠标初始化时和惯性器件关闭时复位。
为了解决上述技术问题,本发明技术方案还提供一种鼠标指针的控制方法,其特征在于,包括:采用如上所述的空间鼠标的数据处理方法获取修正后的空间鼠标的位移变化量;根据所述修正后的空间鼠标的位移变化量控制鼠标指针的移动。
与现有技术相比,本发明的技术方案具有以下优点:
考虑到在输出空间鼠标的位移变化量的过程中,由于重力加速度的原因,使输出的空间鼠标的位移变化量会因为运动状态的不同(水平、垂直以及侧立状态下的运动)而产生不同的误差,因此根据所述空间鼠标的运动状态,对输出的空间鼠标的位移变化量进行相应的修正,从而可以使输出的空间鼠标的位移变化量更为准确。
在可选方案中,在所述惯性器件开启后,滤除惯性器件开启后第一次计算得到的可能错误的空间鼠标的位移变化量,使得计算得到的所述空间鼠标的位移变化量精确和可靠,提高空间鼠标定位的准确性。
在可选方案中,在接收到坐标输出关闭命令后,在预设时间范围内继续记录所述惯性器件采集的空间坐标数据,停止计算所述空间鼠标的位移变化量,则在预设时间范围内再次收到坐标输出开启命令的时候,就可以根据所述记录的惯性器件采集的空间坐标数据快速、准确获得所述空间鼠标的位移变化量的输出值。
附图说明
图1是本发明实施例一的空间鼠标的数据处理方法的流程示意图;
图2是本发明实施例二的空间鼠标的数据处理方法的流程示意图;
图3是本发明实施例三的空间鼠标的数据处理方法的流程示意图;
图4是本发明实施例三的空间鼠标的数据处理方法的另一流程示意图。
具体实施方式
空间鼠标在正常使用时,要先打开空间鼠标和终端的电源开关,待空间鼠标和终端之间的无线通信链路建立后,空间鼠标就进入了工作状态。具体的,空间鼠标进入工作状态后首先由惯性器件采集空间坐标数据,其中惯性器件可以是陀螺仪传感器或重力加速度传感器,可以通过陀螺仪传感器测量得到的角速度等参数信息而得到所述空间鼠标的空间坐标数据,也可以通过重力加速度传感器测量得到的直线加速度等参数信息而得到所述空间鼠标的空间坐标数据,也可以通过结合陀螺仪传感器以及重力加速度传感器测量得到的参数信息得到所述空间鼠标的空间坐标数据,所述得到所述空间鼠标的空间坐标数据的方法可以采用本领域技术人员所知晓的多种方法进行,在此不再赘述。终端接收到空间鼠标的空间坐标数据后,根据前后两次的所述空间坐标数据可以获得所述空间鼠标的位移变化量,然后通过转换计算将其转换为鼠标指针数据,如显示屏幕上的鼠标指针的平面坐标或平面坐标的变化量,就完成了空间鼠标对鼠标指针的控制。如果空间鼠标的内存允许,还可以将空间坐标数据到鼠标指针数据的转换过程放在空间鼠标内部执行,然后直接将鼠标指针数据发送给终端,再由终端完成对鼠标指针在显示屏幕上的移动控制。
在基于惯性器件所采集到的空间坐标数据得到空间鼠标的位移变化量的过程中,从惯性器件在起始点位置计算空间鼠标的位移变化量、在任意位置计算空间鼠标位移变化量以及在惯性器件在短时间关闭坐标输出后再次计算空间鼠标的位移变化量的任何一个阶段中都可能会产生误差,现有技术中,有对空间鼠标的位移变化量进行校正的相关技术,但并没有一个完整、有效的方法可以使得上述各个阶段所得到的数据都准确和有效。
在上述过程中,当空间鼠标处于不同的运动状态(比如垂直运动状态、侧立运动状态或者水平运动状态等)时,用现有的方法计算得到的所述空间鼠标的位移变化量可能是有问题的。
基于采集到的空间坐标数据,可以由当前采集到的空间坐标数据和前一次采集到的空间坐标数据获得空间鼠标的位移变化量,在现有技术中,为解决各种因素对空间鼠标的数据处理准确性的影响,已有多种对于空间鼠标在运动过程中的位移变化量dx、dy进行补偿的方法,但却没有涉及到根据空间鼠标的运动状态来修正位移变化量dx、dy。其中,dx为位移变化量在x方向上的分量,dy为所述位移变化量在y方向上的分量。通常,x方向对应屏幕的水平方向,y方向对应屏幕的竖直方向,z方向垂直x方向和y方向。
在空间鼠标的实际使用中,当空间鼠标运动的时候,可以通过z方向上的数据对空间鼠标的旋转角度等进行补偿,进而得到空间鼠标在运动过程中的位移变化量dx和dy。正常情况下,z方向上的数据是会受到重力加速度影响的,会以重力加速度作为参考点的,但当空间鼠标处于垂直状态下运动的时候,此时z方向上重力加速度的值接近于所述重力加速度的参考点的零点,即此时相当于没有重力加速度做参考,则测得的z方向上的数据是有误差,测得的值会比较大,而用一个比较大的值对空间鼠标的旋转角度等进行补偿时,得到的空间鼠标在运动过程中的位移变化量dx和dy也是偏大的,空间鼠标运动时越垂直,则得到的位移变化量dx和dy值也就越偏大。
同理,对于空间鼠标处于水平状态下的运动,以及处于侧立状态下的运动,也会由于重力加速度的原因,而导致输出的空间鼠标的位移变化量在x方向的分量dx以及在y方向上的分量dy的值可能会有误差。
为解决上述问题,本发明技术方案提供一种空间鼠标的数据处理方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,所述方法包括:基于采集到的空间坐标数据获得所述空间鼠标的位移变化量;基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
实施例一
本实施例在输出空间鼠标的位移变化量前,根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正。
所述空间鼠标的运动状态可以根据重力加速度传感器的数据进行判断,所述运动状态可以为水平状态下的运动、垂直状态下的运动以及侧立状态下的运动等。
图1是本实施例提供的空间鼠标的数据处理方法的流程示意图,主要示出了对于空间鼠标处于不同运动状态时,修正所述空间鼠标的位移变化量的具体流程。
如图1所示,首先执行步骤S101,采集当前空间坐标数据。在惯性器件开启后,由所述惯性器件采集当前空间鼠标的空间坐标数据,可以采用现有技术中的多种方法由所述惯性器件采集得到空间鼠标当前的空间坐标数据,在此不再赘述。
步骤S102,由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。
步骤S103,判断空间鼠标的运动状态。
根据重力加速度传感器的数据判断当前空间鼠标的运动状态。例如,在所述空间鼠标在运动的过程中可以通过重力加速度传感器测量得到的直线加速度等参数信息而得到基于重力加速度传感器的空间坐标数据,根据前后至少两次得到的基于重力加速度传感器的空间坐标数据来判断当前空间鼠标的运动状态。
具体地,如果空间鼠标输出的位移变化量在z方向上的分量没有变化时,仅在y方向上的分量有变化时,判断当前空间鼠标处于水平状态下运动,此时执行步骤S104,确定当前空间鼠标为水平状态下运动。
如果空间鼠标输出的位移变化量仅在z方向上的分量有变化时,而在x方向上和y方向的分量均没有变化时,判断当前空间鼠标处于垂直状态下运动,此时执行步骤S105,确定当前空间鼠标为垂直状态下运动。
如果空间鼠标输出的位移变化量仅在x方向上的分量有变化量时,而在y方向上和z方向的分量均没有变化时,判断当前空间鼠标处于侧立状态下运动,此时执行步骤S106,确定当前空间鼠标为侧立状态下运动。
然后根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正。若所述空间鼠标在水平状态下运动,则可以不进行任何修正;若所述空间鼠标在垂直状态下运动,当空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越小,当空间鼠标的空间坐标数据在z方向的输出值越小(即空间鼠标越垂直的时候),所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越大;若所述空间鼠标在侧立状态下运动,当空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越小,当空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在y方向上的分量放大程度越大。
具体地,在由步骤S104确定当前空间鼠标为水平状态下运动时,执行步骤S107,保持所述空间鼠标的位移变化量。
由于水平状态下运动时,重力加速度对于空间鼠标运动的影响基本可以忽略不计,所以对于由步骤S102所获得的空间鼠标位移变化量可以不进行任何修正,直接输出即可。
在由步骤S105确定当前空间鼠标为垂直状态下运动时,执行步骤S108,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量。
当空间鼠标为垂直状态下运动时,由于受重力加速度的影响,得到的dx和dy是偏大的,此时应该适当的对dx和dy进行衰减,即缩小所述空间鼠标的位移变化量在x方向和y方向上的分量。
本实施例中,所述缩小所述空间鼠标的位移变化量在x方向和y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在x方向上的分量dx缩小为(f(z)/a)×dx,所述空间鼠标的位移变化量在y方向上的分量dy缩小为(f(z)/a)×dy,其中,f(z)是基于重力加速度传感器的空间坐标数据在z方向的数据,a为衰减系数,1≤a≤5。
进一步,还可以预先设置分量阈值,用于控制dx以及dy缩小的程度。举例来说,可以预先设置分别对应于dx和dy的分量阈值(单位为长度单位),若缩小后的所述空间鼠标的位移变化量在x方向上的分量大于对应于dx的分量阈值,则将所述空间鼠标的位移变化量在x方向上的分量强制设置为该对应于dx的分量阈值;若缩小后的所述空间鼠标的位移变化量在y方向上的分量大于对应于dy的分量阈值,则将所述空间鼠标的位移变化量在y方向上的分量强制设置为该对应于dy的分量阈值。所述对应于dx的分量阈值和对应于dy的分量阈值为经验值,可以根据实际应用设置为同样的数值,例如100,也可以设置为不同的数值,在此不做限定。
在由步骤S106确定当前空间鼠标为侧立状态下运动时,执行步骤S109,放大所述空间鼠标的位移变化量在y方向上的分量。
当空间鼠标处于侧立状态下运动的时候,此时重力加速度对y方向上的运动会影响最大,相对于z方向上的数据,此时相当于以较大的重力加速度做参考,测得的z方向上的数据值相对来说会比较小,用一个比较小的值对空间鼠标的旋转角度等进行补偿时,得到的空间鼠标在运动过程中的位移变化量dy也是偏小的,此时应该适当的对dy进行放大,即放大所述空间鼠标的位移变化量在y方向上的分量。
本实施例中,所述放大所述空间鼠标的位移变化量在y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在y方向上的分量dy放大为(b/f(z))×dy,其中,f(z)是基于重力加速度传感器的空间坐标数据在z方向的数据,b为放大系数,1≤b≤5。
执行步骤S110,输出所述空间鼠标的位移变化量。
将上述根据空间鼠标的不同运动状态,修正后的空间鼠标的位移变化量作为最终值进行输出。
在惯性器件每次采集空间坐标数据后都可以执行本实施例的步骤S102至S110。本实施例的空间鼠标的数据处理方法,考虑到在输出空间鼠标的位移变化量的过程中,由于重力加速度的原因,使输出的空间鼠标的位移变化量会因为运动状态的不同(水平、垂直以及侧立状态下的运动)而产生不同的误差,因此根据所述空间鼠标的运动状态,对输出的空间鼠标的位移变化量进行相应的修正,从而可以使输出的空间鼠标的位移变化量更为准确。
实施例二
本实施例在输出空间鼠标的位移变化量前,先对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除,然后根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正。
在实际应用中,用户经常会根据各种实际使用需求,短时间或者长时间关闭空间鼠标的惯性器件。但在重新打开惯性器件的时候,初始点位置的位移变化量就会有问题。这是因为所述位移变化量是由当前采集到的空间坐标数据和所记录的前一次采集的空间坐标数据的差值,而在短时间或者长时间关闭空间鼠标的惯性器件时,空间鼠标系统在惯性器件关闭的这段时间是无法检测到惯性器件的运动过程的,系统所记录的最后的空间坐标数据是在所述惯性器件关闭前最后一次采集到的空间坐标数据,在惯性器件重新开启时,对于初始点位置而言,其前一次采集的空间坐标数据为所述惯性器件关闭前最后一次采集到的空间坐标数据,由此计算出的初始点位置的空间鼠标的位移变化量可能是有问题的,因为惯性器件在关闭和重新开启时通常都不会是处于同一位置或相近位置的。
在本实施例中,在惯性器件开启后,丢弃所述惯性器件开启后第一次计算得到的空间鼠标的位移变化量(即上述初始点位置的位移变化量),对此之后计算得到的空间鼠标的位移变化量采用实施例一所述的空间鼠标的数据处理方法进行修正,最后将修正后的所述空间鼠标的位移变化量进行输出。
如图2所示,首先执行步骤S201,采集当前空间坐标数据。可以参考实施例一步骤S101,在惯性器件打开后,由所述惯性器件采集当前空间鼠标的空间坐标数据。
然后执行步骤S202,由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。
在得到所述空间鼠标的位移变化量后,首先对所述空间鼠标的位移变化量的初始点位置的数据进行滤除。
执行步骤S203,判断数据丢弃标志位是否置位。
在本实施例中,可以预先设置一个数据丢弃标志位,用于标示计算得到的空间鼠标的位移变化量是否被丢弃,此数据丢弃标志位在空间鼠标初始化时或者惯性器件关闭时复位。在惯性器件第一次开启或重新开启后的第一次计算得到的空间鼠标的位移变化量是需要丢弃的,在丢弃所述惯性器件第一次开启或重新开启后第一次计算得到的空间鼠标的位移变化量后,对所述数据丢弃标志位置位。
在此步骤中,判断数据丢弃标志位是否置位,如果是,则执行步骤S205,否则执行步骤S204。
步骤S204,丢弃所述空间鼠标的位移变化量,对数据丢弃标志位置位。也就是说,对于惯性器件第一次开启或重新开启后的第一次计算得到的空间鼠标的位移变化量直接丢弃,不需要进行后续的数据处理。
在数据丢弃标志位没有被置位的时候,即复位的情况下,标志着当前得到的这包数据就是惯性器件第一次开启或重新开启后,第一次计算得到的空间鼠标的位移变化量,而所述第一次计算得到的空间鼠标的位移变化量如上所述是有问题的,此时丢弃所述当前空间鼠标的位移变化量,并对数据丢弃标志位置位。
在丢弃第一次计算得到的空间鼠标的位移变化量后,继续由所述惯性器件采集空间坐标数据,并计算所述空间鼠标的位移变化量,即返回执行步骤S201。
需要说明的是,在空间鼠标初始化(第一次开启空间鼠标)时,不存在前一次采集到的空间坐标数据,此时,可以预先设置前一次采集到的空间坐标数据为0,计算空间鼠标在初始点位置的位移变化量时,可以用当前采集到的空间坐标数据和0的差值,即用当前采集到的空间坐标数据作为第一次计算得到的空间鼠标的位移变化量,丢弃所述第一次计算得到的空间鼠标的位移变化量,并对数据丢弃标志位置位。
在数据丢弃标志位被置位的时候,标志着惯性器件重新开启后,第一次计算得到的空间鼠标的位移变化量已被丢弃,此时得到的空间鼠标的位移变化量可以进行后续的数据处理。在本实施例中,接着,根据空间鼠标不同的运动状态,对空间鼠标的位移变化量进行修正。具体地,执行步骤S205至步骤S211,具体可以参考实施例一步骤S103至步骤S109。
执行步骤S212,输出所述空间鼠标的位移变化量。
将上述根据空间鼠标的不同运动状态,修正后的空间鼠标的位移变化量作为最终值进行输出。
需要说明的是,在步骤S203的判断结果为是之后且执行步骤S205之前,或者在步骤S209、S210或S211执行之后且执行步骤S212之前,还可以根据实际应用情况,进一步采用一些现有的对位移变化量dx、dy进行修正或补偿的方法,以消除其他因素对空间鼠标的位移变化量的影响,可以使得最终输出空间鼠标的位移变化量更为精确。
本实施例的空间鼠标的数据处理方法,不仅可以有效滤除第一次计算得到的可能错误的空间鼠标的位移变化量,且可以有效解决由于重力加速度的原因而导致输出的空间鼠标的位移变化量因为运动状态的不同而产生误差的问题。
实施例三
本实施例在输出空间鼠标的位移变化量前,根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正,并针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行的数据处理。
在空间鼠标的使用过程中,可以通过对空间鼠标上特定的按键操作发出用于关闭坐标输出功能的坐标输出关闭命令,以控制空间鼠标暂停向接收终端(如控制屏幕鼠标指针移动的计算机等处理设备)发送坐标数据(如空间鼠标的位移量或空间坐标数据的输出值),但此时并不关闭惯性器件,即惯性器件仍然不间断地采集所述空间鼠标的空间坐标数据。通常,考虑到系统功耗的问题,在接收到坐标输出关闭命令后,如果在预设时间范围内,没有再次收到坐标输出开启命令,系统可以自动关闭空间鼠标的惯性器件。
而如果在短时间(如上述的预设时间范围)关闭坐标输出的情况下,仍然计算空间鼠标的位移变换量,则可能会有以下问题:由于系统进行计算所述空间鼠标的位移变化量是需要一定的系统消耗的,而在坐标输出关闭的短时间内并不需要输出空间坐标数据以及空间鼠标的位移变化量,短时间内一直计算所述空间鼠标的位移变化量会造成不必要的系统消耗。考虑到上述问题,在这段短时间内,也可以停止空间鼠标的位移变化量的计算以降低对系统的消耗。考虑到当再次收到坐标输出开启的命令,可以快速计算得到所述空间鼠标的位移变化量,因此,也可以在停止空间鼠标的位移变化量的计算时,继续采集空间鼠标数据并对其进行记录,则在收到再次收到坐标输出开启的命令的时候,可以直接由所述继续采集到的空间鼠标数据计算得到所述空间鼠标的位移变化量。因此,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况,本实施例的空间鼠标的数据处理方法在收到坐标输出关闭命令时,继续采集空间坐标数据并对其进行记录,但并不计算所述空间鼠标的位移变化量,如果在预设的时间范围内再次接收到坐标输出开启命令,则可以直接由当前采集的空间坐标数据以及记录的前一次空间坐标数据计算所述空间鼠标的位移变化量,可以快速、准确获得所述空间鼠标的位移变化量。
所述预设时间范围应该是一个合理的时间范围,如果设置的太短,则可能会频繁关闭和开启惯性器件,由此造成不必要的系统消耗;如果设置的太长,系统在不需要输出坐标数据的情况下,一直采集和记录空间坐标数据也会产生系统消耗。当然,如果不考虑功耗问题,预设时间范围也可以设置的长些。本实施例中,所述预设时间范围设置为5s。
如图3所示,首先执行步骤S301,采集当前空间坐标数据。可以参考实施例一步骤S101,在惯性器件打开后,由所述惯性器件采集当前空间鼠标的空间坐标数据。
执行步骤S302,由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。
执行步骤S303和步骤S304,根据空间鼠标不同的运动状态,对空间鼠标的位移变化量进行修正。具体可以参考实施例一步骤S103至步骤S109。
执行步骤S305,输出所述空间鼠标的位移变化量。
执行步骤S306,判断是否收到坐标输出关闭命令。
系统实时判断是否收到坐标输出关闭命令,如果是,则执行步骤S307;如果否,则继续计算和输出所述空间鼠标的位移变化量,即返回执行步骤S301。
步骤S307,记录惯性器件采集的空间坐标数据。
由于此时已收到坐标输出关闭命令,则不需要再计算所述空间鼠标的位移变化量,而记录惯性器件采集的空间坐标数据,是为了在预设时间范围内再次收到坐标输出开启命令的时候,可以直接由最后一次记录的空间坐标数据计算所述空间鼠标的位移变化量。
执行步骤S308,判断是否收到坐标输出开启命令,如果是,则恢复计算并输出空间鼠标的位移变化量,即返回执行步骤S301;如果否,则执行步骤S309,判断坐标输出关闭命令所持续的时间是否超过5s。
如果步骤S309的判断结果为是,也就是5s内都没有收到坐标输出开启命令,则执行步骤S310,关闭所述惯性器件;如果步骤S309的判断结果为否,则执行步骤S311,采集当前空间坐标数据,然后返回执行步骤S307,记录所述惯性器件采集的空间坐标坐标数据。
需要说明的是,如果在超过5s后,再次收到坐标输出开启命令,则先开启惯性器件,然后从步骤S301开始执行。
通过执行步骤S306至步骤S311,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行数据处理。
需要说明的是,图3所示的流程也可以改为图4所示的流程,如图4所示,执行下述步骤:
步骤S401,采集当前空间坐标数据。可以参考实施例一步骤S101。
步骤S402,判断是否收到坐标输出关闭命令。系统在采集到当前空间坐标数据后,实时判断是否收到坐标输出关闭命令,如果是,则执行步骤S403至步骤S407,针对空间鼠标在短时间关闭坐标输出的情况进行数据处理;如果否,则执行步骤S408至步骤S411,计算空间鼠标的位移变化量,并在输出空间鼠标的位移变化量前,根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正。
具体地,执行步骤S403,记录惯性器件采集的空间坐标数据。请参考实施例三步骤S307。
执行步骤S404,判断是否收到坐标输出开启命令,如果是,则恢复计算并输出空间鼠标的位移变化量,即返回执行步骤S401;如果否,则执行步骤S405,判断坐标输出关闭命令所持续的时间是否超过5s。
如果步骤S405的判断结果为是,也就是5s内都没有收到坐标输出开启命令,则执行步骤S406,关闭所述惯性器件;如果步骤S405的判断结果为否,则执行步骤S407,采集当前空间坐标数据,然后返回执行步骤S403,记录所述惯性器件采集的空间坐标坐标数据。
需要说明的是,如果在超过5s后,再次收到坐标输出开启命令,则先开启惯性器件,然后从步骤S401开始执行。
如果在步骤S402中判断没有收到坐标输出关闭命令,则执行步骤S408,由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。
然后执行步骤S409和步骤S410,根据空间鼠标不同的运动状态,对空间鼠标的位移变化量进行修正。具体可以参考实施例一步骤S103至步骤S109。
最后执行步骤S411,输出所述空间鼠标的位移变化量。
本实施例的空间鼠标的数据处理方法,可以有效避免由于重力加速度的原因使输出的空间鼠标的位移变化量因为运动状态的不同而产生误差的问题,而且针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况进行数据处理,可以有效降低系统功耗,可以快速、准确得到空间鼠标的位移变化量。
本发明技术方案还提供了一种鼠标指针的控制方法,所述方法采用上述空间鼠标的数据处理方法获取修正后的空间鼠标的位移变化量,根据所述修正后的空间鼠标的位移变化量控制鼠标指针的移动。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种空间鼠标的数据处理方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,其特征在于,包括:
基于采集到的空间坐标数据获得所述空间鼠标的位移变化量;
基于空间鼠标的运动状态,修正所述空间鼠标的位移变化量;所述基于空间鼠标的运动状态,修正所述空间鼠标的位移变化量包括:
若所述空间鼠标在水平状态下运动,则保持所述空间鼠标的位移变化量;
若所述空间鼠标在垂直状态下运动,则缩小所述空间鼠标的位移变化量在x方向和y方向上的分量;
若所述空间鼠标在侧立状态下运动,则放大所述空间鼠标的位移变化量在y方向上的分量。
2.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,所述基于采集到的空间坐标数据获得所述空间鼠标的位移变化量包括:
由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。
3.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,所述空间鼠标的运动状态由重力加速度传感器的数据获得,所述运动状态包括水平状态下的运动、垂直状态下的运动和侧立状态下的运动。
4.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越大。
5.如权利要求1或4所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量通过下述方式实现:
所述空间鼠标的位移变化量在x方向上的分量dx缩小为(f(z)/a)×dx,所述空间鼠标的位移变化量在y方向上的分量dy缩小为(f(z)/a)×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,a为衰减系数,1≤a≤5。
6.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量还包括:若缩小后的所述空间鼠标的位移变化量在x方向和y方向上的分量大于分量阈值,则将所述空间鼠标的位移变化量在x方向和y方向上的分量设置为所述分量阈值。
7.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在y方向上的分量放大程度越大。
8.如权利要求1或7所述的空间鼠标的数据处理方法,其特征在于,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量通过下述方式实现:
所述空间鼠标的位移变化量在y方向上的分量dy放大为(b/f(z))×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,b为放大系数,1≤b≤5。
9.如权利要求1所述的空间鼠标的数据处理方法,其特征在于,所述基于采集到的空间坐标数据获得所述空间鼠标的位移变化量包括:
若未接收到坐标输出关闭命令或在接收到坐标输出关闭命令后预设时间范围内接收到坐标输出开启命令,则由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量;
若接收到坐标输出关闭命令,则停止计算所述空间鼠标的位移变化量;
若在接收到坐标输出关闭命令后预设时间范围内未接收到坐标输出开启命令,则关闭所述惯性器件。
10.如权利要求9所述的空间鼠标的数据处理方法,其特征在于,还包括:在接收到坐标输出关闭命令后预设时间范围内记录所述惯性器件采集的空间坐标数据。
11.如权利要求9所述的空间鼠标的数据处理方法,其特征在于,所述预设时间范围大于或等于5s。
12.如权利要求2所述的空间鼠标的数据处理方法,其特征在于,所述基于采集到的空间坐标数据获得所述空间鼠标的位移变化量还包括:丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量。
13.如权利要求12所述的空间鼠标的数据处理方法,其特征在于,所述基于采集到的空间坐标数据获得所述空间鼠标的位移变化量还包括:在丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量后,对数据丢弃标志位置位;所述数据丢弃标志位在空间鼠标初始化时和惯性器件关闭时复位。
14.一种鼠标指针的控制方法,其特征在于,包括:
采用权利要求1至13任一项所述的空间鼠标的数据处理方法获取修正后的空间鼠标的位移变化量;
根据所述修正后的空间鼠标的位移变化量控制鼠标指针的移动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310297828.3A CN103365433B (zh) | 2013-07-16 | 2013-07-16 | 空间鼠标的数据处理方法以及鼠标指针的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310297828.3A CN103365433B (zh) | 2013-07-16 | 2013-07-16 | 空间鼠标的数据处理方法以及鼠标指针的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365433A CN103365433A (zh) | 2013-10-23 |
CN103365433B true CN103365433B (zh) | 2016-07-06 |
Family
ID=49366955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310297828.3A Active CN103365433B (zh) | 2013-07-16 | 2013-07-16 | 空间鼠标的数据处理方法以及鼠标指针的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365433B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648155B (zh) * | 2016-12-29 | 2020-07-14 | 深圳Tcl数字技术有限公司 | 遥控空鼠防抖方法及装置 |
CN111831136B (zh) * | 2019-03-26 | 2023-07-25 | 深圳Tcl新技术有限公司 | 一种蓝牙空鼠的移动方法、存储介质及智能电视 |
CN116501183B (zh) * | 2023-06-28 | 2024-03-19 | 深圳锐爱电子有限公司 | 一种基于多传感器融合的鼠标位移调控方法以及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102109913A (zh) * | 2009-12-29 | 2011-06-29 | 金领导科技(深圳)有限公司 | 基于复合mems传感器的控制器指针定位方法及控制器 |
CN103064532A (zh) * | 2012-12-29 | 2013-04-24 | 四川虹微技术有限公司 | 一种空中鼠标遥控器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090295713A1 (en) * | 2008-05-30 | 2009-12-03 | Julien Piot | Pointing device with improved cursor control in-air and allowing multiple modes of operations |
-
2013
- 2013-07-16 CN CN201310297828.3A patent/CN103365433B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102109913A (zh) * | 2009-12-29 | 2011-06-29 | 金领导科技(深圳)有限公司 | 基于复合mems传感器的控制器指针定位方法及控制器 |
CN103064532A (zh) * | 2012-12-29 | 2013-04-24 | 四川虹微技术有限公司 | 一种空中鼠标遥控器 |
Also Published As
Publication number | Publication date |
---|---|
CN103365433A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10341647B2 (en) | Method for calibrating a camera and calibration system | |
US10852139B2 (en) | Positioning method, positioning device, and robot | |
CN107253196B (zh) | 一种机械臂碰撞检测方法、装置、设备及存储介质 | |
CN103389807B (zh) | 空间鼠标的数据处理方法以及鼠标指针的控制方法 | |
CN103411621B (zh) | 一种面向室内移动机器人的光流场视觉/ins组合导航方法 | |
CN103365433B (zh) | 空间鼠标的数据处理方法以及鼠标指针的控制方法 | |
CN105631875A (zh) | 确定相机坐标与机械臂手爪坐标映射关系的方法及其系统 | |
CN103674028A (zh) | 一种室内行进轨迹的定位测试方法及装置 | |
CN105451461A (zh) | 基于scara机器人的pcb板定位方法 | |
CN104135576A (zh) | 移动终端的指南针指向优化方法及系统 | |
WO2021043328A1 (zh) | 一种磁力计校准数据采集方法、装置以及飞行器 | |
CN105955027A (zh) | 一种基于多阶运动信息估计的前馈控制方法 | |
CN115827906A (zh) | 目标标注方法、装置、电子设备及计算机可读存储介质 | |
CN106406572A (zh) | 光标的控制方法和装置 | |
CN105738909A (zh) | 一种适用于低空植保的无人直升机作业边界提取方法 | |
CN113110433A (zh) | 机器人姿态调整方法、装置、设备及存储介质 | |
US20160171017A1 (en) | Mobile positioning apparatus and positioning method thereof | |
CN103353795B (zh) | 空间鼠标的数据处理方法以及鼠标指针的控制方法 | |
CN112461258A (zh) | 一种参数修正的方法及装置 | |
CN114779275B (zh) | 基于AprilTag与激光雷达的移动机器人自动跟随避障方法 | |
CN116086442A (zh) | 包含惯性传感器的多个定位传感器的融合定位装置 | |
CN103838395A (zh) | 手持式电子装置及其操作方法 | |
CN110216675B (zh) | 智能机器人的控制方法、装置、智能机器人及计算机设备 | |
US11079763B2 (en) | Trajectory planning method and system | |
CN109309709B (zh) | 一种可远端控制无人装置的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |