传感器融合算法

申请号 CN201310067592.4 申请日 2013-03-04 公开(公告)号 CN103412639B 公开(公告)日 2016-08-31
申请人 微软技术许可有限责任公司; 发明人 D.R.佩雷克; M.A.施瓦格; S.德拉斯宁; M.J.塞尔斯塔德;
摘要 描述了 传感器 融合 算法 技术。在一个或多个实现中,主机设备和附件设备的行为根据主机设备和附件设备相对于彼此的取向而被控制。主机设备的组合的空间 位置 和/或取向可以根据从至少两种不同类型的传感器获得的原始测量结果而获得。另外,附件设备的空间位置和/或取向是通过使用附件设备的一个或多个传感器而被查明的。然后可以根据主计算设备的组合的空间位置/取向和附件设备的所查明的空间位置/取向,来计算附件设备相对于主计算设备的取向(或位置)。然后,可以以各种方式使用所计算的相对取向来控制主计算设备和/或附件设备的行为。
权利要求

1.一种由主计算设备实施的方法,包括:
通过使用主计算设备的至少两种不同类型的传感器,独立地核算(1102)主计算设备的多个原始的空间位置
处理(1104)所述多个原始的空间位置,以获得主计算设备的组合的空间位置;
通过使用被连接到主计算设备的附件设备的一个或多个传感器,查明(1106)附件设备的空间位置;以及
根据主计算设备的组合的空间位置和附件设备的所查明的空间位置,计算(1108)附件设备相对于主计算设备的取向。
2.如在权利要求1中描述的方法,还包括经由应用编程接口(API)显露所计算的取向,供主计算设备的一个或多个应用使用。
3.如在权利要求1中描述的方法,其中核算主计算设备的多个原始的空间位置包括:使用陀螺仪来计算所述多个原始的空间位置之一。
4.如在权利要求1中描述的方法,其中核算主计算设备的多个原始的空间位置包括:组合地使用加速度计和磁计来计算多个原始的空间位置之一。
5.如在权利要求1中描述的方法,其中附件设备的空间位置是经由附件设备的加速度计查明的。
6.如在权利要求1中描述的方法,其中不同类型的传感器包括主计算设备的陀螺仪、加速度计和磁力计。
7.如在权利要求1中描述的方法,其中处理所述多个原始空间位置以获得组合的空间位置包括:在多个原始空间位置之间内插,以减小组合的空间位置的不精确性。
8.如在权利要求1中描述的方法,其中核算、处理、查明和计算是经由主计算设备的一个或多个微控制器来执行的,所述微控制器被配置成至少部分地以硬件来实施传感器融合模
9.如在权利要求1中描述的方法,还包括根据被计算的取向,控制主计算设备的一个或多个行为。
10.如在权利要求9中描述的方法,其中控制主计算设备的一个或多个行为包括:根据被计算的取向,选择性地调节一个或多个传感器的灵敏度。

说明书全文

传感器融合算法

[0001] 相关申请
[0002] 本申请在35 U.S.C.§119(e)下要求以下美国临时专利申请的优先权,这些申请中的每个申请的全部公开内容通过引用被完整地合并进来:
[0003] 美国临时专利申请No.61/606,321,于2012年3月2日提交,代理人案号336082.01且标题为“Screen Edge”;
[0004] 美国临时专利申请No.61/606,301,于2012年3月2日提交,代理人案号336083.01且标题为“Input Device Functionality”;
[0005] 美国临时专利申请No.61/606,313,于2012年3月2日提交,代理人案号336084.01且标题为“Functional Hinge”;
[0006] 美国临时专利申请No.61/606,333,于2012年3月2日提交,代理人案号336086.01且标题为“Usage and Authentication”;
[0007] 美国临时专利申请No.61/613,745,于2012年3月21日提交,代理人案号336086.02且标题为“Usage and Authentication”;
[0008] 美国临时专利申请No.61/606,336,于2012年3月2日提交,代理人案号336087.01且标题为“Kickstand and Camera”;以及
[0009] 美国临时专利申请No.61/607,451,于2012年3月6日提交,代理人案号336143.01且标题为“Spanaway Provisional”。

背景技术

[0010] 移动计算设备已被开发成增加使用户在移动环境下可以利用的功能性。例如,用户可以与移动电话、平板计算机或其它移动计算设备交互,以检查电子邮件、进行web冲浪、编写文本、与应用交互等等。某些移动计算设备可以连接各种附件设备并与之交互,以提供不同的输入技术、扩展功能性等等。移动计算设备的开发者所面临的一个挑战是管理伴随附件设备的行为和与附件设备的交互。例如,主计算设备对附件设备如何表现可能只有有限的控制,因此附件设备的动作有时可能干扰主计算设备的操作。而且,用户体验可能受到未以与主计算设备一致的方式进行响应的附件设备的不利影响。因此,对于移动计算设备的开发者来说,对附件设备的行为和交互的综合管理可能是具挑战性的需要考虑的事项。发明内容
[0011] 描述了传感器融合算法技术。在一个或多个实现中,主机设备和附件设备的行为根据主机设备和附件设备相对于彼此的取向而被控制。主机设备的组合的空间位置和/或取向可以根据从至少两种不同类型的传感器获得的原始测量结果而获得。另外,附件设备的空间位置和/或取向是通过使用附件设备的一个或多个传感器而被查明的。然后可以根据主计算设备的组合的空间位置/取向和附件设备的所查明的空间位置/取向来计算附件设备相对于主计算设备的取向(或位置)。然后,可以以各种方式使用所计算的相对取向来控制主计算设备和/或附件设备的行为。
[0012] 本概要被提供来以简化的形式介绍概念的选择,这些概念还将在下面的详细说明中进行描述。本概要既不打算确认所要求保护的主题的关键特征或必要特征,也不打算被使用来帮助确定所要求保护的主题的范围。附图说明
[0013] 参照附图来描述详细说明。在图上,参考标号最左面的数字标识该参考标号首次出现的图。相同参考标号在说明书和附图的不同实例中的使用可以指示类似的或相同的项目。在图上表示的实体可以指示一个或多个实体,因此,在讨论时可以可互换地引用实体的单数或复数形式。
[0014] 图1是在可操作来利用这里描述的技术的示例性实现中的环境的图示。
[0015] 图2更详细地描绘图1的计算设备的示例性实现。
[0016] 图3描绘了更详细地显示柔性铰链时图1的附件设备的示例性实现。
[0017] 图4描绘按照一个或多个实施例的、附件设备相对于计算设备的示例性取向。
[0018] 图5描绘按照一个或多个实施例的、附件设备相对于计算设备的示例性取向。
[0019] 图6描绘按照一个或多个实施例的、附件设备相对于计算设备的示例性取向。
[0020] 图7描绘按照一个或多个实施例的、附件设备相对于计算设备的示例性取向。
[0021] 图8描绘按照一个或多个实施例的、附件设备相对于计算设备的示例性取向。
[0022] 图9描绘按照一个或多个实施例的、附件设备相对于计算设备的示例性取向。
[0023] 图10描绘说明按照一个或多个实施例的、计算设备相对于输入设备的某些示例性旋转取向。
[0024] 图11是描述按照一个或多个实施例的示例性过程的流程图
[0025] 图12是描述按照一个或多个实施例的示例性过程的流程图。
[0026] 图13图示了示例性系统,其包括如参照图1-12描述的可被实施为任何类型计算设备的示例性设备的各种部件,以实施这里描述的技术的实施例。

具体实施方式

[0027] 综述
[0028] 传统上,主计算设备对于相关联的附件设备如何表现可能只有有限的控制。因此附件设备的动作有时可能干扰主计算设备的操作,这可能减损用户体验。因此,对于移动计算设备的开发者来说,对于附件设备的行为和交互的综合管理可能是需要考虑的事项。
[0029] 描述了传感器融合算法技术。在一个或多个实现中,主机设备和附件设备的行为根据主机设备和附件设备相对于彼此的取向而被控制。主机设备的组合的空间位置和/或取向可以根据从至少两种不同类型的传感器获得的原始测量结果而获得。另外,附件设备的空间位置和/或取向是通过使用附件设备的一个或多个传感器而被查明的。然后可以根据主计算设备的组合的空间位置/取向和附件设备的所查明的空间位置/取向来计算附件设备相对于主计算设备的取向(或位置)。然后,可以以各种方式使用所计算的相对取向来控制主计算设备和/或附件设备的行为。
[0030] 在以下的讨论中,首先描述可以利用这里所描述的技术的示例性环境和设备。然后描述可以在示例性环境中且由所述设备执行的、以及在其它环境中且由其它设备执行的示例性过程。因此,示例性过程的执行不限于示例性环境/设备,以及示例性环境/设备不限于示例性过程的执行。
[0031] 示例性操作环境
[0032] 图1是在可操作来利用这里描述的技术的示例性实现中的环境100的图示。所图示的环境100包括经由柔性铰链106被物理地和通信地耦合到附件设备104的计算设备102的例子。计算设备102可以以各种各样的方式被配置。例如,计算设备120可被配置用于移动用途,诸如移动电话、如图所示的平板计算机、等等。因此,计算设备102的范围可以从具有大量存储器和处理器资源的全资源设备到具有有限的存储器和/或处理资源的低资源设备。计算设备102还可以涉及到使得计算设备102执行一个或多个操作的软件
[0033] 计算设备102例如被图示为包括输入/输出模108。输入/输出模块108代表与计算设备102的输入处理和输出呈现有关的功能性。各种各样不同的输入可以被输入/输出模块108处理,诸如对与对应于输入设备的键、由显示设备110显示的虚拟键盘的键的功能有关的输入进行处理,以便识别手势和使得对应于手势的操作被执行,手势可以通过附件设备104和/或显示设备110的触摸屏功能性等等来辨别。因此,输入/输出模块108可以通过辨别和借于(leverage)对包括键按压、手势等等的输入类型的区分,而支持各种各样不同的输入技术。
[0034] 在所图示的例子中,附件设备104是被配置为具有键的QWERTY排列的键盘,然而也可以设想键的其它排列。而且,也可以设想用于附件设备104的其它非常规的配置,诸如游戏控制器、用来模仿乐器的配置、电源适配器等等。因此,附件设备104可以呈现各种各样不同的配置来支持各种各样不同的功能性。不同的附件设备可以在不同的时间连接到计算设备。而且,特定的附件设备在功能上也可以适合于呈现不同的配置和能力,诸如通过不同的可选择的模式、软件/固件更新、附加模块的设备/部件等等来进行。这可以引起布置附件设备的键或其它控件的方式的改变,并且也改变主机和应用操控来自附件设备的输入的方式。例如,附件设备可以通过以下方式来作为键盘和作为游戏控制器操作,即:自适应地切换键/控件的种类、所显示的标签以及控件的位置,以便在不同的时间呈现不同的配置。
[0035] 如前所述,在本例中,附件设备104通过使用柔性铰链 106被物理地和通信地耦合到计算设备102。柔性铰链106代表适合于把附件设备连接和/或附连到主计算设备102的接口的一个说明性例子。柔性铰链 106是柔性的,因为由铰链支持的旋转运动是通过形成铰链的材料的挠曲(例如,弯曲)而达到的,这与通过销支持的机械旋转形成对照,虽然也可以设想那种实施例。而且,这种柔性的旋转可以被配置成支持在一个方向上的(例如,在图上垂直地)运动,但却限制在其它方向上的运动,诸如附件设备104相对于计算设备102的横向运动。这可被使用来支持附件设备104相对于计算设备102的一致的对准,诸如,对准被使用来改变电源状态、应用状态等等的传感器。
[0036] 柔性铰链106例如可以通过使用一层或多层织物来形成,并且可以包括被形成为柔性迹线(trace)的导体,以便把附件设备104通信地耦合到计算设备102,以及反之亦然。这种通信例如可被使用来把键按压的结果传达到计算设备102、从计算设备接收电力、执行鉴别、提供补充电力给计算设备102等等。柔性铰链 106或其它接口可以以各种各样的方式被配置以支持多个不同的附件设备104,其进一步的讨论可以相关于以下的图找到。
[0037] 如在图1上进一步图示的,计算设备102可包括把不同的功能性提供给该设备的各种应用112。典型地与计算设备相关联的各种各样的应用112被设想为包括,但不限于:操作系统、综合多个办公生产力模块的生产力套件、web浏览器、游戏、多媒体播放器、文字处理器、电子表格程序、照片管理程序等等。计算设备102还包括多个主机传感器114,它们被配置成感测响应于计算设备102的操纵的对应输入。同样地,附件设备104包括一个或多个附件传感器116,它们被配置成感测响应于附件设备104的操纵而生成的对应输入。
[0038] 按照这里描述的技术,从主机传感器114和附件传感器116获得的输入可以按照适当的传感器融合算法被处理和/或组合,以便求解附件设备104与计算设备102彼此之间的取向。通常,来自多个不同类型的传感器的、关于位置和/或取向的输入被组合地处理,以便计算取向。所计算的取向然后可被使用来控制主机和附件的行为以及执行各种对应的操作。可以利用各种各样的不同类型的传感器和适合于求解取向的算法,正如相关于以下的图更详细地讨论的。
[0039] 为了进一步说明,考虑图2,图2更详细地描绘图1的示例性计算设备102,其总地以200表示。在所描绘的例子中,计算设备102以孤立的配置示出,而没有附连附件设备104。除了相关于图1讨论的部件以外,图2的示例性计算设备还包括处理系统202和计算机可读介质204,其代表各种各样不同类型的处理部件、介质、存储器和存储部件,和/或可能与计算设备相关联且被使用来提供范围广泛的设备功能性的设备,及其组合。在至少一些实施例中,处理系统202和计算机可读介质204代表可被利用于通用计算操作的处理能力和存储器/存储装置。更一般地,计算设备120可被配置成利用各种处理系统和计算机可读介质的任何适当的计算系统和/或设备,这方面的附加细节和例子将相关于图13的示例性计算系统进行讨论。
[0040] 计算设备102还可以通过一个或多个微控制器206实施所选择的设备功能性。微控制器206代表被设计来执行预定义的一组指定任务的硬件设备/系统。微控制器206可以代表具有自包含资源的各个芯片上系统/电路,自包含资源是诸如处理部件、I/O设备/外围设备、各种类型的存储器(ROM、RAM、快闪存储器、EEPROM)、可编程逻辑等等。不同的微控制器可被配置成提供不同的嵌入的应用/功能性,它们是至少部分地以硬件来实施的且执行对应的任务。微控制器206使得能执行除了通用处理系统和计算设备或附件设备的其它应用/部件的操作以外的某些任务。通常,对于设备而言,与操作通用处理系统相比较,微控制器的功耗较低。
[0041] 如进一步描述的,计算设备102还可包括传感器融合模块208、行为模块210和传感器融合应用编程接口(API)212,以实施这里描述的传感器融合算法技术的各方面。传感器融合模块208通常代表这样的功能性,即:其如以上和以下所描述地去施加适当的传感器融合算法,以根据来自多个传感器的输入而得出取向。传感器融合模块208可操作来收集经由各种传感器供给的、关于位置/取向等等的输入,处理所述输入,以及计算描述计算设备102与附件设备104的空间关系的对应取向。
[0042] 行为模块210代表用来根据所计算的取向去控制和/或修改与计算设备102和/或附件设备104相关联的各种各样不同的行为的功能性。这可包括,但不限于:管理电源状态/功耗、选择操作模式或设备状态、调节一个或多个传感器的灵敏度、控制在主机、附件和/或外围设备之间的交互、修改设备功能性、启用/禁用网络连接、激活/停用应用、和/或设置应用状态,这只是举几个例子。可以根据所计算的取向而被控制的行为的这些和其它例子相关于在下面讨论的示例性过程被更详细地描述。
[0043] 传感器融合应用编程接口(API)212代表用来显露(expose)关于计算机取向的信息以供应用112使用的功能性。例如,应用112可以一经要求便利用传感器融合API来请求取向信息,和/或从传感器融合模块208和/或相关联的通知系统预订取向更新。传感器融合API然后可以代表应用112与传感器融合模块208交互,以使得取向信息被输送到应用112。应用112可以以各种方式使用取向信息,其例子可以在下面图12的示例性过程1200的讨论中找到。
[0044] 如前所述,各种不同类型的传感器可被利用来实施这里描述的技术。主计算设备可包括传感器阵列,其被使用来提供取向信息。作为例子,但不是限制,用于图2的示例性计算设备102的主机传感器114被描绘为包括陀螺仪214、加速度计216、 磁力计218和霍尔效应(Hall Effect)传感器220。也可以利用适合于得出关于位置和/或取向的信息的各种其它传感器222。
[0045] 图3描绘了更详细地显示柔性铰链 106时图1的附件设备104的示例性实现300。在本例中,附件设备104被描绘为是与计算设备分离的。这里,显示了输入设备的连接部分302,其被配置成提供在附件设备104与计算设备102之间的通信的和物理的连接。在本例中,连接部分302具有某个高度和横截面,被配置成在计算设备102的外壳中的槽内被容纳,然而这种安排也可以反过来而不背离其精神和范围。连接部分202提供接口,通过该接口,可以检测附件设备104与计算设备的附连/连接。在至少一些实施例中,这个接口还使得能进行如这里描述的、用于附件设备104的交互和/或控制的通信。例如,计算设备102、传感器融合模块208和/或行为模块210可以通过该接口与附件设备通信,以获得来自各种附件传感器116的输入和引导附件设备的行为。
[0046] 连接部分302通过使用柔性铰链 106而柔性地连接到包括键的附件设备104的一部分。因此,当连接部分302被物理地连接到计算设备时,连接部分302与柔性铰链 106的组合支持附件设备104相对于计算设备102的、类似于书的合页那样的运动。自然,可以支持各种各样的取向,它们的一些例子在下面的段落中描述。
[0047] 连接部分302在本例中被图示为包括磁耦合设备304、306,机械耦合突起308、310,和多个通信触点312。磁耦合设备304、306被配置成通过使用一个或多个磁体而磁耦合到计算设备102的互补磁耦合设备。这样,附件设备104可以通过使用磁吸引而被物理地固定到计算设备102。连接部分302还包括机械耦合突起308、310,用来形成在附件设备104与计算设备102之间的机械的物理连接。通信触点312被配置成接触计算设备102的对应的通信触点,以形成设备之间的通信耦合,来方便进行各种种类的通信。
[0048] 已经讨论了实施例可以在其中操作的示例性环境,现在考虑按照一个或多个实施例的某些示例性设备取向。
[0049] 示例性设备取向
[0050] 以下的讨论给出某些示例性设备取向。正如详细说明的,不同的设备取向可以与不同的设备电源状态、不同的应用状态、触发不同的行为等等相关联。示例性取向以及其它取向可以通过使用以上和以下描述的传感器融合算法技术而被确定。确定的取向然后可被使用来驱动对于主机和/或附件的不同的行为。
[0051] 图4图示附件设备104可以被旋转成使得附件设备104被紧靠计算设备102的显示设备110放置以呈现取向400。在取向400中,附件设备104可以充当盖子,使得附件设备104可以保护显示设备110免受损害。在实现中,取向400可以对应于计算设备102的闭合位置。
[0052] 图5图示输入设备104旋转离开计算设备102,使得计算设备呈现取向500。取向500包括被引入到计算设备102与附件设备104之间的间隙502。在实现中,取向500可以是由用户非故意地造成的,诸如通过与计算设备102和/或附件设备104的无意中的接触,造成计算设备102稍微下垂离开附件设备104,使得引入间隙502。
[0053] 图6图示计算设备102的示例性取向600。在取向600中,附件设备104紧靠某个表面平放,且计算设备102例如通过使用被布置在计算设备102的后表面上的支架602而以某个度布置,以允许观看显示设备110。取向600可以对应于打字安排,由此可以经由附件设备104,诸如通过使用键盘的键、跟踪板等等,而接收输入。
[0054] 图7图示计算设备102的另一个示例性取向,总的用700表示。在取向700中,计算设备102被取向成使得显示设备110背对着附件设备104。在本例中,支架602可以诸如经由与附件设备104的背部表面的接触而支持计算设备102。虽然这里未明显地示出,但盖子可被利用来覆盖和保护附件设备104的前表面。在所描绘的取向中,在设备与主机之间建立某个角度702。也可以建立对应于不同的位置/取向的各种不同的角度,正如以上和以下讨论的。
[0055] 图8图示示例性取向800,其中附件设备104也可以进行旋转,以便紧靠计算设备102的背面布置,例如,紧靠计算设备102的后面外壳布置,后面外壳在计算设备102上被布置在显示设备10的相反面。在本例中,通过连接部分202相对于计算设备102的取向,使得柔性铰链 106“环绕住”连接部分202,以便把附件设备104定位在计算设备102的后面。
[0056] 这种环绕使得计算设备102后面的一部分仍旧被显露。这可以被借力来用于各种各样的功能性,诸如,允许把照相机802定位在要被使用的计算设备102的后面,尽管计算设备102后面的很大部分在这个示例性取向800中被附件设备104覆盖。除了图8所图示的例子以外,计算设备102的显示设备110可被确定为以相对于附件设备104的某个角度804被取向。通常,角度804可以在附件设备104被操纵成不同的位置时改变。例如,图8所示的角度804可被确定为大约360度。其它取向可以对应于其它角度,且角度范围可以被建立,并与可以触发不同行为的已定义的模式或状态相关联。因此,行为可以根据对应于在主机与附件之间的当前角度的特定模式/状态而被控制。
[0057] 图9图示计算设备102的另一个示例性取向,总的用900表示。在取向900中,计算设备102向一侧(sideway)旋转,例如,处在相对于其上布置有计算设备102的表面902的纵向取向中。显示设备110是可见的,让附件设备104旋转离开显示设备110。在至少某些实现中,附件设备104的宽度可以比计算设备102的宽度窄。附加地或替换地,附件设备104的宽度可以逐渐变细,以使得最靠近铰链106的边比最外面的边宽。这可以使得显示设备110的正面能在取向900中向后靠,以提供适当的观看角度。
[0058] 图10图示计算设备102可以在相对于附件设备104的各种各样不同的角度范围内旋转。正如这里详述的,不同的角度范围可以与不同的电源状态、不同的应用状态等等相关联。
[0059] 图示了对应于用于计算设备102的闭合位置的角度范围1000。因此,如果计算设备102被定位在相对于附件设备104的角度范围1000内的某个角度,则计算设备102可被确定为处在闭合位置。闭合位置可包括相关联的闭合状态,其中对于计算设备102和附件设备
104的各种功能性/行为可以根据闭合状态而随之被修改。
[0060] 还图示了可以对应于用于计算设备102的打字取向的角度范围1002。因此,如果计算设备102被定位在相对于附件设备104的角度范围1002内的某个角度,则计算设备102可被确定为处在打字取向。在这个取向内,计算设备102和/或附件设备104可以被置于打字电源状态,其中对于计算设备102和附件设备104的各种功能性/行为可以根据打字状态而随之被定制。
[0061] 图10还图示对应于用于计算设备102的观看位置的角度范围1004。因此,如果计算设备102被定位在相对于附件设备104的角度范围1004内的某个角度,则计算设备102可被确定为处在观看取向。在这个取向下,对于计算设备102和附件设备104的功能性/行为可以根据观看状态而随之被控制。
[0062] 以上讨论的取向、角度范围、电源状态等等仅仅是为了举例说明而给出的。设想了在所要求保护的实施例的精神和范围内,可以实施各种各样的不同取向、设备状态、和角度范围。
[0063] 在讨论了某些示例性设备取向后,现在考虑按照一个或多个实施例的某些示例性过程。
[0064] 示例性过程
[0065] 以下的讨论描述可以通过利用先前描述的系统和设备而被实施的传感器融合算法技术。过程中每一个的各方面可以以硬件、固件、软件或它们的组合被实施。过程被显示为具体说明由一个或多个设备执行的操作的一组方块,且其不是必然地限于所显示的用于由各个方块执行操作的次序。在以下讨论的部分中,可以分别参照图1的示例性操作环境100、图2-3的示例性设备和图4-10所示的示例性取向。
[0066] 图11描绘示例性过程1100,其中附件相对于主机的取向被计算。在至少一些实施例中,过程可以由适当配置的计算设备执行,计算设备是诸如包括或以别的方式利用传感器融合模块208和/或行为模块210的、图2的示例性计算设备102。
[0067] 通过使用至少两种不同类型的传感器而独立地核算主计算设备的原始的空间位置(方块1102)。该原始的空间位置被处理,以获得主计算设备的组合的空间位置(方块1104)。
[0068] 例如,传感器融合模块 208可被配置成实施指定的传感器融合算法。通常,传感器融合算法被配置成聚集来自计算设备102所利用的不同种类的主机传感器114的阵列的信息。多种不同的传感技术和传感器类型的聚集可以提供位置的改进的解决方案,并且可以平滑可能由个体的技术和传感器引入的误差。在至少一些实施例中,传感器融合算法被配置成通过使用不同的相应的传感器来核算所述计算设备102的原始空间位置的至少两个独立的计算。原始位置的多个独立的计算然后可被使用来产生组合的空间位置。每个独立的计算可以利用以上和以下描述的各种类型的主机传感器114中的一种或多种。被使用于不同的独立计算的至少某些传感器是不同类型的。因此,传感器融合算法获得来自各种各样不同的主机传感器114的输入,并组合这个信息,以求解计算设备102的位置。
[0069] 在一个方案中,计算设备102包括陀螺仪214,它可被使用来获得原始位置的独立计算之一。通常,陀螺仪使用角动量原理来核算取向和旋转。陀螺仪214可被使用来辨别在三维空间内的运动,并且使得能确定相对于诸如地球那样的参考目标/点的位置。通过使用从陀螺仪214获得的输入,传感器融合模块208可以操作来计算该计算设备的原始空间位置。原始空间位置可以被表达为在相对于参考目标/点(例如,地球)的、由x、y和z轴定义的三维坐标系中的坐标。
[0070] 具体地,从陀螺仪获得的角速度输入可被处理来确定计算设备的角定位。一开始,来自陀螺仪的输入可被滤波,以去除陀螺仪的低通常数偏移。这样的低通常数偏移可能在陀螺仪被卡在(stick)非零位置时产生,因此把它去除,以防止计算时的不精确性。算法可以在陀螺仪的多个轴(例如,x、y和z轴)上进行积分,以得到描述计算设备的原始空间位置的变换。这个处理可以牵涉到通过Runge-Kutta(龙格-库塔)积分算法(或其它适当的算法)对来自陀螺仪的角速度输入进行积分,以得到对应的脉冲数据。脉冲数据可被表达为对于不同轴的四元数,它们在被一起相乘时产生这样的四元数,即:该四元数描述在计算设备102与地球(或其它选择的参考目标/点)之间相对于它们各自的轴/坐标系的变换。这提供计算设备102的原始空间位置的一个独立的版本。
[0071] 原始空间位置的另一个独立的计算可以通过组合地使用加速度计216和磁力计218而获得。这里,加速度计216被配置为三轴加速度计,它可被利用来得出设备的其中两个自由度(例如,相对于x轴和y轴的位置)。在低通中,加速度的向量是向下指向地心的近似
1g。经由加速度计216测量的加速度的分量可以被获得为跨三个轴的每个轴地分布。加速度的分量进而又可被使用来计算加速度计/设备轴相对于指向地心的低通向量的角度。这提供关于设备的倾斜或取向的三个自由度中的两个自由度。具体地,刚才描述的加速度计处理被使用来求解计算设备102的x轴和y轴的倾斜/取向。
[0072] 现在,磁力计218可被利用来求解关于设备的倾斜/取向的剩下的自由度。磁力计218可被初始化/配置成起罗盘的作用。在这个方案中,磁力计218可被使用来计算平行于地面(例如,地球表面)的向量。这个向量指向地磁北极,且可被使用来确定设备相对于z轴的旋转。现在,来自加速度计的x轴和y轴的倾斜/取向和来自磁力计218的设备相对于z轴的旋转可被使用来构造另一个四元数,该四元数描述在计算设备102与地球(或其它选择的参考目标/点)之间的、相对于它们各自的轴/坐标系的变换。这提供可以获得计算设备102的原始空间位置的另一种独立的方式。设想了使用不同的传感器和传感器组合的其它例子。例如,全球定位卫星(GPS)无线电可被使用来提供某些定位数据,其可被单独地或与其它种类的传感器数据相组合地使用,以计算该计算设备102的位置/取向。
[0073] 因此,对于原始空间位置的至少两个不同的结果是通过使用上述的示例性技术或其它适当的技术进行计算的。传感器融合算法还可被配置成以各种方式组合原始空间位置的多个独立的计算。所述组合通常牵涉到在两个或更多个原始空间位置之间进行内插,以减小或消除不精确性和/或平滑结果。内插产生计算设备的组合的空间位置,其是根据两个或更多个独立获得的原始空间位置的。
[0074] 作为例子,但不是限制,相对于其它传感器和位置确定技术而言,通过使用陀螺仪得到的结果在短期内可能是更精确的。然而,与陀螺仪计算相关联的小的积分误差可能随时间累积而产生越来越大的偏移,从长期来看,这可以导致不精确的结果。因此,用其它独立地获得的结果对陀螺仪结果进行内插可以有效地对陀螺仪结果的预期积分误差进行调节。在一个方案中,利用归一化的线性内插,其可以偏向陀螺仪结果,因为这些结果初始地是更精确的且遭受较小的噪声。其它独立的结果,诸如来自加速度计/磁力计的结果,可以被包括在内插中,以便对陀螺仪结果进行约束,且随时间过去缓慢地将用于组合结果的偏斜调离陀螺仪结果而调向所述其它结果。这产生数学上平滑的变换来作为组合的结果。
[0075] 通过使用附件设备的一个或多个传感器,查明被连接到主计算设备的附件设备的空间位置(方块1106)。附件设备104的空间位置可以以任何适当的方式进行计算,包括,但不限于,相对于计算设备102描述的技术。用于不同的附件设备的附件传感器116可包括这里描述的各种类型的传感器的任何类型。因此,不同的对应技术可被使用来根据来自一个或多个附件传感器116的适当输入,而查明附件设备的空间位置。也可以根据在附件设备内所包括的传感器的类型,对不同的附件设备利用不同的技术。通常,传感器融合模块206可被配置成通过与附件设备的适当接口而获得来自附件设备的不同传感器的输入,并根据该输入计算对应的空间位置。
[0076] 在一个特定的例子中,传感器融合模块206可以通过使用与附件设备104相关联的加速度计216而计算空间位置。在这个方案中,加速度计216可被利用来求解附件设备104的关于x轴和y 轴的倾斜/取向。这可以以相似于上述的使用相关联的加速度计来计算对于计算设备102的同类信息的方式进行。
[0077] 在一些安排中,附件设备104可被配置成通过使用连接部分302而连接到计算设备102,连接部分302经由已知的位置可连接到计算设备的接口。例如,在前面描述的铰链例子中,关于附件设备的位置的至少某些信息可以根据与主机设备的连接的已知位置和性质而被建立。因此,在这样的情形下,使用对于附件设备104的两个自由度(例如,x轴和y轴位置/间距和滚动)就足以求解附件相对于主机的位置。然而,应当指出,在一些实施例中,通过使用前面讨论的磁力计218或使用其它传感器和技术,也可以计算附件设备104相对于z轴的那个旋转。这可以在如下的配置中被利用,即:其中附件设备即使在被连接到主机设备时仍可以在三维上被操控,诸如借助于球窝型连接来进行。
[0078] 根据主计算设备的组合的空间位置和附件设备的查明的空间位置,计算附件设备相对于主计算设备的取向(方块1108)。计算的取向可以对应于相对于图4-10所讨论的任何的不同取向以及其它可能的取向。这里,可以在计算设备102的组合的空间位置与附件设备104的查明的空间位置之间进行比较,以得出关于设备彼此间取向的信息。具体地,组合的空间位置指示在用于计算设备102的坐标系中的轴如何相对于与用于地球或其它参考的参考坐标系相关联的轴被取向之间的变换。类似地,附件设备104的查明的空间位置指示在用于附件设备的坐标系中的轴如何相对于参考坐标系的轴被取向之间的变换。因此,这两个位置可被使用来计算附件设备104相对于计算设备102的变换,这个变换是与参考坐标系无关的。
[0079] 作为例子,在某些情形下,取向可被定义为附件设备104相对于计算设备102的角度,如在图10上表示的。也如前面讨论的,不同的角度可以关联于不同的交互状态,诸如以上给出的闭合状态、打字状态和观看状态的例子。取向可以替换地以另一种适当的方式表达,诸如使用x、y、z坐标。
[0080] 任选地,所计算的取向可以通过使用计算设备102的霍尔效应传感器220来验证。霍尔效应传感器220可被配置成利用磁力来检测在计算设备102与附件设备104之间的邻近性。例如,霍尔效应传感器220可以根据随计算设备102和/或附件设备104一起包括的一个或多个磁体来测量邻近性。当计算设备102旋转到闭合位置时,霍尔效应传感器220可被配置成对准并检测附件设备104的磁体。当计算设备102在打开位置中被定位成离开附件设备
104时,霍尔效应传感器220也许不能检测到磁体,或者在计算设备102被旋转到相对于附件设备104不同的角度处时,所检测到的磁力可以改变。霍尔效应传感器220提供可以确定取向的另一种方式。因此,霍尔效应传感器220可被用作为关于使用其它传感器计算的取向是否精确的附加检验。这个附加检验可以在引起和/或控制某种行为之前作出,所述行为诸如是根据取向而使设备断电或关断不同的部件。
[0081] 根据所计算的取向,控制主计算设备和附件设备的一个或多个行为(方块1110)。各种行为和响应动作可以根据附件相对于主机的被计算出的取向而被驱动。行为模块210可被配置成从传感器融合模块208获得取向结果,以及随之控制各种行为。
[0082] 控制行为至少可包括对于计算设备102和/或主机设备的电源管理操作。通常,电源管理操作被配置成控制功耗和延长电池寿命。例如,行为模块210可以根据特定的取向而引起电源模式/状态的改变。这可包括按照所确定的取向,使设备和/或选择的部件在开/关之间切换。例如,在闭合状态,主机和附件可以断电或被置于睡眠模式。在另一个例子中,当取向对应于观看状态时,附件可以断电。附件设备104也可以在特定的取向下自动醒来,诸如当检测到打字状态时。也可以设想响应于所计算的取向而发生的各种各样其它的电源管理例子。
[0083] 在另一个例子中,控制行为可包括按照取向而选择性地调节和/或启用/禁用用于设备的不同的传感器。作为例子,附件完全环绕地旋转以覆盖主机的背面可以指示玩游戏状态。在这种安排中,加速度计216很可能被使用于玩游戏,而对来自附件的用于键盘/打字输入的触摸功能性的使用多半是不可能的。因此,在这个安排中,加速度计216的灵敏度可以提高/开启,而触摸灵敏度可以被降低或被禁用。在打字状态,相反的结果可以成立,且加速度计216可被禁用或被调节到较低的灵敏度,以及触摸灵敏度可以提高或重新启用。因此,传感器的灵敏度可被调节,且特定的传感器可以根据取向来被开启/关闭。应当指出,被控制的传感器可包括在取向的计算中所牵涉到的传感器以及主机或附件的其它传感器。
[0084] 在再一个例子中,为附件和/或主机激活的功能性可以根据取向而被修改。例如,附件可被配置成当环绕到背面时充当游戏控制器,以及当在打字取向时转换成提供键盘打字输入。在另一个例子中,经由附件的对滚动或翻转页面的手势的读出可以在观看取向下通过跨附件设备的输入而启用,且可以对于其它状态/取向被禁用。由附件提供的功能性的这些种类的改变可以通过按照不同的取向来选择地显露、启用、配置或以别的方式激活不同的控制、功能和手势而发生。
[0085] 也可以出现根据取向的、对激活主计算设备的手势、触摸键和其它功能性的可比较的改变。例如,用于在显示器110上操纵媒体内容的手势在某些取向下(例如,观看状态或游戏状态)可以是有效的,而在其它情景下被停用。可以根据取向对被激活用于/可用于计算设备的功能性做出的修改的某些附加例子包括:根据所计算的取向而选择性地启用/禁用网络连接,和/或控制主机与附件设备和/或外围设备(例如,打印机、流媒体设备、存储设备)的交互。
[0086] 另外,应用112的行为也可以根据所计算的取向而被控制。例如,行为模块210可被配置成根据取向而选择性地激活或停用不同的应用112。这可包括在前景与背景处理中操作的应用之间切换、发起和关闭特定的应用、最小化/最大化等等。应用112也可以检索和/或预订去接收所计算的取向的更新,应用可以以各种方式利用它们,这方面的某些细节相关于以下的附图被提供。因此,可以根据所计算的取向,控制广泛的各种各样的行为,以上枚举的其中的具体行为仅仅是几个说明性的例子。
[0087] 图12描绘示例性过程1200,其中所计算的取向被显露,以供应用使用。在至少一些实施例中,过程可以由适当地配置的计算设备执行,所述计算设备是诸如图2的示例性计算设备102,其包括或以别的方式利用传感器融合应用编程接口(API)212。
[0088] 根据主计算设备的组合的空间位置和附件设备的查明的空间位置,计算出附件设备对于主计算设备的取向(方块1202)。这可以按照如相对于以上的图11的示例性过程1100讨论的指定的传感器融合算法来进行。
[0089] 显露了接口,其可以被一个或多个应用操作来获得所计算的取向(方块1204)。响应于经由该接口接收到来自应用的请求,计算的取向被提供给应用(方块1206)。具体地,计算设备102可包括传感器融合应用编程接口(API)212,它可操作来把计算的取向信息提供给应用112。在一个方案中,传感器融合API可以响应于个体的请求而一经要求便提供取向信息。附加地或替换地,传感器融合API可被配置成方便于应用112的注册,以便预订去接收取向更新。响应于对预订的请求,API可以向传感器融合模块208 和/或相关联的通知系统注册应用,该通知系统被配置成当发生取向改变时把通知消息提供给注册的应用。应用112然后可以接收经由通知系统发送的、描述对取向的更新的通知消息。
[0090] 传感器融合API可以以各种格式把取向和/或有关的信息提供给应用。例如,取向可以具有如以上面描述的方式计算的、附件设备104相对于计算设备102的变换的形式。在这种情形下,应用可以处理所提供的取向信息,以获得具有对于应用适当的格式的信息,诸如对应于所计算的取向的取向角度或被定义的取向状态。附加地或替换地,传感器融合模块208可操作来代表应用去计算取向状态。因此,经由传感器融合API提供的信息可包括状态名称或标识符,其可以是应用直接可用的。
[0091] 应用112可以以各种方式利用通过API提供的取向信息。例如,应用112可以根据取向来选择性地修改用于应用的用户接口和/或用户接口的功能性。这可包括对于不同的各个取向,激活不同的控制、菜单、手势和/或输入模式。例如,在一个取向(打字/键盘输入取向)下出现的导航菜单可以在观看取向下消失。而且,应用112可被配置成包括各种模式,并根据取向在模式之间切换。例如,消息传送应用可以按照所计算的取向从文本输入模式切换到视频模式。在另一个例子中,应用可以修改特定输入在不同的取向下被解译的方式。例如,在打字取向下按钮的按压可被使用于数字字母输入,而相同按钮在观看取向下可用于内容控制功能。其它的按钮、键和其它控件也可以在取向改变时被选择性地启用或禁用。也设想了各种各样其它的例子。
[0092] 在考虑了以上的示例性过程后,现在考虑可被利用来实施在一个或多个实施例中的技术的各方面的示例性系统和设备的讨论。
[0093] 示例性系统和设备
[0094] 图13图示总的以1300表示的示例性系统,其包括代表可以实施这里描述的各种技术的一个或多个计算系统和/或设备的示例性计算设备1302。计算设备1302例如可被配置成通过使用所形成的外壳和由用户的一只或多只手抓住并携带的尺寸而呈现移动配置的形式,其说明性例子包括移动电话、移动游戏和音乐设备、以及平板计算机,然而也可以设想其它的例子。
[0095] 所图示的示例性计算设备1302包括处理系统1304、一个或多个计算机可读介质1306、和一个或多个I/O接口1308,它们彼此间通信地耦合。虽然未示出,但计算设备1302还可以包括把各种部件彼此间互相耦合的系统总线或其它的数据与命令传送系统。系统总线可包括不同总线结构的任一项或组合,总线结构诸如是存储器总线或存储器控制器、外设总线、通用串行总线、和/或利用任何的各种各样的总线体系结构的处理器或本地总线。也设想了各种各样其它的例子,诸如控制和数据线。
[0096] 处理系统1304代表通过使用硬件来执行一个或多个操作的功能性。因此,处理系统1304被图示为包括硬件单元1310,其可被配置为处理器、功能块等等。这可包括以硬件方式的实现,如专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件单元1310不受形成它们所用的材料或其中所利用的处理机制的限制。例如,处理器可以包括半导体和/或晶体管(例如,电子集成电路(IC))。在这样的上下文中,处理器可执行的指令可以是可电子地执行的指令。
[0097] 计算机可读的存储介质1306被图示为包括存储器/存储装置1312。存储器/存储装置1312代表与一个或多个计算机可读介质相关联的存储器/存储装置1312能力。存储器/存储装置部件1312可包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、快闪存储器、光盘、磁盘等等)。存储器/存储装置部件1312可包括固定介质(例如,RAM、ROM、固定的硬驱动机等等)以及可拆卸的介质(例如,快闪存储器、可拆卸的硬驱动机、光盘等等)。计算机可读介质1306可以以下面进一步描述的各种各样的其它方式被配置。
[0098] 输入/输出接口1308代表允许用户把命令和信息输入到计算设备1302并且也允许通过使用各种输入/输出设备把信息呈现给用户和/或其它部件或设备的功能性。输入设备的例子包括键盘、光标控制设备(例如,鼠标)、话筒、扫描仪、触摸功能性(例如,被配置成检测物理触摸的电容性或其它传感器)、照相机(例如,它可以利用可视或非可视波长,诸如红外频率,来把运动辨别为不牵涉到触摸的手势)等等。输出设备的例子包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等等。因此,计算设备1302可以以各种各样的方式被配置来支持用户交互。
[0099] 计算设备1302还被图示为被通信地和物理地耦合到附件设备1314,该附件设备是可从计算设备1302物理地和通信地拆卸的。这样,各种各样不同的附件设备可被耦合到具有广泛的各种各样配置的计算设备1302,以支持广泛的各种各样的功能性。在本例中,附件设备1314包括一个或多个控件1316,其可被配置为压敏键、机械开关键等等。
[0100] 附件设备1314还被图示为包括可被配置成支持各种各样功能性的一个或多个模块1318。所述一个或多个模块1318例如可被配置成处理从控件1316接收的模拟和/或数字信号,以确定是否预期有击键,确定输入是否指示静止压力(resting pressure),支持对附件设备1314的鉴别以便与计算设备1302一起操作,等等。
[0101] 这里可以在软件、硬件单元或程序模块的一般上下文中描述各种技术。通常,这样的模块包括执行特定的任务或实施特定的抽象数据类型的例行程序、程序、对象、单元、部件、数据结构等等。当在这里使用时,术语“模块”、“功能性”和“部件”通常代表软件、固件、硬件或它们的组合。这里描述的技术的特征是与平台无关的,意思是所述技术可以在各种各样市面上可买到的、具有各种各样处理器的计算平台上实施。
[0102] 所描述的模块和技术的实现可被存储在某种形式的计算机可读介质上或可以跨越其被传送。计算机可读介质可包括可以由计算设备1302访问的各种各样的介质。作为例子,但不是限制,计算机可读介质可包括“计算机可读存储介质”和“计算机可读信号介质”。
[0103] “计算机可读存储介质”可以指能够持久和/或非瞬态地存储信息的介质和/或设备,与仅仅信号传输、载波或信号本身不同。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括硬件,诸如,以适合用于存储诸如计算机可读指令、数据结构、程序模块、逻辑单元/电路或其它数据那样的信息的方法或技术来实施的易失性和非易失性、可拆卸和非可拆卸的介质和/或存储器件。计算机可读存储介质的例子可包括,但不限于,RAM、ROM、EEPROM、快闪存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、硬盘、盒式磁带、磁带、磁盘存储装置或其它磁存储器件、或其它存储器件、有形介质、或适合于存储想要的信息且其可被计算机访问的制造品。
[0104] “计算机可读信号介质”可以指信号承载介质,其被配置成诸如经由网络传送指令到计算设备1302的硬件。信号介质典型地可将计算机可读指令、数据结构、程序模块、或其它数据具体化为诸如载波、数据信号或其它输送机制那样的调制的数据信号。信号介质还包括任何信息传递介质。术语“调制的数据信号”是指使信号的特性中的一个或多个以如此方式设置或改变以致将信息编码在信号中的信号。作为例子,但不是限制,通信介质包括有线介质和无线介质,有线介质是诸如有线网或直接连线连接,而无线介质是诸如声学的、RF、红外和其它无线介质。
[0105] 如前所述,硬件单元1310和计算机可读介质1306代表以硬件形式实施的模块、可编程器件逻辑和/或固定器件逻辑,其可以在某些实施例中被利用来实施这里描述的技术的至少某些方面,诸如执行一个或多个指令。硬件可包括集成电路或芯片上系统的部件、微控制器器件、专用集成电路(ASIC)、现场可编程阵列(FPGA)、复杂的可编程逻辑器件(CPLD)、和采用或其它硬件的其它实现。在本上下文中,硬件可以操作为执行由指令定义的程序任务和/或由硬件体现的逻辑的处理设备,以及操作为被利用来存储用于执行的指令的硬件(例如前面描述的计算机可读存储介质)。
[0106] 也可以利用前述内容的组合来实施这里描述的各种技术。因此,软件、硬件或可执行模块可以实施为在某种形式的计算机可读存储介质上具体化的一个或多个指令和/或逻辑,和/或可以由一个或多个硬件单元1310来实施。计算设备1302可被配置成实施对应于软件和/或硬件模块的特定的指令和/或功能。因此,可由计算设备1302作为软件执行的模块的实现可以至少部分地以硬件形式达到,例如,通过使用计算机可读存储介质和/或处理系统1304的硬件单元1310来进行。指令和/或功能可以是由一个或多个制造品(例如,一个或多个计算设备1302和/或处理系统1304)可执行/可操作的,以便实施这里描述的技术、模块和例子。
[0107] 结论
[0108] 虽然示例性实现是以特定于结构特征和/或方法动作的语言被描述的,但应当理解,在所附权利要求中限定的实现不是必然地限于所描述的特定特征或动作。而是,所述特定特征和动作是作为实施所要求保护的特征的示例性形式而公开的。
QQ群二维码
意见反馈