用于与空间操作系统一起使用的空间多模式控制设备的制作方法

文档序号:6350015阅读:291来源:国知局
专利名称:用于与空间操作系统一起使用的空间多模式控制设备的制作方法
技术领域
描述了与控制系统和设备有关的实施例,该控制系统和设备包括有在计算处理之内或者在计算处理之间的数据表示、操作和交换。
背景技术
计算系统的实时控制要求用户的物理行为被翻译成输入信号。例如,电视遥控响应于按钮按下而生成特定的信号,计算机键盘响应于键按下而生成信号,而鼠标生成表示双轴线移动和按钮按下的信号。在空间或姿势输入系统中,手和物体在三维空间中的移动被解释为能够表示高达六个空间自由度和大量的模态或姿态的信号。通过引用的合并在本说明书中提及的每项专利、专利申请和/或出版物都以其全部内容通过引用合并在本文中到以下程度好像每项单独的专利、专利申请和/或出版物都被具体且单独地指示出是通过引用被合并的一样。


图1示出了根据实施例的棒状多模式输入设备(MMID);图2是根据实施例的使用磁场跟踪的匪ID的框图;图3是根据实施例的跟踪环境下的匪ID的框图;图如和4b示出了根据实施例的具有红外(IR)发光二极管(LED)的匪ID的输入状态;图fe和恥示出了根据替选实施例的具有顶LED的匪ID的输入状态;图6是根据实施例的姿势控制系统的框图;图7是根据实施例的标记标签的图;图8是根据实施例的姿势词汇中的姿态的图;图9是根据实施例的姿势词汇中的取向的图;图10是根据实施例的姿势词汇中的两手组合的图;图11是根据实施例的姿势词汇中的取向混合的图12是根据实施例的系统操作的流程图;图13/1和13/2示出了根据实施例的示例命令;图14是根据实施例的包括使用色拉(slaw)、蛋白质(protein)和池(pool)的数据表示的处理环境的框图;图15是根据实施例的蛋白质的框图;图16是根据实施例的记述(descrip)的框图;图17是根据实施例的摄取(ingest)的框图;图18是根据实施例的色拉的框图;图19A是根据实施例的在池中的蛋白质的框图;图19B1和19B2示出了根据实施例的色拉头部格式;图19C是根据实施例的使用蛋白质的流程图;图19D是根据实施例的构造或生成蛋白质的流程图;图20是根据实施例的包括使用色拉、蛋白质和池的数据交换的处理环境的框图;图21是根据实施例的下述处理环境的框图,该处理环境包括多个设备和在所述设备中的一个或更多个设备上运行的众多程序,其中,等离子体构造(即池、蛋白质和色拉)用于允许众多运行的程序共享并集体地响应由设备所生成的事件;图22是根据可替换实施例的下述处理环境的框图,该处理环境包括多个设备和在所述设备中的一个或更多个设备上运行的众多程序,其中,等离子体构造(即池、蛋白质和色拉)用于允许众多运行的程序共享并集体地响应由设备所生成的事件;图23是根据另一个可替换实施例的下述处理环境的框图,该处理环境包括多个输入设备,所述多个输入设备耦接在运行于设备中的一个或更多个设备上的众多程序当中,其中,等离子体构造(即池、蛋白质和色拉)用于允许众多运行的程序共享并集体地响应由输入设备所生成的事件;图M是根据又一个可替换实施例的下述处理环境的框图,该处理环境包括多个设备,所述多个设备耦接在运行于设备中的一个或更多个设备上的众多程序当中,其中,等离子体构造(即池、蛋白质和色拉)用于允许众多运行的程序共享并集体地响应由设备所生成的事件;图25是根据再一个可替换实施例的下述处理环境的框图,该处理环境包括多个设备,所述多个设备耦接在运行于设备中的一个或更多个设备上的众多程序当中,其中,等离子体构造(即池、蛋白质和色拉)用于允许对运行的程序进行状态检查、可视化和调试;图沈是根据另外的可替换实施例的下述处理环境的框图,该处理环境包括多个设备,所述多个设备耦接在运行于设备中的一个或更多个设备上的众多程序当中,其中,等离子体构造(即池、蛋白质和色拉)用于允许影响或控制该进程池中产生和放置的状态信息的特性。
具体实施例方式这里,描述了一种用于将多模式输入提供给空间或姿势计算系统的系统和方法。 系统和方法的实施例是在空间操作环境(SOE)的背景下提供的,以下将进行详细描述。包括姿势控制系统或者基于姿势的控制系统的SOE可以可替换地被称为空间用户接口(SUI)或者空间接口(Si)。在此,描述了多模式输入设备(MMID)的大量实施例,其中,MMID使得空间或姿势输入系统的用户能够直观并且以人机工程学有效的方式访问一系列输入的功能性。实施例的MMID为手持输入设备。实施例的MMID包括能够精确且实时地跟踪设备的位置和取向的装置。实施例的MMID包括物理和机械结构,使得持有和操作该设备的人可以容易地绕着该设备的一个或更多个轴线旋转该设备。实施例的MMID包括物理和机械结构,使得可以用多于一次旋转紧握来舒适地握住和操作该设备。实施例的MMID包括软件部件或机构,该软件部件或机构能够将用户维持和操作设备的旋转紧握状态以及这些操作旋转状态之间的转换二者解译并且翻译成用户输入信号。该软件部件依赖于与设备对应的跟踪数据。此外, 这样的输入设备可以具有集成在其形式中的其他输入能力,其形式诸如按钮、操纵杆、滑动块和滚轮。设备还可以具有集成的输出能力,诸如灯、音频扬声器、光栅显示器、以及振动电机。如在此提出的那样,对于各种实施例的多模式输入设备,各种各样的具体配置都是可能的。设备可以在物理形状、机械和人机工程学方面不同。设备还可以在由物理设计、 跟踪技术和软件处理的组合支持的离散模态数量上不同。此外,MMID可以在辅助机载输入 (即除位置、取向和模态之外)的设计方面和在机载输出能力方面不同。实施例的匪ID包括具有壳的棒状设备,该壳具有与消费电子远程控制类似的形状因子。图1示出了根据实施例的棒状MMID 100。MMID100大约五英寸长、一个半英寸宽、 具有三角形横截面,然而不限于此。MMID 100壳的每个面包括单个输入传感器,实施例中的输入传感器包括机电按钮,然而,替选实施例可以在每个面上具有更多或更少量的按钮、或者具有不同类型的按钮。当用户握住MMID 100时,三角形棱柱的长边缘104中的一个自然在用户的手中面向下,从而,容置在用户的手指的弯曲中,同时,棱柱的相对面被定向成向上并且坐落在用户的拇指的下面。MMID 100可以在手指和拇指的最小移动的情况下绕着长轴线旋转120度,以将棱柱的相邻面变成向上的取向。从而,棱柱包括与棱柱的面对应的三个明显的易于访问的模式取向。用户匪ID 100通过所有(例如,三个)取向快速、可重复且重复地旋转,甚至可以通过用户首次试用该设备来通过所有(例如,三个)取向快速、可重复且重复地旋转。实施例的匪ID 100的位置通过使用磁场跟踪来跟踪,这一点将在以下描述,然而,实施例的MMID 100的位置也可以通过使用其他跟踪技术(其中某些在此进行描述)来跟踪。匪ID 100包括电路、微控制器和用于相对于交流(AC)磁场或电磁场(EMF)来跟踪设备的程序代码。实施例的EMF是通过接近MMID的兼容基站来生成和发射的,但是不限于此。MMID 100包括也称为输入传感器的一个或更多个机械按钮、连同用于数字化一个或更多个按钮的状态的相应的电子器件。此外,MMID100包括提供无线电链路以向主系统报告跟踪数据(例如,取向数据、位置数据等)和按钮按下原始数据的电路。此外,MMID 100还包括电池和电源电路。输入处理软件将原始跟踪和按钮按下数据翻译成包括有空间位置和取向的六个度、按钮向下转换、按钮向上转换和按钮状态的运行账户的数据。实施例的输入处理软件部分地在设备上执行、并且部分作为应用代码在主系统上执行,但是不限于此,而是可以在任何数量/组合的处理器设备或仅在一个处理器上以分布式方式运行。该数据被传送给应用软件,作为一系列规划的“事件”(规划的事件的处理在下面详细描述)。此外,该输入处理层向应用软件提供模式转换和运行模式状态事件。如下面详细描述的,可能有三个状态(例如,i、ii 和 iii)和六个转换(例如,i_>ii、i_>iii、ii_>iii、ii_>i、iii_>i、以及
iii->ii)ο实施例的处理层使用滞后使得用户能够在不离开给定模式的情况下访问沿着 MMID的长轴线的旋转的最大值,并且来防止在MMID接近转换角度的边缘时模式状态之间的快速且不需要的翻转(flip-flopping)。在使用该滞后时,为了触发模式之间的转换,实施例的匪ID应当以相对于之前的模式的中心角度大于120度的角度旋转。因此,如果匪ID 处于模式(i),其中,绝对角度中心为零度,则MMID逻辑上保持处于模式⑴状态,直到在任一方向上检测到大于例如150度的围绕长轴的旋转为止。当MMID被旋转151度时,其转换至模式状态(ii),模式状态(ii)具有120度的角度中心。为了实现返回到状态(i),MMID 必须在相反的意义下被旋转越过该角度中心-150度,以使其越过-30 (或者330)度的绝对角度。滞后带——假定大约30度(150度减去120)——是能够通过程序来设定的,并且可以通过应用代码或者通过用户喜好设置来调节。该滞后示例例如被设置用于三面匪皿,如上所述,但不限于在此对于三面设备描述的值;替选实施例的旋转角度和/或滞后带根据壳或棒的形状因子以及设计者/用户喜好来确定。此外,可以通过应用代码来有选择地停用某些模式。因此,可以通过应用代码将 MMID视为输出恒定的模态状态(i)、(ii)或(iii)的单模式设备。或者,可以通过将停用的模式专有地映射至两个剩余模式中的任一个或者通过将停用的模式视为滞后带的附加区域来停用任意一个模式。此外,系统可以被配置成永久地将MMID的物理面(例如,三角形棱柱)与每个模式相关联,其中,面借助于有源或无源记号被可选地标记为模式关联。或者,系统可以被配置成以联系上下文的方式向面分配模式。作为后面的情况的示例,MMID可以被配置成使得当其在不活动的一段时间之后被用户首次拿起时,初始向上的面与模式(i)相关联。在这种情况下,可以在MMID上、在用户留意的图形显示器上、或者在MMID和图形显示器的组合上设置有源模式的指示器。MMID的每个面包括一个按钮,该一个按钮也称为输入传感器。这些按钮由应用层软件同样地处理,但是不限于此。从用户的角度来看,可以认为设备具有一个逻辑按钮,由于人机工程学实用性而具有三个物理体现。MMID的电路和软件确实区分不同物理按钮的操纵,然而,系统可以被布置成使得在特定组合中按下按钮将设备放置在各种配置中并且重置状态。实施例的MMID通过使用磁场跟踪技术(参见例如美国专利第3,983,474号)来起作用。将正交线圈用于生成和感测磁场的应用已经用于定位和跟踪远程物体。例如,美国专利第3,644,825号教导了生成和感测相对于彼此移动的线圈。或者,磁场可以被制成旋转,这一点在 Kalmus 的"A New Guiding and Tracking System,,(IRE Transactions on Aerospace and Navigational Electronic, March 1962,第 7 至 10 页)中进行了教导。也已经使用了将坐标变换器用于确定第一坐标系统相对于第二坐标系统的取向的应用。例如,美国专利第3,474,241和3,660,648号公开了以下的变换器该变换器将在第一坐标系中测得的角度速率或角度误差变换成关于中间坐标系的轴而限定的角速率,关于中间坐标系的轴限定了角度旋转或速率,并且接着结合角度旋转或速率以确定限定角度轴序列的角度,该角度轴序列通过欧拉角(Euler angle)的使用限定第一坐标系相对于第二坐标系的取向。图2是根据实施例的使用磁场跟踪的匪ID的框图。被定位成接近或在匪ID的跟踪环境下的基站210提供跟踪场并且与MMID 211通信。在基站中,信号发生器通过使用场发生器电路201产生磁场,以交替地在三个正交线圈202中生成波形。由三个线圈生成的电磁信号由MMID中的三个正交线圈203来接收。从三个线圈接收到的信号通常通过使用运算放大器204被放大并且被变换成可以通过微处理器207来采样的数字信号205。微处理器通过使用数字信号处理(DSP)技术来分析三个线圈的输入。DSP处理提供从基站投影匪ID的距离和取向的位置向量、以及确定MMID的取向的取向矩阵。附加信息(例如,时间戳、通用ID等)也可以与匪ID位置数据组合。一个或更多个用户输入传感器206也感测状态。输入传感器206举例来说可以是瞬时开关、拨动开关、 操纵杆型输入设备、和/或触摸传感器等。来自这些开关的采样数据包括一个比特(用于触摸按钮)或更复杂的数据值,诸如用于触摸传感器的浮点x、y坐标。在实施例中,微处理器将包括有位置数据和取向数据的数据从匪ID无线地传达给主进程。MMID具有射频发射机和接收机(TX/RX) 208,用于将数据通过“接入点”209传达给网络。该无线电链路可以使用任意无线协议(例如,蓝牙、802. 11、无线USB、专有方案、 Nordic半导体nRFMLOl低功率无线电方案等)。接入点可以将接收到的数据流通过局域网(例如,无线互联网10/100/1000BaSeT、802· 11等)或者其他接口 (例如USB等)传达给一个或更多个主计算机。图3是根据实施例的跟踪环境下的匪ID的框图。匪ID 304被示出为与跟踪环境 300有关。如上所述,MMID与基站301通信,但是,MMID可以在跟踪环境300下与任意数量的不同类型的电子设备和/或电子设备的组合通信。跟踪环境不限于特定的尺寸,这是因为由于射频通信信道的范围可以与AC磁场的范围不同,所以具有线圈的附加AC磁场发生器305/306/308可以被设置成产生附加跟踪信标。这些信标可以以不同的频率操作和/或在不同时间传送。当MMID的用户远离场发生器302并朝着发生器305移动时,MMID将使用任意瞬间更强的信号来确定位置和取向,但是仍通过使用接入点303将该数据传回网络。当MMID离开接入点303的范围并且朝着基站306移动时,MMID将无线电链路与基站306中的接入点相关联。最终,在磁场发生器与数据接入点之间徘徊的能力使得MMID能够用在任意大的跟踪环境中。注意,接入点和磁场发生器不需要在相同的位置307/308处。 由于接入点和场发生器二者具有通过局域网与一个或更多个主设备通信的装置,所以频率发生器305可以自主地操作以使得能够进行更容易的安装。下面是人使用实施例的匪ID的操作示例。在操作过程中,操作者站在三张相联 (triptych-format)格式的宽的高宽比的投影屏幕前面的某个距离(例如十英寸)处,投影屏幕大约是两米高四米宽;她的紧前面立有一点五米宽的桌子。桌子本身也被在正头顶天花板安装的投影仪视为投影表面。操作者用她的右手舒适地握住具有三角形横截面MMID 的MMID,其中,平坦的侧面“i”指向上。当她将MMID朝着前屏幕并围绕前屏幕瞄准时,部分透明的图形光标表示MMID的指示向量与屏幕表面的相交。输入系统的高帧速率和低等待时间有助于因果直观性的有力感测在操作者改变MMID的瞄准时,光标在前向屏幕上的对应的移动没有明显地落后;感知是摇动了闪光灯或者激光指针。由操作者进行的使用方面的应用是产品打包预览系统,并且该应用被配置成以与很多类似的应用相同的方式使用MMID ;因而,MMID模态对于操作者来说是非常熟悉的。模式“ i ”使得能够在完全详细的级别进行应用元件的直接操纵;模式“ ii,,进行元件的元操纵 (例如,在组级别);而模式“iii”允许三维操纵。在任意情况下,光标的出现不仅反映当前模式而且还可视地表示切换MMID的模式所必需的轴向旋转的方向。目前,光标示出了 MMID 的顺时针旋转会产生至“ii”的模式转换,而逆时针旋转会产生至模式“iii”的转换。在前向屏幕三张相联中的左边第三个上布置的是小物体分组的阵列。在她的拇指下面,操作者顺时针轴向地旋转MMID,直到下一个面向上瞄准为止,并且光标改变以表示至状态“ii”的模式转换。她将MMID向左瞄准,并且,当光标在每个物体分组上行进时,加亮的边界渐强,接着,在光标离开分组的凸起的外壳时,加亮的边界渐弱。操作者使得光标能够停留在特定的分组上并且接着压下紧在她的拇指下面的按钮。光标表示物体分组已经被抓住,并且在她朝着前向屏幕的中心摇动MMID时分组移动以跟踪光标。操作者在她已经将缩小的分组带到紧在她前面的位置处时释放按钮。分组快速地扩展以充满第三前向屏幕的中心的全部区域,以揭示各种形状的塑料瓶和文字指示“宠物能量饮料”的集合。操作者再次绕着MMID的长轴顺时针旋转MMID,由此,光标改变以表示模式“iii” 现在在操作中,并且从而3D操纵被启用。操作者将光标瞄准形状如戴有头饰的狮子狗的腿的特定的球形瓶子处,并且瓶子可视地加亮;接着,操作者按按钮。现在,系统进入直接操纵模式,在该直接操纵模式中,MMID的平移和旋转控制被描绘的虚拟空间中的所选物体的平移和旋转。因此,在操作者朝着她自身(直接沿着至前向屏幕的几何法线)拉动MMID时, 瓶子变得更大,以朝着虚拟相机逼近。类似地,MMID的左右移动被翻译成所描绘的瓶子的左右移动(沿着屏幕的水平轴线),而MMID的上下平移产生瓶子的垂直平移。向这些平移施加能够对于每个操作者进行定制的适当的比例因子,使得匪ID的适度的移动影响虚拟物体的更大的移动;从而,使得能够在不超出操作者舒适的手部移动的范围的情况下访问图形/虚拟环境的全部区域。对自MMID取向至被描绘的瓶子的绝对旋转位置的映射施加类似的换算功能。在本示例中,操作者的喜好命令进行四倍的换算,使得MMID的围绕任意轴线的九十度的旋转产生虚拟物体的全三百六十度的旋转(90度乘以四(4)得到360度)。这确保了在操作者从每个可能的角度检查瓶子时,基于手腕和基于臂部的MMID旋转保持在舒适的范围内。因此,例如,在她向上旋转^ID,以围绕本地χ轴线将匪ID倾斜九十度,使得匪ID从向前指示发展成向上指示时,瓶子执行围绕屏幕本地χ轴线的全旋转,以回到其初始取向,正如MMID 实现完全向上的姿势。注意,只要匪ID的按钮保持按下,则施加适当的模式锁定影响在不引起MMID切换至模式“i”的情况下、操作者可以绕着匪ID的长轴线将MMID顺时针旋转一百七十度(以产生虚拟物体的五百一十度“屏幕内”旋转)。当操作者释放MMID的按钮时,所描绘的瓶子从直接操纵被释放并且保持其瞬时位置和旋转。如果在按钮释放的时刻MMID处于通常会对应于非“iii”的MMID模式的旋转姿态,则在模式切换被实际实现之前,操作者被批准以一个第二时间滞后(视觉上表示为屏幕上的光标图形状态的一部分);如果操作者将MMID旋转地返回到与模式“iii”对应的姿态,则直接3D操纵模式继续。那么,她可以通过将光标叠加在球形瓶子上并且再次按下按钮来执行另外的位置和姿态调整;而如果她将光标瞄准在不同的瓶子处,则该物体会服从她的操纵。操作者最终将MMID切换至模式“ii”并且通过使用拖曳模态来将调色板从右屏幕带至中心屏幕,其中,该拖曳模态与她将瓶子分组带至中心屏幕的模态相同;当她释放按钮时,调色板扩展并且定位其自身至球形瓶子的侧面。接着,她旋转匪ID以选择模式“i”并且操纵调色板的选择界面;在她希望的深红色色调被选中时,她按下按钮并且将彩色样本从调色板向下并向左拖曳,直到其覆盖形成球形瓶子的清洁材料为止。当她释放按钮时,施加颜色并且瓶子的材料采用透明的深红色。仍然在模式“i”中,操作者将匪ID直接指向球形瓶子处,该瓶子作为响应加亮并且操作者通过按下按钮向下摆动MMID,以将瓶子的图像从前屏幕拖曳至紧在她前面的桌子的表面。她释放按钮并从而释放瓶子,以让其在桌子上就位。接着,操作者旋转回到模式 “ii”并且将MMID向前指向其他宠物能量饮料瓶的集合处;她按下按钮并且立刻向左轻拍 MMID,以在不到一秒之后释放该按钮。瓶子的集合飞向左,并在其行进时缩小尺寸,直到其以其开始的总体尺寸停在该位置处为止。接着,操作者选择宠物保健产品的不同的分组,以将其如上地带入中心显示区域,以便选择、检查和修改其中一个项目。她最终将所选物体添加至台式显示器。操作者继续这样的监护过程。在某点处,操作者选择通过使用简单的几何编辑器来修改宠物按摩油的罐的物理几何形状,也根据前向屏幕三张相联中的右边第三个上出现的工具的集合来拉动。为了清楚,除了两个匪ID的同时使用,在此省略了对于该编辑器的使用中涉及的很多操纵的描述。在本示例中,操作者使用第二 MMID,将第二 MMID握在她的左手中,以通过使用一个MMID 抓取罐的几何形状的顶部并通过使用另一个匪ID抓取罐的底部(两个匪ID都处于模式 “iii”)来在罐(原本是具有矩形横截面的简单的挤压形状)中放入捻合线。因此,由于顶部和底部分别“固定”,所以操作者沿着相反的方向旋转MMID;这引起了围绕罐的主轴线的线性扭曲。操作者完成这些几何修改并将编辑模块返回到右显示器;她将修改的罐添加至桌子的扩大的分类。最后,桌子上存在所描绘的一打物体,并且前向中心显示器再次成为空的——操作者已经按模式“ii”向左边轻拍了最后一组(以及向右边轻拍了调色板)。接着,仍然在模式“ii”下,她将MMID指向桌子处,但是她的瞄准避免了这里的产品描绘;作为替代,她按下右按钮并且用MMID描绘圆形轨迹,好像绕着所显示的物体描绘弯曲的畜栏形状。作为响应,系统向之前区分的产品描绘施加分组操作,以组织他们的布局并适配他们的相对大小。 最后,操作者使用模式“ii”下的拖曳来弹性地将图解的“导管”的输入孔径从右显示器延伸至中心显示器;接着,她拿起桌子的定制的产品集合,将其向上拖至中心屏幕,并且将其放置在导管的口中。管子吞下该集合并缩回到右显示器;该集合被输送给操作者的同事,该同事正期待检查她的工作并且用其来构造宠物商店过道的相互作用的显像。替选实施例的MMID包括壳,该壳具有矩形形状因子。该替选实施例的指针例如是五英寸长、一点五英寸宽、半英寸深,但是很多其他尺寸和/或配置也是可以的。MMID包括以下详细描述的光学跟踪标签。MMID不包括电子器件,这是因为处理软件在主系统环境中运行,但是实施例不限于此。用户很自然地握住指针,使得长轴线用于指向用户的环境中的物体(包括虚拟物体)。可以将指针绕着长轴线旋转,以在两个模式取向(例如,模式i和ii)之间转换。尽管只有两个模式,可能有四个模式转换,这是因为系统可以在转换期间区分旋转的方向从模式i至模式ii/顺时针的转换;从模式i至模式ii/逆时针的转换;从模式ii至模式i/ 顺时针的转换;从模式ii至模式i/逆时针的转换。根据上述匪ID,在输入处理软件中跟踪这些旋转转换,并且这些旋转转换可能易受滞后锁定的影响。光学标签安装在指针的“前”部(例如,前半部分)上,例如在从用户的手向外延伸的区域中,但是不限于此。指针的两个侧面中的每侧面安装有两个标签。每侧面的最前向的标签被固定就位。每侧面的最后的标签被定位在前向标签后面的某个距离(例如,五 (5)厘米)处并且沿着相同的轴线对准并且根据相同的轴线被定向。该后面的标签被固定至弹簧安装的滑动机构(平移的方向与指针的长轴线对准),使得用户的拇指可以在机构上向前推,以将两个标签之间的距离减小大约一厘米。当两个标签之间的距离是五厘米时,输入处理软件将设备的逻辑按钮状态解译成处于状态(0)。为了实现转换至状态(1),后面的标签移动一定的距离,以更接近前面的标签(例如,到达距前面的标签4.2厘米的范围内)。仅当标签之间的距离超过4. 8厘米时, 才触发回到按钮状态(1)的转换。这与施加给设备的主要(旋转)模式转换的滞后类似。 而且,滞后带的尺寸是可配置的。在光学跟踪MMID的实施例中,在标签上排列有大量点的情况下使用光学跟踪标签。这些点例如可以是覆盖有后向反射器的很小的球,以使得顶跟踪系统(以下描述)能够确定加标签的物体的位置和取向。在该加标签的物体是输入MMID的情况下,可以期望提供一种用于跟踪系统的装置,以确定什么时候用户提供非几何、状态变化的输入,该输入诸如按下按钮。各种替选实施例的MMID通过使用红外(IR)发光二极管(LED) (IR LED)来操作, 以基于用户输入提供仅在某些状态下对相机可见的跟踪点。这些替选实施例的MMID包括电池和由输入按钮控制的LED驱动电路。图如和4b示出了根据实施例的具有顶LED的 MMID的输入状态。本实施例的标签包括大量回射点402(示出为实心填充的点)和两个顶 LED 403和404。在图如中,标签示出为处于如下状态,在该状态下,MMID上的按钮未被按下,并且顶LED 403处于非点亮状态,而IRLED 404处于点亮状态。在图4b中,用户已经按下了匪ID上的按钮,并且响应于此,IR LED 403处于点亮状态,而顶LED 404处于非点亮状态。光学处理系统检测两个标签的不同并且根据两个标签的状态确定用户的意图。图fe和恥示出了根据替选实施例的、具有顶LED的匪ID的输入状态。在本实施例中,仅切换一个LED。因而,参照图fe,当用户未按下按钮时,LED 504处于非点亮状态。 在图恥中,用户已经按下了按钮,因而LED 504处于点亮状态。通过使用类似的方式也可以启用另外的方法。在一个替选实施例中,通过使用LED 来构造完整的标签,并且该标签的存在或者不存在提供了用户的输入。在另外的实施例中, 产生两个相同的标签,这两个标签或者重叠(偏移例如0.5cm)或者相邻。点亮一个标签或者另一个标签并且根据另外的标签确定该标签的位置使得能够确定用户的输入状态。其他替选实施例的MMID可以组合EMF跟踪和标签跟踪的使用。如在此所描述的那样,这些替选实施例组合使用各种类型的标签的标签跟踪和EMF跟踪的方面。其他替选实施例的MMID包括结合两个红外光源使用的控制器,其中,一个红外光源定位在用户的前面,而另一个红外光源定位在用户的后面。这两个光源每个都具有三个独立的红外发射器,并且每个光源的发射器被配置成不同的模式。本实施例的MMID使用惯性跟踪,包括两个模式并且包括多个机械输入按钮,这一点将在下面进行描述。本实施例的匪ID可以被认为是支持两个模式取向的Nintendo Wi i 远程控制设备的修改,其中,模式根据控制器的相对于其环境的直接取向来确定。Wii 控制器是用于在Nintendo Wii 平台上播放视频游戏的很小的设备并且是相关联的红外光源。控制器通过使用一组低精度的加速度计来惯性地跟踪其在空间中的运动。由于在数字积分期间累积的误差,加速度计不足以精确到能够在几十秒的时间内提供很好的位置和取向数据,因此,还使用光学跟踪系统(结合光源部件)。因此,Wii 控制器的光线跟踪系统还包括内部前向红外相机,该相机能够在二维图像平面内定位四个亮的红外光源。因此,相机内嵌在被跟踪的设备中,并且被光学定位的物体是固定位置的环境对象。通过测量环境中的已知红外光源的感知的尺寸和位置,可以确定控制器指向的方向,并且可以使得远离这些光源的控制器成三角形。可以将该红外跟踪技术视为在此描述的跟踪技术的逆向技术,这是因为这里的实施例的红外跟踪技术使用放置在环境中的相机来光学定位布置在设备、表面、手套和其他物体上的点。在使用Nintendo Wii 操纵台的典型应用中,控制器通常指向显示屏。显示屏的上方或下方放置有红外光源,以向控制器提供屏幕相关的取向。相比较而言,实施例的控制器与两个红外光源一起使用,其中,一个红外光源定位在用户的前面,而另一个红外光源定位在用户的后面。这两个光源中的每个都具有三个独立的红外发射器,并且每个光源的红外发射器被配置成不同的模式。实施例的控制器通过蓝牙无线电与主计算机上运行的输入处理软件或者部件通信。输入处理软件识别检测到的是哪个发射器图案,并且因此识别控制器指向前还是指向后。根据该前向/后向判定得到两个模式取向。在模式状态⑴下,控制器被定向成向前。 在模式状态(ii)下,控制器被定向成向后。在每种情况下,用户都逻辑地指向前。用户通过扭转控制器“返回前面”来控制模式。这是与上述实施例不同的地方,在上述实施例中, 模式控制是设备的长轴线“滚动”。实施例的控制器可以包括嵌入的扬声器,以提供声音输出、若干灯以及振动(或“噪声”)输出。根据本说明书,在此描述的实施例的大量修改都是可能的。实施例的控制器例如可以具有两个相机,其中,每个相机位于设备的一个端部,从而排除了需要两个光源。可以借助于定时而非空间图案来区分光源。空间操作环境(SOE)这里,在空间操作环境(SOE)的背景下描述了空间连续体输入系统的实施例。作为示例,图6是根据实施例的空间操作环境(SOE)的框图。用户将他的手101和102放在相机104A-104D阵列的视区150内。相机检测手指以及手101和102的位置、取向以及移动作为空间跟踪数据,并产生输出信号给预处理器105。预处理器105将相机输出翻译成姿势信号,该姿势信号被提供给系统的计算机处理单元107。计算机107使用该输入信息产生用以控制一个或更多个屏上光标的命令,并向显示器103提供视频输出。尽管本系统示出了以单个用户的手来作为输入,但是SOE 100还可以使用多个用户来实施本发明。另外,替代手,或除手之外,该系统还可以跟踪用户身体的任何一个或更多个部位,包括头、脚、腿、臂、肘、膝等。
在所示出的实施例中,使用4个相机或传感器来检测视区150内的用户的手101 和102的位置、取向和移动。应理解,SOE 100可以包括更多(例如六个相机、八个相机等) 或更少(例如两个相机)的相机或传感器,而不脱离SOE的范围或精神。另外,尽管相机或传感器在示例实施例中被对称地设置,但是在SOE中并没有这种对称的要求。在SOE中可以使用容许用户手的位置、取向以及移动的任何数目或布置的相机或传感器。在一个实施例中,所使用的相机是能够捕捉灰度图像的运动捕捉相机。在一个实施例中,所使用的相机是由Vicon制造的相机,诸如ViConMX40相机。该相机包括相机上 (on-camera)处理,并能够以1000帧/秒进行图像捕捉。运动捕捉相机能够检测和定位标记。在所描述的实施例中,相机是用于光学检测的传感器。在其他实施例中,可使用用于电磁、静磁、RFID或任何其他适当类型的检测的相机或其他检测器。预处理器105用于产生三维空间点重构以及骨架点标注。姿势翻译器106将3D 空间信息和标记运动信息转换成可以被计算机处理器解译的语言,以便更新显示器上光标的位置、形状和动作。在SOE 100的可替换实施例中,预处理器105和姿势翻译器106可以集成或组合成单个设备。计算机107可以是任何通用计算机,诸如由Apple、Dell或任何其他适合的生产商生产的。计算机107运行应用程序,并提供显示输出。光标信息现在来自姿势系统,而不是来自鼠标或其他现有技术的输入设备。标记标签实施例的SOE预期使用用户的一个或更多个手指上的标记标签,从而使得系统能够定位用户的手、识别该系统正查看的是左手还是右手以及哪些手指是可见的。这允许该系统检测用户手的位置、取向以及移动。该信息允许多个姿势被系统识别并且被用户用作命令。在一个实施例中,标记标签为物理标签,其包括基片(在本实施例中适于附在人手上的各个位置)和以独特识别图案设置在基片表面上的离散标记。所述标记和相关联的外部感测系统可以操作于下述的任何域(光、电磁、静磁等) 中,这些域允许准确、精确、快速并连续获取它们的三维空间位置。所述标记自身可以有源地(例如通过发射结构化的电磁脉冲)或者无源地操作(例如通过如本实施例中的光回射方式)O在获取的每个帧中,检测系统接收所恢复的三维空间位置的聚集“云(cloud) ”,所述三维空间位置包括来自在仪表化的工作空间体积(相机或其他检测器的可见范围内)中存在的标签的所有标记。每个标签上的标记具有充分的多样性,并以独特的图案来设置, 从而使得该检测系统能够执行以下任务(1)分段,其中每个被恢复的标记位置被分配给形成单个标签的点的一个且唯一的子集合;( 做标签,其中每个分段后的点的子集合被标识为特定标签;⑶定位,其中所标识的标签的三维空间位置被恢复;以及⑷取向,其中所标识的标签的三维空间取向被恢复。通过标记图案的特定性质,有可能执行任务(1)和 O),如下所述以及如图7中的一个实施例所示的。在一个实施例中,标签上的标记被附于常规栅格位置的子集。如本实施例中,在下面的栅格可以是传统的笛卡尔类型;或者替换地可以是某些其他常规平面棋盘式布置 (例如三角形的/六边形的平铺排列)。栅格的尺寸和间隔相对于标记感测系统的已知空间分辨率来建立,使得相邻的栅格位置不可能被混淆。针对所有标签的标记图案的选择应该满足以下约束通过旋转、平移或镜像的任何组合,标签的图案不与任何其他标签的图案重合。可以进一步对标记的多样性和排列进行选择,以容许某特定数目的组成标记的丢失 (或闭塞)在任意变换之后,其应该仍然不可能使经折衷的模块与任何其他模块混淆。现在参考图7,其示出多个标签201A-201E (左手)以及202A-202E (右手)。每个标签是矩形并且在本实施例中组成5X7的栅格阵列。选择矩形形状作为确定标签取向的辅助,并且减少镜像复制的可能性。在所示出的实施例中,针对每个手上的每个手指都有标签。在某些实施例中,每个手使用一个、两个、三个或四个标签可能就足够了。每个标签具有不同灰度或颜色阴影的边界。在该边界内是3X5的栅格阵列。标记(由图7中的黑点表示)被设置于栅格阵列中的某些点处,以便提供信息。通过将每个图案分段成“共同”和“独特”的子图案,可以将资格信息编码到标签的标记图案中。例如,本实施例规定了两个可能的“边界图案”,即矩形边界线周围的标记的分布。由此建立了标签“家族”~计划用于左手的标签可能因此全部使用如标签201A-201E 中所示的相同边界图案,而那些附着于右手手指的标签可被分配如标签202A-202E中所示的不同图案。选择该子图案使得在标签的所有取向中左图案可区别于右图案。在所示的示例中,左手图案包括在每个拐角中的标记以及从拐角栅格位置起的第二个中的标记。右手图案仅在两个拐角中具有标记并在非拐角栅格位置中具有两个标记。对图案的检查表明, 只要四个标记中的任何三个是可见的,左手图案就肯定能够区别于右手图案。在一个实施例中,也可使用边界的颜色或阴影作为偏手性(handedness)的指示。当然每个标签必须仍然采用独特的内部图案,即分布于其家族的公共边界内的标记。在所示出的实施例中,已经发现由于手指的旋转或取向,内部栅格阵列中的两个标记足以没有重复地唯一标识十个手指中的每个。即使标记之一被闭塞,标签的图案及偏手性的组合也导致唯一的标识符。在本实施例中,栅格位置在视觉上呈现在刚性基片上,作为对将每个回射标记附在其预期位置的(手动)任务的辅助。这些栅格和预期标记位置通过彩色喷墨打印机被逐字打印到基片上,所述基片在这里是一片(初始地)柔软的“收缩膜”。每个模块被从该片切下来,然后被烘烤,在该热处理期间,每个模块经受精确并可重复的收缩。在该过程后的短暂间隔内,冷却的标签可被轻微成型——例如,沿手指的长度曲线;其后,基片是适度刚性的,且标记可以附在所指示的栅格点。在一个实施例中,标记自身是三维的,如通过粘合剂或某些其他适当方式附于基片的小的反射球。标记的三维性比二维标记更有助于检测和定位。不过,两者均可以使用, 而不脱离在此描述的SOE的精神和范围。目前,标签通过维可牢(Velcro)或其他适当方式被附于操作员所戴的手套上,或者可替换地,使用温和的双面胶带直接附于操作员的手指上。在第三实施例中,可以与刚性基片一起分配,并将各标记直接附于或“绘制”在操作员的手指和手上。姿势词汇实施例的SOE预期有包括手姿态、取向、手组合以及取向混合的姿势词汇。在SOE 的姿势词汇中,还实施了符号语言(notation language)用来设计并传达姿态和姿势。姿势词汇是用于以紧凑的文本形式来表示运动联接(kinematic linkage)的瞬时“姿态状态”的系统。这里所讨论的联接可以是生物学的(例如人手,或者整个人体;或者蝗虫腿;或者狐猴的关节脊柱),或者替代地可以是非生物的(例如机器人手臂)。在任何情况下,所述联接可以是单个的(脊柱)或者是分支的(手)。SOE的姿势词汇系统针对任何特定的联接建立固定长度的字符串;因此,占据字符串“字符位置”的特定ASCII字符的聚集是所述联接的瞬时状态或“姿势”的唯一描述。手姿态图8示出了根据本实施例的SOE的姿势词汇实施例中的手姿态。SOE假设一只手的五个手指中的每个都被使用。这些手指的代码为P-小手指、r-无名指、m-中指、i-食指以及t-拇指。图8定义并示出了针对手指和拇指的多个姿态。姿势词汇字符串针对联接 (本例中为手指)中的每个可表达的自由度建立单个字符位置。此外,每个这样的自由度被理解为离散化的(或“量化的”),从而可通过在该字符串位置分配有限数目的标准ASCII 字符中的一个来表示其全范围的运动。这些自由度是相对于特定于体部的原点及坐标系统 (手背、蝗虫体部的中心;机器人手臂的基部等)来表达的。因此,使用少量的附加姿势词汇字符位置,在更全局的坐标系统中来表达作为整体的所述联接的位置和取向。仍然参考图8,使用ASCII字符来定义和标识了多个姿态。某些姿态被分成拇指的和非拇指的。本实施例中的SOE用编码,使得ASCII字符本身就是姿态的暗示。不过,任何字符都可用于表示姿态,无论是暗示性的与否。另外,本实施例并不要求使用ASCII字符用于符号字符串。任何合适的符号、数字或其他表示都可使用,而不脱离本发明的范围和精神。例如,如果需要,所述符号可以针对每个手势使用两个比特,或者根据需要来使用其他数目的比特。弯曲的手指由字符来表示,而弯曲的拇指由“〉”表示。向上指的伸直的手指或拇指由“1”指示,而某个角度的手指或拇指由“\”或“/”表示。“-”表示直指向侧面的拇指,而“ X ”表示指向平面内的拇指。使用这些单独的手指和拇指描述。可以使用本发明的方案来定义和书写稳健数目的手姿态。每个姿态由五个字符利用上述的p-r-m-i-t顺序来表示。图8图示了多个姿态, 且以图示和示例的方式在此描述其中的一些。保持平并平行于地面的手表示为“11111”。 拳表示为“~~~~>”。“0K”标志表示为“111~>”。当使用暗示性字符时,字符串提供了直接的“人可读性”的机会。通常着眼于快速识别和明显相似性来选择描述每个自由度的可能的字符集。例如,数杠(‘I’)可能意味着联接元素为“直的”,(‘L’ )可能意味着90度的弯曲,而弯曲形()可指示急剧的弯曲。如上所述,可以根据需要来使用任何字符或编码。采用如上所述的姿势词汇字符串的任何系统在此享受高计算效率的字符串比较的好处——识别或搜索任何指定的姿态完全变成在期望的姿态字符串和即时的真实字符串之间进行的“字符串比较”(例如,UNIX的‘strcmp (),功能)。此外,“通配符”的使用为编程人员或系统设计者提供了额外的熟悉效率和功效瞬时状态与匹配无关的自由度可以被指定为问号(‘?’);可以分配另外的通配符含义。取向除手指和拇指的姿态以外,手的取向也可以表示信息。描述全局空间取向的字符也可以显然地选择出来;当在取向字符位置中遇到字符‘〈’、‘>’、‘"’以及‘〈’时,其可以用于指示左、右、上和下的意思。图9图示了手取向描述符以及组合了姿态和取向的编码示例。在一个实施例中,两个字符位置首先指定手掌的方向,其次是手指的方向(如果假设手指是直的,则不考虑手指的实际弯曲)。针对这两个位置的可能的字符表示了取向的‘体部为中心,概念‘_’、‘ + ’、‘χ’、‘*’、‘~,以及‘V’描述了向中间、侧向、前向(向前,从体部离开)、后向(向后,从主体离开)、头部的(向上)以及尾部的(向下)。在一个实施例的符号方案中,指示字符的五个手指姿态后面跟着冒号,然后是两个取向字符,以定义完整的命令姿态。在一个实施例中,起始位置被称为“xyz”姿态,其中当用右手来作该姿态时,拇指向上直指,食指向前指,而中指垂直于食指指向左。这由字符串 “~~xl- -x” 表示。‘ταψ是利用人手的几何形状以允许视觉呈现的三维结构的全部六自由度 (six-degree-of-freedom)导航的技术。尽管该技术仅仅依赖于操作员手的主体平移和旋转——使得其手指可以大体上保持住所需要的任何姿态——但是,本实施例优选静态结构,其中食指指向离开体部的方向;拇指指向天花板;而中指指向左右。由此,这三个手指描述了(粗略地,但是具有清楚地明显的目的)三维空间坐标系统的三个相互正交的轴线 因此称为‘XYZ手’。然后,利用保持在操作员体部前在预定‘中立位置(neutral position)'处的手 (如上所述的某种姿态的手指)来进行CTZ手导航。对三维空间物体(或相机)的三个平移自由度和三个旋转自由度的获取以下面的自然方式来实现手的左右移动(相对于体部的自然坐标系统)导致沿着计算上下文的χ-轴移动;手的上下移动导致沿着受控上下文的 Y-轴移动;而手的前后移动(朝向/离开操作员的体部)导致在上下文内的Z-轴运动。类似地,操作员的手绕着食指的旋转导致计算上下文取向的‘滚动’变化;通过操作员的手分别绕着中指和拇指的旋转,类似地实现‘倾斜(pitch)’和‘摇摆(yaw)’变化。注意,尽管‘计算上下文’在此用来指通过XYZ手方法控制的实体——并且看起来暗示合成的三维空间物体或相机——应理解,该技术同样可用于控制真实世界物体的各自由度例如,配备有适当的旋转致动器的视频或运动画面相机的摇动/倾斜/滚动(pan/ tilt/roll)控制。另外,甚至在虚拟阈中,由CTZ手姿态提供的物理自由度可能稍微较不确切地被映射在本实施例中,X^手还用于提供对大全景显示图像的导航接入,从而操作员手的左右和上下运动导致关于图像的预期的左右或上下‘摇动’,而操作员手的前后运动映射到‘缩放(zooming),控制。在每种情况下,手的运动和所导致的计算平移/旋转之间的耦接可以是直接的 (即,通过某些线性或非线性函数,操作员手的位置或旋转偏移一对一地映射到计算上下文中的物体或相机的位置或旋转偏移),或者是间接的(即,通过某些线性或非线性函数,操作员手的位置偏移或旋转偏移一对一地映射到计算上下文中的位置/取向的一阶或更高阶导数;然后,正在进行的积分实现计算上下文的实际零阶位置/取向的非静态变化)。后面的这种控制手段类似于使用汽车的‘油门踏板’,其中踏板的恒定偏移或多或少地导致恒定的汽车速度。用作真实世界CTZ手的局域六自由度坐标原点的‘中立位置’可以被建立作为 (1)空间中的绝对位置和取向(比方说,相对于封闭室);(2)相对于操作员自身的固定位置和取向(例如,在体部前面八英寸、下颚以下十英寸以及侧向与肩平面对齐),与操作员的总体位置和‘朝向’无关;或者(3)交互式地,通过操作员的有意的副动作(例如,使用由操作员的‘另一只’手发出的姿势命令,所述命令指示X^手的当前位置和取向此后应被用作平移和旋转的原点)。另外,方便的是提供关于CTZ手的中立位置的‘停止(detent)’区域(或‘死域’), 使得在该体积内的移动不映射到受控上下文中的移动。其他姿态可包括[I I I I I :vx]为手掌朝下且手指向前的平的手(拇指平行于手指)。[ I I I I :x"]为手掌朝前且手指朝向天花板的平的手。[I I I I I :-x]为手掌朝向体部中心(如果是左手则朝右,如果是右手则朝左)且手指朝前的平的手。[""""-:-x]为单手拇指向上(拇指指向天花板)。["~ -:-χ]为模仿指向前方的枪。两手组合实施例的SOE预期单手命令和姿态以及两只手的命令和姿态。图10图示了 SOE 的实施例中的两手组合和相关联符号。回顾第一示例中的符号,“完全停止(full stop)” 表明其包括两个闭合的拳。“快照”示例中,每只手的拇指和食指伸展,拇指彼此互指,定义球门柱形的框。“舵和节流阀开始位置”为手指和拇指指向上、手掌朝向屏幕。取向混合图11图示了 SOE的实施例中的取向混合的一个示例。在所示出的示例中,所述混合通过将取向符号对放入在手指姿态字符串之后的括号中来表示。例如,第一命令显示了全部直指的手指位置。第一对取向命令将导致手掌平朝向显示器,而第二对使手旋转到向着屏幕45度的斜度。尽管在该示例中示出了混合对,但SOE中预期任何数量的混合。示例命令图13/1和13/2图示了可以与SOE —起使用的多个可能的命令。尽管这里的某些讨论是关于对显示器上光标的控制,但是SOE不限于该行为。实际上,SOE可广泛应用于操纵屏幕上的任何和全部的数据及部分数据以及显示的状态。例如,在视频媒体的回放期间, 可用所述命令来取代视频控制。所述命令可以用于暂停、快进、回退等。另外,可以实施命令来放大或缩小图像、改变图像的取向、在任何方向上摇动等。SOE还可用于代替菜单命令, 如打开、关闭、保持等。换句话说,能够想象到的任何命令或行为都可以利用手姿势来实现。操作图12是图示了一个实施例中的SOE的操作的流程图。在701中,检测系统检测标记和标签。在702中,确定是否检测到标签和标记。如果没有,则系统返回到701。如果在 702中检测到标签和标记,则系统前进到步骤703。在703中,系统从所检测的标签和标记中识别手、手指和姿态。在704中,系统识别姿态的取向。在705中,系统识别所检测到的一只或多只手的三维空间位置。(请注意,703、704和705中的任何或全部都可以被组合)。在706中,信息被翻译成上述的姿势符号。在707中,确定姿态是否有效。这可以通过使用所产生的符号字符串进行简单的字符串比较来完成。如果姿态是无效的,则系统返回701。如果姿态是有效的,则在708中,系统发送该符号和位置信息给计算机。在709 中,该计算机确定响应于所述姿势将采取的适当的动作,并在710中相应地更新显示。
在SOE的一个实施例中,701-705通过相机上的处理器来完成。在其他实施例中, 如果需要,所述处理可以通过系统计算机来完成。解析和翻译系统能够“解析”和“翻译”由底层系统恢复的低级姿势流,并将这些被解析和翻译的姿势转换成事件数据或命令流,所述事件数据或命令流可用来控制宽范围的计算机应用程序和系统。这些技术和算法可以在包括计算机代码的系统内实施,所述计算机代码提供实施这些技术的引擎以及用于构建利用该引擎性能的计算机应用程序的平台二者。一个实施例关注于使人手的丰富的姿势能够在计算机界面中使用,还能够识别由其他体部部位(包括但不限于臂、躯干、腿和头)做出的姿势以及各种非手的物理工具做出的姿势,所述物理工具为静态的和链接的,包括但不限于卡钳、圆规、灵活的曲线近似器以及各种形状的指向设备。标记和标签可应用于可以由操作员根据需要携带和使用的物品和工具。在此描述的系统结合了多个创新,所述多个创新使得可以建立具有可以被识别和按照其来动作的丰富的姿势的姿势系统,而同时易于集成到应用程序中。一个实施例中的姿势解析和翻译系统包括1)以几个不同等级的聚集指定(用于在计算机程序中使用的编码)姿势的紧凑和有效的方式a.单手的“姿态”(手的各部分相对于彼此的配置和取向),在三维空间中的单手的取向和位置。b.两手组合,针对任一只手,考虑姿态、位置或两者都考虑。c.多人组合;系统可跟踪多于两只手,因此多于一个人可以可协作地(或在游戏应用程序情况下,竞争地)控制目标系统。d.连续姿势,其中姿态被组合成一个系列;我们称之为“动画”姿势。e. “字形”姿势,其中操作员跟踪空间中的形状。2)用于对来自与给定的应用程序上下文有关的以上每一类别的特定姿势进行注册的编程技术。3)用于解析姿势流使得已注册的姿势可被识别以及封装这些姿势的事件可被传递到相关的应用程序上下文的算法。具有构成元素(Ia)至(If)的规范系统⑴提供了使用在此描述的系统的姿势解析以及翻译能力的基础。单手“姿态”被表示为以下的字符串i)手指和手背之间的相对取向,ii)量化到小数目的离散状态。使用相对联合取向使得在此描述的系统可以避免与不同的手尺寸和几何形状相关联的问题。使用该系统不需要“操作员校准”。另外,将姿态指定为字符串或者相对取向的集合使得通过将姿态表示与另外的过滤器及规范相组合而易于创建更为复杂的姿势规范。使用针对姿态规范的小数目的离散状态使得能够紧凑地指定姿态,并能够利用多种底层跟踪技术(例如,使用相机的无源光学跟踪、使用点亮的点和相机的有源光学跟踪、 电磁场跟踪等)来确保准确的姿态识别。
在每一类别(Ia)至(If)中的姿势可以被部分(或最小地)指定,从而忽略非关键数据。例如,其中两根手指的位置确定而其他手指位置不重要的姿势可以通过单个规范来表示,该单个规范中,给出了两个相关手指的操作位置,且在同一字符串内,针对其他手指, 列出了 “通配符”或通用的“忽略这些”的指示。将在此描述的用于姿势识别的所有创新推广到超越手姿势规范到使用其他身体部位以及“制造的”工具和对象的姿势规范,上述创新包括但不限于多层次规范技术、使用相对取向、数据量化以及允许在每一级别的部分规范或最小规范。用于“注册姿势”的编程技术(2)包括限定的应用程序编程接口调用的集,其允许编程人员来定义引擎应使哪些姿势可用于运行系统的其他部分。这些API例程可以在应用程序建立的时间来使用,从而创建运行应用程序的整个存在期间使用的静态接口定义。这些API程序还可以在运行过程中使用,从而允许接口特性在不工作时(on the fly)改变。这种接口的实时改变使得下述行为成为可能i)建立复杂的上下文和条件控制状态,ii)动态地添加滞后现象(hysterisis)到控制环境,并且iii)创建应用程序,其中用户能够改变或扩展运行系统自身的接口词汇。用于解析姿势流的算法(3)将在⑴中被指定并在(2)中被注册的姿势与进入的低级别姿势数据进行比较。当针对注册的姿势的匹配被识别时,表示已匹配姿势的事件数据沿堆栈向上到达运行着的应用程序。在设计该系统时期望有效的实时匹配,且指定的姿势被当作尽可能快地被处理的概率树对待。另外,操作员内部使用的用以识别指定姿势的原语比较也可以被应用程序的编程人员使用,使得即使从应用程序上下文内也可以进行进一步比较(例如,在复杂或复合姿势中的灵活的状态检查)。识别“加锁(locking) ”语义是在此描述的系统的创新。这些语义通过注册API (2) (以及,在更小程度上,嵌入到规范词汇(1)内)来暗示。注册API调用包括i) “进入(entry) ”状态通知者以及“继续(continuation) ”状态通知者,以及ii)姿势优先级指定者。如果姿势已被识别,则针对相同或较低优先级的姿势,其“继续”条件优先于所有的“进入条件”。进入状态和继续状态之间的这种区别大大增加了所感知的系统的可用性。在此描述的系统包括面对真实世界的数据错误和不确定性的健壮操作的算法。来自低级跟踪系统的数据可能是不完整的(由于多种原因,包括在光学跟踪、网络丢弃或处理延时中的标记的闭塞等)。丢失的数据通过解析系统来标记,且被插值(interpolate)成“最后已知”或“最有可能”的状态,这取决于所丢失数据的量和上下文。如果关于特定姿势组成的数据(例如,特定关节的取向)丢失,但是该特定组成的 “最后已知”的状态可被分析为在物理上可能,则系统在其实时匹配中使用该最后已知的状态。相反地,如果该最后已知状态被分析为在物理上不可能,则该系统回退到针对所述组成的“最佳猜测范围(best guess range) ”,并在其实时匹配中使用该合成数据。
在此描述的规范和解析系统已被仔细地设计以支持“偏手性不可知论”,使得对于多手的姿势,任一只手被允许满足姿态需求。导航数据空间实施例的SOE能够实现“后推”,操作员人手的线性空间运动或者类似维度的活动的执行,以通过图形的或者其他数据表示的空间来控制线性的接近(verging)运动或运载 (trucking)运动。SOE以及由SOE建立的计算的和认知的关联提供了基础的结构化的方式来导航多级比例,从而遍历主要的线性“深度维度”,或者——最通常地——访问量化的或者“停止”的参数空间。SOE还提供了操作员可以凭意愿获取附加的上下文的有效方法一种用于理解(无论是空间的、概念的还是计算的)附近或邻域的快速技术。在某些实施例中,后推技术可以使用传统的输入设备(例如鼠标、跟踪球、集成的滑块或钮)或者可以依赖于操作员本人以外的加了标签的或者被跟踪的对象(例如仪器化的运动联接、静磁跟踪的“输入砖”)。在其他可替换的实施例中,后推实施方式可以胜任作为整个控制系统。实施例的SOE是更大的空间交互系统的组成并且集成在该更大的空间交互系统中,该SOE代替通常的基于鼠标的图形用户接口( ‘WIMP’ UI)方法用于控制计算机,代替地,SOE包括(a)可以跟踪一种或更多种对象(例如人手、人手上的对象、无生命的对象等)的物理传感器;(b)用于将被感测的手的演变位置、取向和姿态分析成为姿势事件序列的分析部件;(c)用于表示这种空间和姿势事件的描述方案;(d)用于将这种事件分配到控制程序和在控制程序中分配这种事件的框架;(e)用于将由姿势事件流所编码的人为目的 (指令)与事件流自身和应用程序专用的事件解译结果二者的图形、听觉和其它显示模式的描述同步的方法,以下对所有这些进行详细介绍。在这种实施例中,后推系统集成有附加的空间和姿势输入和接口(input-and-interface)技术。通常,数据空间的导航包括根据经由检测器接收的姿势数据来检测身体的姿势。 姿势数据是身体在时间和物理空间的点处的瞬时状态的绝对三维空间位置数据。检测包括使用姿势数据识别姿势。导航包括将姿势翻译成姿势信号以及响应于该姿势信号通过数据空间进行导航。数据空间是包括在物理空间中表示的数据集的数据表示空间。在实施例的总的往返等待时间(手运动,到传感器,到姿态分析,到后推解译系统,到计算机图形描绘,到显示设备,再回到操作员的视觉系统)保持低的情况下(例如实施例展示了大约为十五毫秒的等待时间)以及在系统的其他参数被合适地调谐的情况下, 后推交互的知觉结果是明显的物理因果意义S0E将推压弹性载荷结构的物理共振隐喻文字化。感知到的因果是高度有效的反馈;这种反馈连同由后推系统提供的其他更多的抽象图形反馈模态以及连同对操作员移动的解译中的一些自由度的有意抑制一起又允许将既粗略又精细的人运动神经(motor)活动稳定、可靠和可重复地用作为控制机制。在评估SOE的上下文时,许多数据集固有地是空间的它们表示了实际物理空间内的现象、事件、测量、观察或结构。对于更抽象的、或者对文字而非空间的信息编码的其他数据集,通常期望准备(视觉的、听觉的、或者涉及其他显示模态的)表示,该表示的某基础方面由单个的标量取值的参数来控制;然后将该参数与空间尺寸相关联也常常受益。正是对这种单个标量参数的操纵(以下将详细描述)受益于借助后推机制的操纵。表示会进一步给它们的参数中的少数几个离散值——的确有时仅一个离散值——以特权,其中,数据集在这些离散值处被认为是最优的。在这种情况下,有用的是谈及“停止的(detented)参数”或者如果参数被外显地映射到表示空间的一个维度上则谈及 “停止的空间”。在此,术语“停止的”的使用意在引起不仅参数的优选量化还有对棘齿、磁校准机构、慢进往复轮(jog-shuttle wheel)以及具有有意的机械棘爪的大量的其他世俗设备的的视觉触觉感觉。这样的参数的不言而喻的但是至关重要的示例包括但不限于(1)合成相机的距离,在计算机图形环境中,来自数据集的可描绘的表示;( 数据从原始数据集被采样并被转换为可描绘的形式的密度;C3)采样从时变的数据集中被检索出来并被转换成可描绘的表示的时间指标。这些是通用的方法,还存在有无数的域专用参数化。SOE的后推通常将数据集的参数控制轴线与物理空间中的局域相关的“深度维度” 对准,并且允许沿着深度维度的结构化的真实世界运动以实现沿着控制轴线的数据空间平移。结果是用于对数据空间导航的非常高效的装置。以下是实施在SOE中的后推的代表性实施例的详细描述。在后推示例中,操作员站在大墙显示器之前一段舒适的距离处,在大墙显示器上呈现出包括文字和影像的单个“数据框架”,这些图形数据元素可以是静态的或动态的。数据框架例如可以包括图像,但不限于此。数据框架虽然自身是二维构造的,但仍处于三维计算机图形描绘环境中,其基础的坐标系统被设置成了与真实世界的坐标相配,以便于描述室及其内容,包括显示器和操作员。操作员的手由传感器跟踪,该传感器以高精度和高时间速率分辨操作员的手指的、或者有可能是操作员的整个手主体的位置和取向;系统分析所得到的空间数据,以将每个手的“姿态”特征化——即手指相对于彼此以及相对于手主体的几何布置。虽然该示例实施例跟踪是人手的对象,但是在可替换的实施例中无数其他的对象可以作为输入设备被跟踪。一个示例是单侧后推场景,其中,主体是处于暴露位置(open position)的操作员的手,手掌面向前方(沿着ζ轴)(例如朝向操作员前面的显示屏)。为了本描述的目的,将墙显示器视为占据了 χ和y维度;而ζ描述了操作员和显示器之间的维度。与该后推实施例相关联的姿势交互空间包括抵接在常数ζ的平面处的两个空间;离显示器较远(或者距操作员更近)的停止的间隔空间被称为“死域”,而更近的半个空间是“活阈”。死域向后向 (朝着操作员并且远离显示器)无限延伸而仅向前延伸有限的距离,在死域阈值处截止。活阈从死域阈值处朝向显示器延伸。描绘在显示器上的数据框架通过主体在活阈中的移动被交互地控制或“后推”。数据框架以与显示器的尺寸和纵横比精确匹配的尺寸和纵横比被构造,并且被定位和取向以使得该数据框架的中心和法向量与显示器的这些物理属性相配,虽然实施例并不限于如此。用来描绘该场景的虚拟相机被定位成从显示器向正前并粗略地在操作员的距离。在这种上下文中,所描绘的框架由此精确地填满显示器。逻辑地设置在可见框架的左边和右边的是一些另外的共面数据框架,这些数据框架均勻地间隔并且具有将每个数据框架与其紧邻的邻居分隔的适度的间隙。因为这些数据框架位于计算机图形描绘几何形状的物理/虚拟描绘边界的外侧,这些侧向放置的相邻数据框架不是初始可见的。如可以看到的,给定其几何结构的数据空间拥有沿着ζ方向的单个自然停止和多个X-停止。
操作员举起她的左手至她的肩部,其中,她的左手保持成松散拳姿势。操作员然后伸出手指以使得它们向上指而伸出拇指以使得该拇指向右指;操作员的手掌朝向屏幕(在以下详细描述的姿势描述中,这种姿势转化可以被表示为成为111卜χ )。当检测到新姿态时,系统触发后推交互并立即记录下首先进入的姿态的绝对三维空间手位置该位置被用作为“原点”,随后的手运动将被报告成距该原点的相对偏移。紧接着,两个同心的、部分透明的图示符叠加在框架的中心(由此在显示器的中心)。例如,图示符可以指示在死域中的体部后推姿势直到死域阈值点。第二图示符小于第一图示符是对操作员的手处于死域中的指示,后推操作“尚未”通过其被启用。随着操作员将其手向前(朝向死域阈值和显示器)移动,第二图示符增长地变大。在操作员的手在死域阈值处的点处,第二图示符具有与第一图示符相等的尺寸。该示例的图示符描述了图示符的同心元素随着操作员的手从其起始位置朝向分离死域和活阈的死域阈值向前行进而进行的演变。图示符的内部“多齿(toothy)”的部分例如随着手接近阈值而变大并且被设置成使得随着手达到阈值位置来精确地匹配内图示符和(静态的)外图示符的半径。随着操作员移动其手远离死域阈值并且远离显示器,第二图示符在尺寸上缩小在第一图示符中,然而总是保持与第一图示符同心并且以显示器为中心。关键地,只有操作员手运动的ζ分量被映射成为图示符的等比例缩放,而手运动的附带的χ分量和y分量不做贝献。当操作员的手经过死域的向前阈值,跨入到活阈时,后推机制被启用。手的(从阈值测量的)相对ζ位置遵循比例缩放函数,而所得到的值被用于实现数据框架的侧向邻居和数据框架的ζ轴位移,使得框架的描绘图像被看到是从显示器后退;相邻的数据帧然后也变成可视的,从显示空间的边沿“填满”——合成相机的恒定角度对向(subtent)几何地 “捕捉”随着框架所位于的平面远离相机移动时该平面的更多。ζ位移被连续地更新,以使得操作员在将其手推向显示器以及将手拉回向自己时直接响应操作员的移动来感知框架后退和接近的侧向集合。作为从对应的后推得到的数据帧的第一相对ζ轴位移的示例,数据框架的描绘图像被看到从显示器后退而相邻数据框架变成可视的,从显示空间的边沿“填满”。包括一些附加的共面数据框架的相邻数据框架被按照逻辑设置在可视的框架的左边和右边、均勻地间隔开并且具有将每个框架与其紧邻的邻居分隔的适度的间隙。作为从对应的后推得到的数据帧的第二相对ζ轴位移的示例,并且考虑第一相对ζ轴位移,并且假设有从得到第一相对Z轴位移的推起操作员的手的另外的推(沿着Z轴朝向显示器并且远离操作员的推),框架的描绘图像被看到从显示器进一步后退以使得附加的相邻数据框架变成可视的,进一步从显示空间的边沿“填满”。此时,成对的同心图示符现在展示修改的反馈随着操作员的手进入到活阈,第二图示符从基于等比例缩放的反应切换到旋转反应,在该旋转反应中,手的距阈值的物理ζ 轴偏移被映射成正(平面内)角度偏移。在指示死域中超过死域阈值点的体部后推姿势 (沿着Z轴朝向显示器并且远离操作员)的图示符的示例中,图示符描绘了当操作员的手跨过了死域阈值时一即当后推机制被活性地启用时的图示符的演变。由此,用第二图示符的顺时针及逆时针旋转可视地指示操作员的手朝向和远离显示器的移动(如之前那样,第一图示符提供静态参照状态),使得图示符的“多齿”元素根据手的距阈值的偏移的线性函数旋转,从而将线性运动转化为旋转表示。因此,在该示例中,沿着ζ轴朝向显示器的手移动的附加的第一增加通过第二图示符的增加的顺时针旋转被视觉指示(如之前那样,第一图示符提供静态参照状态),使得图示符的“多齿”元素旋转了与手距阈值的偏移的线性函数对应的第一个量。沿着ζ轴朝向显示器的手移动的附加的第二增加通过第二图示符的增加的顺时针旋转被视觉指示(如之前那样,第一图示符提供静态参照状态),使得图示符的“多齿”元素旋转了与手距阈值的偏移的线性函数对应的第二个量。此外,沿着ζ轴朝向显示器的手移动的附加的第三增加通过第二图示符的增加的顺时针旋转被视觉指示(如之前那样,第一图示符提供静态参照状态),使得图示符的“多齿”元素旋转了与手距阈值的偏移的线性函数对应的第三个量。在该样本应用程序中,当操作员的手处于活阈时启用第二维度灵敏度手的侧向 (X-轴)运动再次通过可能的比例缩放函数被映射成水平帧序列的X-位移。如果比例缩放函数是正的,则效果是操作员的手的位置“跟随”中的一个,而操作员感知到她正在左右滑动框架。作为由体部的侧向运动而得到的数据框架的侧向X-轴位移的示例,数据框架从左滑向右,使得特定的数据框架经由显示空间的左边沿从图中消失或部分地消失而附加的数据帧从显示空间的右边沿填满。最后,当操作员使得她的手退出手掌向前的姿态(通过例如将手闭合成拳),后推交互被终止而框架的集合快速地返回到其原始的ζ停止(即与显示器共面)。同时,框架集合被侧向地调整以实现单个框架与显示器的X相配;该框架结束,由此“以显示器为中心” 是在后推终止的瞬间与同心图示符的中心最接近的那一个框架最近的X停止。这里看到, 图示符结构用作为第二功能,作为选择采集线,但是实施例并不限于此。框架集合的Z位置和X位置通常允许在短时间间隔上发展到它们最终的显示相配值,从而提供了“弹性载荷的返回”的视觉感觉。如本示例中所采用的后推系统提供了高效的控制模态用于(1)通过沿着直接的视觉视线——深度维度——可变地设置聚集数据集来获取认知上有价值的“邻域上下文”, 由此使得看到更多的数据集(换取减小数据集的任意给定部分的角度对向);( 在“滚动” 的相似意义上,通过沿着侧向排列的数据集的自然水平维度来可变地放置该侧向排列的数据集,从而获取邻域上下文,保持了数据的任何给定段的角度对向,但是以旧数据的可视性交换了新数据的可视性;C3)通过快速的以及在维度上受约束的导航来选择数据集的离散元素。在实施例的后推的另一个示例中,操作员站成紧邻着腰部水平的显示设备,该显示设备的有效表面位于与地板平行的水平面中。此处,坐标系统以与之前的示例相配的方式被建立显示器表面位于XZ平面中,以使得表示表面的法线的y轴对准成与物理重力矢量反向。在体部被水平地保持在桌状显示器表面之上的示例物理场景中,体部是操作员的手,但是实施例并不限制于此。后推交互是双面的,从而有上死域阈值和下死域阈值。此外, 由后推操纵器访问的线性空间在上活域中设置有离散的空间停止(例如,“第一停止”、“第二停止”、“第三停止”、“第四停止”),而在下活域中设置有离散的空间停止(例如,“第一停止”、“第二停止”、“第三停止”、“第四停止”)。实施例的交互空间被配置成使得包括上死域和下死域的相对小的死域以启用后推的竖直(y轴)位置为中心,其中,活域在死域以上并且活域在死域以下。操作员工作于被分析成是数据框架的离散平行平面的堆叠的示例数据集。该数据集可以以上述方式布置,这是由于数据集所表示是物理现实的自然结果(例如来自X线断层扫描的离散切片、三维集成电路的多个层等),或者是因为分离和离散化数据是按逻辑的并且是资料丰富的(例如在一些光谱带中所获得的卫星影像、按地理组织的人口普查资料 (其中每十年的数据分别存储在分离的层中)等)。数据的视觉表现还可以是静态的或者还可以包括动态元素。在后推功能没有被启用的间隔期间,单个层被认为是“当前的”并且由显示器视觉显著地呈现出来,并且被感知为与显示器是物理相配的。在该示例中,在当前层以上和以下的层不是视觉明显的(虽然将紧凑的插图用来指示这些层的存在)。操作员将其闭合的右手伸到显示器的上方;当她打开手——手指向前伸、拇指向左伸而手掌指向下(变换:νχ]成为[I I I -:νχ])时——后推系统被启用。在短暂的间隔期间(例如200毫秒),与当前层相邻的一些数目的层以级差可见性渐强;其上下组合有模糊过滤器和透明度,它们的“程度(severity) ”取决于层的距当前层的顺序距离。例如,与当前层(例如数据框架)相邻的层(例如数据框架)随着后推提供被启用而以级差可见性渐强。在该示例中,堆叠包括可以使用后推系统遍历的许多(与数据框架的数据集合适的任何数目的)数据框架。同时,出现了与之前示例相类似的同心反馈图示符;在这种情况下,交互被配置使得小死域以启用后推的竖直(y轴)位置为中心,其中,活域既在死域以上又在死域以下。这种设置提供了对“重新获得”原始层的辅助。图示符在这种情况下伴随有指示出与连续层定向接近的附加的单个图示符。当操作员的手仍然待在死域中时,层堆叠不发生位移。图示符展示了与在前述示例中的行为相同的“预备”行为,其中,内图示符随着手接近区域的任何一个边界而变大 (当然,此处行为是双面的并且对称的内图示符在手的起始y位置处是尺寸最小的,并且不论手是向上还是向下移动内图示符都朝着与外图示符相配地变大)。当操作员的手向上移动通过死区的上平面时,内图示符和外图示符接合,并且如之前那样,手沿着该方向的另外的移动引起了内图示符的逆时针旋转运动。同时,层堆叠开始“向上传递”在原始的当前层之上的这些层呈现出更大的透明度和模糊度;原始的当前层自身变得更加透明和更加模糊;而在原始的当前层之下的层朝向更加具有可见性和较不模糊发展。在堆叠的向上传递的另一个示例中,先前的当前层呈现出更大的透明度(在该示例中,变得不可见),而与先前的当前层相邻的层变得如先前的当前层一样的可见。此外,与先前的当前层相邻的层随着堆叠向上传递而以级差可见性渐强。如上所述的,堆叠包括可以使用后推系统遍历的许多(与数据框架的数据集合适的任何数目的)数据框架。用在真实世界距离(即当以室坐标测量时操作员的手距其初始位置的位移)和连续层之间的“逻辑”距离之间的映射来配置层堆叠。层堆叠的传递当然是该映射的结果,就好像接近图形的瞬时显现,其同时还(首先)指示了显示器平面和当前层之间的增长的距离;其还指示出显示器平面目前在当前层以下。手的运动继续进行而堆叠层最终通过了当前层和下面的下一个层刚好横跨显示器平面(即距显示器平面是等距)的位置;刚一通过该点,接近的图像就被改变以指示出显示器平面现在高于当前层“当前层状态”现在已经被分配给了下一个更低的层。总体上, 当前层总是最接近物理显示器平面的层并且是当操作员解除后推系统时会被“选中”的层。随着操作员继续举起她的手,每个接连的层被带向显示器平面,变得渐强地更加清晰可见,获得与显示器平面的瞬间相配,而然后返回成透明和模糊的以利于下一个更低的层。当操作员遍历了她的手的运动方向后,操作员将手降低,过程被逆转,而内图示符顺时针旋转。随着手最终通过死域,堆叠暂停,而原始的当前层处于与显示器平面精确地y对准;然后堆叠的y行进重新开始,使得在原始的当前层之上的那些平面被接连地聚焦。操作员总体感知强烈并简单的是操作员正在用她的手将层的堆叠下推或上拉。当最后操作员通过闭合她的手(或者以其他方式改变手的姿态)来释放后推时, 系统将堆叠“回弹(spring) ”成与显示器平面停止地y轴对准,将在退出后推时最接近现实平面的任何层作为当前层。在该定位重对准的短暂间隔期间,所有其他层消退回完全透明而反馈图示符平缓地消失。该示例的数据集(此处,层)的离散化元素沿着主后推(深度)轴被分配;之前,元素(数据框架)是沿着与深度轴正交的维度共面的并且侧向排列的。这种呈现布置连同透明技术的使用意味着数据总是叠加的——一些层通过其他层被观察。操作员在该示例中仍然还享有(1)快速获取邻域上下文(当前层之上和之下的层的上下文是什么?)的设施; 以及(2)在数据集中的并行、堆叠的元素之间高效地选择和切换的设施。当操作员仅意在 (1)时,死域的提供允许她确信地返回到原始选择的层。贯穿操纵,两个传递维度的抑制实现了速度和准确度(大多数人在没有侧向偏离的情况下垂直平移手相对困难,但是如所描述的模态完全忽略了任何这样的侧向位移)。注意的是,为了某些目的,方便的是配置后推输入空间以使得死域具有无穷小的延伸;然后,只要后推被启用,其激活机制也被启用。在此所呈现的第二示例中,这会意味着一旦后推操纵开始,没有将原始的当前层与任何其它层不同地对待。根据经验,死域的线性范围是操作员优选的问题。在这个第二示例中描述的模态涉及跨越了广泛的各种显示器,包括二维设备(无论是投影的还是发射的)和三维设备(无论是否是自动立体的、是否是空间成像产品等) 二者。在后者即3D的实施方式的情况下,媒体的某些特性会极其有助于在后推之下的知觉机制。例如,视差、光学景深和视觉调节现象的结合可以允许同时理解多层,由此消除了使远离显示器平面的层剧烈地减弱和模糊的(或者甚至一起排除在外)需要。此外,应用模态而不考虑显示器的取向如在示例中的,其可以是基本水平的,或者可以正如有用地那样以眼睛的高度安装在墙上。该第二示例的场景的扩展描绘了两手操纵的有用性。在一些应用中,必要的是将整体的层堆叠或者单独的层侧向(沿着X方向和ζ方向)地平移。在实施例中,操作员的另一个手——即非后推的手——例如通过下述模态可以实现该变换,在该模态中,使手非常接近显示器表面允许数据集的层中的一个层“环绕地滑动”,使得该层的偏移XZ位置遵循着手的位置。操作员通常会发现同时采取侧向平移和后推操纵是方便的以及容易驾驭的。或许不是完全虚幻的是提出将连续域操纵分配给一只手而将离散类型的工作分配给另一只手会起到使认知负荷最优化的作用。有教益的是考虑根据SOE的后推的又一个示例,其中,没有对于数据集的自然视觉方面。代表性的是监测多个音频信道以及从集合中断续地选择一个的问题。后推系统的应用程序在被配备成用于听觉的而不是视觉的输出的环境中实现了这样的任务;该模态与先前示例的模态极其相似。站着的或者坐着的操作员正在听单个信道的音频。概念上,该音频存在于几何上包括操作员的耳朵的竖直平面(称为“听觉平面”)中;音频的另外的信道处于与听觉平面平行的、但是沿着ζ轴被朝前和朝后放置的另外的平面。打开操作员的手、将手保持在她的前方九英寸处,手掌面向前,操作员启用了后推系统。几个接近的平面中的音频级差地渐强;每个的音量相反地取决于其距当前信道平面的序数距离。在实践中,在知觉上无真实感的是允许多于两个或者四个的附加的信道变成听得见的。同时,“音频图示符”渐强以提供接近的反馈。初始地,当操作员的手保持在死域中时,图示符是几乎不能听到的两个音符的和弦(初始是同音地)。随着操作员向前或者向后移动她的手通过死域,音频信道的音量仍然固定,而图示符的音量增加。当手横跨死域的前或后阈值时,图示符达到其“活”音量(其仍然是从属于当前信道的音量)。一旦操作员的手移动开始穿过活域——比方说沿着向前的方向——就获得了音频信道的预期效果当前信道平面被推得远离听觉平面,而当前信道的音量(以及向前更远的这些信道的音量)被渐进地减低。另一方面,每个“背面”的信道平面的音量随着其接近听觉平面而增加。同时,音频图示符具有切换模式。手的向前进伴随着音调中的一个的频率的增加; 在“中途点”处,当听觉平面位于一个音频平面和下一个音频平面正中间时,音调形成了精确的五音度(数学上应该是三全音间隔,但是有应该避开三全音间隔的许多原因)。随着手继续更远地向前,可变音节的频率继续增加,直到最终操作员“达到”了下一个音频平面,在该点处音调精确地跨越了八音度。对各种信道的审计继续,操作员将她的手向前向后平移,以依次访问每个信道。最终,操作员仅闭合她的手来选择一个信道,结束了后推对话并使得音频平面的集合“回弹” 成对准。其他的(未被选择的)信道减弱成不可听见的,就如图示符那样。该示例示出了后推应用的变体,其中,再次给予了同样的设施访问邻域上下文以及对离散化的数据元素(此处,单独的音频流)的快速选择。场景代替了听觉反馈机制,而特别是利用了人辨识一定的频率间隔的可靠能力的机制,以提供该操作员关于她是否与目标信道“足够接近”以进行选择的信息。这在语音信道的情况下是特别重要的,其中,“可听见”信号仅是间歇性地呈现的;音频反馈图示符的连续性质使得即使当信道自身已经无声的情况下音频反馈图示符也是出现和清晰的。注意的是如果在本示例中的SOE包括空间化的音频的能力,那么对后退到向前的距离的以及从后部接近的(反之亦然)相继音频层的感知可以大大增强。此外,以操作员前面的相继层以及操作员后面的在前层,将选择的音频平面更确切地“定位”在操作员的位置处的机会是有效地可利用的。音频图示符的其他示例是可能的,并且的确各种信道内容的性质包括它们的频谱分布趋于指示哪种图示符会是最清楚地可辨识的。通过示例,另一个音频图示符格式保持恒定的体积但是采用了周期的单击,其中,单击之间的间隔与听觉平面和最近的音频信道平面之间的接近度成比例。最后,在某些情况下,并且取决于操作员的敏锐度,可以使用根本没有反馈图示符的音频后推。参照后推机制,随着在数据集的表示中空间停止的数目和密度向巨大增加,空间及其参数化变得有效地连续——也就是说,不停止的。然而,在这样的极端情况下,后推仍然是有效的,这部分地是因为先于后推的每个调用的、数据集的“初始状态”可以作为临时的停止来对待,简单地实现为死域。这种不停止的后推的应用可以连同无限(或者至少基本上)可缩放图的概念一起建立。对缩放功能的后推控制将偏移手位置与仿射的标度值相关联,以使得随着操作员将她的手向前向后推,缩放度(分别)减少或者增加。然而,原始的预后推的缩放状态总是容易地可访问,这是因为将位置直接映射到缩放参数保证了将控制手返回到死域也实现了将缩放值返回到其初始状态。在以上示例中所描述的每个场景提供了对后推系统的显著方面以及后推系统在 SOE下的使用的描述。还应该理解的是此处所描述的操纵中的每个都可以以秒或者更短的时间精确地并且易理解地进行,这是由于允许一定类型的感知反馈来指导人运动所实现的效率和精度。在另一些时候,操作员还发现有用的是将单个连续后推“对话”保持几十秒 长间隔的后推良好地为探索的上下文获取目的服务。以上所描述的示例采用了物理输入(姿势)空间到表示空间的线性映射对真实空间中的控制手平移A单位总是产生在表示空间中的B单位[原始]的平移,而不管进行 A平移的真实空间的位置。然而,其他的映射是可能的。具体地,由大多数操作员所享有的对精确运动神经的控制度允许使用非线性的映射,其中,例如,与接近活阈值的姿势平移相比,远离该阈值的级差姿势平移可以被翻译成沿着参数化的维度的更大的位移。相配的虚拟/显示及物理空间系统可以提供一种环境,在该环境中在一个或更多个显示设备(“屏幕”)上描绘的虚拟空间被当作与系统的一个或更多个操作员所处的物理空间相配来处理。在此描述这种环境的一个实施例。当前实施例包括在固定位置处由三个投影仪驱动的屏幕,由单个台式计算机驱动,并且使用在此描述的姿势词汇和接口系统来控制。然而,应注意,所描述的技术支持任何数目的屏幕;这些屏幕可以是移动的(而非固定的);屏幕可以被许多独立的计算机同时驱动;且整个系统可以由任何输入设备或技术来控制。本公开中描述的接口系统应具有确定屏幕在物理空间中的尺度、取向以及位置的装置。给定这些信息,系统能够动态地将屏幕所处的(且系统的操作员所处的)物理空间映射到在系统上运行的计算机应用程序的虚拟空间中作为投影。作为该自动映射的一部分,系统还根据系统所掌管的应用程序的需要,以多种方式来转换两个空间的比例、角度、 深度、维度以及其他空间特性。在物理和虚拟空间之间的这种连续的转换使得可以一致且深入地使用多种接口技术,所述接口技术在现有的应用程序平台上难以实现,或者必须针对现有平台上运行的每个应用程序来逐件执行。这些技术包括(但不限于)1)使用“精确指向” 一在姿势接口环境中使用手,或使用物理指向工具或设备一作为普遍和自然的接口技术。2)自动补偿屏幕的移动或重新定位屏幕。3)根据操作员位置而变化的图形描绘,例如模仿视差变动以增强深度感。4)在屏上显示中包含物理物体一考虑真实世界的位置、取向、状态等。例如,站在大且不透明的屏幕前的操作员可以看见应用图形以及屏幕后面的比例模型的真实位置的表示(以及也许是移动的或改变的取向)。重要的是应该注意,精确指向不同于在基于鼠标的窗口接口以及大多数其他当代系统中使用的抽象指向。在那些系统中,操作员必须学会管理虚拟指针和物理指向设备之间的翻译,并且必须在二者之间进行可认知地映射。与之对照,在本公开所描述的系统中,无论从应用程序或用户角度,在虚拟空间和物理空间之间没有不同(除了虚拟空间更服从于数学操纵),因此对操作员没有认知翻译的要求。与在此描述的实施例所提供的精确指向的最类似的是触敏屏(例如,如许多ATM 机器上所发现的)。触敏屏提供屏幕上的两维显示空间和屏幕表面的两维输入空间之间的一对一映射。以类似方式,在此描述的系统提供显示在一个或更多个屏幕上的虚拟空间和操作员所处于的物理空间之间的灵活映射(可能但不一定是一对一)。尽管所述类似是有用的,但是应该理解的是,将该“影射方法”扩展到三维、任意大的结构环境以及多个屏幕并非是微不足道的。除了在此描述的组成之外,系统还可以实施在环境的物理空间和每个屏幕上的显示空间之间实施连续、系统级映射(也许通过旋转、平移、比例缩放或其他几何变换来修改)的算法。描绘堆栈(rendering stack),其获得计算的物体以及映射并输出虚拟空间的图形表示。输入事件处理堆栈,其从控制系统获得事件数据(在当前的实施例中,来自系统和鼠标输入的姿势和指向数据二者)并将来自输入事件的空间数据映射到虚拟空间中的坐标。经翻译的事件随后被传递到正在运行的应用程序。“胶层(glue layer)”,其允许所述系统掌管在局域网上跨几个计算机运行的应用程序。空间连续体输入系统的实施例在这里被描述成包括基于网络的数据表示、转化和互换,其包括被称为“等离子体”的系统,该系统包括子系统“色拉”、“蛋白质”以及“池”,如以下详细描述的。池和蛋白质是在此描述的用于对要在进程之间或者跨越进程被共享的数据进行封装的方法和系统的组成。除了蛋白质和池之外,这些机制还包括色拉。一般而言, 色拉提供最低水平的用于进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子(hook),而池则提供高水平的组织和访问语义。色拉包括用于有效的不依赖于平台的数据表示和访问的机制。蛋白质提供使用色拉作为有效载荷的数据封装和传输方案。池在进程之内、在局域进程当中、跨越远程或分布式进程之间的网络并且经由较长期 (例如盘上等)存储装置提供蛋白质的结构化的并且灵活的聚集、排序、过滤和分配。在此描述的实施例的配置和实施方式包括几个构造,它们一起使众多能力成为可能。例如,在此描述的实施例提供了数据在大量进程之间的有效交换,如上所述。在此描述的实施例还提供了灵活的数据“定型(typing) ”和结构,以便支持数据的广泛变化的种类和使用。此外,在此描述的实施例包括全部由基本上类似的应用程序编程接口(API)驱动的用于数据交换(例如本地存储器、盘、网络等)的灵活机制。此外,描述的实施例使得以不同的编程语言编写的进程之间的数据交换成为可能。另外,在此描述的实施例使得数据缓存和聚集状态的自动维护成为可能。图14是根据实施例的包括使用色拉、蛋白质和池的数据表示的处理环境的框图。 在此呈现的实施例的主要构造包括色拉、蛋白质和池。在此描述的色拉包括用于有效的不依赖于平台的数据表示和访问机制。在此详细描述的蛋白质提供数据封装和传输方案,并且实施例的蛋白质的有效载荷包括色拉。在此描述的池提供蛋白质的结构化但却灵活的聚集、排序、过滤和分配。池在进程之内、在局域进程当中、跨越远程或分布式进程之间的网络并且经由“较长期”(例如盘上)存储装置借助于蛋白质提供对数据的访问。图15是根据实施例的蛋白质的框图。蛋白质包括长度头部、记述和摄取。如下面详细描述的那样,记述和摄取中的每一个都包括一个或更多个色拉。图16是根据实施例的记述的框图。如下面详细描述的那样,记述包括偏移、长度和色拉。图17是根据实施例的摄取的框图。如下面详细描述的那样,摄取包括偏移、长度和色拉。图18是根据实施例的色拉的框图。如下面详细描述的那样,色拉包括类型头部和类型专用数据。图19A是根据实施例的池中蛋白质的框图。蛋白质包括长度头部(“蛋白质长度”)、记述偏移、摄取偏移、记述和摄取。记述包括偏移、长度和色拉。摄取包括偏移、长度和色拉。在此描述的蛋白质是用于封装数据的机制,其中,所述数据需要在进程之间共享, 或者需要跨越总线或网络或其他处理结构而移动。作为例子,蛋白质提供了用于传输和操纵数据的改进机制,其中,所述数据包括对应于或者关联于用户接口事件的数据;特别地, 实施例的用户接口事件包括上述姿势接口的用户接口事件。作为进一步的例子,蛋白质提供了用于传输和操纵数据的改进机制,其中,所述数据包括但不限于图形数据或事件以及状态信息,这只是举几个例子。蛋白质是结构化的记录格式和用于操纵记录的方法的相关集合。如在此使用的对记录的操纵包括将数据放到结构中、将数据从结构取出以及查询数据的格式和存在。蛋白质配置成经由以多种计算机语言编写的代码来使用。如在此描述的那样,蛋白质还被配置成是用于池的基本构筑块。此外,蛋白质被配置成天然地能够在处理器之间并跨越网络移动,同时维持它们包括的数据原封不动。与传统的数据传输机制形成对照,蛋白质是未定型的。虽然是未定型的,但是蛋白质提供了强大且灵活的模式匹配设施,在其上实施“类型相似”功能。如在此描述的那样配置的蛋白质还固有地为多点(尽管点对点形式作为多点传输的子集容易实现)。另外,蛋白质定义了“通用”记录格式,其例如在存储器内、盘上和线(网络)上格式之间并无不同 (或者仅在所执行的可选优化的类型方面不同)。参考18和23A,实施例的蛋白质是字节的线性序列。在这些字节内封装有记述列表和被称为摄取的关键值对的集合。记述列表包括任意精细但却有效可过滤的每个蛋白质事件描述。摄取包括关键值对的集合,其包括蛋白质的实际内容。蛋白质与关键值对以及关于网络友好和多点数据交换的某些核心思想的相关性, 与给予“元组(tuple) ”的概念特权的较早系统(例如Linda、Jini)共享。蛋白质与面向元组的系统在几个主要方面不同,包括使用记述列表以提供标准的可优化的模式匹配基底 (substrate)。蛋白质还与面向元组的系统在适合于多种存储和语言构造的记录格式的严格规范连同对该记录格式的“接口”的几个具体实施方面不同。转向对蛋白质的描述,蛋白质的前四个或八个字节指定了蛋白质的长度,其在实施例中必须是16字节的倍数。这个16字节粒度确保了字节对准和总线对准效能在当代的硬件上可实现。未被自然地“四倍长字对准”的蛋白质被填充以任意字节,以便它的长度是 16字节的倍数。蛋白质的长度部分具有以下格式呈大端(big-endian)格式的指定长度的32位, 其中四个最低阶位充当旗标以指示宏观水平蛋白质结构特性;继之以32个另外的位,如果蛋白质的长度大于2~32字节的话。实施例的16字节对准限制性条件意味着前四个字节的最低阶位作为旗标可用。 而且因此前三个低阶位旗标分别指示蛋白质的长度可以用前四个字节表示还是需要八个, 蛋白质使用大端还是小端(little-endian)字节排序,以及蛋白质使用标准还是非标准结构,但是蛋白质不限于此。第四个旗标位被保留以供将来使用。如果八字节长度旗标位被设置,则蛋白质的长度通过以下计算读取下四个字节, 并且使用它们作为大端的八字节整数的高阶字节(其中已经读取的四个字节供应低阶部分)。如果小端旗标被设置,则蛋白质中的所有二进制数值数据都将被解译为小端(否则为大端)。如果非标准旗标位被设置,则蛋白质的剩余部分不符合下面将要描述的标准结构。在此不会进一步讨论非标准蛋白质结构,除了要说的是,关于对使用蛋白质和池的系统程序员可用的非标准蛋白质格式,存在用于描述和同步化的各种方法,并且当空间或计算周期受到约束时,这些方法是可以使用的。例如,实施例的最短蛋白质是十六字节。 标准格式的蛋白质在这些十六字节中不适合任何实际的有效负载数据(这些十六字节中最大的一份已经用于描述蛋白质的组成部分的位置)。而非标准格式的蛋白质就能够可以想象地使用其16个字节中的12个用于数据。交换蛋白质的两个应用程序可以相互决定它们发出的任何16字节长的蛋白质总是包括例如表示来自实时模拟数字转换器的12个8位传感器值的12个字节。紧跟着长度头部,在蛋白质的标准结构中,出现两个更多的可变长度整数。这些数分别制定了对记述列表中的第一个元素和第一个关键值对(摄取)的偏移。这些偏移在此也分别被称为记述偏移和摄取偏移。这些数的每四倍的字节顺序由蛋白质端旗标位指定。 对于每个而言,前四个字节的最高有效位确定数字是四个还是八个字节宽。如果最高有效位(msb)被设置,则前四个字节是双字(八字节)数字的最高有效字节。这在此被称为“偏移形式”。指向记述和对的单独偏移的使用允许记述和对通过不同的代码路径被处理,使得例如与记述模式匹配和蛋白质装配相关的特定优化成为可能。在蛋白质的开始处的这两个偏移的存在还允许几个有用的优化。大多数蛋白质不会如此大以至于需要八字节的长度或指针,所以一般而言,长度 (具有旗标)和两个偏移数字只会占据蛋白质的前三个字节。在许多硬件或系统体系结构上,超过第一个的一定数目字节的提取或读取是“免开销的”(例如16个字节正好与在Cell 处理器的主总线上访问单个字节占用相同数目的时钟周期)。在许多实例中,允许蛋白质内部的实施专用或上下文专用的缓存或元数据都是有用的。偏移的使用允许在蛋白质的开始附近创建任意尺寸的“洞”,其中可以放置这样的元数据。可以利用八个字节的元数据的实施在许多系统体系结构上免开销地得到那些字节, 其中,每次提取蛋白质的长度头部。记述偏移指定了蛋白质的开始与第一个记述条目之间的字节数。每个记述条目包括到下一个记述条目的偏移(当然是以偏移格式),然后是可变宽度的长度字段(又是以偏移格式),然后是色拉。如果没有进一步的记述,则偏移按规定是四个字节的零。否则,偏移指定这个记述条目的开始与下一个记述条目之间的字节数。长度字段以字节的方式指定色拉的长度。在大多数蛋白质中,每个记述都是串,以色拉串的方式被格式化四字节长度/类型头部,其中最高有效位被设置并且只有较低的30位用于指定长度,然后是头部的指示数目的数据字节。通常,长度头部从蛋白质取其端。字节被假定编码UTF-8字符(并且这样一来一注意一字符数就不一定与字节数相同)。摄取偏移指定了蛋白质的开始与第一个摄取条目之间的字节数。每个摄取条目包括到下一个摄取条目的偏移(以偏移格式),然后是长度字段和色拉。摄取偏移在功能上等同于记述偏移,除了它指向下一个摄取条目而不是下一个记述条目之外。在大多数蛋白质中,每个摄取具有色拉对类型,其包括双值列表,一般用作关键/ 值对。色拉对记录包括四字节长度/类型头部,其中第二最高有效位被设置并且只有较低的30位用于指定长度;到值(第二)元素开始的四字节偏移;四字节长度的关键元素;用于关键元素的色拉记录;四字节长度的值元素;以及最后用于值元素的色拉记录。一般而言,对关键字是色拉串。跨越几个蛋白质、色拉对长度和偏移字段的数据的重复提供了用于细化和优化的又一次机会。如上所述,根据实施例使用的用于将定型的数据嵌入蛋白质内部的构造是被称为 “色拉”的标记字节序列规范和抽象。色拉是表示(可能是聚集的)定型数据的字节的线性序列,并且与编程语言专用API相关联,其允许色拉在存储器空间、存储介质和机器之间创建、修改和四处移动。色拉类型方案旨在是可扩展并且尽可能重量轻的,并且成为可以从任何编程语言使用的通用基底。建立有效的大规模的进程间通信机制的愿望是色拉配置的驱动器。传统的编程语言提供了在进程专用存储器布局中工作良好的复杂数据结构和类型设施,但是当数据需要在进程之间移动或存储在盘上时,这些数据表示总是损坏。色拉体系结构是用于进程间通信的第一基本上有效的多平台友好的低水平数据模型。但更重要的是,色拉被配置成连同蛋白质一起影响并其使能够进行对未来计算硬件(微处理器、存储器控制器、盘控制器)的开发。对例如公共可用的微处理器的指令集合的几个专用添加使得色拉可以甚至对于单进程、存储器内数据布局变得与大多数编程语言中使用的方案一样有效。每个色拉包括可变长度类型头部,随后是类型专用数据布局。在例如支持C、C++ 和Ruby形式的全色拉功能的示例实施例中,通过可从每种语言访问的系统头部文件中定义的通用整数来指示类型。更加复杂和灵活的类型分辨功能也是可能的例如经由通用对象ID和网络查找的间接定型。实施例的色拉配置允许色拉记录用作例如来自Ruby和C++两者的语言友好方式的对象。C++编译器外部的一套实用程序完整性检查色拉字节布局,创建专用于单独色拉类型的宏和外部文件,并且自动生成用于Ruby的绑定。结果,良好配置的色拉类型即使当从单个进程之内使用时也十分有效。进程的可访问存储器中任何地方的任何色拉都可以被寻址而无需复制或“去串行化”步骤。实施例的色拉功能包括用于执行以下中的一个或更多个的API设施创建特定类型的新色拉;创建或建立对来自盘上或存储器内字节的色拉的语言专用引用;以类型专用方式将数据嵌入色拉之内;查询色拉的尺寸;从色拉之内检索数据;克隆色拉;以及翻译色拉之内全部数据的端和其他格式属性。每个色拉都执行上述行为。图19B1和19B2示出了根据实施例的色拉头部格式。色拉的详细描述如下。每个色拉的内部结构都优化类型分辨、对封装数据的访问以及用于该色拉实例的尺寸信息中的每一个。在实施例中,色拉类型的完全集合被设计得最小程度地完全,并且包括色拉串;色拉对(cons)(亦即对);色拉列表;以及色拉数字对象,其自身表示成被理解为半打排列或这种基本属性的单独数字类型的广泛集合。任何色拉的其他基本性质是其尺寸。在实施例中,色拉具有量化成四的倍数的字节长度;这些四字节字在此被称为“四元组 (quad) ”。一般而言,这样的基于四的尺寸定位使得色拉与现代计算机硬件体系结构的配置良好对齐。实施例中的每个色拉的前四个字节包括头部结构,其编码了类型描述和其他元信息,并且将特定类型意义归因于具体位模式。例如,色拉头部的第一个(最高有效)位用于指定该色拉的尺寸(以四字的长度计)是否遵循初始四字节类型头部。当这个位被设置时, 可以理解的是,色拉的尺寸明确地记录在色拉的下四个字节中(例如字节五至八);如果色拉的尺寸不能以四个字节来表示(亦即,如果尺寸是或大于二的三十二次幂),那么色拉的初始四个字节的下一个最高有效位也被设置,这表明色拉具有八字节(而不是四字节)长度。在这种情况下,检查过程会发现存储在顺序字节五至十二中的色拉长度。另一方面,小数目的色拉类型意味着在许多情况下完全指定的典型的位模式“留下未使用”四字节色拉头部中的许多位;并且在这样的情况下这些位可以用于编码色拉的长度,节省否则会需要的字节(五至八)。例如,实施例留下色拉头部的最高有效位(“长度跟随”旗标)未设置,并且设置下一位以指示色拉是“微对(wee cons)”,并且在这种情况下色拉的长度(以四计)被编码在剩余的三十位中。类似地,“微串(wee string)”用头部中的模式001来标记,其留下二十九位用于表示色拉串的长度;并且头部中的引导0001描述“微列表(wee list)”,其根据二十八个可用长度表示位可以是高达二的二十八次幂个四元组大小的色拉列表。“全串 (full string) ”(或对或列表)具有不同的头部中的位签名,其中最高有效头部位必定被设置,因为色拉长度分开编码在字节五至八(或十二,在极端情况下)中。注意,等离子体实施在色拉构造之时“决定”是使用这些构造的“微”还是“全”版本(该决定基于作为结果的尺寸是否会“配合”可用的“微”位),但是“全”对比于“微”的细节相对于等离子体实施的用户是隐藏的,用户只知道和关心他正在使用色拉串或色拉对或色拉列表。
数值色拉在实施例中用引导头部模式00001指示。随后的头部位用于表示可能以任意排列进行组合的一组正交性质。实施例使用但不限于五个这样的字符位以指示数字是否是(1)浮点;(2)复数;(3)无符号;(4) “宽(wide) ”; (5) “粗短(stumpy),,(对(4) “宽” 和( “粗短”进行排列以指示八、十六、三十二和六十四位数表示)。两个另外的位(例如 (7)和(8))指示封装的数值数据是二、三或四元素矢量(其中两个位为零表明数值是“一元素矢量”(亦即标量))。在这个实施例中,第四个头部字节的八个位用于编码封装的数值数据的尺寸(以字节计而不是四元组)。这个尺寸编码被偏移一,以便它可以表示包括一和二百五十六字节之间的任何尺寸。最后,两个字符位(例如(9)和(10))用于指示数值数据编码单独数值条目的阵列,其中的每一个具有由字符位(1)至(8)描述的类型。在阵列的情况下,单独数值条目不是每个都用另外的头部标记,而是包装为连续的数据,其跟随单个头部亦即可能的明确色拉尺寸信息。这个实施例提供了简单而有效的色拉复制(其可以实施为字节对字节复制)和极其直接和有效的色拉比较(在这个实施例中当且仅当考虑序列的两个色拉的组成字节中的每一个一一匹配时,这两个色拉才相同)。这后一性质例如对于蛋白质体系结构的有效实施是重要的,蛋白质体系结构的关键性和普遍的特征之一是搜索或“匹配”蛋白质的记述列表。进一步,此处的实施例允许简单且有效地构造聚集色拉形式(例如色拉对和色拉列表)。例如,实施例通过以下从两组成色拉(其可以具有任何类型,包括它们自己聚集) 建立色拉对(a)查询每个组成色拉的尺寸;(b)分配尺寸等于两个组成色拉的尺寸和头部加上尺寸结构所需的一个、两个或三个四元组之和的存储器;(c)在前四个、八个或十二个字节中记录色拉头部(加上尺寸信息);以及然后(d)依次将组成色拉的字节复制到紧接着后续的存储器中。重要的是,这样的构造例程不需要知道关于两组成色拉的类型的任何东西;只有它们的尺寸(以及作为字节序列的可访问性)要紧。相同的过程适用于色拉列表的构造,所述色拉列表是(可能地)异类类型的任意许多子色拉的排序封装。作为存储器内顺序字节的色拉系统的基础格式的另一个结果结合“遍历”活动一例如循环使用模式使用一获得对色拉列表中存储的单独色拉的顺序访问。表示在蛋白质结构之内的记述和摄取的单独色拉必须类似地遍历。以非常直接且有效的方式完成这样的调度为了 “到达”色拉列表中的下一个色拉,将当前色拉的长度添加到其存储器内的位置,并且作为结果的存储器位置等同于下一个色拉的头部。这样的简化是可能的,因为色拉和蛋白质设计避免“间接”;不存在指针;相反地,数据简单地以其整体就位。关于色拉比较这一点,等离子体系统的完全实施必须承认跨越不同操作系统、CPU 和硬件体系结构以及它们当中的不同且不兼容的数据表示方案的存在。大多数这样的不同包括字节排序策略(例如小端对比于大端)和浮点表示;其他不同也存在。等离子体规范要求色拉所封装的数据保证可解译(亦即必须以从中检查色拉的体系结构或平台的自然格式出现)。这个要求依次表明等离子体系统自身对数据格式转化负责。然而,规范仅规定,在色拉变得对可能检查它的执行进程“根本可见”之前发生转换。因此达到单独的实施, 在该点它选择执行这样的格式c转换;两个适当的方法是,色拉数据有效载荷符合本地体系结构的数据格式(1)当单独的色拉从它已被包装在其中的蛋白质中“拉出”时,或者(2) 对于同时在蛋白质中的全部色拉,当该蛋白质从它处于其中的池中提取时。注意,转换规定考虑硬件辅助实施的可能性。例如,建立有明确等离子体能力的联网芯片组可以基于接收系统的已知特性智能地并且在“传输时”执行格式转换。交替地,从传输的过程可以将数据有效载荷转换成规范格式,其中接收过程对称地从规范转换到“本地”格式。另一个实施例执行“在金属(at the metal)”的格式转换,意味着数据总是以规范格式存储,即使在本地存储器中也是,并且当数据从存储器中检索并放置在就近CPU的寄存器中时,存储器控制器硬件自身执行转换。实施例的最小(和只读)蛋白质实施包括利用蛋白质的一个或更多个应用程序或编程语言中的操作或行为。图19C是根据实施例的用于使用蛋白质的流程图650。操作开始于查询652蛋白质的以字节计的长度。查询记述条目的数目654。查询摄取的条目656。 通过指数检索658记述条目。通过指数检索660摄取。在此描述的实施例还定义了允许蛋白质被构造并填充以数据的基本方法、使一般任务对程序员更容易的助手方法以及用于创建优化的钩子。图19D是根据实施例的用于构造或生成蛋白质的流程图670。操作开始于创建672新蛋白质。一系列的记述条目被附加 674。摄取也被附加676。查询匹配记述的存在678,并且查询匹配摄取关键字的存在680。 给定摄取关键字,摄取值被检索682。跨越记述执行684模式匹配。在蛋白质的开始附近嵌入686非结构化的元数据。如上所述,色拉提供最低水平的用于进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子,而池则提供高水平的组织和访问语义。池是用于蛋白质的仓库,提供线性序列和状态缓存。池还提供通过众多不同类型的多个程序或应用程序进行的多程序访问。此外,池提供一组共同的可优化的过滤和模式匹配行为。可以容纳成千上万个蛋白质的实施例的池起作用以维持状态,以便单独的进程可以卸载对多进程程序代码共同的大多数冗长簿记。池维持或保持过去可用蛋白质的大缓冲器一柏拉图式(Platonic)池外显地是无限的一以便参与的进程可以随意在池中向后和向前扫描。缓冲器的尺寸当然依赖于实施方式,但是在通常使用中常常可以将蛋白质保持在池中以小时或天计。与现有的进程间通信框架所采取的机械式点对点方法形成对照,在此所述的池使用的最通常的风格遵守生物学比喻。名称蛋白质暗指生物学灵感池中的数据蛋白质可用于大量计算进程进行的灵活查询和模式匹配,就像活体组织中的化学蛋白质可用于大量细胞试剂进行的模式匹配和过滤。两个另外的抽象依靠生物学比喻,包括使用“处理机(handl er) ”和高尔基 (Golgi)框架。参与池的进程一般创建若干处理机。处理机是将匹配条件与处理行为相关联的相对小束的代码。通过将一个或更多个处理机联系到池,进程设立封装状态的灵活的回叫触发,并对新的蛋白质起反应。参与几个池的进程一般从抽象高尔基类继承。高尔基框架提供若干有用的例程, 用于管理多个池和处理机。高尔基类还封装双亲-子女关系,提供不使用池的本地蛋白质交换的机制。根据实施例提供的池API配置成允许池以多种方式实施,以便既考虑系统专用目标,又考虑给定硬件和网络体系结构的可用能力。池所依靠的两个基本系统规定是存储设施和进程间通信的设备。在此描述的现存系统使用以下的灵活组合共享存储器、虚拟存储器和用于存储设施的盘以及用于进程间通信的TCP/IP套接字和IPC队列。实施例的池功能包括但不限于以下参与池;将蛋白质放置在池中;从池中检索下一个未看到的蛋白质;快退或快进池内的内容(例如蛋白质)。另外,池功能可以包括但不限于以下设立用于进程的流池回叫;选择性地检索匹配记述或摄取关键字的特殊模式的蛋白质;向后和向前扫描匹配记述或摄取关键字的特殊模式的蛋白质。上述蛋白质被提供给池,作为与其他应用程序共享蛋白质数据内容的方式。图20 是根据实施例的包括使用色拉、蛋白质和池的数据交换的处理环境的框图。这个实例环境包括三个设备(例如设备X、设备Y和设备Z,在此集体被称为“设备”),它们通过使用如上所述的色拉、蛋白质和池来共享数据。设备中的每一个耦接到三个池(例如池1、池2、池 3)。池1包括众多蛋白质(例如蛋白质XI、蛋白质Z2、蛋白质Y2、蛋白质X4、蛋白质Y4), 它们从各个设备贡献或传送到池(例如,蛋白质Z2由设备Z传送或贡献到池1,等等)。池 2包括众多蛋白质(例如,蛋白质Z2由设备Z传送或贡献到池1,等等)。池2包括众多蛋白质(例如蛋白质Z4、蛋白质TO、蛋白质Z1、蛋白质Χ; ),它们从各个设备贡献或传送到池 (例如,蛋白质Y3由设备Y传送或贡献到池2,等等)。池3包括众多蛋白质(例如蛋白质 Y1、蛋白质Z3、蛋白质X2),它们从各个设备贡献或传送到池(例如,蛋白质X2由设备X传送或贡献到池3,等等)。虽然上面描述的例子包括耦接或连接在三个池当中的三个设备, 但是任何数目的设备可以以任何方式或组合来耦接或连接在任何数目的池当中,并且任何池可以包括从任何数目或组合的设备中贡献的任何数目的蛋白质。这个例子的蛋白质和池如上所述参考图14-19。图21是根据实施例的下述处理环境的框图,该处理环境包括多个设备和在所述设备中的一个或更多个设备上运行的众多程序,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并集体地响应由设备所生成的事件。这个系统只是多用户、多设备、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个设备(例如设备A、B等等)和在设备上运行的若干程序(例如应用程序AA-AX、应用程序BA-BX等等)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并集体地响应由这些输入设备所生成的事件。在这个例子中,每个设备(例如设备A、B等等)将由运行于各个设备上的程序(例如应用程序AA-AX、应用程序BA-BX等等)生成的或者从其输出的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,程序AX生成数据或输出并提供该输出给设备A,设备A依次将原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,程序BC生成数据并提供该数据给设备 B,设备B依次将数据翻译成蛋白质(例如蛋白质1B、蛋白质2B等等)并将那些蛋白质存放到池中。每个蛋白质包含记述列表,其指定通过应用程序注册的数据或输出以及用于程序自身的识别信息。在可能的情况下,蛋白质记述也可以给予输出事件或动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于程序事件的有用状态信息的全部集合。如上所述,蛋白质在由耦接或连接到池的任何程序或设备使用的池中是可用的, 而不管程序或设备的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些设备只需能够经由本地存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个直接后果是以下有益的可能性将负责生成处理事件的进程与使用或解译事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便设备可以由一个人控制或者可以由几个人同时使用(例如基于等离子体的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。作为例子,设备C可以从池中提取一个或更多个蛋白质(例如蛋白质1A、蛋白质 2A等等)。在蛋白质提取之后,设备C在蛋白质数据所对应的处理事件中可以使用从蛋白质的记述和摄取的色拉中检索或读取的蛋白质的数据。作为另一个例子,设备B可以从池中提取一个或更多个蛋白质(例如蛋白质1C、蛋白质2A等等)。在蛋白质提取之后,设备 B在蛋白质数据所对应的处理事件中可以使用蛋白质的数据。耦接或连接到池的设备和/或程序可以在池中向后和向前浏览以查找具体的蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其他蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望有的编码模式的依靠。图22是根据替换实施例的下述处理环境的框图,该处理环境包括多个设备和在所述设备中的一个或更多个设备上运行的众多程序,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并集体地响应由设备所生成的事件。这个系统只是多用户、多设备、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个设备(例如分别耦接到设备A和B的设备X和Y)和在一个或更多个计算机(例如设备A、设备B等等)上运行的若干程序(例如应用程序AA-AX、应用程序BA-BX等等)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并集体地响应由这些输入设备所生成的事件。在这个例子中,每个设备(例如分别耦接到设备A和B的设备X和Y)被管理和/ 或耦接以在一个或更多个程序之下或者与其相结合地运行,所述一个或更多个程序驻留在各个设备上(例如设备A、设备B等等),各个设备将由设备(例如设备X、设备A、设备Y、设备B等等)硬件所生成的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,与驻留在设备A上的应用程序AB相结合地运行的设备X生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,与驻留在设备A上的应用程序AT相结合地运行的设备X生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为再另一个例子与驻留在设备C上的应用程序⑶相结合地运行的设备Z生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1C、蛋白质2C等等)并将那些蛋白质存放到池中。每个蛋白质都包括记述列表,其指定通过输入设备注册的动作以及用于设备自身的识别信息。在可能的情况下,蛋白质记述也可以给予设备动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于设备事件的有用状态信息的全部集合。如上所述,蛋白质在由耦接或连接到池的任何程序或设备使用的池中是可用的, 而不管程序或设备的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些设备只需能够经由本地存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性将负责生成处理事件的进程与使用或解译事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便输入设备可以由一个人控制或者可以由几个人同时使用(例如基于等离子体的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。耦接或连接到池的设备和/或程序可以在池中向后和向前浏览以查找具体的蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其他蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望有的编码模式的依靠。图23是根据另一个替换实施例的下述处理环境的框图,该处理环境包括多个输入设备,所述多个输入设备耦接在运行于设备中的一个或更多个设备上的众多程序当中, 其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并集体地响应由设备所生成的事件。这个系统只是多用户、多设备、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个输入设备(例如输入设备A、B、BA和BB等等) 和在一个或更多个计算机(例如设备A、设备B等等)上运行的若干程序(未示出)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入设备所生成的事件集体作出反应。在这个例子中,每个输入设备(例如输入设备A、B、BA和BB等等)由驻留在各个设备上(例如设备A、设备B等等)的软件驱动器程序管理,所述各个设备将由输入设备硬件所生成的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,输入设备A生成原始数据并提供该原始数据给设备A、设备A依次将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,输入设备BB生成原始数据并提供该原始数据给设备B,设备B依次将离散的原始数据翻译成蛋白质(例如蛋白质1B、蛋白质2B等等)并将那些蛋白质存放到池中。每个蛋白质包含记述列表,其指定通过输入设备注册的动作以及用于设备自身的识别信息。在可能的情况下,蛋白质记述也可以给予设备动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于设备事件的有用状态信息的全部集合。为了示意,这里是这样的系统中的用于两个典型事件的示例蛋白质。蛋白质在这里被表示为文本,然而在实际实施中,这些蛋白质的组成部分是定型的数据束(例如色拉)。描述一般而言“一根手指点击”姿势(在相关申请中有描述)的蛋白质如下
权利要求
1.一种系统,包括 输入设备;以及检测器,所述检测器耦接至处理器并且检测所述输入设备的取向,其中,所述输入设备具有与所述取向对应的多个模式取向,其中,所述多个模式取向对应于姿势控制系统的多个输入模式,其中,所述检测器耦接至所述姿势控制系统并且响应于所述取向而自动控制所述多个输入模式中的输入模式的选择。
2.根据权利要求1所述的系统,其中,所述检测器将所述输入设备的取向解译并且翻译成所述姿势控制系统的输入信号。
3.根据权利要求2所述的系统,其中,所述检测器将所述输入设备在所述多个模式取向之间的取向转换解译并且翻译成所述姿势控制系统的输入信号。
4.根据权利要求1所述的系统,其中,对所述取向的检测包括检测所述输入设备在时间和空间中的点处的瞬时状态的绝对三维空间位置。
5.根据权利要求1所述的系统,其中,所述检测器跟踪所述输入设备在所述多个模式取向之间的取向转换。
6.根据权利要求5所述的系统,其中,所述取向转换是围绕所述输入设备的轴线的旋转转换。
7.根据权利要求5所述的系统,其中,所述取向转换是围绕所述输入设备的多条轴线的旋转转换。
8.根据权利要求5所述的系统,包括在所述取向转换期间向所述输入模式的选择施加滞后。
9.根据权利要求1所述的系统,其中,所述检测器实时跟踪瞬时取向。
10.根据权利要求9所述的系统,其中,所述检测器将所述输入设备的原始跟踪数据翻译成空间取向的六个度。
11.根据权利要求1所述的系统,其中,所述检测器实时跟踪所述输入设备的瞬时位置。
12.根据权利要求11所述的系统,其中,所述检测器将所述输入设备的原始跟踪数据翻译成空间位置的六个度。
13.根据权利要求1所述的系统,包括至少一个输入传感器,其中,所述输入传感器被定位在所述输入设备上。
14.根据权利要求13所述的系统,其中,所述检测器将原始输入传感器位置数据翻译成输入传感器状态。
15.根据权利要求13所述的系统,其中,所述检测器将原始输入传感器位置数据翻译成输入传感器转换数据。
16.根据权利要求13所述的系统,其中,所述输入传感器的位置控制所述多个输入模式。
17.根据权利要求1所述的系统,其中,所述输入设备包括所述检测器。
18.根据权利要求1所述的系统,其中,所述检测器是远离所述输入设备的远程检测ο
19.根据权利要求1所述的系统,其中,所述检测器包括由所述输入设备承载的输入设备检测器部件以及远离所述输入设备的远程检测器部件。
20.根据权利要求1所述的系统,其中,所述输入设备是手持输入设备。
21.根据权利要求1所述的系统,其中,所述检测器检测所述输入设备在时间和空间中的点处的瞬时状态的绝对三维空间位置。
22.根据权利要求21所述的系统,其中,所述多个输入模式包括直接操纵模式,在所述直接操纵模式中,所述瞬时状态用于直接操纵耦接至所述姿势控制系统的部件的应用元件。
23.根据权利要求21所述的系统,其中,所述多个输入模式包括元操纵模式,在所述元操纵模式中,所述瞬时状态用于直接操纵耦接至所述姿势控制系统的部件的应用元件组。
24.根据权利要求21所述的系统,其中,所述多个输入模式包括三维操纵模式,在所述三维操纵模式中,所述瞬时状态用于三维操纵耦接至所述姿势控制系统的部件的应用元件。
25.根据权利要求21所述的系统,其中,所述姿势控制系统控制耦接至所述姿势控制系统的三维空间物体。
26.根据权利要求25所述的系统,包括通过三个平移自由度和三个旋转自由度控制所述三维空间物体。
27.根据权利要求沈所述的系统,其中,所述控制包括所述三维空间物体与所述输入设备的运动之间的直接耦接。
28.根据权利要求沈所述的系统,其中,所述控制包括所述三维空间物体与所述输入设备的运动之间的间接耦接。
29.根据权利要求沈所述的系统,其中,所述三维空间物体被呈现在耦接至所述处理器的显示设备上。
30.根据权利要求沈所述的系统,包括通过将所述输入设备的所述多个输入模式映射至所述三维空间物体的多个物体平移来控制所述三维空间物体的移动。
31.根据权利要求30所述的系统,其中,所述映射包括所述多个输入模式与所述多个物体平移之间的直接映射。
32.根据权利要求30所述的系统,其中,所述映射包括所述多个输入模式与所述多个物体平移之间的间接映射。
33.根据权利要求30所述的系统,其中,所述映射包括将所述多个输入模式的位置偏移与所述三维空间物体的物体平移的位置偏移相关联。
34.根据权利要求30所述的系统,其中,所述映射包括将所述输入设备的位置偏移与所述三维空间物体的物体平移的平移速度相关联。
35.根据权利要求沈所述的系统,包括通过将所述输入设备的线性姿势映射至所述三维空间物体的线性平移来控制所述三维空间物体的移动。
36.根据权利要求沈所述的系统,包括通过将所述输入设备的旋转姿势映射至所述三维空间物体的旋转平移来控制所述三维空间物体的移动。
37.根据权利要求沈所述的系统,包括通过将所述输入设备的线性姿势映射至所述三维空间物体的旋转平移来控制所述三维空间物体的移动。
38.根据权利要求沈所述的系统,包括通过将所述输入设备的旋转姿势映射至所述三维空间物体的线性平移来控制所述三维空间物体的移动。
39.根据权利要求沈所述的系统,其中,所述检测包括检测所述输入设备的推断位置与虚拟空间相交的时间,其中,所述虚拟空间包括在耦接至所述姿势控制系统的显示设备上描画的空间。
40.根据权利要求1所述的系统,其中,所述检测器检测所述输入设备的事件,其中,所述事件与所述输入设备的三维空间位置和三维空间取向中的至少一个对应,其中,所述事件与第一类型的应用对应。
41.根据权利要求40所述的系统,其中,所述处理器生成数据序列,所述数据序列包括指定所述事件的输入设备事件数据以及所述事件的状态信息,其中,所述输入设备事件数据和状态信息是具有与所述姿势控制系统的第一应用对应的类型的类型专用数据。
42.根据权利要求41所述的系统,其中,所述处理器形成数据容器以包括所述数据序列,其中,所述数据容器具有包括独立于应用的所述数据序列的表示的数据结构。
43.根据权利要求42所述的系统,其中,所述处理器将所述数据容器放置在知识库中。
44.根据权利要求43所述的系统,其中,在第二类型的应用下运行的第二事件搜索所述知识库并且识别所述数据容器与所述第二事件之间的对应关系,其中,所述第二类型的所述应用使用所述数据容器的所述数据序列的内容来执行与所述第二事件对应的操作。
45.根据权利要求1所述的系统,其中,所述跟踪是电磁场(EMF)跟踪。
46.根据权利要求45所述的系统,其中,所述输入设备包括耦接至电路的检测器,其中,所述检测器包括多个线圈。
47.根据权利要求46所述的系统,包括远离所述输入设备的场发生器,其中,所述场发生器生成在所述多个线圈中感应出信号的电磁场。
48.根据权利要求47所述的系统,包括远离所述输入设备的多个场发生器,其中,在所述输入设备接近感应出信号的所述场发生器时,每个场发生器在所述输入设备的所述多个线圈中感应出所述信号。
49.根据权利要求47所述的系统,其中,所述检测器使用在所述多个线圈中感应出的电磁场信号来检测所述输入设备的取向。
50.根据权利要求49所述的系统,其中,所述检测器使用在所述多个线圈中感应出的信号来检测所述输入设备的位置。
51.根据权利要求46所述的系统,其中,所述输入设备包括耦接至所述处理器的发射机,其中,所述发射机是无线发射机。
52.根据权利要求51所述的系统,其中,所述发射机将所述输入设备的取向传达给所述姿势控制系统。
53.根据权利要求51所述的系统,其中,所述发射机将所述输入设备的位置传达给所述姿势控制系统。
54.根据权利要求51所述的系统,其中,所述输入设备包括至少一个输入传感器,其中,所述发射机将所述至少一个输入传感器的状态传达给所述姿势控制系统。
55.根据权利要求1所述的系统,其中,所述跟踪是光学跟踪。
56.根据权利要求55所述的系统,包括连接至所述输入设备的至少一个标签。
57.根据权利要求56所述的系统,其中,所述至少一个标签包括连接至所述输入设备的前部区域的多个标签。
58.根据权利要求56所述的系统,其中,所述跟踪包括动态检测所述至少一个标签的位置。
59.根据权利要求58所述的系统,其中,所述跟踪包括检测耦接至所述输入设备的区域的标签组的位置。
60.根据权利要求59所述的系统,其中,所述标签组中的每个标签包括图案,其中,所述标签组中的每个标签的每个图案不同于所述多个标签中的任意剩余标签的任意图案。
61.根据权利要求60所述的系统,其中,每个标签包括第一图案和第二图案,其中,所述第一图案为所述标签组中的任意标签共用;而所述第二图案在所述标签组中的至少两个标签之间是不同的。
62.根据权利要求59所述的系统,其中,所述标签组在所述输入设备上形成多个图案。
63.根据权利要求56所述的系统,其中,所述至少一个标签包括红外(IR)发光二极管 (LED)组和回射点组。
64.根据权利要求63所述的系统,其中,所述输入设备包括耦接至电路的微处理器,其中,所述电路耦接至所述红外发光二极管组。
65.根据权利要求64所述的系统,包括耦接至所述电路的至少一个输入传感器,其中, 所述至少一个输入传感器被定位在所述输入设备上。
66.根据权利要求65所述的系统,其中,所述至少一个输入传感器控制所述红外发光二极管组的状态。
67.根据权利要求66所述的系统,其中,每个红外发光二极管的状态与所述多个输入模式中的至少一个输入模式对应。
68.根据权利要求56所述的系统,其中,所述至少一个标签包括连接至所述输入设备的至少一个跟踪点。
69.根据权利要求68所述的系统,其中,所述至少一个跟踪点包括至少一个红外(IR) 发光二极管(LED)。
70.根据权利要求68所述的系统,其中,所述至少一个跟踪点包括至少一个回射点。
71.根据权利要求68所述的系统,其中,所述至少一个跟踪点包括红外(IR)发光二极管(LED)和回射点中的至少一个。
72.根据权利要求68所述的系统,其中,所述至少一个跟踪点包括红外发光二极管组和回射点组。
73.根据权利要求1所述的系统,其中,所述输入设备包括多个侧面,其中,所述多个侧面中的每个侧面与所述多个模式取向中的模式取向对应。
74.根据权利要求73所述的系统,其中,所述多个侧面中的每个侧面与所述多个输入模式中的输入模式对应。
75.根据权利要求73所述的系统,其中,所述多个侧面中的每个侧面被分配以与所述侧面对应的输入模式。
76.根据权利要求73所述的系统,其中,所述多个侧面中的每个侧面基于上下文被动态地分配以输入模式。
77.根据权利要求73所述的系统,其中,所述多个侧面中的至少一个侧面包括输入传感器。
78.根据权利要求73所述的系统,其中,所述多个侧面中的每个侧面包括输入传感器。
79.根据权利要求73所述的系统,其中,每个侧面的每个输入传感器基于所述取向被动态地分配以功能。
80.根据权利要求73所述的系统,其中,每个侧面的每个输入传感器基于上下文被动态地分配以功能。
81.根据权利要求73所述的系统,其中,所述多个侧面包括三个侧面,其中,所述输入设备具有三角形横截面,其中,所述多个侧面中的每个侧面与所述多个模式取向中的模式取向对应。
82.根据权利要求73所述的系统,其中,所述多个侧面中的每个侧面与所述多个输入模式中的输入模式对应。
83.根据权利要求82所述的系统,其中,所述多个侧面中的第一侧面与第一输入模式对应,而所述多个侧面中的第二侧面与第二输入模式对应,其中,包括将所述输入设备围绕纵向轴线相对于所述第一侧面的中心旋转大于120度的取向转换引起从所述第一输入模式至所述第二输入模式的变化。
84.根据权利要求83所述的系统,其中,所述检测器在所述取向转换期间向所述输入模式的选择施加滞后带。
85.根据权利要求84所述的系统,其中,所述滞后带是近似地等于和大于30度中的至少一个。
86.根据权利要求84所述的系统,其中,所述滞后带是可编程的。
87.根据权利要求81所述的系统,其中,所述多个侧面中的每个侧面包括输入传感器。
88.一种系统,包括输入设备,所述输入设备包括耦接至电路的处理器,其中,所述处理器控制姿势控制系统的多个输入模式;以及检测器,所述检测器耦接至所述处理器并且检测所述输入设备在时间和空间中的点处的瞬时状态的绝对三维空间位置和取向,其中,所述输入设备具有与至少所述取向对应的多个模式取向,其中,所述多个模式取向与姿势控制系统的多个输入模式对应,其中,所述检测器耦接至所述姿势控制系统并且响应于所述取向自动控制所述多个输入模式中的输入模式的选择。
89.一种输入设备,包括手持壳,所述手持壳包括处理器,其中,所述处理器耦接至检测器,所述检测器检测所述输入设备当前被操作的取向和所述输入设备在多个取向之间的转换,并且所述检测器将所述输入设备当前被操作的取向和所述输入设备的多个取向之间的转换翻译成输入信号,其中,所述输入信号自动控制姿势控制系统的多个输入模式。
90.根据权利要求89所述的设备,其中,所述检测器包括包括有多个线圈的电路。
91.根据权利要求90所述的设备,包括远程电磁场(EMF)发生器,所述远程电磁场发生器生成在所述多个线圈中感应出信号的电磁场。
92.根据权利要求91所述的设备,包括多个远程电磁场发生器,其中,当所述壳接近感应出信号的所述电磁场发生器时,每个电磁场发生器在所述多个线圈中感应出所述信号。
93.根据权利要求91所述的设备,其中,所述检测器通过使用在所述多个线圈中感应出的电磁场信号来检测所述取向。
94.根据权利要求93所述的设备,其中,所述检测器通过使用在所述多个线圈中感应出的信号来检测所述输入设备的位置。
95.根据权利要求90所述的设备,包括耦接至所述处理器的发射机,其中,所述发射机是无线发射机。
96.根据权利要求95所述的设备,其中,所述发射机将所述取向传达给所述姿势控制系统。
97.根据权利要求95所述的设备,其中,所述发射机将所述输入设备的位置传达给所述姿势控制系统。
98.根据权利要求95所述的设备,包括耦接至所述处理器的至少一个输入传感器,其中,所述发射机将所述至少一个输入传感器的状态传达给所述姿势控制系统。
99.根据权利要求98所述的设备,其中,所述检测器将原始输入传感器位置数据翻译成输入传感器状态。
100.根据权利要求99所述的设备,其中,所述输入传感器的位置控制所述姿势控制系统。
101.根据权利要求89所述的设备,其中,所述多个取向与姿势控制系统的所述多个输入模式对应。
102.根据权利要求101所述的设备,其中,所述多个输入模式包括直接操纵模式,在所述直接操纵模式中,所述输入设备直接操纵耦接至所述姿势控制系统的部件的应用元件。
103.根据权利要求101所述的设备,其中,所述多个输入模式包括元操纵模式,在所述元操纵模式中,所述输入设备直接操纵耦接至所述姿势控制系统的部件的应用元件组。
104.根据权利要求101所述的设备,其中,所述多个输入模式包括三维操纵模式,在所述三维操纵模式中,所述输入设备控制耦接至所述姿势控制系统的部件的应用元件的三维操纵。
105.根据权利要求89所述的设备,其中,所述输入信号响应于所述取向而自动控制所述多个输入模式中的输入模式的选择。
106.根据权利要求105所述的设备,包括在所述转换期间向所述输入模式的选择施加滞后。
107.根据权利要求89所述的设备,其中,所述转换是围绕所述输入设备的至少一个轴线的旋转转换。
108.根据权利要求89所述的设备,其中,所述检测器实时跟踪在时间和空间中的点处的瞬时三维空间取向。
109.根据权利要求108所述的设备,其中,所述检测器将所述输入设备的原始跟踪数据翻译成空间取向的六个度。
110.根据权利要求89所述的设备,其中,所述检测器实时跟踪在时间和空间中的点处的瞬时三维空间位置。
111.根据权利要求110所述的设备,其中,所述检测器将所述输入设备的原始跟踪数据翻译成空间位置的六个度。
112.根据权利要求89所述的设备,其中,所述壳包括多个侧面,其中,所述多个侧面中的每个侧面与所述多个取向中的取向对应。
113.根据权利要求112所述的设备,其中,所述多个侧面中的每个侧面与所述多个输入模式中的输入模式对应。
114.根据权利要求113所述的设备,其中,所述多个侧面中的每个侧面被分配以与所述侧面对应的输入模式。
115.根据权利要求113所述的设备,其中,所述多个侧面中的每个侧面基于上下文被动态地分配以输入模式。
116.根据权利要求112所述的设备,其中,所述多个侧面中的至少一个侧面包括输入传感器。
117.根据权利要求112所述的设备,其中,所述多个侧面中的每个侧面包括输入传感ο
118.根据权利要求117所述的设备,其中,每个侧面的每个输入传感器基于所述取向被动态地分配以功能。
119.根据权利要求117所述的设备,其中,每个侧面的每个输入传感器基于上下文被动态地分配以功能。
120.根据权利要求112所述的设备,其中,所述多个侧面包括三个侧面,其中,所述壳具有三角形横截面,其中,所述多个侧面中的每个侧面与所述多个取向中的取向对应。
121.根据权利要求120所述的设备,其中,所述多个侧面中的第一侧面与第一输入模式对应,而所述多个侧面中的第二侧面与第二输入模式对应,其中,包括将所述输入设备围绕纵向轴线相对于所述第一侧面的中心旋转大于120度的转换引起从所述第一输入模式至所述第二输入模式的变化。
122.根据权利要求121所述的设备,其中,所述检测器在所述转换期间向所述输入模式的所述选择施加滞后带。
123.根据权利要求122所述的设备,其中,所述滞后带是近似地等于和大于30度中的至少一个。
124.根据权利要求122所述的设备,其中,所述滞后带是可编程的。
125.根据权利要求89所述的设备,其中,所述检测器检测所述输入设备的事件,其中, 所述事件与所述输入设备的三维空间位置和三维空间取向中的至少一个对应,其中,所述事件与第一类型的应用对应。
126.根据权利要求125所述的设备,其中,所述处理器生成数据序列,所述数据序列包括指定所述事件的输入设备事件数据以及所述事件的状态信息,其中,所述输入设备事件数据和状态信息是具有与所述姿势控制系统的第一应用对应的类型的类型专用数据。
127.根据权利要求1 所述的设备,其中,所述处理器形成数据容器以包括所述数据序列,其中,所述数据容器具有包括独立于应用的所述数据序列的表示的数据结构。
128.根据权利要求127所述的设备,其中,所述处理器将所述数据容器放置在知识库中。
129.根据权利要求1 所述的设备,其中,在第二类型的应用下运行的第二事件搜索所述知识库并且识别所述数据容器与所述第二事件之间的对应关系,其中,所述第二类型的应用使用所述数据容器的所述数据序列的内容来执行与所述第二事件对应的操作。
130.根据权利要求89所述的设备,其中,所述姿势控制系统控制耦接至所述姿势控制系统的三维空间物体。
131.根据权利要求130所述的设备,包括通过三个平移自由度和三个旋转自由度经由所述设备来控制所述三维空间物体。
132.根据权利要求131所述的设备,其中,所述控制包括所述三维空间物体与所述输入设备的运动之间的直接耦接。
133.根据权利要求131所述的设备,其中,所述控制包括所述三维空间物体与所述输入设备的运动之间的间接耦接。
134.根据权利要求131所述的设备,其中,所述三维空间物体被呈现在耦接至所述处理器的显示设备上。
135.根据权利要求131所述的设备,包括通过将所述输入设备的所述多个输入模式映射至所述三维空间物体的多个物体平移来控制所述三维空间物体的移动。
136.根据权利要求135所述的设备,其中,所述映射包括所述多个输入模式与所述多个物体平移之间的直接映射。
137.根据权利要求135所述的设备,其中,所述映射包括所述多个输入模式与所述多个物体平移之间的间接映射。
138.根据权利要求135所述的设备,其中,所述映射包括将所述多个输入模式的位置偏移与所述三维空间物体的物体平移的位置偏移相关联。
139.根据权利要求135所述的设备,其中,所述映射包括将所述输入设备的位置偏移与所述三维空间物体的物体平移的平移速度相关联。
140.根据权利要求131所述的设备,包括通过将所述输入设备的线性姿势映射至所述三维空间物体的线性平移来控制所述三维空间物体的移动。
141.根据权利要求131所述的设备,包括通过将所述输入设备的旋转姿势映射至所述三维空间物体的旋转平移来控制所述三维空间物体的移动。
142.根据权利要求131所述的设备,包括通过将所述输入设备的线性姿势映射至所述三维空间物体的旋转平移来控制所述三维空间物体的移动。
143.根据权利要求131所述的设备,包括通过将所述输入设备的旋转姿势映射至所述三维空间物体的线性平移来控制所述三维空间物体的移动。
144.根据权利要求131所述的设备,其中,所述检测包括检测所述输入设备的推断位置与虚拟空间相交的时间,其中,所述虚拟空间包括在耦接至所述姿势控制系统的显示设备上描画的空间。
145.一种输入设备,包括处理器,所述处理器耦接至检测器并且容纳在具有手持形状因子的壳中,其中,所述检测器检测所述壳当前被操作的取向和所述壳的位置中的至少一个并且将所述壳当前被操作的取向和所述壳的位置中的至少一个翻译成输入信号,其中,所述检测器使用在线圈中感应出的信号来检测所述取向和所述位置中的至少一个;以及发射机,所述发射机耦接至所述处理器,其中,所述发射机将所述输入信号传达给姿势控制系统,其中,所述输入信号自动控制所述姿势控制系统的多个输入模式并且控制耦接至所述姿势控制系统的三维空间物体的平移和旋转。
146.一种输入设备,包括包括有处理器的手持壳,其中,所述处理器耦接至检测器,所述检测器检测所述输入设备当前被操作的取向以及所述输入设备在多个取向之间的转换, 并且所述检测器将所述输入设备当前操作的取向以及所述输入设备的多个取向之间的转换翻译成输入信号,其中,所述输入信号自动控制姿势控制系统的多个输入模式并且控制与所述姿势控制系统耦接的三维空间物体,其中,所述输入信号通过三个平移自由度和三个旋转自由度控制所述三维空间物体。
147.一种方法,包括检测并且翻译输入设备当前操作的取向以及所述输入设备的多个取向之间的转换,其中,所述输入设备包括包括有处理器的手持壳;响应于所述取向和所述转换而自动控制所述多个输入模式中的输入模式的选择;以及根据所述输入模式控制耦接至所述姿势控制系统的三维空间物体。
148.根据权利要求147所述的方法,其中,所述取向的所述检测包括检测所述输入设备在时间和空间中的某点处的瞬时状态的绝对三维空间位置。
149.根据权利要求147所述的方法,其中,所述转换是围绕所述输入设备的轴线的旋转转换。
150.根据权利要求147所述的方法,其中,所述转换是围绕所述输入设备的多条轴线的旋转转换。
151.根据权利要求147所述的方法,包括在所述转换期间向所述输入模式的选择施加滞后。
152.根据权利要求147所述的方法,其中,所述检测包括实时检测瞬时取向。
153.根据权利要求152所述的方法,其中,所述翻译包括将所述输入设备的原始跟踪数据翻译成空间取向的六个度。
154.根据权利要求147所述的方法,其中,所述检测包括实时检测所述输入设备的瞬时位置。
155.根据权利要求IM所述的方法,其中,所述翻译包括将所述输入设备的原始跟踪数据翻译成空间位置的六个度。
156.根据权利要求147所述的方法,包括至少一个输入传感器,其中,所述传感器被定位在所述输入设备上。
157.根据权利要求147所述的方法,包括检测所述输入设备的输入传感器的原始输入传感器位置数据并且将所述输入设备的输入传感器的原始输入传感器位置数据翻译成输入传感器状态。
158.根据权利要求157所述的方法,包括响应于所述输入传感器状态控制所述多个输入模式。
159.根据权利要求147所述的方法,其中,所述检测在所述输入设备上进行。
160.根据权利要求147所述的方法,其中,所述检测远离所述输入设备进行。
161.根据权利要求147所述的方法,其中,所述检测在所述输入设备上进行以及远离所述输入设备进行。
162.根据权利要求147所述的方法,其中,所述输入设备是手持输入设备。
163.根据权利要求147所述的方法,其中,所述检测包括检测所述输入设备在空间和时间中的点处的瞬时状态的绝对三维空间位置。
164.根据权利要求163所述的方法,其中,所述多个输入模式包括直接操纵模式,在所述直接操纵模式中,所述瞬时状态用于耦接至所述姿势控制系统的部件的应用元件的直接操纵。
165.根据权利要求163所述的方法,其中,所述多个输入模式包括元操纵模式,在所述元操纵模式中,所述瞬时状态用于耦接至所述姿势控制系统的部件的应用元件组的直接操纵。
166.根据权利要求163所述的方法,其中,所述多个输入模式包括三维操纵模式,在所述三维操纵模式中,所述瞬时状态用于耦接至所述姿势控制系统的部件的应用元件的三维操纵。
167.根据权利要求163所述的方法,包括经由所述姿势控制系统控制耦接至所述姿势控制系统的三维空间物体。
168.根据权利要求167所述的方法,包括通过三个平移自由度和三个旋转自由度控制所述三维空间物体。
169.根据权利要求168所述的方法,其中,所述控制包括所述三维空间物体与所述输入设备的运动之间的直接耦接。
170.根据权利要求168所述的方法,其中,所述控制包括所述三维空间物体与所述输入设备的运动之间的间接耦接。
171.根据权利要求168所述的方法,包括将所述三维空间物体呈现在显示设备上。
172.根据权利要求168所述的方法,包括通过将所述输入设备的所述多个输入模式映射至所述三维空间物体的多个物体平移来控制所述三维空间物体的移动。
173.根据权利要求172所述的方法,其中,所述映射包括所述多个输入模式与所述多个物体平移之间的直接映射。
174.根据权利要求172所述的方法,其中,所述映射包括所述多个输入模式与所述多个物体平移之间的间接映射。
175.根据权利要求172所述的方法,其中,所述映射包括将所述多个输入模式的位置偏移与所述三维空间物体的所述物体平移的位置偏移相关联。
176.根据权利要求172所述的方法,其中,所述映射包括将所述输入设备的位置偏移与所述三维空间物体的物体平移的平移速度相关联。
177.根据权利要求168所述的方法,包括通过将所述输入设备的线性姿势映射至所述三维空间物体的线性平移来控制所述三维空间物体的移动。
178.根据权利要求168所述的方法,包括通过将所述输入设备的旋转姿势映射至所述三维空间物体的旋转平移来控制所述三维空间物体的移动。
179.根据权利要求168所述的方法,包括通过将所述输入设备的线性姿势映射至所述三维空间物体的旋转平移来控制所述三维空间物体的移动。
180.根据权利要求168所述的方法,包括通过将所述输入设备的旋转姿势映射至所述三维空间物体的线性平移来控制所述三维空间物体的移动。
181.根据权利要求168所述的方法,其中,所述检测包括检测所述输入设备的推断位置与虚拟空间相交的时间,其中,所述虚拟空间包括在耦接至所述姿势控制系统的显示设备上描画的空间。
182.根据权利要求147所述的方法,其中,所述检测包括所述输入设备的事件,其中, 所述事件与所述输入设备的三维空间位置和三维空间取向中的至少一个对应,其中,所述事件与第一类型的应用对应。
183.根据权利要求182所述的方法,包括生成数据序列,所述数据序列包括指定所述事件的输入设备事件数据以及所述事件的状态信息,其中,所述输入设备事件数据和状态信息是具有与所述姿势控制系统的第一应用对应的类型的类型专用数据。
184.根据权利要求183所述的方法,包括形成数据容器以包括所述数据序列,其中,所述数据容器具有包括独立于应用的所述数据序列的表示的数据结构。
185.根据权利要求184所述的方法,包括将所述数据容器放置在知识库中。
186.根据权利要求185所述的方法,其中,在第二类型的应用下运行的第二事件搜索所述知识库并且识别所述数据容器与所述第二事件之间的对应关系,其中,所述第二类型的应用通过使用所述数据容器的所述数据序列的内容来执行与所述第二事件对应的操作。
187.根据权利要求147所述的方法,其中,所述检测使用电磁场(EMF)跟踪。
188.根据权利要求187所述的方法,包括生成在所述输入设备的多个线圈中感应出信号的电磁场。
189.根据权利要求188所述的方法,包括通过使用远离所述输入设备的多个场发生器来生成电磁场,其中,当所述输入设备接近感应出信号的所述场发生器时,每个场发生器在所述输入设备的多个线圈中感应出所述信号。
190.根据权利要求188所述的方法,其中,所述检测包括通过使用在所述多个线圈中感应出的电磁场信号来检测所述输入设备的取向。
191.根据权利要求190所述的方法,其中,所述检测包括使用在所述多个线圈中感应出的所述信号来检测所述输入设备的位置。
192.根据权利要求187所述的方法,包括将所述输入设备的取向传达给所述姿势控制系统。
193.根据权利要求187所述的方法,包括将所述输入设备的位置传达给所述姿势控制系统。
194.根据权利要求187所述的方法,包括将所述输入设备的至少一个输入传感器的状态传达给所述姿势控制系统。
195.根据权利要求147所述的方法,其中,所述检测使用光学跟踪。
196.根据权利要求195所述的方法,包括跟踪连接至所述输入设备的至少一个标签。
197.根据权利要求196所述的方法,其中,所述至少一个标签包括连接至所述输入设备的前部区域的多个标签。
198.根据权利要求196所述的方法,其中,所述跟踪包括动态检测所述至少一个标签的位置。
199.根据权利要求198所述的方法,其中,所述跟踪包括检测耦接至所述输入设备的区域的标签组的位置。
200.根据权利要求199所述的方法,其中,所述标签组中的每个标签包括图案,其中, 所述标签组中的每个标签的每个图案不同于所述多个标签中的任意剩余标签的任意图案。
201.根据权利要求200所述的方法,其中,每个标签包括第一图案和第二图案,其中, 所述第一图案为所述标签组中的任意标签共用;而所述第二图案在所述标签组中的至少两个标签之间是不同的。
202.根据权利要求199所述的方法,其中,所述标签组在所述输入设备上形成多个图案。
203.根据权利要求196所述的方法,其中,所述至少一个标签包括红外(IR)发光二极管(LED)组和回射点组。
204.根据权利要求203所述的方法,包括经由所述输入设备的至少一个输入传感器控制所述红外发光二极管组的状态。
205.根据权利要求204所述的方法,其中,每个红外发光二极管的状态与所述多个输入模式中的至少一个输入模式对应。
206.根据权利要求196所述的方法,其中,所述至少一个标签包括连接至所述输入设备的至少一个跟踪点。
207.根据权利要求206所述的方法,其中,所述至少一个跟踪点包括至少一个红外 (IR)发光二极管(LED)。
208.根据权利要求206所述的方法,其中,所述至少一个跟踪点包括至少一个回射点。
209.根据权利要求206所述的方法,其中,所述至少一个跟踪点包括红外(IR)发光二极管(LED)和回射点中的至少一个。
210.根据权利要求206所述的方法,其中,所述至少一个跟踪点包括红外发光二极管组和回射点组。
211.根据权利要求147所述的方法,包括将所述输入设备的多个侧面中的每个侧面与多个取向中的取向相关联。
212.根据权利要求211所述的方法,包括限定所述多个侧面中的每个侧面与所述多个输入模式中的输入模式之间的对应关系。
213.根据权利要求211所述的方法,包括将所述多个侧面中的每个侧面分配给输入模式。
214.根据权利要求211所述的方法,包括基于上下文将所述多个侧面中的每个侧面动态地分配给输入模式。
215.根据权利要求211所述的方法,包括基于所述取向给侧面的输入传感器动态地分配功能。
216.根据权利要求211所述的方法,包括基于上下文给每个侧面的输入传感器动态地分配功能。
217.根据权利要求211所述的方法,其中,所述多个侧面包括三个侧面,其中,所述输入设备具有三角形横截面,包括将所述多个侧面中的每个侧面与所述多个取向中的取向相关联。
218.根据权利要求211所述的方法,包括限定所述多个侧面中的每个侧面与所述多个输入模式中的输入模式之间的对应关系。
219.根据权利要求218所述的方法,其中,所述对应关系包括所述多个侧面中的与第一输入模式对应的第一侧面以及所述多个侧面中的与第二输入模式对应的第二侧面,其中,包括将所述输入设备围绕纵向轴线相对于所述第一侧面的中心旋转大于120度的所述转换引起从所述第一输入模式至所述第二输入模式的变化。
220.根据权利要求219所述的方法,包括在所述转换期间向所述输入模式的选择施加滞后带。
221.根据权利要求220所述的方法,其中,所述滞后带是近似地等于和大于30度中的至少一个。
222.根据权利要求220所述的方法,其中,所述滞后带是可编程的。
223.—种方法,包括根据经由检测器接收到的姿势数据自动检测输入设备的姿势,其中,所述姿势数据是所述输入设备在时间和空间中的点处的瞬时状态的绝对三维空间取向,以及,仅使用所述姿势数据来识别所述姿势;将所述姿势翻译成姿势信号;以及响应于所述姿势信号自动控制所述输入设备的多个输入模式中的输入模式的选择。
224.—种方法,包括检测输入设备的取向,所述输入设备具有与所述取向对应的多个模式取向,其中,所述多个模式取向与姿势控制系统的多个输入模式对应;响应于所述取向自动控制所述多个输入模式中的输入模式的选择;以及根据所述输入模式控制与所述姿势控制系统耦接的三维空间物体。
全文摘要
一种包括有输入设备的系统,该输入设备包括耦接至处理器的检测器。检测器检测输入设备的取向。输入设备具有与该取向对应的多个模式取向。模式取向与姿势控制系统的多个输入模式对应。检测器耦接至姿势控制系统并且响应于该取向自动控制输入模式的选择。
文档编号G06T7/00GK102460510SQ201080033408
公开日2012年5月16日 申请日期2010年5月27日 优先权日2009年5月27日
发明者克温德拉·赫尔特曼·克拉默, 卡尔顿·斯帕雷尔, 哈拉尔德·贝尔克, 约翰·S·昂德科夫勒 申请人:奥布隆工业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1