虚拟现实系统中虚拟控制器的位置和取向跟踪的制作方法

文档序号:19488497发布日期:2019-12-21 04:07阅读:383来源:国知局
虚拟现实系统中虚拟控制器的位置和取向跟踪的制作方法

相关申请的交叉引用

本申请要求于2017年9月18日提交的美国申请号:15/708,040的优先权,该申请的公开内容以全文引用的方式并入到本文中。

本说明涉及跟踪虚拟现实(vr)系统中使用的控制器的三维位置和取向。



背景技术:

在一些vr系统中,用户使用头戴式显示器(hmd)和手持控制器与虚拟环境中的任意数量的虚拟对象进行交互。在这种vr系统中,用户可以使用手持控制器经由hmd与对象交互。仅使用三个自由度(3dof)跟踪(例如,取向跟踪)来跟踪手持控制器可能存在挑战。



技术实现要素:

在至少一个方面,一种方法,例如计算机实现的方法中,可以包括确定用户的头戴式显示器(hmd)的位置,基于hmd的位置定义关节的位置,定义从关节到区段末端的区段,基于该区段末端的位置定义虚拟控制器在虚拟现实(vr)环境中的初始虚拟位置,以及响应于物理控制器的取向运动,基于区段和关节来定义虚拟控制器在vr环境中的虚拟位置和虚拟取向。

一个或多个实施方式的细节在以下附图和描述中阐述。从说明书和附图以及从权利要求书中,其他特征将是显而易见的。

附图说明

图1示出了用于代表用户右侧的示例vr手臂模型的透视图。

图2a-2c示出了根据示例实施例的确定控制器位置的系统的示例实施方式的第三人视图。

图3是根据示例实施例的可用于确定控制器在vr环境中的位置的示例vr系统的示意图。

图4是描绘可通信地耦合到vr空间中的hmd设备的控制器的框图。

图5和6是根据示例实施例的与确定控制器在vr环境中的位置相关的流程图。

图7a和7b是根据示例实施例的当用户相对于关节运动时用户的示意图。

图8是可用于实施本文公开的示例的示例计算机设备和示例运动计算机设备的示意框图。

具体实施例

在本文所述的实施方式中,物理vr控制器仅使用具有绕通常称为俯仰、滚转和偏转的x、y和z轴的旋转能力的三个自由度(3dof)进行跟踪。因此,这种物理控制器可以跟踪旋转运动。物理控制器的这种取向基本上是在空间中的固定位置(也可称为定位)处确定的,因为空间中的绝对位置不由物理控制器或与物理控制器相关联的头戴式显示器(hmd)跟踪。然而,这种3dof跟踪可以用来估计(或投影)虚拟控制器在空间中的位置和取向,如使用vr手臂模型在hmd内观看到的。因此,当从hmd内观看时,物理控制器的3dof跟踪可用于确定(例如,估计、表示)虚拟控制器的6dof(例如,x、y、z位置和取向)跟踪。在一些实施方式中,vr手臂模型可以被称为vr手臂模型。

例如,用户可以经由hmd通过以各种方式倾斜和转动他们的头来观看vr环境。然而,在hmd的视野内,虚拟控制器的跟踪可能是有限的,因为vr控制器的3dof跟踪能力有限——物理控制器不跟踪空间中的绝对位置(例如,位置跟踪)。但是vr手臂模型可以利用物理控制器的取向跟踪来创建可以在hmd内观看的虚拟控制器的位置和取向。因此,在本文描述的实施方式中,有可能模拟在vr环境中的位置和取向的握持控制器的人。此外,在这里描述的实施方式中,虚拟控制器可以在vr环境中处于对应于用户如何握持和使物理控制器运动的位置。

根据本文所述的实施方式,在vr系统中跟踪手持物理控制器的改进技术可以包括例如定义在肘关节(第一关节)与腕关节(第二关节)之间的区段。区段和关节模仿并代表虚拟控制器的运动。改进技术的一些优点提供了更便宜、更高效和/或更简单(例如,除了控制器的取向之外,只需要很少的知识)的系统。此外,改进的技术易于实施,并且具有足够的保真度(例如准确度)以使用户相对沉浸在其中。此外,在一些实施方式中,不需要外部传感器(例如,来自hmd的面向外部的相机)来跟踪物理控制器以使用改进的vr系统。

此外,在本文描述的实施方式中,通过确定和测量最多三个旋转运动,例如,两个在肘关节(第一关节)处,一个在腕关节(第二关节)处,更具体地,在肘关节处的z轴和y轴运动以及在腕关节处的x轴运动,这些可以用于实现物理控制器在vr环境中的运动的有效且相对现实的虚拟表示。尽管根据虚拟环境进行了讨论,但是本文描述的技术中的任何技术都可以应用于增强现实环境。在一些实施方式中,术语虚拟环境可以是或可以包括增强现实环境。

图1示出了用于代表用户的示例vr手臂模型10的透视图。尽管在用户的右侧示出,vr手臂模型10可以应用于用户的左侧。在这种实施方式中,用户佩戴hmd8。尽管在图1中未示出,但是物理控制器112的位置可以由用户基于vr手臂模型10从hmd8内作为虚拟控制器(未示出)看到(例如,表示)。为了讨论的目的,vr手臂模型10在图1中示出,但是可能不会被用户经由hmd8看到。在一些实施方式中,vr手臂模型10可以被称为骨架模型。

为了说明,而不失一般性,本描述将示例vr手臂模型描述为被配置成类似身体姿势的人体模型。代表人体模型的vr手臂模型可以包括区段,每个区段可以与用户的身体部位相关联。vr手臂模型还可以包括一个或多个关节。每个关节可以允许一个或多个区段相对于一个或多个其他区段运动。例如,代表人的vr手臂模型可以包括多个刚性和/或可变形身体部位,其中,一些区段可以代表人的相应解剖身体部位。换句话说,vr手臂模型的每个区段可以对应于一个或多个结构元素(例如,“骨骼”),关节位于相邻骨骼的交点。在一些实施方式中,结构元素中的一些可以对应于vr手臂模型中的区段和/或结构元素中一些可以不对应于vr手臂模型中的区段。在一些实施方式中,各种关节可以对应于人的实际关节。

如图1所示,vr手臂模型10包括区段11、13、15、17和19,以及关节a、b、c、d和e。区段11在关节a与b之间,区段13在关节b与c之间,区段15在关节c与d之间,区段17在关节d与e之间,区段19从关节e延伸。

在一些实施方式中,关节a、b、c、d和e中的每一个都可以被配置成使得与关节相关联的相应区段可以在空间中的三维位置旋转。换句话说,每个关节可以被配置成最多三个自由度(3dof)(例如,x、y和z轴),因为人体中的许多关节通过1或2个自由度来定义。

根据本文描述的vr手臂模型10,围绕关节子集的旋转被用于表示物理控制器112的运动。具体而言,在vr手臂模型10中,关节d和e可用于确定当作为虚拟控制器从hmd8内观看时物理控制器112的位置。在一些实施方式中,关节d和e可以是用于当作为虚拟控制器从hmd8内观看时确定物理控制器112的位置的唯一关节。

在该实施方式中,物理控制器112的偏转、俯仰和滚转被解释为手臂模型10的各个关节处的运动。如果物理控制器112沿着第一轴纵向对准,则滚转可以是围绕第一轴的旋转。偏转可以是围绕正交于第一轴并穿过物理控制器112顶部的第二轴的旋转。俯仰可以是围绕正交于第一轴和第二轴并且穿过物理控制器112的一侧的第三轴旋转。换句话说,物理控制器112的3dof运动(例如,取向运动)被解释为(并显示在hmd内)虚拟控制器关于vr手臂模型10的特定关节和/或区段的运动。

例如,当通过hmd8观看时,物理控制器112围绕z轴的旋转(例如,偏转)可以表示为例如在d关节处围绕z轴向左或向右的运动。因此,虚拟控制器可以在hmd8内被视为在区段17(和/或区段19)的末端,并且向左或向右运动。

换句话说,在一些实施方式中,区段17可以被配置为围绕关节d运动。例如,区段17可以从一侧向另一侧运动(例如,左右),而区段17的一端绕关节d旋转。换句话说,区段17可以绕z轴运动(例如,偏转)。这可能导致虚拟控制器在vr环境中以类似的方式相应地运动。例如,当区段17至少向左或向右(沿侧向方向)运动时,当在hmd8的vr环境中观看时,虚拟控制器也至少向左或向右运动。结合图2a描述和示出了关于该特定运动的更多细节。

作为另一个示例,当通过hmd8观看时,物理控制器112围绕y轴的旋转(例如,俯仰)可以被表示为例如虚拟控制器在d关节处围绕y轴的上下运动。因此,虚拟控制器可以在hmd8内被观看到在区段17(和/或区段19)的末端并且上下运动。

换句话说,在一些实施方式中,区段17的第一末端(例如,远端)可以被配置为上下运动,而区段的第二末端(例如,近端)围绕关节d旋转。换句话说,区段17可以围绕y轴运动(例如,俯仰)。这可以导致控制器112在vr环境中以类似的方式相应地运动。例如,当区段17至少上下(沿着竖直方向)运动时,当在hmd8的vr环境中观看时,虚拟控制器也至少上下运动。结合图2b描述和示出了关于该特定运动的更多细节。

作为又一个示例,当通过hmd8观看时,物理控制器112围绕x轴的旋转(例如,滚转)可以表示为,例如,在e关节处围绕x轴的旋转。因此,虚拟控制器可以在hmd8内被视为位于区段19(和/或区段17)的末端,并且围绕虚拟控制器的长度(或轴)旋转。在一些实施方式中,当通过hmd8观看时,物理控制器112围绕x轴的旋转(例如,滚转)可以表示为例如在d关节处的绕x轴(和区段17)的旋转。

换句话说,在一些实施方式中,区段19可以被配置成围绕关节e旋转。例如,区段19可以在围绕关节e固定的同时左右旋转。换句话说,区段17可以围绕x轴运动(滚转)。根据这里描述的实施方式,当在hmd8的vr环境中观看时,围绕关节e的旋转可以被示为旋转手以露出手掌,并且然后旋转以露出手背。结合图2c描述和示出了关于该特定旋转的更多细节。

在一些实施方式中,围绕x轴的旋转运动可以在关节d和e处同时旋转。换句话说,一些旋转可以归因于关节d处,并且一些旋转可以归因于关节e处。例如,旋转运动可以在关节d处施加40%,并且在关节e处施加60%。

虽然被描述为单独的运动,但是上述运动中任何一个都可以组合。例如,物理控制器112的旋转(围绕x、y或z轴)中的任一个可以以任何组合进行组合,然后当用户从hmd8内观看时,使用vr手臂模型10表示为虚拟控制器的运动。

在一些实施方式中,连接的区段15和17代表成直角的手臂。这种配置可以适合模仿用户的自然运动。换句话说,用户手臂的自然运动与用户如何握持和/或操作物理控制器112相关。

在一些实施方式中,区段11、13、15、17和19都可以经由关节b、c、d和e连接。例如,区段11可以经由关节b连接到区段13,区段13可以经由关节c连接到区段15,区段15可以经由关节d连接到区段17,区段17可以经由关节e连接到区段19。在一些实施方式中,区段17可以相对于区段15沿正交方向对准,区段15可以相对于区段13沿正交方向对准,并且区段13可以相对于区段11沿正交方向对准。

在一些实施方式中,连接的区段11、13、15、17和19可以代表用户的相应解剖身体部位。在本文描述的实施方式中,连接的区段11、13、15、17和19可以代表手臂成直角的用户身体的右侧。在一些实施方式中,当区段15经由关节d相对于区段17在正交方向上对准时,可以形成直角。

在一些实施方式中,区段11可以代表用户头部与胸部上方中心之间的身体部位,区段13可以代表用户的肩部,区段15可以代表用户的上臂,区段17可以代表用户的前臂,区段19可以代表用户的手。应当理解,这些区段仅仅是身体部位的说明性代表,并且身体的其他部位可以被代表。

在一些实施方式中,区段11、13、15、17和19的尺寸或长度可以代表普通成年人的相应解剖身体部位。例如,区段11可以是大约13-15厘米,区段13可以是大约15-18厘米,区段15可以是大约25-30厘米,区段17可以是大约25-30厘米,并且区段19可以是大约17-20厘米。这些尺寸仅仅是说明性的,而不是排他性的。

在一些实施方式中,区段19可以代表虚拟控制器的位置和/或运动,因为在该位置(例如,定位)处,用户握持物理控制器。区段19将模仿虚拟控制器的运动和/或取向。

在一些实施方式中,区段可用于确定物理控制器112的初始位置。在本文描述的实施方式中,物理控制器112的初始位置可以通过确定关节d的位置来确定。因此,区段11、13和15可以用于通过连接区段11、13和15来确定物理控制器112的初始位置。例如,区段11(例如,在关节a与关节b之间)可以连接到区段13(例如,在关节b与关节c之间),并且区段13可以连接到区段15(例如,在关节c与关节d之间)。在一些实施方式中,初始位置可以被确定为距hmd8的预定偏移位置或距离。

在一些实施方式中,区段17的物理运动距离可以相应地使虚拟控制器运动相同的距离。在其他实施方式中,区段17的运动距离可以不相应地使虚拟控制器运动相同的距离,而是替代地,系统可以逼近该距离。例如,如果使区段17的物理运动运动了距离“x”,则可以使虚拟控制器运动距离“y”,距离“y”可以小于或大于距离“x”。此外,物理控制器取向可以基于区段17和关节d,例如区段的长度和区段在关节d处的物理取向,被转换成虚拟控制器在虚拟环境中的虚拟位置和虚拟取向。

在一些实施方式中,除了本文描述的模型之外,在本公开的范围内也可以使用其他模型。例如,可以使用线框网格的模型,其可以包括刚性多边形网格的层次、一个或多个可变形网格或任何组合。此外,多个三角形可以用作定义用户形状的网格。此外,其他模型可以包括贴片、非均匀有理b样条、细分曲面或其他高阶曲面。

在一些实施方式中,模型可以可选地包括与当前姿势、一个或多个过去姿势和/或模型物理相关的信息。可以摆出姿势然后被模拟的任何模型都与本文描述的识别、分析和跟踪兼容。

图2a-2c示出了佩戴头戴式显示器(hmd)106的用户20的第三人透视图,通过头戴式显示器106可以向用户20显示虚拟现实环境105。图2a-2c中示出的对象50是用户20通过hmd106在vr环境105中看到的对象,但是为了便于描述,示出为由第三人视图看到。例如,图2a-2c所示的对象50被用户20通过hmd106看到,但实际上不会被第三人看到。为了便于描述,从第三人的角度类似地示出了该详细描述中的其他附图。在一些实施方式中,具体实施方式中描述的示例可以应用于多个对象和/或多个用户。

根据本文描述的实施方式,虚拟控制器113(例如,控制器的虚拟表示)也可以显示在vr环境105中。用户20可以使用(例如,采用)虚拟控制器113来与vr环境105中的对象50交互(例如,抓取、触摸、接触、握持等)。为了虚拟控制器113与对象50交互,梁70(例如,杆、棒等)可以用于与对象50交互。在一些实施方式中,物理控制器112可以包括几个按键来操作(例如,点击、触摸、滑动等)。例如,物理控制器112可以包括主按钮114a、菜单按钮114b和触摸板114c。在一些实施方式中,物理控制器112的相同键(例如,主按钮114a、菜单按钮114b和触摸板114c)可以显示在虚拟控制器113中(例如,在虚拟控制器113中表示)。

在一些实施方式中,触摸板114c可以用于激活/去激活梁70。例如,如果用户20与对象50交互,用户20通常指向对象50的方向,并且将梁70的端放置在对象50附近或对象50处,并且按压触摸板114c以激活(例如,抓取对象50),然后使对象50运动(或放置)在期望的位置。为了释放对象50,用户释放触摸板114c以释放对象50。

为了实现虚拟控制器113在vr环境105中的运动的有效和相对现实的呈现,本系统和方法使用物理控制器112相对于hmd106的实际物理位置,并将该运动转换到vr环境105内。根据本文描述的实施方式,虚拟控制器113的位置可以通过确定腕关节(例如,关节e)的位置来确定。腕关节可以对应于手和/或虚拟控制器113的位置。在一些实施方式中,腕关节的位置可以通过最初确定hmd106的位置、基于距hmd106的位置的预定距离定义肘关节(例如关节d)的位置、以及定义从肘关节到腕关节的区段来确定。(一个或多个)传感器可用于确定上述位置中每一个的位置,这将在后面描述。

如图2a所示,用户20可以在肘关节(例如,关节d)处使手臂运动。在该实施方式中,手臂可以从一侧向另一侧运动(例如,左右,绕轴z旋转(进出页面)),如箭头90a所示。换句话说,用户的手臂可以围绕z轴(例如,竖直轴)旋转。因此,用户手臂的运动和围绕物理控制器112的z轴的旋转使得虚拟控制器113(经由vr手臂模型)在vr环境105中以类似的方式相应地运动,如箭头91a所示。例如,当用户的手臂向右运动时,物理控制器112a也向右运动,导致虚拟控制器113向右运动,并且当用户的手臂向左运动时,物理控制器112b也向左运动,导致虚拟控制器113向左运动。在一些实施方式中,用户手臂的运动距离可以相应地使每个虚拟手臂模型的虚拟控制器113运动相应的距离。

在非限制性示例中,如果用户与门交互以关闭门,则用户可以通过按压触摸板114a并使物理控制器112向左运动来操作虚拟控制器113,使得虚拟控制器113以类似的方式运动。该操作将关闭vr环境中的门。

如图2b所示,用户20可以在肘部(例如关节d)使手臂运动。在该实施方式中,手臂可以上下运动,如箭头90b所示。换句话说,用户的手臂可以围绕y轴旋转。在本文描述的实施方式中,向上运动可以被示为具有相对于图2b的视图向页面外的方向,而向下运动可以被描述为具有相对于图2b的视图向页面内的方向。在一些实施方式中,用户手臂的运动导致虚拟控制器113(经由vr手臂模型)在vr环境105中以类似的方式相应地运动。例如,当用户的手臂向上运动时,物理控制器112a也向上运动,导致虚拟控制器113向上运动,并且当用户的手臂向下运动时,物理控制器112b也向下运动,导致虚拟控制器113向下运动。在一些实施方式中,用户手臂的运动距离可以相应地使每个虚拟手臂模型的虚拟控制器113运动相应的距离。

在非限制性实施例中,如果用户使物理控制器112向hmd106运动得更近,则虚拟控制器113(在vr环境中看到的)可以更靠近用户的视野。在一些实施方式中,虚拟控制器113可以具有关于控制器本身的信息。例如,虚拟控制器113可以包括与帮助、工具提示、电池寿命、电池使用和/或其他信息相关的特征。

在另一个非限制性实施例中,如果放置在传送带上的虚拟对象朝向用户20到来,则用户20可以通过使物理控制器112朝向对象向下运动来操作控制器113,按压触摸板114a以从传送器上取下对象,并且释放触摸板114a以在期望的位置释放对象。在一些实施方式中,期望的位置可以与被抓取对象的位置在同一位置。在一些实施方式中,期望的位置可以在与被抓取对象的位置不同的位置。

如图2c所示,用户20可以在手腕处使手臂(例如,关节e)运动。在该实施方式中,用户的手臂可以旋转,如箭头90c所示。换句话说,用户的手臂可以围绕x轴(例如,纵轴)旋转。根据本文描述的实施方式,围绕腕关节的左右旋转可以被图示为旋转手以露出手掌,并且然后旋转以露出手背。用户手腕的运动导致虚拟控制器113(经由vr手臂模型)在vr环境105中以类似的方式相应地运动,如箭头91c所示(这是围绕虚线x的旋转或可旋转运动)。例如,当用户的手腕向右旋转时,物理控制器112a向右旋转,导致虚拟控制器113向右旋转,并且当用户的手腕向左旋转时,物理控制器112b向左旋转,导致虚拟控制器113向左旋转。在一些实施方式中,用户手腕的运动距离可以相应地使每个vr手臂模型的虚拟控制器113运动相应的距离。

在非限制性示例中,使用上述门的类似示例,如果用户与门交互以转动门上的旋钮,则用户可以通过按压触摸板114a并向右旋转物理控制器112来操作虚拟控制器113,使得虚拟控制器113以类似的方式旋转。该操作将转动vr环境中门的旋钮。

在一些实施方式中,可以组合用户手臂和/或手腕的两个或多个运动。例如,用户的手臂可以按此顺序至少从一侧向另一侧运动(图2a)和至少上下运动(图2b),反之亦然。在另一个示例中,用户的手臂可以按此顺序至少从一侧向另一侧运动(图2a)和至少左右旋转(图2c),反之亦然。在又一个示例中,用户的手臂可以在至少侧部至少上下运动(图2b)并且至少从左右旋转(图2c),以此顺序或者反之亦然。

在一些实施方式中,可以组合用户手臂和/或手腕的三个或更多个运动。例如,用户的手臂可以按此顺序或顺序的任意组合至少从一侧向另一侧运动(图2a)、至少上下运动(图2b)和至少左右旋转(图2c)。

图3示出了根据本公开教导的用于创建三维(3d)vr环境105并与该环境交互的示例虚拟现实(vr)系统100的示意图。一般来说,系统100可以提供vr环境105和使人(例如,用户、佩戴者等)能够接近、观看、使用和/或与vr环境105交互的vr内容。vr系统100可以为用户提供访问内容、应用、虚拟对象、真实对象和vr控件的选项。图2a-2c的示例vr系统100可以包括佩戴hmd106并具有手持物理控制器112的用户20。图2a-2c中所示的示例vr环境105是在用户20的hmd106内为用户20显示的图像的表示。

如图3所示,vr应用110可以包括取向模块118、转换模块120和vr手臂模块122。vr应用或其部分可以被包括在物理控制器112、hmd106和/或vr系统108中。

取向模块118可以访问例如一个或多个惯性测量单元(imu)、光传感器、音频传感器、图像传感器、距离/接近传感器、位置传感器和/或其他传感器,以确定物理控制器112在现实世界中的取向,或者相对于虚拟环境的物理环境。在一些实施方式中,取向模块118可以并入在物理控制器112中。在一些实施方式中,取向模块118可以被配置成经由(一个或多个)传感器确定物理控制器112的取向。在其他实施方式中,取向模块118可以访问例如一个或多个惯性测量单元、光传感器、音频传感器、图像传感器、距离/接近传感器、位置传感器和/或其他传感器,以跟踪hmd106在现实世界中的物理位置,或者相对于虚拟环境的物理环境。在一些实施方式中,取向模块118可以并入在hmd106中。在一些实施方式中,取向模块118可以被配置成经由(一个或多个)传感器确定hmd106的位置。

在一些实施方式中,取向模块118可以被包括在物理控制器112和/或hmd106中。在一些实施方式中,取向模块118的操作可以在物理控制器112和/或hmd106中执行。

取向模块118可以访问本文描述的任意数量的存储器和/或传感器,以确定与vr环境105内的运动对象相关联的物理控制器112、用户、虚拟对象以及区域的特定取向。例如,取向模块118可以确定物理控制器112的取向(例如,偏转、俯仰和/或滚转)。

一旦取向模块118确定物理控制器112的取向,转换模块120可以将物理控制器112的运动转换到vr环境105中。在一些实施方式中,转换模块120可以基于以下运动来转换物理控制器112的运动:a)从一侧向另一侧的运动(例如偏转),b)上下运动(例如俯仰),和/或c)左右旋转(例如滚转)。

vr手臂模块122可以产生虚拟手臂模型。在一些实施方式中,转换模块120可以使用由手臂模块122产生的手臂模型,并且使用来自取向模块118和手臂模块122的信息来产生虚拟控制器的虚拟位置和/或取向。

在一些实施方式中,取向模块118和/或转换模块120可以允许物理控制器112与虚拟对象交互。控制器交互可以被解释为要在虚拟对象上执行的物理手势(例如,运动)。例如,用户然后可以操作虚拟控制器来指向或触摸对象。这种运动可以用3dof运动来执行和描绘。

示例vr系统108可以包括能够通过网络101交换数据的任意数量的计算和/或电子设备。这些设备可以代表客户端或服务器,并且可以经由网络101或任何其他附加和/或替代的(一个或多个)网络进行通信。示例客户端设备包括但不限于hmd106、物理控制器112、移动设备102(例如智能手机、个人数字助理、便携式媒体播放器等)、膝上型电脑或上网本103、台式计算机104、电子平板电脑(未示出)、相机(未示出)、游戏设备(未示出)以及能够使用网络101或其他(一个或多个)网络与其他计算或电子设备或系统进行通信,或者可以用于访问vr内容或在vr环境中操作的任何其他电子或计算设备。设备102-104、106和112可以代表客户端或服务器设备。设备102-104、106和112可以执行客户端操作系统,以及一个或多个客户端应用,这些客户端应用可以在被包括在每个相应设备102-104、106和112中或与每个相应设备102-104、106和112结合的显示设备上访问、呈现、提供或显示vr内容。

vr系统108可以代表服务器设备。一般而言,vr系统108可以包括存储内容和/或虚拟现实软件模块的任意数量的储存库,虚拟现实软件模块可以生成、修改或执行虚拟现实场景。在所描绘的示例中,vr系统108包括vr应用110,该应用可以访问和呈现系统108的内容和/或控件。在一些实施方式中,vr应用110可以在设备102-104中的一个或多个上本地运行。vr应用110可以被配置为在任何或所有设备102-104上执行,并且例如在使用物理控制器112时被控制或操作。

本公开中描述的特定实施方式可以使用户能够使用物理控制器112来与vr环境交互。例如,用户可以握持物理控制器112来选择和操纵vr环境中的3d虚拟对象。示例物理控制器112可以包括接纳控制器设备的内部组件的壳体,以及用户可接近的壳体外部的用户接口(未示出)。用户接口可以包括多个不同类型的操纵设备(在图2a-2c中未详细示出),包括例如被配置成接收用户触摸输入的(一个或多个)触敏表面、按钮、旋钮、操纵杆、切换键、滑块和其他这种操纵设备。

物理控制器112上可以包括一个或多个传感器。传感器可以被触发以向vr环境提供输入,例如,通过用户接近物理控制器112和hmd设备106。传感器可以包括但不限于触摸屏传感器、加速度计、陀螺仪、压力传感器、生物传感器、温度传感器、湿度传感器和环境光传感器。物理控制器112可以使用传感器来确定在vr环境中检测到的物理控制器112的旋转。然后,旋转可以用作vr环境的输入。在一个非限制性示例中,物理控制器112可以作为棒、铅笔或钢笔、绘图工具、控制器、遥控器、激光指示器、移动电话、画笔或其他对象等并入到vr环境中。当物理控制器112被并入到vr环境中(或在vr环境中表示)时,用户对物理控制器112的定位可以允许用户定位特定的虚拟对象,以及在vr环境中定位棒、画笔、铅笔或钢笔、绘图工具、控制器、遥控器、激光指示器、移动电话、画笔或其他对象。在一些实施方式中,这种定位可以用作使用锚点操纵对象的触发器。

hmd设备106可以代表虚拟现实头戴式装置、眼镜、目镜或能够显示虚拟现实内容的其他可佩戴设备。在操作中,hmd设备106可以执行vr应用,该应用可以通过hmd设备106中的显示器(未示出)向用户回放所接收和/或处理的图像。在一些实施方式中,vr应用110可以由设备102-104和106中的一个或多个托管。

在一些实施方式中,示例hmd设备106可以包括耦合到框架的壳体,音频输出设备包括例如安装在耳机中的扬声器。在示例hmd设备106中,显示器(未示出)可以安装在壳体前部的面向内部的一侧。透镜可以安装在壳体中,在用户的眼睛与显示器之间。在一些实施方式中,hmd设备106可以包括感测系统,该感测系统包括各种传感器,例如(一个或多个)音频传感器、(一个或多个)图像/光传感器、位置传感器(例如,包括陀螺仪和加速度计的惯性测量单元)等。hmd设备106还可以包括控制系统,该控制系统包括处理器和各种控制系统设备,以促进hmd设备106的操作。

在一些实施方式中,hmd设备106可以包括一个或多个相机(未示出)来捕获静止和运动图像。由这种相机捕获的图像可用于帮助跟踪用户和/或物理控制器112在现实世界中的物理位置,或相对于vr环境的物理环境,和/或可在显示器上以通过模式向用户显示,允许用户暂时离开虚拟环境并返回物理环境,而无需移除hmd设备106或以其他方式改变hmd设备106的配置。

在一些实施方式中,移动设备102可以被放置和/或位于hmd设备106内。移动设备102可以包括可以用作hmd设备106的屏幕的显示设备。移动设备102可以包括用于执行vr应用110的硬件和/或软件。在一些实施方式中,hmd设备106可以在六个自由度内提供位置和用户运动的完全跟踪。跟踪可以基于用户手的运动、头部的运动、眼睛的运动或者基于用户输入的控制器运动的跟踪。

额外的设备是可能的,并且这些设备可以被配置为彼此替代。在一些实施方式中,设备102-104可以是膝上型或台式计算机、智能电话、个人数字助理、便携式媒体播放器、平板计算机、游戏设备或能够使用网络101与其他计算设备或计算机系统通信的其他适当的计算设备。

在示例系统100中,例如,hmd设备106可以连接到设备102或设备104,以访问vr系统108上的vr内容。设备102或104可以连接(有线或无线)到提供vr内容用于显示的hmd设备106。

在一些实施方式中,一个或多个内容服务器(例如,vr系统108)和一个或多个计算机可读存储设备可以使用网络101与计算设备102-104、106通信,以向设备102-104和106提供vr内容。在一些实施方式中,网络101可以是公共通信网络(例如,互联网、蜂窝数据网络、电话网络上的拨号调制解调器)或专用通信网络(例如,专用lan、租用线路)。在一些实施方式中,计算设备102-108可以使用一个或多个高速有线和/或无线通信协议(例如,802.11变型、wi-fi、蓝牙、传输控制协议/互联网协议(tcp/ip)、以太网、ieee802.3等)与网络101通信。

在一些实施方式中,移动设备102可以执行vr应用110,并为vr环境提供内容。在一些实施方式中,膝上型计算设备可以执行vr应用110,并且可以从一个或多个内容服务器(例如vr系统108)提供内容。一个或多个内容服务器和一个或多个计算机可读存储设备可以使用网络101与移动设备102、膝上型计算设备104和/或物理控制器112通信,以提供用于在hmd设备106中显示的内容。

图4是描绘在vr环境中可通信地耦合到hmd设备106的物理控制器112的框图。在操作中,系统100可以被配置为提供容纳任意数量的虚拟对象的vr环境,这些虚拟对象可以用图3所示的设备来操纵。物理控制器112可以与hmd设备106接合,以生成沉浸式虚拟环境。物理控制器112可以与hmd设备106配对,例如,以建立设备之间的通信,并促进用户与沉浸式vr环境的交互。在一些实施方式中,物理控制器112可以与hmd设备106配对,但是可以替代地由vr应用110中的跟踪模块116或另一外部跟踪设备来跟踪。

参考图4,物理控制器112包括感测系统460和控制系统470。感测系统460可以包括一种或多种不同类型的传感器,包括例如光传感器、音频传感器、图像传感器、距离/接近传感器、位置传感器(例如,包括陀螺仪和加速度计的惯性测量单元(imu))和/或其他传感器和/或传感器的(多种)不同组合,包括例如定位以检测和跟踪与用户相关联的眼睛凝视的图像传感器。控制系统470可以包括例如驱动/暂停控制设备、音频和视频控制设备、光学控制设备、转变控制设备和/或其他这样的设备和/或设备的(多种)不同组合。取决于特定的实施方式,感测系统460和/或控制系统470可以包括更多或更少的设备。

物理控制器112还可以包括与感测系统460和控制系统470通信的至少一个处理器490、存储器480和通信模块450,通信模块450提供物理控制器112与另一个外部设备之间的通信,外部设备为例如(一个或多个)后续控制器和/或(一个或多个)hmd设备。

通常,本公开中描述的系统和方法可以跟踪用户的手或物理控制器112,并分析与vr环境中的这种手和/或控制器相关联的用户运动,以确定这种运动的意图。

图5示出了可以被执行以确定如本文所公开的虚拟控制器在vr环境中的位置的示例方法500。图5的示例方法500开始于确定用户的hmd的位置(框502),基于hmd的位置定义关节的位置(框504),定义从关节到区段的末端的区段(框506),以及基于该区段和关节将物理控制器取向转换成虚拟控制器在vr环境中的虚拟位置和虚拟取向(框508)。

在框502,可以在用户头部的中心确定用户的hmd的位置。根据本文描述的实施方式,握持控制器的用户应该直视前方,并且手臂成直角。

在框504,可以基于在框502确定的hmd的位置来定义第一关节的位置。

在框506,定义从关节(例如关节d)到区段末端的区段。在一些实施方式中,区段末端可以对应于关节(例如,关节e)。根据本文描述的实施方式,该区段可以代表用户的前臂。该区段可以围绕关节d运动。在一些实施方式中,该区段可以至少在从一侧向另一侧的方向(例如,左右)上围绕关节(例如,关节d)运动。在其他实施方式中,区段可以至少在上下方向上围绕关节(例如关节d)运动。

在框508,物理控制器位置和取向可以基于区段和关节被转换成在vr环境中的虚拟控制器位置和取向。虚拟控制器可以相应地以与物理控制器相似的方式运动。

图5的示例方法500或本文公开的其他方法可以实施为由一个或多个处理器执行的机器可读指令,以控制或操作本文公开的示例显示组件。可以使用、配置和/或编程处理器、控制器和/或任何其他合适的处理设备来执行和/或实现本文公开的示例方法。例如,图5的示例方法500或本文公开的其他方法可以实现在存储在处理器、计算机和/或具有处理器的其他机器可访问的有形和/或非暂时性计算机可读介质上的程序代码和/或机器可读指令中,诸如结合下面的图3讨论的。机器可读指令可以包括例如使得处理器、计算机和/或具有处理器的机器执行一个或多个特定过程的指令。可以采用实施图5的示例方法500的许多其他方法,或者本文公开的其他方法。例如,可以改变执行次序,和/或可以改变、消除、细分或组合所描述的框和/或交互中的一个或多个。此外,图5的整个示例方法500中的任何一个,或者本文公开的其他方法,可以通过例如单独的处理线程、处理器、设备、离散逻辑、电路等顺序地和/或并行地执行。

图6示出了另一示例方法600,该方法可被执行以确定如本文所公开的虚拟控制器在vr环境中的位置。图6的示例方法500开始于确定用户的hmd的位置(框602),基于hmd的位置定义关节的位置(框604),定义从关节到区段末端的区段(框606),基于区段末端的位置定义虚拟控制器在虚拟环境中的初始虚拟位置(框608),以及响应于物理控制器的取向运动,基于区段和关节来定义虚拟控制器在虚拟环境中的虚拟位置和虚拟取向(框610)。

图7a和7b是根据示例性实施例的当用户相对于关节运动时,由上面的第三人观看的用户的示意图。图7a示出了在与第一关节d1相关联的第一位置处的用户20。图7b示出了在与不同位置的第一关节d2相关联的第二位置的用户20。

在一些实施方式中,如之前上面所讨论,关节d1的位置可以通过测量从用户头部a1(或hmd)的一部分(例如中心)到关节d1(例如肘关节)的距离来确定。例如,如前文所讨论,关节d1的位置可以由区段(例如,区段11、13和15)来确定,以获得关节d1的位置。

如图7a所示,用户20向前看,如线x所定义的,并且控制器212也在向前的位置(例如,平行于线x)。这可以定义为第一位置。在一些实施方式中,从侧视图看,第一位置可以包括用户20的手臂成直角,例如,第一区段(例如,区段15)与第二区段(例如,区段17)正交。用户手臂的一端是关节e1。关节e1的位置可用于确定控制器212的位置。

在一些实施方式中,用户20的第一位置还可以包括确定肩关节(例如,关节c)的位置。在一些实施方式中,肩关节可以帮助将用户在第一位置对准。在本文描述的实施方式中,当从俯视图看时,肩关节和关节d1似乎在相同的位置,因为可以在肩关节与关节d1之间定义的区段15与区段17成直角。

在非限制性示例中,当用户20处于第一位置(例如,直视前方)时,基于肩关节的至少一个位置,用户20可以使控制器212更靠近用户的面部,这然后使得vr环境中的虚拟控制器以类似的方式运动(例如,在vr环境中更靠近用户的面部)。当保持肩部伸直(或关节d1静止)时,用户20然后可以向左或向右转动他的头,而虚拟控制器在vr环境中没有运动(例如,仍然在用户面部前方)。因为肩部(或关节d1)保持静态(例如静止、不动、固定等),即使用户20转头,虚拟控制器也保持静态。因此,不需要进一步校准控制器。

在一些实施方式中,用户和/或物理控制器的角速度可以确定虚拟控制器的运动。在本文描述的实施方式中,角速度可以测量其角位移相对于时间的变化率。换句话说,用户和/或物理控制器相对于时间运动的快慢。如果运动满足(例如,符合)角速度的某个阈值(例如,条件),则虚拟控制器可以运动。例如,使用上面的类似示例,当肩部的位置保持静态时,用户20相对快速地向左或向右转动他的头部,系统和方法可以确定虚拟控制器将保持在其位置和取向,因为已经满足了特定的角速度阈值(或条件)。

在另一个非限制性示例中,另一方面,如果用户以相对缓慢的方式转动他的头部(并且不满足角速度条件),则系统和方法可以确定用户的位置可以改变,并且从而使虚拟控制器的位置运动。

在另一个非限制性示例中,如果用户相对快速地使物理控制器(例如,向上和向下)(并且满足角速度条件)运动,则系统和方法可以确定虚拟控制器将在满足特定角速度阈值(或条件)时保持在其位置和取向。

在另一个非限制性示例中,另一方面,如果用户相对缓慢地使(例如,向上和向下)(并且满足角速度条件)物理控制器运动,则系统和方法可以确定虚拟控制器的位置可以根据用户的运动而改变。

在一些实施方式中,用户和物理控制器角速度都可以用于确定是否使虚拟控制器移动。例如,如果用户的头部和物理控制器同时相对快速地运动以满足阈值(或条件),则系统和方法可以确定使虚拟控制器运动到其期望的位置。

如图7b所示,当用户20在关节a1处使位置移动(例如,将身体近似向右转动)时,与第一位置相关联的关节d1也运动,使得关节(例如,现在在d2)以相似的距离和/或取向运动。因此,这可能导致关节e1的位置以相似的距离和/或取向运动(例如,现在在e2)。关节d1(和关节e1)的位置是动态的,这意味着当用户20的位置改变时关节d1(和关节e1)运动。如该示例性实施方式中所示,用户20可能已经旋转了大约例如与肩部相关联的30度。在一些其他实施方式中,例如,用户可以在与肩部相关联的0到360度之间旋转。

在一些实施方式中,hmd106和/或物理控制器112可以被重新校准(例如,重新居中)。根据本文描述的实施方式,重新校准是将用户20和物理控制器112的位置设置在向前和/或向前看的位置。在一些实施方式中,重新校准可以基于hmd106相对于物理控制器112的预定位置。更具体地,用户位置是相对于第二关节(例如,e1)位置的位置。

在一些实施方式中,为了重新校准hmd106和/或物理控制器112,用户20可以操作物理控制器112上的键来重置hmd106和/或物理控制器112的位置和/或取向。例如,用户20可以按下物理控制器112的主按钮114a来重置物理控制器112的位置和/或取向。

如图1所示,根据本文描述的实施方式的系统和方法可以重新校准仅在z轴(例如,向上轴)上测量的运动。在如图1所示的x轴(例如,从一侧到另一侧的轴)和如图1所示的x轴(例如,前后轴)上测量的运动通常不应该被重新校准,因为这些运动不在同一平面上侧向运动(例如,从一侧向另一侧)。

参考图8,通用计算机设备p00和通用移动计算机设备p50的示例,它们可以与这里描述的技术一起使用。计算设备p50可用于实施本文公开的设备中的任一个,包括但不限于hmd106、物理控制器112、设备102-108和控制器110。计算设备p00旨在表示各种形式的数字计算机,例如膝上型计算机、台式机、平板电脑、工作站、个人数字助理、电视、服务器、刀片服务器、大型机和其他适当的计算设备。计算设备p50旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里示出的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文中描述和/或要求保护的发明的实施方式。

计算设备p00包括处理器p02、存储器p04、存储设备p06、连接到存储器p04和高速扩展端口p10的高速接口p08、以及连接到低速总线p14和存储设备p06的低速接口p12。处理器p02可以是基于半导体的处理器。存储器p04可以是基于半导体的存储器。组件p02、p04、p06、p08、p10和p12中的每一个都使用各种总线、连接、存储器、高速缓存等互连并且可以安装在公共主板上或者以其他适当的方式安装。处理器p02可以处理用于在计算设备p00内执行的指令,包括存储在存储器p04中或在存储设备p06上的指令,以用于在外部输入/输出设备上的gui的发光部分图形信息,诸如耦合到高速接口p08的发光部分p16。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备p00,每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。

存储器p04在计算设备p00内存储信息。在一个实施方式中,存储器p04是一个或多个易失性存储单元。在另一实施方式中,存储器p04是一个或多个非易失性存储单元。存储器p04也可以是另一种形式的计算机可读介质,例如磁盘或光盘。

存储设备p06能够为计算设备p00提供大容量存储。在一个实施方式中,存储设备p06可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其他类似的固态存储设备,或设备阵列,包括存储区域网络中的设备或其他配置。计算机程序产品可以有形地实现在信息载体中。计算机程序产品还可以包含指令,当被执行时,这些指令执行一种或多种方法,例如上文描述的方法。信息载体是计算机或机器可读介质,例如存储器p04、存储设备p06或处理器p02上的存储器。

高速控制器p08管理计算设备p00的带宽密集型操作,而低速控制器p12管理较低带宽密集型操作。这种功能分配仅是示例性的。在一个实施方式中,高速控制器p08耦合到存储器p04、发光部分p16(例如,通过图形处理器或加速器),以及可以接受各种扩展卡(未示出)的高速扩展端口p10。在实施方式中,低速控制器p12耦合到存储设备p06和低速扩展端口p14。可以包括各种通信端口(例如,usb、蓝牙、以太网、wi-fi)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。

如图所示,计算设备p00可以以多种不同的形式实施。例如,它可以实施为标准服务器p20,或者在一组这样的服务器中多次实施。它也可以作为机架式服务器系统p24的一部分来实施。此外,它可以在诸如膝上型计算机p22的个人计算机中实施。替选地,来自计算设备p00的组件可以与诸如设备p50的移动设备(未示出)中的其他组件相组合。这样的设备中每一个可以包含计算设备p00、p50中的一个或多个,并且整个系统可以由彼此通信的多个计算设备p00、p50构成。

计算设备p50包括处理器p52、存储器p64、诸如发光部分p54的输入/输出设备、通信接口p66和收发器p68以及其他组件。设备p50还可以设置有存储设备,诸如微驱动器或其他设备,以提供额外的存储。组件p50、p52、p64、p54、p66和p68中的每一个都使用各种总线互连,并且这些组件中的若干组件可以安装在公共主板上或者以其他适当的方式安装。

处理器p52可以执行计算设备p50内的指令,包括存储在存储器p64中的指令。处理器可以实施为芯片的芯片组,芯片的芯片组包括单独的和多个模拟和数字处理器。处理器可以提供例如设备p50的其他组件的协调,诸如用户接口的控件、设备p50运行的应用以及设备p50的无线通信。

处理器p52可以通过控制接口p58和耦合到发光部分p54的发光部分接口p56与用户通信。发光部分p54可以是例如tftlcd(薄膜晶体管液晶发光部分)或oled(有机发光二极管)发光部分,或其他合适的发光部分技术。发光部分接口p56可以包括用于驱动发光部分p54向用户呈现图形和其他信息的适当电路。控制接口p58可以接收来自用户的命令,并转换它们以提交给处理器p52。此外,可以提供与处理器p52通信的外部接口p62,以使得设备p50能够与其他设备进行近区通信。外部接口p62可以例如在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且也可以使用多个接口。

存储器p64在计算设备p50内存储信息。存储器p64可以实施为一个或多个计算机可读介质、一个或多个易失性存储单元或一个或多个非易失性存储单元中的一个或多个。还可以提供扩展存储器p74,并通过扩展接口p72连接到设备p50,扩展接口p72可以包括例如simm(单列直列存储器模块)卡接口。这种扩展存储器p74可以为设备p50提供额外的存储空间,或者也可以为设备p50存储应用或其他信息。具体地,扩展存储器p74可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器p74可以被提供作为设备p50安全模块,且可以用允许安全使用设备p50的指令来编程。此外,可以经由simm卡提供安全应用,以及附加信息,诸如以不可破解的方式在simm卡上放置识别信息。

如下文所讨论,存储器可以包括例如闪速存储器和/或nvram存储器。在一个实施方式中,计算机程序产品有形地实现在信息载体中。计算机程序产品包含当被执行时实现一种或多种方法的指令,诸如上文描述的方法。信息载体是计算机或机器可读介质,诸如可以例如通过收发器p68或外部接口p62接收的存储器p64、扩展存储器p74或处理器p5上的存储器。

设备p50可以通过通信接口p66无线通信,通信接口p66在必要时可以包括数字信号处理电路。通信接口p66可以提供各种模式或协议下的通信,诸如gsm语音呼叫、sms、ems或mms消息、cdma、tdma、pdc、wcdma、cdma2000或gprs等。这种通信可以例如通过射频收发器p68发生。此外,可以进行短程通信,诸如使用蓝牙、wi-fi或其他这样的收发器(未示出)。此外,gps(全球定位系统)接收器模块p70可以向设备p50提供附加的导航和位置相关无线数据,这些数据可以被运行在设备p50上的应用适当地使用。

设备p50还可以使用音频编解码器p60可听地通信,音频编解码器p60可以从用户接收口头信息,并将该信息转换成可用的数字信息。音频编解码器p60同样可以为用户生成可听声音,诸如通过扬声器,例如在设备p50的头戴式耳机中。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备p50上运行的应用产生的声音。

如图所示,计算设备p50可以以多种不同的形式实施。例如,它可以被实施为蜂窝电话p80。它也可以被实施为智能电话p82、个人数字助理或其他类似移动设备的一部分。

这里描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的asic(应用型专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些不同的实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用的或通用的,耦合成从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实施。如本文所使用的,术语“机器可读介质”、“计算机可读介质”指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指用于向可编程处理器提供机器指令和/或数据的任何信号。

方法步骤可以由执行计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。方法步骤也可以由专用逻辑电路来执行,并且装置可以被实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(应用型专用集成电路)。

举例来说,适于处理计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可以包括用于执行指令的至少一个处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还可以包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)或可操作地耦合成从用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或向其传送数据,或者两者兼有。适于实现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,例如包括半导体存储设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和cd-rom以及dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入到专用逻辑电路中。

为了提供与用户的交互,这里描述的系统和技术可以在计算机上实施,该计算机具有用于将信息发光分布到用户的发光部分设备(例如crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户可以向计算机提供输入的键盘和定点设备(例如鼠标或轨迹球)。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以从用户接收任何形式的输入,包括声音、语音或触觉输入。

这里描述的系统和技术可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户接口或web浏览器的客户端计算机,用户可以通过它与这里描述的系统和技术的实施方式进行交互),或者这种后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”)、广域网(“wan”)和因特网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在相应的计算机上运行的计算机程序产生的,并且彼此之间具有客户端-服务器关系。

本文使用诸如但不限于、近似、基本、一般等的术语用于表示不必要并且不需要指定精确的值或其范围。如本文所使用的,上面讨论的术语对于本领域普通技术人员来说将具有现成的和方便的含义。

此外,本文使用诸如上、下、左、右、顶、底、侧、端、前、后等术语参考当前考虑或示出的取向使用。如果它们是相对于另一个取向来考虑的,应该理解,这些术语必须相应地修改。

此外,在本说明书和所附权利要求中,单数形式“一(a)”、“一个(an)”和“该(the)”不排除复数引用,除非上下文另有明确指示。此外,诸如“和”、“或”、“和/或”的连词是包含性的,除非上下文另有明确指示。例如,“a和/或b”包括单独的a、单独的b以及a与b。

此外,各图中所示的连接线和连接器旨在表示各种元件之间的示例性功能关系和/或物理或逻辑耦合。应当注意,可以存在许多替选和/或附加的功能关系、物理连接或逻辑连接。此外,对于本公开的实践来说,没有任何项目或组件是必要的,除非该元素被具体描述为“必要的”或“关键的”。另外,图和/或附图不是按比例绘制的,而是为了说明和描述的清楚而绘制的。

虽然本文已经描述了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。应当理解,本文使用的术语是为了描述特定方面,而不是为了限制。相反,本专利涵盖完全落入本专利权利要求范围内的所有方法、装置和制品。

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