模拟手柄运动的方法与系统的制作方法

文档序号:1587612阅读:273来源:国知局
专利名称:模拟手柄运动的方法与系统的制作方法
技术领域
本发明涉及拟真运动技术领域,更具体地,涉及一种模拟手柄运动的方法与系统。

背景技术
目前可以通过下述技术获得物体的运动趋势 (1)运动捕获技术该技术通过传感器跟踪设备直接记录运动实体的运动数据,并将该运动数据用于生成计算机动画。捕获的运动数据记录了实体在运动中丰富的细节,通过它生成的虚拟动画具有很强的真实感和较强的实时性。利用运动数据来驱动虚拟运动已经成为常用的虚拟动画技术。
(2)运动感知技术运动感知的实现大体上有视频运动捕获、磁场运动捕获、光电运动捕获等。磁场运动捕获和光电运动捕获主要是结合磁场和光电信号的感应原理,并通过高端精密硬件设备来实现,而视频运动捕获是采用图像处理的方法来实时捕捉图像每一帧的动作。由于该类技术为了追求全方位的感知,因此需要很多的辅助设备,对于诸如家庭娱乐等无需达到全方位动作感应的应用来说成本过高。
(3)蓝牙虚拟实景游戏控制技术该技术通过游戏手柄的传感器来采集人体运动的模拟信号,再将输入的模拟信号转化为人体运动的数字信号,同时利用数字信号电路进行采样分析,将分析后的数据发送到蓝牙协议栈中进行处理,主机通过点对点蓝牙协议传输的数据对虚拟场景中的人物进行控制。该技术需要很多复杂的数字电路进行信号处理,在真实体验中可能会有时延产生,达不到实时的效果。
从以上技术可以看出,运动捕获技术需要专业的传感器来对运动的行为进行捕获,需要比较详细的数据对虚拟人进行重构建模,因此该技术感知运动的效果最理想,但是其硬件和软件处理都比较复杂;运动感知技术是当前比较新兴的技术之一,基本上是结合磁场和光电信号的感应原理来进行处理,还没有对应的商用产品。总的来说,以上这些技术的配套设备都十分复杂、成本比较昂贵而且对于操作的要求也很高,所以还不能真正地应用到某些拟真运动应用(例如,3D游戏)中。


发明内容
本发明要解决的一个技术问题是提供一种模拟手柄运动的方法,能够在较低复杂度和成本的情况下具有很强的真实感和实时性。
本发明提供了一种模拟手柄运动的方法,包括接收测量出的手柄在三个方向上的加速度值x(i)、y(i)和z(i),其中,这三个方向为x轴方向、y轴方向和z轴方向;根据噪音干扰门限值NT判断三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰;在确定三个方向上的加速度值x(i)、y(i)和z(i)不为噪音干扰的情况下,根据三个方向上的加速度值x(i)、y(i)和z(i)分别确定手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i);根据夹角α(i)、β(i)和γ(i)模拟手柄的运动。
根据本发明方法的一个实施例,根据噪音干扰门限值NT判断三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰的步骤包括判断加速度值x(i)与加速度值x(i-1)之间的差值是否小于噪音干扰门限值NT;如果加速度值x(i)与加速度值x(i-1)之间的差值小于噪音干扰门限值NT,则判断加速度值y(i)与加速度值y(i-1)之间的差值是否小于噪音干扰门限值NT,否则,确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰;如果加速度值y(i)与加速度值y(i-1)之间的差值小于噪音干扰门限值NT,则判断加速度值z(i)与加速度值z(i-1)之间的差值是否小于噪音干扰门限值NT,否则,确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰;如果加速度值z(i)与加速度值z(i-1)之间的差值小于噪音干扰门限值NT,则确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)为噪音干扰,否则,确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰。
根据本发明方法的另一实施例,噪音干扰门限值NT介于1与5之间。
根据本发明方法的又一实施例,根据三个方向上的加速度值x(i)、y(i)和z(i)分别确定手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i)的步骤包括根据

计算x轴与yz平面的夹角α(i),其中,加速度值x(0)为x轴的加速度与yz平面的夹角为0度时的加速度值,x(m)为x轴的加速度与yz平面的夹角为90度时的加速度值,x(i)为x轴的加速度与yz平面的夹角为α(i)时的加速度值;根据

计算y轴与xz平面的夹角β(i),其中,加速度值y(0)为y轴的加速度与xz平面的夹角为0度时的加速度值,y(m)为y轴的加速度与xz平面的夹角为90度时的加速度值,y(i)为y轴的加速度与xz平面的夹角为β(i)时的加速度值;根据

计算z轴与xy平面的夹角γ(i),其中,加速度值z(0)为z轴的加速度与xy平面的夹角为0度时的加速度值,z(m)为z轴的加速度与xy平面的夹角为90度时的加速度值,z(i)为z轴的加速度与xy平面的夹角为γ(i)时的加速度值。
根据本发明方法的再一实施例,在根据三个方向上的加速度值x(i)、y(i)和z(i)分别确定手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i)的步骤之前,该方法还包括判断三个方向上的加速度值x(i)、y(i)和z(i)是否为反向加速度,如果加速度值x(i)、y(i)和z(i)中的任一个为反向加速度,则丢弃加速度值x(i)、y(i)和z(i),否则,基于加速度值x(i)、y(i)和z(i)确定手柄的运动趋势。
本发明提供的模拟手柄运动的方法,相对于传统的鼠标键盘操作是一个很大的挑战,该方法可以模拟用户操作手柄的每一个动作,将这些动作反应在诸如3D游戏的角色身上。另外,通过该方法生成的虚拟动画无需更多的硬件电路就可以具有很强的真实感和较强的实时性,真正摆脱了鼠标键盘操作的束缚。
本发明要解决的另一技术问题是提供一种模拟手柄运动的系统,能够在较低复杂度和成本的情况下具有很强的真实感和实时性。
本发明还提供了一种模拟手柄运动的系统,包括数据接收模块,用于接收测量出的手柄在三个方向上的加速度值x(i)、y(i)和z(i),其中,这三个方向为x轴方向、y轴方向和z轴方向;噪音干扰判断模块,用于根据噪音干扰门限值NT判断数据接收模块接收的三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰;运动方向确定模块,用于在噪音干扰判断模块确定三个方向上的加速度值x(i)、y(i)和z(i)不为噪音干扰的情况下,根据三个方向上的加速度值x(i)、y(i)和z(i)分别确定手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i);运动模拟模块,用于根据运动方向确定模块确定的夹角α(i)、β(i)和γ(i)模拟手柄的运动。
根据本发明系统的一个实施例,噪音干扰判断模块包括x轴判断单元,用于判断加速度值x(i)与加速度值x(i-1)之间的差值是否小于噪音干扰门限值NT;y轴判断单元,用于判断加速度值y(i)与加速度值y(i-1)之间的差值是否小于噪音干扰门限值NT;z轴判断单元,用于判断加速度值z(i)与加速度值z(i-1)之间的差值是否小于噪音干扰门限值NT;干扰确定单元,用于如果加速度值x(i)与加速度值x(i-1)之间的差值小于噪音干扰门限值NT、加速度值y(i)与加速度值y(i-1)之间的差值小于噪音干扰门限值NT并且加速度值z(i)与加速度值z(i-1)之间的差值小于噪音干扰门限值NT,则确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)为噪音干扰,否则,确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰。
根据本发明系统的另一实施例,噪音干扰门限值NT介于1与5之间。
根据本发明系统的又一实施例,运动方向确定模块包括x轴夹角确定单元,用于根据

计算x轴与yz平面的夹角α(i),其中,加速度值x(0)为x轴的加速度与yz平面的夹角为0度时的加速度值,x(m)为x轴的加速度与yz平面的夹角为90度时的加速度值,x(i)为x轴的加速度与yz平面的夹角为α(i)时的加速度值;y轴夹角确定单元,用于根据

计算y轴与xz平面的夹角β(i),其中,加速度值y(0)为y轴的加速度与xz平面的夹角为0度时的加速度值,y(m)为y轴的加速度与xz平面的夹角为90度时的加速度值,y(i)为y轴的加速度与xz平面的夹角为β(i)时的加速度值;z轴夹角确定单元,用于根据

计算z轴与xy平面的夹角γ(i),其中,加速度值z(0)为z轴的加速度与xy平面的夹角为0度时的加速度值,z(m)为z轴的加速度与xy平面的夹角为90度时的加速度值,z(i)为z轴的加速度与xy平面的夹角为γ(i)时的加速度值。
根据本发明系统的再一实施例,该系统还包括手柄装置,手柄装置包括三轴加速度传感器,用于测量手柄在三个方向上的加速度值x(i)、y(i)和z(i);数据发送模块,用于向数据接收模块发送三轴加速度传感器测量出的三个方向上的加速度值x(i)、y(i)和z(i)。
根据本发明系统的再一实施例,该系统还包括反向加速度判断模块,用于判断三个方向上的加速度值x(i)、y(i)和z(i)是否为反向加速度,如果加速度值x(i)、y(i)和z(i)中的任一个为反向加速度,则丢弃加速度值x(i)、y(i)和z(i),否则,由运动方向确定模块确定手柄的运动趋势。
本发明提供的模拟手柄运动的系统,相对于传统的鼠标键盘操作是一个很大的挑战,该系统可以模拟用户操作手柄的每一个动作,将这些动作反应在诸如3D游戏的角色身上。另外,通过该系统生成的虚拟动画无需更多的硬件电路就可以具有很强的真实感和较强的实时性,真正摆脱了鼠标键盘操作的束缚。



此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分。在附图中 图1是本发明模拟手柄运动的方法的一个实施例的流程示意图。
图2是本发明模拟手柄运动的方法的再一实施例的流程示意图。
图3是本发明模拟手柄运动的系统的一个实施例的结构示意图。
图4是本发明模拟手柄运动的系统的另一实施例的结构示意图。
图5是本发明模拟手柄运动的系统的又一实施例的结构示意图。
图6是本发明模拟手柄运动的系统的再一实施例的结构示意图。
图7是本发明模拟手柄运动的系统的再一实施例的结构示意图。

具体实施例方式 下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。本发明的示例性实施例及其说明用于解释本发明,但并不构成对本发明的不当限定。
加速度传感器的原理是惯性原理,多数加速度传感器是根据压电效应的原理来工作的,所谓的压电效应是“对于不存在对称中心的异极晶体加在晶体上的外力除了使晶体发生形变以外,还将改变晶体的极化状态,在晶体内部建立电场,这种由于机械力作用使介质发生极化的现象称为正压电效应”。一般加速度传感器就是利用了其内部的由于加速度造成的晶体变形的这个特性。由于这个变形会产生电压,所以只要计算出产生电压和所施加的加速度之间的关系,就可以将加速度转化成电压输出。当然,还可以用很多其他方法来制作加速度传感器,例如,压阻技术、电容效应、热气泡效应或光效应,但是其最基本的原理都是由于加速度对某个介质产生变形,通过测量其变形量并用相关电路转化成电压输出。
本发明利用三轴加速度传感器芯片,通过运动传感器芯片测量出的三个轴(即,x轴、y轴和z轴)的加速度值即可模拟运动方位的夹角和趋势,从而能够感知常见的运动状态,因此,无论在成本还是对游戏的可操作性上都具有非常大的优势。
图1是本发明模拟手柄运动的方法的一个实施例的流程示意图。
如图1所示,该实施例包括以下步骤 S102,接收测量出的手柄在三个方向上的加速度值x(i)、y(i)和z(i),其中,这三个方向是指x轴、y轴和z轴,例如,可以采用三轴加速度传感器来测量手柄在三个方向上的加速度值; S104,根据噪音干扰门限值NT判断三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰,其中,该噪音干扰门限值NT介于1与5之间,优选地,该噪音干扰门限值NT可以取2,例如,可以分别将x(1)与x(2)相比、将y(1)与y(2)相比、将z(1)与z(2)相比,如果这三组的差值同时小于噪音干扰门限值NT,则确定x(2)、y(2)和z(2)为噪音,否则,确认x(2)、y(2)和z(2)不是噪音; S106,在确定三个方向上的加速度值x(i)、y(i)和z(i)不为噪音干扰的情况下,根据三个方向上的加速度值x(i)、y(i)和z(i)分别确定手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i),例如,当x轴与yz平面的夹角为0度时,将x轴的加速度值计为x(0),当x轴与yz平面的夹角为90度时,将x轴的加速度值计为x(m),则当x轴的加速度值为x(i)时,x轴与yz平面的夹角α(i)可以通过

获得,依此类推,可以获得β(i)和γ(i); S108,根据夹角α(i)、β(i)和γ(i)模拟手柄的运动,例如,可以结合Direct3D中的空间位置变换函数(D3DXMatrixRotationX、D3DXMatrixRotationY和D3DXMatrixRotationZ)得出角色在立体空间的旋转动作效果。
现有技术或者对运动的识别成本高昂,或者可识别的运动类型少。而该实施例弥补了上述现有技术的缺陷,不需要额外增加硬件设备就可以捕获用户通过手柄所施加的每一个动作,在低成本的条件下提高了用户的感受。另外,由于该实施例不通过数字信号处理电路来模拟手柄的运动,所以在很大程度上提高了模拟的实时性。
在本发明模拟手柄运动的方法的另一实施例中,可以通过下述步骤根据噪音干扰门限值NT判断三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰 判断加速度值x(i)与加速度值x(i-1)之间的差值是否小于噪音干扰门限值NT; 如果加速度值x(i)与加速度值x(i-1)之间的差值小于噪音干扰门限值NT,则判断加速度值y(i)与加速度值y(i-1)之间的差值是否小于噪音干扰门限值NT,否则,确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰; 如果加速度值y(i)与加速度值y(i-1)之间的差值小于噪音干扰门限值NT,则判断加速度值z(i)与加速度值z(i-1)之间的差值是否小于噪音干扰门限值NT,否则,确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰; 如果加速度值z(i)与加速度值z(i-1)之间的差值小于噪音干扰门限值NT,则确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)为噪音干扰,否则,确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰。
在该实施例中,噪音干扰门限值NT介于1与5之间,优选地,该噪音干扰门限值可以是2。
在该实施例中,判断的顺序并不局限于上述方式,还可以先判断加速度值y(i)与加速度值y(i-1)之间的差值、再判断加速度值x(i)与加速度值x(i-1)之间的差值以及加速度值z(i)与加速度值z(i-1)之间的差值与噪音干扰门限值NT之间的关系;或者先判断加速度值z(i)与加速度值z(i-1)之间的差值,再判断加速度值y(i)与加速度值y(i-1)之间的差值以及加速度值x(i)与加速度值x(i-1)之间的差值与噪音干扰门限值NT之间的关系。
该实施例可以判断当前接收到的加速度值是否为噪音,如果为噪音干扰则不进行手柄运动的模拟,从而可以有效地消除噪音对模拟手柄运动的影响。
在本发明模拟手柄运动的方法的又一实施例中,可以根据三个方向上的加速度值x(i)、y(i)和z(i)通过下述步骤分别确定手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i) 根据

计算x轴与yz平面的夹角α(i),其中,加速度值x(0)为x轴的加速度与yz平面的夹角为0度时的加速度值,x(m)为x轴的加速度与yz平面的夹角为90度时的加速度值,x(i)为x轴的加速度与yz平面的夹角为α(i)时的加速度值; 根据

计算y轴与xz平面的夹角β(i),其中,加速度值y(0)为y轴的加速度与xz平面的夹角为0度时的加速度值,y(m)为y轴的加速度与xz平面的夹角为90度时的加速度值,y(i)为y轴的加速度与xz平面的夹角为β(i)时的加速度值; 根据

计算z轴与xy平面的夹角γ(i),其中,加速度值z(0)为z轴的加速度与xy平面的夹角为0度时的加速度值,z(m)为z轴的加速度与xy平面的夹角为90度时的加速度值,z(i)为z轴的加速度与xy平面的夹角为γ(i)时的加速度值。
通过该实施例可以容易地获得手柄的运动趋势,从而可以实时地模拟手柄的运动,给用户带来很好的感受。
在本发明模拟手柄运动的方法的再一实施例中,在根据三个方向上的加速度值x(i)、y(i)和z(i)分别确定手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i)的步骤之前,该方法还包括判断三个方向上的加速度值x(i)、y(i)和z(i)是否为反向加速度,如果加速度值x(i)、y(i)和z(i)中的任一个为反向加速度,则丢弃加速度值x(i)、y(i)和z(i),否则,基于加速度值x(i)、y(i)和z(i)确定手柄的运动趋势。
通过该实施例可以有效地消除反向加速度对运动趋势估计的影响,显著提高了对运动趋势的估计精度。
图2是本发明模拟手柄运动的方法的再一实施例的流程示意图。
游戏时玩家拿手柄做相应的动作,三轴加速度传感器芯片会产生连续的数据,可以对这些数据进行相应的处理和分析,解析出芯片产生的在三个方向上的加速度值,根据这三个方向上的加速度值确定手柄的运动趋势和运动的倾向夹角。
如图2所示,将详细介绍如何判断芯片的运动趋势并模拟该运动趋势的步骤 S202,接收三轴加速度传感器测量出的x轴、y轴和z轴三个方向上的加速度值,例如,可以利用C++中COM组件的底层库函数,得到通过蓝牙传输设备所发送的一组实时数据; S204,判断所接收的数据是否为三个方向上的加速度值; S206,如果为三个方向上的加速度值,则根据数据传输协议解析出x轴、y轴和z轴上的加速度值x(i)、y(i)和z(i),并根据解析出的三个方向上的数据进行除噪处理,即,如果x轴、y轴和z轴的前后两次的差值均小于噪声干扰门限值(例如,2),则可以认为是噪音干扰,不进行手柄运动趋势的估计,例如,如果加速度值x(1)与x(2)相比、y(1)与y(2)相比、z(1)与z(2)相比,这三组差值同时小于噪音干扰门限值NT,则确定x(2)、y(2)和z(2)为噪音,不进行后续的估计,如果只有加速度值x(1)与x(2)相比的差值小于噪音干扰门限值NT,而其他两个差值均大于噪音干扰门限值NT,则不认为是噪音干扰,并继续后续的估计; S208,如果所接收的数据不是三个方向上的加速度值,则继续从缓存中读取数据; S210,根据解析出的三个方向上的加速度值x(i)、y(i)和z(i)判断手柄的运动状态和趋势,以x轴方向的加速度为例,每次都以x(0)为基准,因为x(0)是初始值,和初始值相比才能算出真正的夹角,具体的计算过程为x轴与yz平面的夹角从0到90度,当夹角为0度时,x轴的加速度值计为x(0),当夹角为90度时,x轴的加速度值计为x(m),则x轴与yz平面的夹角计算公式为

依此类推,可以计算出y轴与xz平面的夹角计算公式为

z轴与xy平面的夹角计算公式为

因为每个动作都会导致三个方向的加速度值的变化,而这三个值中有一个是主导性的变化,另外两个则可能是从属性的变化,将一系列的这三种值绘成折线图,即可明显地看出三种值的变化范围以及变化规律,再选出变化最为明显的作为主导变化值,根据该主导变化值再结合其他两个变化值进行运动趋势的综合判断; S212,根据计算出的三个夹角α(i)、β(i)和γ(i),再结合Directx3D中空间位置变换函数,例如,D3DXMatrixRotationX、D3DXMatrixRotationY和D3DXMatrixRotationZ就可以得出角色在立体空间的旋转动作效果。
该实施例利用三轴加速度传感器芯片可以实现低成本的条件下的相对较好的运动捕获,再利用捕获的数据实时地感知用户操作手柄的各种动作,真正摆脱了鼠标键盘操作的束缚,可以自由地游戏与娱乐。
可选地,在判断手柄的运动状态和趋势之前,该实施例可以连续读取四组加速度值,分别针对每个方向上的加速度值进行反向加速度的判断。由于反向加速度总是跟在一个正向加速度之后,而且反向加速度通常都是比较大的值(即,反向运动总会在极短时间内完成),所以如果将正向运动看作是一个波峰,则反向加速度是一个波谷。假设紧跟着波峰的是一个波谷(通过实验测得,反向加速度的波谷与前一个波峰之间最多有两个波值,这也是选择读取四个值的原因),则可以认定这个波谷是反向加速度;同理,如果将正向运动看作是一个波谷,则反向加速度是一个波峰,由此也可以认定该波峰为反向加速度。以x轴为例,读取了x(3)、x(4)、x(5)和x(6),可以将x(5)作为当前值,将x(3)和x(4)作为两个老值,将x(6)作为一个新值,在进行反向加速度的判断时,将当前值x(5)与两个老值x(3)和x(4)以及一个新值x(6)进行比较。由于加速度值是相对值,可以比较大小,如果x(5)大于(或小于)x(3)、x(4)、x(6),则可以认定x(5)是一个波峰(或波谷),继续取下一组的四个值,如果接下来的一组数据中有波谷(或波峰)出现,则认定此次取到的四个值受了反向加速度的影响,忽略此运动。如果当前值x(5)为反向加速度,则不对当前值x(5)进行手柄运动趋势的估计,继续读取下一组值,否则,基于当前值进行手柄运动趋势的估计。通过上述处理,可以有效地消除由于动作结束时所引起的反向加速度,提高了模拟手柄运动的准确度。
图3是本发明模拟手柄运动的系统的一个实施例的结构示意图。
如图3所示,该实施例的系统包括数据接收模块11,用于接收测量出的手柄在三个方向上的加速度值x(i)、y(i)和z(i)z(i),其中,这三个方向为x轴方向、y轴方向和z轴方向;噪音干扰判断模块12,用于根据噪音干扰门限值NT判断数据接收模块11接收的三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰,其中,该噪音干扰门限值NT介于1与5之间,优选地,该噪音干扰门限值NT可以取2;运动方向确定模块13,用于在噪音干扰判断模块12确定三个方向上的加速度值x(i)、y(i)和z(i)不为噪音干扰的情况下,根据三个方向上的加速度值x(i)、y(i)和z(i)分别确定手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i);运动模拟模块14,用于根据运动方向确定模块13确定的夹角α(i)、β(i)和γ(i)模拟手柄的运动,例如,可以结合Direct3D中的空间位置变换函数(D3DXMatrixRotationX、D3DXMatrixRotationY和D3DXMatrixRotationZ)得出角色在立体空间的旋转动作效果。
现有技术或者对运动的识别成本高昂,或者可识别的运动类型少。而该实施例弥补了上述现有技术的缺陷,不需要额外增加硬件设备就可以捕获用户通过手柄所施加的每一个动作,在低成本的条件下提高了用户的感受。另外,由于该实施例不通过数字信号处理电路来模拟手柄的运动,所以在很大程度上提高了实时性。
图4是本发明模拟手柄运动的系统的另一实施例的结构示意图。
如图4所示,与图3中的实施例相比,该实施例的噪音干扰判断模块21包括x轴判断单元211,用于判断加速度值x(i)与加速度值x(i-1)之间的差值是否小于噪音干扰门限值NT;y轴判断单元212,用于判断加速度值y(i)与加速度值y(i-1)之间的差值是否小于噪音干扰门限值NT;z轴判断单元213,用于判断加速度值z(i)与加速度值z(i-1)之间的差值是否小于噪音干扰门限值NT;干扰确定单元214,用于如果加速度值x(i)与加速度值x(i-1)之间的差值小于噪音干扰门限值NT、加速度值y(i)与加速度值y(i-1)之间的差值小于噪音干扰门限值NT并且加速度值z(i)与加速度值z(i-1)之间的差值小于噪音干扰门限值NT,则确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)为噪音干扰,否则,确定三个方向上的加速度值x(i)、y(i)和z(i)相对于加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰。
在该实施例中,噪音干扰门限值NT介于1与5之间,优选地,该噪音干扰门限值可以是2。
该实施例可以判断当前接收到的加速度值是否为噪音,如果为噪音干扰则不进行手柄运动的模拟,从而可以有效地消除噪音对模拟手柄运动的影响。
图5是本发明模拟手柄运动的系统的又一实施例的结构示意图。
如图5所示,与图3中的实施例相比,该实施例的运动方向确定模块31包括x轴夹角确定单元311,用于根据

计算x轴与yz平面的夹角α(i),其中,加速度值x(0)为x轴的加速度与yz平面的夹角为0度时的加速度值,x(m)为x轴的加速度与yz平面的夹角为90度时的加速度值,x(i)为x轴的加速度与yz平面的夹角为α(i)时的加速度值;y轴夹角确定单元312,用于根据

计算y轴与xz平面的夹角β(i),其中,加速度值y(0)为y轴的加速度与xz平面的夹角为0度时的加速度值,y(m)为y轴的加速度与xz平面的夹角为90度时的加速度值,y(i)为y轴的加速度与xz平面的夹角为β(i)时的加速度值;z轴夹角确定单元313,用于根据

计算z轴与xy平面的夹角γ(i),其中,加速度值z(0)为z轴的加速度与xy平面的夹角为0度时的加速度值,z(m)为z轴的加速度与xy平面的夹角为90度时的加速度值,z(i)为z轴的加速度与xy平面的夹角为γ(i)时的加速度值。
通过该实施例可以容易地获得手柄的运动趋势,从而可以实时地模拟手柄的运动,给用户带来很好的感受。
图6是本发明模拟手柄运动的系统的再一实施例的结构示意图。
如图6所示,与图3中的实施例相比,该实施例的系统还包括手柄装置41,该手柄装置41包括三轴加速度传感器411,用于测量手柄在三个方向上的加速度值x(i)、y(i)和z(i);数据发送模块412,用于向数据接收模块11发送三轴加速度传感器411测量出的三个方向上的加速度值x(i)、y(i)和z(i)。
其中,三轴加速度传感器411可以测量出水平两个方向以及垂直方向上的三个加速度值。其区别于平面加速度的主要方面就是重力加速度。通过判断该三轴加速度传感器在三个方向上的加速度值,可以计算出包含该三轴加速度传感器411的手柄在各个方向上的运动趋势以及运动状态,然后再把这些数据通过数据发送模块412发送给数据接收模块11,最后再结合C++编程语言,即可以实现拟真三维立体动画效果。
在该实施例中,可以采用蓝牙方式进行数据的发送与接收。即,数据发送模块可以是蓝牙适配器,数据接收模块可以是蓝牙串口。
该实施例通过三轴加速度传感器测量手柄在三个方向上的加速度值,不仅测量精度高,而且在很大程度上节约了实现的成本。
图7是本发明模拟手柄运动的系统的再一实施例的结构示意图。
如图7所示,与图3中的实施例相比,该实施例的系统还包括反向加速度判断模块51,用于判断三个方向上的加速度值x(i)、y(i)和z(i)是否为反向加速度,如果加速度值x(i)、y(i)和z(i)中的任一个为反向加速度,则丢弃加速度值x(i)、y(i)和z(i),否则,由运动方向确定模块13确定手柄的运动趋势。
通过该实施例可以有效地消除反向加速度对运动趋势估计的影响,显著提高了对运动趋势的估计精度。
另外,可以将上述实施例应用于下述场景例如,选用剑作为武器,通过上述实施例,手柄的旋转动作可以体现在剑上,将测量出的手柄在三个方向的夹角应用于剑上,即可让剑做出相应的旋转动作;再例如,以飞机作为主体,用手柄控制飞机的飞行方向及位置,类似于三维雷电游戏,手柄可以实现左右、上下和前后三个方向上的移动,由程序判断手柄的运动趋势,让飞机做出相应的移动。
上述实施例可以采用A D X L 330型号的三轴加速度传感器芯片,其市场价格在20元至30元之间,而市场上现有的动作感应手柄价格都在几百元至千元不等,可见,本发明的实现成本相比现有产品有足够的优势。
另外,本发明的上述实施例还具有动作连续捕获能力。通过运动过程中三轴加速度传感器捕获到的不断变化的加速度值来模拟手柄与平面夹角之间的不断变化,该变化反应在手柄操作对象上,就成为手柄操作对象的连续运动。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
权利要求
1.一种模拟手柄运动的方法,其特征在于,所述方法包括
接收测量出的手柄在三个方向上的加速度值x(i)、y(i)和z(i),其中,所述三个方向为x轴方向、y轴方向和z轴方向;
根据噪音干扰门限值NT判断所述三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰;
在确定所述三个方向上的加速度值x(i)、y(i)和z(i)不为噪音干扰的情况下,根据所述三个方向上的加速度值x(i)、y(i)和z(i)分别确定所述手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i);
根据所述夹角α(i)、β(i)和γ(i)模拟所述手柄的运动。
2.根据权利要求1所述的方法,其特征在于,所述根据噪音干扰门限值NT判断所述三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰的步骤包括
判断加速度值x(i)与加速度值x(i-1)之间的差值是否小于所述噪音干扰门限值NT;
如果所述加速度值x(i)与所述加速度值x(i-1)之间的差值小于所述噪音干扰门限值NT,则判断加速度值y(i)与加速度值y(i-1)之间的差值是否小于所述噪音干扰门限值NT,否则,确定所述三个方向上的加速度值x(i)、y(i)和z(i)相对于所述加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰;
如果所述加速度值y(i)与所述加速度值y(i-1)之间的差值小于所述噪音干扰门限值NT,则判断加速度值z(i)与加速度值z(i-1)之间的差值是否小于所述噪音干扰门限值NT,否则,确定所述三个方向上的加速度值x(i)、y(i)和z(i)相对于所述加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰;
如果所述加速度值z(i)与所述加速度值z(i-1)之间的差值小于所述噪音干扰门限值NT,则确定所述三个方向上的加速度值x(i)、y(i)和z(i)相对于所述加速度值x(i-1)、y(i-1)和z(i-1)为噪音干扰,否则,确定所述三个方向上的加速度值x(i)、y(i)和z(i)相对于所述加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰。
3.根据权利要求1或2所述的方法,其特征在于,所述噪音干扰门限值NT介于1与5之间。
4.根据权利1所述的方法,其特征在于,根据所述三个方向上的加速度值x(i)、y(i)和z(i)分别确定所述手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i)的步骤包括
根据
计算x轴与yz平面的夹角α(i),其中,加速度值x(0)为x轴的加速度与yz平面的夹角为0度时的加速度值,x(m)为x轴的加速度与yz平面的夹角为90度时的加速度值,x(i)为x轴的加速度与yz平面的夹角为α(i)时的加速度值;
根据
计算y轴与xz平面的夹角β(i),其中,加速度值y(0)为y轴的加速度与xz平面的夹角为0度时的加速度值,y(m)为y轴的加速度与xz平面的夹角为90度时的加速度值,y(i)为y轴的加速度与xz平面的夹角为β(i)时的加速度值;
根据
计算z轴与xy平面的夹角γ(i),其中,加速度值z(0)为z轴的加速度与xy平面的夹角为0度时的加速度值,z(m)为z轴的加速度与xy平面的夹角为90度时的加速度值,z(i)为z轴的加速度与xy平面的夹角为γ(i)时的加速度值。
5.根据权利要求1所述的方法,其特征在于,在根据所述三个方向上的加速度值x(i)、y(i)和z(i)分别确定所述手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i)的步骤之前,所述方法还包括
判断所述三个方向上的加速度值x(i)、y(i)和z(i)是否为反向加速度,如果所述加速度值x(i)、y(i)和z(i)中的任一个为反向加速度,则丢弃所述加速度值x(i)、y(i)和z(i),否则,基于所述加速度值x(i)、y(i)和z(i)确定所述手柄的运动趋势。
6.一种模拟手柄运动的系统,其特征在于,所述系统包括
数据接收模块,用于接收测量出的手柄在三个方向上的加速度值x(i)、y(i)和z(i),其中,所述三个方向为x轴方向、y轴方向和z轴方向;
噪音干扰判断模块,用于根据噪音干扰门限值NT判断所述数据接收模块接收的所述三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰;
运动方向确定模块,用于在所述噪音干扰判断模块确定所述三个方向上的加速度值x(i)、y(i)和z(i)不为噪音干扰的情况下,根据所述三个方向上的加速度值x(i)、y(i)和z(i)分别确定所述手柄运动时x轴与yz平面的夹角α(i)、y轴与xz平面的夹角β(i)以及z轴与xy平面的夹角γ(i);
运动模拟模块,用于根据所述运动方向确定模块确定的所述夹角α(i)、β(i)和γ(i)模拟所述手柄的运动。
7.根据权利要求6所述的系统,其特征在于,所述噪音干扰判断模块包括
x轴判断单元,用于判断加速度值x(i)与加速度值x(i-1)之间的差值是否小于所述噪音干扰门限值NT;
y轴判断单元,用于判断加速度值y(i)与加速度值y(i-1)之间的差值是否小于所述噪音干扰门限值NT;
z轴判断单元,用于判断加速度值z(i)与加速度值z(i-1)之间的差值是否小于所述噪音干扰门限值NT;
干扰确定单元,用于如果所述加速度值x(i)与所述加速度值x(i-1)之间的差值小于所述噪音干扰门限值NT、所述加速度值y(i)与所述加速度值y(i-1)之间的差值小于所述噪音干扰门限值NT并且所述加速度值z(i)与所述加速度值z(i-1)之间的差值小于所述噪音干扰门限值NT,则确定所述三个方向上的加速度值x(i)、y(i)和z(i)相对于所述加速度值x(i-1)、y(i-1)和z(i-1)为噪音干扰,否则,确定所述三个方向上的加速度值x(i)、y(i)和z(i)相对于所述加速度值x(i-1)、y(i-1)和z(i-1)不为噪音干扰。
8.根据权利要求6或7所述的系统,其特征在于,所述噪音干扰门限值NT介于1与5之间。
9.根据权利要求6所述的系统,其特征在于,所述运动方向确定模块包括
x轴夹角确定单元,用于根据
计算x轴与yz平面的夹角α(i),其中,加速度值x(0)为x轴的加速度与yz平面的夹角为0度时的加速度值,x(m)为x轴的加速度与yz平面的夹角为90度时的加速度值,x(i)为x轴的加速度与yz平面的夹角为α(i)时的加速度值;
y轴夹角确定单元,用于根据
计算y轴与xz平面的夹角β(i),其中,加速度值y(0)为y轴的加速度与xz平面的夹角为0度时的加速度值,y(m)为y轴的加速度与xz平面的夹角为90度时的加速度值,y(i)为y轴的加速度与xz平面的夹角为β(i)时的加速度值;
z轴夹角确定单元,用于根据
计算z轴与xy平面的夹角γ(i),其中,加速度值z(0)为z轴的加速度与xy平面的夹角为0度时的加速度值,z(m)为z轴的加速度与xy平面的夹角为90度时的加速度值,z(i)为z轴的加速度与xy平面的夹角为γ(i)时的加速度值。
10.根据权利要求6所述的系统,其特征在于,所述系统还包括手柄装置,所述手柄装置包括
三轴加速度传感器,用于测量所述手柄在所述三个方向上的加速度值x(i)、y(i)和z(i);
数据发送模块,用于向所述数据接收模块发送所述三轴加速度传感器测量出的所述三个方向上的加速度值x(i)、y(i)和z(i)。
11.根据权利要求6所述的系统,其特征在于,所述系统还包括
反向加速度判断模块,用于判断所述三个方向上的加速度值x(i)、y(i)和z(i)是否为反向加速度,如果所述加速度值x(i)、y(i)和z(i)中的任一个为反向加速度,则丢弃所述加速度值x(i)、y(i)和z(i),否则,由所述运动方向确定模块确定所述手柄的运动趋势。
全文摘要
本发明公开了一种模拟手柄运动的方法与系统。其中,该方法包括接收测量出的手柄在三个方向上的加速度值x(i)、y(i)和z(i);根据噪音干扰门限值NT判断三个方向上的加速度值x(i)、y(i)和z(i)是否为噪音干扰;在确定三个方向上的加速度值x(i)、y(i)和z(i)不为噪音干扰的情况下,根据三个方向上的加速度值x(i)、y(i)和z(i)分别确定手柄的运动夹角α(i)、β(i)和γ(i);根据夹角α(i)、β(i)和γ(i)模拟手柄的运动。本发明的模拟手柄运动的方法与系统,相对于传统的鼠标键盘操作是一个很大的挑战,该方法可以模拟用户操作手柄的每一个动作,将这些动作反应在诸如3D游戏的角色身上。另外,通过该方法生成的虚拟动画无需更多的硬件电路就可以具有很强的真实感和较强的实时性,真正摆脱了鼠标键盘操作的束缚。
文档编号A63F13/02GK101788851SQ20101011372
公开日2010年7月28日 申请日期2010年2月22日 优先权日2010年2月22日
发明者李江崴, 武娟, 梁洁, 陈戈, 张路宜, 韩晓梅, 陈学亮 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1