首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 外围设备 / 鼠标 / 空中鼠标信息确定方法、装置、设备及存储介质

空中鼠标信息确定方法、装置、设备及存储介质

阅读:712发布:2020-05-11

专利汇可以提供空中鼠标信息确定方法、装置、设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种空中 鼠标 信息确定方法、装置、设备及存储介质,该方法包括确定空中鼠标移动时的 横滚 角 数据;获取所述空中鼠标移动时的第一轴向 角速度 和第二轴向角速度;根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹;依据所述横滚角数据将所述移动轨迹映射至显示屏幕中。本方案使得空中鼠标在控制时计算量小,轨迹移动更加平滑,加快了 数据处理 速度。,下面是空中鼠标信息确定方法、装置、设备及存储介质专利的具体信息内容。

1.一种空中鼠标信息确定方法,其特征在于,包括:
确定空中鼠标移动时的横滚数据;
获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度;
根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹;
依据所述横滚角数据将所述移动轨迹映射至显示屏幕中。
2.根据权利要求1所述的方法,其特征在于,所述确定空中鼠标移动时的横滚角数据,包括:
获取陀螺仪采集的角速度数据,根据所述角速度数据构建微分方程;
对所述微分方程进行计算得到空中鼠标移动时的横滚角数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述角速度数据构建微分方程,包括:
确定所述角速度数据的补偿值,对所述角速度数据进行补偿后构建四元数微分方程。
4.根据权利要求3所述的方法,其特征在于,所述确定所述角速度数据的补偿值,包括:
获取陀螺仪采集的加速度数据,将所述加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值;
根据所述加速度数据和所述加速度计算值确定所述角速度数据的补偿值。
5.根据权利要求3所述的方法,其特征在于,所述对所述角速度数据进行补偿包括:
利用设置的第一参数,对所述补偿值进行积分;
依据积分结果以及第二参数对所述角速度数据进行补偿。
6.根据权利要求2所述的方法,其特征在于,所述根据所述角速度数据构建微分方程,包括:
利用四元数的范数进行初始姿态设置,根据所述角速度数据构建四元微分方程。
7.根据权利要求6所述的方法,其特征在于,所述对所述微分方程进行计算得到空中鼠标移动时的横滚角数据,包括:
利用一阶毕卡算法对所述四元微分方程进行计算,并进行四元数的正交化处理得到空中鼠标移动时的横滚角数据。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹,包括:
依据所述第一轴向角速度确定鼠标上下移动轨迹;
依据所述第二轴向角速度确定鼠标左右移动轨迹。
9.根据权利要求1-7中任一项所述的方法,其特征在于,所述依据所述横滚角数据将所述移动轨迹映射至显示屏幕中,包括:
依据所述横滚角数据将所述移动轨迹由机体坐标系转换为地理坐标系,映射至显示屏幕中。
10.根据权利要求1-7中任一项所述的方法,其特征在于,在所述依据所述横滚角数据将所述移动轨迹映射至显示屏幕中之后,包括:
确定所述空中鼠标的灵敏度数据;
依据所述灵敏度数据对显示屏幕中显示的轨迹进行控制。
11.一种空中鼠标信息确定装置,其特征在于,包括:
横滚角确定模,用于确定空中鼠标移动时的横滚角数据;
角速度确定模块,用于获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度;
第一轨迹确定模块,用于根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹;
第二轨迹确定模块,用于依据所述横滚角数据将所述移动轨迹映射至显示屏幕中。
12.一种空中鼠标信息确定设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10任一所述的空中鼠标信息确定方法。
13.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-10任一所述的空中鼠标信息确定方法。

说明书全文

空中鼠标信息确定方法、装置、设备及存储介质

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种空中鼠标信息确定方法、装置、设备及存储介质。

背景技术

[0002] 空中鼠标是一种全新概念的和常规鼠标原理不同的信息输入、控制设备。用户在使用空中鼠标时,可以将手在空中进行挥舞以完成对显示信息的操作。
[0003] 在实现本发明的过程中,发明人发现现有技术存在如下缺陷:在实现空中鼠标的控制机制中,通过陀螺仪传感器采集的数据确定出人手的航向俯仰角,进而确定出人手的航向角速度以及俯仰角速度,将人手航向角速度映射为鼠标上下移动轨迹,将人手俯仰角速度映射为鼠标左右移动轨迹,该种方式需要引入地磁传感器进行校正,否则单独使用陀螺仪传感器的计算误差较大,不能满足空中鼠标快速移动的特点,而引入地磁传感器进行校正则增大了计算量。同时,该种方式需要同时计算出航向角和俯仰角以及各自对应的航向角速度和俯仰角速度,计算量大,CPU负荷较高,导致空中鼠标使用时灵敏度较差,在小容量芯片设计中,该种方式的算法运行缓慢,内存消耗高,甚至无法正常使用。

发明内容

[0004] 有鉴于此,本发明实施例提供了一种空中鼠标信息确定方法、装置、设备及存储介质,使得空中鼠标在控制时计算量小,轨迹移动更加平滑,进一步加快了数据处理速度。
[0005] 第一方面,本发明实施例提供了一种空中鼠标信息确定方法,包括:
[0006] 确定空中鼠标移动时的横滚角数据;
[0007] 获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度;
[0008] 根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹;
[0009] 依据所述横滚角数据将所述移动轨迹映射至显示屏幕中。
[0010] 可选的,所述确定空中鼠标移动时的横滚角数据,包括:
[0011] 获取陀螺仪采集的角速度数据,根据所述角速度数据构建微分方程;
[0012] 对所述微分方程进行计算得到空中鼠标移动时的横滚角数据。
[0013] 可选的,所述根据所述角速度数据构建微分方程,包括:
[0014] 确定所述角速度数据的补偿值,对所述角速度数据进行补偿后构建四元数微分方程。
[0015] 可选的,所述确定所述角速度数据的补偿值,包括:
[0016] 获取陀螺仪采集的加速度数据,将所述加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值;
[0017] 根据所述加速度数据和所述加速度计算值确定所述角速度数据的补偿值。
[0018] 可选的,所述对所述角速度数据进行补偿包括:
[0019] 利用设置的第一参数,对所述补偿值进行积分;
[0020] 依据积分结果以及第二参数对所述角速度数据进行补偿。
[0021] 可选的,所述根据所述角速度数据构建微分方程,包括:
[0022] 利用四元数的范数进行初始姿态设置,根据所述角速度数据构建四元微分方程。
[0023] 可选的,所述对所述微分方程进行计算得到空中鼠标移动时的横滚角数据,包括:
[0024] 利用一阶毕卡算法对所述四元微分方程进行计算,并进行四元数的正交化处理得到空中鼠标移动时的横滚角数据。
[0025] 可选的,所述根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹,包括:
[0026] 依据所述第一轴向角速度确定鼠标上下移动轨迹;
[0027] 依据所述第二轴向角速度确定鼠标左右移动轨迹。
[0028] 可选的,所述依据所述横滚角数据将所述移动轨迹映射至显示屏幕中,包括:
[0029] 依据所述横滚角数据将所述移动轨迹由机体坐标系转换为地理坐标系,映射至显示屏幕中。
[0030] 可选的,在所述依据所述横滚角数据将所述移动轨迹映射至显示屏幕中之后,包括:
[0031] 确定所述空中鼠标的灵敏度数据;
[0032] 依据所述灵敏度数据对显示屏幕中显示的轨迹进行控制。
[0033] 第二方面,本发明实施例还提供一种空中鼠标信息确定装置,包括:
[0034] 横滚角确定模,用于确定空中鼠标移动时的横滚角数据;
[0035] 角速度确定模块,用于获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度;
[0036] 第一轨迹确定模块,用于根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹;
[0037] 第二轨迹确定模块,用于依据所述横滚角数据将所述移动轨迹映射至显示屏幕中。
[0038] 第三方面,本发明实施例还提供一种空中鼠标信息确定设备,包括:存储器以及一个或多个处理器;
[0039] 所述存储器,用于存储一个或多个程序;
[0040] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的空中鼠标信息确定方法。
[0041] 第四方面,本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的空中鼠标信息确定方法。
[0042] 上述提供的空中鼠标信息确定方法、装置、设备及存储介质,通过确定空中鼠标移动时的横滚角数据,获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度,根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹,依据所述横滚角数据将所述移动轨迹映射至显示屏幕中,解决现有技术中空中鼠标信息数据处理时计算量大,CPU负荷较高,导致空中鼠标使用时灵敏度较差的问题,使得空中鼠标在控制时计算量小,轨迹移动更加平滑,进一步加快了数据处理速度。附图说明
[0043] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0044] 图1为本发明实施例提供的一种空中鼠标信息确定方法的流程图
[0045] 图2为本发明实施例提供的另一种空中鼠标信息确定方法的流程图;
[0046] 图3为本发明实施例提供的另一种空中鼠标信息确定方法的流程图;
[0047] 图4为本发明实施例提供的另一种空中鼠标信息确定方法的流程图;
[0048] 图5为本发明实施例提供的另一种空中鼠标信息确定方法的流程图;
[0049] 图6为本发明实施例提供的另一种空中鼠标信息确定方法的流程图;
[0050] 图7为本发明实施例六提供的一种空中鼠标信息确定装置的结构示意图;
[0051] 图8为本发明实施例七提供的一种空中鼠标信息确定设备的结构示意图。

具体实施方式

[0052] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
[0053] 需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或操作或对象与另一个实体或操作或对象区分开来,而不一定要求或者暗示这些实体或操作或对象之前存在任何这种实际的关系或顺序。例如,第一操作指令和第二操作指令的“第一”和“第二”用来区分两个不同的指令操作。
[0054] 本申请实施例中提供的空中鼠标信息确定方法可以由空中鼠标信息确定设备执行,该空中鼠标信息确定设备可以通过软件和/或硬件的方式实现,该空中鼠标信息确定设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。例如,空中鼠标信息确定设备可以智能笔、智能鼠标等。
[0055] 为了便于理解,实施例中以智能笔为空中鼠标信息确定设备进行示例性描述。具体的,本申请实施例以运行具有空中鼠标功能的智能笔应用程序为例,描述空中鼠标信息确定方法。
[0056] 图1为本申请实施例提供的一种空中鼠标信息确定方法的流程图。参考图1,该空中鼠标信息确定方法具体包括:
[0057] S101、确定空中鼠标移动时的横滚角数据。
[0058] 空中鼠标为一种全新概念的和常规鼠标原理不同的信息输入、控制设备,其功能可以实现用户手在空中挥舞以完成对显示信息的操作,如用户手部向右移动,相应的显示屏幕中显示的光标也向右移动以此实现交互功能。具体的,如具备空中鼠标功能的佩戴在手部的定制设备,又如集成空中鼠标功能的智能笔,该智能笔可实现和显示屏设备的人机交互,又如集成了空中鼠标功能无线鼠标。
[0059] 其中,横滚角指运载体(如智能笔)横轴与平线之间的夹角,以定义载体的右(x轴)、前(y轴)、上(z轴)三个方向构成右手系,绕向前的轴旋转的角为横滚角,绕向右的轴旋转的角为俯仰角,绕向上的轴旋转的角为航向角。现有技术中将人手航向角速度映射为鼠标上下移动轨迹,将人手俯仰角速度映射为鼠标左右移动轨迹,通过计算航向角和俯仰角实现空中鼠标信息的确定,本方案无需解算俯仰角和航向角,仅需确定横滚角。
[0060] 在一个实施例中,用户手握智能笔进行移动时,通过陀螺仪采集角速度数据,根据角速度数据构建微分方程,对微分方程进行计算得到空中鼠标移动时的横滚角数据。可选的,该陀螺仪为六轴陀螺仪可确定多个轴向的角速度和加速度。角速度的确定方式包括:当陀螺仪相对壳体(如智能笔外壳客体)转动一个角度时,陀螺仪内部集成的弹性元件会产生和其偏转方向相反的弹性约束矩,通过将力矩转化为电压,被adc转换后由芯片通过iic读取,具体的量程可设置为125'/s,250'/s,500'/s,1000'/s,200'/s,假定量程为x‘/s,则需要计算的角速度为yLSB/('/s),可通过公式y=65*x进行换算得到。
[0061] S102、获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度。
[0062] 在一个实施例中,以S101中定义的右(x轴)、前(y轴)、上(z轴)三个方向构成的右手系为例,该第一轴向为x轴向,第二轴向为z轴向。可通过陀螺仪采集空中鼠标移动时的第一轴向角速度和第二轴向角速度,即x轴向和z 轴向的角速度。确定原理方式同前,此处不再赘述。
[0063] S103、根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹。
[0064] 在一个实施例中,将第一轴向角速度(x轴向角速度)确定为空中鼠标的上下移动速度,将第二轴向(z轴向角速度)角速度确定为鼠标左右移动速度。由此将陀螺仪采集的原始角速度映射为了空中鼠标在不同方向的移动速度。在得到不同方向的移动速度后,可相应的确定在该方向上的移动轨迹,如以鼠标上下移动轨迹为例,初始状态下移动速度为x,在一个采样周期s后移动速度为y,则在该方向上移动距离为l=(y-x)s/2。在一个实施例中,还可通过陀螺仪采集的加速度确定鼠标上下、左右移动轨迹,或者二者进行结合,可选的,可依据时间长短设定不同的权重值,在短时时间范围内,角速度权重值大于加速度权重值,在长时间范围内,角速度权重值小于加速度权重值。
[0065] S104、依据所述横滚角数据将所述移动轨迹映射至显示屏幕中。
[0066] 在步骤S103中,确定出的空中鼠标在上下、左右方向的移动轨迹为机体坐标系下的移动轨迹,依据横滚角数据将所述移动轨迹映射至显示屏幕中,即通过横滚角将机体坐标系下空中鼠标的移动轨迹映射到地理坐标系下并显示在显示屏幕中。
[0067] 在一个实施例中,用户可通过手握智能笔和显示屏幕进行交互,如显示屏幕显示一鼠标箭头,用户手握智能笔进行上下、左右的方位移动时,该显示屏幕中的鼠标箭头可相应进行轨迹的同步移动。
[0068] 可选的,以确定出的横滚角为*roll为例,利用横滚角构造二维旋转矩阵,定义xDeal和yDeal为传输给鼠标箭头的未处理的偏移量,其计算方式如下:
[0069] yDeal=penGyroscope->gyroscopeY*cos(roll)- penGyroscope->gyroscopeZ*sin(roll);
[0070] xDeal=penGyroscope->gyroscopeY*sin(roll)+ penGyroscope->gyroscopeZ*cos(roll)
[0071] 在得到xDeal和yDeal具体数值后,控制鼠标箭头在显示屏幕进行相应显示,示例性的,xDeal和yDeal对应的坐标点为(100,200),则在显示屏幕坐标点 (100,200)位置处显示鼠标箭头,通过多个周期的连续解算,鼠标箭头依据解算结果在对应位置显示以形成在显示屏幕中的移动轨迹。
[0072] 本实施例提供的技术方案中,通过确定横滚角对采集的原始角速度数据进行坐标系变换的映射处理得到显示屏中的移动轨迹,相较于直接使用俯仰角和航向角的速度变化映射,计算量小,运算速度快,鼠标轨迹移动更加平滑,在使用陀螺仪数据时,可根据陀螺仪初始化量程进行数据配置,选取最合适的量程,并且根据芯片运算浮点数的速度过慢的问题,取整数进行运算,同时采用设计实现的正弦反三角函数,利用从数值选参考值的方式加快数据运算。
[0073] 在一个实施例中,在获取螺仪采集的数据后,对采集的数据进行8窗口深度滤波和一阶低通滤波,以提高采集数据的准确度。
[0074] 图2为本发明实施例提供的另一种空中鼠标信息确定方法的流程图,给出了一种具体的确定空中鼠标移动时的横滚角数据的方法。具体的,参考图2,该空中鼠标信息确定方法具体包括:
[0075] S201、获取陀螺仪采集的角速度数据,确定所述角速度数据的补偿值,对所述角速度数据进行补偿后构建四元数微分方程,对所述微分方程进行计算得到空中鼠标移动时的横滚角数据。
[0076] 在一个实施例中,获取陀螺仪采集的角速度数据后,确定角速度数据的补偿值,对所述角速度数据进行补偿后构建四元数微分方程后进行解算得到横滚角。示例性的,(gx,gy,gz)为测得的角速度,(exInt,eyInt,ezInt)为确定出的对应的补偿值,将补偿值结合PID矫正补偿至测得的角速度中,再进行四元数微分方程的构建以计算得到横滚角数据。
[0077] S202、获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度。
[0078] S203、根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹。
[0079] S204、依据所述很滚胶横滚角数据将所述移动轨迹映射至显示屏幕中。
[0080] 本实施例提供的技术方案中,通过获取陀螺仪采集的角速度数据,确定角速度数据的补偿值,对角速度数据进行补偿后构建四元数微分方程,对微分方程进行计算得到空中鼠标移动时的横滚角数据,进一步提高了空中鼠标信息的确定精度,使得鼠标移动轨迹更加准确。
[0081] 图3为本发明实施例提供的另一种空中鼠标信息确定方法的流程图,给出了一种具体的确定角速度数据的补偿值的方法。具体的,参考图3,该空中鼠标信息确定方法具体包括:
[0082] S301、获取陀螺仪采集的角速度数据。
[0083] S302、获取陀螺仪采集的加速度数据,将所述加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值。
[0084] 在一个实施例中,陀螺仪为六轴陀螺仪可采集角速度数据和重力加速度数据,在确定补偿值的过程中,将加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值。具体的,设定ax,ay,az分别为iic获取到的加速度值构成的三维向量,通过公式sqrt(ax*ax+ay*ay+az*az)将三维向量转为单位向量。在得到单位向量后,根据余弦矩阵和欧拉角的定义(具体利用方向余弦矩阵公式第三列的三个元素),将地理坐标系下的的重力向量转换为机体坐标系下,即得到vx,vy,vz。具体公式如下:
[0085]
[0086] 计算得出:
[0087] vx=2*(q1*q3-q0*q2)
[0088] vy=2*(q0*q1+q2*q3)
[0089] vz=q0*q0-q1*q1-q2*q2+q3*q3
[0090] S303、根据所述加速度数据和所述加速度计算值确定所述角速度数据的补偿值。
[0091] 其中,如S302描述的内容,(ax,ay,az)为测得的加速度数据,vx,vy,vz为计算得出的加速度计算值,通过向量积计算重力间的误差(ex,ey,ez),具体如下:
[0092] ex=(ay*vz-az*vy)
[0093] ey=(az*vx-ax*vz)
[0094] ez=(ax*vy-ay*vx)
[0095] S304、对所述角速度数据进行补偿后构建四元数微分方程,对所述微分方程进行计算得到空中鼠标移动时的横滚角数据。
[0096] S305、获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度。
[0097] S306、根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹。
[0098] S307、依据所述很滚胶横滚角数据将所述移动轨迹映射至显示屏幕中。
[0099] 本实施例提供的技术方案中,获取陀螺仪采集的加速度数据,将加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值,再根据加速度数据和加速度计算值确定角速度数据的补偿值,该种方式计算效率更块,准确率更高。
[0100] 图4为本发明实施例提供的另一种空中鼠标信息确定方法的流程图,给出了一种具体的对角速度数据进行补偿的方法。参考图4,该空中鼠标信息确定方法具体包括:
[0101] S401、获取陀螺仪采集的角速度数据。
[0102] S402、获取陀螺仪采集的加速度数据,将所述加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值。
[0103] S403、根据所述加速度数据和所述加速度计算值确定所述角速度数据的补偿值。
[0104] S404、利用设置的第一参数,对所述补偿值进行积分,依据积分结果以及第二参数对所述角速度数据进行补偿。
[0105] 在一个实施例中,在确定补偿值后,进行相应的角速度数据补偿。
[0106] 具体的,在S303中确定误差ex,ey,ez后,定义(exInt,eyInt,ezInt)为误差的积分,并定义PID矫正中的Ki参数(设置的第一参数),对误差进行积分的具体公式如下:
[0107] exInt=exInt+ex*Ki
[0108] eyInt=eyInt+ey*Ki
[0109] ezInt=ezInt+ez*Ki
[0110] 依据积分结果以及第二参数对所述角速度数据进行补偿,具体的,结合PID 矫正中的Kp参数(设置的第二参数),将补偿值补偿到测量得到的角速度中,实现误差PI矫正,具体如下:
[0111] gx=gx+Kp*ex+exInt
[0112] gy=gy+Kp*ey+eyInt
[0113] gz=gz+Kp*ez+ezInt
[0114] S405、构建四元数微分方程,对所述微分方程进行计算得到空中鼠标移动时的横滚角数据。
[0115] S406、获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度。
[0116] S407、根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹。
[0117] S408、依据所述很滚胶横滚角数据将所述移动轨迹映射至显示屏幕中。
[0118] 本实施例提供的技术方案中,利用设置的第一参数,对所述补偿值进行积分,依据积分结果以及第二参数对所述角速度数据进行补偿,该种方式计算灵活性较强,计算量较小,提高了空中鼠标信息确定时的整体效率以及精准度。
[0119] 图5为本发明实施例提供的另一种空中鼠标信息确定方法的流程图,给出了一种具体的对微分方程进行计算得到空中鼠标移动时的横滚角数据的方法。参考图5,该空中鼠标信息确定方法具体包括:
[0120] S501、获取陀螺仪采集的角速度数据。
[0121] S502、获取陀螺仪采集的加速度数据,将所述加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值。
[0122] S503、根据所述加速度数据和所述加速度计算值确定所述角速度数据的补偿值。
[0123] S504、利用设置的第一参数,对所述补偿值进行积分,依据积分结果以及第二参数对所述角速度数据进行补偿。
[0124] S505、构建四元数微分方程,利用一阶毕卡算法对所述四元微分方程进行计算,并进行四元数的正交化处理得到空中鼠标移动时的横滚角数据。
[0125] 在一个实施例中,使用四元数的范数表示智能笔的初始姿态,四元数可以表示轴角对,并以q[w(xyz)]来表示旋转,定义四个参数分别float q0=1,q1=0,q2=0,q3=0,w=q0,x=q1,y=q2,z=q3也即四元数的范数,来表示初始姿态四元数,依此构建四元微分方程。
[0126] 具体的,四元微分方程矩阵形式表示如下:
[0127]
[0128] 其中,wx,wy,wz分别表示机体坐标系相对于地理坐标系沿各个轴(x轴、y 轴和z轴)的角速度分量。
[0129] 在一个实施例中,在得到补偿后的角速度值gx,gy,gz后(替换wx,wy,wz),利用一阶毕卡算法对四元微分方程进行求解,具体如下:
[0130] q0=q0+(-q1*gx-q2*gy-q3*gz)*halfT
[0131] q1=q1+(q0*gx+q2*gz-q3*gy)*halfT
[0132] q2=q2+(q0*gy-q1*gz+q3*gx)*halfT
[0133] q3=q3+(q0*gz+q1*gy-q2*gx)*halfT
[0134] 其中,halfT为采样周期的时间的一半。
[0135] 进行四元数正交化的过程如下:
[0136] norm=sqrt(q0*q0+q1*q1+q2*q2+q3*q3);
[0137] q0=q0/norm;
[0138] q1=q1/norm;
[0139] q2=q2/norm;
[0140] q3=q3/norm;
[0141] 具体的,在得到四元数结果后,依据下述公式确定横滚角数据,其中,*roll 表示横滚角:
[0142] *roll=fast_atan2(2*(q0*q1+q2*q3),1-2*(q1*q1+q2*q2))
[0143] S506、获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度。
[0144] S507、根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹。
[0145] S508、依据所述很滚胶横滚角数据将所述移动轨迹映射至显示屏幕中。
[0146] 本实施例提供的技术方案中,构建四元数微分方程,利用一阶毕卡算法对四元微分方程进行计算,并进行四元数的正交化处理得到空中鼠标移动时的横滚角数据,在解算横滚角时,采用自身设计实现的数学正弦反三角函数,利用从数值选参考值的方式加快运算。
[0147] 图6为本发明实施例提供的另一种空中鼠标信息确定方法的流程图,给出了一种具体的进行空中鼠标灵敏度控制的方法。参考图6,该空中鼠标信息确定方法具体包括:
[0148] S601、获取陀螺仪采集的角速度数据。
[0149] S602、获取陀螺仪采集的加速度数据,将所述加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值。
[0150] S603、根据所述加速度数据和所述加速度计算值确定所述角速度数据的补偿值。
[0151] S604、利用设置的第一参数,对所述补偿值进行积分,依据积分结果以及第二参数对所述角速度数据进行补偿。
[0152] S605、构建四元数微分方程,利用一阶毕卡算法对所述四元微分方程进行计算,并进行四元数的正交化处理得到空中鼠标移动时的横滚角数据。
[0153] S606、获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度。
[0154] S607、根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹。
[0155] S608、依据所述很滚胶横滚角数据将所述移动轨迹映射至显示屏幕中,确定所述空中鼠标的灵敏度数据,据所述灵敏度数据对显示屏幕中显示的轨迹进行控制。
[0156] 在一个实施例中,通过方程y=kx+b,控制鼠标运行的灵敏度。
[0157] 具体的,定义Yr,Xr为处理后的传输给鼠标的偏移量,K为灵敏度值,处理后的鼠标的偏移量计算方式如下:
[0158] Yr=K*yDeal
[0159] Xr=K*xDeal
[0160] 计算得到Yr和Xr,依据Yr和Xr的值在显示屏幕中显示鼠标移动轨迹。
[0161] 本实施例提供的技术方案中,通过利用灵敏度数据使空中鼠标的控制灵活性更强,可以满足用户多元化的需求,实现定制化交互。
[0162] 图7为本发明实施例六提供的一种空中鼠标信息确定装置的结构示意图。参考图7,该空中鼠标信息确定装置包括:横滚角确定模块701、角速度确定模块702、第一轨迹确定模块703以及第二轨迹确定模块704。
[0163] 其中,横滚角确定模块701用于确定空中鼠标移动时的横滚角数据;角速度确定模块702用于获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度;第一轨迹确定模块703用于根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹;第二轨迹确定模块704用于依据所述横滚角数据将所述移动轨迹映射至显示屏幕中。
[0164] 本实施例提供的技术方案,通过确定空中鼠标移动时的横滚角数据,获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度,根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹,依据所述横滚角数据将所述移动轨迹映射至显示屏幕中,解决现有技术中空中鼠标信息数据处理时计算量大,CPU负荷较高,导致空中鼠标使用时灵敏度较差的问题,使得空中鼠标在控制时计算量小,轨迹移动更加平滑,进一步加快了数据处理速度。
[0165] 可选的,所述横滚角确定模块701具体用于:
[0166] 获取陀螺仪采集的角速度数据,根据所述角速度数据构建微分方程;
[0167] 对所述微分方程进行计算得到空中鼠标移动时的横滚角数据。
[0168] 可选的,所述横滚角确定模块701具体用于:
[0169] 确定所述角速度数据的补偿值,对所述角速度数据进行补偿后构建四元数微分方程。
[0170] 可选的,所述横滚角确定模块701具体用于:获取陀螺仪采集的加速度数据,将所述加速度数据由三维向量转换为单位向量,并进行坐标系变换后得到加速度计算值;
[0171] 根据所述加速度数据和所述加速度计算值确定所述角速度数据的补偿值。
[0172] 可选的,所述横滚角确定模块701具体用于:
[0173] 利用设置的第一参数,对所述补偿值进行积分;
[0174] 依据积分结果以及第二参数对所述角速度数据进行补偿。
[0175] 可选的,所述横滚角确定模块701具体用于:
[0176] 利用四元数的范数进行初始姿态设置,根据所述角速度数据构建四元微分方程。
[0177] 可选的,所述横滚角确定模块701具体用于:
[0178] 利用一阶毕卡算法对所述四元微分方程进行计算,并进行四元数的正交化处理得到空中鼠标移动时的横滚角数据。
[0179] 可选的,所述第一轨迹确定模块703具体用于:
[0180] 依据所述第一轴向角速度确定鼠标上下移动轨迹;
[0181] 依据所述第二轴向角速度确定鼠标左右移动轨迹。
[0182] 可选的,所述第二轨迹确定模块704具体用于;
[0183] 依据所述横滚角数据将所述移动轨迹由机体坐标系转换为地理坐标系,映射至显示屏幕中。
[0184] 可选的,所述第二轨迹确定模块704还用于:
[0185] 在所述依据所述横滚角数据将所述移动轨迹映射至显示屏幕中之后,确定所述空中鼠标的灵敏度数据;
[0186] 依据所述灵敏度数据对显示屏幕中显示的轨迹进行控制。
[0187] 本实施例提供的空中鼠标信息确定装置可以用于执行上述任意实施例提供的空中鼠标信息确定方法,具备相应的功能和有益效果。
[0188] 图8为本发明实施例七提供的一种空中鼠标信息确定设备的结构示意图。本实施例中,以智能笔为空中鼠标信息确定设备为例,进行描述。如图8所示,该智能笔包括至少一个处理器61、至少一个网络接口62、用户接口63、存储器 64以及至少一个通信总线65。
[0189] 其中,通信总线65用于实现这些组件之间的连接通信。
[0190] 其中,用户接口62可以包括按钮、摄像头,可选用户接口63还可以包括标准的有线接口、无线接口。其中,网络接口62可选包括标准的有线接口、无线接口(如Wi-Fi接口)。
[0191] 其中,处理器61可以包括一个或多个处理核心。处理器61利用各种接口和线路连接整个智能笔60内的各个部分,通过运行或执行存储在处理器61内的指令、程序、代码集或指令集,以及调用存储在存储器64内的数据,执行智能笔60的各种功能和处理数据。可选的,处理器61可以采用数字信号处理 (Digital Signal Processing,DSP)、现场可编程阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable logic arrays,PLA)中的至少一种硬件形式来实现。处理器61可集成中央处理器(Central Processing Unit, CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统用户界面和应用程序等;GPU 用于负责显示屏所需要显示的内容的渲染和绘制,两个显示屏可以共用同一 GPU,或者每个显示屏对应一个GPU;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器61中,单独通过一块芯片进行实现。
[0192] 其中,存储器64可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器64包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器64可用于存储指令、程序、代码、代码集或指令集。存储器64可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器64可选的还可以是至少一个位于远离前述处理器 61的存储装置。如图8所示,作为一种计算机存储介质的存储器64中可以包括操作系统、网络通信模块、用户接口模块以及智能笔的操作应用程序。
[0193] 在图8所示的智能笔60中,用户接口63主要用于为用户提供输入的接口,获取用户输入的指令;而处理器61可以用于调用存储器64中存储的智能笔的操作应用程序,并具体执行上述实施例中空中鼠标信息确定方法中的相关操作。
[0194] 上述提供的空中鼠标信息确定设备可用于执行上述任意实施例提供的空中鼠标信息确定方法,具备相应的功能和有益效果。
[0195] 本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种空中鼠标信息确定方法,包括:
[0196] 确定空中鼠标移动时的横滚角数据;
[0197] 获取所述空中鼠标移动时的第一轴向角速度和第二轴向角速度;
[0198] 根据所述第一轴向角速度和所述第二轴向角速度确定所述空中鼠标的移动轨迹;
[0199] 依据所述横滚角数据将所述移动轨迹映射至显示屏幕中。
[0200] 当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的界面交互显示的操作,还可以执行本发明任意实施例所提供的空中鼠标信息确定方法中的相关操作,且具备相应的功能和有益效果。
[0201] 通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器  (Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的空中鼠标信息确定方法。
[0202] 值得注意的是,上述空中鼠标信息确定装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0203] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA) 等。
[0204] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0205] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈