用于分析电子设备的运动的系统和方法

文档序号:6381379阅读:157来源:国知局
专利名称:用于分析电子设备的运动的系统和方法
用于分析电子设备的运动的系统和方法
分案说明
本申请是申请日为2009年9月25日,申请号为200910211688. 7,题为“用于分析电子设备的运动的系统和方法”的中国专利申请的分案申请。技术领域
本发明一般涉及一种用于分析电子设备的运动的系统和方法。具体地,本发明涉及分析设备的运动以标识姿态作为该设备的输入信号。
背景技术
目前的无线手持移动通信设备执行各种功能,以使移动用户能够例如在其远离其桌面时与信息和通信保持同步,如电子邮件、企业数据以及组织者信息。这种设备具有显示器和复杂的操作系统,操作系统用于提供图形用户界面(GUI),图形用户界面向用户提供各种静态和运动图像。
用于手持设备的⑶I的一种导航设备是轨迹球或滚轮。轨迹球或滚轮的运动通常被转换成光标的运动,其可以包含对图标进行突出显示。然而,固有地,使用轨迹球或滚轮并不直观。其他导航设备利用设备自身的运动。然而,用现有算法来解释这种运动是在计算上要求较高,而且需要相对较大的处理功率和存储空间,尤其是对于手持设备而言。
需要一种解决现有技术的缺陷的系统和方法。发明内容
下面的描述和这里描述的实施例仅是以示意本公开原理的特定实施例的示例的方式来提供的。这些示例提供用于解释而不是限制本公开和这些原理。在下面的描述中, 在整个说明书和附图中,用相同的相应附图标记来标注相同的部分。
在第一方面,提供了一种用于分析手持电子设备的运动的方法。所述方法包括跟踪所述设备的运动数据;将运动数据映射到串表示;相对于姿态串来分析所述设备的串表示,所述姿态串表示与针对所述设备的命令相关的姿态,以确定所述姿态是否已被赋予所述设备;以及如果所述串表示与所述姿态串匹配,则在所述设备上执行与所述姿态相关联的命令。
在所述方法中,分析串表示可以利用所述设备先前的移动数据(如果可用)。
在所述方法中,串表示可以与阈值进行比较,以确定串表示是否与姿态串表示相匹配。
在所述方法中,运动可以被映射到布置在与所述设备相关联的空间坐标系中的枚举符号。
在所述方法中,所述空间坐标系可以提供从所述设备的坐标系原点开始的点的轨迹。点的覆盖可以具有关于所述设备的二十面体对称。
在所述方法中,将运动数据映射到串表示可以包括将运动数据转换为表示运动的运动向量;计算所述设备的总加速度向量,所述总加速度向量包括所述设备的运动向量和倾斜向量;相对于空间坐标系映射所述总加速度向量,以标识枚举符号中与所述运动匹配的枚举符号。
在所述方法中,加速度计可以提供所述设备的运动数据。
在所述方法中,分析串表示可以利用阈值,所述阈值丢弃串表示中连续重复的枚举符号。
在所述方法中,可以相对于所述阈值,使用编辑距离算法来分析串表示,如 Levenshtein编辑距离算法或Smith-Waterman算法。附加地或可选地,可以使用其它序列对齐算法。
在所述方法中,分析串表示可以包括构造包含串表示和姿态串的数据的矩阵; 通过遍历所述矩阵的子集以生成所述串表示中的值相对所述姿态串的匹配得分,来计算所述串表示相对所述姿态串的匹配得分。
在所述方法中,构造数据的矩阵可以使用所述设备先前的运动数据;并且计算匹配得分可以使用Smith-Waterman算法递归遍历所述矩阵的子集,直到遇到停止条件为止。
在所述方法中,所述矩阵可以是动态编程矩阵D(i,j)。所述矩阵可以具有mXn 维,其中m是串表示的长度,以及η是姿态串的长度。所述矩阵可以具有使用m维来标识的串表示的分量,以及使用η维来标识的姿态串的分量。所述矩阵可以具有最左侧的列D(i, O) = O,其中i = O. . . m ;以及顶行D(0, j) = O,其中j = O. . . η。所述矩阵中的其余元素可以被设置成O或以下之一中的最小值
D(i, j) = max {O[或]
D(1-1, j)+间隙罚分(gap penalty)[或]
D (i,j_l) + 间隙罚分[或]
D(i_l,j_l)+ 替换矩阵的第 i,j 项}。
所述替换矩阵可以基于空间坐标系顶点间的几何关系。
在所述方法中,计算匹配得分可以使用串表示和先前的运动数据一起来确定所述姿态串是否跨越(straddle)串表示和先前的运动数据。
第二方面,提供了一种用于分析手持电子设备的运动的系统。所述系统包括存储器存储设备;微处理器;第一模块,响应于所述设备的运动来产生所述设备的运动数据;第二模块,向微处理器提供指令,以将运动数据映射到串表示,所述串表示与布置在与所述电子设备相关联的空间坐标系中的枚举符号相关,并在存储器中存储所述串表示;以及第三模块。第三模块向微处理器提供指令,用于相对于与姿态串相关的数据来分析所述设备的与串表示相关的数据和先前的运动数据(如果先前的运动数据可用),所述姿态串表示与针对所述设备的命令相关的姿态,以确定所述姿态是否已被赋予所述设备;以及如果串表示与阈值进行比较来确定所述串表示是否与所述姿态串匹配,则在所述设备上执行与所述姿态相关联的命令。
在所述系统中,第二模块可以将运动数据转换为表示运动的运动向量;计算所述设备的总加速度向量(所述总加速度向量仍包括所述设备的运动向量和倾斜向量);相对于空间坐标系映射所述总加速度向量,以标识枚举符号中与所述运动匹配的枚举符号。
在所述系统中,第一模块可以包括加速度计,以提供所述设备的运动数据。
在所述系统中,第三模块可以相对于阈值,使用编辑距离算法来分析串表示,如 Levenshtein编辑距离算法或Smith-Waterman算法。附加地或可选地,也可以使用其他序列对齐算法。
在所述系统中,第三模块向微处理器提供指令,用于构造包含串表示和姿态串的数据的矩阵;通过遍历所述矩阵的子集以生成所述串表示中的值相对所述姿态串的匹配得分,来计算所述串表示相对所述姿态串的匹配得分。
在所述系统中,所述矩阵可以是动态编程矩阵D(i,j)。所述矩阵可以具有mXn 维,其中m是串表示的长度,以及η是姿态串的长度。所述矩阵可以具有使用m维来标识的串表示的分量,以及使用η维来标识的姿态串的分量。所述矩阵可以具有最左侧的列D(i, O) = O,其中i = O. . . m ;以及顶行D(0, j) = O,其中j = O. . . η。所述矩阵中的其余元素可以被设置成O或以下之一中的最小值
D(i, j) = max {O [或]
D (1-1,j) + 间隙罚分[或]
D (i,j_l) + 间隙罚分[或]
D(i_l,j_l)+ 替换矩阵的第 i,j 项}。
在所述系统中,第三模块可以利用串表示和先前的运动数据一起来确定姿态串是否跨越串表示和先前的运动数据。
在其他方面,提供了上述方面的集合和子集的各种组合。
一般而言,实施例提供了跟踪(手持)设备的运动并相对于所存储的、所关注的所选运动(这里称为“姿态”)的表示来评估运动的系统和方法。实施例利用了量化方案,使用三维坐标系以相对于该坐标系来映射设备的运动并存储姿态。该坐标系具有预定符号集来限定坐标系中的特定顶点。所述符号可以是任何预定义字符集,包括ASCII字符集,整数,或者任何其他枚举方案。对检测到的运动进行量化,其中运动被分解为段,每段被映射 (至少作为近似)至坐标系中的顶点上。因此,作为通过每个所标识顶点的运动过程,可以使用运动来标识顶点的串。由于顶点具有符号(这里作为文本符号提供),对于运动,所映射的顶点处的符号提供了“文本串”,该文本串表示对坐标系映射的运动。同时,相对于坐标系,也对(输入)姿态的集合进行量化,每一个姿态表示被实现为设备的运动的命令,该运动由在设备上运行的应用来识别。因此,姿态与符号的离散序列相关联(再次地,符号可以由ASCII字符集,或整数,或者任何其他方便的枚举方案来表示)并在以下称作“模式串”。 因此,术语“串表示”在这里用作标识与检测到的运动或姿态相关的坐标系顶点的任何串的一般术语。如前文所述,串表示可以由若干离散符号组成。可能有针对姿态的模式的串表示(即“模式串”)和/或针对检测到的设备运动的串表示。串表示可以映射用于分析设备运动的其他运动、偏移、默认位置等等。如这里所述,由于串表示由离散元素组成,因此可以使用数学函数对其元素进行处理和操作。为方便起见,“文本串”一词是在设备的坐标系中穿过所标识顶点的、检测到的运动的串表示的简短形式;“模式串”一词是在设备的坐标系中具有穿过所标识顶点的元素的姿态的串表示的简短形式。
姿态的模式串集合可以被存储或对设备可用,使得其可以与在文本串中编码的、 设备的实时运动相比较。在特定实例中,设备近期检测到的运动(由文本串表示)可以与所存储的姿态集合(由所存储的模式串表示)相比较,以评估运动是否与所存储的姿态相匹配。基于基本Smith-Waterman算法的扩展可以用作评估的一部分。所述评估可以具有阈值,以设置与姿态和检测到的运动的偏差的容限。


参考附图,仅以示例的方式来提供本公开,附图中
图I为根据实施例的具有姿态分析系统和运动检测系统的电子设备的示意表示;
图2为图I中设备的特定内部组件和运动调整系统的框图3为在处理图I中设备的运动中执行的功能的状态图4A为表示由作用于图I中设备的重力而产生的加速度的加速度向量图的示意框图4B为表示作用于图I中设备的适当加速度的加速度向量图的示意框图4C为表示作用于图I中设备的重力及适当减速的加速度向量图的示意框图5为具有图I中设备的运动的恒定加速度图的总加速度图6A为图I中设备的示意框图,添加了具有坐标系的加速度向量图,示出了图4A 中的重力向量;
图6B为图I中设备的示意框图,添加了具有图4A的坐标系的加速度向量图,示出了图4B中的加速度向量;
图6C为图I中设备的示意框图,添加了具有图4A的坐标系的加速度向量图,示出了图4C中的减速向量;
图7A为图I中设备的示意框图,添加了具有第二坐标系的加速度向量图,示出了在相对于地球轴倾斜的第一位置中的设备;
图7B为图I中设备的示意框图,添加了具有图6A的第二坐标系的加速度向量图, 示出了在相对于地球轴倾斜的第二位置中的设备;
图7C为图I中设备的示意框图,添加了具有图6A的第二坐标系的加速度向量图, 示出了在相对于地球轴倾斜的第三位置中的设备;
图8A-8D为图6A至6C中的运动的三维实现的框图9A为图I中设备的实施例中使用的基于5频率(5V) 二十面体的坐标模型的示意框图9B为具有编号方案的二十面体的一部分,示出了图9A中的十个顶点;
图9C为与图9A中5V 二十面体相对应的邻接矩阵的元素的快照的图形表示;
图9D为与图9A中坐标模型相对应的完整的邻接矩阵的框图IOA为根据实施例的通过相对于图I中设备的运动数据来评估所存储的模式姿态而得到的动态编程矩阵的框图IOB为根据实施例的通过相对于图I中设备的两组运动数据来评估所存储的模式姿态而得到的两个动态编程矩阵的框图IOC为根据实施例的作为图I中设备处理运动数据的一部分而生成的示例替换矩阵;
图IOD为根据实施例,针对多个姿态,通过相对于图I中设备的运动数据来评估所存储的两个模式姿态而得到的动态编程矩阵的框图11为图1实施例中两个运动检测系统的框图;以及
图12为图1实施例中备选运动检测系统的框图。
具体实施方式
这里提供了实施例的方面的示例性细节。首先,提供对在设备中提供的实施例的一般概念和特征进行描述。然后,提供了用于处理所检测到的设备运动并将运动与所存储的姿态表示进行比较的系统、数据和算法的进一步的细节。
因此,参照图1和图2,首先提供了设备的一些一般特征。图1提供了根据本公开实施例的用于接收电子通信的电子设备的一般特征,其总体标记为10。在本实施例中,电子设备10基于具备增强个人数字助理功能的计算平台,该增强个人数字助理具备蜂窝电话和电子邮件特征。然而,可以理解,电子设备10可以基于其它电子设备的构造设计和功能,如智能电话、台式计算机寻呼机或带有电话设备的膝上计算机。在本实施例中,电子设备10包括外壳12,LCD 14,扬声器16,LED指示器18,轨迹球20,ESC ( “退出”)键22,小键盘24,包括耳塞26和麦克风28的电话耳机。轨迹球20和ESC键22可以沿着箭头A的路径向内按压,作为向设备10提供附加输入的装置。
可以理解,如本领域技术人员可以想到,外壳12可以由任意适合的材料制成,并可以被适合地形成为容纳和保持设备10的所有组件。
设备10用于使用任何已知的无线电话系统(如全球移动通信(GSM)系统,码分多址(CDMA)系统,CDMA 2000系统,蜂窝数字分组数据(CDPD)系统,以及时分多址(TDMA)系统)来进行无线电话呼叫。其它无线电话系统可以包括无线WAN (IMS),无线MAN (W1-max或 IEEE802. 16),无线LAN(IEEE802. 11),无线ΡΑΝ(ΙΕΕΕ802· 15及蓝牙)等,以及任何其它支持语音的系统。另外,可以支持蓝牙网络。其它实施例包括IP电话(VoIP)类型的数据流通信,其可以模拟电路交换的电话呼叫。耳塞26可以用于收听电话呼叫和其他声音消息,麦克风28可以用于向设备10说话和输入声音消息。
参考图2,示意图200中提供了设备10的功能组件。所述功能组件一般是电子的、 结构的或电子机械设备。特别地,微处理器202被提供用于控制和接收几乎所有与设备10 有关的数据、传输、输入和输出。微处理器202被示意性地示为与小键盘24及其它内部设备耦合。优选地,微处理器202控制设备10及其组件的整体操作。微处理器202的示例性微处理器包括在Data 950(商标)系列、6200(商标)系列及P4900(商标)系列中的微处理器,这些微处理器从英特尔公司可以同时得到。微处理器202通过一系列对其各个输入和输出引脚的电连接连接至设备10中的其它元件。微处理器202具有IRQ输入线,允许它从各个设备接收信号。提供适当的中断固件用以接收在IRQ线上检测到的信号并作出反应。 运动检测模块204提供对输入信号的分析以确定设备10是否被移动或者其朝向是否被改变。
除了微处理器202之外,图2中示意性地示出了设备10的其它内部设备。这些设备包括显示器14 ;扬声器16 ;小键盘24 ;通信子系统206 ;短距离通信子系统208 ;辅助1/ O设备210;串行端口 212 ;麦克风28 ;闪存216(提供数据的永久存储);随机存取存储器 (RAM) 218 ;用于对应用进行跟踪和同步的内部时钟220,以及其他设备子系统(未示出)。 设备10优选地是具备语音和数据通信能力的双向射频(RF)通信设备。另外,设备10优选地具备通过如互联网之类的网络与其他计算机系统进行通信的能力。
微处理器202执行的操作系统软件优选地存储在计算机可读介质中(如闪存 216),但也可以存储在其它类型的存储设备中,如只读存储器(ROM)或类似的存储元件。此外,系统软件、特定设备应用或其部分,可以暂时加载至易失性存储器中(如RAM 218)。移动设备接收的通信信号也可以存储至RAM 218。
微处理器202,除了其操作系统功能外,使软件应用能够在设备10上执行。控制基本设备操作的一组软件(和/或固件)应用(一般称为应用222),如语音通信模块222k 和数据通信模块222B,可以在制造时安装在设备10上或在之后下载。同样,附加的软件模块(可以是例如个人信息管理器(PM)应用),可以在制造时安装在设备10中或在之后下载。与每个应用相关联的数据可以存储在闪存216中。
电话应用222A(与图标304A相关联)提供允许设备10的用户在设备10上发起电话呼叫的接口。它还提供了 CTI来存储和列出设备10进行的电话呼叫、接收的电话呼叫以及存储的语音邮件消息的记录。
电子邮件应用222B(与图标304B相关联)提供模块以允许设备10的用户在设备 10上生成电子邮件消息,并将其发送至其收件人。应用222B还提供了⑶I,用于提供所接收、起草、保存及发送的电子邮件历史列表。
日历222C(与图标304C相关联)跟踪与用户和设备10相关的约会和其他状态事务。它提供由用户输入的约会、会议和事件的每天/每周/每月的电子日程表。日历222C 使用处理器202及内部时钟220来跟踪设备10的时间和日期数据。日程表包含与用户的当前可用性相关的数据。例如,它可以指示用户何时忙碌、不忙、可用或不可用。该应用还可为用户提供“请勿打扰”的时间窗口。有效地,日历222C允许设备10被设置为当中断事件发生时不通知用户,而不管在窗口中缺少任何已安排的约会。
地址簿222D (与图标304D相关联)使设备10能够存储个人和组织的联系信息。 具体地,在链接的记录中存储姓名、地址、电话号码、电子邮件地址、手机号码及其他联系信息。数据被存储在非易失性存储器中,如数据库中设备10的存储器216。在使用中,数据库被组织为使得个人联系信息可以被访问并被交叉引用至相同或不同应用中的其它数据。
位置模块222E(与图标304E相关联)提供设备10的当前地理位置。在一个实施例中,它使用例如GPS模块和现有技术中的已知应用,从卫星系统接收并解释远程GPS信号, 以对设备10的当前位置进行三角测量。在设备10上,GPS接口应用控制由位置模块222E 检索到的GPS数据的存储。备选地,通过分析与设备10上执行的蜂窝电话呼叫相关的编码数据来确定位置信息。例如,可以检查编码数据流来标识正在与设备10进行通信的当前基站。
运动检测模块222F从运动模块接收数据,转换并存储数据,以便其他模块可以处理这些数据。以下将介绍模块222F的进一步细节。
姿态分析模块222G接收由运动检测模块222F提供并处理的运动数据,然后,相对于所存储姿态的表示来分析运动数据。如果得到匹配,则姿态分析模块可以激活信号或过程,以执行与所识别的姿态相关联的命令。该命令可以与在设备10上操作的另一应用相关。以下将介绍模块222G的进一步细节。
运动检测电路204、运动电路238和触发电路240提供了用于检测设备10的运动并为可检测的运动设置阈值的系统和设备。以下将介绍这些元件的进一步细节。
通信功能,包括数据及语音通信,是通过通信子系统206和短距离通信子系统208 来执行的。子系统206和208共同为设备10所处理的所有通信技术提供信号级接口。各种应用222为后续处理提供操作控制并对通信进行日志记录。通信子系统206包括接收机 224、发射机226以及一个或多个天线,如接收天线228和发射天线230所示。此外,通信子系统206还包括处理模块,如数字信号处理器(DSP) 232和本地振荡器(LO) 234。通信子系统206的特定设计和实现取决于设备10预期在其中操作的通信网络。例如,设备10的通信子系统206可以与Mobitex (商标)、DataTAC(商标)或通用分组无线业务(GPRS)移动数据通信网络一起操作;也可以与任何各种语音通信网络,如高级移动电话服务(AMPS)、 时分多址(TDMA)、码分多址CDMA、个人通信服务(PCS)、全球移动通信系统(GSM)等等一起操作。其他种类的数据和语音(电话)网络,包括分离的和集成的,也可以与设备10—起使用。在任何情况下,通信子系统206为设备10提供了使用各种通信技术,包括实时消息收发(IM)系统、文本消息收发(TM)系统以及短消息服务(SMS)系统,来与其他设备进行通信的能力。
除了处理通信信号,DSP 232还提供了对接收机224和发射机226的控制。例如, 接收机224和发射机226中应用于通信信号的增益可以通过DSP 232中实现的自动增益控制算法来自适应地控制。
在数据通信模式中,接收到的信号(如文本消息或下载的网页),由通信子系统 206处理,然后作为输入提供给微处理器202。然后,接收到的信号由微处理器202进一步处理,然后,微处理器2020可以产生对显示器14或辅助I/O设备210的输出。设备用户也可以使用小键盘24、轨迹球20和/或一些其他辅助I/O设备210 (如触摸板、摇臂开关、单独的指轮或一些其它输入设备等)来编写如电子邮件消息的数据项。然后,编写的数据项经由通信子系统206通过通信网络140传输。子系统206也可以检测其何时在其远程系统的通信范围之外。
在语音通信模式中,除了接收到的信号输出至扬声器16,以及用于发送的信号是由麦克风28产生之外,设备10的整体操作实质上类似于数据通信模式。备选的语音音频 I/O子系统,如语音消息记录子系统,也可以在设备10上实现。此外,显示器14也可以用在语音通信模式中,例如,用于显示呼叫方的身份、语音通话持续时间或其他语音呼叫的相关信息。
短距离通信子系统208实现了设备10与其他邻近系统或设备(并不必须是类似设备)之间的通信。例如,短距离通信子系统可以包括红外设备及相关电路和组件,或者包括蓝牙(商标)通信模块以提供与具有类似能力的系统和设备间的通信。
电源236为移动手持通信设备的整个电子元件提供电源。优选地,电源236包括一个或多个电池。更优选地,电源236是单个电池组,尤其是可充电电池组。电源开关(未示出)为设备10提供“开/关”转换开关。在激活电源开关时,发起应用222以开启设备 10。在去激活电源开关时,发起应用222以关闭设备10。对设备10的供电也可以由其他设备和软件应用222控制。
现在,对涉及检测运动和相对于预定姿态的表示来分析这种运动以确定运动是否与姿态相匹配的实施例中的特征提供进一步细节。
参照图3,状态图300提供了活动的示例性的进展,示为当设备10接收运动数据并对其进行处理以确定运动是否与所存储的姿态表示匹配时转入,转至或通过的状态。在实施例中,在状态中进行的动作由在设备10上操作的姿态分析模块222G和/或其他过程和模块来执行。由运动检测电路204、运动电路238和触发电路240中的一个或多个来提供运动数据。
该过程从步骤302开始,在该步骤中,设备10正在操作,然后前进至状态304,在状态304中对运动进行跟踪。由于运动可能在任何时候发生,该过程可以作为设备10的后台过程来操作。运动检测模块222F监控、跟踪并存储来自运动检测电路204、运动电路238和触发电路240中一个或多个的运动信号。以特定间隙(例如时间、读数或预定触发事件)将运动数据转换成规范化格式,然后在状态306提供给姿态模块222G。接下来,在状态308, 接收数据帧并相对于预定姿态的表示对数据帧进行分析。如果运动与姿态匹配,则设备10 转移到状态310,在状态310中执行与该姿态相关联的命令。该命令可以是在设备10上操作的特定应用。针对不同应用,或者甚至在同一应用的不同实例中,姿态可以具有不同的上下文。一旦完成命令,设备10返回状态304以跟踪其他运动。如果运动与姿态不匹配,则该设备返回状态304。以下将提供在状态308中进行的功能和处理的进一步细节。
作为运动数据分析的一部分,实施例使用坐标模型来跟踪和映射设备10的运动。 下面提供示例模型的进一步细节。
物理学中的牛顿第二定律规定,物体速度的变化产生“固有(proper) ”加速度。同样,在地球上,重力与重力加速度成正比。在数学上,加速度由向量表示,即由相对于给定坐标系的幅度和方向组成的量。此外,在任何时刻,作用在物体(如设备10)上的总加速度是重力和固有加速度的向量和。
参照图4A至图4C,在三张时间快照中示出了作用在设备10上的固有、重力和总加速度的向量。对于这些示例,运动被映射到χ-y平面中。在该二维平面中,向量用粗体小写字母及幅度来标示,或具有规则类型或被包围在绝对值符号中,如Ivl。在图4A中,重力加速度g被示为单独作用在设备10上的向量402,其静止在地球表面400的固定朝向上。注意,重力加速度从表面400指向“上”,它是对抗向地心的重力拉力的向上的力。在图4B中, 设备10被赋予侧向的力(如被用户移动)并以2. Om/s2向右加速,如向量404所示,表示由侧向力导致的固有加速度。作用在设备10上的净力由向量406示出,它是向量404的附有加速度与向量402的重力加速度之和,以幅度|g+a|示出,其中|g+a|由以下给出
|g+a|= Vs +a =10.0 m/s2 等式 I
其中g2 = (9. 81)2 = 96. 2等式 2
而且a2 = (2. O)2 = 4. O等式 3
(加速度值保留三位有效数字)
最后,在图4C中,设备10被赋予与向量404相反方向的侧向力,并且设备10沿表面402经历减速(如向量408所示)。该时间快照中的结果向量410反映出施加在设备10 上的力的变化。
参照图5,可以理解,根据其幅度和方向,固有加速度可以对设备10经历的总加速度具有最小或少量影响。例如,即使是+2. Om/s2的固有加速度的相对快的速率,对总加速度的幅度产生很小作用。当总加速度的幅度从9. 8m/s2变化为10. Om/s2时,产生近似2%的差值。图4A示出了 |g+a|对|a|的变化的相对不敏感性,其中与|g|参考线相比,针对 a值的所示范围绘出了等式I。可以看到
|g + a_|g|其中 |a| << Ig 等式 4
并且,即使在固有加速度|a|为重力加速度幅度的一半时,g+a与|g|的偏差略大于10% ο
图6A至图6C示出了来自图4A到图4C的三个向量时间快照,添加了叠加的半径为|g|的半圆形外壳612,在所描述的运动的连续点处示出了总加速度向量的近似路径。三个时间快照中的运动以离散或“量化”的方式被编码或映射为枚举符号序列,该枚举符号序列示为总加速度向量602、606和610并用符号“A、B和C”来枚举。还示出了其它向量604 和 608。
为协助对设备10的运动序列进行编目,提供了运动的枚举符号序列。该序列被称为“文本串”T{m}。例如,描述从图6A至图6B至图6C的运动的文本串为T{m} = {A,B,C} (其中m是串的长度,这里m= 3)。预定义的文本串被称为“模式串” P{n},其中η是模式串的相关联长度索引。此外,在时间快照的时刻,编码过程应将总加速度向量映射至最接近的枚举符号。
可以理解,通过捕获或多或少的时间快照,可以将所描述的线性运动的量化方案改变为不同精确度。此外,总加速度向量的位置的标记可以使用字母、整数或任何其他方便的枚举。此外,根据实施例,分隔枚举符号的时间和距离间隔可以是均匀或非均匀的。
为了向设备10提供对运动的一致编目,特定坐标参考应当相对于设备10固定,包括使参考图(如半圆612)在绘图上固定至设备10, 并使枚举符号固定至参考图上的预定位置。使用示例性固定坐标系,实施例可以在设备10不改变朝向地“固有”加速和/或减速时,通过选择不同的枚举符号,经由总加速度向量(固有向量与重力向量之和)来跟踪和映射“固有”加速度,如图6Α至图6C所示。
现在,对实施例在模型中用于跟踪和映射设备10的运动的量化方案上的旋转运动和/或朝向变化的作用提供进一步的细节。
当枚举符号固定在半圆612上,并且半圆612固定至设备10的坐标时,运动的量化方案可以扩展至包括设备的朝向相对于地球的变化。
图7Α至图7C示意了设备10的示例性倾斜运动的方面,该倾斜运动被编码为文本串T{m} = {C,A, B}。首先参照图7A,提供轴714来表示设备10的垂直轴。轴714相对于地球表面700和轴716倾斜几度,使得总加速度向量708 (在没有任何固有加速度的情况下仅为重力向量)在圆712上指向符号“C”。接下来,在图7B中,轴714旋转向几乎平的位置,其中总加速度向量的指向最接近符号“A”。最后,在图7C中,轴714的旋转继续至指向 “B”。因此,旋转运动在三个时间快照中被编码为文本串T{m} = {C,A,B}。因此,当设备 10的参考轴714相对于重力旋转时,通过使重力向量选择不同的枚举符号,实施例可以跟踪和映射纯旋转运动。因此,通过向量相加,实施例可以跟踪和映射旋转和固有加速度的组口 ο
对实施例使用的用于设备10的三维运动的示例性映射方案提供了进一步细节。 将实施例应用至三维旋转包括将设备10上所标记的点轨迹从固定的二维方案(如图6A至图6C的半圆612)扩展到三维空间方案。
参照图8A至图8D,在三维方案中,图6A至图6C中示出的二维运动可以映射如下。 首先,围绕设备10定义三维空间,在设备10上,空间的表面用坐标系标记。该坐标系提供了从设备的原点的点的轨迹。该点的轨迹可以具有二十面体对称。在一个实施例中,提供球壳812用于定义围绕设备10的空间。球壳812是概念上固定至设备10的参考球壳,如关于图7A至图7C所述。壳812是表面上具有规则间隔的点818的布置。如以下所述,点 818的布置是其它方案(如图9A中示出的壳912上的点918)的相关和简化版本。在另一实施例中,映射可以作为五(5)频率(V)或者5V 二十面体壳来提供。5V 二十面体壳在其表面上具有两百五十二(252)个点。为简明起见,示出了点818A、818B以及818C的标记。为了方便,壳可以归一化为单位半径。壳812可以具有二十面体对称。壳812上每一个点818 都具有唯一标记(至少对局部而言)。如下所示,通过一个或多个点,如由壳812提供的表示中的点818,或者图9A中壳912上提供的特定点918,可以跟踪运动和姿态作为运动的分量(根据设备10检测到的总加速度向量)。
在图8A至图8D中,设备10的总加速度向量808源自壳812的原点该原点标记为 “ο”,处于设备10的中心。总加速度向量808可以指向封闭球壳812上的任何位置。与图 6A至图6C中的二维运动相似,图8A至图8D的四幅图中的总体运动是沿着特定轴的固有加速接着是减速。在图8A中,设备10静止且加速度向量垂直指向点818A ;这是图6A的三维类似物。在图8B中,设备10沿着轴(由平行于轴的四个箭头示出)加速,总加速度向量 808是重力和固有加速度的向量和,并指向点818B ;这是图6B的三维类似物。在图8C中, 反向加速度导致总加速度向量808指向点818C ;这是图6C的三维类似物。在图8D中,运动停止,总加速度向量808再一次指向点818A。
图8A至图8D的运动由文本串T{m} = {A,B,C,A}表示,这是因为标记为A、B、C、 再为A的顶点最接近在四幅(连续)时间快照中由加速度计提供的数据。
图8A至图8D中的示例运动可以扩展为推广至包括具有其固有加速度的设备10 的坐标的旋转。在其他实施例中,采用更多或更少的顶点数和不同的对称性和/或顶点布置,可以使用其他球形覆盖方案。例如,可以使用由一系列经线和纬线相交而形成的点。对任何给定的覆盖方案,对每个运动,实施例提供了一种方案,用于计算、标识或选择与加速度计提供的数据中的特定姿态中的每个数据点最接近的顶点。因此,通过实施例,特定运动 (即姿态)可以被转换为由文本串表示的顶点序列。
顶点的间隔和数目确定了映射的精确度,即在实施例中,由算法量化将姿态量化为串的精确度。顶点越多,顶点间的间隔越近,可以越精确地映射姿态,但是也导致给定运动的文本串更长。
通过所描述的示例性映射方案,对实施例用于在串编码的姿态中进行识别和区分的示例序列分析提供了进一步细节。这样的序列分析可以由姿态分析模块222G来提供,并且可以被提供用于实现图3中的状态308。
首先,由于检测到设备10的运动,部分运动被量子化为文本串。然后,相对于预定义姿态的模式串来分析该文本串。一旦确定文本串与模式串相匹配,则可以执行与该模式串相关联的命令。对文本串的匹配的确定包括与阈值进行比较。可以是模式的精确匹配或充分相似的匹配。一旦标识为匹配(符合匹配阈值准则),则姿态被视为是匹配姿态。可以理解,对于如何确定检测到的串是否与模式串充分相关,存在梯度以认定文本串与模式串匹配。
参照图9A,现在提供实施例进彳丁的文本串处理的进一步细节。当设备10的运动被运动检测电路204、运动电路238以及触发电路240中的一个或多个检测到时,运动数据被处理并转换为“文本”流,其中文本中的每一个元素表示时间快照中球912上的位置,并且元素序列表示在给定时刻球上的位置序列。串T{m}提供了运动的表示。由运动检测电路204、运动电路238以及触发电路240中的一个或多个检测到的基本运动数据可以在数学上转换为运动向量,然后相对于所存储的、带有其点918的球912的数字表示来对其进行映射,以确定何时运动(或运动的一部分)穿过点918并因此指出该运动应被添加至串T{m}。
由于串T{m}是为设备10的运动而构建,可以将其与所存储的、编码为模式串P{n} 的姿态签名进行比较。实施例相对于姿态来分析运动,并在将其值与模式串Pin}中捕获的姿态签名进行比较时,在其T{m}中串为运动提供一定程度的偏差。例如,对于具有签名 Pin} = {A,B,C,D,E,F}的姿态,示例运动T{m} = {A,B,C,F,E,F}(与该示例具有“小”偏差,如在第四个位置上的符号“F”所示)可以认为是该姿态的可接受的匹配,但是第二示例运动T{m} = {A, B, C,F,A, F}(与该示例具有确定的“明显”偏差,如在第四和第五个位置上出现“F,A”序·列所示)则可能不是可接受的匹配。可以理解,偏差可以出现在运动中的位置。在该位置,偏差可以具有不同的值。运动中可以存在多于一个偏差。根据运动的可接受范围,每个偏差可以具有“明显”和/或“不明显”的容限。如下所述,这种可接受范围在替换矩阵中提供。
可以理解,姿态中不同点处的一个或多个偏差(具有不同大小)可以被认为是 “小”或“明显”的偏差(或者不是)。根据任意数量的范式设定这样的阈值,包括例如通过姿态的定量测量和对预设姿态数目的统计分析。下面描述的算法提供了一个阈值来确定何时偏差被视为“明显”以及因此在姿态的可接受测量参数之外。同偏差的大小一样,在串中持续时间存在的位置可能是一个因素。
为执行这种分析,根据实施例的设备10具有用于尝试标识与姿态的P串“充分”相似的T{m}串片断的模块、算法、方法、步骤以及过程。
实施例使用局部序列对齐分析来检查和强调输入串与目标串之间的整体相似度。 局部序列分析与编辑距离分析相关,但在实施例中可以找到两个输入串之间相似的最长序列(或充分长的序列),并计算归一化得分,而编辑距离可能有利于较短的匹配以满足其基于代价的算法。Levenshtein编辑距离算法是一种分析类型。Smith-Waterman分析是另一种类型。
局部序列对齐分析取决于三个变量。第一个是间隙罚分Γ ;第二个是替换矩阵 S(xi,yj);以及第三个是邻接矩阵A(i,j)。下面对每一个进行依次讨论。
间隙罚分Γ通过允许将空间隔策略性插入T{m}或P{n}来对齐提供灵活性,如果这种插入在T{m}和P{n}之间最大化总对齐得分。与Γ相关的惩罚是约束间隙的过度插入。下面将看到对齐算法中Γ的确切数学使用。替换矩阵在数学上直接从邻接矩阵导出
S(i, j) = 21 (i, j)-E(i, j)-2A(i, j) 等式 5
其中I为单位矩阵,并且E是全I矩阵。
算法中使用的替换矩阵基于球形覆盖上顶点之间的几何关系,表示为邻接矩阵A(i,j)。参照图9A至图9B,针对十个顶点,示出了特定的二十面体对称的球形覆盖(5V 二十面体912)的编号方案。每个顶点918用后缀来标识。因此,第五个顶点标识为顶点918-5。为方便起见,可以丢弃参考标号918。可以看出,顶点918-5与顶点 918-2、-3、-4、-6、-8以及-9邻接。在数学上,一个实施例以稀疏邻接矩阵的形式定义了这种拓扑,使得第m行定义了顶点“m”的邻接性,其中零(O)表示不邻接,一 (I)表示邻接。 因此,对于顶点 m = 5,A(5, 2) = A(5, 3) = A(5,4) = A(5,6) = A(5,8) = A(5,9) = 1,并且沿着第五行的所有其他元素为零,即A(5,m) = O。
图9C提供了 A(i,j)中前10x10个元素的矩阵,其中白色方块如A(l,4)指示在顶点I和顶点4之间没有邻接,黑色方块如A(l,3)指示这些顶点彼此邻接。图9D中示出整个252 X 252数组(与5V 二十面体相关联)。邻接矩阵形成了接下讨论的替换矩阵的基础。
替换矩阵S(Xi,Yj)的一种使用是为姿态检测算法提供健壮性。通过提供与T{m} 中哪些字符可能被其他字符替换(在阈值参数内)相关的信息,来实现与P In}的更高匹配得分。换言之,替换矩阵可以标识T{m}中与编码并存储在由模式串Pin}编码的姿态签名中的运动充分相似的运动。
对于本公开,如上所述的直接邻接被称作“一阶”邻接,因为在串匹配算法中只能够替换那些直接相邻的顶点。在实施例中,一阶邻接可以被扩展。在一个扩展中,将邻接扩展到二、三直到N阶,其中,替换分别为次邻接、再次邻接、直到N次邻接的顶点而不罚分。在一种变型扩展中,更高阶邻接项的替换可以包括与距离或阶成正比(或某个其他函数)的罚分,替换候选顶点来自在模式串Pin}中编码的姿态签名的匹配点。
更高阶替换矩阵S(Xi,yj)可以在类似于等式5的等式中从A(i,j)的更高次幂获得。值得注意的是,对于N的某个有限值,AN(i,j)将收敛于全I的E(i,j)矩阵。物理上, N的值是给定顶点可以距离任何其他顶点的最大步数。给定这个物理解释,算法或过程可以使用N在特定的不定评估·循环中提供中断条件限制,从而为算法增添健壮性。AN(i,j)的收敛是由于其与Markov转移矩阵的关系。
如上所述,间隙罚分Γ通过允许空间隔的策略性插入而为对齐策略提供灵活性, 如果这种插入最大化了总对齐得分。线性间隙罚分与所插入间隙数目成比例地减少总得分匹配,但是可以使用按照序列分析范式的备选间隙罚分。
在一个实施例中,通过递归过程来评估局部序列对齐。局部序列对齐可以是在图3 的状态308中进行的评估的一部分。其中,提供了两个串T{m}和Pin},具有条目S(x” Yj) 的替换矩阵和线性间隙罚分Γ。给定T{m}和P{n}之间的对齐度量,可以计算出动态编程矩阵D(i,j)。矩阵D(i,j)可以如下所述递归定义。
参照图10A,对用于比较文本串和模式串的算法提供进一步细节。为了提供对文本串的历史数据的跟踪,已经发现,可以修改Smith-Waterman算法并用于构建运动数据T{m} 和姿态数据Pin}的矩阵。Smith-Waterman算法生成T {m}和P {η}之间的对齐得分,定义为动态编程矩阵D(i,j)中的最大值。该对齐得分可以作为对齐百分比来提供,即T{m}与 Pin}相同的最大可能对齐的百分比。
在一个实施例中,设备10以预定义的规则速率生成与检测到的设备10的运动相关的数据。该数据用于构建文本串T{m}。在修改的算法中,将检测到的串T{m}和P{n}分别输入矩阵D(i,j)的左侧和顶部,其中m和η分别是T和P的长度。在实施例的一种实现中,T{m}和P{n}串用基16的整数枚举符号表示。D(i,j)最左侧的列和顶部的行分别初始化如下
D(i,O) =0,i = O. . . m
D (O, j) = O, j = O. . . η
对其余矩阵元素进行递归计算,其中D(i,j)中的条目通过递归公式计算,该递归公式使用先前的行和/或列的值,并由S(Xi,yp的值或者间隙罚分Γ修改,从左到右填充当前行。D(i,j)的条目被如下设置为O或三个周围条目之一中的最小值
D(i,j) = max {O
[或]D(i_ l,j)+ r
[或]D(i,j_l)+ r
[或]D(1-1,j-l)+S(Xi,yj)
}
其中i =1. · · m, j =1. · · n 等式 6
图1OA中示出了示例D(i,j),其中T{m}和P{n}中的枚举符号是基16的整数,并且
Γ = -1/2 ;等式 7
T{m} = {A2, FF, C7, CO, C2, A2, C2, BF, FF};等式 8
P {n} = {BF, CO, C2, C4, C7};等式 9
并且S(xi; y」)如图1OC中所定义。
参照图10A,D (i,j)中找到的最大值是4. 5,因此,定义对齐得分为4. 5。给定S (Xi, yj),其中每个对齐给对齐得分加1,与P{n = 5}的最大(“最佳”)可能对齐将生成的得分为5,其中,文本串中接收到的符号与模式串中相应的五个元素精确匹配。因此,对齐得分 4. 5提供了与精确匹配90%的对齐(4. 5/5)。可以理解,对齐得分可以是对Γ和SUi, Yj) 的函数。考虑到实施例中特定的实时上下文,可以仔细选择这种值。针对实现方式,对齐得分的阈值可以被设置为任何适合的值。在实施例操作期间,阈值可以改变。
实施例相对于姿态签名Pin}来分析运动T{m},并相对于模式串P{n}中捕获到的姿态签名来给出运动T{m}的偏差程度。在等式7至9给出的上述示例以及图1OC定义的S(Xi,y」)的情况下,对齐得分4. 5对应于10%的偏差。偏差与对齐如下相关%偏差= (100-%对齐)。
从对等式6的观察可以理解,在计算中的任一点,只要在存储器中保存矩阵D(i, j)的当前行和先前行,这是因为,实施例只需要对齐的最终得分。这为计算资源提供了高效使用。因此,所需存储器的上限在2Xn个整数。可以理解,在Smith-Waterman算法的标准实现中的nXm回溯矩阵(traceback matrix)对实施例并不是必须的,这是由于不需要物理对齐信息的细节以获得简单对齐得分。再一次,对于这种运动,存储器的上限在2Xn。
可以理解,在动态编程矩阵的一次分析中,相对于运动可以分析多个姿态。下面提供这种分析的进一步细节。
周期性地,将数据长度为L的帧提供给运动检测模块222F,在运动检测模块222F 中,将帧中每个数据依次转换成枚举符号。仅当符号不同于先前符号时才将该符号追加至 T。因此可以理解,最终文本串T的长度可以因此比数据帧长度L短,即m < L。
每个帧中连续重复的符号可以在运动模块222F中标识出并从文本串中将其丢弃。重复符号仅表示预先选择的加速度数据采样速率比实施例中运动的速率快。通过减少对执行姿态的速度的依赖性,丢弃重复的符号改进了算法的健壮性。丢弃连续重复的符号也减少了计算开销,尤其在静止或近似静止期间,此时只要静止或近似静止状态持续,文本串的长度可以趋于零。丢弃连续重复出现的符号也减小了文本串的长度。串现在的长度为 “m”,该长度小于或等于数据帧的长度L,即m < L。减小串长度的好处包括减小动态编程矩阵D(i,j)的大小、对其执行的计算的数量以及姿态分析模块222G中进行这些计算所需要的存储器。
对跨越两个文本串T1IV }和T2{m”}的姿态签名Pin}的分析提供进一步细节。
Smith-Waterman算法的标准应用将矩阵D (i, j)的顶行归零,同时丢弃所有先前的对齐数据。然而,实施例提供了搜索之间对先前对齐数据的保持。其中,可以一起处理两个运动文本串T1 {m’}和T2 {m”},使得在T1 {m’}中获得的对齐信息被携带至T2 {m”}的对齐评估。当检测到的姿态跨越两个连续文本串T1IV }和!^!!!”}时,这种保持是有用的。保持这种对齐数据避免了在处理T1IV }后开始分析T2 {m”}时不得不复位对齐状态,在现有技术的Smith-Waterman分析技术中会出现这种状况。
当姿态跨越两个连续的文本串时,实施例仍可以标识该姿态。通过将等式8中的示例串分为两段T1IV }和T2 {m”}来说明这一点,SP
T{m|=T| {m’丨 T2{m”丨;等式 10
其中 为串连接运算符。
索引惯例是m = m,+m”,其中m’ = 4 ;m” = 5,并且其中
权利要求
1.一种用于分析手持电子设备的运动的方法,包括跟踪所述设备的运动数据;将所述运动数据映射到串表示,所述串表示与布置在与所述设备相关联的空间坐标系中的枚举符号相关;构造矩阵,所述矩阵包括编程矩阵D(i,j),所述编程矩阵D(i,j)包含所述设备的先前的运动数据、所述串表示和表示与针对所述设备的命令相关的姿态的姿态串,以确定所述姿态是否已被赋予所述设备,所述矩阵包括mXn维,其中m是串表示的长度,η是姿态串的长度,所述串表示的分量由所述m维来标识,所述姿态串的分量由所述η维来标识,最左侧的列 D(i,0) = O, i = O. . . m ;顶行 D (O, j) = O, j = O. . . η ;以及所述矩阵中的其余元素被设置成O或以下之一中的最小值D(i, j) = max {O或D(i_l,j)+间隙罚分或 D(i,j_l)+间隙罚分或 D(i-1,j_l) +替换矩阵的第i,j项}。所述替换矩阵基于空间坐标系顶点间的几何关系;通过遍历所述矩阵的子集以生成所述串表示中的值相对所述姿态串的匹配得分,来计算所述串表示相对所述姿态串的匹配得分,所述计算匹配得分利用Smith-Waterman算法递归遍历所述矩阵的子集直至遇到停止条件;以及如果所述串表示与所述姿态串匹配,则在所述设备上执行与所述姿态相关联的命令。
2.如权利要求I所述的方法,其中,将所述串表示与阈值进行比较,以确定所述串表示是否与所述姿态串表示相匹配。
3.如权利要求I所述的方法,其中,所述空间坐标系提供从所述设备的坐标系原点开始的点的轨迹。
4.如权利要求I所述的方法,其中,所述将所述运动数据映射到所述串表示包括 将所述运动数据转换为表示所述运动的运动向量;计算所述设备的总加速度向量,所述总加速度向量包括所述设备的所述运动向量和倾斜向量;以及相对于所述空间坐标系映射所述总加速度向量,以标识枚举符号中与所述运动匹配的枚举符号。
5.如权利要求4所述的方法,其中,加速度计提供所述设备的所述运动数据。
6.如权利要求I所述的方法,还包括利用阈值来丢弃所述串表示中连续重复的枚举符号。
7.如权利要求6所述的方法,其中,利用局部序列对齐或编辑距离算法之一,相对于所述阈值来评估所述串表示。
8.如权利要求I所述的方法,其中,所述计算所述匹配得分利用所述串表示和所述先前的运动数据一起来确定所述姿态串是否跨越所述串表示和所述先前的运动数据。
9.一种用于分析手持电子设备的运动的系统,包括存储器存储设备;微处理器;第一模块,响应于所述设备的运动来产生所述设备的运动数据;第二模块,向所述微处理器提供指令,以将所述运动数据映射到串表示,所述串表示与布置在与所述设备相关联的空间坐标系中的枚举符号相关;构造矩阵,所述矩阵包括编程矩阵D(i,j),所述编程矩阵D(i,j)包含所述设备的先前的运动数据、所述串表示和表示与针对所述设备的命令相关的姿态的姿态串,以确定所述姿态是否已被赋予所述设备,所述矩阵包括mXn维,其中m是串表示的长度,η是姿态串的长度,所述串表示的分量由所述m维来标识,所述姿态串的分量由所述η维来标识,最左侧的列 D(i,0) = O, i = O. . . m ;顶行 D (O, j) = O, j = O. . . η ;以及所述矩阵中的其余元素被设置成O或以下之一中的最小值D(i, j) = max {O或D(i_l,j)+间隙罚分或 D(i,j_l)+间隙罚分或 D(i-1,j_l) +替换矩阵的第i,j项}。所述替换矩阵基于空间坐标系顶点间的几何关系;以及第三模块,向所述微处理器提供指令,以相对于姿态串来分析所述设备的所述串表示, 所述姿态串表示与针对所述设备的命令相关的姿态,以确定所述姿态是否已被赋予所述设备;以及如果所述串表示与所述姿态串匹配,则在所述设备上执行与所述姿态相关联的命令。
全文摘要
本公开涉及一种用于分析手持电子设备的运动的系统和方法。所述系统包括存储器;微处理器;第一模块,响应于所述设备的运动来产生运动数据;第二模块,向微处理器提供指令,以将运动数据映射到串表示,所述串表示与在与所述设备相关联的空间坐标系中的符号相关,并在存储器中存储所述串表示;以及第三模块。第三模块向微处理器提供指令,以相对于与姿态串相关的数据来分析与所述串表示相关的数据,所述姿态串表示与针对所述设备的命令相关的姿态,以确定所述姿态是否已被赋予所述设备;以及如果所述串表示与所述姿态串充分匹配,则在所述设备上执行与所述姿态相关联的命令。
文档编号G06F1/16GK102981568SQ20121046012
公开日2013年3月20日 申请日期2009年9月25日 优先权日2008年9月25日
发明者杰弗里·埃尔顿·休·道斯, 西恩·巴塞洛缪·塞门斯 申请人:捷讯研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1