首页 / 专利库 / 服装服饰 / 连指手套 / 用于空间输入装置的自适应跟踪系统

用于空间输入装置的自适应跟踪系统

阅读:694发布:2022-11-05

专利汇可以提供用于空间输入装置的自适应跟踪系统专利检索,专利查询,专利分析的服务。并且用于空间输入装置的自适应 跟踪 系统提供对空间输入装置的实时跟踪以便在空间操作环境(SOE)中进行 人机交互 。SOE的部件包括:姿势输入/输出;基于网络的数据表示、转变和互换;以及空间上符合的显示网格。SOE包括:由一个或更多个用户占据的 工作空间 ;向用户提供 视觉反馈 的一组屏幕;以及将用户运动翻译成命令输入的姿势控制系统。用户利用身体部分和/或物理指点装置来作出姿势,并且该系统将那些姿势翻译成动作,例如指点、拖拽、选择或其它直接操纵。该跟踪系统通过维持工作空间内的用户、屏幕、指点装置和其它物理对象之间的空间关系的模型来提供用于创建沉浸式环境所必需的数据。,下面是用于空间输入装置的自适应跟踪系统专利的具体信息内容。

1.一种用于空间输入装置的自适应跟踪系统,包括:
被贴附到多个对象的多个标签,其中,所述多个标签包括多个特征,使得每个标签包括至少一个特征;
多个传感器,其中,所述多个传感器的位置限定包括所述多个对象的空间操作环境SOE,其中,所述多个传感器检测所述多个特征;以及
在处理器上运行的自适应跟踪部件ATC,其中,所述ATC从所述多个传感器中的每个传感器接收由相应传感器检测到的与所述多个对象中的每个对象对应的特征数据,其中,所述ATC通过对来自所述多个传感器的所述特征数据进行整合来生成并维持所述多个对象与所述SOE之间的关系的相干模型。
2.根据权利要求1所述的系统,其中,所述相干模型包括所述多个对象之间的空间关系。
3.根据权利要求2所述的系统,其中,所述相干模型包括所述多个对象的位置、取向和运动中的至少一个。
4.根据权利要求2所述的系统,其中,所述相干模型包括所述多个对象的位置、取向和运动。
5.根据权利要求1所述的系统,其中,所述SOE包括所述ATC的虚拟空间,其中,所述ATC生成所述虚拟空间与包括所述SOE的物理空间之间的符合性。
6.根据权利要求1所述的系统,其中,传感器从至少一个标签检测包括所述至少一个标签相对于所述传感器的位置和取向的姿态
7.根据权利要求6所述的系统,其中,所述姿态包括六自由度姿态。
8.根据权利要求1所述的系统,其中,所述多个对象包括身体、身体的附肢、装置、衣服、手套、显示装置、家具中的至少一个。
9.根据权利要求1所述的系统,其中,所述相干模型的原点是相对于所述多个传感器中的特定传感器而限定的。
10.根据权利要求1所述的系统,其中,所述相干模型的原点是相对于所述多个标签中的特定标签而限定的,其中,所述特定标签具有相对于所述SOE的固定姿态。
11.根据权利要求1所述的系统,其中,所述相干模型的原点是相对于所述多个传感器中的特定传感器和所述多个标签中的特定标签而限定的,其中,所述特定标签具有相对于所述SOE的固定姿态。
12.根据权利要求1所述的系统,其中,所述多个标签中的每个标签包括由所述多个传感器检测和定位的至少一个特征。
13.根据权利要求1所述的系统,其中,每个标签包括标签设定信息。
14.根据权利要求1所述的系统,其中,每个标签包括身份信息。
15.根据权利要求1所述的系统,其中,每个标签包括姿态信息。
16.根据权利要求1所述的系统,其中,每个标签包括标签设定信息、身份信息和姿态信息中的至少一个。
17.根据权利要求1所述的系统,其中,每个标签包括标签设定信息、身份信息和姿态信息。
18.根据权利要求1所述的系统,其中,标签的投影图像包括标签设定。
19.根据权利要求18所述的系统,其中,所述至少一个特征包括至少一个标记。
20.根据权利要求19所述的系统,其中,所述标签设定使所述投影图像中的至少一个点与至少一个对应标记相关。
21.根据权利要求1所述的系统,其中,标签的投影图像包括身份。
22.根据权利要求21所述的系统,其中,所述至少一个特征包括所述标签上的多个标记。
23.根据权利要求22所述的系统,其中,所述身份将所述多个标签中的第一标签与所述多个标签中的第二标签区别开。
24.根据权利要求1所述的系统,其中,标签的投影图像包括姿态信息。
25.根据权利要求24所述的系统,其中,所述姿态信息包括平移信息和旋转信息。
26.根据权利要求25所述的系统,其中,所述平移信息包括三自由度平移。
27.根据权利要求26所述的系统,其中,所述旋转信息包括三自由度旋转。
28.根据权利要求25所述的系统,其中,所述姿态信息使标签的位置和取向与所述SOE的位置和取向相关。
29.根据权利要求1所述的系统,其中,每个传感器与所述SOE中的感测体积对应。
30.根据权利要求29所述的系统,其中,每个传感器估计所述感测体积内的每个标签的姿态。
31.根据权利要求30所述的系统,其中,所述姿态包括标签的位置。
32.根据权利要求30所述的系统,其中,所述姿态包括标签的取向。
33.根据权利要求30所述的系统,其中,所述姿态包括标签的位置和取向。
34.根据权利要求33所述的系统,其中,所述位置和所述取向是相对于每个相应传感器的。
35.根据权利要求29所述的系统,其中,每个传感器的所述感测体积与所述多个传感器中的至少一个其它传感器的所述感测体积至少部分地交叠。
36.根据权利要求35所述的系统,其中,所述多个传感器的组合感测体积是毗连的。
37.根据权利要求1所述的系统,其中,所述特征数据是同步的。
38.根据权利要求1所述的系统,其中,所述ATC针对所述多个传感器中的每个传感器生成相对于所述SOE的姿态的姿态模型。
39.根据权利要求38所述的系统,其中,所述姿态包括六自由度姿态。
40.根据权利要求38所述的系统,其中,当多个传感器全部都在一瞬间检测第一标签时,所述ATC生成所述多个传感器之间的空间关系。
41.根据权利要求40所述的系统,其中,所述ATC使用所述空间关系来更新所述相干模型。
42.根据权利要求41所述的系统,其中,所述ATC相对于所述多个传感器中的特定传感器而限定所述相干模型的原点。
43.根据权利要求41所述的系统,其中,所述ATC相对于所述多个标签中的特定标签而限定所述相干模型的原点,其中,所述特定标签具有相对于所述SOE的固定姿态。
44.根据权利要求41所述的系统,其中,所述ATC相对于所述多个传感器中的特定传感器和所述多个标签中的特定标签而限定所述相干模型的原点,其中,所述特定标签具有相对于所述SOE的固定姿态。
45.根据权利要求41所述的系统,其中,针对每个传感器确定正确的姿态模型。
46.根据权利要求45所述的系统,其中,由传感器在多个时间点处跟踪标签,并且针对所述标签生成多个姿态模型。
47.根据权利要求46所述的系统,其中,针对所述多个姿态模型生成多个置信量度,并且基于所述多个置信量度对所述多个姿态模型进行剔选以去除任何不一致的姿态模型。
48.根据权利要求45所述的系统,其中,由多个传感器在多个时间点处跟踪标签,并且针对所述标签开发多组姿态模型,其中,每组姿态模型包括与每个时间点对应的多个姿态模型。
49.根据权利要求48所述的系统,其中,针对每组姿态模型中的所述多个姿态模型生成多个置信量度,并且基于所述多个置信量度对所述多组姿态模型进行剔选以去除任何不一致的姿态模型。
50.根据权利要求48所述的系统,其中,平均假设包括每组姿态模型中的所述多个姿态模型的平均。
51.根据权利要求50所述的系统,其中,所述平均假设近似于针对对应标签的真实姿态的最大似然性估计。
52.根据权利要求51所述的系统,其中,所述平均假设包括位置分量。
53.根据权利要求51所述的系统,其中,所述平均假设包括旋转分量。
54.根据权利要求51所述的系统,其中,所述平均假设包括位置分量和旋转分量。
55.根据权利要求54所述的系统,其中,所述位置分量由下面的第一等式给出:
其中,tn是对假设 进行测量的时间点,并且m是在时间点处检测所述标签的传感器的数目。
56.根据权利要求55所述的系统,其中,通过如下方式来对所述旋转分量取近似:将所述第一等式应用于形成所述SOE内的旋转坐标系的基的单位方向向量;并且重新归一化所述单位方向向量。
57.根据权利要求50所述的系统,其中,通过将校正因子应用于所述平均假设来生成经平滑的假设。
58.根据权利要求57所述的系统,其中,当至少一个额外的传感器检测标签时生成所述经平滑的假设,其中,所述至少一个额外的传感器先前未检测过所述标签。
59.根据权利要求57所述的系统,其中,当所述多个传感器中的至少一个传感器停止检测标签时生成所述经平滑的假设,其中,所述至少一个额外的传感器先前已检测过所述标签。
60.根据权利要求57所述的系统,其中,所述经平滑的假设包括位置分量。
61.根据权利要求57所述的系统,其中,所述经平滑的假设包括旋转分量。
62.根据权利要求57所述的系统,其中,所述经平滑的假设包括位置分量和旋转分量。
63.根据权利要求62所述的系统,其中,所述位置分量由下面的第二等式给出:
其中,tn是对假设 进行测量的时间点,m是在该瞬间检测所述标签的传感器的数目,并且c是校正因子。
64.根据权利要求63所述的系统,其中,所述校正因子被应用于所述平均假设,其中,所述校正因子是被定义为下式的向量:
ci(tn,tn-1)=k(xavg(tn)-xi(tn))+(1-k)(xsm(tn-1)-xi(tn-1))
其中,k是选自于0与1之间的常数。
65.根据权利要求64所述的系统,其中,所述常数k的值被选择为当贴附有标签的对象经历精细操纵和粗糙运动时为所述相干模型提供相对高的准确度。
66.根据权利要求64所述的系统,其中,所述常数k被选择为远小于1。
67.根据权利要求66所述的系统,其中,所述常数k被选择为使得经校正的假设xi+ci相对接近所述经平滑的假设。
68.根据权利要求66所述的系统,其中,所述常数k被选择为大于零,以确保所述经平滑的假设在每个时间段被迫朝向所述平均假设。
69.根据权利要求68所述的系统,其中,所述常数k的值变化为使得当在时间段之间所述标签的运动大时,所述经平滑的假设相对地在空间上准确。
70.根据权利要求69所述的系统,其中,当在时间段期间所述标签的运动小时,所述常数k的值被选择为相对小,使得所述经平滑的假设维持相对较大的空间和时间平滑度。
71.根据权利要求63所述的系统,其中,通过如下方式来对所述旋转分量取近似:将所述第二等式应用于形成所述SOE内的旋转坐标系的基的单位方向向量;并且重新归一化所述单位方向向量。
72.根据权利要求1所述的系统,其中,所述多个传感器中的至少一个传感器实时地测量所述多个对象中的至少一个对象的对象姿态。
73.根据权利要求72所述的系统,其中,所述至少一个传感器包括被贴附到对象的多个传感器。
74.根据权利要求72所述的系统,其中,所述至少一个传感器被贴附到所述至少一个对象。
75.根据权利要求74所述的系统,其中,所述ATC自动地适应于所述对象姿态的改变。
76.根据权利要求75所述的系统,其中,所述ATC生成所述至少一个对象的物理尺寸和姿态的模型。
77.根据权利要求76所述的系统,其中,所述姿态包括六自由度姿态。
78.根据权利要求75所述的系统,其中,所述至少一个传感器被贴附到所述至少一个对象的周界上的至少一个位置,其中,所述至少一个对象是显示装置。
79.根据权利要求78所述的系统,其中,所述ATC自动地确定所述至少一个位置。
80.根据权利要求79所述的系统,其中,所述至少一个位置的位置数据是人工输入的。
81.根据权利要求78所述的系统,其中,所述至少一个传感器实时地测量显示装置姿态。
82.根据权利要求81所述的系统,其中,所述ATC自动地适应于所述显示装置姿态的改变。
83.根据权利要求1所述的系统,其中,所述多个标签中的至少一个标签被贴附到所述多个对象中的至少一个对象。
84.根据权利要求83所述的系统,其中,所述至少一个标签包括被贴附到对象的多个标签。
85.根据权利要求83所述的系统,其中,所述多个传感器使用所述至少一个标签的信息来实时地测量所述至少一个对象的对象姿态。
86.根据权利要求85所述的系统,其中,所述ATC自动地适应于所述对象姿态的改变。
87.根据权利要求86所述的系统,其中,所述ATC生成所述至少一个对象的物理尺寸和姿态的模型。
88.根据权利要求87所述的系统,其中,所述姿态包括六自由度姿态。
89.根据权利要求86所述的系统,其中,所述至少一个标签被贴附到所述至少一个对象的周界上的至少一个位置,其中,所述至少一个对象是显示装置。
90.根据权利要求89所述的系统,其中,所述ATC自动地确定所述至少一个位置。
91.根据权利要求90所述的系统,其中,所述至少一个位置的位置数据是人工输入的。
92.根据权利要求89所述的系统,其中,所述多个传感器使用所述至少一个标签的信息来实时地测量显示装置姿态。
93.根据权利要求92所述的系统,其中,所述ATC自动地适应于所述显示装置姿态的改变。
94.根据权利要求1所述的系统,其中,所述多个传感器中的至少一个传感器实时地测量所述多个对象中的至少一个对象的对象姿态,其中,所述至少一个对象是被标记的对象。
95.根据权利要求94所述的系统,其中,使用被贴标签的对象来标记所述被标记的对象,其中,所述被贴标签的对象包括被贴附到对象的标签。
96.根据权利要求95所述的系统,其中,当所述被贴标签的对象被放置成与所述至少一个对象上的至少一个位置直接接触时,标记所述被标记的对象。
97.根据权利要求96所述的系统,其中,所述至少一个位置包括所述被标记的对象上的多个位置。
98.根据权利要求97所述的系统,其中,所述多个传感器测量所述被贴标签的对象相对于所述被标记的对象和所述SOE的姿态。
99.根据权利要求98所述的系统,其中,在所述多个位置处感测到的所述被贴标签的对象的所述姿态表示所述被标记的对象的姿态。
100.根据权利要求95所述的系统,其中,当所述被贴标签的对象指向所述至少一个对象上的多个位置时,标记所述被标记的对象。
101.根据权利要求100所述的系统,其中,所述多个传感器测量所述被贴标签的对象相对于所述被标记的对象和所述SOE的姿态。
102.根据权利要求101所述的系统,其中,所述被贴标签的对象的所述姿态表示所述被标记的对象的姿态。
103.根据权利要求102所述的系统,其中,所述被贴标签的对象的所述姿态表示在与所述被贴标签的对象指向所述多个位置之时对应的时间点处所述被标记的对象的姿态。
104.根据权利要求1所述的系统,其中,所述至少一个特征包括光学基准。
105.根据权利要求1所述的系统,其中,所述至少一个特征包括发光二极管
106.根据权利要求1所述的系统,其中,所述至少一个特征包括红外发光二极管
107.根据权利要求1所述的系统,其中,所述至少一个特征包括包含回射材料的标记。
108.根据权利要求1所述的系统,其中,所述至少一个特征包括如下标记:该标记包括包含至少一个颜色的至少一个区域。
109.根据权利要求1所述的系统,其中,所述至少一个特征包括多个共线标记。
110.根据权利要求1所述的系统,其中,标签包括线性局部标签LPT,所述LPT包括多个共线标记。
111.根据权利要求110所述的系统,其中,所述多个共线标记传达所述标签的身份。
112.根据权利要求111所述的系统,其中,标签包括多个LPT,其中,每个LPT包括多个共线标记。
113.根据权利要求112所述的系统,其中,标签包括位于衬底上的与第二LPT相邻的第一LPT,其中,所述第一LPT包括第一组共线标记,并且所述第二LPT包括第二组共线标记。
114.根据权利要求113所述的系统,其中,所述第一组共线标记包括四个共线标记,并且所述第二组共线标记包括四个共线标记。
115.根据权利要求113所述的系统,其中,所述多个传感器包括至少一个相机,并且所述特征数据包括由所述至少一个相机获取的投影图像,其中,所述投影图像包括所述标签。
116.根据权利要求115所述的系统,包括:搜索所述投影图像并且在所述投影图像中标识所述第一LPT。
117.根据权利要求116所述的系统,包括:将线与所述第一LPT中的所述第一组共线标记相拟合。
118.根据权利要求117所述的系统,包括:计算所述第一组共线标记的交比,其中,所述交比是所述第一组共线标记中的所述多个共线标记之间的成对距离的函数。
119.根据权利要求118所述的系统,包括:将所述交比与与一组已知LPT对应的一组交比相比较。
120.根据权利要求119所述的系统,包括:搜索所述投影图像并且标识所述第二LPT;以及将所述第一LPT和所述第二LPT组合成标签候选。
121.根据权利要求120所述的系统,包括:计算与所述标签候选对应的一组姿态假设。
122.根据权利要求121所述的系统,其中,所述姿态假设包括六自由度姿态。
123.根据权利要求121所述的系统,包括:计算作为所述组姿态假设中的姿态的重新投影误差的置信量度。
124.根据权利要求123所述的系统,其中,所述置信量度由下面的等式给出:
其中,p是所述标签中的共线标记的数目, 是共线标记在所述投影图像中的所测得的像素位置, 是所述共线标记在所述标签的坐标系中的对应理想位置,P是表示所述姿态的矩阵,并且 是所述至少一个相机的相机模型。
125.根据权利要求115所述的系统,其中,所述至少一个相机收集所述投影图像的图像坐标与所述多个共线标记之间的对应关系数据。
126.根据权利要求125所述的系统,包括相机校准应用,其中,使用所述相机校准应用来对所述至少一个相机的固有参数进行建模,其中,所述固有参数包括焦比、光心、偏斜度和镜头畸变中的至少一个。
127.根据权利要求126所述的系统,其中,至所述相机校准应用的输入包括所述对应关系数据。
128.根据权利要求1所述的系统,其中,所述处理器根据经由所述多个传感器接收到的所述特征数据来自动地检测身体的姿势,其中,所述多个对象包括所述身体,其中,所述特征数据是在时间和空间中的一点处所述身体的瞬时状态的绝对三度空间位置数据,所述检测包括聚集所述特征数据并且仅使用所述特征数据标识所述姿势。
129.根据权利要求128所述的系统,其中,所述处理器控制以下中的至少一个:在所述处理器上运行的应用的功能;由所述处理器显示的部件;以及耦接到所述处理器的部件。
130.根据权利要求128所述的系统,其中,所述处理器将所述姿势翻译成姿势信号、并且响应于所述姿势信号来控制耦接到所述处理器的部件。
131.根据权利要求130所述的系统,其中,所述检测包括标识所述姿势,其中,所述标识包括标识所述身体的一部分的姿态和取向。
132.根据权利要求131所述的系统,其中,所述翻译包括将所述姿势的信息翻译成姿势记号。
133.根据权利要求132所述的系统,其中,所述姿势记号表示姿势词汇,并且所述姿势信号包括所述姿势词汇的通信。
134.根据权利要求133所述的系统,其中,所述姿势词汇以文本形式表示所述身体的运动学联动机构的瞬时姿态状态。
135.根据权利要求133所述的系统,其中,所述姿势词汇以文本形式表示所述身体的运动学联动机构的取向。
136.根据权利要求133所述的系统,其中,所述姿势词汇以文本形式表示所述身体的运动学联动机构的取向的组合。
137.根据权利要求133所述的系统,其中,所述姿势词汇包括表示所述身体的运动学联动机构的状态的字符串。
138.根据权利要求130所述的系统,其中,控制所述部件包括通过将所述姿势映射到三度空间对象来同时以六自由度控制所述三度空间对象,其中,所述多个对象包括所述三度空间对象。
139.根据权利要求138所述的系统,其中,所述三度空间对象被呈现在耦接到所述处理器的显示装置上。
140.根据权利要求138所述的系统,其中,所述三度空间对象耦接到所述处理器。
141.根据权利要求138所述的系统,包括:通过将多个姿势映射到所述三度空间对象的多个对象平移来控制所述三度空间对象的移动。
142.根据权利要求138所述的系统,其中,所述检测包括检测所述对象的被外推出的位置何时与虚拟空间相交,其中,所述虚拟空间包括在耦接到所述处理器的显示装置上描绘出的空间。
143.根据权利要求142所述的系统,其中,控制所述部件包括当所述被外推出的位置与所述虚拟空间中的虚拟对象相交时控制所述虚拟对象。
144.根据权利要求143所述的系统,其中,控制所述部件包括响应于所述虚拟空间中的所述被外推出的位置来控制所述虚拟对象在所述虚拟空间中的位置。
145.根据权利要求144所述的系统,其中,控制所述部件包括响应于所述姿势来控制所述虚拟对象在所述虚拟空间中的姿态。

说明书全文

用于空间输入装置的自适应跟踪系统

[0001] 相关申请
[0002] 本申请要求2011年6月23日提交的美国专利申请号61/500,416的优先权。
[0003] 本申请是美国专利申请号12/572,689、12/572,698、12/109,263、12/417,252、12/487,623、12/553,845、12/553,902、12/553,929、12/557,464、12/579,340、12/579,354、12/
579,372、12/773,605、12/773,667、12/789,129、12/789,262、12/789,302、13/430,509和
13/430,626的部分延续申请。

技术领域

[0004] 描述了涉及控制系统和装置、更具体而言用于在基于视觉的跟踪系统中进行检测和初始化的控制系统和装置的实施方式。

背景技术

[0005] 存在对用于空间输入装置的自适应跟踪系统的需要,该自适应跟踪系统提供对空间输入装置的实时跟踪以便在空间操作环境(SOE)中进行人机交互(HCI)。
[0006] 通过引用的合并
[0007] 在本说明书中提到的每个专利、申请和/或公布通过引用以其全部内容相同程度地合并到本文中,如同每个单独的专利、专利申请和/或公布具体地单独地被指出通过引用被合并一样。附图说明
[0008] 图1A是根据实施方式的空间操作环境(SOE)的框图
[0009] 图1B是根据实施方式的运动跟踪系统的框图。
[0010] 图1C示出了根据实施方式的包括两个平行的线性局部标签(LPT)的8标记标签。
[0011] 图1D是根据实施方式的实施跟踪的流程图
[0012] 图2是根据实施方式的标记标签的图。
[0013] 图3是根据实施方式的姿势词汇中的姿态的图。
[0014] 图4是根据实施方式的姿势词汇中的取向的图。
[0015] 图5是根据实施方式的姿势词汇中的双手组合的图。
[0016] 图6是根据实施方式的姿势词汇中的取向混合的图。
[0017] 图7是根据实施方式的系统操作的流程图。
[0018] 图8/1和图8/2示出了根据实施方式的示例命令。
[0019] 图9是根据实施方式的包括使用色拉(slaw)、蛋白质和池(pool)的数据表示的处理环境的框图。
[0020] 图10是根据实施方式的蛋白质的框图。
[0021] 图11是根据实施方式的描述的框图。
[0022] 图12是根据实施方式的摄取的框图。
[0023] 图13是根据实施方式的色拉的框图。
[0024] 图14A是根据实施方式的池中的蛋白质的框图。
[0025] 图14B1和图14B2示出了根据实施方式的色拉头格式。
[0026] 图14C是根据实施方式的使用蛋白质的流程图。
[0027] 图14D是根据实施方式的构造或生成蛋白质的流程图。
[0028] 图15是根据实施方式的包括使用色拉、蛋白质和池的数据交换的处理环境的框图。
[0029] 图16是根据实施方式的处理环境的框图,该处理环境包括多个装置以及在多个装置中的一个或更多个装置上运行的大量程序,其中,等离子体构造(即,池、蛋白质和色拉)用于允许大量运行的程序共享并且集体地响应于装置而生成的事件。
[0030] 图17是根据可替选实施方式的处理环境的框图,该处理环境包括多个装置以及在多个装置中的一个或更多个装置上运行的大量程序,其中, 等离子体构造(即,池、蛋白质和色拉)用于允许大量运行的程序共享并且集体地响应于装置而生成的事件。
[0031] 图18是根据另一可替选实施方式的处理环境的框图,该处理环境包括多个输入装置,该多个输入装置耦接在运行于多个装置中的一个或更多个装置上的大量程序中,其中,等离子体构造(即,池、蛋白质和色拉)用于允许大量运行的程序共享并且集体地响应于装置而生成的事件。
[0032] 图19是根据又另一可替选实施方式的处理环境的框图,该处理环境包括多个装置,该多个装置耦接在运行于多个装置中的一个或更多个装置上的大量程序中,其中,等离子体构造(即,池、蛋白质和色拉)用于允许大量运行的程序共享并且集体地响应于装置而生成的事件。
[0033] 图20是根据再又一可替选实施方式的处理环境的框图,该处理环境包括多个装置,该多个装置耦接在运行于多个装置中的一个或更多个装置上的大量程序之间,其中,等离子体构造(即,池、蛋白质和色拉)用于允许对运行的程序进行状态检测、可视化和调试。
[0034] 图21是根据额外的可替选实施方式的处理环境的框图,该处理环境包括多个装置,该多个装置耦接在运行于多个装置中的一个或更多个装置上的大量程序中,其中,等离子体构造(即,池、蛋白质和色拉)用于允许影响和控制在该处理池中产生和放置的状态信息的特征。
[0035] 图22示出了根据实施方式的笔状多模态输入装置(MMID)。
[0036] 图23是根据实施方式的使用磁场跟踪的MMID的框图。
[0037] 图24是根据实施方式的在跟踪环境中的MMID的框图。
[0038] 图25A和图25B示出了根据实施方式的具有红外(IR)发光二极管(LED)(IR LED)的MMID的输入状态。
[0039] 图26A和图26B示出了根据可替选实施方式的具有IR LED的MMID的输入状态。

具体实施方式

[0040] 本文中描述的实施方式包括用于空间输入装置的自适应跟踪系统,该自适应跟踪系统提供对空间输入装置的实时跟踪以便在空间操作环境(SOE)中进行人机交互(HCI)。类似于操作系统,SOE的部件包括:姿势输入/输出;基于网络的数据表示、转变和互换;以及空间上符合的 显示网格。SOE包括:由一个或更多个用户占据的工作空间;向用户提供视觉反馈的一组屏幕;以及将用户运动翻译成命令输入的姿势控制系统。用户利用身体部分和/或物理指点装置来作出姿势,并且该系统将那些姿势翻译成动作,例如指点、拖拽、选择或其它直接操纵。该跟踪系统通过维持工作空间内的用户、屏幕、指点装置和其它物理对象之间的空间关系的模型来提供用于创建沉浸式环境所必需的数据。
[0041] 在下面详细描述的SOE的上下文中提供系统和方法的实施方式。通常,图1A是根据实施方式的空间操作环境(SOE)的框图。可以将包括姿势控制系统或基于姿势的控制系统的SOE可替代地称为空间用户接口(SUI)或空间接口(SI)。如本文中所述的跟踪包括用于检测或定位一个或更多个空间输入装置的位置的处理。在SOE或其它姿势接口的上下文中,这样的跟踪用于确定用户何时试图与系统进行通信,提供用于检测和识别临时扩展的姿势所需要的基本信息以及允许交互的实施控制和反馈。
[0042] 实施方式的自适应跟踪系统提供对空间输入装置的实时跟踪以便在SOE中进行人机交互,SOE包括由一个或更多个用户占据的工作空间、向用户提供视觉反馈的一组屏幕;以及将用户运动翻译成命令输入的姿势控制系统。用户利用身体部分和/或物理指点装置作出姿势,并且该系统将那些姿势翻译成动作,例如,指点、拖拽、选择或其它直接操纵。在本文和相关申请中详细描述这样的系统的功能和目的。
[0043] 姿势控制系统的最底层是跟踪用户在工作空间内的运动的部件。该跟踪部件使用传感器来捕捉并数字化物理运动,从而提供用于进行姿势检测和翻译层的基础
[0044] 已经将其中跟踪部件使用相机来捕捉物理运动的基于相机的系统用于电影和视频游戏行业中,以数字化和记录演员和对象的三维(3D)运动。当相机设置一组容易访问硬件软件时,对于直接应用于HCI而言,这样的系统可能不是最适合的,这是因为这样的系统需要刚性的相机架、大量的相机重叠和/或大量相机、在用于捕捉数据前的校准以及有意义的人工干预,以初始化对象跟踪,并且有时需要后处理步骤,以消除数据不一致性。
[0045] 相反,计算机用户可以期望其输入装置在不进行广泛配置的情况下工作。例如,用户可以将外围设备(例如键盘鼠标)附接到其个人计算机,并且立即开始使用。针对实施方式的HCI的运动跟踪系统以相同的方式进行,而不进行广泛配置或对用户施加维持要求。
[0046] 实施方式的跟踪系统和姿势控制的核心是相符合的虚拟空间和物理空间的概念,其中,系统创建如下感觉:在工作空间内的屏幕上所显示的虚拟信息简单地是物理工作空间的延伸。相关申请描述示例,该示例包括精确指点、对屏幕的移动和重新定位的自动补偿、依据用户位置而改变的图形以及屏幕显示中所包括的物理对象,这里仅举几例。
[0047] 为了提供用于创建这样的沉浸式环境所必需的数据,实施方式的跟踪系统维持工作空间内的用户、屏幕、指点装置和其它物理对象之间的空间关系的模型。实施方式包括运动跟踪系统,该运动跟踪系统的特征在于使得其非常适合于在实时姿势控制系统中使用。该特征包括但不限于以下内容:在不进行校准的情况下系统的快速引导;使用相对少的传感器来覆盖工作空间的能;对工作空间内的传感器、屏幕、用户、指点设备和其它对象之间的空间模型进行建模;对工作空间的意外的重新配置或故意的重新配置的快速自适应;
以及实时的传感器融合以在不进行后处理的情况下产生在空间上一致的运动跟踪。实施方式的运动跟踪使用与传统的运动捕捉所使用的相机和硬件一样的相机和硬件。
[0048] 实施方式的运动跟踪系统的部件包括但不限于传感器、标签、计算硬件和软件。图1B是根据实施方式的运动跟踪系统的框图。该运动跟踪系统在由用户200占据的工作空间环境100下工作,用户200具有被贴标签的棒(wand)300和/或被贴标签的手套310并且使用在固定屏幕400和移动屏幕410上呈现的应用。通过在工作空间500内安装的或者附接到屏幕510的固定相机来提供标签感测,同时计算硬件和软件600运行感测算法和用户应用。
[0049] 跟踪系统的传感器收集与工作空间内的标签的位置和取向(姿态)有关的信息。标签是能够容易地根据传感器所收集的数据进行检测、标识和定位的特定对象。计算硬件和软件将来自传感器的数据融合,以创建屏幕、传感器和标签之间的运动模型和空间关系。除了存在能够测量包括标签相对于传感器的位置和取向的六自由度(DOF)的姿态的感测装置以外,实施方式的系统对什么构成标签没有其它限制。使用被系统跟踪的标签来装饰相关对象(例如,指点装置、用户的身体部分、衣服、手套、屏幕等)。
[0050] 在使用期间,实施方式的系统自动地建立工作空间内的传感器、屏幕和被贴标签的对象之间的空间关系的相干(coherent)估计。每个传感器估计在其感测体积内的每个标签的姿态。每个传感器的感测体积与至少一个其它传感器的感测体积部分相重叠,并且所有传感器的组合感测体积是 毗连的(contiguous),以允许建立完整的相干模型。此外,虽然所有传感器不一定同步地收集测量,但是所有传感器的测量与相同的时钟同步。针对每个传感器,系统对相对于工作空间的6-DOF姿态进行建模。当多个传感器在时间上的相同时刻检测相同标签时,恢复那些传感器之间的空间关系,并且用来更新工作空间模型。因为传感器仅测量相对空间信息,所以模型的原点被锚定至特定传感器或者具有相对于物理工作空间的已知固定姿态的标签。
[0051] 实施方式包括姿态检测算法,该姿态检测算法用于进行平滑的姿态检测以及在其中传感器产生分歧、吵杂并且偶尔不正确的姿态假设的环境下来跟踪标签。实施方式的姿态检测算法提出实际系统中存在的两个条件。
[0052] 在来自多个传感器的姿态假设不一致的情况下,遇到第一条件。该第一条件可以由工作空间、传感器和/或标签模型中的不完美产生。在实际应用中,较低的系统成本可以换来较差的数据质量,其中,可以将更少的、更不吵杂并且更慢更新的传感器用于覆盖给定区域。此外,系统对工作空间配置的变化的快速自适应暗示:在构造和细化工作空间模型的任意给定时刻处,少量信息是可用的。
[0053] 当单个传感器针对单个标签产生多个姿态假设时,遇到第二条件,并且第二条件可以由固有的传感器特征或伪造的标签检测产生。例如,在观测平面标签的特定光学系统中存在固有模糊性:两个相异的假设可同等地很好地适配于给定测量,即使在具有轻微测量噪声的情况下也如此。另外,传感器噪声可以直接产生伪造的标签测量和假设。基于来自单个传感器的单个测量,可能无法区别正确的假设与不正确的假设。
[0054] 实施方式的系统使用两种方法来确定来自单个传感器的哪个姿态假设是正确的。当已针对多个时间步长以高置信度跟踪标签时,在标签最后已知的良好姿态与新的假设之间的一致性是用于剔选出离群假设的良好量度。当多个传感器检测相同标签时,系统剔选出跨多个传感器不一致的假设。最后,如果没有条件为真,则将所有假设传播至下面的时间步长,直至已经收集足够的证据剔选出离群假设为止。
[0055] 在一组固定的传感器在每个时间步长处始终检测和测量特定标签的姿态的情况下,在给定可用信息的情况下,对假设取平均近似于标签的真实姿态的最大似然性估计。该量被称为在特定时间步长处特定标签的“平均假设”。针对平均假设的位置部分的等式为:
[0056]
[0057] 其中,tn是测量假设 处的时间步长,并且m是在该时刻处所检测标签的传感器的数目。平均假设的旋转部分可以经由如下方式来取近似:相似的取平均;对形成标签在工作空间内的旋转坐标系的基的单位方向向量进行重新归一化。
[0058] 当新的传感器检测标签或者当现存传感器停止检测标签时,在一个时间步长至下一个时间步长的平均假设中存在中断。为了缓和这种中断,实施方式向先前的等式引入校正因子,其结果被称为针对特定时间步长的“经平滑的假设”。该经平滑的假设的位置部分被给出:
[0059]
[0060] 并且每个校正因子是被定义为下式的向量:
[0061]
[0062] 其中,k是选自于0至1之间的常数。可以经由如下来计算经平滑的假设的旋转部分:向形成标签在工作空间内的旋转坐标系的基的单位方向向量应用(1.2)和(1.3),之后进行重新归一化。
[0063] 实施方式使用k<<1,使得经校正的假设xi+ci接近来自先一时间步长的经平滑的假设。另外,k>0的选择确保了经平滑的假设在每个时间步长中被迫朝向平均假设。最后,使k变化,使得当在时间步长之间标签的运动大时(即,用户执行大的、快速的运动),经平滑的假设更加在空间上准确。相反,当在时间步长之间标签的运动小时(即,用户执行精细操纵),k被选择为小,使得经平滑的假设维持较大的空间和时间平滑度。通过适当地选择k,实施方式维持这样的灵活性:当用户执行精细操纵例如指点时确保高精度,而当用户执行粗糙运动例如拖拽或作姿势时增强总体准确度。
[0064] 因此,实施方式的系统使用来自传感器的不完美的数据来跟踪工作空间内的标签的全部姿态,同时排除假的假设并且在姿态估计中对中断进行平滑。
[0065] 实施方式的系统对每个屏幕的6-DOF姿态和物理尺寸进行建模。系统包括用于测量屏幕姿态的四种方法,该方法包括但不限于:使固定传感 器贴附到屏幕面板或表面;使固定标签贴附到屏幕面板或表面上;通过直接接触的被贴标签的对象来标记屏幕;以及使用指点装置从一定距离来标记屏幕。
[0066] 当使用被贴附到屏幕面板或表面的固定传感器或被贴附到屏幕面板或表面上的固定标签来测量屏幕姿态时,系统实时地测量工作空间内的屏幕姿态,并且在系统使用期间自适应于屏幕姿态的改变。在此情况下,将一个或更多个标签或者一个或更多个传感器贴附到屏幕表面的已知位置处的周界。系统的实施方式可以使用具有传感器安装点或标签安装点的特别制造的屏幕面板,该传感器安装点或标签安装点的测量是根据蓝图说明已知的。在可替选实施方式中,可以通过用户将使用长标尺或卷尺测量的人工测量输入系统中。可以人工地测量屏幕尺寸并且将其输入系统中,或者在两个标签和两个传感器位于屏幕面板的相反落的实施方式中,可以通过系统自动地测量屏幕尺寸。因为系统测量工作空间内的传感器和标签的姿态,所以将这些对象贴附到屏幕上便于直接测量屏幕姿态。使用这些方法,系统使其模型实时地自适应于工作空间配置的变化。
[0067] 当通过直接接触的被贴标签的对象来标记屏幕以测量屏幕姿态时,提示用户在短的配置阶段期间连续地标记工作空间中的每个屏幕。首先,提示用户选择可以是手套或指点装置(例如棒)的被贴标签的对象,或者甚至是任意其它被贴标签的对象。然后,提示用户将该对象放置成与第一屏幕的预定角落(例如左上角)直接接触,并且然后确认该提示(例如在指点装置上单击按钮或使用相反的手的姿势)。以此方式,用户对每个连续角落和每个连续屏幕进行标记。因为系统测量被贴标签的对象相对于工作空间的姿态,并且已知使用被贴标签的对象直接对所有屏幕的角落进行标记,所以系统知道工作空间内的所有屏幕的尺寸和姿态。因此,根据本实施方式,所有屏幕的角落必须在感测体积内,并且系统不会自适应于屏幕姿态的改变。
[0068] 当通过使用指点装置从一定距离标记屏幕来测量屏幕姿态时,提示用户在短的配置阶段期间连续地标记工作空间中的每个屏幕。首先,提示用户选择指点装置例如手套或棒。然后,提示用户使用该装置指向第一屏幕的预定角落(例如左上角),并且然后确认该提示(例如在指点装置上单击按钮或使用相反的手的姿势)。类似地,连续地标记第一屏幕上的剩余三个角落。最后,提示用户向系统输入屏幕的宽度和高度或对角线和长宽比。类似并连续地标记额外的屏幕。在此实施方式中,系统不会自适应于 屏幕姿态的改变。
[0069] 在下面描述使用类似于传感器的光学标签和单独相机的运动跟踪系统的示例实施方式。每个标签包括称为标记的若干光学基准(fiducial),其中,每个标记包括在来自相机的图像中容易检测和定位的单个光学特征。对于标记不存在其它约束,因而,可以使用各种标记类型。针对红外(IR)相机系统,适当的标记可以是IR LED或者回射材料的小圆点;针对可见光相机系统,标记可以简单地为容易区别的颜色亮度图案。
[0070] 在实施方式中,标签被配置成使得标签的投影视图传达包括标签设定、身份和姿势的三段信息,但是实施方式不限于此。给定标签定义和相同标签的投影视图,标签设定使图像中点与标签中的其对应的标记相关。给定一组多个可能的标签,标签的身份定义在设定任意标签的情况下设定了哪个标签。最后,标签的姿态是使标签的位置和取向与工作空间的位置和取向相关的3-DOF平移和3-DOF旋转。
[0071] 实施方式的标签配置利用称为交比(cross ratio)的投影变换的不变性(Heartley和Zisserman 2008年,第45页)。已知一组四个共线点  其交比
是这些点之间的成对距离的函数:
[0072]
[0073] 实施方式的系统包括线性局部标签(linear-partial-tag,LPT),其是包括四个共线标记的标签。可以通过如下来从该单个图像中对LPT贴标签或进行标识:从该图像中寻找四个共线点的组;以及将该四个共线点的组的交比与已知标签的交比相匹配。因为LPT的标记是共线的,所以针对单个LPT可以确定仅5-DOF姿态。因此,实施方式将在系统的上下文中的完整标签定义为附接到平面表面的两个平行的LPT,使得能够恢复8标记标签的标签设定、身份和全6-DOF姿态数据。
[0074] 使用多个LPT组成单个标签的好处在于能够组合相对少的唯一的LPT来形成许多唯一的8标记标签。例如,图1C示出了根据实施方式的包括两个平行的LPT 220和221的8标记标签200。该示例中的每个LPT 220和221包括四个光学标记210,但是LPT不限于任何特定数目的光学标记。LPT 220的光学标记210之间的距离a、b、c和LPT 221的光学标记210之间的距离A、B和C形成两个相异的交比,使得能够从标签的投 影视图中标识、区别和定位LPT 220和LPT 221。
[0075] 因为投影保持线的直线性,所以可以根据单个图像发现共线标记的组。实施方式使用基于根分解(Schomaker等人,1957)的二维(2D)的线拟合算法来将直线与四个标记的每个候选组进行拟合,但是也可以使用其它方法。
[0076] 一旦发现或标识共线标记的前述候选组,可以根据(1.4)计算其交比,并且然后,可以比较所计算的交比与已知LPT的交比。因为物理硬件不产生完美的无噪声的数据,所以通常候选交比的匹配将不严格。然而,实施方式选择接受这样不严格的候选匹配的置信量度。
[0077] 最后,实施方式将LPT组合成候选标签,估计LPT的姿态,并且使用置信量度在姿态假设之间进行区分。在图像中寻找附近且几乎平行的LPT,以组合成标签候选。针对每个候选标签,根据单个投影视图来计算一组6-DOF姿态假设。实施方式的系统没有限制使用哪一种方法来计算姿态假设(例如(Kabsch 1978年),(Alter 1994年),(DeMenthon和Davis 1995年))。实施方式计算在特定视图中的特定标签的姿态的重新投影误差(类似于样本方差)作为置信量度:
[0078]
[0079] 其中,p是标签中的标记的数目, 是所测量的在图像中的标记的像素位置, 是该标记在标签的坐标系中(在齐次坐标中)对应的理想位置,P是表示标签的
姿态的4×4矩阵,以及 是相机模型。然后,将姿态假设连同其置信量度传送至
在本文和相关申请中描述的运动跟踪管线(pipeline)。
[0080] 实施方式的光学系统在使用期间固有地收集标签标记与图像坐标之间的对应关系。该数据形成用于单个相机校准算法(例如(Zhang,1999年),(Bradski和Kaehler,2008年,第378页))的输入。可以将这样的单个相机校准算法用于对相机固有参数例如焦比、光心、偏斜度(skewness)、镜头畸变等等进行建模。当使用高质量的经验相机模型不是光学运动跟踪系统的必须部分时,该高质量的经验相机模型的使用通常可以提高系统的跟踪质量和空间一致性。在一个实施方式中,扩展上述抽象的工作空间模型,以也在每个时间步长处存储和更新相机固有参数的估计值。
[0081] 传统的指点装置例如鼠标提供不只是其中通常具有按钮和滚轮的仅浮动光标。类似地,实施方式的3D指点装置可以向用户系统回传达按钮单击、滚动以及包括但不限于惯性测量的其它状态信息。
[0082] 例如,在指点棒上的按钮单击导致该棒的光学标签的几何配置发生改变。光学系统将该标签变化检测为“按钮按下”事件,从而适当地更新棒的光标出现和行为。在一个实施方式中,棒使用包括回射标记的标签来装饰,并且使用具有IR频闪器的光学系统来进行如下感测:当按下按钮时,在指挥棒的标签内点亮额外的活动的IR LED标记,从而改变标签的光学签名。在类似实施方式中,每个标签包括活动的IR LED标记,该IR LED中的一些被点亮,同时在一些是不活动。当按下棒上的按钮时,多个LED标记改变状态(从被点亮到不活动,或者反之亦然),从而改变标签的光学签名。在另一实施方式中,经由与用于IR头戴式受话器的系统类似的IR收发器系统,将棒的状态传达至用户系统。在又另一实施方式中,经由与用于无绳电话或无线网络的系统类似的无线电系统,将棒的状态传达至用户系统。在本文中也称为多模态输入装置(MMID)的示例性棒使得空间输入系统或姿势输入系统的用户能够以符合人体工程学的高效方式来直观地访问输入功能的范围。如在本文中详细描述的,实施方式的MMID是手持式输入装置。
[0083] 图1D是根据实施方式的实时跟踪10的流程图。通常,本文中所述的实施方式通过将标签贴附到SOE中的一个或更多个对象来为空间输入装置提供实时跟踪,其中,标签分别包括至少一个特征12。实施方式使SOE装配有一个或更多个传感器,使得传感器的位置限定包括对象的SOE 14。实施方式利用传感器来检测标签16,并且从每个传感器接收由相应传感器检测到的与SOE中的每个对象对应的特征数据18,实施方式对来自传感器的特征数据进行整合,以生成并维持对象与SOE之间的关系的相干模型20。
[0084] 作为使用本文中所述的被贴标签的对象(例如手套、棒等)进行操作的系统的另一可替选实施方式,SOE的实施方式包括用于实时的基于视觉的手跟踪的系统和方法。在本文中参照的相关申请中详细描述了一个这样的系统的示例。这些可替选实施方式将快速指尖检测与健壮的局部手跟踪相组合,而且,通过这样做使用所捕捉的姿势数据来检测、标识、跟踪和/或定位一个或更多个用户的手的位置。例如,如在本文中具体的实施方式中所描述的手跟踪包括在视频流的连续中检测和定位一个或更多 个用户的手的位置的过程。在SOE或其它姿势接口的上下文中,这样的跟踪被用于确定用户何时试图与系统进行通信,提供用于检测和识别临时扩展的姿势所需要的基本信息,并且允许交互如指点、拖拽、选择或其它直接操纵的实时控制和反馈,这里列举一些示例。
[0085] 下面的参考文献包括与跟踪系统有关的额外信息。
[0086] Alter TD.3-D Pose from 3 points Using Weak-Perspective.IEEE Trans.Pattern Anal.Mach.Intell.,1994年:802:808.
[0087] Bradski G,Kaehler A.Learning OpenCV:Computer Vision with the OpenCV Library.1st Ed.O’Reilly Media,Inc.2008年
[0088] DeMenthon D,Davis LS.Model-Based Object Pose in 25 Lines of Code.计算机视觉国际期刊,15,第123页至141页,1995年6月。
[0089] Hartley R,Zisserman A.Multiple View Geometry in Computer Vision.2nd Ed.剑桥大学出版社.2008年。
[0090] Kabsch W.A solution of the best rotation to relate two sets of vectors.Acta Crystallographica(1976),32:922.
[0091] Kabsch W.A discussion of the solution for the best rotation to relate two sets of vectors.Acta Crystallographica(1978).A34,827:828.
[0092] Schomaker V,Waser J,Marsh RE,Bergman G.To fit a plane or a line to a set of points by least squares,Acta Crystallographica(1959).12:600-604.
[0093] Underkoffler JS,Parent KT,Kramer KH.System and method for gesture based control system,美国专利7,598,942,发布于2009年10月6号
[0094] Zhang Z.Flexible Camera Calibration by Viewing a Plane from Unknown Orientations.计算机视觉国际会议(ICCV’99),希腊科孚,第666页至673页,1999年9月。
[0095] 空间操作环境(SOE)
[0096] 如上面大体描述的,在本文中在空间操作环境(SOE)的上下文中描述空间连续输入系统的实施方式。作为一个示例,图1A是根据实施方式的空间操作环境(SOE)的框图。通常,用户将他的手101和102定位在相机阵列104A至104D的观察区域150中。相机检测手101和102以及 手指的位置、取向和移动作为空间跟踪数据,并且生成到预处理器105的输出信号。预处理器105将相机输出翻译成姿势信号,该姿势信号被提供至系统的计算机处理单元107。计算机107使用输入信息生成命令以控制一个或多个屏上光标,并且向显示器103提供视频输出。上面详细地描述的用于实时地初始化基于视觉的手跟踪系统的系统和方法可以用在例如SOE中以及类似的系统中。
[0097] 尽管系统被示为具有单个用户的手作为输入,但也可以使用多个用户实现SOE 100。另外,代替手或除了手以外,系统可跟踪用户身体的任何一个或多个部分,包括头、脚、腿、臂、肘、膝等。
[0098] 在所示出的实施方式中,使用四个相机或传感器来检测观察区域150中的用户的手101和102的位置、取向和移动。应当理解的是,在不偏离SOE的范围或精神的情况下,SOE 100可以包括更多(例如,六个、八个等)或更少(例如,两个)相机或传感器。另外,尽管多个相机或传感器对称地布置在示例实施方式中,但在SOE 100中不要求这样的对称性。在SOE 
100中可以使用允许用户的手的位置、取向和移动的任何数目或定位的相机或传感器。
[0099] 在一种实施方式中,所使用的相机是能够捕捉灰度级图像的运动捕捉相机。在一种实施方式中,所使用的相机为由Vicon(威康)制造的这些相机如威康MX40相机。该相机包括相机上的处理,并且能够以每秒1000帧捕捉图像。运动捕捉相机能够检测和定位标记。
[0100] 在所描述的实施方式中,相机是用于光学检测的传感器。在其它实施方式中,相机或其它检测器可以用于电磁检测、静磁检测、RFID检测、或任何其它合适类型的检测。
[0101] 预处理器105生成三维空间点重构和骨点标签设定。姿势翻译器106将3D空间信息和标记运动信息转换成可以由计算机处理器解释以在显示器上更新光标的位置、形状和动作的命令语言。在SOE 100的可替选实施方式中,预处理器105和姿势翻译器106被集成或组合成单个装置。
[0102] 计算机107可以是任何通用计算机如由苹果、戴尔或任何其它合适的制造商制造的计算机。计算机107运行应用并且提供显示器输出。原本来自鼠标或其它现有技术的输入装置的光标信息现在来自姿势系统。
[0103] 标记标签
[0104] 该SOE或实施方式考虑在用户的一个或多个手指上使用标记标签, 以使得系统可定位用户的手,标识其正在观察左手还是右手以及哪些手指是可视的。这允许系统检测用户的手的位置、取向和移动。该信息允许多个姿势由系统识别并且由用户用作命令。
[0105] 实施方式中的标记标签是物理标签,该物理标签包括衬底(在本实施方式中适合于贴附到人手上的各个位置)和以唯一标识图案布置在衬底表面上的离散标记。
[0106] 标记和相关联的外部感测系统可以在允许准确、精确、迅速且持续地获取其三度空间位置的任何域(光域、电磁域、静磁域等)中工作。标记本身可主动地(例如,通过发射结构化电磁脉冲)工作或被动地(例如,通过如本实施方式中的光学回射标记)工作。
[0107] 在每个获取帧,检测系统接收由恢复后的三维空间位置构成的聚集“”,其包括目前在仪器化工作空间体积内(在相机或其它检测器的可视范围内)的标签上的所有标记。每个标签上的标记具有足够的多样性,并且被布置成唯一的图案,从而检测系统可执行以下任务:(1)分割,其中每个恢复后的标记位置被分配给构成单个标签的点的一个且仅一个子集;(2)标签设定,其中点的每个分割后的子集被标识为特定标签;(3)定位,其中被标识的标签的三维空间位置被恢复;以及(4)取向,其中被标识的标签的三维空间取向被恢复。
如下面所述和如图2中的一个实施方式所示的那样,通过标记图案的特定性质,使得任务(1)和(2)成为可能。
[0108] 一个实施方式中的标签上的标记被贴附于规则网格位置的子集。此基本网格如本实施方式中那样可以是传统笛卡尔类型的;或者代之以可以是某种其它的规则平面棋盘形布置(例如,三角形/六边形平铺布置)。鉴于标记感测系统的已知空间分辨率而确立网格的比例和间距,使得相邻网格位置不大可能被混淆。所有标签的标记图案的选择应满足以下约束:标签的图案不应通过旋转、平移或镜像的任意组合而与任何其它标签的图案相符合,标记的多样性和布置可进一步选择为使得容许某个规定数目的分量标记的损失(或遮蔽)。在任何任意变换之后,应仍然不大可能将受损的模与任何其它模块混淆。
[0109] 现在参考图2,示出了多个标签201A-201E(左手)和202A-202E(右手)。每个标签都是矩形的,并且在本实施方式中由5×7网格阵列构成。选择矩形形状来帮助确定标签的取向以及降低镜像重复的似然性。在所示的实施方式中,每个手上的每个指头都有标签。在一些实施方式中,每个 手使用一个、两个、三个或四个标签可能是足够的。每个标签具有不同灰阶或色彩明暗的边界。此边界内是3×5网格阵列。标记(由图2中的黑点表示)被布置在该网格阵列的某些点处以提供信息。
[0110] 通过将每个图案分割成“共同的”和“唯一的”子图案,鉴定信息可以用标签的标记图案进行编码。例如,本实施方式规定了两种可能的“边界图案”(标记围绕矩形边界的分布)。由此建立了标签“族”——意图用于左手的标签由此可能都使用如标签201A-201E中所示的相同边界图案,而附着到右手手指的标签可能被分配如标签202A-202E中所示的不同图案。此子图案被选择为使得在标签的所有取向上都可区别左图案与右图案。在所示的示例中,左手图案在每个角落都包括标记,并且在从角落起第二个网格位置包括标记。右手图案在仅两个角落有标记,并且在非角落网格位置有两个标记。从该图案可以看出:只要四个标记中的任何三个是可视的,就能明确区别左手图案与右手图案。在一个实施方式中,边界的色彩或阴影也可用作偏手性的指示。
[0111] 每个标签当然必须仍采用唯一的内部图案,标记分布在其族的共同边界内。在所示的实施方式中,已发现,内部网格阵列中的两个标记足以唯一地标识十个手指中的每个,而不会因手指的旋转或取向而发生重复。即使标记中有一个被遮蔽,标签的偏手性和图案的组合也产生唯一标识符。
[0112] 在本实施方式中,网格位置可视地存在于刚性衬底上,来帮助执行将每个回射标记贴附于其预期位置的人工任务。借助彩色喷墨打印机将这些网格和预期标记位置精确地打印到衬底上,这里衬底是由初始时为挠性的“收缩膜”构成的片。将每个模块从该片切下,然后用炉烘烤,在该热处理过程中每个模块经历精确和可重复的收缩。在此过程后的短暂间隔内,冷却标签可略微变形——以模仿例如手指的纵向弯曲;此后,衬底是适当刚性的,标记可被贴附于所指示的网格点。
[0113] 在一个实施方式中,标记本身是三维的,比如借助粘合剂或其它合适的装置被贴附到衬底的小反射球。标记的三维性可帮助对二维标记的检测和定位。然而,在不脱离本文中所述的SOE的精神和范围的情况下,可使用任一个。
[0114] 目前,标签借助Velcro或其它合适的装置贴附到操作者佩戴的手套,或者可替选地使用双面胶带直接贴附到操作者的手指。在第三实施方式中,可以完全省去刚性衬底,而将各个标记贴附(或“涂”)在操作者的手指和手上。
[0115] 姿势词汇
[0116] 实施方式的SOE考虑由手姿态、取向、手组合和取向混合组成的姿势词汇。还实施记号语言来设计和传达SOE的姿势词汇中的姿态和姿势。姿势词汇是以紧凑的文本形式来表示运动学联动机构(kinematic linkages)的瞬时‘姿态状态’的系统。所讨论的联动机构可以是生物的(例如人手;或整个人体;或蚱蜢腿;或狐猴的具关节的脊柱)或者代之以可以是非生物的(例如机器臂)。在任何情况下,该联动机构可以是简单的(脊柱)或有分支的(手)。SOE的姿势词汇系统为任何具体联动机构建立恒定长度的串;于是,占据该串的‘字符位置’的具体ASCII字符集是联动机构的瞬时状态或‘姿态’的唯一描述。
[0117] 手姿态
[0118] 图3图示了根据实施方式的SOE的姿势词汇的一个实施方式中的手姿态。SOE假设手上的五个手指中的每个都被使用。这些手指是诸如p-小指、r-无名指、m-中指、i-食指和t-拇指的码。图3中定义并示出了手指和拇指的多个姿态。姿势词汇串为联动机构(在此情况下为手指)中的每个可表达的自由度确立单个字符位置。此外,每个这样的自由度被理解为离散化的(或‘量子化的’),从而可通过在该串位置分配有限数目的标准ASCII字符之一来表达其全程运动。这些自由度是相对于身体特有的原点和坐标系(手的背面,蚱蜢身体的中心;机器臂的底座等)而表达的。因此,使用小数目的额外的姿势词汇字符位置来表达联动机构‘作为整体’在更全局的坐标系中的位置和取向。
[0119] 仍参照图3,使用ASCII字符定义和标识多个姿态。其中一些姿态在拇指和非拇指之间加以划分。SOE在此实施方式中使用编码,从而ASCII字符本身就暗示着姿态。然而,无论暗示与否,任何字符都可用来表示姿态。另外,在本发明中不必须为记号串使用ASCII字符。在不脱离本实施方式的范围和精神的情况下,可以使用任何合适的符号、数字或其它表示法。例如,如果需要,记号可采用每手指两位或某个其它位数。
[0120] 弯曲的手指由字符“^”表示,而弯曲的拇指由“>”表示。指向上方的直的手指或拇指由“1”表示,指向某个角度的直的手指或拇指由“\”或“/”表示。“-”表示指向正侧方的拇指,“x”表示指向平面内的拇指。
[0121] 使用这些单独的手指和拇指描述,可观数目的手姿态可使用本发明的方案来限定和书写。每个姿态由如上所述顺序为p-r-m-i-t的五个字符表 示。图3图示了多个姿态,并且在此通过图示和举例对少数姿态进行了描述。保持平坦且平行于地面的手由“11111”表示。拳头由“^^^^>”表示。“OK”符号由“111^>”表示。
[0122] 字符串当使用暗示性字符时提供了浅显“易读”的机会。着眼于快速的识别和直白的模拟,通常可选择描述每个自由度的可能字符的集合。例如,竖条(‘∣’)意在表明联动机构元件是‘直的’,L形(‘L’)可表示九十度弯曲,抑扬符(‘^’)可表示锐角弯曲。如上所述,可按照需要使用任何字符或编码。
[0123] 采用如这里所述的姿势词汇串的任何系统都受益于串比较的高计算效率——标识或搜索任何规定的姿态事实上变成期望姿态串与瞬时实际串之间的‘串比较’(例如UNIX的‘strcmp()’函数)。此外‘,通配符’的使用为程序员或系统设计者提供了额外的熟悉的效能和功效:可将其瞬时状态对于匹配不相关的自由度规定为问号(‘?’);可赋予额外的通配符含义。
[0124] 取向
[0125] 除了手指和拇指的姿态以外,手的取向也可表示信息。显然,亦可选择描述全局空间取向的字符:字符‘<’‘、>’‘、^’和‘v’当以取向字符位置出现时可用来表示左、右、上和下的概念。图4图示了组合了姿态和取向的编码的示例以及手取向描述符。在一个实施方式中,两个字符位置首先规定手掌的方向,然后规定手指的方向(如果手指是直的,不管手指的实际弯曲)。这两个位置的可能字符表达取向的‘身体中心’记号‘:-’、‘+’‘、x’‘、*’、‘^’和‘v’描述中间的、侧面的、前面的(向前的,离开身体)、后面的(向后的,离开身体)、头的(向上的)和尾部的(向下的)。
[0126] 在实施方式的记号方案中,表示五个手指姿态的字符的后面是冒号和两个取向字符,以定义完整的命令姿态。在一个实施方式中,起始位置被称为“xyz”姿态,其中拇指指向正上方,食指指向前方,中指垂直于食指,当姿态用右手作出时指向左方。这由串“^^x1-:-x”表示。
[0127] “XYZ-手”是利用人手的几何结构来允许对视觉上呈现的三维结构进行全部六自由度的导航的技术。尽管该技术仅依赖于操作者的手的整体平移和旋转——从而其手指原则上可保持在任何期望姿态——在本实施方式中更可取的是静态配置,其中食指指向远离身体的方向;拇指指向天花板;中指指向左-右。这三个手指由此描述(粗略但意图明晰地描述) 了三度空间坐标系的三个互相正交的轴:由此‘XYZ-手’。
[0128] 于是,进行XYZ-手导航,其中手、手指呈如上所述的姿态并保持在操作者身体之前、预定的‘中性位置’。以下面的自然方式实现对三度空间对象(或相机)的三个平移和三个旋转自由度的理解:手的左右移动(相对于身体的自然坐标系)导致沿着计算环境的x轴的移动;手的上下移动导致沿着受控环境的y轴的移动;手的前后移动(朝着或远离操作者的身体)导致该环境内的z轴运动。类似地,操作者的手围绕食指的旋转导致计算环境的取向的‘滚动’变化;类似地,分别通过使操作者的手围绕中指和拇指的旋转来实现‘俯仰’和‘摇摆’的变化。
[0129] 注意,尽管‘计算环境’这里用来指代由XYZ-手方法控制的实体——并且似乎暗示合成的三度空间对象或者相机,但应理解该技术同样可用于控制真实世界对象的各种自由度:例如配备有适当旋转致动器的摄像机或摄影机的摇摄/倾斜/滚动控制。此外,由XYZ-手姿态提供的物理自由度可能稍微有些不精确地映射在虚拟域中:在本实施方式中,XYZ-手还用来提供对大的全景显示图像的导航访问,从而操作者的手的左右和上下运动导致围绕图像的预期左右或上下‘摇摄’,而操作者的手的前后运动映射到‘变焦’控制。
[0130] 在所有情况下,手的运动与所引起的计算平移/旋转之间的耦接可以是直接的(即,操作者的手的位置或旋转偏移借助某个线性或非线性函数而一一映射到在计算环境内对象或相机的位置或旋转偏移)或间接的(即,操作者的手的位置或旋转偏移借助某个线性或非线性函数而一一映射到在计算环境内位置/取向的一阶或更高阶导数;正进行的积分于是实现计算环境的实际零阶位置/取向的非静态变化)。此后一控制手段类似于汽车的‘气动踏板’的使用,其中该踏板的恒定偏移或多或少导致恒定的车速。
[0131] 作为真实世界XYZ-手的局部六自由度坐标原点的‘中性位置’可以(1)被确立为空间中的绝对位置和取向(相对于比如封闭室);(2)被确立为相对于操作者自身的固定位置和取向(例如,在身体前方八英寸、在下巴下方十英寸、以及在侧面与肩膀平面成一直线),而无论操作者的总体位置和‘朝向’如何;或者(3)通过操作者的有意的副动作(例如采用由操作者的‘另一只’手作出的姿态命令,所述命令表明XYZ-手的当前位置和取向自此以后应当被用作平移和旋转原点)来被交互地确立。
[0132] 此外,方便的是,提供围绕XYZ-手的中性位置的‘封’区(或‘死区’),使得该体积内的移动不映射到受控环境内的移动。
[0133] 其它姿态可以包括:
[0134] [|||||:vx]是手掌面朝下方且手指朝前方的扁平手(拇指平行于手指)。
[0135] [|||||:x^]是手掌面朝前方且手指朝天花板的扁平手。
[0136] [|||||:-x]是手掌面朝身体中心(左手情况下为右,右手情况下为左)且手指朝前方的扁平手。
[0137] [^^^^-:-x]是单手竖起大拇指(拇指指向天花板)
[0138] [^^^|-:-x]是模仿枪指向前方
[0139] 双手组合
[0140] 实施方式的SOE预期单手命令和姿态以及双手命令和姿态。图5图示了SOE的一个实施方式中的双手组合和相关联的记号的示例。观察第一个示例的记号,“完全停止”表明其包括两个合上的拳头。“快照”示例的每个手的拇指和食指伸展,各拇指指向彼此,从而定义球柱形状的框架。“方向油门起始位置”是手指和拇指指向上方,手掌面朝屏幕。取向混合
[0141] 图6图示了SOE的一个实施方式中的取向混合的示例。在所示的示例中,通过在手指姿态串之后将成对的取向记号括在括号内来表示该混合。例如,第一个命令示出了全部直指的手指位置。第一对取向命令将导致手掌平坦地朝着显示器,第二对使手旋转到斜向显示器45度的斜度。尽管本示例中示出了成对的混合,但在SOE中可考虑任何数目的混合。示例命令
[0142] 图8/1和图8/2示出了可以与SOE一起使用的多个可能的命令。尽管这里的讨论有一些是关于控制显示器上的光标的,但SOE不限于该工作。实际上,SOE在操纵屏幕上的任何和所有数据及部分数据、以及显示器的状态时有大的应用。例如,这些命令可用于在视频媒体的回放过程中取代视频控制。这些命令可用来暂停、快进、倒回等。另外,可执行命令来缩小或放大图像、改变图像的取向、在任何方向上摇摄等。SOE还可代替诸如打开、关闭、保存等的菜单命令而使用。换句话说,任何可想象的命令或工作都可用手姿势实现。
[0143] 操作
[0144] 图7是图示了一个实施方式中的SOE的操作的流程图。在701处,检测系统检测标记和标签。在702处,确定是否检测到标签和标记。如果未检测到,系统返回到步骤701。如果在步骤702检测到标签和标记,系统进入步骤703。在步骤703处,系统根据检测到的标签和标记来标识手、手指和姿态。在步骤704处,系统标识姿态的取向。在步骤705处,系统标识检测到的一个或更多个手的三维空间位置。(请注意,可以组合703、704和705中的任何一个或全部)。
[0145] 在步骤706处,信息被翻译成上面描述的姿势记号。在707处,确定姿态是否有效。这可以通过使用所产生的记号串进行简单的串比较来实现。如果姿态无效,系统返回到步骤701。如果姿态有效,系统在步骤708处将记号和位置信息发送给计算机。计算机在步骤
709处确定为响应于姿势而要采取的合适动作,并相应地在步骤710处更新显示器。
[0146] 在SOE的一个实施方式中,步骤701-705是通过相机上处理器实现的。在其它实施方式中,如果需要,该处理可由系统计算机实现。
[0147] 解析和翻译
[0148] 系统能够“解析”和“翻译”被底层系统恢复的低级姿势所构成的流,并将那些经解析和翻译的姿势变成可用于控制大范围的计算机应用和系统的命令或事件数据所构成的流。这些技术和算法可包含在由计算机代码构成的系统中,系统既提供实施这些技术的引擎也提供构建对该引擎的能力进行利用的计算机应用的平台。
[0149] 一个实施方式致力于在计算机接口中实现人手的丰富姿势使用,但也能够识别由其它身体部分(包括但不限于臂、躯干、腿和头)以及各种各样的非手的物理工具(静态的有关节的)作出的姿势,所述非手的物理工具包括但不限于卡钳、两角规、挠性弯曲合拢器以及各种形状的指点装置。可按照需要将标记和标签应用于可由操作者携带和使用的物品和工具。
[0150] 这里所述的系统合并了使得构建在可被识别和作用于的姿势的范围内丰富的姿势系统成为可能的多个创新,同时提供向应用中的简单集成。
[0151] 一个实施方式中的姿势解析和翻译系统的组成如下:
[0152] 1)规定(为用在计算机程序中而编码)如下几个不同聚集平的姿势的简洁有效的方式:
[0153] a.单只手的“姿态”(手的各部分相对于彼此的配置和取向)单只手在三维空间中的取向和位置。
[0154] b.双手组合,对于任一只手,考虑姿态、位置或两者。
[0155] c.多人组合;系统可跟踪多于两只的手,因此多于一个的人可协同地(或竞争地,在游戏应用的情况下)控制目标系统。
[0156] d.按顺序的姿势,其中姿态被组合成一系列;我们称它们为“活动的”姿势。
[0157] e.“语义图”姿势,其中操作者在空间中描绘形状。
[0158] 2)用于注册与给定应用环境相关的上述每个种类中的具体姿势的编程技术。
[0159] 3)用于解析姿势流以使得经注册的姿势可被标识且封装了这些姿势的事件可被递送给相关应用环境的算法。
[0160] 具有组成要素(1a)到(1f)的规定系统(1)为利用这里所述的系统的姿势解析和翻译能力提供了基础。
[0161] 单手“姿态”被表示为:
[0162] i)手指与手背之间的相对取向所构成的串,以及
[0163] ii)被量子化成小数目的离散状态。
[0164] 使用相对联接取向使得这里所述的系统可避免与不同的手大小和几何结构相关联的问题。本系统不要求“操作者校准”。另外,将姿态规定为相对取向的串或集合使得可通过将姿态表示法与另外的过滤器和规定相组合而容易地创建更复杂的姿势规定。
[0165] 使用小数目的用于姿态规定的离散状态使得简洁地规定姿态以及使用多种基本跟踪技术(例如,使用相机的被动光学跟踪、使用发光点和相机的主动跟踪、电磁场跟踪等)来确保准确的姿态识别成为可能。
[0166] 可部分(或最小限度地)规定(1a)到(1f)的每个种类中的姿势,以使得非关键的数据被忽略。例如,其中两个手指的位置明确且其它手指位置不重要的姿势可由这样的单个规定来表示:其中给出两个相关手指的操作位置,且在同一个串内,为其它手指列出“通配符”或一般的“忽略这些”指示。
[0167] 这里所述的用于姿势识别的所有创新(包括但不限于多层化规定技术、相对取向的使用、数据的量子化以及对每一级的部分或最小规定的允许)超越人的姿势的规定而推广到使用其它身体部分和“人造”工具和对 象作出的姿势的规定。
[0168] 用于“注册姿势”(2)的编程技术由限定的一组应用编程接口调用组成,其允许程序员限定引擎应使哪些姿势可为运行的系统的其它部分所用。
[0169] 这些API例程可以在应用建立时间使用,从而创建在运行的应用的整个生命期使用的静态接口定义。它们还可以在运行的过程中使用,从而允许接口特性在运行中改变。接口的该实时变更使得可以:
[0170] i)构建复杂的环境和条件控制状态,
[0171] ii)向控制环境动态地添加滞后,并且
[0172] iii)创建使得用户能够变更或扩展运行的系统本身的接口词汇的应用。
[0173] 用于解析姿势流(3)的算法将在(1)中规定并在(2)中注册的姿势与输入的低级姿势数据相比较。当经注册的姿势的匹配被识别出时,表示匹配的姿势的事件数据被堆栈上传到运行的应用。
[0174] 在本系统的设计中期望高效的实时匹配,将规定的姿势处理为被尽可能快地处理的可能性的树。
[0175] 另外,在内部使用以识别规定的姿势的简单比较操作符也被暴露以供应用程序员使用,使得进一步的比较(例如,复杂或复合姿势中的灵活的状态检查)甚至可以从应用环境内发生。
[0176] 识别“锁定”语义是这里所述系统的创新。这些语义由注册API(2)暗示(并且,对于较小的范围,嵌入在规定词汇(1)内)。注册API调用包括:
[0177] i)“进入”状态通知符和“持续”状态通知符,以及
[0178] ii)姿势优先级说明符。
[0179] 如果姿势已被识别出,则其“持续”状态优先于相同或较低优先级的姿势的所有“进入”状态。进入和持续状态之间的这种区别显著增大了感知到的系统可用性。
[0180] 这里所述的系统包括用于面对真实世界数据误差和不确定性的鲁棒操作的算法。来自低级跟踪系统的数据可能是不完整的(由于多种原因,包括光学跟踪中的标记遮蔽、网络掉线或处理滞后等)。
[0181] 取决于丢失数据的量和上下文,丢失数据由解析系统标记,并被插入到“最后已知的”或“很可能的”状态中。
[0182] 如果关于特定姿势成分(例如,特定关节的取向)的数据丢失,但该特定成分的“最后已知的”状态可被解析为在物理上是可能的,则系统在其实时匹配时使用此最后已知的状态。
[0183] 相反,如果最后已知的状态被解析为在物理上是不可能的,则系统后退到该成分的“最佳猜测范围”,并在其实时匹配时使用此合成数据。
[0184] 仔细地设计了这里所述的规定和解析系统以支持“偏手性不可知论”,从而对于多手姿势,任一只手都被允许满足姿势要求。
[0185] 相符合的虚拟/显示和物理空间
[0186] 如上所述,跟踪系统可提供这样的环境,在该环境中,被描绘在一个或更多个显示装置(“屏幕”)上的虚拟空间被处理为与系统的一个或多个操作者所处的物理空间相符合。下文描述了这样的环境的实施方式,该实施方式包括固定位置处的三个由投影仪驱动的屏幕,由单个台式机驱动,并使用本文所述的姿势词汇和接口系统来控制,但是该实施方式不限于此。然而应当注意的是,所述的技术支持任何数目的屏幕、这些屏幕可以是移动的(而非固定的)、这些屏幕可以由很多独立计算机同时驱动,并且整个系统可通过任何输入装置或技术来控制。
[0187] 本公开中描述的接口系统确定屏幕在物理空间中的尺度、取向和位置。给定此信息,系统能够将这些屏幕所处(且系统的操作者所处)的物理空间作为投影动态地映射到在系统上运行的计算机应用的虚拟空间中。作为该自动映射的一部分,系统还根据由系统掌管的应用的需要、以多种方式翻译这两个空间的比例、角度、深度、尺度和其它空间特性。
[0188] 物理空间和虚拟空间之间的这种连续翻译使得多种接口技术的一致和普遍使用成为可能,这些接口技术在现有的应用平台上难以实现或者必须针对在现有平台上运行的每个应用个别地实施。这些技术包括(但不限于):
[0189] (1)使用“精确指点”——在姿势接口环境中使用手,或使用物理指点工具或装置——作为普遍和自然的接口技术。
[0190] (2)对屏幕的移动或重新定位的自动补偿。
[0191] (3)图形渲染,其依操作者位置而变,例如模拟视差位移以增强深 度感。
[0192] (4)在屏幕显示中包括物理对象——考虑真实世界位置、取向、状态等。例如,站在大的不透明屏幕前方的操作者既能看到应用图形也能看到在屏幕后方(并且可能正在移动或改变取向)的比例模型的真实位置的表示。
[0193] 重要的是,注意精确指点不同于在基于鼠标的窗口接口和大多数其它现代系统中使用的抽象指点。在那些系统中,操作者必须学习管理虚拟指点器和物理指点装置之间的翻译,且必须在这两者之间有认知力地映射。
[0194] 相比之下,在本文中所述的系统中,无论从应用还是用户角度,虚拟空间与物理空间之间没有差异(除了虚拟空间更适合于数学运算),因此操作者不需要有认知力的翻译。
[0195] 由本文中所述的实施方式提供的精确指点的最接近模拟是触摸屏(例如,可在很多ATM机上看到)。触摸屏提供了屏幕上的二维显示空间与屏幕表面的二维输入空间之间的一一映射。以类似的方式,本文所述的系统提供了显示在一个或更多个屏幕上的虚拟空间与操作者所处的物理空间之间的灵活映射(可能但不必须是一一映射)。不管模拟的实用性如何,都值得理解该“映射方法”扩展到三维、任意大的架构环境以及多个屏幕不是无关紧要的。
[0196] 除了本文所述的部件,系统还可执行实现环境的物理空间与每个屏幕上的显示空间之间的连续的系统级映射(可能已通过旋转、平移、比例缩放或其它几何变换加以修改)的算法。系统还包括渲染堆栈,该渲染堆栈获取计算对象和映射,并输出虚拟空间的图形表示。另外,实施方式的系统包括输入事件处理堆栈,该输入事件处理堆栈获取来自控制系统的事件数据(在当前实施方式中,是来自系统和鼠标输入的姿势和指向数据两者)并且将来自输入事件的空间数据映射到虚拟空间中的坐标。然后将经翻译的事件递送至运行的应用。此外,实施方式的系统包括“胶层”,该胶层使系统能够掌管在局域网上的若干计算机之间运行的应用。
[0197] 在本文中将空间连续输入系统的实施方式描述为包括基于网络的数据表示、转变和互换,包括称作“等离子体”的系统,如下面详细描述的,系统包括子系统“色拉”、“蛋白质”和“池”。池和蛋白质是本文中所描述的用于封装将要在进程之间或者跨进程共享的数据的方法和系统的部件。除了蛋白质和池之外,这些机制还包括色拉。通常,色拉提供最低水 平的用于进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子,而池则提供高水平的组织和访问语义。色拉包括用于有效的不依赖于平台的数据表示和访问的机制。蛋白质提供使用色拉作为有效载荷的数据封装和传输方案。池在进程之内、在局部进程之间、跨远程或分布式进程之间的网络并且通过较长期(例如盘上等)存储提供蛋白质的结构化并且灵活的聚集、排序、过滤和分发。
[0198] 本文中所描述的实施方式的配置和实现包括几个构造,它们一起使大量能力成为可能。例如,本文所描述的实施方式提供了数据在大量进程之间的高效交换。本文所描述的实施方式还提供了灵活的数据“定型”和结构,以便支持数据的广泛变化的种类和使用。此外,本文所描述的实施方式包括全都由基本上类似的应用程序接口(API)驱动的用于数据交换的灵活机制(例如局部存储器、盘、网络等)。而且,所描述的实施方式使得以不同的编程语言编写的进程之间的数据交换成为可能。另外,本文中所描述的实施方式使得数据高速缓存和聚集状态的自动维护成为可能。
[0199] 图9是根据实施方式的包括使用色拉、蛋白质和池的数据表示的处理环境的框图。在本文中提供的实施方式的主要构造包括色拉(色拉的复数)、蛋白质和池。如本文中所描述的,色拉包括用于有效的不依赖于平台的数据表示和访问的机制。如本文中详细描述的,蛋白质提供数据封装和传输方案,并且实施方式的蛋白质的有效载荷包括色拉。如本文中描述的,池提供蛋白质的结构化且灵活的聚集、排序、过滤和分发。池在进程之内、在局部进程之间、跨远程或分布式进程之间的网络并且通过较长期(例如盘上等)存储借助于蛋白质提供对数据访问。
[0200] 图10是根据实施方式的蛋白质的框图。蛋白质包括长度头、描述和摄取。如下面详细描述的,描述和摄取中的每个包括一个色拉或多个色拉。
[0201] 图11是根据实施方式的描述的框图。如下面详细描述的,描述包括偏移、长度和色拉。
[0202] 图12是根据实施方式的摄取的框图。如下面详细描述的,摄取包括偏移、长度和色拉。
[0203] 图13是根据实施方式的色拉的框图。如下面详细描述的,色拉包括类型头和特定于类型的数据。
[0204] 图14A是根据实施方式的池中的蛋白质的框图。蛋白质包括长度头(“蛋白质长度”)、描述偏移、摄取偏移、描述和摄取。描述包括偏移、 长度和色拉。摄取包括偏移、长度和色拉。
[0205] 本文中所描述的蛋白质是用于封装数据的机制,数据需要在进程之间共享,或需要跨总线或网络或其它处理结构移动。作为示例,蛋白质提供了用于传输和操纵数据的改进机制,所述数据包括对应于用户接口事件或与用户接口事件相关联的数据;特别地,实施方式的用户接口事件包括上面所描述的姿势接口的用户接口事件。作为另外的示例,蛋白质提供了用于传输和操纵数据的改进机制,所述数据包括但不限于图形数据或事件以及状态信息,这只是举几个示例。蛋白质是结构化的记录格式以及用于操纵记录的方法的相关联的集合。本文中所使用的记录的操纵包括:将数据放到结构中、将数据从结构中取出以及查询数据的格式和存在。蛋白质被配置成通过以各种计算机语言书写的代码被使用。蛋白质被配置成通过以多种计算机语言编写的代码来使用。如本文中所描述的,蛋白质还被配置成用于池的基本构筑块。此外,蛋白质被配置成天然地能够在处理器之间并跨网络移动,同时维持它们包括的数据完整。
[0206] 与传统的数据传输机制相反,蛋白质是未定型的。在未定型的同时,蛋白质提供了强大且灵活的模式匹配设施,在其上实施“类型相似”的功能。如本文中所描述的被配置的蛋白质还固有地为多个点(尽管作为多点传输的子集容易实现点对点形式)。另外,蛋白质定义“通用”记录格式,该记录格式例如在存储器中、盘上和线(网络)上格式之间相同(或仅在执行的可选优化的类型方面不同)。
[0207] 参照图15和图19,实施方式的蛋白质是字节的线性序列。在这些字节之内封装有描述列表和被称为摄取的关键值对的集合。描述列表包括任意精细但却高效可过滤的每个蛋白质事件描述。摄取包括关键值对的集合,关键值对包括蛋白质的实际内容。
[0208] 蛋白质与关键值对以及关于网络友好和多点数据互换的一些核心思想的相关性,与给予“元组(tuple)”的概念特权的较早系统(例如Linda、Jini)共享。蛋白质与面向元组的系统在几个主要方面不同,包括使用描述列表以提供标准的可优化的模式匹配基片。蛋白质还与面向元组的系统在适合于各种存储和语言构造的记录格式的严格规范连同对该记录格式的“接口”的几个具体实施方面不同。
[0209] 转到蛋白质的描述,蛋白质的前四个或八个字节规定了蛋白质的长度,在一个实施方式中,蛋白质的长度必须是16个字节的倍数。该16字节粒度确保了字节准直和总线准直效能在现代硬件上是可实现的。不未 被自然“四倍长字校直”的蛋白质被填充以任意字节,以便它的长度是16字节的倍数。
[0210] 蛋白质的长度部分具有以下格式:呈大端格式的规定长度的32位,其中四个最低阶位充当旗标以指示宏观水平蛋白质结构特性;继之以32个另外的位,如果蛋白质的长度大于2Λ32字节的话。
[0211] 实施方式的16字节准直附带条件意味着前四个字节的最低阶位作为旗标可用。而且因此前三个低阶位旗标分别指示蛋白质的长度可以用前四个字节表示还是需要八个,蛋白质使用大端还是小端字节排序,以及蛋白质使用标准还是非标准结构,但是蛋白质不限于此。第四个旗标位被保留以供将来使用。
[0212] 如果八字节长度旗标位被设置,则蛋白质的长度通过以下计算:读取下四个字节,并且使用它们作为大端的八字节整数的高阶字节(其中已经读取的四个字节供应低阶部分)。如果小端旗标被设置,则蛋白质中的所有二进制数值数据都将被解释为小端(否则为大端)。如果非标准旗标位被设置,则蛋白质的剩余部分不符合下面将要描述的标准结构。
[0213] 在本文中不会进一步讨论非标准蛋白质结构,除了要说的是,关于对使用蛋白质和池的系统程序员可用的非标准蛋白质格式,存在用于描述和同步化的各种方法,并且当空间或计算周期受到约束时,这些方法是可以使用的。例如,实施方式的最短蛋白质是十六字节。标准格式的蛋白质不能将任何实际的有效载荷数据装配到这十六个字节中(其中的最大份额已经被移交以描述蛋白质的组成部分的位置)。但是非标准格式的蛋白质就能够可以想象地使用16个字节中的12个用于数据。交换蛋白质的两个应用可以相互决定它们发出的任何16字节长的蛋白质总是包括例如表示来自实时模拟数字转换器的128位传感器值的12个字节。
[0214] 紧跟着长度头,在蛋白质的标准结构中,出现多于两个可变长度整数。这些数字分别规定了对描述列表中的第一元素以及第一个关键值对(摄取)的偏移。这些偏移在本文中也分别被称为描述偏移和摄取偏移。这些数的每四倍的字节顺序由蛋白质端旗标位规定。对于每个而言,前四个字节的最高有效位确定数字是四个还是八个字节宽。如果最高有效位(msb)被设置,则前四个字节是双字(八字节)数字的最高有效字节。在本文中这被称为“偏移形式”。指向描述和对的单独偏移的使用允许描述和对通过不同的代码路径处理,使得例如与描述模式匹配和蛋白质装配相关的特殊优化成为可能。在蛋白质的开始处的这两个偏移的存在还允许几个有用 的优化。
[0215] 大多数蛋白质不会如此大以至于需要八字节的长度或指针,所以一般而言,长度(具有旗标)和两个偏移数字只会占据蛋白质的前三个字节。在许多硬件或系统体系结构上,超过第一个的一定数目字节的提取或读取是“免费的”(例如16个字节正好占据与单个字节相同数目的时钟周期以跨单元处理器的主总线牵引)。
[0216] 在很多示例中,允许蛋白质内部的特定实施的或特定环境的缓存或元据都是有用的。偏移的使用允许在蛋白质的开始附近创建任意尺寸的“洞”,其中可放置这样的元数据。可利用八个字节的元数据的实施在许多系统体系结构上免费得到那些字节,其中每次提取蛋白质的长度头。
[0217] 描述偏移规定蛋白质的开始与第一个描述条目之间的字节数。每个描述条目包括到下一个描述条目的偏移(当然以偏移格式),继之以可变宽度的长度字段(又是以偏移格式),继之以色拉。如果没有进一步的描述,则偏移M定是四个字节的零。否则,偏移规定这个描述条目的开始与下一个描述条目之间的字节数。长度字段以字节的方式规定色拉的长度。
[0218] 在大多数蛋白质中,每个描述都是串,以色拉串的方式被格式化:四字节长度/类型头,其中最高有效位被设置并且只有较低的30位用于规定长度,继之以头的指示数目的数据字节。通常,长度头从蛋白质取其端。字节被假定编码UTF-8字符(并且这样一来——注意——字符数就不一定与字节数相同)。
[0219] 摄取偏移规定了蛋白质的开始与第一个摄取条目之间的字节数。每个摄取条目包括到下一个摄取条目的偏移(以偏移格式),又继之以长度字段和色拉。摄取偏移在功能上等同于描述偏移,除了它指向下一个摄取条目而不是下一个描述条目之外。
[0220] 在大多数蛋白质中,每个摄取具有色拉cons类型,其包括双值列表,一般用作关键/值对。色拉cons记录包括:四字节长度/类型头,其中第二最高有效位被设置并且只有较低的30位用于规定长度;到值(第二)元素开始的四字节偏移;四字节长度的关键元素;用于关键元素的色拉记录;四字节长度的值元素;以及最后用于值元素的色拉记录。
[0221] 一般而言,cons关键字是色拉串。跨几个蛋白质和色拉cons长度和偏移字段的数据的重复提供了用于细化和优化的又一次机会。
[0222] 如上所述,根据实施方式使用的用于将定型数据嵌入蛋白质内部的构 造是被称为“色拉”的被贴标签的字节序列规范和抽象。色拉是表示(可能是聚集的)定型数据的字节的线性序列,并且与特定编程语言的API相关联,其允许色拉在存储器空间、存储介质和机器之间创建、修改和四处移动。色拉类型方案旨在可扩展并且尽可能重量轻,并且成为可以从任何编程语言使用的通用基片。
[0223] 建立有效的大规模的进程间通信机制的愿望是色拉配置的驱动器。传统的编程语言提供了在特定进程的存储器布局中工作良好的复杂数据结构和类型设施,但是当数据需要在进程之间移动或存储在盘上时,这些数据表示总是损坏。色拉体系结构是用于进程间通信的第一基本上有效的多平台友好的低水平数据模型。
[0224] 但更重要的是,色拉被配置成连同蛋白质一起影响并启用未来计算硬件(微处理器、存储器控制器、盘控制器)的开发。对比如公共可用的微处理器的指令集合的几个特定添加使得色拉可以甚至对于单进程、存储器内数据布局变得与大多数编程语言中使用的方案一样有效。
[0225] 每个色拉包括可变长度类型头继之以特定于类型的数据布局。在例如支持C、C++和Ruby形式的全色拉功能的示例实施方式中,通过可从每种语言访问的系统头文件中定义的通用整数来指示类型。更复杂和灵活的类型分辨功能也是可能的:例如通过通用对象ID和网络查找的间接定型。
[0226] 实施方式的色拉配置允许色拉记录用作例如来自Ruby和C++两者的语言友好方式的对象。C++编译器外部的一套实用程序完整性检查色拉字节布局,创建特定于单独色拉类型的宏和头文件,并且自动地生成用于Ruby的绑定。结果,良好配置的色拉类型即使当从单个进程之内使用时也十分有效。进程的可访问存储器中任何地方的任何色拉都可以被寻址而没有拷贝或“去串行化”步骤。
[0227] 实施方式的色拉功能包括用于执行以下中的一个或更多个的API设施:创建特定类型的新色拉;创建或建立对来自盘上或存储器内字节的色拉的语言特定引用;以特定于类型的方式将数据嵌入在色拉之内;查询色拉的尺寸;从色拉内检索数据;克隆色拉;以及翻译色拉之内数据的端和其它格式属性。每个色拉都执行上述行为。
[0228] 图14B/1和图14B/2示出了根据实施方式的色拉头格式。色拉的详细描述如下。
[0229] 每个色拉的内部结构都优化类型分辨、对封装数据的访问以及用于该 色拉实例的尺寸信息中的每个。在实施方式中,色拉类型的完全集合被设计得最小完全,并且包括:色拉串;色拉cons(即,对);色拉列表;以及色拉数值对象,其自身表示被理解为半打排列或这种基本属性的单独数值类型的广泛集合。任何色拉的其它基本性质是其尺寸。在实施方式中,色拉具有量化成四的倍数的字节长度;这些四字节字在本文中被称为“四倍体”。一般而言,这样的基于四的尺寸定位使得色拉与现代计算机硬件体系结构的配置良好配准。
[0230] 实施方式中的每个色拉的前四个字节包括头结构,其编码类型描述和其它元信息,并且将特定类型意义归因于具体位模式。例如,色拉头的第一个(最高有效)位用于规定该色拉的尺寸(以四倍体字的长度计)是否遵循初始四字节类型头。当这个位被设置时,应当理解的是,色拉的尺寸明确地记录在色拉的下四个字节中(例如字节五至八);如果色拉的尺寸是这样的,以至于不能以四个字节来表示(即,如果尺寸是或大于二的三十二次幂),那么色拉的初始四个字节的下一个最高有效位也被设置,这表示色拉具有八字节(而不是四字节)长度。在这种情况下,检查过程会发现存储在顺序字节五至十二中的色拉长度。另一方面,小数目的色拉类型意味着在许多情况下完全规定的典型位模式“留下未使用”四字节色拉头中的许多位;并且在这样的情况下这些位可以用于编码色拉的长度,节省否则会需要的字节(五至八)。
[0231] 例如,实施方式留下色拉头的最高有效位(“长度跟随”旗标)未设置,并且设置下一位以指示色拉是“wee cons”,并且在这种情况下色拉的长度(以四计)被编码在剩余的三十位中。类似地,“wee串”用头中的模式001来标记,其留下二十九位用于表示色拉串的长度;并且头中的引导0001描述“wee列表”,其依靠二十八个可用长度表示位可以是高达二的二十八次幂个四倍体大小的色拉列表。“全串”(或cons或列表)具有不同的头中的位签名,其中最高有效头位必定被设置,这是因为色拉长度分开编码在字节五至八(或十二,在极端情况下)中。注意,等离子体实施在色拉构造之时“决定”是使用这些构造的“wee”还是“全”版本(该决定基于作为结果的尺寸是否会“配合”可用的wee位),但是全对比于wee的细节相对于等离子体实施的用户是隐藏的,用户只知道和关心她正在使用色拉串或色拉cons或色拉列表。
[0232] 数值色拉在实施方式中由引导头模式00001指示。随后的头位用于表示可能以任意排列进行组合的一组正交性质。实施方式使用但不限于五个 这样的字符位以指示数字是否是:(l)浮点;(2)复数;(3)无符号;(4)“宽”;(5)“粗短”((4)“宽”和(5)“粗短进行排列以指示八、十六、三十二和六十四位数据表示)。两个额外的位(例如(7)和(8))指示封装的数值数据是二、三或四元素向量(其中两个位为零表明数值是“一元素向量”(亦即标量)。在这个实施方式中,第四个头字节的八个位用于编码封装的数值数据的尺寸(以字节计而不是四倍体)。这个尺寸编码被偏移一,以便它可以表示包括一和二百五十六字节以及一与二百五十六字节之间的任何尺寸。最后,两个字符位(例如(9)和(10)用于指示数值数据编码单独数值实体的阵列,其中的每一个具有由字符位(1)至(8)描述的类型。在阵列的情况下,单独数值实体不是每个用另外的头标记,而是包装为连续的数据,其跟随单个头以及可能的明确色拉尺寸信息。
[0233] 该实施方式提供了简单有效的色拉复制(其可以实施为字节对字节拷贝)以及极其直接和有效的色拉比较(在这个实施方式中,当且仅当考虑序列的两个色拉的组成部分字节中的每一个一一匹配时,这两个色拉才相同)。这后一性质例如对于蛋白质体系结构的有效实施是重要的,蛋白质体系结构的关键性和普遍的特征之一是搜索或‘匹配’蛋白质的描述列表。
[0234] 进一步地,本文中的实施方式允许简单且有效地构造聚集色拉形式(例如色拉cons和色拉列表)。例如,实施方式通过以下从两部分色拉(其可以具有任何类型,包括它们自己聚集)建立色拉cons:(a)查询每个部分色拉的尺寸;(b)分配尺寸等于两个部分色拉的尺寸和头加上尺寸结构所需的一个、两个或三个四倍体之和的存储器;(c)在前四个、八个或十二个字节中记录色拉头(加上尺寸信息);以及然后(d)依次将部分色拉的字节拷贝到紧接着后续的存储器中。重要的是,这样的构造例程不需要知道关于两部分色拉的类型的任何东西;只有它们的尺寸(以及作为字节序列的可访问性)要紧。相同的过程适用于色拉列表的构造,所述色拉列表是(可能地)异样类型的任意许多子色拉的排序封装。
[0235] 作为存储器内顺序字节的色拉系统的基本格式的进一步结果结合“遍历”活动——例如循环使用模式而使用获得对色拉列表中存储的单独色拉的顺序访问。表示蛋白质结构之内的描述和摄取的单独色拉必须类似地遍历。以令人晕倒的直接且有效的方式完成这样的调度:为了“到达”色拉列表中的下一个色拉,将当前色拉的长度添加到其存储器内的位置,并且作为结果的存储器位置等同地为下一个色拉的头。这样的简化是可能的,因为色拉和蛋白质设计避免“间接”;不存在指针;相反地,数据简单地 以其全体存在就位。
[0236] 关于色拉比较这一点,等离子体系统的完全实施必须承认跨不同操作系统、CPU和硬件体系结构以及在它们当中的不同且不兼容的数据表示方案的存在。大多数这样的不同包括字节排序策略(例如小端对比于大端)和浮点表示;其它不同也存在。等离子体规范要求色拉所封装的数据保证可解释(即,必须以从中检查色拉的体系结构或平台的自然格式出现)。这个要求继而表明等离子体系统自身对数据格式转换负责。然而,规范仅规定,在色拉变得对可能检查它的执行进程“根本可见”之前发生转换。因此达到单独的实施,在该点它选择执行这样的格式c转换;两个适当的方法是,色拉数据有效载荷符合于局部体系结构的数据格式(1)当单独的色拉从它已被包装在其中的蛋白质中“拉出”时,或者(2)对于同时在蛋白质中的全部色拉,当该蛋白质从它处于其中的池中提取时。注意,转换规定考虑硬件辅助实施的可能性。例如,建立有明确等离子体能力的联网芯片组可以基于接收系统的已知特性智能地并且在“传输时”执行格式转换。交替地,传输的过程可以将数据有效载荷转换成规范格式,其中接收过程对称地从规范转换到“局部”格式。另一实施方式执行“在金属”的格式转换,意味着数据总是以规范格式存储,即使在局部存储器中也是,并且当数据从存储器中检索并放置在就近CPU的寄存器中时,存储器控制器硬件自身执行转换。
[0237] 实施方式的最小(和只读)蛋白质实施包括利用蛋白质的一个或更多个应用或编程语言中的操作或行为。图14C是根据实施方式的用于使用蛋白质的流程图650。操作开始于查询蛋白质的以字节计的长度652。查询描述条目的数目654。查询摄取的数目656。通过指数检索描述条目658。通过指数检索摄取660。
[0238] 本文中所描述的实施方式还定义了允许蛋白质被构造并填充以数据的基本方法、使一般任务对程序员更容易的助手方法以及用于创建优化的钩子。图14D是根据实施方式的用于构造或生成蛋白质的流程图670。操作开始于创建新蛋白质672。附加一系列的描述条目被674。也被附加摄取676。查询匹配描述的存在678,并且查询匹配摄取关键字的存在680。给定摄取关键字,检索摄取值682。跨描述执行模式匹配684。在蛋白质的开始附近嵌入非结构化的元数据686。
[0239] 如上所述,色拉提供最低水平的用于进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子,而池则提供高水平的组织 和访问语义。池是用于蛋白质的仓库,提供线性序列和状态缓存。池还提供通过大量不同类型的多个程序或应用进行的多进程访问。此外,池提供一组共同的可优化的过滤和模式匹配行为。
[0240] 可以容纳成千上万个蛋白质的实施方式的池起作用以维持状态,以便单独的进程可以卸载对多进程程序代码共同的大多数冗长簿记。池维持或保持过去可用蛋白质的大缓冲器——理想的池明确地无限——以便参与的进程可以随意在池中向后和向前扫描。缓冲器的尺寸当然依赖于实施,但是在通常使用中常常可以将蛋白质保持在池中以小时或天计。
[0241] 与现有的进程间通信框架所采取的机械式点对点方法形成对照,如本文中所描述的池使用的最通常的格遵守生物学比喻。名称蛋白质暗指生物学灵感:池中的数据蛋白质可用于大量计算进程进行的灵活查询和模式匹配,就像活体组织中的化学蛋白质可用于大量细胞试剂进行的模式匹配和过滤。
[0242] 两个另外的抽象依靠生物学比喻,包括使用“处理机”和高尔基(Golgi)框架。参与池的进程一般创建若干处理机。处理机是将匹配条件与处理行为相关联的相对小束的代码。通过将一个或更多个处理机联系到池,进程设立灵活的回叫触发,其封装状态并对新的蛋白质反应。
[0243] 参与几个池的进程一般从抽象高尔基类继承。高尔基框架提供若干有用的例程,用于管理多个池和处理机。高尔基类还封装双亲-子女关系,提供不使用池的局部蛋白质交换的机制。
[0244] 根据实施方式提供的池API被配置成允许池以多种方式实施,以便既考虑特定系统的目标,又考虑给定硬件和网路体系结构的可用能力。池所依靠的两个基本系统规定是存储设施和进程间通信的装置。本文所描述的现存系统使用以下的灵活组合:共享存储器、虚拟存储器和用于存储设施的盘以及用于进程间通信的TCP/IP套接字和IPC队列。
[0245] 实施方式的池功能包括但不限于以下:参与池;将蛋白质放置在池中;从池中检索下一个未看到的蛋白质;反绕或快进池内的内容(例如蛋白质)。另外,池功能可以包括但不限于以下:设立用于进程的流池回叫;选择性检索匹配描述或摄取关键字的特定模式的蛋白质;向后并向前扫描匹配描述或摄取关键字的特定模式的蛋白质。
[0246] 上述蛋白质被提供给池,作为与其它应用共享蛋白质数据内容的方式。图15是根据实施方式的包括使用色拉、蛋白质和池的数据交换的处 理环境的框图。这个示例环境包括三个装置(例如装置X、装置Y和装置Z,在本文中统称为“装置”),它们通过使用如上所述的色拉、蛋白质和池来共享数据。装置中的每一个耦接到三个池(例如池l、池2、池3)。池l包括大量蛋白质(例如蛋白质X1、蛋白质Z2、蛋白质Y2、蛋白质X4、蛋白质Y4),它们从各个装置贡献或传递到池(例如,蛋白质Z2由装置Z传递或贡献到池l,等)。池2包括大量蛋白质(例如蛋白质Z4、蛋白质Y3、蛋白质Z1、蛋白质X3),它们从各个装置贡献或传递到池(例如,蛋白质Y3由装置Y传递或贡献到池2,等)。池3包括大量蛋白质(例如蛋白质Y1、蛋白质Z3、蛋白质X2),它们从各个装置贡献或传递到池(例如,蛋白质X2由装置X传递或贡献到池3,等)。虽然上面描述的示例包括耦接或连接在三个池当中的三个装置,但是任何数目的装置可以以任何方式或组合来耦接或连接在任何数目的池当中,并且任何池可以包括从任何数目或组合的装置中贡献的任何数目的蛋白质。这个示例的蛋白质和池如上所述参考图18至图23。
[0247] 图16是根据实施方式的处理环境的框图,该处理环境包括多个装置和在所述装置中的一个或更多个装置上运行的大量程序,其中,等离子体构造(例如池、蛋白质和色拉)用于允许大量运行的程序共享并对装置所生成的事件集体做出反应。这个系统只是多用户、多装置、多计算机交互控制场景或配置的一个示例。更加具体地,在这个示例中,包括多个装置(例如装置A、B等)和在装置上运行的若干程序(例如应用AA-AX、应用BA-BX等)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
[0248] 在这个示例中,每个装置(例如装置A、B等)将由在各个装置上运行的程序(例如应用AA-AX、应用BA-BX等)生成的或者从其输出的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,程序AX生成数据或输出并提供该输出给装置A,装置A依次将原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等)并将那些蛋白质存放到池中。作为另一示例,程序BC生成数据并提供该数据给装置B,装置B依次将数据翻译成蛋白质(例如蛋白质1B、蛋白质2B等)并将那些蛋白质存放到池中。
[0249] 每个蛋白质包含描述列表,其规定通过应用登记的数据或输出以及用于程序自身的标识信息。在可能的情况下,蛋白质描述也可以给予输出事件或动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用 于程序事件的有用状态信息的全部集合。
[0250] 如上所述,蛋白质在由耦接或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型如何。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够通过局部存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成处理事件的进程与使用或解释事件的进程解耦。另一后果是事件的源和消费者的多路化,以便装置可以由一个人控制或者可以由几个人同时使用(例如基于等离子体的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
[0251] 作为示例,装置C可以从池中提取一个或更多个蛋白质(例如蛋白质1A、蛋白质2A等)。在蛋白质提取之后,装置C在蛋白质数据所对应的处理事件中可以使用从蛋白质的描述和摄取的色拉中检索或读取的蛋白质的数据。作为另一示例,装置B可以从池中提取一个或更多个蛋白质(例如蛋白质1C、蛋白质2A等)。在蛋白质提取之后,装置B在蛋白质数据所对应的处理事件中可以使用蛋白质的数据。
[0252] 耦接或连接到池的装置和/或程序可在池中向后和向前浏览以查找具体蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望的编码模式的依靠。
[0253] 图17是根据替换实施方式的处理环境的框图,该处理环境包括多个装置和在所述装置中的一个或更多个装置上运行的大量程序,其中,等离子体构造(例如池、蛋白质和色拉)用于允许大量运行的程序共享并对装置所生成的事件集体做出反应。这个系统只是多用户、多装置、多计算机交互控制场景或配置的一个示例。更加具体地,在这个示例中,包括多个装置(例如分别耦接到装置A和B的装置X和Y)和在一个或更多个计算机(例如装置A、装置B等)上运行的若干程序(例如应用AA-AX、应用BA-BX等)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
[0254] 在这个示例中,每个装置(例如分别耦接到装置A和B的装置X和Y)被管理和/或耦接以在一个或更多个程序之下或者与其相关联地运行,所述一个或更多个程序驻留在各个装置上(例如装置A、装置B等),各 个装置将由装置(例如装置X、装置A、装置Y、装置B等)硬件所生成的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,与驻留在装置A上的应用AB相关联地运行的装置X生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等)并将那些蛋白质存放到池中。作为另一个示例,与驻留在装置A上的应用AT相关联地运行的装置X生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等)并将那些蛋白质存放到池中。作为又一示例,与驻留在装置C上的应用CD相关联地运行的装置Z生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1C、蛋白质2C等)并将那些蛋白质存放到池中。
[0255] 每个蛋白质包含描述列表,其规定通过输入装置登记的动作以及用于装置自身的标识信息。在可能的情况下,蛋白质描述也可以给予装置动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于装置事件的有用状态信息的全部集合。
[0256] 如上所述,蛋白质在由耦接或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够通过局部存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成处理事件的进程与使用或解释事件的进程解耦。另一后果是事件的源和消费者的多路化,以便输入装置可以由一个人控制或者可以由几个人同时使用(例如基于等离子体的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
[0257] 耦接或连接到池的装置和/或程序可在池中向后和向前浏览以查找具体蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望的编码模式的依靠。
[0258] 图18是根据另一可替选实施方式的处理环境的框图,该处理环境包括多个输入装置,该多个输入装置耦接在运行于多个装置中的一个或更多个装置上的大量程序中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许大量运行的程序共享并对输入装置所生成的事件集体做出反应。系统只是多用户、多装置、多计算机交互控制场景或配置的一个示例。更 具体地,在此示例中,包括多个输入装置(例如输入装置A、B、BA和BB等)和在一个或更多个计算机(例如装置A、装置B等)上运行的若干程序(未示出)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
[0259] 在这个示例中,每个输入装置(例如输入装置A、B、BA和BB等)由驻留在各个装置上(例如装置A、装置B等)的软件驱动器程序管理,所述各个装置将由输入装置硬件所生成的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,输入装置A生成原始数据并提供该原始数据给装置A,装置A依次将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等)并将那些蛋白质存放到池中。作为另一个示例,输入装置BB生成原始数据并提供该原始数据给装置B,装置B依次将离散的原始数据翻译成蛋白质(例如蛋白质1B、蛋白质2B等)并将那些蛋白质存放到池中。
[0260] 每个蛋白质包含描述列表,其规定通过输入装置登记的动作以及用于装置自身的标识信息。在可能的情况下,蛋白质描述也可以给予装置动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于装置事件的有用状态信息的全部集合。
[0261] 为了示意,这里是这样的系统中的用于两个典型事件的示例蛋白质。蛋白质在此被表示为文本,然而在实际实施中,这些蛋白质的组成部分是定型数据束(例如色拉)。描述一般而言“一根手指点击”姿态(在相关申请中有描述)的蛋白质如下:
[0262] [描述:{点、啮合(engage)、一个、一个手指啮合、手、飞行员-id-02、手-id-23}[0263] 摄取:{飞行员-id=>02,
[0264] 手-id=>23,
[0265] 姿态=>[0.0,0.0,0.0]
[0266] 角度-轴=>[0.0,0.0,0.0,0.707]
[0267] 紧握=>..^||:vx
[0268] 时间=>184437103.29}]
[0269] 作为进一步的示例,描述鼠标点击的蛋白质如下:
[0270] [描述:{点,点击,一个,鼠标点击,按钮一,鼠标-id-02}
[0271] 摄取:{鼠标-id=>23,
[0272] 姿态=>[0.0,0.0,0.0]
[0273] 时间=>184437124.80}]
[0274] 前述样本蛋白质中的任一个或两者可能使主机装置的参与程序运行其代码的特殊部分。这些程序可能对一般的语义标签感兴趣:全部当中最一般的是“点”,或者更特定的对“啮合、一个”。或者它们可以寻找似乎仅会由精确装置生成的事件:“一个手指啮合”,乃至单个聚集对象“手id-23”。
[0275] 如上所述,蛋白质在由耦接或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够通过局部存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成“输入事件”的进程与使用或解释事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便输入装置可以由一个人控制或者可以由几个人同时使用(例如基于等离子体的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
[0276] 作为示例或蛋白质使用,装置C可以从池中提取一个或更多个蛋白质(例如蛋白质1B等)。在蛋白质提取之后,装置C在处理蛋白质数据所对应的输入装置CA和CC的输入事件时可以使用从蛋白质的描述和摄取的色拉中检索或读取的蛋白质的数据。作为另一示例,装置A可以从池中提取一个或更多个蛋白质(例如蛋白质1B等)。在蛋白质提取之后,装置A在处理蛋白质数据所对应的输入装置A的输入事件时可以使用蛋白质的数据。
[0277] 耦接或连接到池的装置和/或程序可在池中向后和向前浏览以查找特定蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望的编码模式的依靠。
[0278] 在本文中所描述的系统实施方式中使用的输入装置的示例包括如消费电子产品中使用的姿态输入传感器、键盘、鼠标、红外线遥控器以及面向任务的触媒对象,这只是举几个示例。
[0279] 图19是根据又一可替选实施方式的处理环境的框图,该处理环境包括多个装置,所述多个装置耦接在运行于多个装置中的一个或更多个装置上的大量程序中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许大量运行的程序共享并对装置所生成的图形事件集体做出反应。这个系统只是包括多个运行程序(例如图形A至E)和一个或更多个显示装置(未示出)的系统的一个示例,其中,使得程序中的一些或全部的图形输出以协调的方式可用于其它程序,使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对装置所生成的图形事件集体做出反应。
[0280] 对于计算机程序而言通常有用的是显示由另一程序生成的图形。几个通常的示例包括视频会议应用、基于网络的放映幻灯片和演示程序以及视窗管理器。在这种配置下,池用作等离子体库以实施一般化的框架,该框架封装视频、网络应用共享和视窗管理,并且允许程序员添加在这种程序的当前版本中通常不可用的若干特征。
[0281] 在等离子体组成环境中运行的程序(例如图形A至E)通过耦接和/或连接到池而参与协调池。每个程序都可以将蛋白质存放在该池中,以指示不同种类的图形源的可用性。可用于显示图形的程序也存放蛋白质,以指示它们显示的能力、安全和用户简档以及物理和网络位置。
[0282] 图形数据也可以通过池传输,或者显示程序可以指向其它种类的网络资源(例如RTSP流)。如本文中所使用的短语“图形数据”指代依赖宽阔连续区的多种不同表示;图形数据的示例包括但不限于文字示例(例如“图像”或像素块)、程序性示例(例如“绘图”指示的序列,诸如流下典型的openGL管线)以及描述性示例(例如借助于几何变换、裁剪和合成操作来组合其它图形构造的指令)。
[0283] 在局部机器上,图形数据可通过特定平台的显示驱动器优化来递送。甚至当图形没有通过池传输时,常常周期性的屏幕捕捉也将存储在协调池中,使得客户在不直接访问更深奥的源的情况下仍可显示后退图形。
[0284] 这里描述的系统的一个优点在于,与大多数消息传递框架和网络协议不同,池维持数据的显著缓冲。所以程序可以向后回绕到池中以查看访问和使用模式(在协调池的情况下)或者提取以前的图形帧(在图形池的情况下)。
[0285] 图20是根据再又一可替选实施方式的处理环境的框图,该处理环境包括多个装置,所述多个装置耦接在运行于多个装置中的一个或更多个装 置上的大量程序中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许对运行的程序进行状态检查、可视化和调试。这个系统只是包括多个装置(例如装置A、装置B等)上的多个运行程序(例如程序P-A、程序P-B等)的系统的一个示例,其中,一些程序使用或通过池访问其它程序的内部状态。
[0286] 大多数交互计算机系统包括彼此并排运行的许多程序,它们或者在单个机器上或者在多个机器上,并且跨网络进行交互。多程序系统可能难以配置、解析和调试,因为运行时间数据隐藏在每个进程内部并难以访问。在此描述的实施方式的一般化框架和等离子体构造允许运行的程序使许多它们的数据通过池可用,以使得其它程序可以检查它们的状态。这个框架启用比传统调试器更灵活的调试工具、复杂的系统维护工具以及可视化装备,所述可视化装备配置成允许人工操作员详细地解析一个或多个程序已经过的状态的序列。
[0287] 参考图25,在这个框架中运行的程序(例如程序P-A、程序P-B等)在程序进行时生成或创建进程池。这个池登记在系统年鉴中,并且施加安全与访问控制。更具体地,每个装置(例如装置A、B等)将由运行于各个装置上的程序(例如程序P-A、程序P-B等)生成的或者从其输出的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,程序P-A生成数据或输出并提供该输出给装置A,装置A依次将原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A、蛋白质3A等)并将那些蛋白质存放到池中。作为另一示例,程序P-B生成数据并提供该数据给装置B,装置B依次将数据翻译成蛋白质(例如蛋白质1B至蛋白质4B等)并将那些蛋白质存放到池中。
[0288] 在程序寿命的存续期间,具有充分访问许可的其它程序可以附接到池并读取程序存放的蛋白质;这表示基本检查模态,并且在概念上是“单路”或“只读”命题:在程序P-A中感兴趣的实体检查由其进程池中的P-A存放的状态信息流。例如,在装置C下运行的检查程序或应用可以从池中提取一个或更多个蛋白质(例如蛋白质1A、蛋白质2A等)。在蛋白质提取之后,装置C可以使用从蛋白质的描述和摄取的色拉中检索或读取的蛋白质的数据以访问、解释和检查程序P-A的内部状态。
[0289] 但是,回顾等离子体系统不仅是有效的状态传输方案,而且是全取向消息收发环境,几个另外的模式支持程序对程序状态检查。授权的检查程序可以自己将蛋白质存放到程序P的进程池中,以影响或控制在该进程池 中产生和放置的状态信息的特性(毕竟,程序P不仅向所述进程池中写入而且还从中读取)。
[0290] 图21是根据额外的可替选实施方式的处理环境的框图,该处理环境包括多个装置,该多个装置耦接在运行于多个装置中的一个或更多个装置上的大量程序中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许影响或控制该进程池中产生和放置的状态信息的特性。在这个系统示例中,装置C的检查程序例如可以请求程序(例如程序P-A、程序P-B等)或者在单个瞬时或者在具体的一段时间倾卸比正常更多的状态到池中。或者,预示调试通信的下一个“等级”,感兴趣的程序可以请求程序(例如程序P-A、程序P-B等)发出列举其运行时间环境中现存的对象的蛋白质,它们单独地能够并且可用于通过调试池进行交互。由此可知,感兴趣的程序可以“寻址”程序运行时间中的对象当中的个体,将蛋白质放置在具体的对象单独会占据并做出反应的进程池中。感兴趣的程序例如可以请求对象发出报告蛋白质,描述其全部成分变量的瞬时值。甚至更重要的是,感兴趣的程序可通过其它蛋白质指导对象改变其行为或其变量的值。
[0291] 更具体地,在这个示例中,装置C的检查应用将对于对象列表的请求(例如“请求对象列表”)(以蛋白质的形式)放置到池中,该请求然后由耦接到池的每个装置(例如装置A、装置B等)提取。响应于该请求,每个装置(例如装置A、装置B等)将列举其运行时间环境中现存的对象的蛋白质(例如蛋白质1A、蛋白质IB等)放置到池中,它们单独地能够并且可用于通过调试池进行交互。
[0292] 由此可知通过来自装置的列举,并且响应于对象的列举,装置C的检查应用寻址程序运行时间中的对象当中的个体,将蛋白质放置在具体的对象单独会占据并做出反应的进程池中。装置C的检查应用例如可以将请求蛋白质(例如蛋白质“请求报告P-A-O”、“请求报告P-B-O”)放置在池中,对象(例如分别是对象P-A-O、对象P-B-O)发出报告蛋白质(例如蛋白质2A、蛋白质2B等),描述其全部成分变量的瞬时值。每个对象(例如对象P-A-O、对象P-B-O)提取其请求(例如分别是“请求报告P-A-O”、“请求报告P-B-O”),并且做为响应,将蛋白质放置到包括所请求的报告(例如分别为蛋白质2A、蛋白质2B)的池中。装置C然后提取各种报告蛋白质(例如蛋白质2A、蛋白质2B等),并且如对报告的内容适当的那样采取后续的处理动作。
[0293] 以这种方式,使用等离子体作为互换介质最终趋于侵蚀调试、进程控 制以及程序对程序通信与协调之间的区别。
[0294] 最后,一般化的等离子体框架允许可视化和解析程序以松散耦接的方式来设计。例如显示存储器访问模式的可视化工具可以与输出其基本存储器读取和写入至池的任何程序相结合使用。经历解析的程序不需要知道可视化工具的存在或设计,反之亦然。
[0295] 以上述方式使用池并不过度影响系统性能。例如,实施方式已允许在池中每秒存放几十万个蛋白质,以便使得即使相对冗长的数据输出也能够不显著地抑制大多数程序的响应性或交互特征。
[0296] 多模态输入装置(MMID)
[0297] 本文描述了大量多模态输入装置(MMID)的实施方式,其中MMID使得空间或姿势输入系统的用户能够以人体工程学的有效方式来直观地访问输入功能的范围。实施方式的在本文中也称为棒的MMID是手持输入装置。实施方式的MMID包括准确且实时地跟踪装置的位置和取向的装置。实施方式的MMID包括物理结构和机械结构,使得持有并操作该装置的人可以容易地绕其一个或更多个轴旋转该装置。实施方式的MMID包括物理结构和机械结构,使得可以以多于一个旋转手柄来舒适地持有并操作该装置。实施方式的MMID包括能够将其中用户保持并操作该装置的旋转手柄状态以及这些操作旋转状态之间的转换两者解释并且翻译成用户输入信号的一个或多个软件部件或机制。该软件部件依赖于与该装置对应的跟踪数据。另外,这样的输入装置可以具有集成在其形状中的其它输入功能,例如按钮、操纵杆、滑块和滑轮。该装置也可以集成有输出功能,例如灯、音频扬声器、光栅显示器和振动电机
[0298] 如本文所暗示的,针对各种实施方式的多模态输入装置可以有多种具体配置。装置可以在物理形状、机械以及人体工程学上不同。装置也可以在由物理设计、跟踪技术以及软件处理的组合所支持的离散模态的数目上不同。此外,MMID可以在辅助板上输入(即超过位置、取向以及模态)的设计以及板上输出功能方面不同。
[0299] 实施方式的MMID包括具有壳体的笔状装置,该壳体具有类似于消费电子遥控的外形因子。图22示出了根据实施方式的笔状MMID 2200。该MMID 2200约五英寸长、一又二分之一英寸宽且具有三角形横截面,但不限于此。MMID 2200壳体的每个面包括单个输入传感器,在实施方式中,单个输入传感器在每个面上包括电子机械按钮,而在可替选实施方 式中,单个输入传感器在每个面上能够具有更多或更少数目的按钮或不同类型的按钮。当用户手持MMID 2200时,在用户手中,三棱柱的长边2204中的一个长边自然朝下,搁置在用户手指的弯曲处,同时该棱柱的反面朝上并且置于用户拇指之下。可以在手指和拇指最小移动的情况下,将MMID 2200绕长轴旋转2220度,从而使棱柱的相邻面的取向向上。因此棱柱包括对应于棱柱的面的三个相异且易于取得的模态取向。MMID 2200可以快速反复地旋转所有(例如三)取向,甚至在用户首次体验该装置的情况下也如此。
[0300] 如下所述,利用磁场跟踪对实施方式的MMID 2200的位置进行跟踪,但也能够利用其它跟踪技术(本文中描述了其中一些)来进行跟踪。MMID 2200包括用于相对于交流(AC)磁场或电磁场(EMF)来跟踪装置的电路微控制器以及程序代码。由靠近该MMID的兼容基站来生成或发射本实施方式的EMF,但不限于此。MMID 2200包括也称为输入传感器的一个或更多个机械按钮以及将一个或更多个按钮的状态数字化的对应电子设备。此外,MMID 2200包括如下电路:其提供无线电链路,以将跟踪数据(例如,取向数据、位置数据等)和按钮按压的原始数据上报给主机系统。另外,MMID 2200包括电池和供电电路。
[0301] 输入处理软件将原始跟踪数据和按钮按压数据翻译成包括六度空间位置和取向、按钮按下转换、按钮弹起转换以及按钮状态的流水账的数据。实施方式的输入处理软件部分地运行在该装置上而部分地作为应用代码运行在主机系统上,但不限于此,并且能够以分布式方式运行在任何数目的处理装置上和/或处理装置的组合或者单独运行在单个处理器上。将该数据作为一系列可编程“事件”(下文将详细描述可编程事件的处理)递送至应用软件。另外,该输入处理层向应用软件提供模式转换和运行模式状态。如下文详细描述,可以有三个状态(例如,i,ii和iii)和六个转换(例如,i->ii,i->iii,ii->iii,ii->i,iii->i和iii->ii)。
[0302] 实施方式的处理层利用滞后以使得用户能够在不离开给定模式的情况下取得沿MMID长轴旋转的最大值,并且能够避免当MMID接近转换角的边缘时模态之间的快速、不理想的突然转变。利用该滞后,为了触发模式之间的转换,应该将实施方式的MMID相对于先前模式的中心角旋转大于120度。因此,如果MMID在模式(i)中,具有绝对零度的中心角,逻辑上,MMID保持在模式(i)状态中,直到检测到在任一方向上围绕长轴的旋转大于比方说150度为止。当MMID旋转了151度时, MMID转换至模态(ii),模态(ii)具有120度的中心角。为了返回到状态(i),MMID必须在相反方向上将该中心角旋转移动-150度,从而使其移动-30(或330)度的绝对角。给定以上为30度(150度减去120),滞后带是可编程设置的,并且可以通过应用代码或通过用户偏好设置来调整。该滞后示例如果提供给三边MMID则如上所述,但是该滞后示例不限于本文所描述的针对三边装置的值;根据壳体或棒的外形因子以及设计者/用户偏好来确定可替选实施方式的旋转角和/或滞后带。
[0303] 另外,可以通过应用代码可选地禁用某些模式。因此,能够通过应用代码将MMID处理作为输出(i)、(ii)或(iii)的固定模态的单模式装置。或者,通过将禁用模式排他地映射至两个剩余模式中的任一个模式,或通过将禁用模式处理作为滞后带的额外的区,可以将任一模式禁用。
[0304] 进一步,系统可以被配置成恒定地将MMID(例如,三棱柱)的物理面与每个模式相关联,借助于主动标记或被动标记将面可选地标记为模式关联。或者,系统可以被配置成将模式以上下文语境的方式分配给面。作为将模式以上下文语境的方式分配给面的情况的示例,MMID可以被配置成使得当在一段非活动时间之后用户第一次重新开始MMID时,将一开始向上的面与模式(i)相关联。在这样的情况下,可以在MMID上、用户正在关注的图形显示器上或MMID和图形显示器的组合上设置活动模式的指示。
[0305] MMID的每个面包括也称为输入传感器的单个按钮。通过应用级软件相同地处理这些按钮,但不限于此。从用户的角度,可以认为装置具有单个逻辑按钮,该逻辑按钮具有出于人体工程学实用性原因的三个物理体现。MMID的电路和软件区别不同物理按钮的操纵,然而,并且系统可以被布置成使得以具体组合按下按钮,则将装置放置于各种配置和复位状态中。
[0306] 实施方式的MMID利用磁场跟踪技术(参见例如美国专利公开号3,983,474)起作用。已经使用用于生成和感应磁场的正交线圈来定位和跟踪远程对象。例如,美国专利公开号3,664,825教示了相对于彼此移动的生成和感应线圈。或者,如在Kalmus,“A New Guiding and Tracking System”,IRE Transaction on Aerospace and Navigational Electronics,1962年3月,第7至10页中教示的,能够使磁场旋转。
[0307] 也已使用坐标变换器来确定第一坐标系相对于第二坐标系的取向。例如,美国专利公开号3,474,241以及3,660,648公开了将在第一坐标系中测 量的角速率或角误差转换为绕中间坐标系(绕该中间坐标系的轴而限定角旋转或角速率)的轴所限定的角速率,并且然后进行积分,以确定限定角轴序列的角,该角轴序列通过使用欧拉角限定了第一坐标系相对于第二坐标系的取向。
[0308] 图23是根据实施方式的使用磁场跟踪的MMID的框图。位于靠近MMID的跟踪环境或在MMID的跟踪环境中的基站2310提供跟踪场并且与MMID 2311进行通信。在基站中,信号发生器通过利用场发生器电路2301创建磁场以生成三个正交线圈2302中的交流波形。由MMID中的三个正交线圈2303来接收由这些线圈生成的电磁信号。通常利用运算放大器2304来放大所接收到的来自三个线圈的信号,并且将其转换为能够通过微处理器2307采样数字信号2305。微处理器利用数字信号处理(DSP)技术来分析三个线圈的输入。DSP处理提供用于投影MMID距基站的距离和方向的位置向量以及确定MMID的取向的取向矩阵。
[0309] 也能够将额外信息(例如,时间戳、通用ID等)与MMID位置数据相组合。也针对状态来感应一个或更多个用户输入传感器2306。输入传感器2306能够是瞬时开关、拨动开关、操纵杆型输入装置和/或触摸传感器,这里仅举几例。来自这些开关的采样数据包括单比特(针对触摸按钮)或更复杂数据值,例如针对触摸传感器的浮点型x,y坐标。
[0310] 在实施方式中,微处理器将包括位置数据和取向数据的数据从MMID无线地传送至主机处理。MMID具有用于将数据通过接入点2309传送至网络的射频发射器和接收器(TX/RX)2308。该无线电链路可以利用任何无线协议(例如,蓝牙,802.11,无线USB,专用解决方案、Nordic半导体nRF24L01低功率无线电解决方案等)。该接入点可以将所接收到的数据流通过局域网(例如,有线网络10/100/1000BaseT,802.11等)或其它接口(例如USB等)传送至一个或更多个主机。
[0311] 图24是根据实施方式的跟踪环境中的MMID的框图。示出了相对于跟踪环境2400的MMID 2404。如上所述,MMID正在与基站2401进行通信,但是MMID能够与跟踪环境2400中的任何数目的不同类型的电子装置和/或电子装置的组合进行通信。跟踪环境不限于特定大小,这是因为随着射频通信信道的范围可以与AC磁场的范围不同,能够提供具有线圈的额外的AC磁场发生器2405/2406/2408来创建额外的跟踪信标。这些信标能够在不同频率处操作和/或在不同时间处发送。当MMID的用户离开场发生器2402并且朝发生器2405移动时,MMID将利用任一瞬时较 强信号来确定位置和取向,但是MMID仍利用接入点2403将该数据传送回网络。
[0312] 当MMID移出接入点2403的范围并且朝基站2406移动时,MMID将无线电链路与基站2406中的接入点相关联。在磁场发生器和数据接入点中漫游的能力最终使得MMID被用在任意大的跟踪环境中。注意,接入点和磁场发生器2407/2408不需要在相同位置。当接入点和场发生器两者均具有通过局域网与一个或更多个主机装置进行通信的装置时,频率发生器能够自动地操作2405以便更易于安装。
[0313] 接下来是利用实施方式的MMID的人的操作示例。在操作期间,操作者站在三联格式(triptych-format)宽屏投影屏幕(约两米高四米宽)前一定距离(例如十英尺);1.5米宽的桌子立于其紧前方。该桌子本身也是由安装在紧上方的天花板上的投影仪所处理的投影表面。操作者将具有三角形横截面的MMID(其“i”平面侧指向上方)舒适地持在其右手中。当她将MMID对准前屏幕以及前屏幕附近时,部分透明的图形光标指示MMID指向向量与屏幕表面的交点。输入系统的高帧速率和低等待时间有助于因果即时性的强感应:当操作者改变MMID目标时,光标在前屏幕上的相应移动不明显滞后;其感觉是挥动手电筒或激光指点器的感觉。
[0314] 由操作者使用的应用是产品包装预览系统,并且该产品包装预览系统被配置成以与许多类似应用相同的方式来使用MMID;从而MMID模态对于操作者是非常熟悉的;模式“i”使得能够以充分详细水平来直接操纵应用元素;模式“ii”执行元素的元操纵(例如,以组的水平);并且模式“iii”允许三维操纵。在任何时刻,光标的出现不仅反映当前模式,而且在视觉上指示切换MMID模式所必要的轴旋转的方向。目前,示出MMID顺时针旋转的光标将使模态转换至“ii”,而逆时针旋转将转换至模式“iii”。
[0315] 布置在前屏幕三联的左第三联上的是小对象分组阵列。操作者顺时针轴向旋转MMID直到下一面朝上在其拇指下为止,从而光标改变以指示模态转换至状态“ii”。她将MMID对准左,并且随着光标移过每个对象分组,突出边界逐渐增强,随后随着光标离开该组的凸包(convex hull)该突出边界逐渐减弱。操作者使得光标能够停留在特定分组上,并且然后按下她拇指紧下方的按钮。光标指示已经获取该对象分组,并且随着她朝前屏幕中心挥动MMID,该分组移动以便于跟踪光标。当操作者将微型分组移至她正前方位置时,释放按钮。该分组快速扩展以充满前屏幕第三 中心的全部范围,展示各种形状的塑料瓶集合以及“宠物能量饮料”的文本指示。
[0316] 操作者再次绕其长轴顺时针旋转MMID,基于此,光标改变以指示现在正在运行模式“iii”,从而3D操纵被激活。操作者将光标对准形如戴发饰的狮子狗的腿的特定球根状瓶子,从而视觉上突出该瓶子;然后操作者按下按钮。系统现在进入直接操纵模式,在该模式中MMID的平移和旋转控制正在被渲染的虚拟空间中的所选对象的平移和旋转。因此,当操作者朝自己拖动MMID(直接沿前屏幕的几何法线)时,该瓶子变大,逼近虚拟相机。类似地,MMID的左右移动翻译成所渲染的瓶子的左右移动(沿屏幕的横轴),并且MMID的上下平移导致瓶子的垂直平移。将能够针对每个操作者定制的适当缩放比例因子应用于这些平移,使得MMID的适度移动实现虚拟对象的较大移动;从而在不超过操作者的舒适的手移动范围的情况下,使得图形/虚拟环境的全部范围是可访问的。
[0317] 应用类似的缩放比例函数以将MMID取向映射至所渲染的瓶子的绝对旋转位置。在本示例中,操作者的偏好指定四倍放大,使得MMID绕任何轴的九十度旋转导致虚拟对象的全三百六十度旋转(90度乘以四(4)结果为360度)。这确保了当操作者从每个可能角的优越位置检查瓶子时,基于腕部和基于臂部的MMID旋转保持在舒适范围内。因此,例如当她向上旋转MMID以将其绕本身x轴翻转九十度从而使得MMID从指向前变为指向上时,该瓶子绕屏幕本身的x轴执行全旋转,当MMID达到完全向上姿态(attitude)时该瓶子返回其初始方向。注意,只要MMID按钮保持被按下,则应用适当的锁模效应:在不使MMID切换至模式“i”的情况下,操作者可以在绕MMID长轴将MMID顺时针旋转一百七十度(产生虚拟对象的五百一十度“屏中”旋转)。
[0318] 当操作者释放MMID按钮时,从直接操纵释放所渲染的瓶子并且保留其瞬时位置和旋转。如果在按钮释放的时刻,MMID处于通常对应于除“iii”之外的MMID模式的旋转姿态中,则在实际实现模式切换之前,操作者被准许一秒的时间滞后(视觉上表示为屏上光标的图形状态的部分);如果操作者将MMID旋转返回至对应于模式“iii”的姿态,则保持直接3D操纵模式。然后她可以通过将光标叠加至球根状瓶子上面并且再次按下按钮来执行额外的位置和姿态调整;如果作为替代她将光标对准不同瓶子,则该对象将受到她的操纵。
[0319] 操作者最终将MMID切换至模式“ii”,并且利用与通过其她将瓶子 分组移至中心屏幕的拖拽模态相同的拖拽模态,从而将调色板从右边屏幕移至中心屏幕;当她释放按钮时,调色板扩展并将自身定位至球根状瓶子侧边。然后她旋转MMID以选择模式“i”并且操纵调色板的选择界面;当已经选择了她期望的深红色色调时,她按下按钮并且将色样从调色板向下向左拖拽,直到其覆盖形成球根状瓶子的透明材料为止。当她释放按钮时,应用该颜色并且瓶子的材料采用透明的深红色。
[0320] 仍然在模式“i”中,操作者将MMID直接指向球根状瓶子,作为响应,该瓶子突出显示,并且按下按钮,以向下挥动MMID从而将瓶子图像从前屏幕拖拽至她紧前方的桌子表面。她释放该按钮并且从而瓶子,从而将该瓶子留在桌子上。然后操作者旋转回模式“ii”并且将MMID向前指向其它宠物能量饮料瓶的集合;她按下按钮并且立即向左轻弹MMID,几分之一秒之后释放按钮。瓶子的集合突然向左移动,并随其移动而尺寸减小,直到其以其开始的整体比例停留在位置中。然后操作者选择不同分组的宠物护理产品,如之前一样将其移至中心显示区以便于选择、检查并修改选项之一。最终她将所选对象添加至桌面显示。操作者继续该策展(curatorial)过程。
[0321] 在某点处,操作者做出选择以通过利用简单的几何编辑器(也是从在前屏幕三联的右边第三联上呈现的工具集合拖来的)来修改宠物按摩油罐的物理几何形状。为清楚起见,除了关于两个MMID的同时使用之外,在此省略在该编辑器的使用中所涉及的许多操纵的描述。在本示例中,操作者使用在她左手中持有的第二MMID,以通过使用一个MMID来捕获罐的几何形状的上部并且使用另一个MMID来捕获罐的底部(两个MMID均在模式“iii”中)来扭动该罐(初始是具有矩形横截面的简单挤压形状)。在从而顶部和底部分别“贴附”的情况下,操作者以反方向旋转MMID;这引入围绕该罐的主轴的线性扭动。操作者完成这些几何形状修改并且将编辑模块返回至右边显示;她将所修改的罐添加至桌面的成长分类。
[0322] 最终桌面上存在的十几个正在被渲染的对象,并且前向中心显示再次为空—操作者使模式“ii”将最后分组向左弹(并且调色板向右)。然后她将仍在模式“ii”中的MMID指向桌面,但是她的对准避开那里渲染的产品;作为替代,她按下右按钮并且用MMID描绘圆形轨迹,如同围绕所显示对象来绘制曲线栅栏形状。作为响应,系统将分组操作应用于之前的相异的渲染产品,组织它们的布局并符合它们的相对尺寸。最终,操作者 使用模式“ii”拖拽以将图形“输送管”的输入孔径从右边显示弹性地延伸至中心;然后她获得桌面的定制产品集合,将其向上拖拽至中心屏幕,并且将其放置在输送管口中。该管摄取该集合并且将其拉回至右边显示;该集合将被输送至操作者的同事,该同事希望查看她的工作并利用其构建宠物商店通道的交互式可视化。
[0323] 可替选实施方式的MMID包括具有矩形外形因子的壳体。该可替选实施方式的指点器例如是五英寸长,一又二分之一英寸宽且二分之一英寸高,但是在下文中许多其它尺寸和/或配置也是可以的。MMID包括在下文详细描述的光学跟踪标签。MMID不包括电子设备如在主机系统环境中运行的处理软件,但实施方式不限于此。
[0324] 用户最自然地持有指点器,使得长轴用于指向用户环境中的对象(包括虚拟对象)。能够绕长轴旋转该指点器以在两个模态取向(例如,模式i和ii)之间进行转换。即使仅存在两个模式,仍可以有四个模态转换,这是因为系统能够区别转换期间旋转的方向:从模式i至模式ii的转换/顺时针;从模式i至模式ii的转换/逆时针;从模式ii至模式i的转换/顺时针;从模式ii至模式i的转换/逆时针。因为利用上述MMID,所以在输入处理软件中跟踪这些旋转转换,且这些旋转转换能够经受滞后锁定。
[0325] 光学标签安装在指点器的“前”部(例如,前半部分)上,例如在从用户的手向外延伸的区域中,但不限于此。在该指点器的两侧的每一侧上,安装两个标签。每一侧上最靠前的标签位置固定。每一侧上最靠后的标签定位在靠前标签后面的一定距离(例如,五(5)厘米)处并且根据相同轴来对齐和定向。该后标签被贴附到装有弹簧的滑动机构(与指点器的长轴对齐的平移方向),使得用户的拇指可以向前推动该机制,以将两个标签之间的距离减小约一厘米。
[0326] 当两个标签之间的距离是五厘米时,输入处理软件将装置的逻辑按钮状态解释为状态(0)。为了实现向状态(1)的转换,将该后标签移动一定距离以更接近前标签(例如,移至前标签的4.2厘米内)。仅当标签之间的距离超过4.8厘米时,触发转换回按钮状态(1)。这类似于应用于装置的主要(旋转)模式转换的滞后。并且该滞后的大小是可配置的。
[0327] 在光学跟踪的MMID的实施方式中,当许多点在标签上对齐时,使用光学跟踪标签。这些点可以是覆盖有例如回射器的小球,使得IR跟踪系统(下文描述)能够确定被贴标签的对象的位置和取向。在该被标记的对象是输入MMID的情况下,可以期望提供用于跟踪系统的装置以确定 用户何时已经提供非几何的状态变化输入(例如,按下按钮)。
[0328] 各种可替选实施方式的MMID利用红外(IR)发光二极管(LED)(IR LED)操作,以提供基于用户输入的在某些状态下仅相机可见的跟踪点。这些可替选实施方式的MMID包括电池和由输入按钮控制的LED驱动电路。图25A和图25B示出了根据实施方式的具有IR LED的输入状态。该实施方式的标签包括大量回射点2502(示出为固态实心点)以及两个IR LED 2503和2504。在图25A中,示出了没有按下MMID上的按钮的状态下的标签,并且IR LED 2503在未点亮状态,而IR LED 2504在点亮状态。在图25B中,用户已经按下MMID上的按钮,并且作为响应,IR LED 2503在点亮状态而IR LED 2504在未点亮状态。光学处理系统检测两个标签的不同并且根据两个标签的状态来确定用户意图。
[0329] 图26A和图26B示出了根据另一可替选实施方式的具有IR LED的MMID的输入状态。在该实施方式中,仅切换一个LED。因此,参照图26A,当用户尚未按下按钮时LED 2604处于未点亮状态中。在图26B中,用户已经按下按钮,从而点亮LED 2604。
[0330] 利用类似途径的其它方法也是可用的。在一个可替选实施方式中,利用LED构造完整标签,并且该标签的存在或不存在提供用户输入。在另一实施方式中,创建重叠(偏移例如0.5cm)或相邻的两个相同标签。点亮一个标签或另一个标签并且确定该标签相对于另一标签的位置,使得能够确定用户的输入状态。
[0331] 其它可替选实施方式的MMID能够组合EMF跟踪与标签跟踪的使用。这些可替选实施方式使用如本文中描述的各种类型的标签来将EMF跟踪方面与标签跟踪的方面相组合。
[0332] 另一可替选实施方式的MMID包括与两个红外光源相结合使用的控制器,其中一个红外光源定位于用户前面,而另一个红外光源位于用户后面。这两个光源每个具有三个独立的红外发射器,并且每个源的发射器被配置成不同图案。该实施方式的MMID利用惯性跟踪,包括两个模式并且包括如上所述的多个机械输入按钮。
[0333] 可以认为该实施方式的MMID是支持两个模态取向并且具有由控制器相对于其环境的方向取向所确定的模式的 WiiTM远程控制装置的修改。该WiiTM控制器是用于在 WiiTM平台上玩视频游戏的小装置以及相关联的红外光源。控制器利用一
组低准确度的加速度计惯 性地跟踪其空间中的运动。由于在数值积分期间累积的误差,该加速度计的准确性不足以提供超过零点几秒的微细的位置和取向数据,所以也使用光学跟踪系统(结合光源部件)。从而WiiTM控制器的光学跟踪系统进一步包括能够以二维图像平面来定位四个亮的红外光源的内部朝前相机。从而,相机被嵌入跟踪装置中,并且被光学定位的对象是位置固定的环境参照物。通过测量环境中的已知红外光源的所感知的尺寸和位置,可以确定控制器指向的方向并且对控制器距这些光源的距离做三角测量。该红外跟踪技术可以视为本文所描述的跟踪技术的倒置,这是因为本文的实施方式的红外跟踪技术使用置于环境中的相机来光学地定位布置于装置、表面、手套以及其它对象上的点。
[0334] 在 WiiTM控制台的典型应用中,控制器总是指向显示屏幕。将红外光源置于显示屏幕以上或以下,从而给控制器提供相对屏幕的取向。相反地,实施方式的控制器与两个红外光源相结合使用,一个红外光源定位在用户前面,而另一个红外光源定位在用户后面。这两个光源每个具有三个单独的红外发射器并且每个光源的发射器被配置成不同图案。
[0335] 实施方式的控制器通过蓝牙无线电与运行在主机系统上的输入处理软件或部件通信。输入处理软件标识检测到哪个发射器图案,并因此标识控制器正在指向前还是指向后。根据该向前/向后确定获得两个模态取向。在模态(i)中,将控制器定向为向前。在模态(ii)中,将控制器定向为向后。在每个情况下,用户逻辑上是指向前的。用户通过将控制器回转“返回前面”来控制模式。这与上述的实施方式相反,在上述的实施方式中,模式控制是装置的长轴“滚动”。实施方式的控制器可以包括提供声音输出的嵌入式扬声器、若干光源以及振动(或“摇动”)输出。
[0336] 根据本说明书,本文所描述的实施方式的大量修改是可以的。实施方式的控制器可以例如具有两个相机,在装置的每个端上具有一个相机,从而避免需要两个光源。除空间、图案之外,该光源可以通过定时来区分。
[0337] 本文中描述的实施方式包括一种系统,所述系统包括被贴附到多个对象的多个标签。所述多个标签包括多个特征,使得每个标签包括至少一个特征。系统包括多个传感器。多个传感器的位置限定包括多个对象的空间操作环境(SOE)。多个传感器检测多个特征。系统包括在处理器上运行的自适应跟踪部件(ATC)。所述ATC从多个传感器中的每个传感器接收由相应传感器检测到的与多个对象中的每个对象对应的特征数据。ATC通过对来自多个传感器的特征数据进行整合来生成并维持多个对象与 SOE之间的关系的相干模型。
[0338] 本文中描述的实施方式包括系统,所述系统包括:被贴附到多个对象的多个标签,其中,多个标签包括多个特征,使得每个标签包括至少一个特征;多个传感器,其中,多个传感器的位置限定包括多个对象的空间操作环境(SOE),其中,多个传感器检测多个特征;以及在处理器上运行的自适应跟踪部件(ATC),其中,所述ATC从多个传感器中的每个传感器接收由相应传感器检测到的与多个对象中的每个对象对应的特征数据,其中,ATC通过对来自多个传感器的特征数据进行整合来生成并维持多个对象与SOE之间的关系的相干模型。
[0339] 相干模型包括多个对象之间的空间关系。
[0340] 相干模型包括多个对象的位置、取向和运动中的至少一个。
[0341] 相干模型包括多个对象的位置、取向和运动。
[0342] SOE包括ATC的虚拟空间,其中,ATC生成虚拟空间与包括SOE的物理空间之间的符合性(conicidence)。
[0343] 传感器从至少一个标签检测包括至少一个标签相对于传感器的位置和取向的姿态。
[0344] 姿态包括六自由度(DOF)姿态。
[0345] 多个对象包括身体、身体的附肢、装置、衣服、手套、显示装置、家具中的至少一个。
[0346] 相干模型的原点是相对于多个传感器中的特定传感器而限定的。
[0347] 相干模型的原点是相对于多个标签中的特定标签而限定的,其中,特定标签具有相对于SOE的固定姿态。
[0348] 相干模型的原点是相对于多个传感器中的特定传感器和多个标签中的特定标签而限定的,其中,特定标签具有相对于SOE的固定姿态。
[0349] 多个标签中的每个标签包括由多个传感器检测和定位的至少一个特征。
[0350] 每个标签包括标签设定信息。
[0351] 每个标签包括身份信息。
[0352] 每个标签包括姿态信息。
[0353] 每个标签包括标签设定信息、身份信息和姿态信息中的至少一个。
[0354] 每个标签包括标签设定信息、身份信息和姿态信息。
[0355] 标签的投影图像包括标签设定。
[0356] 至少一个特征包括至少一个标记。
[0357] 标签设定使投影图像中的至少一个点与至少一个对应标记相关。
[0358] 标签的投影图像包括身份。
[0359] 至少一个特征包括标签上的多个标记。
[0360] 身份将多个标签中的第一标签与多个标签中的第二标签区别开。
[0361] 标签的投影图像包括姿态信息。
[0362] 姿态信息包括平移信息和旋转信息。
[0363] 平移信息包括三自由度平移。
[0364] 旋转信息包括三自由度旋转。
[0365] 姿态信息使标签的位置和取向与SOE的位置和取向相关。
[0366] 每个传感器与SOE中的感测体积对应。
[0367] 每个传感器估计感测体积内的每个标签的姿态。
[0368] 姿态包括标签的位置。
[0369] 姿态包括标签的取向。
[0370] 姿态包括标签的位置和取向。
[0371] 位置和取向是相对于每个相应传感器的。
[0372] 每个传感器的感测体积与多个传感器中的至少一个其它传感器的感测体积至少部分地交叠。
[0373] 多个传感器的组合感测体积是毗连的。
[0374] 特征数据是同步的。
[0375] ATC针对多个传感器中的每个传感器生成相对于SOE的姿态的姿态模型。
[0376] 姿态包括六自由度(DOF)姿态。
[0377] 当多个传感器全部都在一瞬间检测第一标签时,ATC生成多个传感器之间的空间关系。
[0378] ATC使用空间关系来更新相干模型。
[0379] ATC相对于多个传感器中的特定传感器而限定相干模型的原点。
[0380] ATC相对于多个标签中的特定标签而限定相干模型的原点,其中,特定标签具有相对于SOE的固定姿态。
[0381] ATC相对于多个传感器中的特定传感器和多个标签中的特定标签而限定相干模型的原点,其中,特定标签具有相对于SOE的固定姿态。
[0382] 针对每个传感器确定正确的姿态模型。
[0383] 由传感器在多个时间点处跟踪标签,并且针对标签生成多个姿态模型。
[0384] 针对多个姿态模型生成多个置信量度,并且基于多个置信量度对多个姿态模型进行剔选以去除任何不一致的姿态模型。
[0385] 由多个传感器在多个时间点处跟踪标签,并且针对标签开发多组姿态模型,其中,每组姿态模型包括与每个时间点对应的多个姿态模型。
[0386] 针对每组姿态模型中的多个姿态模型生成多个置信量度,并且基于多个置信量度对多组姿态模型进行剔选以去除任何不一致的姿态模型。
[0387] 平均假设包括每组姿态模型中的多个姿态模型的平均。
[0388] 平均假设近似于针对对应标签的真实姿态的最大似然性估计。
[0389] 平均假设包括位置分量。
[0390] 平均假设包括旋转分量。
[0391] 平均假设包括位置分量和旋转分量。
[0392] 位置分量由下面的第一等式给出:
[0393]
[0394] 其中,tn是对假设 进行测量的时间点,并且m是在时间点处检测标签的传感器的数目。
[0395] 通过如下方式来对旋转分量取近似:将第一等式应用于形成SOE内的旋转坐标系的基的单位方向向量;并且重新归一化单位方向向量。
[0396] 通过将校正因子应用于平均假设来生成经平滑的假设。
[0397] 当至少一个额外的传感器检测标签时生成经平滑的假设,其中,至少 一个额外的传感器先前未检测过标签。
[0398] 当多个传感器中的至少一个传感器停止检测标签时生成经平滑的假设,其中,至少一个额外的传感器先前已检测过标签。
[0399] 经平滑的假设包括位置分量。
[0400] 经平滑的假设包括旋转分量。
[0401] 经平滑的假设包括位置分量和旋转分量。
[0402] 位置分量由下面的第二等式给出:
[0403]
[0404] 其中,tn是对假设 进行测量的时间点,m是在该瞬间检测标签的传感器的数目,并且c是校正因子。
[0405] 校正因子被应用于平均假设,其中,校正因子是被定义为下式的向量:
[0406]
[0407] 其中,k是选自于0与1之间的常数。
[0408] 常数k的值被选择为当贴附有标签的对象经历精细操纵和粗糙运动时为相干模型提供相对高的准确度。
[0409] 常数k被选择为远小于1。
[0410] 常数k被选择为使得经校正的假设xi+ci相对接近经平滑的假设。
[0411] 常数k被选择为大于零,以确保经平滑的假设在每个时间段被迫朝向平均假设。
[0412] 常数k的值变化为使得当在时间段之间标签的运动大时,经平滑的假设相对地在空间上准确。
[0413] 当在时间段期间标签的运动小时,常数k的值被选择为相对小,使得经平滑的假设维持相对较大的空间和时间平滑度。
[0414] 通过如下方式来对旋转分量取近似:将第二等式应用于形成SOE内的旋转坐标系的基的单位方向向量;并且重新归一化单位方向向量。
[0415] 多个传感器中的至少一个传感器实时地测量多个对象中的至少一个对象的对象姿态。
[0416] 至少一个传感器包括被贴附到对象的多个传感器。
[0417] 至少一个传感器被贴附到至少一个对象。
[0418] ATC自动地适应于对象姿态的改变。
[0419] ATC生成至少一个对象的物理尺寸和姿态的模型。
[0420] 姿态包括六自由度(DOF)姿态。
[0421] 至少一个传感器被贴附到至少一个对象的周界上的至少一个位置,其中,至少一个对象是显示装置。
[0422] ATC自动地确定至少一个位置。
[0423] 至少一个位置的位置数据是人工输入的。
[0424] 至少一个传感器实时地测量显示装置姿态。
[0425] ATC自动地适应于显示装置姿态的改变。
[0426] 多个标签中的至少一个标签被贴附到多个对象中的至少一个对象。
[0427] 至少一个标签包括被贴附到对象的多个标签。
[0428] 多个传感器使用至少一个标签的信息来实时地测量至少一个对象的对象姿态。
[0429] ATC自动地适应于对象姿态的改变。
[0430] ATC生成至少一个对象的物理尺寸和姿态的模型。
[0431] 姿态包括六自由度(DOF)姿态。
[0432] 至少一个标签被贴附到至少一个对象的周界上的至少一个位置,其中,至少一个对象是显示装置。
[0433] ATC自动地确定至少一个位置。
[0434] 至少一个位置的位置数据是人工输入的。
[0435] 多个传感器使用至少一个标签的信息来实时地测量显示装置姿态。
[0436] ATC自动地适应于显示装置姿态的改变。
[0437] 多个传感器中的至少一个传感器实时地测量多个对象中的至少一个对象的对象姿态,其中,至少一个对象是被标记的对象。
[0438] 使用被贴标签的对象来标记被标记的对象,其中,被贴标签的对象包括被贴附到对象的标签。
[0439] 当被贴标签的对象被放置成与至少一个对象上的至少一个位置直接 接触时,标记被标记的对象。
[0440] 至少一个位置包括被标记的对象上的多个位置。
[0441] 多个传感器测量被贴标签的对象相对于被标记的对象和SOE的姿态。
[0442] 在多个位置处感测到的被贴标签的对象的姿态表示被标记的对象的姿态。
[0443] 当被贴标签的对象指向至少一个对象上的多个位置时,标记被标记的对象。
[0444] 多个传感器测量被贴标签的对象相对于被标记的对象和SOE的姿态。
[0445] 被贴标签的对象的姿态表示被标记的对象的姿态。
[0446] 被贴标签的对象的姿态表示在与被贴标签的对象指向多个位置之时对应的时间点处被标记的对象的姿态。
[0447] 至少一个特征包括光学基准。
[0448] 至少一个特征包括发光二极管(LED)。
[0449] 至少一个特征包括红外(IR)发光二极管(LED)。
[0450] 至少一个特征包括包含回射材料的标记。
[0451] 至少一个特征包括如下标记:该标记包括包含至少一个颜色的至少一个区域。
[0452] 至少一个特征包括多个共线标记。
[0453] 标签包括线性局部标签(LPT),所述LPT包括多个共线标记。
[0454] 多个共线标记传达标签的身份。
[0455] 标签包括多个LPT,其中,每个LPT包括多个共线标记。
[0456] 标签包括位于衬底上的与第二LPT相邻的第一LPT,其中,第一LPT包括第一组共线标记,并且第二LPT包括第二组共线标记。
[0457] 第一组共线标记包括四(4)个共线标记,并且第二组共线标记包括四(4)个共线标记。
[0458] 多个传感器包括至少一个相机,并且特征数据包括由至少一个相机获取的投影图像,其中,投影图像包括标签。
[0459] 系统包括搜索投影图像并且在投影图像中标识第一LPT。
[0460] 系统包括将线与第一LPT中的第一组共线标记相拟合。
[0461] 系统包括计算第一组共线标记的交比,其中,所述交比是第一组共线标记中的多个共线标记之间的成对距离的函数。
[0462] 系统包括将交比与与一组已知LPT对应的一组交比相比较。
[0463] 系统包括:搜索投影图像并且标识第二LPT;以及将第一LPT和第二LPT组合成标签候选。
[0464] 系统包括计算与标签候选对应的一组姿态假设。
[0465] 姿态假设包括六自由度(DOF)姿态。
[0466] 系统包括计算作为一组姿态假设中的姿态的重新投影误差的置信量度。
[0467] 置信量度由下面的等式给出:
[0468]
[0469] 其中,p是标签中的共线标记的数目, 是共线标记在投影图像中的所测得的像素位置, 是共线标记在标签的坐标系中的对应理想位置,P是表示姿态的矩
阵,并且 是至少一个相机的相机模型。
[0470] 至少一个相机收集投影图像的图像坐标与多个共线标记之间的对应关系数据。
[0471] 系统包括相机校准应用,其中,使用相机校准应用来对至少一个相机的固有参数进行建模,其中,固有参数包括焦比、光心、偏斜度和镜头畸变中的至少一个。
[0472] 至相机校准应用的输入包括对应关系数据。
[0473] 处理器根据经由多个传感器接收到的特征数据来自动地检测身体的姿势,其中,多个对象包括身体,其中,特征数据是在时间和空间中的一点处身体的瞬时状态的绝对三度空间位置数据,检测包括聚集特征数据并且仅使用特征数据标识姿势。
[0474] 控制包括控制以下中的至少一个:在处理器上运行的应用的功能;由 处理器显示的部件;以及耦接到处理器的部件。
[0475] 处理器将姿势翻译成姿势信号、并且响应于姿势信号来控制耦接到处理器的部件。
[0476] 检测包括标识姿势,其中,所述标识包括标识身体的一部分的姿态和取向。
[0477] 翻译包括将姿势的信息翻译成姿势记号。
[0478] 姿势记号表示姿势词汇,并且姿势信号包括姿势词汇的通信。
[0479] 姿势词汇以文本形式表示身体的运动学联动机构的瞬时姿态状态。
[0480] 姿势词汇以文本形式表示身体的运动学联动机构的取向。
[0481] 姿势词汇以文本形式表示身体的运动学联动机构的取向的组合。
[0482] 姿势词汇包括表示身体的运动学联动机构的状态的字符串。
[0483] 控制所述部件包括通过将姿势映射到三度空间对象来同时以六自由度控制三度空间对象,其中,多个对象包括三度空间对象。
[0484] 三度空间对象被呈现在耦接到处理器的显示装置上。
[0485] 三度空间对象耦接到处理器。
[0486] 系统包括通过将多个姿势映射到三度空间对象的多个对象平移来控制三度空间对象的移动。
[0487] 检测包括检测对象的被外推出的位置何时与虚拟空间相交,其中,虚拟空间包括在耦接到处理器的显示装置上描绘出的空间。
[0488] 控制所述部件包括当被外推出的位置与虚拟空间中的虚拟对象相交时控制虚拟对象。
[0489] 控制所述部件包括响应于虚拟空间中的被外推出的位置来控制虚拟对象在虚拟空间中的位置。
[0490] 控制所述部件包括响应于姿势来控制虚拟对象在虚拟空间中的姿态(attitude)。
[0491] 本文中所述的实施方式包括一种方法,该方法包括:将多个标签贴附到多个对象。所述多个标签包括多个特征,使得每个标签包括至少一个特征。该方法包括:通过定位多个传感器来限定空间操作环境(SOE)。所述SOE包括多个对象。该方法包括:利用多个传感器来检测多个特征。 该方法包括:从多个传感器中的每个传感器接收由相应传感器检测到的与多个对象中的每个对象对应的特征数据。该方法包括:通过对来自多个传感器的特征数据进行整合来生成并维持多个对象与SOE之间的关系的相干模型。
[0492] 本文中所述的实施方式包括一种方法,该方法包括:将多个标签贴附到多个对象,多个标签包括多个特征,使得每个标签包括至少一个特征;通过定位多个传感器来限定空间操作环境(SOE),其中,SOE包括多个对象;利用多个传感器来检测多个特征;从多个传感器中的每个传感器接收由相应传感器检测到的与多个对象中的每个对象对应的特征数据;并且通过对来自多个传感器的特征数据进行整合来生成并维持多个对象与SOE之间的关系的相干模型。
[0493] 相干模型包括多个对象之间的空间关系。
[0494] 相干模型包括多个对象的位置、取向和运动中的至少一个。
[0495] 相干模型包括多个对象的位置、取向和运动。
[0496] SOE包括ATC的虚拟空间,其中,所述ATC生成虚拟空间与包括SOE的物理空间之间的符合性。
[0497] 检测包括从至少一个标签检测包括至少一个标签相对于传感器的位置和取向的姿态,其中,姿态包括六自由度(DOF)姿态。
[0498] 多个对象包括身体、身体的附肢、装置、衣服、手套、显示装置、家具中的至少一个。
[0499] 该方法包括:相对于多个传感器中的特定传感器而限定相干模型的原点。
[0500] 该方法包括:相对于多个标签中的特定标签而限定相干模型的原点,其中,特定标签具有相对于SOE的固定姿态。
[0501] 该方法包括:相对于多个传感器中的特定传感器和多个标签中的特定标签而限定相干模型的原点,其中,特定标签具有相对于SOE的固定姿态。
[0502] 多个标签中的每个标签包括由多个传感器检测和定位的至少一个特征。
[0503] 每个标签包括标签设定信息、身份信息和姿态信息中的至少一个。
[0504] 每个标签包括标签设定信息、身份信息和姿态信息。
[0505] 标签的投影图像包括标签设定,其中,至少一个特征包括至少一个标记,其中,标签设定使投影图像中的至少一个点与至少一个对应标记相关。
[0506] 标签的投影图像包括身份,其中,至少一个特征包括标签上的多个标记,其中,身份将多个标签中的第一标签与多个标签中的第二标签区别开。
[0507] 标签的投影图像包括姿态信息,其中,姿态信息包括平移信息和旋转信息。
[0508] 平移信息包括三自由度平移,其中,旋转信息包括三自由度旋转。
[0509] 姿态信息使标签的位置和取向与SOE的位置和取向相关。
[0510] 该方法包括:利用每个传感器估计感测体积内的每个标签的姿态,其中,每个传感器与SOE中的相应感测体积对应。
[0511] 姿态包括标签的位置和标签的取向中的至少一个。
[0512] 姿态包括标签的位置和标签的取向,其中,位置和取向是相对于每个相应传感器的。
[0513] 每个传感器的感测体积与多个传感器中的至少一个其它传感器的感测体积至少部分地交叠,其中,多个传感器的组合感测体积是毗连的。
[0514] 特征数据是同步的。
[0515] 该方法包括:针对多个传感器中的每个传感器生成相对于SOE的姿态的姿态模型,其中,姿态包括六自由度(DOF)姿态。
[0516] 该方法包括:当多个传感器全部都在一瞬间检测第一标签时,生成多个传感器之间的空间关系;并且使用空间关系来更新相干模型。
[0517] 该方法包括:相对于多个标签中的特定标签而限定相干模型的原点,其中,特定标签具有相对于SOE的固定姿态。
[0518] 该方法包括:相对于多个传感器中的特定传感器和多个标签中的特定标签而限定相干模型的原点,其中,特定标签具有相对于SOE的固定姿态。
[0519] 该方法包括:针对每个传感器确定正确的姿态模型。
[0520] 该方法包括:由传感器在多个时间点处跟踪标签,并且针对标签生成多个姿态模型。该方法包括:针对多个姿态模型生成多个置信量度,并且基于多个置信量度对多个姿态模型进行剔选以去除任何不一致的姿态模 型。
[0521] 该方法包括:由多个传感器在多个时间点处跟踪标签,并且针对标签开发多组姿态模型,其中,每组姿态模型包括与每个时间点对应的多个姿态模型。
[0522] 该方法包括:针对每组姿态模型中的多个姿态模型生成多个置信量度,并且基于多个置信量度对多组姿态模型进行剔选以去除任何不一致的姿态模型。
[0523] 平均假设包括每组姿态模型中的多个姿态模型的平均,其中,平均假设近似于针对对应标签的真实姿态的最大似然性估计。
[0524] 平均假设包括位置分量和旋转分量中的至少一个。
[0525] 平均假设包括位置分量和旋转分量。
[0526] 该方法包括:使用第一等式确定位置分量:
[0527]
[0528] 其中,tn是对假设 进行测量的时间点,并且m是在时间点处检测标签的传感器的数目,包括通过如下方式来对旋转分量取近似:将第一等式应用于形成SOE内的旋转坐标系的基的单位方向向量;并且重新归一化单位方向向量。
[0529] 该方法包括:通过将校正因子应用于平均假设来生成经平滑的假设。
[0530] 该方法包括:当至少一个额外的传感器检测标签时生成经平滑的假设,其中,至少一个额外的传感器先前未检测过标签。
[0531] 该方法包括:当多个传感器中的至少一个传感器停止检测标签时生成经平滑的假设,其中,至少一个额外的传感器先前已检测过标签。
[0532] 经平滑的假设包括位置分量和旋转分量中的至少一个。
[0533] 经平滑的假设包括位置分量和旋转分量。
[0534] 该方法包括:使用第二等式确定位置分量:
[0535]
[0536] 其中,tn是对假设 进行测量的时间点,m是在该瞬间检测标签 的传感器的数目,并且c是校正因子。
[0537] 该方法包括:将校正因子应用于平均假设,其中,校正因子是被定义为下式的向量:
[0538]
[0539] 其中,k是选自于0与1之间的常数。
[0540] 该方法包括:将常数k的值选择为当贴附有标签的对象经历精细操纵和粗糙运动时为相干模型提供相对高的准确度。
[0541] 该方法包括:将常数k选择为远小于1。
[0542] 该方法包括:将常数k选择为使得经校正的假设xi+ci相对接近经平滑的假设。
[0543] 该方法包括:将常数k选择为大于零,以迫使经平滑的假设在每个时间段朝向平均假设。
[0544] 该方法包括:使常数k的值变化为使得在在时间段之间标签相对大的运动期间,经平滑的假设保持相对地在空间上准确。
[0545] 该方法包括:在标签的运动相对小的时间段期间,将常数k的值选择为相对小,使得经平滑的假设维持相对较大的空间和时间平滑度。
[0546] 该方法包括:通过如下方式来对旋转分量取近似:将第二等式应用于形成SOE内的旋转坐标系的基的单位方向向量;并且重新归一化单位方向向量。
[0547] 该方法包括:使用多个传感器中的至少一个传感器来实时地测量多个对象中的至少一个对象的对象姿态。
[0548] 至少一个传感器包括被贴附到对象的多个传感器。
[0549] 至少一个传感器被贴附到至少一个对象。
[0550] 该方法包括:自动地适应于对象姿态的改变。
[0551] 该方法包括:生成至少一个对象的物理尺寸和姿态的模型,其中,姿态包括六自由度(DOF)姿态。
[0552] 该方法包括:将至少一个传感器贴附到至少一个对象的周界上的至少一个位置,其中,至少一个对象是显示装置。
[0553] 该方法包括:自动地确定至少一个位置。
[0554] 至少一个位置的位置数据是人工输入的。
[0555] 该方法包括:使用至少一个传感器实时地测量显示装置姿态;并且自动地适应于显示装置姿态的改变。
[0556] 该方法包括:将多个标签中的至少一个标签贴附到多个对象中的至少一个对象。
[0557] 至少一个标签包括被贴附到对象的多个标签。
[0558] 该方法包括:利用多个传感器、使用至少一个标签的信息来实时地测量至少一个对象的对象姿态。
[0559] 该方法包括:自动地适应于对象姿态的改变。
[0560] 该方法包括:生成至少一个对象的物理尺寸和姿态的模型,其中,姿态包括六自由度(DOF)姿态。
[0561] 该方法包括:将至少一个标签贴附到至少一个对象的周界上的至少一个位置,其中,至少一个对象是显示装置。
[0562] 该方法包括:自动地确定至少一个位置。
[0563] 至少一个位置的位置数据是人工输入的。
[0564] 该方法包括:利用多个传感器、使用至少一个标签的信息来实时地测量显示装置姿态;并且自动地适应于显示装置姿态的改变。
[0565] 该方法包括:利用多个传感器实时地测量多个对象中的至少一个对象的对象姿态,其中,至少一个对象是被标记的对象。
[0566] 该方法包括:使用被贴标签的对象来标记被标记的对象,其中,被贴标签的对象包括被贴附到对象的标签。
[0567] 该方法包括:当被贴标签的对象被放置成与至少一个对象上的至少一个位置直接接触时,标记被标记的对象。
[0568] 该方法包括:利用多个传感器测量被贴标签的对象相对于被标记的对象和SOE的姿态,其中,至少一个位置包括被标记的对象上的多个位置,其中,在多个位置处感测到的被贴标签的对象的姿态表示被标记的对象的姿态。
[0569] 该方法包括:当被贴标签的对象指向至少一个对象上的多个位置时,标记被标记的对象。
[0570] 该方法包括:利用多个传感器测量被贴标签的对象相对于被标记的对 象和SOE的姿态,其中,被贴标签的对象的姿态表示被标记的对象的姿态,其中,被贴标签的对象的姿态表示在与被贴标签的对象指向多个位置之时对应的时间点处被标记的对象的姿态。
[0571] 至少一个特征包括以下中的至少一个:光学基准;发光二极管(LED);红外(IR)发光二极管(LED);包含回射材料的标记;包括包含至少一个颜色的至少一个区域的标记;以及多个共线标记。
[0572] 标签包括线性局部标签(LPT),所述LPT包括多个共线标记。
[0573] 该方法包括:利用多个共线标记传达标签的身份。
[0574] 标签包括多个LPT,其中,每个LPT包括多个共线标记,其中,标签包括位于衬底上的与第二LPT相邻的第一LPT,其中,第一LPT包括第一组共线标记,并且第二LPT包括第二组共线标记。
[0575] 多个传感器包括至少一个相机,并且特征数据包括由至少一个相机获取的投影图像,其中,投影图像包括标签。
[0576] 该方法包括:搜索投影图像并且在投影图像中标识第一LPT;并且将线与第一LPT中的第一组共线标记相拟合。
[0577] 该方法包括:计算第一组共线标记的交比,其中,交比是第一组共线标记中的多个共线标记之间的成对距离的函数;并且将交比与与一组已知LPT对应的一组交比相比较。
[0578] 该方法包括:搜索投影图像并且标识第二LPT;将第一LPT和第二LPT组合成标签候选;并且计算与标签候选对应的一组姿态假设。
[0579] 该方法包括:计算作为一组姿态假设中的姿态的重新投影误差的置信量度。
[0580] 置信量度由下面的等式给出:
[0581]
[0582] 其中,p是标签中的共线标记的数目, 是共线标记在投影图像中的所测得的像素位置, 是共线标记在标签的坐标系中的对应理想位置,P是表示姿态的矩
阵,并且 是至少一个相机的相机模型。
[0583] 至少一个相机收集投影图像的图像坐标与多个共线标记之间的对应 关系数据。
[0584] 该方法包括相机校准应用,其中,使用相机校准应用来对至少一个相机的固有参数进行建模,其中,固有参数包括焦比、光心、偏斜度和镜头畸变中的至少一个。
[0585] 相机校准应用的输入包括对应关系数据。
[0586] 该方法包括:根据经由多个传感器接收到的特征数据来自动地检测身体的姿势,其中,多个对象包括身体,其中,特征数据是在时间和空间中的一点处身体的瞬时状态的绝对三度空间位置数据,检测包括聚集特征数据并且仅使用特征数据标识姿势。
[0587] 控制包括控制应用的功能、显示部件和远程部件中的至少一个。
[0588] 该方法包括:将姿势翻译成姿势信号,并且响应于姿势信号来控制部件。
[0589] 检测包括标识姿势,其中,所述标识包括标识身体的一部分的姿态和取向。
[0590] 翻译包括将姿势的信息翻译成姿势记号,其中,姿势记号表示姿势词汇,并且姿势信号包括姿势词汇的通信。
[0591] 姿势词汇以文本形式表示以下中的至少一个:身体的运动学联动机构的瞬时姿态状态;身体的运动学联动机构的取向;以及身体的运动学联动机构的取向的组合。
[0592] 姿势词汇包括表示身体的运动学联动机构的状态的字符串。
[0593] 控制所述部件包括通过将姿势映射到三度空间对象来同时以六自由度控制三度空间对象,其中,多个对象包括三度空间对象。
[0594] 该方法包括:在显示装置上呈现三度空间对象。
[0595] 该方法包括:通过将多个姿势映射到三度空间对象的多个对象平移来控制三度空间对象的移动。
[0596] 检测包括检测对象的被外推出的位置何时与虚拟空间相交,其中,虚拟空间包括在显示装置上描绘出的空间。
[0597] 控制所述部件包括当被外推出的位置与虚拟空间中的虚拟对象相交时控制虚拟对象。
[0598] 本文中所述的实施方式包括一种系统,所述系统包括被贴附到多个对 象的多个标签。所述多个标签包括多个特征,使得每个标签包括至少一个特征。系统包括多个传感器。所述多个传感器的位置限定包括多个对象的空间操作环境(SOE)。系统包括在处理器上运行的自适应跟踪部件(ATC)。所述ATC从多个传感器中的每个传感器接收由相应传感器检测到的与多个对象中的每个对象对应的特征数据。所述特征数据是在时间和空间中的一点处相应身体的瞬时状态的绝对三度空间位置数据。ATC通过对来自多个传感器的特征数据进行整合来生成并维持多个对象与SOE之间的关系的相干模型。ATC根据特征数据自动地检测多个对象中的至少一个对象的姿势。检测包括仅使用特征数据标识姿势。
[0599] 本文中所述的实施方式包括一种系统,所述系统包括:被贴附到多个对象的多个标签,其中,多个标签包括多个特征,使得每个标签包括至少一个特征;多个传感器,其中,多个传感器的位置限定包括多个对象的空间操作环境(SOE);以及在处理器上运行的自适应跟踪部件(ATC),其中,ATC从多个传感器中的每个传感器接收由相应传感器检测到的与多个对象中的每个对象对应的特征数据,其中,特征数据是在时间和空间中的一点处相应身体的瞬时状态的绝对三度空间位置数据,其中,ATC通过对来自多个传感器的特征数据进行整合来生成并维持多个对象与SOE之间的关系的相干模型,其中,ATC根据特征数据自动地检测多个对象中的至少一个对象的姿势,检测包括仅使用特征数据标识姿势。
[0600] 相干模型包括多个对象之间的空间关系。
[0601] 相干模型包括多个对象的位置、取向和运动中的至少一个。
[0602] ATC生成虚拟空间与包括SOE的物理空间之间的符合性。
[0603] 传感器从至少一个标签检测包括至少一个标签相对于传感器的位置和取向的姿态,其中,姿态包括六自由度(DOF)姿态。
[0604] 多个对象包括身体、身体的附肢、装置、衣服、手套、显示装置、家具中的至少一个。
[0605] 相干模型的原点是相对于多个传感器中的特定传感器而限定的。
[0606] 相干模型的原点是相对于多个标签中的特定标签而限定的,其中,特定标签具有相对于SOE的固定姿态。
[0607] ATC的输出控制以下中的至少一个:应用的功能;显示部件;以及耦接到处理器的远程部件。
[0608] 系统包括将姿势翻译成姿势信号、并且响应于姿势信号来控制耦接到处理器的部件。
[0609] 检测包括标识姿势,其中,标识包括标识对象的一部分的姿态和取向。
[0610] 翻译包括将姿势的信息翻译成姿势记号,其中,姿势记号表示姿势词汇,并且姿势信号包括姿势词汇的通信。
[0611] 姿势词汇以文本形式表示以下中的至少一个:对象的运动学联动机构的瞬时姿势状态;对象的运动学联动机构的取向;以及对象的运动学联动机构的取向的组合。
[0612] 姿势词汇包括表示对象的运动学联动机构的状态的字符串。
[0613] 控制所述部件包括通过将姿势映射到三度空间对象来同时以六自由度控制三度空间对象,其中,多个对象包括三度空间对象。
[0614] 系统包括在显示装置上呈现三度空间对象。
[0615] 系统包括通过将多个姿势映射到三度空间对象的多个对象平移来控制三度空间对象的移动。
[0616] 检测包括检测对象的被外推出的位置何时与虚拟空间相交,其中,虚拟空间包括在显示装置上描绘出的空间。
[0617] 控制所述部件包括当被外推出的位置与虚拟空间中的虚拟对象相交时控制虚拟对象。
[0618] 系统包括:检测源装置的事件,其中,事件包括姿势,并且源装置包括在处理器上运行的ATC;生成包括规定事件的装置事件数据和事件的状态信息的至少一个数据序列,其中,装置事件数据和状态信息是具有与源装置的应用对应的类型的特定于类型的数据;以及形成数据容器以包括至少一个数据序列,具有数据结构的数据容器包括至少一个数据序列的独立于应用的表示。
[0619] 至少一个数据序列的生成包括:生成包括第一相应装置事件数据的第一相应数据组;生成包括第二相应状态信息的第二相应数据组;以及形成第一数据序列以包括第一相应数据组和第二相应数据组。
[0620] 第一相应数据组的生成包括形成第一相应数据组以包括源装置的标识数据,所述标识数据包括标识源装置的数据。
[0621] 至少一个数据序列的生成包括:生成包括第一相应装置事件数据的第 一相应数据组;生成包括第二相应状态信息的第二相应数据组;以及形成第二数据序列以包括第一相应数据组和第二相应数据组。
[0622] 第一相应数据组的生成包括生成第一相应数据组偏移,其中,第一相应数据组偏移指向第二数据序列中的第一相应数据组。
[0623] 第二相应数据组的生成包括生成第二相应数据组偏移,其中,第二相应数据组偏移指向第二数据序列中的第二相应数据组。
[0624] 第一相应数据组是描述列表,所述描述列表包括对数据的描述。
[0625] 装置事件数据是表示定型数据的被贴标签的字节序列,其中,装置事件数据包括类型头和特定于类型的数据布局。
[0626] 状态信息是表示定型数据的被贴标签的字节序列,其中,状态信息包括类型头和特定于类型的数据布局。
[0627] 系统包括生成至少一个偏移。系统包括形成数据容器以包括至少一个偏移。
[0628] 系统包括生成具有第一可变长度的第一偏移。第一偏移指向至少一个数据序列中的第一数据序列的装置事件数据。
[0629] 系统包括生成具有第二可变长度的第二偏移。第二偏移指向至少一个数据序列中的第一数据序列的状态信息。
[0630] 系统包括使用至少一个偏移中的第一偏移来形成通过数据容器的第一代码路径。系统包括使用至少一个偏移中的第二偏移来形成通过数据容器的第二代码路径。第一代码路径和第二代码路径是不同的路径。
[0631] 第一偏移和第二偏移中的至少一个包括元数据,所述元数据包括与应用的上下文对应的特定于上下文的元数据。
[0632] 系统包括生成包括数据容器的长度的头。系统包括形成数据容器以包括头。
[0633] 系统包括将数据容器传递到耦接到处理器的储存库。
[0634] 系统包括检测第二源装置的第二事件。系统包括在储存库中搜索与第二事件对应的数据容器。
[0635] 系统包括标识数据容器与第二事件之间的对应关系。系统包括响应于所述标识,从储存库提取数据容器。系统包括响应于数据容器的内容,代表第二源装置执行与在代表第二源装置的第二事件对应的处理操作,其 中,源装置与第一类型的应用对应,并且第二源装置与第二类型的第二应用对应。
[0636] 储存库耦接到多个应用,储存库包括与多个应用对应的多个数据容器,储存库通过多个应用来提供对多个数据容器的访问,其中,多个应用中的至少两个应用是不同的应用。
[0637] 储存库提供多个数据容器的状态缓存。
[0638] 储存库提供多个数据容器的线性排序。
[0639] 数据结构是未定型的。
[0640] 数据容器的数据结构提供装置事件数据和状态信息的独立于平台的表示以及对装置事件数据和状态信息的独立于平台的访问。
[0641] 多个标签中的每个标签包括由多个传感器检测和定位的至少一个特征。
[0642] 每个标签包括标签设定信息、身份信息和姿态信息中的至少一个。
[0643] 标签的投影图像包括标签设定,其中,至少一个特征包括至少一个标记,其中,标签设定使投影图像中的至少一个点与至少一个对应标记相关。
[0644] 标签的投影图像包括身份,其中,至少一个特征包括标签上的多个标记,其中,身份将多个标签中的第一标签与多个标签中的第二标签区别开。
[0645] 标签的投影图像包括姿态信息。
[0646] 姿态信息包括平移信息和旋转信息。
[0647] 姿态信息使标签的位置和取向与SOE的位置和取向相关。
[0648] 每个传感器与SOE中的感测体积对应,其中,每个传感器估计感测体积内的每个标签的姿态。
[0649] 姿态包括标签的位置和取向中的至少一个。
[0650] 每个传感器的感测体积与多个传感器中的至少一个其它传感器的感测体积至少部分地交叠,其中,多个传感器的组合感测体积是毗连的。
[0651] ATC针对多个传感器中的每个传感器生成相对于SOE的姿态的姿态模型。
[0652] 当多个传感器全部都在一瞬间检测第一标签时,ATC生成多个传感器之间的空间关系,其中,ATC使用空间关系来更新相干模型。
[0653] ATC相对于多个标签中的特定标签而限定相干模型的原点,其中,特定标签具有相对于SOE的固定姿态。
[0654] ATC相对于多个传感器中的特定传感器和多个标签中的特定标签而限定相干模型的原点,其中,特定标签具有相对于SOE的固定姿态。
[0655] 针对每个传感器确定正确的姿态模型。
[0656] 由传感器在多个时间点处跟踪标签,并且针对标签生成多个姿态模型,其中,针对多个姿态模型生成多个置信量度,并且基于多个置信量度对多个姿态模型进行剔选以去除任何不一致的姿态模型。
[0657] 由多个传感器在多个时间点处跟踪标签,并且针对标签开发多组姿态模型,其中,每组姿态模型包括与每个时间点对应的多个姿态模型。
[0658] 针对每组姿态模型中的多个姿态模型生成多个置信量度,并且基于多个置信量度对多组姿态模型进行剔选以去除任何不一致的姿态模型。
[0659] 平均假设包括每组姿态模型中的多个姿态模型的平均,其中,平均假设近似于针对对应标签的真实姿态的最大似然性估计。
[0660] 平均假设包括位置分量和旋转分量中的至少一个。
[0661] 通过将校正因子应用于平均假设来生成经平滑的假设。
[0662] 当至少一个额外的传感器检测标签时生成经平滑的假设,其中,至少一个额外的传感器先前未检测过标签。
[0663] 当多个传感器中的至少一个传感器停止检测标签时生成经平滑的假设,其中,至少一个额外的传感器先前已检测过标签。
[0664] 经平滑的假设包括位置分量和旋转分量中的至少一个。
[0665] 多个传感器中的至少一个传感器实时地测量多个对象中的至少一个对象的对象姿态。
[0666] ATC自动地适应于对象姿态的改变。
[0667] ATC生成至少一个对象的物理尺寸和姿态的模型。
[0668] 至少一个传感器被贴附到至少一个对象的周界上的至少一个位置,其中,至少一个对象是显示装置。
[0669] ATC自动地确定至少一个位置。
[0670] 至少一个传感器实时地测量显示装置姿态,并且ATC自动地适应于 显示装置姿态的改变。
[0671] 多个标签中的至少一个标签被贴附到多个对象中的至少一个对象。
[0672] 多个传感器使用至少一个标签的信息来实时地测量至少一个对象的对象姿态。
[0673] ATC自动地适应于对象姿态的改变。
[0674] ATC生成至少一个对象的物理尺寸和姿态的模型。
[0675] 至少一个标签被贴附到至少一个对象的周界上的至少一个位置,其中,至少一个对象是显示装置。
[0676] ATC自动地确定至少一个位置。
[0677] 多个传感器使用至少一个标签的信息来实时地测量显示装置姿态。
[0678] ATC自动地适应于显示装置姿态的改变。
[0679] 多个传感器中的至少一个传感器实时地测量多个对象中的至少一个对象的对象姿态,其中,至少一个对象是被标记的对象。
[0680] 使用被贴标签的对象来标记被标记的对象,其中,被贴标签的对象包括被贴附到对象的标签。
[0681] 当被贴标签的对象被放置成与至少一个对象上的至少一个位置直接接触时,标记被标记的对象。
[0682] 至少一个位置包括被标记的对象上的多个位置。
[0683] 多个传感器测量被贴标签的对象相对于被标记的对象和SOE的姿态,其中,在多个位置处感测到的被贴标签的对象的姿态表示被标记的对象的姿态。
[0684] 当被贴标签的对象指向至少一个对象上的多个位置时,标记被标记的对象。
[0685] 多个传感器测量被贴标签的对象相对于被标记的对象和SOE的姿态,其中,被贴标签的对象的姿态表示在与被贴标签的对象指向多个位置之时对应的时间点处被标记的对象的姿态。
[0686] 至少一个特征包括以下中的至少一个:光学基准;发光二极管(LED);红外(IR)发光二极管(LED);包含回射材料的标记;包括包含至少一个颜色的至少一个区域的标记;以及多个共线标记。
[0687] 标签包括线性局部标签(LPT),LPT包括多个共线标记,其中,多个共线标记传达标签的身份。
[0688] 标签包括多个LPT,其中,每个LPT包括多个共线标记。
[0689] 标签包括位于衬底上的与第二LPT相邻的第一LPT,其中,第一LPT包括第一组共线标记,并且第二LPT包括第二组共线标记。
[0690] 多个传感器包括至少一个相机,并且特征数据包括由至少一个相机获取的投影图像,其中,投影图像包括标签。
[0691] 系统包括:搜索投影图像并且在投影图像中标识第一LPT;以及将线与第一LPT中的第一组共线标记相拟合。
[0692] 系统包括:计算第一组共线标记的交比,其中,交比是第一组共线标记中的多个共线标记之间的成对距离的函数;以及将交比与与一组已知LPT对应的一组交比相比较。
[0693] 系统包括:搜索投影图像并且标识第二LPT;将第一LPT和第二LPT组合成标签候选;计算与标签候选对应的一组姿态假设;以及计算作为一组姿态假设的姿态的重新投影误差的置信量度。
[0694] 至少一个相机收集投影图像的图像坐标与多个共线标记之间的对应关系数据。
[0695] 系统包括相机校准应用,其中,使用相机校准应用来对至少一个相机的固有参数进行建模,其中,固有参数包括焦比、光心、偏斜度和镜头畸变中的至少一个。
[0696] 至相机校准应用的输入包括对应关系数据。
[0697] 本文中所描述的方法和系统包括处理系统和/或在处理系统下运行和/或与处理系统相关联。如现有技术已知的,该处理系统包括基于处理器的装置的任何集合或共同操作的计算装置,或者处理系统或装置的部件。例如,处理系统可以包括便携式计算机、在通信网络中进行操作的便携式通信装置和/或网络服务器中的一个或更多个。便携式计算机可以是选自于个人计算机、蜂窝电话、个人数字助理、便携式计算装置和便携式通信装置中的大量装置和/或装置的组合中的任一种,但是不限于此。处理系统可以包括大型计算机系统内的部件。
[0698] 实施方式的处理系统包括至少一个处理器和至少一个存储器或子系统。处理系统还可以包括或耦接到至少一个数据库。如本文中广泛使用的 术语“处理器”指的是任何逻辑处理单元,例如一个或更多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)等。处理器和存储器可以整体地集成在单个芯片上、分布在大量芯片或者主机系统的部件中、和/或通过某个算法组合来设置。本文中所述的方法可以在软件算法、程序、固件、硬件、部件、电路中的一个或更多个或者在其任意组合上实现。
[0699] 可以将实施本文中所述的系统和方法的系统部件定位在一起或分离的位置。因此,实施本文中所述的系统和方法的系统部件可以是单个系统、多个系统和/或地理上分离的系统的部件。这些部件也可以是单个系统、多个系统和/或地理上分离的系统的子部件或子系统。这些部件可以耦接到主机系统或系统(该系统耦接到主机系统)的一个或更多个其它部件。
[0700] 通信路径耦接系统部件,并且包括用于在部件之间传送或传递文件的任何介质。通信路径包括无线连接、有线连接和混合无线/有线连接。通信路径还包括到包括局域网(LAN)、城域网(MAN)、广域网(WAN)、专用网络、局间网络或后端网络和因特网的网络的耦合或连接。此外,通信路径包括比如软盘硬盘驱动和CD-ROM盘的可移动固定介质以及闪速RAM、通用串行总线(USB)连接、RS-232连接、电话线、总线和电子邮件消息。
[0701] 除非上下文另外清楚地要求,在说明书中,应当以与排他或者穷尽的意义相反的包含的意义;也就是说,以“包括、但不限于”的意义,解释词语“包括”、“包含”等。使用单数或复数的词语也分别包括复数或单数。另外,词语“本文中”、“下文中”、“上面”、“下面”和具有类似含义的词语作为整体参考本申请,而非参考本申请的任何特定部分。当在引用两个或更多个项的列表中使用词语“或者”时,该词语覆盖所有以下对该词语的解释:列表中的项中的任何一个,列表中的所有项以及列表中的项的任何组合。
[0702] 上面对处理环境的实施方式的描述不旨在是穷尽的,或者将系统和方法局限于公开的精确形式。虽然为了进行说明,这里描述了处理环境的具体实施方式和示例,但是相关领域技术人员将认识到,可以在系统和方法的范围内,进行各种等价变形。这里提供的处理环境的技术不仅可以用于上述的系统和方法,还可以应用于其它处理系统和方法。
[0703] 可以组合上述的各个实施方式的元素和动作,以提供其它实施方式。可以根据上面的详细描述,对处理环境进行这些和其它改变。
相关专利内容
标题 发布/更新时间 阅读量
用于加压服装的连指手套 2020-05-11 399
可延长的手套 2020-05-12 850
一种指力训练用手套 2020-05-13 634
新型手套 2020-05-13 142
一种多功能手套 2020-05-13 937
可调整手套 2020-05-14 694
手套式弹簧连杆指间橘子辅助采摘器 2020-05-12 57
新型连指手套 2020-05-11 640
一种连指手套 2020-05-11 320
一种袖口可内置的连指手套 2020-05-12 394
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈