CN106062680A - 具有改进的用户体验的空中指示器 - Google Patents
具有改进的用户体验的空中指示器 Download PDFInfo
- Publication number
- CN106062680A CN106062680A CN201480058531.4A CN201480058531A CN106062680A CN 106062680 A CN106062680 A CN 106062680A CN 201480058531 A CN201480058531 A CN 201480058531A CN 106062680 A CN106062680 A CN 106062680A
- Authority
- CN
- China
- Prior art keywords
- data set
- virtual objects
- equipment
- point
- coordinate
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了使用运动传感器测量结果以及相对指示算法和绝对指示算法来控制表面上的对象的设备和方法。在低速下相对指示是优选的,并且在高速下绝对指示是优选的。必须使用两种算法的结果的加权组合来使两种算法的结果之间的转变变得平滑。权重可以随着时间的推移或随着设备的速度的变化变得相关。不同参数的最大值和最小值可能必须被设置为避免可能消极地影响用户体验的方向上的跳跃或变化。目标是,在仍然保持所述对象的位置尽可能接近由绝对指示算法计算出的位置的同时,用户对他或她在屏幕上看到的东西和他或她赋予所述设备的运动具有一致的感知。
Description
背景技术
本发明涉及对3D指示器的使用。这些指示设备用于各种不同的目的:使用或不使用机顶盒来控制电视机或平板电脑的功能;控制台式电脑或较大的屏幕上的演示;玩游戏等。3D指示器包括运动传感器,所述运动传感器捕获由操纵指示器的用户赋予该指示器的运动。在大部分应用中,将空间中的设备的运动转换成平面(通常是显示器)中的虚拟对象(常常是光标)的运动。通过控制对象并且将其跨平面移动,用户能够命令执行特定功能,例如:对程序的选择、对音频或视频流的控制、对绘图和图形的创建等。根据使用情况,对对象的运动的控制的精确度将或多或少是重要的。一般而言,当指示器的运动缓慢时(例如当绘图时)需要高精确度,并且当快速运动时(例如当选择项目时)可以是低精确度。因此,对精确度的需要可以连续地变化。如果可以使用随着时间的推移始终提供高精确度的算法,那么当然最好是使用这种算法。然而,实验证据显示,所有的算法都具有优点和缺点。例如,相对指示算法(其中,通过基于指示器的角速度将位移加到先前位置来确定虚拟对象在显示器上的位置)可以随着时间的推移而漂移。相反地,绝对指示算法(其中,根据指示器在显示器的参考坐标系中的姿态得到虚拟对象在显示器上的位置)随着时间的推移比前者更鲁棒,但更不准确。因此可取的是,能够使用这两种算法或其组合以便利用它们的积极特性。以编号US2011/227825公布的美国专利申请讨论了指示算法的组合。根据本公开内容,可以根据应用来选择算法的不同组合。然而,其中并不暗示应当动态并连续地调整这种类型的组合以最佳地匹配对例如精确度的要求的变化。
发明内容
本发明的目的在于通过提供空中指示器来克服这个限制,所述空中指示器可以基于标准被满足而在第一类型的算法、第二类型的算法、以及其组合之间自动并连续地进行切换,从而在任何时刻,空间中的指示器的运动与显示器上的虚拟对象的位置之间的映射的精确度将是最佳可用的。
为此目的,本发明公开了用于控制表面上的虚拟对象的设备,该设备包括:感测能力,其被配置为用于产生由关于设备的一系列同步测量结果所形成的输出,所述测量结果选自包括姿态、位置、其第一导数和第二导数的组;处理能力,其被配置为用于至少在由开始触发事件和结束触发事件的至少其中之一确定的时间窗期间根据感测能力的输出来产生至少第一数据集和第二数据集,每一个数据集代表虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一;所述处理能力还被配置为在所述时间窗期间根据至少第一数据集和第二数据集来产生代表虚拟对象的点的位置和所述虚拟对象的定向的至少其中之一的第三数据集,所述第三数据集被计算为至少第一数据集和第二数据集的加权组合,其中,在时间窗期间,所述组合中的至少第一数据集和第二数据集的权重发生变化。
本发明还公开了用于利用设备控制表面上的虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一的方法,所述方法包括:使用置于设备中的感测能力来产生由一系列同步测量结果形成的输出的步骤,所述测量结果选自包括姿态、位置、其第一导数和第二导数的组;处理感测能力的所述输出以至少在由开始触发事件和结束触发事件的至少其中之一确定的时间窗期间产生至少第一数据集和第二数据集的步骤,每一个数据集代表虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一;所述方法还包括在所述时间窗期间由先前步骤的输出产生代表虚拟对象的点的位置和所述虚拟对象的定向的至少其中之一的第三数据集,所述第三数据集被计算为至少第一数据集和第二数据集的加权组合,其中,在时间窗期间所述组合中的至少第一数据集和第二数据集的权重发生变化。
有利地,基于动态性参数、在系统上运行的应用的变化、设备的操作的相应的开始和结束、按钮按下、以及虚拟对象的位置的其中之一来确定开始触发事件和结束触发事件的至少其中之一。
有利地,根据设备的角速度、设备的平移速度、表面上的虚拟对象的位移速度、以及第一数据集和第二数据集中的至少一部分的至少其中之一来计算动态性参数。
有利地,至少第一数据集和第二数据集的权重的至少其中之一的变化率局限于最大值。
有利地,虚拟对象的点的位置变化d与代表设备的动态性的参数的比例局限于介于最小值与最大值之间的一组值。
有利地,在使所述比例保持在这组值的最小值与最大值之间的同时,至少第一数据集和第二数据集的至少其中之一的权重为最小化和最大化的其中之一。
有利地,第一数据集和第二数据集的其中之一由虚拟对象的点在表面的参考系中的坐标组成,通过将根据代表设备的角速度和平移速度的至少其中之一的测量结果而确定的位移加到点的先前坐标来关于所述先前坐标确定所述坐标。
有利地,第一数据集和第二数据集的其中之一由虚拟对象的点在表面的参考系中的坐标组成,根据代表设备的姿态和位置的至少其中之一的测量结果来确定所述坐标。
有利地,根据与代表设备的所述姿态的矢量的表面的交点来计算所述坐标。
有利地,通过将增益系数应用于相对于参考定向角的设备的定向角并且将所述计算的结果加到表面上的参考点的坐标来计算所述坐标。
有利地:a)第一数据集由虚拟对象的点在表面的参考系中的坐标组成,通过将根据代表设备的角速度和平移速度的至少其中之一的测量结果而确定的位移加到点的先前坐标来关于所述先前坐标确定所述坐标;以及b)第二数据集由虚拟对象的点在表面的参考系中的坐标组成,根据代表设备的姿态和位置的至少其中之一的测量结果来确定所述坐标;以及c)第三数据集是具有权重w的第一数据集与具有权重(1-w)的第二数据集的组合。
有利地,基于第三数据集的位置变化d与基于第一数据集的位置变化drel的比例局限于介于最小值与最大值之间的一组值。
有利地,最小值和最大值取决于动态性参数,所述动态性参数基于设备的角速度、设备的平移速度、以及虚拟对象的位移速度的至少其中之一。
有利地,第一数据集的权重w被选为最小值,对于该最小值,所述比例保持在这组值的最小值与最大值之间。
有利地,时而通过在给定时间段内将第一数据集的权重w减小到预设值来重新计算第三数据集。
有利地,在以下时间的其中之一重新计算第三数据集:当从第一数据集的至少一部分得到的第一值与从第二数据集的至少一部分得到的第二值之间的差超过预设阈值时;当虚拟对象是可见或模糊的其中之一时;以及在给定预设频率下。
本发明还公开了用于执行方法的计算机程序,所述方法用于利用空间中的设备来控制表面上的虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一,所述程序包括:第一模块,其用于使用置于设备中的感测能力来产生由一系列同步测量结果形成的输出,所述测量结果来自包括姿态、位置、其第一导数和第二导数的组;第二模块,其用于处理感测能力的所述输出,以至少在由开始触发事件和结束触发事件的至少其中之一确定的时间窗期间产生至少第一数据集和第二数据集,每一个数据集代表虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一;所述计算机程序还包括第三模块,所述第三模块用于在所述时间窗期间根据第一模块和第二模块的至少其中之一的输出产生代表虚拟对象的点的位置和所述虚拟对象的定向的至少其中之一的第三数据集,所述第三数据集被计算为至少第一数据集和第二数据集的加权组合,其中,在时间窗期间,所述组合中的所述第一数据集和第二数据集的权重发生变化。
本发明还在显示器上的对象的不同控制模式之间的转变中提供足够的平滑度,从而使用户不会注意到任何变化。此外,可以控制转变的速度或其它参数以进一步减小用户在控制模式下注意到转变的可能性。更一般而言,本发明允许针对漂移提高精确映射算法的鲁棒性。
附图说明
根据对各个实施例和以下附图的描述,将更好地理解本发明并且本发明的各种特征和优点将变得显而易见:
图1示出了可以如何使用两种不同的算法来计算表面上的点的位置;
图2示出了两种不同的算法之间的转变的问题;
图3表示根据本发明的多个实施例的两种算法之间的转变,所述转变随着时间的推移而变得平滑;
图4表示根据本发明的多个实施例的两种算法之间的转变,所述转变由指示器的速度进行控制;
图5示出了当由指示器的速度进行控制时在两种算法之间的转变的问题;
图6示出了由两种算法计算出的位置随着时间的推移的两个轨迹;
图7a、7b和7c示出了根据本发明的一些实施例的可以如何通过由第二算法确定的计算结果来修改由第一算法确定的屏幕上的对象的位置;
图8a和8b示出了本发明的实施例,其中,使用了球面伪绝对(spherical pseudo-absolute)指示算法。
具体实施方式
图1示出了可以如何使用两种不同的算法来计算表面上的对象的位置。
设备可以用于控制表面上的对象的运动(位置、定向)。用于这些应用的设备是配备有运动传感器的空中指示器或空中鼠标。一般而言,这些运动传感器是加速度计和陀螺测试仪,但也可以包括磁力计。设备也可以采用如同WiiMoteTM的游戏界面的形式。也可以使用智能电话,因为它们现在越来越普遍地配备有合乎需要的运动传感器,并且用户只需要运行适当的应用以将电话作为指示器使用。这些设备的基本操作原理是,传感器确定空间中的设备的运动参数,并且处理器继而将这些运动参数映射到表面上的对象(例如显示器上的光标)的位置/运动数据中。
感测设备包括电源和到控制器或基站的运动信号的传输信道,所述控制器或基站控制/显示表面上的对象的位置。可以利用蓝牙波形和协议或利用Wi-Fi波形和协议(标准802.11g)来实现射频传输。可以通过红外线或通过射频来执行传输。可以通过嵌入在设备本身中、或嵌入到基站中或分布在设备与基站之间的计算模块来产生所传输的信号。设备至少包括应对传感器的一些处理的计算模块。
这个计算模块包括微处理器,例如:用于就计算时间而言要求最高的应用的DSPTexas Instruments TMS320VC5509;或具有ARM核的32位微控制器,例如来自STR9族的那些微控制器的其中之一,尤其是来自STM的STR9F12FAW32。计算模块还优选地包括:闪速存储器,其是存储要执行的代码、闪速存储器需要的永久性数据所必需的;以及动态工作存储器。计算模块接收来自不同传感器的输出作为输入。在一方面,角速度传感器具有关于两个或三个轴测量设备的旋转的功能。这些传感器优选地是陀螺测试仪。所述陀螺测试仪可以是双轴陀螺测试仪或三轴陀螺测试仪。例如可以使用由Analog Devices提供的具有参考标号ADXRS300的陀螺测试仪。但是能够测量角速率或速度的任何传感器都是可用的。
也可以使用磁力计并且使用它们相对于地磁场的位移的测量结果来确定相对于这个场的参考系的旋转。例如可以使用来自Honeywell公司的具有参考标号HMC1001或HMC1052或来自NXP公司的具有参考标号KMZ41的磁力计。优选地,所述传感器的其中之一是三轴加速度计。有利地,可选地在同一个电路(例如来自Analog Devices的参考加速度计ADXL103、来自ST MicroElectronics的LIS302DL、来自Melixis的参考陀螺测试仪MLX90609、来自Analog Devices的ADXRS300)内,由MEMS(微机电系统)技术生产这两种传感器。所使用的陀螺仪可以是Epson XV3500品牌的陀螺仪。
可以将不同的传感器组合到具有三个加速度计(A)轴、三个陀螺测试仪(G)轴、以及三个磁力计(M)轴的“3A3G3M”设备中。这种类型的传感器组合允许典型的IMU(惯性测量单元)进行处理,这使输送动态角测量变成可能。这种设备可以输送平滑的运动信息,甚至是对于快速运动或在存在对磁场产生干扰的黑色金属的情况下。
用于将空间中的设备的运动映射到表面上的对象的运动中的算法可以是以下两种类型的其中之一:
-绝对指示,其中,对象在表面的参考系(X,Y)中的位置直接关联到指示设备的定向/位置。这意味着每当用户将指示设备保持在某个定向/位置上时,对象的定向/位置是相同的。最直接的示例是充当激光指示器的指示器,其中,对象上的点的位置和设备的指示轴与表面的交点一致。另外,例如通过由设备的滚转角进行控制,可以根据设备的姿态来推断表面上的对象的定向。因此,在绝对指示算法中,指示设备的姿态被转换成表面上的对象的位置(以及可能地,定向)。
-相对指示,其中,由空中指示器的运动来控制对象关于先前位置的位移。相对指示的最有名的示例是计算机鼠标。在鼠标的空中指示器形式中,角速度(在横摇和俯仰方向上)被转换成光标位移Δx和Δy。如在绝对指示的情况下,也可以采用相对方式根据指示器的运动来控制对象的定向。
相对指示比绝对指示更加精确,因为相对指示是指示器的运动到光标的位移的简单转换。相对指示常常在很大程度上基于可以具有高精确度的陀螺测试仪传感器。然而,因为没有绝对参考,所以如果在长时间内使用相对指示算法,那么小误差的积累会导致位置的漂移。
在另一方面,绝对指示较不精确,因为对指示设备的确切姿态的计算更加复杂。另外,包含了可能较不准确的更多传感器,例如加速度计和磁力计。然而,不存在如在相对算法中那样的误差的累积,因此位置不会随着时间的推移而发生漂移。
这两种指示算法都具有它们的优点和弱点,并且因此可取的是,在当它们各自的质量最好地适合于用户的即时要求时的时刻,能够交替地使用相对指示和绝对指示。
如图1所示,这将意味着例如当指示器的运动缓慢时,即当需要高精确度时,使用相对指示算法110或ALGO1,并且当精确度不是强制性的时候,例如当指示器快速运动时,使用绝对指示算法120或ALGO2。
因此可取的是,根据以例如运动的动态性为特征的因素,能够使用两个所计算的位置P1(111)和P2(121)来确定对象的位置。可以采用多种方式,尤其是通过计算设备的角速度的范数或光标的位移速度的范数来描述动态性的特征。
图2示出了这两种算法之间的转变的问题。对两种不同算法的使用的缺点是,如果在从ALGO1(210)转变到ALGO2(220)时,所计算的位置P1和P2则是不相同的,表面上的对象的位置将从P1突然变化到P2。
这在时间t1(230)处的算法间的转变期间在绘出点与时间相比的一个坐标的图表上由两个不同的纵坐标240和250示出。
当这两个值240和250非常不同时,对象将在t1发生跳跃,这从用户体验的角度来看是不可接受的并且必须被校正。
图3表示根据本发明的多个实施例的两种算法之间的转变,所述转变随着时间的推移而变得平滑。
为了避免关于图2所提到的问题并且掩盖位置上的任何差异,ALGO1与ALGO2之间的切换在某个时间段内应当是平滑转变。这意味着屏幕上的实际光标位置应当是具有权重w1的位置P1与具有权重w2的位置P2的组合:
P=w1·P1+w2·P2 [1]
其中,w1+w2=1
权重w1和w2将在转变时间窗期间发生变化,以w1=1和w2=0开始并且以w1=0和w2=1结束。图3示出了在t1(310)与t2(320)之间的转变的示例,其中,使用了两个位置的线性组合。较高阶的转变可以用于甚至更平滑的转变。在该示例中,对于t≤t1,我们有w1=1和w2=0;并且对于t≥t2,我们有w1=0和w2=1。
可以始终使用这两种算法来计算位置,但是当对于t≤t1仅需要ALGO1时,给予ALGO2权重w2=0,并且当对于t≥t2仅需要ALGO2时,给予ALGO1权重w1=0。然而,为了避免不必要的计算并且节省处理能力,我们也可以只使用实际上所需的算法来计算位置,即在转变期间使用两种算法,但只对t≤t1执行ALOG1并且只对t≥t2执行ALGO2。
图4表示根据本发明的多个实施例的两种算法之间的转变,所述转变由指示器的速度进行控制。
在算法之间进行切换的决定和转变的开始或结束可以取决于几种不同类型的触发因素,例如:动态性、屏幕位置、时间、或应用管理。如以上所讨论的,对相对指示算法和绝对指示算法的使用可以取决于设备的运动的动态性,其中,在低速(低动态性)下优选相对指示算法,并且绝对指示算法最适合于高速(高动态性)。这意味着应当由速度来控制算法之间的转变。可以根据由算法计算出的光标位移或位置变化来得到动态性或速度。替代地,可以使用不同的传感器(例如陀螺测试仪或加速度计)从设备的角运动或横向运动直接得到速度。图4示出了这种组合的示例,其中,ALGO1是相对指示算法并且ALGO2是绝对指示算法,并且速度v1(410)和v2(420)被用作用于转变的开始和结束的触发因素。
因此,权重w1和w2取决于速度v:
P=w1(v)·P1+w2(v)·P2 [2]
在时间t由绝对指示算法计算出的位置被称为Pabs(t)。相对指示算法不会产生位置,但相反地,位置变化被称为ΔPrel(t)。基于相对位置算法的位置是在时间t-1的先前所计算的位置和该位置变化的总和:
Prel(t)=P(t-1)+ΔPrel(t) [3]
相对指示算法与绝对指示算法的组合产生:
P(t)=wrel(v)·Prel+wabs(v)·Pabs(t) [4]
或者
P(t)=wrel(v)·(P(t-1)+ΔPrel(t))+wabs(v)·Pabs(t) [5]
如关于图3所讨论的,这两种算法都可以始终起作用,因为由权重控制它们对位置的贡献。替代地,ALGO1可能对高于v2的速度不起作用,并且ALGO2可能对低于v1的速度不起作用。
图5示出了当由指示器的速度进行控制时在两种算法之间的转变的问题。
转变的持续时间取决于用户将速度从v1改变到v2所花费的时间。对于大的加速度或减速度,转变将是快速的。如关于图2所讨论的,如果在由两种算法计算出的位置中存在差异,那么太快的转变可能被用户感知为光标位置的跳跃。
图5的示例示出了当达到v1时在t1开始转变,但是由于在t2(510)已经达到了大的加速度v2,这将导致可能对用户可见的非常短的转变。为了避免这个问题,转变应具有确定的持续时间和最大转变速率,从而即使在t2快速达到v2,也不会在t3之前完成转变。
避免太快的转变的一种方式是将最大值设置为权重w1和w2的时间变化:
权重的最大变化可能取决于在由ALGO1和ALGO2计算出的两个位置中的差异。如果这个差异小,在转变期间所覆盖的距离则小,并且因此dw/dt可以是高的。
作为变体,低通滤波器(例如,巴特沃斯滤波器)可以被应用于权重以避免转变太快。
图6示出了由两种算法计算出的位置随着时间的推移的两个轨迹。
转变的方向(ALGO1到ALGO2或ALGO2到ALGO1)也可以影响转变为平滑的可能性。例如,如果用户在相当长的一段时间内使用相对算法,那么所计算的位置可以从实际位置漂移。因此,如下所述,当向绝对算法进行转变时,在转变期间必须小心,以对所获得的漂移进行平滑地校正。另一方面,当从绝对算法到相对算法进行转变时,不需要这种漂移校正,并且因此转变可以是快速的(或瞬时的)。
在转变期间的运动的方向应当是不固定的,这意味着不应当存在方向上的突然变化。图6显示了在不同时间(t0-t5)由ALGO1和ALGO2确定的屏幕上的对象的位置。对于这两种算法,dx/dt和dy/dt是正的。在这种情况下,根据ALGO2的位置落后。在时间t2(610)与t3(620)之间发生的转变期间,由于ALGO2落后的事实而颠倒光标的运动的方向。
为了避免在从相对方法到绝对方法的转变期间方向的突然跳跃或颠倒,我们可以使用位置的导数dP/dt。考虑位置P:
P=w·Prel+(1-w)·Pabs [7]
及其导数:
将标志d用于导数dP/dt,则方程可以被重写为:
d=w·drel+(1-w)·dabs [8b]
可以由drel表示用户通过移动设备来移动光标的方向,而可以由d表示屏幕上的光标的运动。为了确保平滑转变,这两个导数不应当相差太多,使得用户对他或她在屏幕上看到的东西(d)和他或她赋予设备的运动(drel)具有一致的感知。例如,我们可以将这些导数的比例强制保持在预设限制内:
此处,我们对上限和下限使用β,但它们不一定是相同的。仅通过示例的方式,我们可以将参数设置为β=0.2。参数β也可以取决于速度,其中,对于低速,我们有小β,并且对于高速,我们使用较大的β,因此允许drel与d之间的较大差异。权重w适合于满足这个条件并且在某种程度上控制转变以保证不会发生方向的突然变化。将方程8b与方程9a组合,给出:
这意味着一旦确定了比例dabs/drel,就可以得到为了保持在由β设置的限制内的权重w的允许的范围。通过应用适当的增益,可以根据陀螺测试仪直接确定导数drel,并且可以使用在时间t根据绝对算法的位置和在时间(t-1)的先前(组合)位置P来计算dabs:
使用如在方程9a中引入的导数d/drel的比例,我们也可以采用不同的方式处理在高速与低速度之间平滑转变的问题。原则上,我们想要的是,位置总是接近于由绝对算法(无漂移)计算出的位置,并且光标的运动对应于设备的由用户赋予其的运动。这意味着我们想要在仍然保持应用于导数的比例(见方程[9a]和[9b])的限制条件的同时具有尽可能小的权重w(见方程[7])。
在该方法中,我们继续改变绝对算法和相对算法的贡献,并且通过确定在每个时间点的导数drel和dabs并如上所讨论地计算比例dabs/drel来开始。接下来,我们将所确定的比例dabs/drel插入方程[9b]中并且找到将满足由β设置的条件的最小权重w。这按照需要使绝对算法的贡献最大化。参数β可以被设置为固定值或可以取决于速度,例如对于更高的准确度,在低速下β更小。在后一种情况下,可以在解决条件之前使用drel来确定β。继而,可以在方程(7)中使用所得到的权重w,以在仍然满足由方程(9a)施加的导数条件的同时确定尽可能接近绝对位置Pabs(t)的实际位置P(t),使得屏幕上的位置变化与用户的运动一致。
对于不同的x轴和y轴,还可以独立地执行计算。这意味着可以为每个轴确定导数drel和dabs,从而为每个轴产生不同的权重。因此,对于不同的轴,相对算法和绝对算法的贡献可以不同。
可以由不同类型的触发因素来控制两种算法的连续变化的上述模式和在两种算法之间的转变的上述模式。例如,某些应用可能需要这种模式,并且可以分别由应用的开始和结束来给出开始触发因素和结束触发因素。用户也可以例如通过按下按钮来(手动地)给出该模式的开始触发因素和结束触发因素。替代地,可以由用户开始和停止使用遥控器来给出开始触发因素和结束触发因素。
图7a、7b和7c示出了根据本发明的一些实施例的可以如何通过由第二算法确定的计算结果来修改由第一算法确定的屏幕上的对象的位置。
到目前为止,我们已经描述了意在确保不存在被用户感知的突然的转变的解决方案。然而,可能发生的是,用户将遥控器指向屏幕的边界之外。在这种情况下,将不显示光标。
图7a表示屏幕和由相对指示算法Prel(710a)和绝对指示算法Pabs(720a)计算出的位置。光标不可见的事实可以用于校正可能在相对算法的执行期间累积的任何误差,并且使相对位置与绝对位置重新对齐。这意味着Prel被设置为等于Pabs。当虚拟光标离屏幕边界某个距离时,应当完成这个重新对齐,以便避免当用户只是短暂地退出屏幕时的光标位置的跳跃。
可以在光标不可见或模糊的任何情况下执行不同算法之间的重新对齐。这意味着在图形界面(其中,当用户跨过图标移动虚拟光标时加亮图标而不加亮光标)中,当两个位置(相对的和绝对的)都在图标区域(如在图7b上所示的)内(或之外)时可以应用重新对齐原理。在任何情况下,当由于转变而产生的位置变化引起进入或离开被加亮的区域(如在图7c上所示的)时,应当避免重新对齐。
在以上示例中,由速度的变化触发转变。类似的转变也可以用于校正某些算法的累积误差。例如,如果相对算法用于较长的时间段,那么漂移可以利用绝对算法来连续地增加差异。为了避免差异变得太大,系统可以监测算法之间的差异并且执行校正/转变,以例如在不被用户注意的情况下使相对位置与绝对位置重新对齐。
在以上描述中,我们并未讨论如何执行绝对指示,因为所述算法起作用不是本发明的要旨;本发明将独立于绝对位置的计算的方法而进行工作。例如,我们可以使用球面伪绝对算法,其中,设备的横摇和俯仰在应用增益之后被直接转换成x和y位置。
图8a和8b示出了本发明的实施例,其中,使用了球面伪绝对指示算法。
图8a示出了一个维度中的遥控器810a和屏幕820a,其中,球面由圆表示。在初始位置处,遥控器处于角α0(830a),角α0(830a)对应于屏幕上的位置x0(840a)。当遥控器旋转到角α1(850a)时,屏幕上的位置变成x1(860a)。注意,遥控器不一定充当激光指示器,因为方向α1不会直接指向位置x1。根据下式,位置取决于增益g:
x1-x0=g*(α1-α0) [11]
如图8b中所示,在初始位置上,遥控器810b不必与屏幕820b的位置对齐。每当用户使遥控器处于定向α0(830b)或α1(850b)时,屏幕上的位置分别是x0(840b)或x1(860b),从这个意义上来说指示是绝对的。因为指示不像激光指示器一样是绝对的,我们将这个方法称为伪绝对的。
可以由系统设置初始或参考定向α0与初始或参考位置x0之间的关系。例如,当启动设备时设备的定向α0指的是位置x0,例如屏幕的中心或角。替代地,可以由用户设置关系(例如通过按下遥控器上的按钮),从而指示按钮按下的时刻的定向α0指的是位置x0。
可以使用包括加速度计、陀螺测试仪和磁力计(AGM)的9轴设备来计算绝对位置,其中,磁力计轴用于绝对横摇参考。然而,只具有带有限扰动(漂移和噪声)的加速度计和陀螺测试仪(AG)的系统也将很好地工作。加速度计可以用于横摇补偿和运动的从设备的参考系到显示器的参考系的转换。
在以上描述中,我们聚焦于算法的类型取决于光标/指示设备的速度的事实。不同的应用也可能需要不同的算法。因此,当改变应用并且从而改变算法时,平滑的转变也是优选的。
在本说明书中所公开的示例只是对本发明的一些实施例的说明。它们并不以任何方式限制由所附权利要求限定的所述发明的范围。
Claims (18)
1.一种用于控制表面上的虚拟对象的设备,包括:
感测能力,所述感测能力被配置为用于产生由关于所述设备的一系列同步测量结果所形成的输出,所述测量结果选自包括姿态、位置、其第一导数和第二导数的组;
处理能力,所述处理能力被配置为用于至少在由开始触发事件和结束触发事件(310、320)的至少其中之一确定的时间窗期间根据所述感测能力的所述输出产生至少第一数据集和第二数据集(111、121),所述第一数据集和所述第二数据集中的每一个数据集代表所述虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一;
所述处理能力还被配置为在所述时间窗期间根据所述至少第一数据集和第二数据集来产生代表所述虚拟对象的点的位置和所述虚拟对象的定向的至少其中之一的第三数据集,所述第三数据集被计算为所述至少第一数据集和第二数据集的加权组合,其中,在所述时间窗期间,所述组合中的所述至少第一数据集和第二数据集的权重发生变化。
2.一种用于利用设备来控制表面上的虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一的方法,所述方法包括:
使用置于所述设备中的感测能力来产生由一系列同步测量结果所形成的输出的步骤,所述测量结果选自包括姿态、位置、其第一导数和第二导数的组;
处理所述感测能力的所述输出以至少在由开始触发事件和结束触发事件的至少其中之一确定的时间窗期间产生至少第一数据集和第二数据集的步骤,所述第一数据集和所述第二数据集中的每一个数据集代表所述虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一;
所述方法还包括在所述时间窗期间根据先前步骤的所述输出产生代表所述虚拟对象的点的位置和所述虚拟对象的定向的至少其中之一的第三数据集,所述第三数据集被计算为所述至少第一数据集和第二数据集的加权组合,其中,在所述时间窗期间,所述组合中的所述至少第一数据集和第二数据集的权重发生变化。
3.根据权利要求2所述的方法,其中,基于动态性参数、在系统上运行的应用的变化、所述设备的操作的相应的开始和结束、按钮按下、以及所述虚拟对象的位置的其中之一来确定所述开始触发事件和所述结束触发事件的至少其中之一。
4.根据权利要求3所述的方法,其中,根据所述设备的角速度、所述设备的平移速度、所述表面上的所述虚拟对象的位移速度、以及所述第一数据集和所述第二数据集中的至少一部分的至少其中之一来计算所述动态性参数。
5.根据权利要求2到4中的一项所述的方法,其中,所述至少第一数据集和第二数据集的所述权重的至少其中之一的变化率局限于最大值。
6.根据权利要求2到4中的一项所述的方法,其中,所述虚拟对象的点的位置d的变化与代表所述设备的动态性的参数的比例局限于介于最小值与最大值之间的一组值。
7.根据权利要求6所述的方法,其中,在使所述比例保持在所述组值的所述最小值与所述最大值之间的同时,所述至少第一数据集和第二数据集的至少其中之一的所述权重为最小化和最大化的其中之一。
8.根据权利要求2到7中的一项所述的方法,其中,所述第一数据集和所述第二数据集的其中之一由所述虚拟对象的点在所述表面的参考系中的坐标组成,通过将根据代表所述设备的角速度和平移速度的至少其中之一的测量结果而确定的位移加到所述点的所述先前坐标来关于所述先前坐标确定所述坐标。
9.根据权利要求2到7中的一项所述的方法,其中,所述第一数据集和所述第二数据集的其中之一由所述虚拟对象的点在所述表面的参考系中的坐标组成,根据代表所述设备的所述姿态和所述位置的至少其中之一的测量结果来确定所述坐标。
10.根据权利要求9所述的方法,其中,根据与代表所述设备的所述姿态的矢量的表面的交点来计算所述坐标。
11.根据权利要求9所述的方法,其中,通过将增益系数应用于所述设备的相对于参考定向角的定向角并且将所述计算的结果加到所述表面上的参考点的坐标来计算所述坐标。
12.根据权利要求2所述的方法,其中:a)所述第一数据集由所述虚拟对象的点在所述表面的参考系中的坐标组成,通过将根据代表所述设备的角速度和平移速度的至少其中之一的测量结果而确定的位移加到所述点的先前坐标来关于所述先前坐标确定所述坐标;以及b)所述第二数据集由所述虚拟对象的点在所述表面的参考系中的坐标组成,根据代表所述设备的所述姿态和所述位置的至少其中之一的测量结果来确定所述坐标;以及c)所述第三数据集是具有权重w的所述第一数据集与具有权重(1-w)的所述第二数据集的组合。
13.根据权利要求12所述的方法,其中,基于所述第三数据集的位置变化d与基于所述第一数据集的位置变化drel的比例局限于介于最小值与最大值之间的一组值。
14.根据权利要求13所述的方法,其中,所述最小值和所述最大值取决于动态性参数,所述动态性参数基于所述设备的角速度、所述设备的平移速度、以及所述虚拟对象的位移速度的至少其中之一。
15.根据权利要求13到14中的一项所述的方法,其中,所述第一数据集的所述权重w被选为最小的值,对于所述最小的值,所述比保持在所述组值的所述最小值与所述最大值之间。
16.根据权利要求12所述的方法,其中,时而通过在给定时间段内将所述第一数据集的所述权重w减小到预设值来重新计算所述第三数据集。
17.根据权利要求16所述的方法,其中,在以下时间的其中之一重新计算所述第三数据集:当从所述第一数据集的至少一部分得到的第一值与从所述第二数据集的至少一部分得到的第二值之间的差超过预设阈值时;当所述虚拟对象是可见或模糊的其中之一时;以及在给定预设频率下。
18.一种用于执行方法的计算机程序,所述方法用于利用空间中的设备来控制表面上的虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一,所述程序包括:
第一模块,所述第一模块用于使用置于所述设备中的感测能力来产生由一系列同步测量结果所形成的输出,所述测量结果来自包括姿态、位置、其第一导数和第二导数的组;
第二模块,所述第二模块用于处理所述感测能力的所述输出,以至少在由开始触发事件和结束触发事件的至少其中之一确定的时间窗期间产生至少第一数据集和第二数据集,所述第一数据集和所述第二数据集中的每一个数据集代表所述虚拟对象的定向和位置、其第一导数和第二导数的至少其中之一;
所述计算机程序还包括第三模块,所述第三模块用于在所述时间窗期间根据所述第一模块和所述第二模块的至少其中之一的输出来产生代表所述虚拟对象的点的位置和所述虚拟对象的定向的至少其中之一的第三数据集,所述第三数据集被计算为所述至少第一数据集和第二数据集的加权组合,其中,在所述时间窗期间,所述组合中的所述第一数据集和所述第二数据集的权重发生变化。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13306334.7A EP2853992A1 (en) | 2013-09-27 | 2013-09-27 | Air pointer with improved user experience |
EP13306334.7 | 2013-09-27 | ||
PCT/EP2014/070619 WO2015044345A1 (en) | 2013-09-27 | 2014-09-26 | Air pointer with improved user experience |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106062680A true CN106062680A (zh) | 2016-10-26 |
Family
ID=49448069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480058531.4A Pending CN106062680A (zh) | 2013-09-27 | 2014-09-26 | 具有改进的用户体验的空中指示器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10331240B2 (zh) |
EP (1) | EP2853992A1 (zh) |
KR (1) | KR101840151B1 (zh) |
CN (1) | CN106062680A (zh) |
WO (1) | WO2015044345A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3035718B1 (fr) | 2015-04-28 | 2017-05-26 | Centre Nat Detudes Spatiales Cnes | Procede de controle d'un dispositif de calcul via un element mobile et systeme de controle mettant en oeuvre ce procede |
US10156907B2 (en) * | 2015-12-14 | 2018-12-18 | Invensense, Inc. | Device for analyzing the movement of a moving element and associated method |
US20220404915A1 (en) * | 2021-06-16 | 2022-12-22 | Joshua D. Chapman | Human computer interface system that corrects for shaky input |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100194687A1 (en) * | 2005-05-27 | 2010-08-05 | Sony Computer Entertainment Inc. | Remote input device |
CN101881617A (zh) * | 2009-05-06 | 2010-11-10 | 鼎亿数码科技(上海)有限公司 | 陀螺仪空间定位方法 |
CN102099814A (zh) * | 2008-07-01 | 2011-06-15 | 希尔克瑞斯特实验室公司 | 3d定位器映射 |
CN102473060A (zh) * | 2010-05-18 | 2012-05-23 | 松下电器产业株式会社 | 坐标决定装置、坐标决定方法以及坐标决定程序 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100846761B1 (ko) * | 2001-09-11 | 2008-07-16 | 삼성전자주식회사 | 포인터 표시방법, 그 포인팅 장치, 및 그 호스트 장치 |
TW200928905A (en) * | 2007-12-26 | 2009-07-01 | E Lead Electronic Co Ltd | A method for controlling touch pad cursor |
US8300020B2 (en) * | 2008-08-15 | 2012-10-30 | Apple Inc. | Hybrid inertial and touch sensing input device |
JP5434638B2 (ja) * | 2010-01-29 | 2014-03-05 | ソニー株式会社 | 情報処理装置および情報処理方法 |
-
2013
- 2013-09-27 EP EP13306334.7A patent/EP2853992A1/en not_active Withdrawn
-
2014
- 2014-09-26 KR KR1020167011186A patent/KR101840151B1/ko active IP Right Grant
- 2014-09-26 US US15/025,474 patent/US10331240B2/en active Active
- 2014-09-26 CN CN201480058531.4A patent/CN106062680A/zh active Pending
- 2014-09-26 WO PCT/EP2014/070619 patent/WO2015044345A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100194687A1 (en) * | 2005-05-27 | 2010-08-05 | Sony Computer Entertainment Inc. | Remote input device |
CN102099814A (zh) * | 2008-07-01 | 2011-06-15 | 希尔克瑞斯特实验室公司 | 3d定位器映射 |
CN101881617A (zh) * | 2009-05-06 | 2010-11-10 | 鼎亿数码科技(上海)有限公司 | 陀螺仪空间定位方法 |
CN102473060A (zh) * | 2010-05-18 | 2012-05-23 | 松下电器产业株式会社 | 坐标决定装置、坐标决定方法以及坐标决定程序 |
Also Published As
Publication number | Publication date |
---|---|
KR20160105767A (ko) | 2016-09-07 |
US10331240B2 (en) | 2019-06-25 |
US20160216775A1 (en) | 2016-07-28 |
EP2853992A1 (en) | 2015-04-01 |
WO2015044345A1 (en) | 2015-04-02 |
KR101840151B1 (ko) | 2018-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10545579B2 (en) | Remote control with 3D pointing and gesture recognition capabilities | |
CN102246125B (zh) | 具有运动姿态识别的移动设备 | |
EP2353064B1 (en) | Method and device for inputting force intensity and rotation intensity based on motion sensing | |
EP2939402B1 (en) | Method and device for sensing orientation of an object in space in a fixed frame of reference | |
CN103309608A (zh) | 突出显示驱动的手势用户界面的视觉反馈 | |
CN111278517B (zh) | 用户输入设备中控制机构的校准偏置 | |
EP3649622A1 (en) | Interactive input controls in a simulated three-dimensional (3d) environment | |
CN105242780B (zh) | 一种交互控制方法和装置 | |
CN102024316B (zh) | 一种无线智能感测方法、装置及系统 | |
EP3426364B1 (en) | Mechanical center calibration of control sticks in user input devices | |
CN106062680A (zh) | 具有改进的用户体验的空中指示器 | |
CN106525071A (zh) | 一种运动状态监测方法及装置 | |
CN106775093A (zh) | 一种触屏操作控制方法与装置 | |
US20130234940A1 (en) | Pointing Device, Operating Method Thereof and Relative Multimedia Interactive System | |
CN111330214B (zh) | 一种vr跑步机的安全防护方法、系统及可读存储介质 | |
JP2014085816A (ja) | プログラム、情報処理装置、情報処理方法および情報処理システム | |
CN102981646B (zh) | 姿态感知设备输出控制方法、显示控制方法及装置、系统 | |
CN105797348B (zh) | 一种检测物体运动类型的方法及穿戴式电子设备 | |
CN102306054A (zh) | 姿态感知设备及其定位、鼠标指针的控制方法和装置 | |
CN111078029A (zh) | 空中鼠标信息确定方法、装置、设备及存储介质 | |
CN107688348A (zh) | 一种实现指向控制功能的无线人机交互设备和方法 | |
CN107168522A (zh) | 控制应用的方法、装置及虚拟现实设备 | |
TWI522848B (zh) | 手持式指向裝置以及其游標定位方法 | |
ES2716012A1 (es) | Sistema y metodo de interaccion en entornos virtuales utilizando dispositivos hapticos | |
Jin et al. | Online motion pattern recognition of finger gesture by inertial sensor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161026 |
|
WD01 | Invention patent application deemed withdrawn after publication |