用户控制装置的在空间中的三维跟踪的制作方法

文档序号:12461558阅读:423来源:国知局
用户控制装置的在空间中的三维跟踪的制作方法

技术领域

本发明涉及空间跟踪领域,尤其是三维跟踪。



背景技术:

跟踪用户运动的系统,提供了与诸如游戏环境之类的其他环境进行虚拟交互的能力。然而,目前的系统在能力方面是有限的。例如,总运动可能会被跟踪,但是对于缓慢运动或等速运动,目前的系统缺少精度。在其它系统中,两个维度可以被精确地跟踪,而第三个维度则不能。还有其他系统可能容易受到来自磁性装置的干扰,而可能无法自始至终地识别真北。最后,有些系统利用大外形的外壳,此外壳可能不允许精确的运动控制。



技术实现要素:

本发明的实施方式涉及跟踪出现在三维(3D)场景内的目标。实施方式中,系统包括为显示该三维场景而配置的显示器。该系统可包括为操纵三维场景中的目标而配置的用户控制装置。用户控制装置(如触针),可能至少包括一个视觉指示点。实施方式中,至少一个跟踪传感器(例如,摄像机)可以被配置为捕获用户控制装置的视觉指示点。处理子系统可被配置为从跟踪传感器中接收所捕获的视觉指示点,并且也可以被配置为接收来自用户控制装置的附加信息(例如,来自加速度计,陀螺仪,磁强计等的测量信息)。处理子系统还可进一步被配置为在捕获的视觉指示点和附加信息的基础上来确定用户控制装置的位置和方向。处理子系统也可以被配置为在基于所确定的用户控制装置的位置和方向的基础上给显示器提供一个更新的三维场景。更新的三维场景可以将用户控制装置的物理空间之间的精度反映到三维场景的图形空间为x轴、y轴和z轴每轴都在1毫米以内。

附图说明

在结合以下附图来考虑下述首选实施方式的详细描述时,可以更好地理解本发明,其中:

图1和图2示出了被配置为用来实现各种实施方式的示例性系统;

图3是说明触针跟踪系统的一个实施方式的方框图;

图4和图5是根据不同实施方式的触针说明;

图6是用来说明跟踪触针三维坐标所用方法的一个实施方式的流程图;

图7A-图7B是所描述的实施方式的示例性说明。

虽然本发明容易受到各种修改和替代形式,其具体实施方式是采用图中所示的例子来给出的,并在本文中对其进行详细描述。但是,应该理解的是,此处的附图和详细描述,并不意在将本发明限制于所公开的特定形式,而是相反,意在包含在所附权利要求书所定义的本发明的精神和范围内的所有修改、等价物和替代品。

具体实施方式

术语

以下是在本应用中所用到的术语表;

本说明书包括涉及“一个(one)实施方式”或“一个(an)实施方式”。短语“在一个(one)实施方式中”或“在一个(an)实施方式中”的出现并不一定指的是同一实施方式。可以采用任何与本发明一致的适当方法,对特定的特征、结构或特性进行组合。

存储介质---各种类型存储设备中的任意一种。术语“存储介质”意在包含诸如CD-ROM、软盘104或磁带设备之类的安装介质、诸如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等类的计算机系统存储器或随机存取存储器、诸如闪存、磁力介质等类的非易失性存储器、硬盘驱动器或光存储器、寄存器或其他相似类型的存储元件等。存储介质可包括其他类型的存储器及其组合。此外,存储介质可位于第一台计算机中,在该计算机中程序被执行,或者也可以位于通过诸如因特网之类的网络连接到第一台计算机上的第二台不同的计算机中。在后一种情况中,第二台计算机可向第一台计算机提供用来执行的程序指令。术语“存储介质”可包括两个或两个以上的存储介质,这些介质可能驻留在不同位置,例如在通过网络连接的不同计算机中。

载体介质--如上文所述的存储介质,与诸如总线、网络之类的物理传输介质、和/或传输诸如电信号、电磁信号或数字信号之类信号的其他物理传输介质一样。

计算机系统—各种类型的计算或处理系统中的任意一种,包括个人计算机系统(PC)、主机计算机系统、工作站、网络设备、因特网设备、个人数字助理(PDA)、智能手机、电视系统、网格计算系统,或其他设备或设备的组合。一般情况下,术语“计算机系统”可被广义地定义为包含至少具有一个处理器的任何设备(或设备的组合),该处理器执行那些来自存储介质的指令。

视点(Viewpoint)---这个术语具有它在计算机图形学/摄像机领域普通意义的全部范围。例如,术语“视点”可以指视图中的单个点(例如,为一只眼睛)或视图中的一对点(例如,为一双眼睛)。因此,视点可以指从一只眼睛看的视图,或可以指从一双眼睛看的视图中的两个点。“单一视点”可以指定由视图的唯一单个点所指的视点,而且“成对视点”或“立体视点”可以指定由视图中的两个点(而不是一个点)所指的视点。在视点是用户的视点的地方,这个视点,可以被称为出射点(见下文)。术语“虚拟视点”是指虚拟表示或三维场景内的视点。

视点(Eyepoint)—单只眼睛或一双眼睛的物理视点。上述视点可以对应于人的视点。例如,人的视点都有一个对应的视点。

垂直透视—垂直透视是为与显示表面大致垂直的视点而给出的一种透视。“大致垂直”是指90度或其变化,如89度和91度、85~95度或者不会导致所渲染的场景产生明显失真的任何变化。垂直透视可以是中心透视,例如,具有单个(或中心)消失点。如本文所用,垂直透视可以适用于单个图像或立体图像。当对立体图像使用时(例如,根据垂直透视呈现立体图像),可以根据垂直透视但需要采用不同的单一视点来给出立体图像的每张图像。

水平透视—水平透视是从不与显示表面垂直的视点而给出的一种透视,更特别的是,术语“水平透视”指的是使用参照对应的视点大致成45度角的渲染平面而给出的一种透视。该透视图可能是针对参照站立视点透视可被水平定位(例如平行于桌面或地面)的显示面。“大致45度”可能指的是45度或其变化,诸如44度和46度、40~50度、或者可能对所渲染的场景产生最小失真的任何变化。如本文所用的,水平透视可适用于单一图像或立体图像。当对立体图像使用时(根据水平透视呈现立体图像),可根据水平透视但需要使用不同的单一视点来给出立体图像的每张图像。

位置—(或虚拟或真实)目标的位置或坐标。例如,位置可包括所定义空间内的x、y和z坐标。按照所需要的,位置可以是相对位置或绝对位置。例如,当确定视点的方位时,位置也可以包括偏航、俯仰和滚动信息。

包括—该术语是开放式的。正如所附权利要求书中所用的,该术语并不排除额外的结构或步骤。考虑到陈述“一种系统,包括显示器…”的权利要求。这样的权利要求并不阻止该设备包括附加的组件(例如,一个电压源、光源等)。

配置为---各种单元、回路或其他组件可被描述或要求为“配置为”执行任务。在这样的上下文中,“配置为”被用用作意味着结构的意思,通过指示那些单元/电路/组件包括在运行期间执行那些任务的结构(例如,电路)。像这样的,即使指定的单元/电路/组件不是正在运行的(例如,不处于打开状态)时候,单元/电路/组件也可以被说成被配置为执行任务。被使用“配置为”语言的单元/电路/组件包括硬件—例如,电路、对实施这些操作可执行的存储器存储程序指令等。单元/电路/组件被“配置为”执行一个或多项任务的叙述是明显地不打算调用那种单元/电路/组件的35U.S.C.§112,第六段。此外,“配置为”可以包括通用结构(例如,通用电路),该通用结构由软件和/或固件(例如,FPGA或用于执行软件的通用处理器)来操作,以便按照能够执行在争论中的任务的方式来运行。

第一、第二、等---这些术语被用作名词之前的标志,而且,他们并不意味着任何类型的排序(例如,空间的、时间的、逻辑的等等)。例如,在具有多个跟踪传感器的系统中,术语“第一”传感器和“第二”传感器可以用来指任意两个传感器。换句话说,第一”传感器和“第二”传感器并不限于逻辑传感器0和1。

基于---该术语用来描述影响确定的一个或多个因素。该术语并不排除其他可能会影响确定的附加因素。也就是说,确定仅基于这些因素或至少部分地基于这些因素。考虑短语“基于B确定A”。而B可能是影响A的确定的一个因素,这样的短语并不排除A的确定也可以基于C。在其他情况下,A可以仅基于B的基础上来确定。

图1和图2—示例性系统

图1和图2给出了示例性系统,其被配置为执行下述各种不同的实施方式。

图1的实施方式中,计算机系统100可包括机箱110、显示器150A和显示器150B(可以共同被称为显示器150或“至少一个显示器”150)、键盘120、鼠标125、触针130、眼镜140、至少两个摄像机160、触针筒170。实施方式中,显示器150A和150B中至少一个是立体显示器。例如,实施方式中,两个显示器150A和150B都是立体显示器。

机箱110可包括各种计算机组件,如处理器、存储介质(例如,RAM,ROM,硬盘驱动器等)、图形电路、音频电路和如本文所述的那些其他执行计算机任务的电路。根据本发明的各种实施方式,存储介质可以存储一个或多个计算机程序或软件组件。例如,存储介质可以存储一个或多个图形引擎,这些图形引擎都是可执行的,以便执行本文所述的方法。存储介质还可以存储代表虚拟/图形空间的数据(例如,计算机模型),这些数据可用于通过显示器150投影出虚拟空间的三维场景。而且,如本文所述,存储介质可以存储软件,这些软件是可执行的,以便进行触针130的三维空间跟踪。此外,存储介质可以存储操作系统软件和其他用于运行计算机系统的软件。各种实施方式还可以包括接收或存储根据前面的对载体介质的描述来实施的指令和/或数据。

如上所示,计算机系统100可以被配置为使用显示器150A和/或显示器150B来显示一个三维(3D)场景(例如,通过立体图像)。计算机系统100也可以被配置为使用显示器150A,显示器150B,和/或其他显示器来显示三维场景的一个“视图”,正如以下更详细的描述。三维场景的“视图”指的是从三维场景内的视点来显示三维场景的一部分。三维场景内的视点可被称为“虚拟视点”。该视图可以是立体的,例如,可能会显示在立体显示器上。或者,该视图可以是单视场的(非立体的),而且可被显示在单象管显示器或立体显示器上。

应该注意,图1的实施方式仅是示例性的,而且可以设想为其它数目的显示器。例如,计算机系统100可以仅包括一个显示器或两个以上的显示器,或显示器可以按照与所示方式不同的方式来布置。在这个特定的实施方式中,显示器150A被配置为垂直显示器(它是垂直于用户的视线),而且显示器150B被配置为水平显示器(它是平行或倾斜于用户的视线)。垂直显示器150A可被用来(例如,通过由图形引擎发送的正在机箱110中执行的指令)提供根据垂直(或中心)透视呈现的图像,而且,显示器150B可用于(例如,通过图形引擎发送的正在机箱110中执行的指令)提供根据水平透视呈现的图像。本文中提供了水平透视和垂直透视的描述。此外,虽然显示器150被显示为平板显示器,它们还可以是任何类型能够显示图像的系统,例如,投影系统。

显示器150A和150B中的一个或两个都可能呈现(显示)供用户观看的立体图像。通过呈现立体图像,显示器150可以为用户呈现一个三维场景。此三维场景可以被称为一种错觉,因为实际提供的图像是二维的,但是通过用户对所提供图像的诠释,该场景被表达为三维场景。为了正确地查看这些立体图像(每只眼睛查看一张),用户可以佩戴眼镜140。眼镜140可以是色差眼镜、偏振光眼镜、快门眼镜、双凸透镜状眼镜等。使用立体眼镜,根据第一种颜色为第一只眼提供图像(而且,相应的镜片都有一个相应的滤色器),和根据第二种颜色将图像投射给第二只眼睛(而且相应的镜片都有一个相应的滤色器)。佩戴偏振光眼镜,使用正交偏振为每只眼睛提供图像,而且每个镜片具有相应的正交偏振,用来接收相应的图像。佩戴快门眼镜,每个镜片与由显示器150提供给左右眼的图像的交替同步。该显示器可提供两个同时偏振或按照所期望的交替方式(例如,按照顺序地)。因此,在左眼图像显示时间期间,左眼只允许看到左眼图像,而在右眼图像的显示时间期间,右眼只允许看到右眼图像。佩戴快门眼镜,图像在圆柱形的透镜元件或透镜元件的一个二维阵列上形成。可通过光学方法来提供立体图像,其中,通过使用棱镜,反射镜,透镜等光学装置,左眼图像和右眼图像只提供给相应的眼睛。也可以使用大凸透镜或大凹透镜来接收两个分别投射给用户的图像。

在一个实施方式中,眼镜140可以被用作位置输入设备,以便跟踪用户观看由系统100所提供的3D场景的视点。例如,眼镜140可以提供对确定用户的视点位置有用的信息,例如,通过三角测量。该位置输入设备可以包括红外线探测系统来探测观看者头部的位置,以便允许观看者头部运动的自由,或者使用光敏感检测系统。该输入设备的其它实施方式可以是用来检测观察者视点位置的三角测量方法,例如提供适用于本发明的头部跟踪目标的位置数据的至少两个传感器(例如,至少有两个CCD摄像机)。诸如键盘,鼠标,轨迹球,操纵杆或类似的输入设备可由观看者进行手动操作,以指示水平透视显示图像的正确显示。但是,任何用于跟踪用户头部位置或视点位置的方法都是设想的。因此,该三维场景可能会被渲染成使用户能以最小的失真来观看此三维场景(例如,因为它是基于用户的视点)。于是,通过使用位置输入设备,可将三维场景特别呈现给用户的视点。在一些实施方式中,可分别确定每个视点,或者确定一个单一视点,而且可以用偏移量来确定其他视点。

可以使用显示器150的位置/方向与用户的眼睛位置之间的关系,将虚拟/图形空间的一部分映射到系统100的物理空间上。本质上,物理空间和使用的组件都被映射到虚拟模型上,以便准确地渲染虚拟空间的三维场景。用于实施这样一个系统的实例,在通过引入美国专利申请号为11/098681、标题为“水平透视显示”(美国专利公开号为US 2005/0219694)而纳入本文的部分中进行描述。

一个或多个用户输入设备(例如,键盘120、鼠标125、触针130等)可被用来与所呈现的三维场景进行互动,诸如通过操作三维场景图像空间中的目标。例如,可使用用户控制设备130(作为触针而示出),或仅通过用户的手直接与三维场景中的虚拟目标进行互动(通过所观看的投影目标)。然而,这种直接的互动可能只能是三维场景中“开放空间”部分。因此,至少三维场景的一部分可以呈现在“开放空间”中,该“开放空间”在至少一个显示器的前面的或至少一个显示器的其他的外部。在一些实施方式中,三维场景的那部分可能会作为全息图而出现在显示器150表面的上方。例如,当使用水平显示器150B时,三维场景可被看作是盘旋在水平显示器的上方。但是,应当指出,三维场景的一部分也可作为出现在显示器表面的后面来呈现,这部分不在“开放空间”。因此,“开放的空间”指的是用户能够自由移动和与其互动的空间(例如,用户能将手放在该空间中),而不是一个用户不能自由移动也不能与其进行互动的空间(例如,在用户不能够把手放在该空间中,例如显示器表面以下)。这种“开放空间”可以被称为“自己动手的空间”,作为可能是显示器表面以下的“内部空间”的对照。因此,用户可以在开放的空间中与虚拟目标进行互动,因为虚拟目标接近用户自己的物理空间。内部空间位于观看表面的后面,而所呈现的目标则出现在物理观看设备的内部。因此,出现在内部空间内的三维场景目标不与用户共享同一物理空间,而且,目标因此不能直接地通过手或诸如触针130之类的手持工具进行物理操纵。也就是说,它们可以被间接操纵,例如,通过计算机鼠标、操纵杆、或手、手持工具或触针的虚拟表示。

在一些实施方式中,该开放空间的交互可通过在虚拟目标(例如,在虚拟/图形空间内)和被投影目标(例如,在物理空间内)之间具有1:1的对应关系来实现。因此,准确且有形的物理交互是通过允许用户用手或诸如触针130之类的手持式工具触摸和操作被投影目标来提供的。这种虚拟元件与其物理真实世界等价物之间的1:1对应,更详细地描述在美国专利公开第2005/0264858号,通过引入上述其全部内容而纳入本文。这种1:1的对应关系,可允许用户对三维场景中被投影的目标进行物理地直接访问和与其进行交互。这种1:1的对应关系,可以利用共同的物理参考平面的创建,以及用于导出其唯一x,y和z空间坐标的公式,从而将物理坐标环境与虚拟坐标环境联系起来。此外,这种1:1的对应关系可以允许虚拟目标的用户运动或其他交互(例如,通过触针130)在物理空间和所提供的空间中是相同的。然而,在用户的身体运动距离和在所提供的三维场景(例如,所提供的目标或虚拟触针的)中的相应运动之间存在一个比例的地方。可以设想其它实施方式。

如本文所用,立体三维环境中的目标可能是某些可见的或以相对稳定的方式呈现某种有形的形式的东西。目标的一个例子可能表示为苹果。苹果,作为一个计算机模型,可能作为处于最基本的状态中的数据而存在,具有在图形空间内所建立的三维目标的各种性质。然后,就可以根据被转化到图形空间的用户的视点,将这个苹果目标从计算机图形空间内以图形方式来呈现。目标可以具有形状和视觉质感,但是,可能没有必要采用具有质量的物体作为目标。它可以作为虚拟环境中的图像而存在,而且可能是立体渲染的结果,该立体渲染从图形空间内所识别的视点捕获两个渲染(例如,左、右视点)。目标的这两个渲染图(和图形空间的渲染视图内的任何场景方面)可使用立体显示系统来传输。实施方式中,图形空间苹果目标可以不具有实际质量,并可能无法作为物质目标而被感觉到,但是,它可以被间接地处理或操作。可以通过提供视觉环境的立体渲染和采用空间位置识别的方式来操作,例如,手持操作设备(例如,手写笔)的组合来实现处理或操纵。

本文可以使用操作来描述处理、管理、或在一些进程中使用的其他形式。在被投影的虚拟目标和使用立体声设备查看的上下文中,操作可能纯粹是虚拟的。因此,在一些实施方式中,一个目标可能没有必要被身体上的触摸来操作它。使用物理机械手(例如,手写笔)的物理空间与将被操作的目标被描述的图形空间之间可能存在相关性。使用一个或多个操纵装置,如一个手套或手写笔,可以对目标进行间接操作。操作目标的实例可包括拿起、在任何方向旋转、向前或向后移动、拆解等。这样的动作可以通过使用手帮助操作装置来间接进行。通过使用可通过立体显示设备呈现给用户观看的图像目标的立体渲染,人造空间可以被创建并可以被观看。用户可以将操纵装置安置在人造空间内与观看立体渲染目标一致的位置。该位置可被跟踪,并且可以与图像空间具有1:1的对应。通过物理空间中的操作装置与图形空间之间的1:1对应关系,可以建立空间相关性。然后,图形空间内的一致目标就可以被操作。同样的,空间的空间内的操作装置的动作可能适用于图形空间中的虚拟目标。如果该目标实际在空间空间内而且被操纵装置采取行动的话,操作可以允许目标被定位、被确定方向、被改变或被影响。操作目标在本文中可以被用来意味着实际处理一个目标,该目标处于一个以图形方式呈现的状态,而且可能会被使用立体显示器来观看。目标的解释可以出现在逻辑可以控制数据交互(例如,目标数据、触针跟踪数据等)的软件中。然后,该软件可指导场景渲染器来渲染场景的左眼图像和右眼图像,该场景包含能显示操作在目标上产生的影响的目标。虽然很多描述描述了操作目标,但是,一个以上的目标可以同时被操纵和/或被呈现。

在一些实施方式中,系统100可以包括一个或多个跟踪传感器(例如,摄像机)160,和在一些实施方式中的两个或多个摄像机160。图1示出了使用两个摄像机160的实施方式。摄像机160可以被用于拍摄系统100用户的图像、跟踪用户的运动、或跟踪用户的头部或眼睛。在一个实施方式中,摄像机160可以跟踪触针130的位置和方向。关于由两个或多个摄像机160所提供的触针130的位置和/或方向的信息,可与系统的其它附加信息(例如,触针本身以内的加速度计和/或陀螺仪)一起用来执行触针130的更精确的三维跟踪。摄像机160可以在空间上彼此分离,并被放置在一个可查看空间的位置,此空间包含用户将看到立体影像的地方。例如,每个摄像机可相对于预定的一个或多个显示器150位置和方向(例如,如图1所示,每个摄像机可以被嵌入在显示器1 50B中预定的位置和方向上)来定位。相机160也可以彼此分离地足够远,以便为视图的分离提供一个真正的三轴三角测量测定。系统100也可以包括用于存储触针130的盒子170。正如下面所讨论的,盒子170也可用来将触针的方向校准到已知的滚动、俯仰和偏航。盒子170可以处于相对于摄像机160一个固定的位置上。

在各种实施方式中,跟踪传感器160可以感测到用户控制设备130的一个视觉指示点。例如,一个单一的跟踪传感器可包括一个单一的具有多个光纤维束的传感器,通过每个纤维束捕获不同的视图(透视图),从而可捕获视觉指示点的多个图像,而每个图像具有视觉指示点的不同的视图。作为另一个例子,通过在轻微不同的时间来捕获视觉指示点,单个传感器可捕获多个不同的视图。仍然在其他例子中,一个以上的跟踪传感器可用来捕捉视觉指示点的多个不同视图。

如下所述,用户可能能够指定或以其他方式操纵三维场景中由显示器150呈现的虚拟视点。基于虚拟视点,三维场景的视图可以通过一个或多个显示器150或所需的其他显示器来显示。按照需要,三维场景的视图可以是立体的或单视场的。关于三维场景视图的更多细节将在下面提供。

存储在机箱110中并在其中执行的三维场景生成器可以被配置为动态地改变所显示的图像,该图像由显示器150提供。更具体地,三维场景生成器,可以根据用户视点及经由用户输入设备的操作等变化,来更新所显示的三维场景,这样的变化可能会在运行时动态地进行。三维场景生成器也可跟踪外围设备(例如,触针130或眼镜140),以确保外围设备与所显示的图像之间的同步。该系统还可以包括校正单元,以确保外围设备到所显示图像上的适当映射,以及被投影图像与存储在机箱110内存中的虚拟图像之间的适当映射。

在进一步的实施方式中,系统100(例如,显示器150)可以进一步包括图像放大/缩小输入设备、图像旋转输入设备、和/或图像移动设备,以允许观看者调整投影图像的视图。

这样,系统100可以呈现用户能与其进行实时交互的三维场景。该系统可以包括可呈现或传输开放空间内透视图像的实时电子显示屏150、可允许用户使用手控或手持工具与三维场景进行交互的外围设备130。系统100还可以允许所显示的图像进行放大、缩放、旋转和移动。或者,系统100甚至会显示一张新图像。

此外,虽然系统100被示为包括水平显示器150B,因为它模拟了用户在水平地面上的视觉经验,任何观察表面可以提供类似的三维错觉经历。例如,通过将水平透视图像投射到天花板表面上,三维场景看起来好像正悬挂在天花板上一样,或通过将水平透视图像投射到一个垂直墙面上,三维场景看起来像从墙上漂浮一样。而且,也仔细考虑了在显示器方向和透视(或系统100的任何其它配置)的任何变化。

图2示出了系统100的另一种实施方式,如图200A和200B所示。在本实施方式中,该系统可能是可折叠的和/或可移动的系统(例如,类似笔记本电脑或平板计算机),在该系统中用户可以使系统200打开(200A所示)或关闭(如图200B所示)。本实施方式中,水平显示器和垂直显示器可以由混合显示器混合。这样,显示系统200的显示器可看作是许多组合显示器,或能按照所需的进行水平投影和/或垂直投影的一个单一显示器。

示范性系统

目前公开的实施方式可以实现精确的触针跟踪以及从图形空间到显示空间的映射。本发明公开的实施方式,通过用户与图形空间的投影目标之间的交互,可以实现在物理空间和时间中共存的实时的由计算机生成的三维模拟。本发明公开的实施例也可以使用户能够更好地与非投影目标交互。在包括但不限于电子、计算机、生物测量学、医疗、教育、游戏、电影、科技、法律、金融、通讯、执法、国家安全、军事、平面媒体、电视、广告、贸易展览、数据可视化、计算机生成的现实、动画、CAD/CAE/CAM技术、生产力软件、操作系统和更多产业之类的许多产业中,这种改进性能是有用的。

图3-图5-触针跟踪系统

图3是示出触针跟踪系统一个实施方式的方框图。在图示的实施方式中,触针跟踪系统300包括用户控制设备(例如,触针)130、跟踪子系统390、处理器子系统340。触针130可以包括一个或多个物质上位于触针130上的视觉指示点(例如,光源)310,例如,位于触针130的外壳上的那些视点(见图4)。如图3所示,在一个实施方式中,触针130包括一个或多个(例如,图3中所示为两个)光源310。触针130还可以包括一个恒定方向确定机构,图中示为加速度计320,和场独立变化方向的机构,所示为陀螺仪330。加速度计320和陀螺仪330每个都可以被包括在触针130的外壳内。其他恒定方向确定机构和场独立变化方向机构可用于其它实施方式中。例如,恒定方向确定机构可能是恒定重力确定机构。除了或代替,GPS装置可以采用任一种机构。但是,为了便于说明,以加速度计320和陀螺仪330的形式来描述这些机构。跟踪子系统390可以包括至少一个跟踪传感器(例如,图示为2个摄像机)160,跟踪传感器被配置为捕获和跟踪视觉指示点310的透视图。处理器子系统340可以接收来自跟踪子系统390和触针130的信息,以便计算触针130的位置和方向。

实施方式中,跟踪子系统390包括两个摄像机160。摄像机160可置于用来查看感兴趣体积的地方,即,该区域至少包括用户可能会查看并与立体图像进行交互的地方。摄像机160可被放置于彼此分离地足够远,以便为真正的三轴三角测量确定提供足够地视图分离,并允许有视觉指示点的清晰视图,诸如光源310、触针130的。例如,可以以目间距或其他想要的距离来放置摄像机160。可以相对于预定义的显示器的位置和方向来安置摄像机160。即使触针130包括仅使用一个光源310时,使用两个摄像机160也可允许三轴空间定位精度。实施例中,每个摄像机160具有CMOS或CCD、在x方向和y方向中每个方向的像素间距为6μm的320×240像素传感器。摄像机160可以配有焦距为1.4毫米、视图区域为100度的镜头。此种实施方式可允许在光源310的位置移动,以便被解析到x、y和z方向每个方向都小于1毫米。同样地,方向可能被解析为滚动、俯仰和偏航每个都小于1度。此毫米尺度的空间分辨率可以映射到如下所述的计算机图形空间。

跟踪子系统390可包括两个以上的摄像机160。添加更多的摄像机160可能会减少可能出现的盲点,并允许具有光源310三分之一或更多的三角测量,这可能会给定位信息增加附加的精确度。

触针130可以是钢笔握柄外形,这可以允许对x、y和z,滚动、俯仰和偏航进行简单控制的操作。触针130可以包括一个或多个视觉指示点,如光源310。光源310可被嵌入触针130的外壳里,也可以是发光设备,例如LED,并可能是小光点源,从而允许触针130的x、y和z坐标的确定具有更高的精度。在一个实施方式中,光源310可以在红外(IR)光谱以内。在另一个实施方式中,光源310可以是反射光源,如嵌入式反射器反射断开-触针基础光源。

在一些实施方式中,触针130可以包括两个不相邻的具有可辨别的空间分离的光源310。当一个光源310从摄像机160,无论是从触针130的方向还是从用户的手或身体,被遮挡时,这可以确保另一个光源310并不被遮挡。此外,这两个不相邻的光源310可以具有自己独特的一个或多个定时条件来区分两个光源。在光源310位于触针130的每一端上的实施方式中,提供不同的定时条件,可以允许区分触针130的顶端和末端。不同的定时条件可以包括具有不同频率、不同占空比、和/或与中央时钟不同的定时偏移的光源。例如,如果摄像机160对频率的差异敏感,那么更有可能的是两个摄像机160都将看到至少一个光源310。即使每个摄像机160仅看到光源310,而另外一个相机160没有看到光源310,仍可以具有足够的信息,以便允许处理器子系统340更新触针130 的x-y-z定位信息。作为另一示例,第一光可以被打开,而第二光保持关闭状态,然后第二光打开且第一光可以被关闭。光的关闭和打开,可以按照已知的模式和顺序来进行。照这样,可将用户控制设备的顶端与末端区别开来。使用不同的定时条件也可以允许跟踪触针130的两个独立的(x,y,z)位置。这样,两个摄像头可以识别两个单独的位置,每个位置对应于一个单独的视觉指示点,系统可以分配一个视觉指示点给顶端且分配一个给末端。如上文所述,这允许辨别定位和定向信息。

如上所述,处理器子系统340可以接收来自跟踪子系统390的信息(来自两个或更多个摄像机160的关于触针位置和/或方向的信息,或者更具体的关于触针130上的光源位置的信息)和来自触针130本身的信息(例如,来自触针130本身上的加速度计320和/或陀螺仪330的信息),来计算触针130的位置和方向。在一些实施方式中,来自摄像机160的信息可用于计算方向,该方向可用来与陀螺仪330和/或加速度计320的读数进行比较,以便为方向的确定提供一层附加的置信度。

在一个实施方式中,用户控制设备130可能不包括磁性传感器。因此,磁场干扰组件(例如,金属手表)可能不会干扰跟踪用户控制设备130。

图4—触针实施方式

现在转到图4,示出了触针130的一个实施方式。图中所示的触针130具有一外壳,该外壳包含两个视觉指示点,以光源310的形式,在触针130的两端。所示实施例中,光源310包括不同的不透明部分,从而使各光源可以产生具有不同不透明部分的光场。不同的不透明部分,可以协助确定触针130的旋转位置。通过将触针130的旋转方位分割成段,例如划分为四个象限,每个触针象限可具有一个不同的双光场外形。这两个摄像机160可以识别光场的位置以及哪个象限能被看到,这对确定触针130的方向会有所帮助。视觉指示点310的方向信息可以与来自陀螺仪330和/或加速度计320(和/或磁强计)的信息进行比较。

返回参照图3,触针130还可以包括加速计320和陀螺仪330。加速度计320和陀螺仪330可以位于触针130的壳体内。每个加速度计320和陀螺仪330可以被配置为向处理器子系统340提供附加信息(例如,测量结果)。加速度计320可以能够测量已知的参考重力方向,并将测量结果提供给处理器子系统340。陀螺仪330可以能够确定方向/旋转。这可以包括触针130的偏移滚动、俯仰和偏航的测量。陀螺仪330可以测量运动,并在将加速度计的读数对时间进行平均时可提供实时读数。陀螺仪的一个例子是InvenSense ITG-3200三轴陀螺仪或InvenSense IMU-3000三轴陀螺仪+数字移动处理器(DMP)。加速度计的一个例子是KXTF9Kionix三轴加速度传感器。在一些实施例中,触针130可以包括在磁强计里面来替代,或除陀螺仪330和/或加速度计320之外。磁强计也可被配置为给处理器子系统340提供附加信息。

在一个实施例中,处理器子系统340可以接收来自跟踪子系统390和触针130的信息,用来计算触针130的位置和方向(例如,包括旋转)。在所示的实施例中,处理器子系统340包括:校准模块350、对准模块360、位置计算模块370和方位计算模块380。

在一个实施例中,校准模块350可使用参考目标来校准摄像机160。参考目标可以被移动到摄像机视图空间内的不同的预定(x,y,z)位置,以允许系统能捕捉每个摄像机160在每个位置的图像并获取视图和位置之间的对应关系。参考目标可以是一个尺寸为棋盘方格大小的棋盘目标图片,该目标图片为校准模块350所已知。通过将棋盘目标图片放置在摄像机视场内不同的预定位置,该系统可将所捕获的图像与三维位置关联起来。当使用棋盘目标图像时,有时所捕获的图像之一可能会将方格扭曲为梯形,而不是方形,例如,当目标图像被定位在与各自校准相机垂直的位置上时。校准模块350认识到梯形应该为正方形,并在其相关处理种使用该信息。校准模块350还可以分解摄像机的CMOS或CCD阵列密度信息和校准算法内的透镜特性。

在一个实施例中,校准模块350可参照摄像机160来校准触针130。这可以包括:在摄像机视图内的一个固定(x,y,z)位置确定物理参考点,该物理参考点距离显示器上的预定点是一个已知的定位距离,其中,显示器的方向和位置相对于摄像机的方向和位置是已知的。然后可将触针130放置在该物理参考点上。这可以允许校准模块350来确定触针130与显示器之间关系。

校准模块350还可以校准头部跟踪特征。校准头部跟踪摄像机,可以是与摄像机160相同的摄像机,包括将用户的头部放置在物理参考点上,该物理参考点带有位于相对摄像机具有已知位置和方向的头部。校准头部跟踪摄像机允许头部的跟踪与上述显示器的已知位置同步。

摄像机160或显示器的角度、方向或位置的变化,可以被跟踪,并被编入校准模块350内。或者可重新做校准。例如,校准模块350可根据初始化或某一事件将触针和/或摄像机校准为动力。事件可以包括将触针130放置在触针盒中、用户输入指导重新校准、或在所捕获的至少一个视觉指示点(例如,摄像机的信息)与来自陀螺仪和/或加速度计的附加信息(例如,测量结果)之间所检测到的不一致。

对准模块360可以用于校准触针130的初始角度、旋转和方向。在一个实施方式中,可以使用已知的角度、旋转和方向参考。例如,可以使用触针盒170或触针座。触针盒170可以强制触针130以某一已知的方式安装(例如,触针可以存储在对准模块360中),包括与触针盒170相倾斜的位置,触针盒170参照摄像机160位于一个固定位置。相对摄像机固定定位的触针盒可以使滚动、俯仰、偏航坐标方向与已知的摄像机的x、y、z方向相同。来自加速度计320的数据可被对准模块360使用来验证预期的滚动位置。强制倾斜可允许位于触针内已知位置的加速度计320传输给对准模块360一个已知的重力参考方向。此例中,因为对准模块360知道带有嵌入式加速度计320的触针130的结构以及由重力作用而导致的预期方向,触针的旋转可以得到识别和证实。而且,当触针130被置于触针盒170中时,对准模块360可以接收陀螺仪330的读数。使用如上所讨论的加速度计320的读数和已知的(x,y,z)位置,可允许来自陀螺仪330的偏差、噪声或错误被清零。

在一个实施方式中,位置计算模块370可接收来自摄像机160的光源310的位置信息。例如,位置信息可以是原始的或处理后的图像文件、带有图像的元数据等形式。在接收信息之前,可以假定,以下内容已被确定:摄像机160的可见空间体积、摄像机160彼此对齐的空间相关性、摄像机与加速度计320和陀螺仪330共享的坐标空间,和关于触针130的光源310的点的位置。当触针130移动时,摄像机160看到触针130的光源310。光源310的成像区域,或视觉指示点,可以被平均,以确定触针130的中心点或端点。例如,如果在成像的光源310具有直径M和周长N,位置计算模块370可确定光源310的中心并将那关联为点源。此外,位置计算模块370可以知道光源310的预期形状,并根据从摄像机160所接收的图像和视角,位置计算模块370可以提供触针130的被更精确确定的尖点。然后,位置计算模块可将诸如透视投影变换、逆透视或双目立体之类的算法应用到来自摄像机160的信息或属性。此类属性可以将CMOS和CCD阵列参数(间距)、镜头参数和透镜效果包括和考虑进来。该算法然后确定触针130的(x,y,z)位置。在一个实施例中,在不使用来自加速度计320和陀螺仪330的附加信息的条件下,位置计算模块可以计算(x,y,z)位置。

方向计算模块380可以计算触针130的滚动、俯仰和偏转。在一个实施例中,方向计算模块380接收来自陀螺仪330的附加信息(例如,测量结果),可为触针130提供实时的偏移滚动、俯仰和偏航信息。然后,偏移滚动、俯仰和偏航每隔几个更新周期,就与从加速度计320所测得的读数对时间的平均进行比较。更新循环可在已知的更新频率上周期地进行。采用这种方式,加速度计320可以作为参考,以此为参考,陀螺仪330可被定期地确认为正确的滚动、俯仰和偏航更新。在一些实施例中,方向模块380可以接收来自磁强计的测量结果。例如,磁强计可以提供一种指示磁北方向的测量结果。作为时间的函数,磁北可以保持静止,并且因此可以用于确定用户控制设备的方向。然后,根据从追踪传感器160所捕获的图像和来自加速度计320和陀螺仪330(和/或来自磁强计)的附加信息,可计算用户控制设备130的方向。

处理器子系统340可接着向显示器150提供更新的三维场景。该更新的三维场景可以将用户控制设备130物理空间的之间的精度反映到三维场景的图形空间为x,y和z轴每轴都在1毫米内。跟踪系统可以被绑到图形系统中,这样,跟踪系统可以捕捉触针的x、y、z、俯仰,偏航和滚动的物理位置信息,以及精度达亚毫米和分度的触针位置的变化。图像空间可以被定义为具有单位长度、宽度、深度、图形单位的位置和方向的矢量图形。用户可以为物质世界的等价物分配图形单位(例如,微米,毫米、英寸、英尺等)。当跟踪系统与图形系统通信时,单位的指定可以与这些单位一起存在(例如,英寸的指定值是4)。跟踪系统可以将它的位置信息提供给图形空间,而图形空间可以解释单位的指定。因此,图形空间可将来自跟踪系统的位置信息与其在图形空间中的等价相关联。相对于触针实际位置的更精确的跟踪系统信息,可能会导致更准确的信息相关性到所解释的图形空间。

图5示出了触针130一种实施方式。如图5所示,触针130具有重心,关于此重心的滚动轴、俯仰轴和偏航轴被示出。同时也示出了触针130可以存储在那里的触针盒170。如上所讨论的,触针盒170也可以用于校准和对齐触针130。当触针130处于已知的配置时,例如,当存储在触针盒170中,触针130的滚动、俯仰和偏航可能被清零,或被设置其他一些已知的值。

在需要精确的运动跟踪的情况下,本文所描述的触针跟踪系统可能是有用的,无论是对触针的手腕、手、或手指操纵的慢速运动还是快速运动的情况下。这样的运动跟踪可能对立体显示器环境中体积空间的精细计算机用户输入活动是有用的。由于加速度计和陀螺仪固有的漂移,本文描述的系统,使用摄像机160作为附加跟踪信息的来源,可能是有用的,因为摄像机的测量结果可以用于与加速度计/陀螺仪的附加信息(例如,测量结果)进行交叉对照,以便更新漂移的加速度计320和陀螺仪330。一般地来说,该系统可以运行,以便将加速度计320、陀螺仪330和/或摄像机160的各种测量结果进行交叉对照/比较,来执行更精确的触针130的位置/方向的跟踪。

此外,摄像机在触针跟踪系统中的布置可以将显示屏的位置和方向联系起来,采用的方式允许精密输入到用来与立体呈现的显示目标进行交互的图形引擎中。换句话说,摄像机160可以相对于预定义的显示器的位置和方向来布置。

除了或代替,触针130,上述跟踪系统也可以使用在一些用来跟踪头部或用户的实施方式中。

图6—呈现三维场景内触针的三维表示

图6示出了一种用来确定用户控制设备(如触针)的三维坐标和在坐标确定的基础上更新三维场景的方法。图6所示的方法,可以与上图所示的任何计算机系统或设备一起使用于其他设备之间。在各种实施方式中,所示的一些方法元素可按照与所示顺序不同的顺序被同时执行,或者也可以省略。在一些实施方式中,方法600可以比所示的步骤包括附加的(或更少的)的步骤。如图所示,方法600可以进行如下操作:

如在602中所示,三维场景可由至少一个显示器(例如,显示器150)来呈现。更特别的是,三维场景的一个或多个立体图像可以被显示器呈现。三维场景可以根据第一视点来呈现。例如,第一视点可以基于用户观看三维场景的视点。在一个实施方式中,该方法可以包括:确定第一视点,例如,通过确定用户观看三维场景的视点。该方法可以使用各种技术来确定用户的视点,例如位置输入设备(例如,可用于提供视点位置信息的眼镜)、三角剖分、头/眼跟踪等。因此,三维场景可以被呈现,从而使用户可以以最小的失真观看三维场景(例如,因为它是根据用户的视点)。更具体地说,当三维场景是基于用户视点时,该三维场景是基于将被观看者看到的视图来呈现的。这种渲染避免了大部分失真,如果场景视点与观察者的视点不匹配时这些失真将被传输。换句话说,只要观察者的视点与三维场景视点保持一致,所显示的目标就能保留正确的视图,以及保留如观看者所感知的来自显示设备的正确的偏移位置和方向。

如上所示,三维场景可以由一个单一的显示器或多个显示器来呈现。在一个实施方式中,三维场景可以由垂直显示器和离轴显示器来呈现,诸如水平显示器。例如,垂直显示器可以呈现第一立体图像,例如,根据垂直透视图,而水平显示器可以呈现第二立体图像,例如,根据水平透视图。这两个立体图像,可以形成三维场景或将三维场景传达给用户。在进一步的实施方式中,这两个显示器可以加入曲线显示器或混合显示器,这也可以呈现立体图像。混合显示器的立体图像可操作用来混合垂直显示器和水平显示器的立体图像。可以考虑使用其他数量和类型的显示器用来呈现三维场景。

至少一部分三维场景可以呈现在上述“开放空间”、至少一个显示器的前面或其他方式的外部。因此,至少一部分三维场景可能会作为全息图出现在显示器表面的上方。例如,当用水平显示器来呈现立体图像(或视频)对时,三维场景可被看作是正在水平显示器的上方盘旋。但是,应当注意,一部分三维场景也可能表现为出现在显示器表面的后面,这是不在“开放空间”的。因此,“开放空间”指的是一个用户能够自由移动,并进行交互(例如,用户能够将手放置在空间中或操作用户控制设备130)的空间,而不是一个用户不能自由移动也不能交互(例如,用户不能将手放置在空间中,例如显示器表面的下方)的空间。这种“开放空间”可能被称为“自己动手空间”,作为可能位于显示器表面以下的“内部空间”的对照。因此,用户可以在开放空间直接与目标(显示的虚拟目标)进行互动,例如,采用用户控制设备,因为他们共同存在于靠近用户的物理空间。内部空间位于观看表面的后面,而且位于该内部空间以内的那部分三维场景出现在物理观看设备的内部。因此,呈现在内部空间以内的三维场景的目标不与用户共享同一物理空间,而且,目标因此不能通过手或手持工具进行直接地物理操纵。也就是说,内部空间内显示的目标可以被间接操纵,例如,通过计算机鼠标、操纵杆、或虚拟触针(例如,包括触针的虚拟扩展)。

如604和606所示,可以确定用户控制设备(例如,触针130)的第一和第二位置信息。在各种实施方式中,位置信息可参阅位置和/或方向。第一位置信息可基于捕获的触针视觉指示点的两个或多个图像来确定。例如,两个或多个捕获的图像可以来自两个空间分离的摄像机。因此,两个或多个捕获的图像中的每一个可以从不同的视图拍摄。触针130的视觉指示点可以是光源310的中心点或边缘,或者可以是光源310自身。通过平均光源310可以确定中心点。例如,如果光源310图像部分的直径为M、周长为N,处理器子系统340可以确定光源310的中心和并将其作为触针130的点进行关联。触针130的点可以是触针130的尖点。

在一个实施方式中,触针130可包括第二视觉指示的点,从而使第一和第二视觉指示点是不相邻的。第二个视觉指示点可以是第二光源310的中心点或边缘。在此类实施方式中,触针130上的第二视觉指示点的位置信息也可以被确定。作为一个例子,第一位置信息可包括单独的位置信息,每个单独的一组位置信息与视觉指示点中的一个相对应。每个视觉指示点各自的位置信息可以基于一个或多个从每个摄像机拍摄的图像。在具有两个摄像机和两个视觉指示点的简单的例子中,基于来自每个摄像机的两个捕获的图像,可为第一视觉指示点确定位置信息。同样地,基于来自每个摄像机的两个捕获的图像,可以为第二视觉指示点确定位置信息。例如,图像可以捕获两个视觉指示点,并且可以用来确定各自的与每个视觉指示点对应的位置信息。继续上面的例子,可使用相同的两个捕获的图像(一个来自每个摄像机),为两个视觉指示点确定单独的位置信息。基于每个视觉指示点的单独位置信息,可确定第一位置信息,从而使它包括或反映与每个视觉指示点相对应的单独的位置信息。

在此之前,程序块604和程序块606期间或之后,用户可以拿起触针与部分三维场景进行互动,例如,通过决定触针的位置来指定所显示的目标(例如,通过选择与显示目标相关联的空间)以及指定三维场景内的空间等。604中,该方法可确定触针的至少一个视觉指示点的第一位置信息,其中,该位置信息的确定是利用一个跟踪传感器来执行。在一个实施方式中,可以使用至少两个跟踪传感器(例如,空间上分离的摄像机)来获取第一位置的信息。在其它实施方式中,第一个位置信息可以从单一的跟踪传感器来获取。

因此,在程序块604中,在系统包括第一和第二摄像机的实施方式中,触针130上相同的视觉指示点的第一位置信息,可根据来自每个摄像机的图像来确定。在触针130包括第二视觉指示点实施方式中,第一位置信息可包括与触针130上第二视觉指示点相对应的位置信息,并可根据来自每个摄像机的相同或不同的图像。

在各种实施方式中,第一和第二视觉指示点可被配置为分别发射具有第一和第二定时条件的光,第一和第二定时条件(例如,光的频率)是不同的。例如,两个不同的频率可以是红外线光谱范围内的不同的频率。确定第一位置信息,然后可包括确定拍摄的图像与哪一个视觉指示点相对应。

在一些实施方式中,第一和第二视觉指示点可以包括不透明部分。例如,第一视觉指示点的光源可以被配置为产生具有一不透明部分的光场,其不透明部分具有一种形状,而且第二视觉指示点可以被配置为产生一具有另一种形状不透明部分的光场,从而使得光线从视觉指示点发出或反射时,用户控制设备的象限可以有所区别。因此,确定第一位置信息可包括基于不透明部分在所拍摄图像中的出现,来确定用户控制设备的象限。

第一个位置的信息,可以使用各种技术从一个或多个摄像机来确定。例如,一个摄像机可以捕获包括触针130上的视觉指示点的场景的图像,并将图像提供给处理器子系统340。摄像机可以利用图像处理软件对图像进行预处理。图像可以被处理器子系统340分析,以便确定其在视觉指示点所在的场景内的像素位置。然后,该像素位置可以用来确定各自视觉指示点在实际场景之内的位置。在多个图像被捕获的实施方式中,每个摄像机可以被配置为捕获至少一个视觉指示点的一个独特视图。

如在606中所示,该方法也可以确定第二位置信息(例如,测量结果),该位置信息来自位于触针内一个或多个位置确定设备中的每一个。这可以包括一个陀螺仪、加速度计、磁强计等

在604和606中确定的第一和第二位置信息,可以包括x、y、z坐标以及滚动值、俯仰值和偏航值。基于摄像机160、陀螺仪和加速度计320所提供的信息,这些数据可被提供给处理器子系统340。

如608中所示,在基于触针130上视觉指示点的第一和第二位置信息的基础上,处理器子系统340可确定或解决用户控制设备130的位置和方向。用另一种方式来描述,根据来自两个或多个摄像机160、陀螺仪330和加速度计320的信息,处理器子系统340可确定或解决触针130的位置,在其他可能性之中。在使用附加视觉指示点的实施方式中,处理器子系统340可以使用附加视觉指示点的位置信息,以便进一步细化触针130的位置。在一些实施例中,系统100可以包括两个以上的摄像机。当系统100包括两个以上摄像机160时,处理器子系统340使用来自多个摄像机的信息,以进一步细化触针130的位置。处理器子系统340可以将触针130的定位解析为镜头、像素传感器,和/或摄像机160数组大小(间距)的函数。

当触针130被移动时,基于光源310的位置,摄像160可以提供位置信息。如上所讨论的,光源310的成像部分可以被处理器子系统340处理,以便将光源310关联到触针130上的一个点,诸如触针尖点。在至少一些实施方式中,当触针130被移动时,来自两个或多个摄像机160、陀螺仪330和加速度计320中的每一个的信息,被共同使用以便跟踪触针130的运动。

根据来自两个或更多个摄像机160、陀螺仪330和加速度计320的信息,可以使用各种方法来确定触针130的位置/方向。一个示例方法是卡尔曼滤波器,它综合不同的测量结果,以便取得系统位置状态的估计值。作为另一个例子,如果陀螺仪330指示触针130在位置A上,加速度计320指示(例如,间接的)位置B,而那两个视频摄像机160指示位置C时,根据这些信息的综合,位置估计可以用公式表示。例如,在误差/不一致情况下,各种位置可被平均。这种平均可以包括来自一个更可靠的设备(例如,假定陀螺仪比加速度计更精确)的加权信息,该信息在计算中比其他信息更重要。在其它实施方式中,用来解决第一和第二位置信息之间不一致的其他方法可被使用,例如忽略一部分第一和/或第二信息。

在610中,基于在608中的用户控制设备位置和方向的确定,三维场景可被更新。基于由触针130、用户的手、一些其他的手持设备所进行的操作,更新三维场景可以包括更新场景内虚拟目标的位置。更新三维场景,也可以包括呈现图形空间内触针130的虚拟表示,该虚拟表示对应于被跟踪触针的位置、旋转和方向。触针130在6个轴中的每个轴上的增量定位,可以精确地跟踪实际触针130的注册位置与立体显示空间内虚拟触针的渲染之间的精确相互关系。该渲染、或虚拟触针,可以包括一个虚拟图形的位置和方向。例如,触针130的光源310的定位被分解为在x轴、y轴和z轴中每个轴上小于1毫米。此毫米尺度的空间分辨率可被映射到计算机图形空间。因此,更新的三维场景可以将用户控制设备物理空间间的精度反映到三维场景中图形空间为x轴、y轴和z轴中的每个轴在1毫米内。可以是计算机图形模型的一部分的虚拟触针图形,可以作为任何其他的图形目标被呈现在立体显示器上。立体显示器上的虚拟触针图形可以实际触针130同时出现。

方法600可允许系统精确地跟踪用户的手腕、手和手指操作触针130。该方法可以允许检测慢速运动和快速运动。另外,多个摄像机的使用可以细化触针的位置和交叉参照陀螺仪330和加速度计320的方向读数。通过跟踪触针130的精确位置,用户可以能够精细地操作图形空间中的虚拟目标。在一些实施方式中,实际触针130操作一个虚拟目标。在其它实施方式中,三维空间中由方法600所确定的位置和方向所表现的虚拟触针,可以操纵虚拟目标。

示例性说明

图7A和图7B说明了图像空间到显示空间的示例性的映射。例如,图7A采用交互元件1445说明了虚拟表示1000,交互元件1445可以充当触针130(图7B中所示的)的扩展,而且,图7B说明了三维场景1050的表示,三维场景1050与图7A中的虚拟表示1000(采用显示器150B)相对应。

在所示的实施方式中,物理触针130可以通过被投影的虚拟触针1445,被扩展在三维场景1050中。因此,触针130可以具有一个虚拟显示的扩展1445,虚拟延伸从物理触针130的端部开始扩展。

手持工具可以是任何被跟踪设备,例如,从位置和方向方面来看,并可根据上面所讨论的实施方法被跟踪。例如,如上所述,两个摄像机160(在这些图中未示出)可以跟踪触针130的位置。触针130可以是各种形状的,并可能或可能不具有虚拟触针1445,作为扩展或以其他方式。此外,不是作为扩展,虚拟触针1445可根据触针130的相应运动而移动,但可能会出现根本没被连接。例如,虚拟触针1445可以呈现在靠近触针130的位置来被立体地观看。在所示的实施方式中,虚拟触针1445显示为触针130的扩展,例如,通过提供给视点1070的立体图像。

当用户移动触针130时,可能会发生某些相应操作。一个实施例中,对应的虚拟触针1445可以被重新定位在虚拟表示和三维场景中。在另一个实施例中,虚拟触针1445可能不会呈现,因此,可能不能成像,也不能被用户看到,但是其中一个目标,如目标2,可允许用户具有触针130被定位和定方位的地方的反馈信息。触针130远尖端或虚拟触针1445与用户能感觉到且已成像的目标2之间的成像距离可以根据不同的参数来设置,例如用户偏好或设计偏好。在一些实施例中,触针130位置的改变可被解析到1厘米,而在一些实施例中,在x轴、y轴和z轴中的每根轴上可解析到1mm以下,正如解析到标称5度,而在一些实施例中,每个俯仰轴,偏航轴和滚动轴可解析到小于1度。

虽然已相当详细地描述了上述实施例,对本领域的技术人员而言,一旦完全理解上述公开,许多变化和修改将变得显而易见。意图是可将下面的权利要求书阐释到能包含所有这些变化和修改。

具体实施方式

说明性的实施方式包括:

1.一个系统,包括:

显示器,被配置为显示立体三维场景;

用户控制设备,被配置为操纵立体三维场景内的目标;其中,用户控制设备包括至少一个视觉指示点;

至少一个跟踪传感器,被配置为跟踪至少一个视觉指示点;

处理子系统,被配置为:

从至少一个跟踪传感器中接收被跟踪的至少一个视觉指示点;

从用户控制设备中接收附加信息;

根据所跟踪的至少一个视觉指示点和附加信息,确定用户控制设备的位置和方向;

根据所确定的用户控制设备的位置和方向,来提供更新的三维场景,其中该更新的三维场景将用户控制设备物理空间的精度反映到立体三维场景的图像空间为x轴、y轴和z轴中每轴都在1mm以内;

2.实施方式1中的系统,其中,至少一个视觉指示点包括第一和第二视觉指示点,其中,第一和第二视觉指示点是不相邻的,而且,其中,所述第一视觉指示点被配置为具有发射第一定时条件的光,第二视觉指示点被配置为发射具有第二定时条件的光。

3.实施方式1中的系统,其中,至少一个视觉指示点包括第一和第二视觉指示点,其中,第一视觉指示点被配置为产生具有第一不透明部分的第一光场,其中,第二视觉指示点被配置为产生具有第二不透明部分的第二光场,第二不透明部分与第一不透明部分不同。

4.实施方式1中的系统,其中,用户控制设备还包括一个场独立改变方向的机构和一个恒定方向确定机构,其中,附加信息是指来自场独立改变方向的机构和恒定方向确定机构的信息。

5.实施方式4中的系统,其中,恒定方向确定机构是一个恒定重力的确定机构。

6.实施方式4中的系统,其中,使用各自带有陀螺仪和加速度计的场独立改变方向的机构与恒定方向确定机构。

7.实施方式1中的系统,其中,用来执行用户控制设备的位置及方向的上述确定,该处理子系统进一步被配置为确定至少一个视觉指示点的中心。

8.实施方式1中的系统,其中,处理子系统进一步被配置为补偿用户控制设备的测量装置的偏差或偏置,根据所捕获的至少一个视觉指示点与附加信息之间的不一致。

9.实施方式1中的系统,其中,处理子系统被进一步配置为解决所捕获的至少一个视觉指示点和附加信息之间的不一致。

10.实施方式1中的系统,其中,用来提供更新的三维场景,处理器子系统被进一步配置为呈现用户控制设备的虚拟表示,其中,用户控制设备的虚拟表示反映用户控制设备的位置和方向在物理空间内与在图形空间内的对应。

11.实施方式1中的系统,其中,用户控制设备位置和方向的确定进一步基于所述的至少一个跟踪传感器的一个或多个属性。

12.实施方式1中的系统,其中,所述的至少一个跟踪传感器包括第一和第二摄像机,其中,第一和第二摄像机每个都被配置为捕捉至少一个视觉指示点的不同透视图。

13.实施方式12中的系统,其中,第一和第二摄像机彼此分离地足够远,从而能进行三轴三角测量确定,其中,第一和第二摄像机相对于显示器的预定义位置和方向来安装。

14.实施方式1中的系统,其中,用户控制设备还进一步包括磁强计,其中,附加信息来自磁强计的信息。

15.实施方式1中的系统,其中,用户控制设备是具有钢笔握柄外形的触针。

16.一种方法,包括:

由至少一个显示器来呈现三维场景,其中,上三维场景的呈现包括由至少一个显示器来显示三维场景的至少一个立体图像,其中,用户控制设备是用来操作三维场景内的目标的;

基于用户控制设备的至少一个视觉指示点的两个或更多个所捕获的图像,来确定用户控制设备的第1位置信息,其中两个或更多个所捕获的图像中的每一个都是从不同的视图中捕获的;

基于来自用户控制设备的附加信息,确定用户控制设备的第二位置信息;

基于第一和第二位置信息,确定用户控制设备的位置和方向;并且,

基于用户控制设备位置和方向的上述确定,更新立体三维场景,其中,更新的三维场景将用户控制设备物理空间的精度反映到三维场景目标空间为x轴、y轴和z轴每轴都在1毫米以内。

17.实施方式16中的方法,其中,用户控制设备位置和方向的上述确定,包括解决第一和第二位置信息之间的不一致。

18.实施方式16中的方法,其中,至少一个视觉指示点包括不相邻的用户控制设备的第一和第二视觉指示点。

19.实施方式18中方法,其中,所确定的用户控制设备的第一位置信息包括关于第一和第二视觉指示点中每个点的信息,其中,上述第一位置信息的确定包括:根据从至少两个不同的视图中之一所捕获的第一和第二视觉指示点的图像,确定各自的位置信息,该位置信息与第一和第二视觉指示点相对应。

20.实施方式19中的方法,其中,第一和第二视觉指示点被配置为分别发射具有一个第一和一个第二定时条件的光,其中,第一和第二定时条件是不同的,其中,上述第一位置信息的确定包括识别所捕获的图像哪些与视觉指示点对应。

21.实施方式19中的方法,其中,第一视觉指示点的光场包括第一不透明部分,其中,第二视觉指示点的光场包括第二不透明部分,第二不透明部分与第一不透明部分相比具有不同的形状,其中,上述第一位置信息的确定包括:根据第一和第二不透明部分在所捕获的图像中的出现,识别用户控制设备的象限。

22.实施方式16中的方法,其中,两个或更多所捕获的图像中的第一所捕获的图像和第二所捕获的图像都分别来自第一和第二空间上分离的摄像机。

23.用于存储程序指令的非临时性的计算机可访问的存储介质,其中,程序指令是可执行的,由处理器来执行:

从至少一个跟踪传感器中接收所捕获的用户控制设备至少一个视觉指示点,

从用户控制设备接受附加的信息,

根据所捕获的至少一个视觉指示点和附加信息,确定用户控制设备的位置和方向,并且,

基于所确定的用户控制设备的位置和方向,给显示器提供更新的立体三维场景,其中,更新的三维场景将用户控制设备物理空间的精度反映到立体三维场景图形空间为x轴、y轴和z轴每轴都在1毫米以内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1