CN104620189B - 具有微机电***运动传感器的移动设备硬件姿态检测实现 - Google Patents
具有微机电***运动传感器的移动设备硬件姿态检测实现 Download PDFInfo
- Publication number
- CN104620189B CN104620189B CN201380033538.6A CN201380033538A CN104620189B CN 104620189 B CN104620189 B CN 104620189B CN 201380033538 A CN201380033538 A CN 201380033538A CN 104620189 B CN104620189 B CN 104620189B
- Authority
- CN
- China
- Prior art keywords
- sensor
- application
- processor
- determining
- processed
- 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
Images
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B19/00—Alarms responsive to two or more different undesired or abnormal conditions, e.g. burglary and fire, abnormal temperature and abnormal rate of flow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/1633—Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
- G06F1/1684—Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
- G06F1/1694—Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
-
- 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/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
公开了用于检测设备的姿态的***和方法。该***包括处理***,该处理***至少包括区分开的传感器处理器和应用处理器。该***还包括存储器***,该存储器***包括一个或多个计算机可读介质。计算机可读介质包含指令,这些指令如果被处理***执行则使得***执行操作。操作包括利用应用处理器来执行应用,并且利用传感器处理器从一个或多个传感器接收原始传感器读数。操作还包括利用传感器处理器确定包括姿态数据的经处理传感器度量,以及向应用发送经处理传感器度量。
Description
技术领域
本公开涉及用于例如在移动设备中感测和监视***姿态(attitude)的***和方法。
背景技术
移动设备可配备有各种传感器,例如加速度计、陀螺仪以及磁场传感器,等等。传感器经常被制作为尺寸较小,以便适合装入由移动设备提供的小封装内。这些传感器至少从功能角度来看可能实质上是更大、更传统的电传感器和/或机电传感器的微型化版本,并且可被称为微机电***(micro electro-mechanical system,MEMS)或者作为MEMS的一部分。
在移动设备上执行的应用可与传感器通过接口连接并且从其获得传感器数据,例如前进方向、位置和/或角加速度或线加速度。在操作期间,应用可接收并转化原始传感器读数以基于预定的校准数据或其他转化算法来确定移动设备的姿态。这种经处理的信息可在应用中用于多种目的,例如确定设备前进的方向(例如,携带着电话的用户的行走方向),或者输入指令,例如通过倾斜设备来向左或右移动光标,或者通过操纵设备的姿态(例如,通过摇晃设备)来提供命令、调用功能,等等。
然而,在当前的传感器数据获取技术中存在缺点,尤其是当在室内使用时更是如此。设备在室内的前进方向可至少部分利用磁(例如罗盘)信息来确定;然而,这种信息的准确性对于环境磁场——例如由附近的电流产生的磁场——是敏感的。这种附近的电流在室内使用时是常见的,导致了传感器准确性的降低。
另一种确定前进方向的方式使用陀螺仪和加速度计。然而,陀螺仪和/或线加速度信息可能迅速变化,并且要求频繁的刷新。另外,为了维持可接受的反馈响应时间,传感器的轮询率经常是较高的。然而,当与更大的计算设备比较时,移动设备上的处理资源通常是稀少的,这至少部分是由于减小的尺寸和/或有限的电力供应。因此,在运行应用和提供高频率采样之间共享处理器可导致严重的更新延迟时间。
因此,当前的***遭受着较高的更新延迟时间、缓慢的响应时间和有限的准确性中的一者或多者。于是,需要改进的***和方法来检测移动设备的姿态。
发明内容
本公开的实施例可提供一种用于检测设备的姿态的由计算机实现的方法。该方法包括利用应用处理器来执行应用,并且将该应用向传感器处理器注册为收听者。应用处理器和传感器处理器是区分开的。另外,注册包括发送包括收听者参数的请求,收听者参数包括满足触发事件的一个或多个条件和姿态数据的规定类型。该方法还包括激活布置在设备中并被配置为检测一个或多个姿态变量的一个或多个传感器,并且利用传感器处理器从一个或多个传感器接收原始传感器读数。该方法还包括利用传感器处理器从原始传感器读数确定经处理传感器度量,并且确定何时满足触发事件。该方法还包括响应于确定满足触发事件,向应用发送事件通知。
本公开的实施例还提供了一种存储计算机程序的计算机可读介质,该计算机程序当被设备执行时使得该设备执行操作的序列。操作包括利用设备中包括的应用处理器来执行应用,并且利用设备中包括的传感器处理器从设备中包括的一个或多个传感器获取原始传感器读数。传感器处理器和应用处理器是与彼此区分开的。操作还包括利用传感器处理器从原始传感器读数确定经处理传感器度量,并且将经处理传感器度量发送给执行应用的应用处理器。
本公开的实施例还可提供一种***。该***包括处理***,该处理***至少包括传感器处理器和应用处理器,其中传感器处理器和应用处理器是区分开的。该***还包括存储器***,该存储器***包括一个或多个计算机可读介质。计算机可读介质包含指令,这些指令如果被处理***执行则使得***执行操作。操作包括利用应用处理器来执行应用,并且利用传感器处理器从一个或多个传感器接收原始传感器读数。操作还包括利用传感器处理器确定包括姿态数据的经处理传感器度量。操作还包括向应用发送经处理传感器度量。
附图说明
并入在本说明书中并构成本说明书的一部分的附图示出了本教导的实施例并且与描述一起用于说明本教导的原理。附图中:
图1根据实施例示出了设备的简化透视图。
图2根据实施例示出了可包括在设备中的***的示意图。
图3根据实施例示出了用于检测设备的姿态的一种方法的流程图。
图4根据实施例示出了用于检测设备的姿态的另一种方法的流程图。
具体实施方式
以下详细描述参考附图。每当方便时,在附图和以下描述中就使用相同的标号来指称相同或相似的部件。虽然本文描述了本公开的若干个示范性实施例和特征,但在不脱离本公开的精神和范围的情况下,修改、适应性改变和其他实现方式是可能的。因此,以下详细描述不限制本公开。而是,本公开的恰当范围由权利要求来限定。
大体上参考图1和图2,其中示出了设备100和可在设备100中实现的***200。***200提供了应用处理器205和传感器处理器230,两者在功能上、结构上和/或操作上可以是区分开的。应用处理器205可被配置为执行移动应用(“移动app”)207,而传感器处理器230可被配置为从一个或多个姿态传感器210A-D获取指示设备100的姿态的数据,这将在下文更详细描述。另外,传感器处理器230可以把从姿态传感器210A-D获取的数据处理成经处理的传感器度量235,这些经处理的传感器度量235可易于被移动app 207使用。通过提供这种分开的处理器205、230,***200可能够以相对高的频率并且随着时间的流逝获取和处理来自传感器210A-D的数据,从而提高姿态确定的准确性,而不增加移动app 207的执行中的延迟时间。
现在更详细参考附图,图1根据实施例示出了设备100的一个示例。当在本文中使用时,术语“设备”可以指能够支持如本文所述的功能和数据处理技术的任何类型的移动或单机设备,包括硬件和软件的任何组合。例如,设备可以是移动电话、平板设备、笔记本设备、个人数字助理(personal data assistant,PDA),等等。
在至少一个实施例中,设备100可被配置为如图所示被手持,或者以其他方式能够在一个或多个线性方向和/或旋转方向上自由移动或被移动。因此,设备100可定位为多种“姿态”。当在本文中使用时,“姿态”包括任何方位和/或运动信息。例如,姿态可包括俯仰(pitch)、滚转(roll)、偏航(yaw)、前进方向、高度、线速度、角速度、线加速度、角加速度或者任何其他类似的变量。设备100可包括如下文将要描述的能够感测这种姿态变量中的一个或多个的传感器,以及能够接收并处理来自传感器的原始数据的一个或多个处理器。根据用户的请求,例如,设备100可将这种信息用于多种目的,例如确定设备100的用户的位置或方向,用户的速度或加速度,或者可确定通过用户调整(例如,倾斜、摇晃,等等)设备100的姿态而输入的物理输入。这种姿态信息可用于向设备100执行的移动应用提供输入和/或调适来自设备100执行的移动应用的输出。
图2示出了可在设备100中实现并且可被配置为感测并处理姿态数据的***200的示意图。如上所述,***200可包括应用处理器205,应用处理器205可被配置为执行应用,例如移动应用(或者“移动app”)207。移动app 207可以是或者可以包括在计算机可读介质上提供的一组指令,这些指令当被应用处理器205执行时被配置为使得***200执行操作,这些操作可包括获取姿态数据,等等,这将在下文描述。计算机可读介质可以是非暂态有形介质,例如存储器***,其可包括易失性或非易失性存储器(例如,RAM、闪存或者盘)、其他硬件、其组合,等等。
***200可包括一个或多个传感器,例如陀螺仪210A、加速度计210B、磁场传感器210C和一个或多个其他传感器210D。陀螺仪210A可以是或者可以包括一个或多个片上回旋电路,这些电路以微机电***(MEMS)技术实现来形成压电陀螺仪、振动轮陀螺仪、音叉陀螺仪、半球谐振陀螺仪或者回转轮陀螺仪,其响应于惯性力,例如科里奥利加速度或者线加速度。陀螺仪210A可生成一个、两个或三个轴上的运动数据,例如指示这种运动数据的电压读数。
另外,加速度计210B可以是单个、两个、三个或更多个轴的惯性、MEMS和/或固态加速度计之类的。磁场传感器210C可被配置为例如基于传统的基本方向来确定方向性前进方向。磁场传感器210C也可以是MEMS传感器或者具有罗盘或者类似罗盘的功能的另外类型的传感器。“其他”传感器210D可包括任何类型的MEMS传感器、压力或气压传感器(例如,用于高度确定)、地平传感器、偏航率传感器、GPS接收器、光学传感器、红外传感器、RF传感器,等等。
传感器210A-D中的每一个可包括一个或多个传感器,例如传感器的阵列。在一实施例中,陀螺仪210A可包括三个传感器,每个被配置为检测绕一个单独的轴的旋转运动(例如,俯仰、滚转和偏航)。在一些实施例中,在描绘的陀螺仪210A中可包括额外的传感器,以例如提供额外的——例如更精确的——数据和/或用于冗余数据校验。另外,在各种实施例中,加速度计210B可包括三个线性传感器,被配置为检测在三个线性轴上的运动(例如,x:左右;y:上下;以及z:前后,参考图1所示的设备100)。在描绘的加速度计210B中可包括额外的传感器,以在***200中提供额外的信息、更高的精确度和/或冗余校验。
传感器210A-D中的每一个可被配置为提供原始传感器读数215。原始传感器读数215可以是或者可以包括向量、串或者其他类型的数据结构。这些数据结构可包括例如与相关姿态变量相对应的幅值的电压。例如,陀螺仪210A可输出一个或多个信号,例如电压,来指示出与其有关的俯仰、滚转和偏航和/或速度和/或加速度,等等。加速度计210B可输出与线加速度相对应的一个或多个信号,例如电压,而磁场传感器210C输出与方向性方位有关的信号,例如电压。其他传感器210D可输出其他原始传感器读数215。
***200可包括被配置为接收并转化原始传感器读数215的传感器处理器230。传感器处理器230可利用被配置为将陀螺仪、加速度、磁场和其他数据转换成有用的姿态数据或度量——在本文中称为“经处理传感器度量”235——的一个或多个算法来操作。例如,传感器处理器230可使用被配置为将原始传感器读数215转化成经处理数据度量235的卡尔曼滤波器或者任何其他算法。
因此,传感器处理器230可收集原始传感器读数215并且将这些读数转化成数据结构或其他信号,这些数据结构或其他信号可作为经处理传感器度量235被传递到移动app207。经处理传感器度量235可响应于移动app 207从传感器处理器230轮询或者“拉取”数据而被馈送到移动app 207。
此外,可通过向移动app 207“推送”数据来将经处理传感器度量235馈送到移动app 207。例如,移动app 207可以向传感器处理器230提供满足触发事件的条件。当满足该触发事件时,传感器处理器230可将经处理传感器度量235提供给移动app 207,并且移动app 207可等待、轮询或者“侦听”这种将被接收的经处理传感器度量235。这种触发事件条件可以是或者可以包括时间间隔的期满,或者传感器210A-D中的一个或多个取得指示出姿态变量越过了阈值的读数。触发事件也可包括传感器210A-D故障,或者任何其他条件。
经处理传感器度量235可以是可向移动app 207提供传感器状态和/或姿态数据的一个或多个数据结构。例如,经处理传感器度量235可包括指示出传感器210A-D中的每一个是否准备就绪、繁忙或者出错的比特向量。这可以向移动app 207表明设备100是否可工作来提供支持移动app 207的运行可能必需的数据。经处理传感器度量235还可包括表示在给定的时刻设备100的俯仰、偏航和/或滚转位置的3元组(即,具有三个相关元素的数据结构)。经处理传感器度量235还可以是或者可以包括4元组,提供加速度的幅值和三维前进方向。经处理传感器度量235还可以是或者可以包括提供设备100的速度和三维前进方向的4元组。此外,经处理传感器度量235可以是或者可以包括包含距离和三维位移的4元组。将会明白,具有任意数目的元素的多种不同的数据结构可作为经处理传感器度量235的一部分被传递。
在轮询实施例和/或推送实施例中,移动app 207可向传感器处理器230发送对于经处理传感器度量235的一个或多个请求240。请求240可由移动app 207中的一个或多个功能调用来提供。例如,请求240可以表明需要姿态数据并且可规定姿态数据的类型和/或经处理传感器度量235的形式(例如,数据结构的类型)。在一些实施例中,请求240可省略这种规定,其中例如姿态数据和/或数据结构的类型已经被指定或者相关数据由传感器处理器230来确定。在其他实施例中,每个请求240可以指定在经处理传感器度量235中要请求什么类型的数据。
另外,请求240有时可指定数据的类型,有时可不指定。例如,当请求包括在经处理传感器度量235中的数据的类型或形式要变化时(例如,从位置3元组变化成速度和方向4元组),请求240可指定数据,但在其他情况下则不指定数据,默认是先前提供的数据类型,或者另外的默认。在其他实施例中,请求240可在初始化时提供,并且可简单地请求在发生触发事件时来自传感器处理器230的信息,如上所述。在另外一些其他实施例中,可以省略请求240。
传感器处理器230和应用处理器205可在设备100中分开提供,使得两个处理器205、230是“区分开的”。例如,传感器处理器230和应用处理器205可设在分开的处理器芯片上,这些处理器芯片可以被可通信地链接在一起。在其他实施例中,两个处理器205、230可设在多核处理器的不同核上。当在本文中使用时,两个“区分开的”处理器概括而言是如下的两个处理器:这两个处理器是独立可操作的,提供分开的和/或并行的功能,使得利用这些处理器之一执行指令就其本身而言不会影响另一处理器的延迟时间。因此,在一实施例中,传感器处理器230相对于应用207可“在后台”操作,使得传感器处理器230所需要的带宽不减少移动app 207可用的带宽。
与应用处理器205分开地操作传感器处理器230或以其他方式与应用处理器205分开地提供传感器处理器230可以避免让应用处理器205担负提供传感器处理器230的解释功能的任务,从而将处理器解放出来以最低限度的延迟时间运行移动app 207。然而,将会明白,在一些情况下,应用处理器205可被配置为直接与传感器210A-D中的一个或多个通信以从其接收原始传感器读数215,如图所示。这使得能够绕过传感器处理器230,这可能是出于多种原因而提供的,例如为了间歇性地检查传感器数据处理230的校准的准确性,检查传感器处理器230是否不可用或者出错,检查是否需要对传感器210A-D的简短(例如,单次)检查,或者出于任何其他原因。
移动app 207和传感器处理器230之间的通信可由应用处理器接口(applicationprocessor interface,API)来提供。API可促进——例如标准化——一个或多个移动app与传感器处理器230之间的交互。例如,API可提供标准化的功能和响应,多种移动app可以可靠地使用这些功能和响应。
图3根据实施例示出了用于例如通过操作***200来检测设备100的姿态的方法的流程图。在该方法中可使用图2描绘的传感器210A-D中的任何一个或多个;因此,传感器210A-D在图3中可被简单地标注为210,要明白提及“(一个或多个)传感器210”可以单独地或者以群组形式指传感器210A-D中的任何一个或全部。另外,图3描绘的方法的实施例可支持移动app 207从传感器处理器230拉取数据。
该方法可包括在300处激活传感器处理器230。在300处激活传感器处理器230可通过从移动app 207对传感器处理器230的功能调用来进行。在302,传感器处理器230可通过激活(一个或多个)传感器210来作出响应。激活(一个或多个)传感器210可包括提供信号到继电器和/或电源来向(一个或多个)传感器210提供电力或者以其他方式发起(一个或多个)传感器210对姿态变量的监视。(一个或多个)传感器210在功能上一般可以是自治的,并且从而可按预定的频率来对姿态变量采样,如304处所示。在其他实施例中,(一个或多个)传感器210可根据传感器处理器230的命令在304对数据采样。在任一示范性情况下,在306,采样的原始传感器读数215随后可被转发到传感器处理器230。(一个或多个)传感器210随后可返回到在304处对传感器数据的采样。在(一个或多个)传感器210出错或者由于其他原因而没有对数据采样的情况下,(一个或多个)传感器210可能在306没有传感器数据转发到传感器处理器230,从而可循环回来对数据采样,而不向传感器处理器230转发传感器数据。
传感器处理器230可在308处取回在306处从(一个或多个)传感器210转发的原始传感器读数215。传感器处理器230可被配置为按与(一个或多个)传感器210提供数据的频率相同的频率来对数据采样。在其他实施例中,在308,传感器处理器230可以向(一个或多个)传感器210查询关于来自(一个或多个)传感器210的新数据是否可用或存在。如果在308不存在数据,则传感器处理器230可循环回来再次询问(一个或多个)传感器210或者以其他方式再次确定(一个或多个)传感器210是否在306处转发了数据。在一些实施例中,传感器处理器230可以按比(一个或多个)传感器210被配置为提供原始传感器读数215的速率更低的速率从(一个或多个)传感器210取回数据。在这种实施例中,(一个或多个)传感器210可提供缓冲器来存储原始传感器读数215或者可在提供下一个新的原始传感器读数215之前丢弃未被传感器处理器230取回的原始传感器读数215。
在310,传感器处理器230可确定经处理传感器度量235。在一些情况下,取决于包括环境在内的多种因素,(一个或多个)传感器210可能易于发生偏置误差。例如,来自磁场传感器210C(图2)的数据可能对(例如,由附近的永久磁体、电流等等提供的)局部磁场敏感。为了将这种偏置考虑在内,可以随着时间的流逝来对原始传感器读数215采样,从而使得能够对照基线和/或趋势来对数据进行正规化,其中有用的姿态数据基于相对于基线和/或趋势的偏移。因此,传感器处理器230当在310处确定经处理传感器度量235时可在一时间段的过程中接收一串原始传感器读数215并且基于从(一个或多个)传感器210接收的数据的正规化或趋势来计算、确定和/或外推更准确的姿态数据。
例如,传感器处理器230在306可接收由(一个或多个)传感器210转发的原始传感器读数215中的姿态数据并将该数据存储在缓冲器中。传感器处理器230随后可通过访问缓冲器的期望索引来分析来自(一个或多个)传感器210的期望数目的最新近读数并且将得到的姿态信息在经处理传感器度量235中提供给移动app 207。在另一实施例中,传感器处理器230可“连续地”确定姿态数据,例如接收每个原始传感器读数215并且利用新的原始传感器读数来对于前进方向、速度和/或加速度等等计算更新。将会明白,术语“连续地”一般被定义为指对于每个新的原始传感器读数215、每隔一个新的原始传感器读数215或者每个新的原始传感器读数215的某个其他子集,传感器处理器230更新经处理传感器度量235;然而,这种“连续地”更新的实施例可包括传感器处理器230在等待适当的新原始传感器读数的同时执行其他任务。因此,传感器处理器230在306可接收从(一个或多个)传感器210以高频率转发来的相对大量的数据,这些数据可用于连续地或者根据需求转发到移动app 207。
在312,移动app 207随后可确定需要姿态数据。移动app 207可出于多种目的而使用姿态数据,例如为了确定关于设备100的地理信息,确定前进方向或速度和/或向移动app207输入基于运动的命令。当移动app 207在312处确定需要姿态数据时,移动app 207可着手从传感器处理器230取回经处理传感器度量235,如314处所示。在314处取回经处理传感器度量235可通过向传感器处理器230发送请求240来进行,如上文参考图1所述。请求240可包括对于需要什么特定的经处理传感器度量235的指定。在其他实施例中,请求240可不指定需要什么类型的数据,取而代之,移动app 207可被配置为取回所有数据或者默认的一组数据,如上所述。因此,移动app 207可通过请求传感器处理器230在默认的或者指定的时间段中分析其传感器数据的缓冲器来从传感器处理器230取回经处理传感器度量235,或者在传感器处理器230连续地进行更新的实施例中,可以请求传感器处理器230提供其更新的姿态信息。在一些实施例中,传感器处理器230如何计算传感器度量235对于移动app 207来说可能是不相关的。然而,在其他实施例中,移动app 207可被配置为向传感器处理器230指定如何计算传感器数据度量235。
图4根据实施例示出了用于例如通过操作***200来检测设备100的姿态的另一种方法的流程图。更具体而言,图4可示出从传感器处理器230向移动app 207推送数据的方法的实施例。
该方法可开始于移动app 207向传感器处理器230注册为“收听者”,如400处所示。在400处注册为收听者可通过移动app 207向传感器处理器230表明(例如,发送请求240)移动app 207需要经处理传感器度量235来进行。在一实施例中,响应于移动app 207注册为收听者,传感器处理器230可提取收听者参数,如402处所示。将会明白,传感器处理器230可从若干个移动app接收注册为收听者的请求,从而可建立收听者的队列、列表等等,其中每个收听者具有相同或不同的收听者参数。
在402处提取收听者参数可包括接收并分析请求240,请求240可提供这种参数。在其他实施例中,传感器处理器230可进一步询问移动app 207来确定收听者参数。收听者参数可包括请求什么类型的姿态数据来包括在经处理传感器度量235中以及以什么形式(即,什么数据结构)将姿态数据包括在经处理传感器度量235中。收听者参数还可包括满足触发事件的条件。如上所述,这种条件可包括时间间隔、传感器读数越过阈值、传感器故障,等等。
传感器处理器230随后可着手激活(一个或多个)传感器210,如404处所示。这种激活可包括向继电器发信号,或者以其他方式闭合(一个或多个)传感器210的电力电路,以便为(一个或多个)传感器210供电。一旦被激活,(一个或多个)传感器210就可按任何适当的频率对数据采样。因此,(一个或多个)传感器210在406处可确定是否有新的传感器数据可用,并且如果是,则将传感器数据转发到传感器处理器230,如408处所示。
传感器处理器230可询问(一个或多个)传感器210以确定是否有新的原始传感器读数215可用,驱使(一个或多个)传感器210取得读数,或者被动地等待来自其的新原始传感器读数215,如410处所示。一旦在410处确定了有新的原始传感器读数215可用,传感器处理器230就可接收新的传感器读数215并且着手计算经处理传感器度量235,例如,移动app207在402指示为相关的那些度量。如上所述,可以连续地计算或者通过分析缓冲器来按一定间隔计算传感器度量。
当检测到触发事件时,传感器处理器230可向移动app 207发送传感器事件通知,如414处所示。响应于传感器在414处发送事件通知,移动app 207可从传感器事件通知中提取经处理传感器度量235。移动app 207可以在侦听这种事件通知,或者可按预定的频率检查传感器事件通知。另外,传感器事件通知可以是指示出相关触发已发生的标志或比特,这可通知移动app 207取得经处理传感器度量235。在另一实施例中,传感器事件通知可包括指示位置、位移、前进方向、速度、加速度、其组合等等的数据,移动app 207在416处可接收这些数据。在例如在事件通知中接收到经处理传感器度量之后,移动app 207可着手侦听下一事件通知。
将会明白,前述***和方法支持改善的姿态传感器数据接收和处理,并且可以减少经常与之相关联的更新延迟时间。另外,***和方法可提高姿态确定时的准确性,其方式例如是通过允许(一个或多个)传感器210随着时间的流逝取得读数以正规化读数,从而减少了由诸如周围环境中的磁场之类的外在事物引起的不准确。这种随着时间流逝的传感器读数是由分开的处理器205、207来促成的,允许了应用处理器205执行移动app 207,同时传感器处理器230随着时间的流逝处理原始传感器读数215。
以上对本公开及其关联实施例的描述只是为了例示而给出的。该描述不是详尽的并且不将本公开限制到所公开的精确形式。本领域技术人员从以上描述中将会明白,根据上述教导可以实现修改和变化,或者可通过实践公开的实施例来获取修改和变化。
例如,虽然是按照与用户的交互来描述实施例的,但上述技术同等适用于不涉及人类用户的实现方式。从而,相同的技术可用于根据从计算***200中的另一程序或者完全从另一计算***接收的指令来执行程序。类似地,可以完全在计算***200的处理和/或存储器内接收、执行命令以及返回其输出。因此,对于执行描述的实施例,视觉接口命令终端或者任何终端都不是严格必要的。
类似地,描述的步骤不需要按与所论述的相同的序列执行或者以相同的分离度执行。可以根据需要省略、重复、组合或者划分各种步骤以实现相同或相似的目标或增强。因此,本公开不限于上述实施例,而是由权利要求根据其完整等同范围来限定。
在以上描述中和权利要求中,除非另有指明,否则术语“执行”及其变体应被解释为与在设备上对程序代码或指令的任何操作有关,无论是编译的、解释的还是利用其他技术运行的。另外,在权利要求中,除非另有指明,否则术语“功能”应被解释为与“方法”同义,并且可包括程序代码内的方法,无论是静态的还是动态的,并且无论它们是否返回值。在权利要求中使用术语“功能”只是为了避免与术语“方法”的含混或冲突,后者可用于指示特定权利要求的主题类别。
Claims (17)
1.一种用于检测设备的度量的方法,包括:
利用所述设备中包括的应用处理器来执行应用;
将所述应用向传感器处理器注册为收听者;
响应于所述应用注册为收听者而从所述应用提取收听者参数,其中提取包括由传感器处理器询问所述应用以确定所述收听者参数,所述收听者参数包括指示满足触发事件的条件的数据,所述收听者参数还包括将要包括在经处理传感器度量中的数据的类型和形式中的至少一个;
利用所述设备中包括的所述传感器处理器从所述设备中包括的一个或多个传感器获取原始传感器读数,其中所述应用处理器和所述传感器处理器是与彼此区分开的;
利用所述传感器处理器从所述原始传感器读数确定经处理传感器度量;
确定何时满足所述触发事件;以及
响应于确定满足所述触发事件,向执行所述应用的所述应用处理器发送所述经处理传感器度量。
2.如权利要求1所述的方法,还包括响应于确定满足所述触发事件,从所述传感器处理器向所述应用发送事件通知,其中,所述经处理传感器度量被包括在所述事件通知中。
3.如权利要求1所述的方法,还包括响应于确定满足所述触发事件,从所述传感器处理器向所述应用发送事件通知,以及响应于所述事件通知而利用所述应用从所述传感器处理器取回所述经处理传感器度量。
4.如权利要求1所述的方法,其中,所述经处理传感器度量包括俯仰、偏航、滚转、速度、加速度和位移中的至少一者。
5.一种存储指令的计算机可读介质,所述指令当被设备执行时使得所述设备执行用于检测设备的度量的操作的序列,所述操作包括:
利用所述设备中包括的应用处理器来执行应用;
将所述应用向传感器处理器注册为收听者;
响应于所述应用注册为收听者而从所述应用提取收听者参数,其中提取包括由传感器处理器询问所述应用以确定所述收听者参数,所述收听者参数包括指示满足触发事件的条件的数据,所述收听者参数还包括将要包括在经处理传感器度量中的数据的类型和形式中的至少一个;
利用所述设备中包括的所述传感器处理器从所述设备中包括的一个或多个传感器获取原始传感器读数,其中所述传感器处理器和所述应用处理器是与彼此区分开的;
利用所述传感器处理器从所述原始传感器读数确定经处理传感器度量;
确定何时满足所述触发事件;以及
响应于确定满足所述触发事件,向执行所述应用的所述应用处理器发送所述经处理传感器度量。
6.如权利要求5所述的计算机可读介质,其中,所述经处理传感器度量包括姿态数据。
7.如权利要求5所述的计算机可读介质,其中,满足触发事件的条件包括所述设备的加速度或者速度或者这两者超过预定阈值、时间间隔或者上述的组合。
8.如权利要求5所述的计算机可读介质,其中,所述收听者参数还包括要被包括在所述经处理传感器度量中的姿态数据的类型。
9.如权利要求5所述的计算机可读介质,其中,所述操作还包括:
利用所述传感器处理器来确定何时满足所述触发事件;以及
响应于确定满足所述触发事件,从所述传感器处理器向所述应用发送事件通知。
10.如权利要求9所述的计算机可读介质,其中,发送所述事件通知包括向所述应用发送所述经处理传感器度量。
11.如权利要求9所述的计算机可读介质,其中,所述操作还包括利用所述应用连续地侦听所述事件通知。
12.如权利要求5所述的计算机可读介质,还包括把由所述传感器处理器接收的原始传感器读数存储在缓冲器中,其中确定经处理传感器度量包括比较所述缓冲器的两个或更多个索引。
13.如权利要求5所述的计算机可读介质,其中,确定经处理传感器度量包括随着利用所述传感器处理器接收到所述原始传感器读数而连续地更新所述经处理传感器度量的至少一部分。
14.一种用于检测设备的度量的***,包括:
处理***,其至少包括传感器处理器和应用处理器,
其中,所述传感器处理器和所述应用处理器是彼此区分开的,
其中,所述应用处理器被配置为执行应用,并且
其中,所述传感器处理器被配置为:
将所述应用注册为收听者;
响应于所述应用注册为收听者而从所述应用提取收听者参数,其中提取包括由传感器处理器询问所述应用以确定所述收听者参数,所述收听者参数包括满足触发事件的条件,所述收听者参数还包括将要包括在经处理传感器度量中的数据的类型和形式中的至少一个;
从所述设备的一个或多个传感器接收原始传感器读数;
从所述原始传感器读数确定经处理传感器度量;
确定何时满足所述触发事件;以及
响应于确定满足所述触发事件,向所述应用发送所述经处理传感器度量。
15.如权利要求14所述的***,其中,所述应用连续地侦听来自所述传感器处理器的事件通知。
16.如权利要求14所述的***,其中,所述传感器处理器还被配置为:
响应于确定满足所述触发事件,从所述传感器处理器向所述应用发送事件通知。
17.如权利要求15所述的***,其中,确定经处理传感器度量包括随着接收到所述原始传感器读数而连续地更新所述经处理传感器度量的至少一部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/479,851 | 2012-05-24 | ||
US13/479,851 US8638230B2 (en) | 2012-05-24 | 2012-05-24 | Hardware attitude detection implementation of mobile devices with MEMS motion sensors |
PCT/US2013/042494 WO2013177441A1 (en) | 2012-05-24 | 2013-05-23 | Hardware attitude detection implementation of mobile devices with mems motion sensors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104620189A CN104620189A (zh) | 2015-05-13 |
CN104620189B true CN104620189B (zh) | 2021-01-12 |
Family
ID=48614146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380033538.6A Active CN104620189B (zh) | 2012-05-24 | 2013-05-23 | 具有微机电***运动传感器的移动设备硬件姿态检测实现 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8638230B2 (zh) |
EP (1) | EP2856278B1 (zh) |
CN (1) | CN104620189B (zh) |
WO (1) | WO2013177441A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253728B2 (en) * | 2012-04-30 | 2016-02-02 | Apple Inc. | Operating geographic location systems |
US8638230B2 (en) * | 2012-05-24 | 2014-01-28 | Google Inc. | Hardware attitude detection implementation of mobile devices with MEMS motion sensors |
US9378055B1 (en) | 2012-08-22 | 2016-06-28 | Societal Innovations Ipco Limited | Configurable platform architecture and method for use thereof |
US9348434B2 (en) | 2012-11-21 | 2016-05-24 | Google Technology Holdings LLC | Low power management of multiple sensor integrated chip architecture |
US9798390B2 (en) * | 2013-07-19 | 2017-10-24 | Cm Hk Limited | Electronic device and method of motion processing |
US8825814B1 (en) * | 2013-05-23 | 2014-09-02 | Vonage Network Llc | Method and apparatus for minimizing application delay by pushing application notifications |
DE102014207896A1 (de) * | 2014-04-28 | 2015-10-29 | Robert Bosch Gmbh | 3D Grob-Laserscanner |
US10154095B2 (en) | 2014-05-21 | 2018-12-11 | N.Io Innovation, Llc | System and method for aggregating and acting on signals from one or more remote sources in real time using a configurable platform instance |
AU2015263042B2 (en) | 2014-05-21 | 2018-08-09 | N.Io Innovation, Llc | System and method for fully configurable real time processing |
US9891893B2 (en) | 2014-05-21 | 2018-02-13 | N.Io Innovation, Llc | System and method for a development environment for building services for a platform instance |
JP6413452B2 (ja) * | 2014-08-06 | 2018-10-31 | 富士通株式会社 | 電子機器及び移動判定プログラム |
KR102347249B1 (ko) | 2014-10-21 | 2022-01-04 | 삼성전자주식회사 | 외부 물체의 움직임과 연관된 이벤트에 응답하여 화면을 디스플레이하는 장치 및 방법 |
US9819560B2 (en) * | 2014-12-24 | 2017-11-14 | Mediatek Inc. | Dynamic data distribution method in private network and associated electronic device |
US10073707B2 (en) | 2015-03-23 | 2018-09-11 | n.io Innovations, LLC | System and method for configuring a platform instance at runtime |
WO2016166596A1 (en) * | 2015-04-17 | 2016-10-20 | Societal Innovations Ipco Limited | System and method for aggregating and acting on signals from one ormore remote sources in real time using a configurable platform instance |
US20160349940A1 (en) * | 2015-05-26 | 2016-12-01 | Symbol Technologies, Llc | Menu item selection on a handheld device display |
US11422692B2 (en) * | 2018-09-28 | 2022-08-23 | Apple Inc. | System and method of controlling devices using motion gestures |
US11856592B2 (en) * | 2021-10-27 | 2023-12-26 | International Business Machines Corporation | Multi-dimensional mapping and user cognitive profile based device control and channel assignment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998037484A1 (en) * | 1997-02-21 | 1998-08-27 | Immersion Human Interface Corporation | Haptic accelerator for force feedback computer peripherals |
US7907838B2 (en) * | 2007-01-05 | 2011-03-15 | Invensense, Inc. | Motion sensing and processing on mobile devices |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994023359A1 (en) | 1993-04-02 | 1994-10-13 | Vir Systems Pty Limited | Sensor data processing |
US6087930A (en) * | 1994-02-22 | 2000-07-11 | Computer Methods Corporation | Active integrated circuit transponder and sensor apparatus for transmitting vehicle tire parameter data |
US6636521B1 (en) * | 1998-12-18 | 2003-10-21 | Lucent Technologies Inc. | Flexible runtime configurable application program interface (API) that is command independent and reusable |
US8120625B2 (en) * | 2000-07-17 | 2012-02-21 | Microsoft Corporation | Method and apparatus using multiple sensors in a device with a display |
US6577936B2 (en) * | 2001-07-10 | 2003-06-10 | Eaton Corporation | Image processing system for estimating the energy transfer of an occupant into an airbag |
US7359713B1 (en) | 2003-02-28 | 2008-04-15 | Trimble Navigation Limited | Battery consumption optimization for mobile users |
US7231294B2 (en) | 2003-10-23 | 2007-06-12 | International Business Machines Corporation | Navigating a UAV |
US7506216B2 (en) * | 2004-04-21 | 2009-03-17 | International Business Machines Corporation | System and method of workload-dependent reliability projection and monitoring for microprocessor chips and systems |
US7106189B2 (en) * | 2004-04-29 | 2006-09-12 | Tracetech Incorporated | Tracking system and methods thereof |
KR100937572B1 (ko) * | 2004-04-30 | 2010-01-19 | 힐크레스트 래보래토리스, 인크. | 3d 포인팅 장치 및 방법 |
JP4346521B2 (ja) * | 2004-07-28 | 2009-10-21 | 株式会社デンソー | 障害物検知装置 |
WO2006016690A1 (en) | 2004-08-09 | 2006-02-16 | Vodafone K.K. | Measurement data collection method and portable information device |
US7378962B2 (en) * | 2004-12-30 | 2008-05-27 | Sap Aktiengesellschaft | Sensor node management and method for monitoring a seal condition of an enclosure |
CN100405412C (zh) * | 2005-09-12 | 2008-07-23 | 朱水林 | 配戴于人体上的多功能监测及追踪器结构及监测追踪方法 |
US7640020B2 (en) * | 2005-12-19 | 2009-12-29 | Motorola, Inc. | Method and apparatus for assigning backhaul methods |
US9052970B2 (en) | 2008-04-24 | 2015-06-09 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US8082122B2 (en) | 2006-12-12 | 2011-12-20 | Samsung Electronics Co., Ltd. | Mobile device having a motion detector |
US8942764B2 (en) * | 2007-10-01 | 2015-01-27 | Apple Inc. | Personal media device controlled via user initiated movements utilizing movement based interfaces |
US8803737B2 (en) | 2008-02-29 | 2014-08-12 | Apple Inc. | Location determination |
US8082099B2 (en) | 2009-01-09 | 2011-12-20 | Universal Avionics Systems Corporation | Aircraft navigation using the global positioning system and an attitude and heading reference system |
US8325088B2 (en) | 2009-02-04 | 2012-12-04 | Google Inc. | Mobile device battery management |
US20100255856A1 (en) | 2009-04-03 | 2010-10-07 | Microsoft Corporation | Location Sensing Selection for Mobile Devices |
US8228234B2 (en) | 2009-08-27 | 2012-07-24 | Hewlett-Packard Development Company, L.P. | Power saving system and method for mobile computing device |
US8319549B2 (en) * | 2009-12-09 | 2012-11-27 | California Institute Of Technology | Self-healing power amplifier: methods and apparatus |
US20110215903A1 (en) | 2010-03-04 | 2011-09-08 | Nokia Corporation | Apparatus and Associated Methods |
US20130103212A1 (en) | 2010-06-30 | 2013-04-25 | Nokia Corporation | Method and apparatus for providing context-based power consumption control |
US20120013468A1 (en) | 2010-07-16 | 2012-01-19 | George Olah | Wireless object localization and registration system and method |
US20120064951A1 (en) * | 2010-09-13 | 2012-03-15 | Sony Ericsson Mobile Communications Ab | Hands-Free Control of Mobile Communication Device Based on Head Movement |
KR101972606B1 (ko) | 2010-11-03 | 2019-04-25 | 스카이후크 와이어리스, 인크. | 복합 위치 결정 시스템에서 위치 추정의 신뢰성 및 정확성을 증가시키는 시스템의 방법 |
US8731537B2 (en) | 2011-01-04 | 2014-05-20 | Qualcomm Incorporated | Wireless communication devices in which operating context is used to reduce operating cost and methods for operating same |
US9880604B2 (en) | 2011-04-20 | 2018-01-30 | Microsoft Technology Licensing, Llc | Energy efficient location detection |
US8543135B2 (en) | 2011-05-12 | 2013-09-24 | Amit Goyal | Contextually aware mobile device |
US9253728B2 (en) | 2012-04-30 | 2016-02-02 | Apple Inc. | Operating geographic location systems |
US8638230B2 (en) * | 2012-05-24 | 2014-01-28 | Google Inc. | Hardware attitude detection implementation of mobile devices with MEMS motion sensors |
KR102045511B1 (ko) | 2012-07-18 | 2019-11-15 | 삼성전자 주식회사 | 센서 허브를 포함하는 단말기 및 단말기의 제어 방법 |
US8977288B2 (en) | 2012-11-16 | 2015-03-10 | Broadcom Corporation | Apparatus and method for performing low-power geo-fence operations |
US9081571B2 (en) | 2012-11-29 | 2015-07-14 | Amazon Technologies, Inc. | Gesture detection management for an electronic device |
-
2012
- 2012-05-24 US US13/479,851 patent/US8638230B2/en active Active
-
2013
- 2013-05-23 CN CN201380033538.6A patent/CN104620189B/zh active Active
- 2013-05-23 WO PCT/US2013/042494 patent/WO2013177441A1/en active Application Filing
- 2013-05-23 EP EP13728594.6A patent/EP2856278B1/en active Active
-
2014
- 2014-01-07 US US14/149,249 patent/US9135802B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998037484A1 (en) * | 1997-02-21 | 1998-08-27 | Immersion Human Interface Corporation | Haptic accelerator for force feedback computer peripherals |
US7907838B2 (en) * | 2007-01-05 | 2011-03-15 | Invensense, Inc. | Motion sensing and processing on mobile devices |
Also Published As
Publication number | Publication date |
---|---|
US8638230B2 (en) | 2014-01-28 |
US20140118153A1 (en) | 2014-05-01 |
US20130314238A1 (en) | 2013-11-28 |
US9135802B2 (en) | 2015-09-15 |
CN104620189A (zh) | 2015-05-13 |
EP2856278B1 (en) | 2018-08-01 |
EP2856278A1 (en) | 2015-04-08 |
WO2013177441A1 (en) | 2013-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104620189B (zh) | 具有微机电***运动传感器的移动设备硬件姿态检测实现 | |
KR101069566B1 (ko) | 센서 인터페이스, 및 센서 인터페이스에 관한 방법 및 장치 | |
US9448250B2 (en) | Detecting mount angle of mobile device in vehicle using motion sensors | |
US8892390B2 (en) | Determining motion states | |
JP6608458B2 (ja) | 加速度計に基づくホール効果センサによるコンピューティング装置のフィルタリング | |
KR102163171B1 (ko) | 운동 검출 방법, 장치, 기기 및 매체 | |
KR101398946B1 (ko) | 스마트 시계 제어 장치, 방법 및 기록매체 | |
US20160378195A1 (en) | Method for recognizing handwriting on a physical surface | |
US9116002B2 (en) | Context determination to assist location determination accuracy | |
US9702899B2 (en) | Pedometer with lag correction | |
EP2708046B1 (en) | Vehicle context awareness by detecting engine rpm using a motion sensor | |
US20160047840A1 (en) | Offset estimation apparatus, offset estimation method, and computer readable medium | |
TWI631451B (zh) | 具有感測器時間校準的方法和行動裝置 | |
KR20150120124A (ko) | 다이내믹 비전 센서 및 이를 포함하는 모션 인식 장치 | |
Cismas et al. | Crash detection using imu sensors | |
US9885734B2 (en) | Method of motion processing and related mobile device and microcontroller unit | |
JP2014224715A (ja) | 進行方向推定装置、方法、およびプログラム | |
CN105910593B (zh) | 一种校准终端的地磁传感器的方法及装置 | |
US20140281617A1 (en) | Preventing sleep mode for devices based on sensor inputs | |
WO2013058936A1 (en) | Methods and apparatuses for use in determining a motion state of a mobile device | |
US20170344123A1 (en) | Recognition of Pickup and Glance Gestures on Mobile Devices | |
CN107925721B (zh) | 操作摄像机的方法、有摄像机变焦功能的装置及计算机可读介质 | |
US20180051989A1 (en) | Portable device with improved sensor position change detection | |
KR20170085050A (ko) | 인터 모듈 통신을 위한 시스템 및 방법 | |
CN102111479A (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 | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |