用于经由虚拟控制对象接收手势输入的方法和系统与流程

文档序号:14352946阅读:220来源:国知局
用于经由虚拟控制对象接收手势输入的方法和系统与流程

本发明的示例实施例一般地涉及用于虚拟现实接口的输入方法,并且更具体地,涉及用于经由虚拟控制对象接收手势输入的方法、系统、设备和计算机可读介质。



背景技术:

技术进步已导致消费电子装置变得越来越强大。具体来说,显示、图形、处理器和传感器技术的进步已经提供了技术突破,这些技术突破使得大量生产和销售能够为消费者提供虚拟现实(vr)体验的装置变得可行。在这方面,vr接口的当前实现方式中的问题和挑战已经由发明人识别,并且这些问题和挑战的解决方案在示例性实施例中被实现。



技术实现要素:

本发明的各种实施例涉及用于提供虚拟现实接口的改进的设备、方法和计算机可读介质。根据一个示例性实施例,提供了一种用于实现虚拟控制的计算机可执行方法。该方法包括:接收指示物理环境状态的数据;由处理器处理指示物理环境状态的数据,以确定至少一个用户的物理位置;由所述处理器并且基于所述至少一个用户的位置确定物理环境状态内的至少一个物理锚点位置;通过虚拟环境状态管理电路将物理锚点位置映射到虚拟环境状态内的虚拟锚点位置,其中虚拟环境状态包括多个虚拟坐标位置,虚拟坐标位置映射到所述物理环境状态的至少一部分;以及由虚拟环境状态管理电路从所述多个虚拟坐标位置确定用于至少一个虚拟控制的特定虚拟坐标位置。至少部分地通过如下方式来确定所述特定虚拟坐标位置:识别虚拟控制定位偏移,虚拟控制定位偏移指示相对于虚拟锚点位置的相对位置;以及将虚拟控制定位偏移应用于虚拟锚点位置来确定特定虚拟坐标位置,其中所述特定虚拟坐标位置和所述虚拟锚点位置之间的第一相对位置对应于映射到所述特定虚拟坐标位置的特定物理坐标位置与所述物理锚点位置之间的第二相对位置。该方法还包括:指令被配置为显示虚拟环境状态的显示装置在特定虚拟坐标位置处显示虚拟控制。

在一些实施例中,该方法还可以包括:确定用户的至少一部分的物理位置在与映射到特定虚拟坐标位置的物理环境状态对应的物理环境的限定区域内;以及,响应于将所述至少一个用户的物理位置映射到所述特定虚拟坐标位置,执行与所述虚拟控制相关联的功能。该方法还可以包括:仅响应于确定至少一个用户的物理位置已经接近映射到特定虚拟坐标位置的物理位置达至少阈值时间段来执行与所述虚拟控制相关联的功能。所述至少一个用户的物理位置可以是用户的头部或肩部。虚拟控制可以与一个或多个特定手势相关联,并且虚拟控制的功能可以仅响应于在映射到围绕特定虚拟坐标位置的限定区域的物理位置处实施所述一个或多个手势中的至少一个而被执行。所述数据可以指示物理环境状态从至少一个传感器接收,并且其中所述至少一个传感器是摄像机或红外接收器中的至少一个。显示装置可以是头戴式显示器。物理锚点位置可以至少部分地通过检测安装在头戴式显示器上的红外发射器来确定。该方法还可以包括:确定至少一个用户的观看角度;以及仅响应于确定所述观看角度对应于与特定虚拟坐标位置对应的物理环境的区域而显示虚拟控制。该方法还可以包括:确定所述至少一个用户的观看角度;以及响应于确定所述观看角度对应于与虚拟控制对象的特定虚拟坐标位置相对应的物理环境的区域而实现与虚拟控制的交互。可以至少部分地基于从头戴式装置接收的传感器读数来确定用户的观看角度。确定物理锚点位置可以响应于以下至少一项而被实施:打开所述显示装置或把显示装置放置在用户的头部上。可以至少部分地基于初始化的虚拟控制的数量或者检测到的用户的高度来确定虚拟控制定位偏移的分量值。

根据另一示例性实施例,提供了一种用于在虚拟现实环境中实现虚拟控制的计算机实现的方法。该方法包括:接收指示物理环境状态的数据;由处理器处理指示物理环境状态的数据,以确定物理对象的物理位置;由处理器基于物理对象的物理位置确定虚拟环境状态内的至少一个虚拟锚点位置;由虚拟环境状态管理电路确定虚拟控制在虚拟环境状态中相对于虚拟锚点位置的虚拟控制位置;由虚拟环境状态管理电路把所述虚拟控制位置映射到与物理环境状态对应的物理环境中的控制的物理位置;以及指令被配置为显示所述虚拟环境状态的显示装置显示所述虚拟环境状态,使得所述虚拟控制显示在所述虚拟控制位置。

该方法还可以包括在经由显示装置显示虚拟控制之前,确定显示装置的观看角度朝向物理位置的角度。在一些实施例中,该方法包括:确定物理对象的物理位置在与映射到所述特定虚拟坐标位置的物理环境状态对应的物理环境的限定区域内,以及响应于确定用户的物理位置接近所述控制的物理位置,执行与虚拟控制相关联的功能。该方法可包括:仅响应于确定物理对象的物理位置已经接近控制的物理位置达至少阈值时间段而执行与所述虚拟控制相关联的功能。所述虚拟锚点位置可以与用户的头部的物理位置相关联。所述至少一个传感器可以是摄像机或红外接收器中的至少一个。该显示装置可以是头戴式显示器。确定虚拟锚点位置可以响应于以下至少一项而被实施:打开所述显示装置或把显示装置放置在用户的头部上。

根据另一示例性实施例,提供了一种非临时性计算机可读存储介质。所述存储介质包括指令,当由处理器执行时,所述指令使得所述处理器实现虚拟现实环境中的虚拟控制。所述指令使该过程执行如下功能:接收指示物理环境状态的数据;处理指示物理环境状态的数据,以确定至少一个用户的物理位置;基于所述至少一个用户的位置确定物理环境状态内的至少一个物理锚点位置;将物理锚点位置映射到虚拟环境状态内的虚拟锚点位置,其中虚拟环境状态包括多个虚拟坐标位置,虚拟坐标位置映射到所述物理环境状态的至少一部分;以及从所述多个虚拟坐标位置确定用于至少一个虚拟控制的特定虚拟坐标位置。虚拟坐标位置至少通过如下方式确定:识别虚拟控制定位偏移,虚拟控制定位偏移指示相对于虚拟锚点位置的相对位置;以及将虚拟控制定位偏移应用于虚拟锚点位置以确定特定虚拟坐标位置,其中所述特定虚拟坐标位置和所述虚拟锚点位置之间的第一相对位置对应于映射到所述特定虚拟坐标位置的特定物理坐标位置与所述物理锚点位置之间的第二相对位置。所述指令还将所述处理器配置为:指令被配置为显示虚拟环境状态的显示装置在特定虚拟坐标位置处显示虚拟控制。

在一些实施例中,所述指令还包括:确定用户的至少一部分的物理位置在与映射到特定虚拟坐标位置的物理环境状态对应的物理环境的限定区域内;以及,响应于将所述至少一个用户的物理位置映射到所述特定虚拟坐标位置,执行与所述虚拟控制相关联的功能。所述指令还把处理器配置为:仅响应于确定至少一个用户的物理位置已经接近映射到特定虚拟坐标位置的物理位置达至少阈值时间段而执行与所述虚拟控制相关联的功能。所述至少一个用户的物理位置可以是用户的头部或肩部。

虚拟控制可以与一个或多个特定手势相关联,并且其中,虚拟控制的功能可以仅响应于在映射到围绕特定虚拟坐标位置的限定区域的物理位置处实施所述一个或多个手势中的至少一个而被执行。所述数据可以指示物理环境状态从至少一个传感器接收,并且其中所述至少一个传感器是摄像机或红外接收器中的至少一个。显示装置可以是头戴式显示器。物理锚点位置可以至少部分地通过检测安装在头戴式显示器上的红外发射器来确定。该指令还可以把处理器配置为:确定至少一个用户的观看角度;以及仅响应于确定所述观看角度对应于与特定虚拟坐标位置对应的物理环境的区域而显示虚拟控制。该指令还可以把处理器配置为:确定所述至少一个用户的观看角度;以及响应于确定所述观看角度对应于与虚拟控制对象的特定虚拟坐标位置相对应的物理环境的区域而实现与虚拟控制的交互。可以至少部分地基于从头戴式装置接收的传感器读数来确定用户的观看角度。该指令还可以把处理器配置为:确定所述至少一个用户的观看角度;以及响应于确定所述观看角度对应于与虚拟控制对象的特定虚拟坐标位置相对应的物理环境的区域而实现与虚拟控制的交互。可以至少部分地基于从头戴式装置接收的传感器读数来确定用户的观看角度。确定物理锚点位置可以响应于以下至少一项而被实施:打开所述显示装置或把显示装置放置在用户的头部上。可以至少部分地基于初始化的虚拟控制的数量或者检测到的用户的高度来确定虚拟控制定位偏移的值。

根据另一示例性实施例,提供了另一种非临时性计算机可读存储介质。所述存储介质包括指令,当由处理器执行时,所述指令使得所述处理器实现虚拟现实环境中的虚拟控制。所述指令将处理器配置为至少:接收指示物理环境状态的数据;处理指示物理环境状态的数据,以确定物理对象的物理位置;基于物理对象的物理位置确定虚拟环境状态内的至少一个虚拟锚点位置;确定虚拟控制在虚拟环境状态中相对于虚拟锚点位置的虚拟控制位置;把所述虚拟控制位置映射到与物理环境状态对应的物理环境中的控制的物理位置;以及指令被配置为显示所述虚拟环境状态的显示装置显示所述虚拟环境状态,使得所述虚拟控制显示在所述虚拟控制位置。

在一些实施例中,所述指令可以将所述处理器配置为:在经由显示装置显示虚拟控制之前,确定显示装置的观看角度朝向物理位置的角度。所述指令还可以将设备配置为:确定物理对象的物理位置在与映射到所述特定虚拟坐标位置的物理环境状态对应的物理环境的限定区域内,以及响应于确定用户的物理位置接近所述控制的物理位置,执行与虚拟控制相关联的功能。所述指令可以将处理器配置为:仅响应于确定用户的物理位置已经接近控制的物理位置达至少阈值时间段而执行与所述虚拟控制相关联的功能。所述虚拟锚点位置可以与用户的头部的物理位置相关联。所述至少一个传感器可以是摄像机或红外接收器中的至少一个。该显示装置可以是头戴式显示器。

根据另一示例性实施例,提供了一种用于提供虚拟现实环境的系统。该系统包括:被配置为输出由虚拟环境状态管理电路提供的虚拟环境状态给至少一个显示装置的电路,虚拟环境状态包括一个或多个虚拟控制,其中所述虚拟环境状态包括用于指示虚拟对象在虚拟环境状态内的方位的虚拟坐标系;被配置为接收指示来自至少一个传感器的物理环境状态的数据的电路,其中所述物理环境状态包括用于指示物理对象在所述物理环境状态内的方位的物理坐标系;物理环境状态管理电路,被配置为使用指示物理环境状态的数据确定在物理坐标系内的特定物理坐标处的物理锚点位置;以及虚拟环境状态管理电路。虚拟环境状态管理电路被配置为:生成一组虚拟坐标和一组物理坐标之间的映射;基于所述映射确定对应于特定物理坐标的特定虚拟坐标;把虚拟控制锚点放置在特定虚拟坐标处;通过把虚拟控制定位偏移应用到虚拟控制锚点的特定虚拟坐标来根据虚拟控制定位偏移确定一个或多个虚拟控制的虚拟控制坐标;以及把所述一个或多个虚拟控制放置在虚拟环境状态内在虚拟控制坐标处。

显示装置可以是头戴式显示器。所述虚拟环境状态管理电路可进一步被配置为经由所述显示装置只显示虚拟环境状态的一部分,并且其中所述虚拟环境状态的所述部分基于所述显示装置的观看角度来确定。所述物理环境状态管理电路可被进一步配置为确定用户位置,并且虚拟环境状态管理电路可以进一步被配置为确定所述用户位置接近映射到虚拟控制坐标的至少一个物理坐标,以及响应于确定所述用户位置接近映射到虚拟控制坐标的至少一个物理坐标而实施与虚拟控制相关联的功能。

根据另一实施例,提供了一种用于实现虚拟现实环境中的虚拟控制的设备。该设备包括:用于接收指示物理环境状态的数据的装置;用于处理指示物理环境状态的数据以确定至少一个物理对象的物理位置的装置;用于基于所述至少一个物理对象的位置确定物理环境状态内的至少一个物理锚点位置的装置;以及用于将物理锚点位置映射到虚拟环境状态内的虚拟锚点位置的装置。虚拟环境状态包括多个虚拟坐标位置,虚拟坐标位置映射到所述物理环境状态的至少一部分。所述设备还包括用于通过如下方式来从所述多个虚拟坐标位置确定用于至少一个虚拟控制的特定虚拟坐标位置的装置:识别虚拟控制定位偏移,虚拟控制定位偏移指示相对于虚拟锚点位置的相对位置;以及将虚拟控制定位偏移应用于虚拟锚点位置以确定特定虚拟坐标位置,其中所述特定虚拟坐标位置和所述虚拟锚点位置之间的第一相对位置对应于映射到所述特定虚拟坐标位置的特定物理坐标位置与所述物理锚点位置之间的第二相对位置。所述设备还包括用于指令显示装置在特定虚拟坐标位置处显示虚拟控制的装置。

附图说明

通过参考结合附图进行的以下描述,示例性实施例的前述和其他目的、方面、特征和优点将变得更加明显,并且可以被更好地理解。

图1是图示示例性实施例可以在其内操作的示例性系统的框图。

图2是图示根据某些示例性实施例用作服务器的计算设备的示例性部件的框图。

图3是图示根据一些示例性实施例的虚拟现实系统中使用的头戴式显示器的示例性部件的框图。

图4是数据流程图,图示根据一些示例性实施例的虚拟现实系统的不同部件之间的电子数据的流程。

图5a-5o是采用本发明的示例性实施例的与虚拟现实系统的示例手势交互的图示。

图6是图示根据本发明的示例性实施例的在虚拟现实系统中使用的用于定位虚拟控制对象的示例性计算机可执行方法的流程图。

图7是图示根据本发明的示例性实施例的用于基于物理锚点位置来确定虚拟控制对象的位置的示例性计算机可执行方法的流程图。

图8是图示根据本发明的示例性实施例的用于基于观看角度启用虚拟控制对象的示例性计算机可执行方法的流程图。

图9是图示根据本发明的示例性实施例的用于与虚拟控制对象交互以向虚拟现实系统提供输入的示例性计算机可执行方法的流程图。

图10是图示根据本发明的示例性实施例的用于使用延迟来改进与虚拟控制对象的交互以向虚拟现实系统提供输入的示例性计算机可执行方法的流程图。

图11是图示根据本发明的示例性实施例的用于与实现放射状菜单界面的虚拟控制对象进行交互的示例性计算机可执行方法的流程图。

图12是图示根据本发明的示例性实施例的用于与实现列表确认界面的虚拟控制对象进行交互的示例性计算机可执行方法的流程图。

图13是图示根据本发明的示例性实施例的用于与实现微调界面的虚拟控制对象进行交互的示例性计算机可执行方法的流程图。

附图不意图按比例绘制。

具体实施方式

示例性实施例提供用于在虚拟现实(vr)环境中接收手势输入的计算机系统、计算机可执行方法和一个或多个非临时性计算机可读介质。具体来说,各实施例提供了用于定位虚拟控制对象,检测用户意图与虚拟控制对象交互,以及管理由虚拟控制对象提供的手势输入的改进的技术。

术语表

现在将参照附图更全面地在下文描述本发明的一些实施例,附图中示出了本发明的一些但不是全部的实施例。实际上,本发明可以按照许多不同的形式体现,并且不应被解释为限于本文所阐述的实施例;相反,提供这些实施例使得本公开将满足适用的法律要求。相似的数字始终指代相似的元件。

如本文所使用的,术语“数据”、“内容”、“信息”以及类似术语根据本发明的实施例可以互换使用,用于指代能够被传送、接收和/或存储的电子数据。因此,任何这种术语的使用不应当被理解为限制本发明的实施例的精神和范围。此外,在本文中计算设备被描述为从另一计算设备接收数据的情况下,应当理解,可以直接从另一计算设备接收数据,或者可以经由一个或多个中间计算设备间接地接收数据,中间计算设备诸如例如是一个或多个服务器、中继器、路由器、网络接入点、基站、主机和/或类似物,它们有时在本文中被称为“网络”。类似地,在本文中计算设备被描述为将数据发送到另一计算设备的情况下,应当理解,数据可以直接发送到另一计算设备,或者可以经由一个或多个中间计算设备间接发送到另一计算设备,中间计算设备诸如例如是一个或多个服务器、中继器、路由器、网络接入点、基站、主机和/或类似物。

如本文中所使用的,术语“头戴式显示器”和“hmd”意图指代附接、安装、投影到相对于用户的观看角度或视线保持在固定位置处的表面或以其他方式在该表面上提供图像的任何显示装置。术语“头戴式显示器”意图还包括可以与这种装置一起提供的任何其他外围电子装置和功能。例如,头戴式显示器可以包括扬声器、耳机或用于音频输出的其他电子硬件、多个显示装置(例如,使用两个显示装置,每个显示装置与用户的一个眼睛相关联,以使能立体视觉、三维观察环境)、一个或多个位置传感器(例如陀螺仪、全球定位系统接收器和/或加速度计)、用于外部传感器的信标(例如,红外灯)等。示例头戴式显示器包括由oculusvr制造的oculusrifttm、由索尼公司制造的hmz-t3w和类似物。

如本文所使用的,术语“虚拟环境”意图指代具有一个或多个对象的模拟环境,所述一个或多个对象使用hmd被投影给或以其他方式显示给用户,使得hmd为用户提供存在于或沉浸于虚拟环境中的、仿佛虚拟环境物理地围绕用户存在的感觉。提供与术语“物理环境”相对的术语“虚拟环境”,“物理环境”与实际物理空间有关。

术语“虚拟环境状态”意图指代描述虚拟环境的电子数据。虚拟环境状态包括足以限定与该虚拟环境相关联的一个或多个对象的一组位置或方位的数据。应当理解,虚拟环境状态可以按照各种数据结构和/或格式存储。在一些实施例中,虚拟环境状态可以由跟踪虚拟环境状态内的对象的方位、状态和其他属性的“引擎”来维护。在一些实施例中,引擎可以与图形装置、渲染器或用于生成虚拟环境的视觉显示的其他硬件和软件结合起作用。

虽然虚拟环境状态通常可以包括n维坐标集(通常三个维度),该n维坐标集至少部分地对应于给定的物理环境,应当理解的是,给定的虚拟环境可以不直接对应于物理环境。例如,给定的虚拟环境可以允许用户或其他对象在虚拟环境中改变位置、改变大小、改变形状等,而在物理环境中没有对应的改变或交互。给定的虚拟环境还可以映射到给定物理环境的一部分(例如,限于物理环境的一个或多个传感器可见的区域),并且反之亦然(例如,虚拟环境的受限部分映射到物理环境,用户在物理环境中的移动被约束为实现虚拟环境的受限部分中的改变)。

存在于物理世界中的对象可以被包括在虚拟环境中作为物理对象的虚拟表示,并且术语“虚拟环境”应被理解为不排除这样的虚拟表示。例如,传感器可以在用户周围的物理环境中检测物理对象的存在,并且在虚拟环境内创建对应于检测到的物理对象的虚拟对象。然后,用户可能能够通过在虚拟环境中的与物理环境中的物理对象的位置相对应的位置处查看虚拟对象来感知物理对象的存在。

术语“物理环境状态”应当理解为指代指示物理对象的已知或可信方位的电子数据。物理环境状态至少部分地基于从一个或多个传感器接收的数据。在一些实施例中,物理环境状态还基于其他数据,诸如从物理环境状态的先前快照得出的数据、来自除传感器之外的接口设备(例如,计算机键盘或鼠标)的数据等。

术语“增强环境”应被理解为指代包括物理环境和虚拟环境的元素的组合环境。应当注意,包括物理环境的元素的增强环境(例如,叠加有虚拟元素的物理环境的视频或照片图像)被理解为与包括对应于物理对象的虚拟元素的虚拟环境分离和不同。例如,叠加有标记或标签的数字照片将是增强的环境,而检测用户存在,用虚拟三维模型替换用户以及然后将所述三维模型插入到虚拟环境中的系统不会是增强的环境,因为后者示例使用完全虚拟的构造。

术语“物理锚点方位”应被理解为指代物理环境中限定一个或多个特定对象的方位的位置或基于一个或多个特定对象的位置限定的基准。例如,物理锚点方位可以位于用户穿戴的hmd的中心,或者物理锚点方位可以位于被识别为用户的鼻子的对象前方六英寸处。物理锚点方位可以是固定的或动态的。例如,物理锚点方位可以在虚拟环境初始化时被一次固定和确定,或者物理锚点方位可以被动态地限定并随着与物理锚点位置有关的对象或基准改变而移动。

术语“虚拟锚点方位”应被理解为指代虚拟环境中对应于所述物理锚点方位的位置。

术语“虚拟坐标位置”应被理解为指代虚拟环境内的特定点或点集合。

术语“虚拟控制”应被理解为指代虚拟环境内限定的特定对象,在与用户交互时该特定对象导致与所述虚拟控制相关联的虚拟环境状态的特定改变。应当理解的是,虚拟控制在虚拟环境状态中被限定用于实施某种功能。虽然所述虚拟控制可以被动态地创建、销毁、显示、隐藏等等,但应当理解的是,与虚拟控制的用户交互需要与虚拟环境状态中的特定对象或位置的交互,无论所述对象是否对用户可见。

术语“虚拟控制定位偏移”应当被理解为电子数据,该电子数据指示用于在虚拟环境中相对于虚拟锚点方位定位虚拟控制的位置。虚拟控制定位偏移可以是静态的或动态的。例如,每个虚拟控制可以具有特定固定的虚拟控制定位偏移。替代地,虚拟控制定位偏移可以动态地基于虚拟控制被初始化、启用或限定的次序被确定,基于其他虚拟控制是否已经存在被确定(例如,基于虚拟控制被初始化的次序分配虚拟控制定位偏移),基于配置设置或用户偏好被确定,或基于用户特性被确定(例如,测量用户的高度或臂展并相应地调整虚拟控制定位偏移)。虚拟控制定位偏移包括足以确定方向分量和距离分量中的至少一项的电子数据。

概览

目前公开的发明的实施例一般地描述了用于在虚拟环境中实现手势输入的新颖系统、方法和装置。最近的技术进步已经导致了可被用来实现电子装置的手势控制的对象检测和定位系统的激增。电容性触摸面板、红外发射器/传感器组合、摄像机以及其他这样的传感器和输入装置已经提供了用于检测用户的方位和动作的新的方式。

类似地,电子装置小型化方面的进步、显示成本降低以及图形处理能力的增加已使得消费者获得能够提供虚拟现实体验的装置成为现实。例如,消费者现在有能力获得提供立体三维视觉体验的价格合理的头戴式装置(hmd)。许多这样的装置还包括内部加速度计和用于确定用户的方位和观看角度的位置检测模块、用于提供声音的音频系统和类似物。这些装置的主要预期用途之一是使用户能够感知他们存在于虚拟环境中。

然而,发明人已经确定,用于检测手势输入的当前系统不适合在虚拟现实环境中使用。例如,一些当前的系统缺乏用于确定手势输入的固定基准点,并且需要用户实施某些动作来向系统指示他们意图实施手势输入。在手势输入时,系统动态地生成基准点用于捕获该特定手势输入,并且在该手势输入完成后,基准被去除。例如,这样的系统可能需要用户举起他们的手以指示他们希望开始手势输入,并且手势输入可以响应于传感器检测到所述举手而被启用。这样的系统不适合用于虚拟环境中,因为动态限定的基准点缺少与虚拟环境中的对象的任何关联。例如,在用户正在使用所述虚拟环境来模拟战斗机的驾驶舱的情况下,如果控制在驾驶舱中的位置依赖于用户开始他们的输入操作的位置而四处移动,则它可能会破坏用户的沉浸。

其他手势输入系统将特定输入与物理环境中的特定坐标相关联。例如,将物理环境映射到显示屏幕的系统可提供像素到坐标映射,使得用户可以指向空间中的特定位置并且与显示屏幕上的对应元素进行交互。然而,这样的输入机制是不灵活的,并且需要精确定位。返回到战斗机示例,这样的系统可能会需要用户精确地坐在正确的点以便基于用户的物理环境和“驾驶舱”虚拟环境之间的已知映射访问战斗机的控制。

通过应用的努力和创造性,发明人已经确认了对这些问题和涉及在虚拟环境的情境中提供用户手势输入的其他问题的解决方案。具体来说,发明人已经开发了允许以简单和灵活的方式放置虚拟控制对象和与虚拟控制对象交互同时仍然使用户满意并维持用户沉浸在虚拟环境中的方法和技术。具体来说,发明人已经开发了用于在虚拟环境中相对于虚拟锚点方位定位虚拟控制的技术。所述虚拟锚点方位基于在由一个或多个传感器查看的物理环境中检测到的一个或多个物理对象的方位来限定。在检测到与对应于虚拟环境中的虚拟控制的位置的物理环境中的位置的用户交互时,在所述虚拟环境引起与虚拟控制相关联的某些动作。

实施例还允许对物理锚点方位的动态确定。通过检测用户的部分或位于用户上的对象(例如,由用户佩戴的hmd的位置),实施例可以有利地把虚拟锚点方位校准到用户的特定特性。例如较高的用户可以比较矮的用户在虚拟环境中具有处于较大“z”坐标处的虚拟锚点方位。

实施例还包括用于与虚拟控制交互的新颖方式。发明人已经认识到,与虚拟控制的手势交互呈现新的挑战,这些挑战先前关于对所述控制的物理模拟或甚至与非虚拟世界控制的手势交互(例如,与在2维监视器上显示的界面的手势交互)没有遇到过。为了解决这些挑战,发明人已经开发了新颖的技术用于识别用户何时可以与虚拟控制交互以及如何实施该交互。

发明人还认识到,在实施手势输入时,特别是在虚拟现实环境中实施手势输入的情况下,存在独特的问题。传统输入机制(诸如键盘、鼠标、开关、按钮等等)通常由于所使用的输入装置的物理性质而提供多层反馈。当用户按压键盘上的键或点击鼠标按钮时,他们接收触知和触觉反馈以通知他们输入成功,或者提供作为光标移动的视觉反馈。以这种方式,输入装置用作针对提供给软件环境的输入的物理代理。例如,经由鼠标“点击”提供给用户的触知和触觉反馈用作物理代理用于向用户指示与鼠标光标下方显示的界面控制元件交互的意图已被登记。

在虚拟环境中提供的手势输入不提供这样的物理反馈机制。然而,发明人已经确认,可以通过使用虚拟环境来提供替代的反馈机制。发明人已经认识到,虚拟环境可被用于提供新的反馈方法来检测用户的意图,传达检测到意图的确认,检测输入的执行,传达输入的执行(或执行失败)的确认,以及传达响应于输入而到达新状态。本发明的实施例因此用于在没有对应的物理代理的情况下在虚拟环境中提供这样的反馈。

还应当理解的是,本文中呈现的实施例尤其涉及方法、设备、系统和计算机程序产品,用于提供输入到生成虚拟环境的计算机以及以其他方式使所述计算机经由在虚拟环境中提供的输入来实施某些功能。因此,这些实施例有必要关于和涉及针对提供这样的电子输入并且使所述计算机以特定改进的方式来操作的改进,并且这些改进解决了由计算机提供的虚拟环境特有的技术问题。

诸如本文所述的虚拟控制对象可以被用于实现跨许多不同的技术学科的各种功能。可以采用这样的控制对象来改进家庭自动化系统(例如,与家庭温度、照明和安全系统对接),控制工厂操作(例如,控制机器人装备、安全系统、观察工人),控制移动对象(诸如无人驾驶飞机)等。使用虚拟环境也可以允许用户利用耦合到远程受控装置或系统的摄像机或其他传感器来向用户呈现处于受控对象的物理方位中的体验。

发明人还认识到,虚拟环境可被用于捕获和重放用户的本地环境。关于用户的物理环境的本地传感器数据的捕获可以允许用户记录关于他们的物理环境的音频、视频和其他收集的传感器信息以供以后回顾。例如,如果用户拥有装备有用于捕获物理环境的传感器的家,则用户可以实现对在特定事件(例如,孩子的生日派对)期间的传感器数据的记录,使得以后用户可以重放传感器读出内容,从而在虚拟场景中重新创建该物理环境。这样的实施例可以允许用户重温记录的事件或回顾他们未出席的事件(例如,在游戏过程中模拟在超级碗的现场,或重放婚礼宴会和从各种虚拟观看角度查看事件)。

发明人还认识到用于跟踪用户位置和校准用于位置跟踪的传感器以向虚拟环境提供输入的方法和系统的缺陷。为此,发明人开发了新颖的系统用于集成从红外传感器、加速度计、陀螺仪、磁力计等接收的数据。从这些不同的系统接收的跟踪数据可以被合并和平滑,以改进用于识别用户位置的技术。此外,本发明人具有用于调整来自不同传感器的输入的校准机制。发明人开发了以下技术:通过监视从多个传感器接收的数据来确定hmd何时被放置在用户的头部上,以及作为响应而实施各种检测和校准动作。例如,当实施例基于加速度计读数检测到hmd已被拾取并放置在用户头部上时,则用户的位置可以在三维空间中被检测并被校准到虚拟环境坐标系。

发明人还认识到,各种接口和传感器可用于与虚拟环境进行交互。如本文所述的,为了与虚拟控制对象进行交互(并且实现未被虚拟控制对象提供的其他交互),发明人已经认识到可以采用提供不同反馈机制的各种装置。例如,使用专门设计的手套或鞋子可以提供与触摸按钮、项目的感觉质感等等有关的触知和/或触觉反馈。

发明人还开发了提供用于与其他用户共享环境的新颖特征的系统。来自本地和远程装置的传感器数据可以被用于提供接近警报和关于距离的其他反馈,该距离是指用户与用户的本地物理环境中的物理对象(例如,其他用户、家具)以及虚拟环境中的虚拟对象两者(例如,从另一物理位置参与虚拟环境的另一用户的化身)之间的距离。

系统架构和示例设备

现在将参照附图在下文中更全面地描述本发明的一些示例性实施例,一些但不是全部的本发明的实施例示出在附图中。实际上,这些发明可以体现为许多不同的形式并且不应当被解释为限于本文阐述的实施例;相反,提供这些实施例使得本公开将满足适用的法律要求。相似的数字始终指代相似的元件。

本发明的方法、设备和计算机程序产品可以由任何的各种装置来体现。例如,示例实施例的方法、设备和计算机程序产品可以由联网装置(诸如与hmd和一个或多个传感器通信的服务器或个人计算机)来体现。附加或替代地,计算装置可以包括固定的或联网的计算装置,诸如个人计算机或计算机工作站。更进一步地,示例实施例可由任何的各种移动终端(诸如便携式数字助理(pda)、移动电话、智能电话、膝上型计算机、平板计算机或上述装置的任何组合)来体现。

在这方面,图1公开了在其中可以操作本发明的实施例的示例计算系统。服务器102可以用于与一个或多个传感器104和hmd106通信。服务器102可以包括一个或多个计算机,该计算机包括配置为生成和管理经由hmd106向用户显示的虚拟环境的硬件和软件。该服务器102还可以从一个或多个传感器104接收数据以确定物理环境110的状态。服务器102的详细示例性实施例在下面关于图2被进一步描述。

hmd106可以从服务器102发送和接收电子数据。例如,hmd106可以向服务器102发送指示来自包含在hmd106中的一个或多个加速度计或其他位置传感器的读数的数据。hmd106可以接收指示如下内容的数据:经由包括在hmd106中的一个或多个显示器显示的视频内容以及经由包括在hmd106中的扬声器、耳机等输出的音频内容。hmd106的详细示例性实施例在下面关于图3被进一步描述。还应当理解的是,虽然本文描述的实施例关于hmd被一般地描述,但是实施例也可以适用于不使用hmd技术的其他虚拟环境。例如,类似的输入技术可以在洞穴自动虚拟环境(cave)系统中或适合于显示虚拟环境的其他显示器中被利用。

传感器104可以是可操作用于接收关于用户或用户的物理环境的信息的任何传感器,用户的物理环境可由服务器102用来生成所述虚拟环境。例如,传感器可以是由微软制造的kinect®传感器、leapmotion公司制造的leapmotion®控制器、数据手套、指挥棒(诸如由索尼公司制造的psmove®)、动捕获系统、数字摄像机、电容性触摸界面或类似物。传感器104可以向服务器102提供原始格式的数据,原始数据可以在服务器102被转换成位置信息,该位置信息指示由所述传感器感知的物理环境110中物理对象的位置。在一些实施例中,多个传感器可以被实现,并且来自传感器的数据可被处理和组合在一起,以确定物理环境内的对象的位置。下面关于图4进一步描述传感器和虚拟环境之间的交互。

用于实现本发明的实施例的示例设备

服务器102可以由一个或多个计算系统(诸如在图2中所示的设备200)体现。如图2中所示,设备200可以包括处理器202、存储器204、输入/输出电路206、通信电路208、传感器接口电路210、物理环境状态管理电路212、虚拟环境状态管理电路214和hmd接口电路216。设备200可以配置为执行上面关于图1和下面关于图4-10描述的操作。尽管这些部件202-216关于功能限制被描述,但是应当理解的是,特定的实现方式必须包括使用特定硬件。还应当理解,这些部件202-216中的某些可以包括类似或共同的硬件。例如,两组电路都可以利用使用相同的处理器、网络接口、存储介质或类似物来实施其关联的功能,使得不需要针对每一组电路的重复硬件。因此,本文中关于设备的部件所使用的术语“电路”的使用应被理解为包括被配置为实施与本文描述的该特定电路相关联的功能的特定硬件。

在一些实施例中,术语“电路”应被广义理解为包括硬件并且也包括用于配置硬件的软件。例如,“电路”可包括处理电路、存储介质、网络接口、输入/输出装置和类似物。在一些实施例中,设备200的其他元件可提供或补充特定电路的功能。例如,处理器202可以提供处理功能,存储器204可以提供存储功能,通信电路208可以提供由设备200的其他部件使用的网络接口功能。

在一些实施例中,处理器202(和/或协处理器或帮助处理器或以其他方式与处理器相关联的任何其他处理电路)可以经由用于在设备的各部件之间传递信息的总线与存储器204进行通信。存储器204可以是非临时性的,并且可以包括例如一个或多个易失性和/或非易失性存储器。换句话说,例如,存储器可以是电子存储装置(例如,计算机可读存储介质)。存储器204可以被配置为存储信息、数据、内容、应用、指令等,以便使设备能够根据本发明的示例实施例来执行各种功能。

处理器202可按照许多不同的方式体现,并且可以例如包括被配置为独立地进行实施的一个或多个处理装置。附加或替代地,处理器可以包括经由总线串联配置以实现指令的独立执行,流水线操作和/或多线程操作的一个或多个处理器。术语“处理电路”的使用可以被理解为包括单核处理器、多核处理器、设备内部的多个处理器,和/或远程或“云”处理器。

在示例实施例中,处理器202可以被配置为执行存储在存储器204中或以其他方式可由所述处理器访问的指令。替代或附加地,该处理器可以被配置为执行硬编码功能。这样,无论是由硬件或软件方法配置,还是由硬件和软件方法的组合配置,所述处理器可以表示能够根据本发明的实施例实施操作同时被相应地配置的实体(例如,物理地体现在电路中)。替代地,作为另一示例,当处理器体现为软件指令的执行器时,指令可以在所述指令被执行时具体地把处理器配置为实施本文描述的算法和/或操作。

在一些实施例中,设备200可包括输入/输出电路206,输入/输出电路206可以继而与处理器202通信以提供输出到用户,并且在一些实施例中,接收用户输入的指示。输入/输出电路206可以包括用户接口,并且可以包括显示器,并且可以包括web(网络)用户界面、移动应用、客户端装置、自助服务终端(kiosk)或类似物。在一些实施例中,输入/输出电路206还可以包括键盘、鼠标、操纵杆、触摸屏、触摸区域、软键、麦克风、扬声器或其他输入/输出结构。处理器和/或包括所述处理器的用户接口电路可以被配置为通过存储在可由处理器访问的存储器(例如,存储器204和/或类似物)上的计算机程序指令(例如,软件和/或固件)控制一个或多个用户接口元件的一个或多个功能。

通信电路208可以是诸如体现在硬件或硬件与软件的组合中的装置或电路之类的任何装置,其被配置为从网络和/或与所述设备200通信的任何其他装置、电路或模块接收数据和/或向所述网络和/或任何其他装置、电路或模块传送数据。在这方面,通信电路208可以包括例如用于实现与有线或无线通信网络通信的网络接口。例如,通信电路208可以包括一个或多个网络接口卡、天线、总线、交换机、路由器、调制解调器以及支持硬件和/或软件,或适合于经由网络实现通信的任何其他装置。附加或替代地,通信接口可以包括用于与(一个或多个)天线交互以引起经由所述(一个或多个)天线的信号传送或处置经由所述(一个或多个)天线接收的信号的接收的电路。

传感器接口电路210可包括配置为向耦合到服务器的一个或多个传感器(诸如以上关于图1描述的传感器104)发送指令以及从该一个或多个传感器接收数据的硬件。传感器接口电路210可包括电连接,该电连接被配置为与传感器有线或无线通信。传感器接口电路210还可以包括处理电路(诸如处理器202),该处理电路执行一个或多个工具、驱动程序、应用编程接口(api)等以与传感器通信。还应当理解的是,在一些实施例中,传感器接口电路210可包括单独的处理器、专门配置的现场可编程门阵列(fpga)或专用接口电路(asic)以便实施本文描述的功能。因此,所述传感器接口电路210使用设备的硬件部件来实现,该硬件部件由用于实现上面列举的功能的硬件或软件来配置。

在一些实施例中,传感器接口电路210可被配置为诸如经由网络接口电路208直接与网络对接,以便将传感器数据传送到远程计算机。传感器数据到远程计算机的传送可以允许远程计算机更准确地重新创建在本地计算机的传感器数据内检测到的物理对象(诸如,用户)。发明人还开发了各种技术用于接收、管理、利用和传送这样的传感器数据去往和来自其他计算机。这种方法、系统和装置部件的用于支持多用户虚拟环境的另外示例实施例在同时提交的美国专利申请__/______中提供,该专利申请于2015年1月28日提交,标题为“methodsandapparatusesforimplementingamulti-uservirtualenvironment”(代理人案卷号059638/454920),其全部内容通过引用并入本文。

物理环境状态管理电路212包括被配置为管理物理环境状态的硬件。如上所述,物理环境状态包括指示由一个或多个传感器测量的物理环境中的一个或多个对象的方位感知的电子数据。物理环境状态管理电路212处理由所述传感器接口电路210接收的数据以估计、预测、或检测物理环境中对象的方位以及把所述方位存储在物理环境状态内或存储为物理环境状态。物理环境状态管理电路212可以包括处理电路,诸如处理器202,该处理电路用于使用所述传感器数据和其他来源检测对象以及用于存储这种对象方位。在一些实施例中,物理环境状态管理电路212还可以确定物理锚点方位的方位,或确定特定对象应当被指示为物理锚点。还应当理解的是,在一些实施例中,物理环境状态管理电路212可以包括单独的处理器、专门配置的现场可编程门阵列(fpga)或专用接口电路(asic)以实施本文描述的功能。因此,物理环境状态管理电路212使用设备的硬件部件来实现,该硬件部件由用于实现上面列举的功能的硬件或软件来配置。

虚拟环境状态管理电路214包括配置为管理虚拟环境状态的硬件。如上所述,虚拟环境状态包括指示虚拟环境中一个或多个对象的方位的电子数据。虚拟环境状态管理电路214也可以实现用于控制虚拟环境状态的模拟的其他方面。例如,虚拟环境状态管理电路214可以管理虚拟环境更新的速率、虚拟环境内对象的坐标方位的分辨率、虚拟环境中对象之间交互的模拟,等等。虚拟环境状态管理电路214可以包括用于管理虚拟环境的处理电路,诸如处理器202。虚拟环境状态管理电路214还用于确定虚拟环境内的虚拟锚点方位,虚拟锚点方位用于确定一个或多个虚拟控制在虚拟环境中的方位。还应当理解的是,在一些实施例中,虚拟环境状态管理电路214可包括单独的处理器、专门配置的现场可编程门阵列(fpga)或专用接口电路(asic)以实施本文描述的功能。因此,虚拟环境状态管理电路214使用设备的硬件部件来实现,该硬件部件由用于实现上面列举的功能的硬件或软件来配置。

虚拟环境状态管理电路214可以与物理环境状态管理电路212和传感器接口电路210一起工作,以识别用户和其他物理对象在物理环境内的存在。检测到物理对象的存在可以引起与虚拟环境的各种交互,包括但不限于,使这些物理对象的虚拟表示被包括在虚拟环境中。用于检测这些对象和促进物理对象在虚拟环境中呈现的示例性技术、过程、系统和装置在共同提交的美国专利申请__/______中被进一步描述,该专利申请于2015年1月28日提交,标题为“methodsandapparatusesforprovidingvirtualdisplayofaphysicalenvironment”(代理人案卷059638/454921),该申请的全部内容通过引用并入本文。

hmd接口电路216用于:提供电子数据去往和来自hmd,以使得hmd的用户能够经由hmd体验虚拟环境;以及提供传感器数据给虚拟环境状态管理电路214。例如,hmd接口电路216可以提供显示输出到包括在hmd中的一个或多个显示器以向用户显示虚拟环境的一部分,并且从包括在hmd中的一个或多个加速度计接收输入以确定用户观看角度,从而帮助所述虚拟环境状态管理电路214确定要在(一个或多个)hmd显示器上显示虚拟环境的哪个特定部分。在一些实施例中,hmd接口电路216包括处理器或图形处理单元(gpu)以实现显示输出到hmd。应当理解的是,在一些实施例中,虚拟环境状态管理电路还可以共享或利用相同的处理器或gpu来管理虚拟环境状态,以帮助管理虚拟环境。在一些实施例中,经由一个或多个驱动程序或api实现与hmd的对接,该驱动程序或api发送作为唯一与hmd相关联的单个信号或其他特别限定的通信技术的数据,而在其他实施例中,hmd接口电路216与hmd的特定部件直接通信(例如去往hmd的每个显示器的单个视频输出、针对hmd的音频部件的单个视频输出、针对耦合到hmd的每个传感器的数据输入)。

hmd接口电路216可以包括用于向hmd提供数据的处理电路,诸如处理器202。还应当理解的是,在一些实施例中,hmd接口电路216可以包括一个单独的处理器、专门配置的现场可编程门阵列(fpga)或专用接口电路(asic)来实施本文描述的功能。hmd接口电路216因此使用设备的硬件部件来实现,该硬件部件由用于实现上面列举的功能的硬件或软件来配置。

如将理解的,任何这种计算机程序指令和/或其他类型的代码可以被加载到计算机、处理器或其他可编程设备的电路上以产生机器,使得在该机器上执行所述代码的计算机、处理器或其他可编程电路创建用于实现各种功能(包括本文所描述的那些)的装置。

如上所述并且如基于本公开将被理解的,本发明的实施例可以被配置为方法、移动装置、后端网络装置等等。因此,各实施例可以包括各种装置,该各种装置包括完全的硬件或软件和硬件的任何组合。此外,实施例可以采取至少一个非临时性计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品具有体现在所述存储介质中的计算机可读程序指令(例如,计算机软件)。任何合适的计算机可读存储介质可以被利用,包括非临时性硬盘、cd-rom、闪存、光存储装置或磁存储装置。

现在参考图3,图示了框图,该框图示出了示例hmd,即设备300,设备300使用户能够通过使用头戴式显示屏幕来体验沉浸在虚拟环境中的感觉。设备300可以包括以下各项或者以其他方式与以下各项通信:数据传送电路302、位置定位电路304、加速度计电路306、第一显示电路308、第二显示电路310和音频输出电路312。如上所述,在一些实施例中,每个hmd部件可以被实现为具有不与彼此通信的个体分立部件(例如,各自接收单独的输入信号的两个单独的显示器、具有分立的音频输入/输出信号的耳机和/或麦克风、与服务器设备(诸如设备200)的部件直接通信的加速度计,等等)的单个外壳,而在其他实施例中,hmd设备300可以被实现为经由特定数据传送电路302彼此通信并且与服务器设备200通信的多个部件。数据传送电路302可因此包括被如下配置的电子部件:处理来自hmd的不同部件的电子信号并且把所述分量翻译成适合于由服务器200使用(consumption)的一个信号、多个信号、一个流或多个流,并且把来自服务器一个信号、多个信号、一个流或多个流翻译成适合于由hmd的个体部件使用的信号。

hmd可以包括用于检测hmd的移动、俯仰、相对位置(bearing)、取向等的加速度计电路306。该信息可以被提供给服务器用于确定虚拟环境的哪个区域对应于hmd的取向/相对位置,使得可经由第一显示电路308和/或第二显示电路310显示虚拟环境的所述对应区域。

定位电路304可以包括用于配置与hmd相关联的方位服务模块和功能并与其进行通信的电子装置。例如,hmd设备300的实施例可以包括一个或多个红外信标,该红外信标可以响应于来自服务器的信号而被打开和关闭。这些红外信标可以启用由耦合到服务器的红外传感器进行的检测。因此,定位电路304可以用于打开和关闭所述红外信标,使红外信标按照特定速率或按照特定样式闪烁,以及以其他方式帮助进行方位检测和物理环境校准功能。在一些实施例中,hmd可以包括接收作为定位电路304的一部分的全球定位系统,并且应当容易理解的是,各种不同的测位和定位技术可以用以帮助检测hmd设备300的位置。

第一显示电路308和第二显示电路310包括用于显示从服务器接收的信号的硬件,诸如投影屏幕、液晶显示面板等。应当理解的是,第一显示电路308和第二显示电路310可以共享一些共同的硬件和/或软件元件。例如,在一些实施例中,第一显示电路308和第二显示电路310中的每一个是接收单独输入信号的完全单独的显示器。在其他实施例中,第一显示电路308和第二显示电路310可以包括由hmd的物理元件分离的单个显示面板(例如,定位在用户鼻子附近的阻挡面板)。在更进一步的实施例中,单个显示信号可以被提供给可分裂该信号以创建用于两个单独的显示面板的两个不同来源的电路。以这种方式使用两个显示器允许服务器输出可以被用来创建立体三维图像的两个单独的图像。然而,还应当认识到,在一些实施例中,hmd可以包括仅单个显示器或者甚至根本不显示立体图像,但仍然用于根据本发明的实施例向hmd的用户显示虚拟环境以及实现与所述虚拟环境的手势交互。

hmd设备300可以包括被配置为输出音频信号的音频输出电路312。例如,hmd设备300可以包括用于输出声音到佩戴hmd的用户的内置扬声器、耳机等。

示例虚拟环境手势输入数据流

图4描绘了示例数据流400,该示例数据流400图示了可操作为使用户沉浸在虚拟环境中并且从用户接收手势输入以与虚拟环境进行交互的虚拟现实系统的不同部件之间的交互。具体来说,数据流400图示了根据本发明的实施例从头戴式显示器(hmd)402和一个或多个传感器408接收的电子数据可以如何被处理以按照允许用户与所述虚拟控制交互的方式定位一个或多个虚拟控制。数据流400的元件可以对应于上面关于图1-3描述的元件,然而,应当理解的是,数据流400的部件也可以按照除了上述那些配置的附加或替代的配置被实现。例如,在一些实施例中,整个虚拟现实系统可以被实现为hmd的一部分,而不需要单独的服务器或传感器。

hmd402可以把来自耦合到hmd的传感器(例如,陀螺仪和/或加速度计)的传感器数据提供给hmd接口电路404,并且以类似于上面关于图1-3描述的方式经由hmd接口电路404接收视频和音频数据。hmd接口电路404可以解释从hmd接收的传感器数据,并把经处理的hmd传感器数据提供到处理器406。传感器数据可以用于确定用户和hmd402的各个方面,包括但不限于用户和hmd402的观看角度和相对位置。

还应当理解,在一些实施例中,从hmd402接收的传感器数据可以在不必由hmd接口电路404进一步分析或处理的情况下被提供给处理器406。hmd接口电路404可以从处理器406接收输出数据(例如,音频和视频数据),以把输出数据提供给hmd402用于输出。尽管输出数据通常可以包括虚拟世界状态,但是应当理解的是,在一些情况下,输出数据可以包括不与虚拟世界状态相关联的音频或视频数据(例如,在hmd的用户希望观看电影的情况下)。

(一个或多个)传感器408可以是可操作为捕获关于物理环境的信息的任何装置。例如,如上述那样,传感器可以是摄像机、红外检测器、电容式触摸或接近传感器或类似物。(一个或多个)传感器408捕获可指示用户和对象位置信息的原始传感器数据(例如,在用户和/或对象存在于传感器可见的区域中并且原始传感器数据足以帮助将用户和/或对象与背景和其他对象区分开的情况下)。(一个或多个)传感器408也可以捕获来自hmd402和/或其他信号发送装置(例如,具有红外发射器的手持输入装置)的信标传输。

(一个或多个)传感器408提供原始数据给传感器接口电路410。在一些实施例中,传感器接口电路410可用于从原始传感器数据识别用户和/或对象的位置。传感器接口电路410可充当深度渲染器,评估深度和由(一个或多个)传感器408接收的其他方位数据,以确定对象在物理环境中的位置。该物理对象定位数据可以被存储在物理环境状态412中。在一些实施例中,传感器接口电路410可操作为合并来自多个传感器的数据并使用多个不同的数据来源得出对象的位置。应当理解的是,虽然本示例将所述传感器接口电路410描述为确定对象的方位,但是在其他实施例中,物体的方位可以由处理器406确定,而无需使用专用电路,并且所述传感器接口电路410可以仅仅用于从(一个或多个)传感器408(例如,经由api)接收原始输入,并把该原始数据提供给处理器406。

处理器406还可以把传感器控制数据提供给传感器接口电路410以用于配置和控制(一个或多个)传感器408的操作。例如,处理器406可以发送传感器控制数据以激活(一个或多个)传感器408、去激活(一个或多个)传感器408、改变(一个或多个)传感器408的观看角度、调整(一个或多个)传感器408的增益等等。

物理环境状态412可以包括指示对象在(一个或多个)传感器408可见的物理环境内的位置的一个或多个数据库、数据结构或类似物。物理环境状态412可以由物理环境状态管理电路414访问,以把物理环境状态中特定对象的方位提供给所述处理器406。例如,处理器406可以向物理环境状态管理电路414请求特定对象的方位,请求所有识别的对象的方位,或类似物。在一些实施例中,物理环境状态管理电路414能够根据请求提供在物理环境状态412内识别的对象的方位、速度、尺寸和/或其他特征以及特性。

处理器406可以从由物理环境状态管理电路414所提供的对象方位确定物理锚点方位。处理器406可以通过如下方式确定物理锚点方位:从物理环境状态识别特定对象,以及确定该特定对象具有与物理锚点相关联的对象的特性。例如,处理器406可基于由物理环境状态管理电路414提供的数据确定hmd的方位、用户的头部、用户的肩部、用户的质心或某个其他对象。该对象的方位或针对该对象的某个基准(例如,上方、下方、前方、后方等的特定距离)可以用作物理锚点方位。用于确定物理锚点方位的方法的示例实施例在下面关于图6被进一步描述。

物理锚点位置可以被提供给虚拟环境状态管理电路416。虚拟环境状态管理电路416用于管理、监视和控制虚拟环境,虚拟环境被存储为虚拟环境状态420并通过虚拟环境状态管理电路416把虚拟环境状态数据写入到虚拟环境状态而被更新。虚拟环境状态管理电路416可以接收物理锚点方位并且把物理锚点方位映射到所述虚拟环境内的位置以把该位置用作虚拟锚点方位。所述虚拟锚点方位可以被用作原始或其他基准以把一个或多个控制定位在虚拟环境内。

与一个或多个虚拟控制有关的信息可被存储在一组虚拟控制配置数据418中。虚拟控制配置数据418包括指示与虚拟控制相关联的功能、位置以及任何其他配置设置的电子数据。例如,虚拟控制配置数据418包括用于相对于确定的虚拟锚点定位虚拟控制的一个或多个虚拟控制定位偏移。如上所述,虚拟控制定位偏移可以被动态地确定或针对特定虚拟控制是静态的。

还应当理解的是,给定虚拟控制被定位在的方位可以不同于用户必须做出手势以与虚拟控制进行交互的方位。这样,虚拟控制配置数据418可以存储单独配置每个值的数据。例如,虚拟控制可以在距用户2米的距离处被显示,但是用户可能仅需要伸出0.5米来与该控制交互。如上所指示的,实施例可包括用于把这些不同的距离和交互参数传送给用户的各种机制。

一旦确定针对特定虚拟控制的虚拟锚点位置和虚拟控制定位偏移,相关联的虚拟控制的位置可以通过将虚拟控制定位偏移应用到虚拟锚点位置来确定。应用偏移可以包括使用虚拟控制锚点作为原点旋转、平移、缩放以及以其他方式调整虚拟控制。所确定的虚拟控制位置可被存储在虚拟环境状态420中。

虚拟控制配置数据418还可以包括用于配置交互指示符的数据,交互指示符识别关于虚拟控制的半径或距离,在该半径或距离内各种交互是可能的。例如,在一些实施例中,当用户把他们的视场指向虚拟控制或把他们的手/臂/输入装置移动接近所述虚拟控制时,所述虚拟控制可以把交互指示符显示为围绕虚拟控制或在虚拟控制周围的圆形或其他指示符。交互指示符表示该用户必须针对其做出手势、进行输入或以其他方式进行激活以与所述虚拟控制进行交互的区域。虚拟控制配置数据418可以包括指示是否以及何时显示交互指示符、交互指示符的尺寸和形状等等的数据。

应当理解的是,交互指示符与虚拟控制本身和用于指示所述虚拟控制的存在的任何其他指示符分离且不同。例如,一些实施例可以在虚拟环境中显示虚拟控制(例如,作为环或球)。当用户实施某种动作(例如,在特定方向上看,使得所述环或球体进入特定观察框架,诸如用户视野的中心)时,虚拟控制可以接收指示其存在的第一突出显示(例如,通过将方括号围绕虚拟控制放置)。当用户采取指示意图与虚拟控制交互的动作(例如,向上朝向虚拟控制移动他们的手)时,交互指示符可被显示以向用户提供关于如何与虚拟控制交互的更多信息,诸如用户必须在其内做出手势的区域,或虚拟控制接受的手势类型(例如,放射状菜单、确认列表、“指向和轻弹”等)。

周期性地或响应于来自处理器406的询问,虚拟环境状态管理电路416可以向处理器406提供虚拟环境数据。虚拟环境数据可以包括虚拟环境状态中各种对象的方位,该方位将用于向hmd输出数据以显示给用户。在一些实施例中,虚拟环境数据受由处理器或虚拟现实系统的其他元件提供的信息的约束。例如,处理器406可以指示hmd402位于特定俯仰和方向,并且因此输出到hmd402的显示数据应当被限制于将对具有处于该特定俯仰和方向上的观看角度的用户可见的虚拟环境的一部分。

根据示例性实施例使用虚拟控制的手势输入的示例图示

图5a-5o是根据本发明的示例性实施例的与虚拟控制的示例手势交互的图示。应当指出的是,虽然在虚拟现实系统的背景下描述了即时控制机制,但这些机制也可以应用到增强现实环境或物理环境。例如,用户可以处于不包括hmd但另外包括用于接收手势输入的各种传感器以及用于实现虚拟控制的处理装备的环境中。在这样的环境中,用户仍然可以经由对用户不可见的虚拟控制实施手势控制输入。作为具体示例,汽车仪表盘可包括用于检测手势输入的传感器以及用于实现与汽车的特定部件相关联的虚拟控制的硬件和软件。当用户朝向特定部件(例如,空调控制面板或无线电头部单元)做出手势时,用户可以与用户不可见的虚拟控制交互(例如指向空调控制面板,并且向右挥动以增加温度,或指向无线电头部单元并向左旋转他们的手以减小音量)。这些虚拟控制可以按照与本文中关于虚拟环境所描述的虚拟控制相同的方式被实现,但用户可能由于缺少显示器而无法看到所述虚拟控制。用户可以按照与本文中关于虚拟环境描述的相同或类似的方式使用手势输入来采用这些“不可见”的虚拟控制对象。

可以经由各种机制来实施对与特定虚拟控制对象的“交互”的检测。可以采用的一种特定技术涉及确定用户视角相对于虚拟控制对象的相对位置(例如,观看虚拟环境的“摄像机”的方位)以及检测何时用户在虚拟控制对象和所述用户视角之间的线上实施手势。在一些实施例中,虚拟控制对象可以被呈现以便以特定角度或在所有时间针对用户视角的角度的特定范围内(诸如垂直于用户的视角)显现。各实施例可以在如下定义的两条线之间的特定角度公差内识别例如何时用户将他们的手放置在指示符和相机位置之间的线上:所述两条线是在用户位置与用户的手之间绘制的线以及在虚拟控制对象和用户位置之间绘制的线。实施例也可以检测何时用户把他们的手移动超出其臂部可达范围的特定百分比或超出某个其他距离参数。响应于检测到用户的手在沿着用户位置与虚拟控制对象之间的特定线的特定角度公差内以及检测到手的移动超出所述距离参数,虚拟控制可以被激活。应当容易理解的是,诸如角度公差和距离参数之类的参数可以是基于各种因素可调节的或以其他方式可配置的,所述各种因素包括但不限于特定虚拟控制(例如,被存储为虚拟控制配置数据)或特定用户(例如,基于用户偏好设置或校准到用户的高度)。

通过在用户的物理坐标和虚拟环境内的对象的虚拟坐标之间进行映射使在图5a-5o中图示的交互成为可能。通过经由hmd显示这些虚拟控制,本发明的实施例将用户的物理坐标映射到虚拟环境,并检测何时用户的物理坐标匹配虚拟控制的虚拟坐标。hmd的使用允许用户容易地可视化这些虚拟坐标与他们的物理坐标相关的位置。

这些技术允许实现以前不可能的各种各样的新颖交互。虚拟控制可以用作用于实现各种手势输入的原点或固定基准。该功能可以允许用户相对于虚拟环境的元件实施手势以实施各种情境动作。例如,虚拟环境中的闪电云可以用作控制,该控制允许用户将其手举到云,收集一道闪电,并且实施手势以把该道闪电投掷给对手。hmd的使用允许用户在实施动作时可视化他们的动作,并提供关于用户的手势正对虚拟环境造成的影响的实时反馈。其他可能的手势输入包括“指向和轻弹”手势,在该手势中用户举起他们的手到虚拟控制,然后实施“轻弹”手势以在相对于虚拟控制轻弹的方向上发送对象。

实施例还可以检测相对于虚拟控制的已知位置的移动向量。例如,实施例可以使用虚拟控制的位置作为原点,并评估对虚拟控制实施的用户手势,以检测相对于原点的手势移动的幅度和方向。以这种方式,实施例把手势的物理方位映射到虚拟环境中的虚拟坐标,并且然后基于物理方位到虚拟坐标的映射实施适当的动作。

再另外的实施例可以利用如下能力:跟踪用户观看角度的位置以把虚拟控制对象的位置、用户的物理手势和位置以及用户的观看角度的方向和原点组合到被系统解释以产生到虚拟环境的单一输入的信号中。现在将描述用于使用虚拟控制对象实施手势输入的示例性实施例。应当理解,各种附加和替代输入也可以被实施,并且这些示例并不旨在进行限制。

图5a-5d图示用于检测虚拟控制、与虚拟控制交互和激活虚拟控制的示例性手势输入系统。图5a-5d中描绘的虚拟控制是基本输入装置,该基本输入装置能够基于用户的观看角度被激活以进行交互,在激活之后,用户可以利用虚拟控制启动特定功能。虚拟控制可以基于确定虚拟控制对象在用户的特定观看角度内而变得可见或改变其外观以指示它能够进行交互。这允许用户通过如下方式以新颖方式与虚拟环境进行交互:允许交互对象仅当在特定观看角度内时显现在所述虚拟环境中。以这种方式,虚拟环境可以被呈现给用户,而没有对用户可见的交互式虚拟控制,或仅具有对用户可见的特定交互式控制,除非用户转动他们的头部以使得把虚拟控制带入用户的观看角度内的方式。图5a图示根据示例性实施例的虚拟控制相对于物理和虚拟锚点的相对定位。具体来说,图5a图示了佩戴hmd的用户504。hmd的位置已经由系统检测到并确立为物理锚点方位502。虚拟锚点方位被确立在对应于hmd的中心的虚拟坐标处,并且虚拟控制定位偏移508被用于定位虚拟控制506。在本示例中,虚拟控制位于用户身体之外大约用户的右肩部的水平。

在一些实施例中,图5a图示的本示例也图示虚拟控制的启用可以如何结合监视用户的观看角度510被实施。由于用户可能未意识到虚拟环境中可用的所有虚拟控制,所以实施例可以不激活特定虚拟控制,直到用户已经观看、确认或以其他方式意识到特定虚拟控制的存在。在图5a中,用户的观看角度510尚未导致虚拟环境中对应于虚拟控制506的区域的显示,所以虚拟控制保持去激活。

如图5b中所示,当用户的观看角度512被指向虚拟环境中包含虚拟控制514的部分时,该虚拟控制可以被激活并且可用于从用户接收输入。图5c图示用户可以用来通过把他/她的手516移动到对应于虚拟控制的物理方位来与虚拟控制进行交互的过程。当用户的手移动穿过虚拟控制或到虚拟控制上时,虚拟控制被突出显示,诸如通过将框518围绕虚拟控制方式以示出它被激活。图5d图示了一旦所述控制被激活,用户可以如何把他们的手520移动远离所述控制以使所述控制启动其相应功能522。用于实现这种控制的方法的示例性实施例在下面关于图11被进一步描述。

图5e-5g图示根据本发明的实施例的使用虚拟控制来实现放射状菜单。图5e图示了虚拟控制对象526,用户可以通过将他们的手524放置在由球体表示的特定区域中来与虚拟控制对象526交互。可以通过方括号528指示虚拟控制对象526可用于交互。图5f图示正在虚拟控制对象526周围显示的放射状菜单。在本示例中,放射状菜单包括可以由用户选择的4个单独的项目:a530、b532、c534和d536。每个单独的项目可以具有针对该项目生成的单独的虚拟控制。在一些实施例中,菜单项目可以被限定为与顶层菜单控制具有层级关系,使得针对个体菜单项目的控制是顶层菜单控制的子虚拟控制。这些子控制可以自动地或通过编程被生成和/或响应于与顶级菜单控制的交互而被启用。

项目可以响应于所述用户将他们的手放置在球体周围的交互区域内而被径向设置在表示虚拟控制对象的球体周围。图5g图示从放射状菜单选择项目的过程。为了选择列表中的项目之一,用户做出手势穿过要选择的项目。手势的相对于虚拟控制对象的中心的方向以及所显示的选择项目因此控制哪个项目被选择。如果实施第一手势538,则选择项目a。如果实施第二手势540,则选择项目b。如果实施第三手势542,则选择项目c,并且如果实施第四手势544,则选择项目d。用户可以通过在不与任何放射状菜单项目虚拟控制相关联的第五方向546上做出手势来取消放射状菜单。用于实现这样的控制的方法的示例性实施例在下面关于图11被进一步描述。

图5h-5k图示根据本发明的实施例的使用虚拟控制来实现列表选择菜单。图h图示了与列表控制相关联的虚拟控制对象548。当用户使他们的手550接近虚拟控制对象548时,可以围绕虚拟控制对象548或在虚拟控制对象548周围生成与列表项目相关联的一系列虚拟控制对象。图5i图示了一系列列表项目552-556。列表项目虚拟控制对象可以在特定方向上在所述虚拟控制对象548周围生成。例如,列表项目虚拟控制对象552-556可以在当前示例中在虚拟控制对象548上方竖直地生成,但也应当理解的是,在其他实施例中,列表项目可以水平、对角或者在相对于用户、虚拟控制对象控制列表或两者的组合的各种其他方向上生成。

图5j图示了选择列表项的过程。用户已朝向与特定列表项目558相关联的虚拟控制做出手势。当用户在列表项目上方保持手势时,可以显示确认虚拟控制对象560。不同的确认虚拟控制对象可以与每个列表元素相关联,或相同的虚拟控制对象可以基于用户已经对其做出手势的列表项目而在列表项目之间移动。在一些实施例中,与列表的持续交互可能取决于用户在设置列表所沿着的轴内维持手势。例如,在本示例中,在竖直设置的列表的情况下,如果用户在由列表项目虚拟控制对象的左和右边界限定的区域以外做出手势,则用于与列表进行交互的虚拟控制对象可能会消失,直到用户再次与列表虚拟控制对象进行交互。对于水平设置的列表,如果用户在由列表项目虚拟控制对象的顶部和底部限定的区域以外做出手势,则类似地,用于与列表进行交互的虚拟控制对象可能会消失。

图5k图示了用于确认列表项目的选择的过程。为了选择列表项目,用户可以与确认虚拟控制对象560进行交互。可以经由特定手势输入来实施与确认虚拟控制对象560的交互。例如,一些实施例在登记列表选择之前可能需要用户“挥动”穿过确认虚拟控制对象。其他实施例可以响应于用户将他们的手保持在确认虚拟控制对象560上方达预定义的时间段而确认选择。用于实现这种控制的方法的示例性实施例在下面关于图12被进一步描述。

图5l-5o图示了使用“微调”控制,“微调”控制允许用户使用特定虚拟控制对象来实施输入,直到不再满足与该虚拟控制对象相关联的特定准则。图5l图示了与被用户手势交互激活的微调控制相关联的虚拟控制对象564。图5m图示了用户手势交互的结果,创建计时器显示566。在该实例中的计时器显示被呈现为径向进度仪表,该径向进度仪表随着用户维持与虚拟控制对象564进行交互而逐渐填充特定颜色阴影。例如,在该情况下,所述径向进度仪表按顺时针方向填充,直到计时器显示566完全充满。如果手势输入未被维持达计时器的持续时间,则所述虚拟控制对象可以返回到图5l中所描绘的状态。

图5n图示了计时器已经完全期满并且计时器显示已经完全填充后的微调控制。当通过维持手势输入来满足计时器准则时,计时器显示566可以被包括一个或多个特定控制570和572的另一虚拟控制对象568替换。在本示例中,所述控制570和572涉及左箭头和右箭头。左箭头和右箭头可以与用户交互,只要用户维持手势在所述虚拟控制对象568内。图5o图示了与所述控制中特定的一个的交互574,使得该控制被用户输入激活。与激活的控制相关联的处理可以继续,只要用户维持与该控制的交互。微调控制可以保持在允许与子控制交互的状态,只要用户在较大的虚拟控制对象568中维持手势输入。在将他们的手移动出由虚拟控制对象568限定的区域时,控制570和572可能消失,并且用户在再次使用控制570和572之前可能需要实施关于图5m描述的输入和定时器。用于实现这种控制的方法的示例性实施例在下面关于图13被进一步描述。

与虚拟控制对象的交互可以按照各种方式来实施,并且不同的虚拟控制对象可被配置为接受不同类型的交互。例如,一些虚拟控制对象可以响应于“挥动”手势,其中该手势输入穿过并超出所述虚拟控制对象。其他虚拟控制对象可以响应于“保持”手势,需要该手势将维持在特定区域中或维持在特定方位达一定时间段。又一虚拟控制对象可以响应于“扭转”手势,其中用户在虚拟控制对象中、附近或周围旋转肢体或输入装置。其他实施例可能需要用户把其身体的一部分或附属部分朝向虚拟控制对象移动达至少阈值距离。阈值距离可以基于用户(例如,基于用户的可达范围)来动态定义,或基于特定控制(例如,控制的0.5米之内)是静态的。又一实施例也可能需要来自特定装置(例如,保持在用户左手中的接口装置与保持在用户右手中的接口装置)或用户的部分(例如,臂部或腿)的输入,使得仅响应于使用所述特定装置或用户的部分实施交互而检测到关于所述虚拟控制对象的交互。这种有效手势可被限定在虚拟控制对象配置数据内,如上面关于图4描述的。

一些虚拟控制对象也可以使用特定标志或其他准则来登记除手势输入之外的交互。例如,这种虚拟控制可能需要用户在正在实施手势的同时将他们的视场指向虚拟控制对象。在这种情况下,如果用户的视场不包括所述虚拟控制对象,则所述交互将不会被登记。在一些实施例中,一些虚拟控制对象可以使用除手势输入之外的数据来调整或引导虚拟控制对象的功能。例如,虚拟控制对象可以使用用户的视场来选择与虚拟控制(例如,扔球或武器开火)有关的动作的目标,使得在用户视场的方向上实施所述动作。在这种情况下,如果用户的视场不包含适当的目标,则可以不登记该交互。

用于在虚拟环境中使用虚拟控制来提供手势输入的示例性计算机实现的方法

图6是图示根据本发明的示例性实施例的用于定位在虚拟现实系统中使用的虚拟控制对象的示例性计算机可执行过程600的流程图。方法600图示了实施例如何可以提供以灵活、简单的方式来定位虚拟控制,以改进与虚拟环境的用户交互。方法600用于确定一个或多个物理对象的物理位置。物理位置被用来确定虚拟锚点位置,虚拟锚点位置可被用作用于放置虚拟控制的基准点。相对于虚拟锚点位置放置虚拟控制,该虚拟控制然后可以在虚拟锚点位置被用户用来与虚拟环境进行交互。该方法可以由计算装置(诸如服务器102或上面关于图1-2描述的设备200)实施,或作为关于图4描述的数据流的一部分被实施。

在动作602,该方法从一个或多个传感器接收描述物理环境状态的信息。如上面关于图1、2和4描述的,描述物理环境的信息可以直接从传感器被接收,或者在原始传感器输入被处理之后被接收,以检测对象方位。在动作604,描述物理环境状态的信息被用于确定一个或多个物理对象的位置。在动作606,基于在动作604确定的一个或多个物理对象位置来确定虚拟锚点位置。下面关于图7进一步描述用于使用物理对象的位置来确定虚拟锚点位置的示例方法。

虚拟锚点位置可被用作原点或锚点,可以基于原点或锚点确定虚拟控制的位置。在一些实施例中,虚拟锚点位置位于虚拟环境中的与物理环境中用户的头部、用户的胸部或hmd的方位对应的位置。以这种方式,虚拟锚点位置可以基于特定物理环境和特定用户的特性动态地确定。在一些实施例中,虚拟锚点位置的特性可以是可配置的。例如,用户可以从选项菜单选择:他们希望虚拟锚点位置相对于他们在物理环境中的位置被定位在前方,上方,后方,下方,后方等等多远。

在动作608,基于所述虚拟锚点位置确定虚拟环境内一个或多个虚拟控制的位置,并且在动作610,虚拟控制被定位在所确定的虚拟控制位置。例如,虚拟环境状态可被更新以反映虚拟控制在虚拟环境内的该特定方位的位置。

虚拟控制可以被放置在虚拟环境内,使得当用户调整hmd的观看角度时,当hmd的观看角度与映射到虚拟控制的虚拟位置的物理位置对应时,虚拟控制被显示在hmd中。例如,在典型的虚拟环境中,hmd的显示器被调整为随着用户调整hmd的物理观看角度而显示虚拟环境的不同区域,并且虚拟环境的那些被显示的区域通常对应于用户周围的物理环境。如果用户调整hmd的角度,使得,如果用户不佩戴hmd,用户将看到与虚拟控制的虚拟坐标相关联的物理环境的区域,然后虚拟控制将被显示在hmd的显示器中。可选地,所述虚拟控制对象可以被配置成使得:即使围绕虚拟控制的虚拟环境的区域被显示给用户,它也不被显示。只有当用户的观看角度是用户正在看虚拟环境中的虚拟控制已经位于的方位时,虚拟控制对象才可以被显示。以这种方式,用户可以向前看并且通过他们的周围视觉看见不包含虚拟控制对象的虚拟环境。但是,如果用户看向虚拟控制对象的方向,则该虚拟控制对象可以显现在环境中。这样,实施例促进物理环境和虚拟环境之间的映射,使得当用户与物理环境交互(例如,通过实施手势)时,用户也与虚拟环境的对应元素交互,因此增加虚拟环境内的沉浸,并且提供与虚拟环境的增加交互性。

图7是图示了根据本发明的示例性实施例的用于基于物理锚点位置确定虚拟控制对象的位置的示例性计算机可执行过程700的流程图。如上面关于图6所述的,实施例可基于关于物理环境的信息确定虚拟锚点位置。图7图示用于基于特定物理对象的检测来确定虚拟锚点位置的示例方法。

在动作702,诸如基于一组物理状态数据,一个或多个物理对象的位置是已知的。根据物理对象位置,物理锚点的位置可以被确定。例如,实施例可确定具有特定特性的物理对象的位置,诸如使用hmd上的红外信标来确定hmd的方位。在一些实施例中,响应于特定准则实施物理锚点方位的确定。例如,由hmd提供的加速度计和陀螺仪数据可被用来确定hmd何时被放置在用户的头部上(例如,通过检测何时装置被举起以及然后减低水平)。在检测到hmd被放置在用户的头部上时,物理锚点方位可被确定作为初始化或校准过程的一部分。在其他实施例中,物理锚点位置可以通过其他传感器数据来确定。例如,红外或成像数据可以被处理,以确定用户头部或手的方位并且物理锚点位置可以被设置到该方位。

在动作704,物理锚点位置的物理坐标被映射到虚拟环境中的虚拟坐标。在动作706,这些虚拟坐标用作虚拟锚点位置。在动作708,针对虚拟控制的虚拟控制定位偏移被确定,并且在动作710,虚拟环境中的虚拟控制的位置被确定为使得所述虚拟环境中的虚拟控制的位置对应于用户必须实施手势输入以与虚拟控制交互的物理环境中的位置。

尽管图7一般地描述了虚拟锚点位置在单个时间点被确定,但是应当理解的是,所述虚拟锚点位置可以实时地或以特定间隔被动态调整。在这方面,虚拟锚点位置的调整也可能导致虚拟控制的位置相对于虚拟锚点的更新后的位置来更新。

图8是图示根据本发明的示例性实施例的基于观看角度启用虚拟控制对象的示例性计算机可执行过程800的流程图。如上文关于图5a-5o指出的,实施例可以利用用户的观看角度来确定是否启用或禁用,或显示特定的虚拟控制。特别地,实施例可以响应于用户的观看角度指向映射到虚拟环境中虚拟控制位置的物理环境中的位置而启用虚拟控制。以这种方式,实施例确保控制仅在用户意识到它们存在之后可以被启用,以避免在用户尚未看到虚拟控制时无意中用手势触发虚拟控制。应当理解的是,在一些实施例中,该特征可在每个控制的基础上被启用或禁用。例如,一个控制可能全部时间被启用,并且仅在用户经由hmd观看另一控制之后可以启用该另一控制。在又一实施例中,对虚拟控制基于观看的启用可能是可由用户配置的。例如,在用户第一次玩游戏和不熟悉各个控制时,他可能希望每个控制均被禁用,直到观看、交互或接收到针对该控制的教程。已经意识到控制的放置和功能的经验更丰富的用户可能希望禁用此特征以立即访问所有可用的控制。

为了实施这些功能,在动作802,该方法确定用户的观看角度。如上所述,用户的观看角度可以由如下各项中的一个或多个确定:hmd中的加速度计、hmd中的陀螺仪或耦合到服务器的、检测用户或用户的一部分(诸如用户的头部或手)的位置或用户的一部分的特定取向的传感器。在动作804,确定用户的观看角度是否包括虚拟控制。如果观看角度包括虚拟控制,则可以在动作806启用该控制。否则,该方法返回到动作802。

图9是图示根据本发明的示例性实施例的用于检测与虚拟控制对象的交互以提供输入给虚拟现实系统的示例性计算机可执行过程900的流程图。如上所述,实施例通过提供用户的物理位置和虚拟环境的坐标之间的映射来起作用。通过确定用户的物理位置是否与对应于虚拟控制的虚拟坐标的物理位置交叉来检测与虚拟控制的交互。方法900图示了该交互可以按照其发生的示例过程。

在动作902,诸如根据传感器数据确定物理环境中用户、用户的一部分或其他物理对象的物理位置。例如,传感器可以检测到用户正站在特定方位,用户已实施特定手势,用户已移动特定臂、腿、手、手指等到特定点,等等。在动作904,用户的物理方位/位置可以被映射到一组虚拟坐标。应当理解的是,虽然本示例涉及用户的位置,但各种附加信号也可以被采用。作为特定的非限制性示例,实施例可以检测到用户已经在特定方位实施了特定手势,用户的观看指向特定方向,等等。其他示例性信号可以包括:用户是否已经穿过所述虚拟环境中一组坐标的一部分的检测、手势速度的确定、与虚拟控制对象接触角度的确定、虚拟控制对象的限定区域内交互的检测等等。例如,实施例可以计算与虚拟控制对象接触的速度、方向、角度以及虚拟控制对象上的接触点,上述各项导致所述虚拟环境中的对象(虚拟控制对象或另一对象)基于从接触的速度、方向、角度和接触方位得出的力而开始旋转。除其他之外,这些信号中的每一个可以单独和/或组合地用于评估是否以及如何评估与特定虚拟控制的交互。

在动作906,确定映射到用户的物理位置的虚拟坐标是否对应于一个或多个虚拟控制的虚拟位置。如果用户的位置(或物理环境中其他物理对象的位置)不与任何虚拟控制相关联,则该方法返回到动作902,以继续跟踪该用户。如果用户的位置与虚拟控制相关联,则方法前进到动作908,以确定该控制是否被启用(例如,响应于用户先前将他的观看角度指向与虚拟控制的虚拟坐标位置对应的物理区域)。在动作908,如果该控制被启用,则该方法前进到动作910,其中启动与虚拟控制的交互。否则,该方法返回到动作902以继续监视用户的位置。

图10是图示根据本发明的示例性实施例的用于使用延迟来改进与虚拟控制对象的交互以提供输入给虚拟现实系统的示例性计算机可执行过程1000的流程图。为了减少对虚拟控制的无意输入,发明人已经确定,一些实施例可以受益于在实施涉及与特定虚拟控制的交互的功能之前采用延迟。以这种方式,实施例可能需要用户在经由虚拟控制启用输入之前把他们的手或其他输入手势保持在虚拟控制上方达特定时间段。

在动作1002,方法1000可以检测到用户已经与虚拟控制交互。例如,如上所述,用户可能已经把他们的手或他们身体的另一部分放置在被启用的虚拟控制上或附近。在动作1004,在实施与虚拟控制相关联的功能之前,实施例可以开始延迟计时器。在动作1006,可检测到用户交互的结束。如果该交互持续得比延迟计时器更长,则与虚拟控制相关联的功能可以在动作1012被实施。如果交互持续得短于延迟计时器,则交互可以在动作1010被忽略和并且不实施该控制。

在其他实施例中,延迟计时器可以与启动交互的意图而不是完整手势相关联。例如,在该控制接受用户手势输入之前,可能需要用户指向或进一步使他们的臂部指向虚拟控制达至少阈值时间段。这样,计时器可以与初始交互而不是整个手势输入相关联。

图11是图示根据本发明的示例性实施例的用于使用虚拟控制对象以实现放射状选择菜单来实施手势输入的示例性计算机可执行过程1000的流程图。为了改进与虚拟对象的交互,减少错误输入,并以其他方式改进用户与虚拟环境进行交互的技术,发明人开发了使用虚拟控制对象来增强接收输入的过程的各种输入技术和方式。一个这种新颖的开发成果是使用虚拟控制对象实现的放射状菜单。过程1100描述了用户可以与所述放射状菜单虚拟控制对象交互的方式。

在动作1102,检测与放射状菜单虚拟控制对象的手势交互。例如,用户可以在围绕放射状菜单虚拟控制对象限定的特定区域内做出手势。如上所述,相对于虚拟控制对象实施的不同手势可产生不同的结果。在动作1104,在检测到与放射状菜单虚拟控制对象的手势交互时,与放射式菜单的元素对应的一系列虚拟控制对象可以在放射状菜单虚拟控制对象周围被放射状地生成。在动作1106,可以检测穿过放射状菜单的元素的挥动手势。在一些实施例中,挥动手势必须在放射状菜单虚拟控制对象的特定附近内产生,因为如果用户在放射状菜单虚拟控制对象之外做出手势放射状菜单可能会消失。在动作1108,执行与对应于挥动手势的放射状菜单项目相关联的处理。

图12是图示根据本发明的示例性实施例的用于使用列表菜单实施手势输入的示例性计算机可执行过程1200的流程图。与放射状菜单虚拟控制对象一样,发明人已经开发了列表控制对象,该列表控制对象有利地提供了减少的输入错误和对虚拟控制对象内的项目的更精确的选择。过程1200描述了用户可以与所述列表虚拟控制对象进行交互的方式。

在动作1202,检测相对于列表虚拟控制对象的手势交互。在动作1204,响应于与所述列表虚拟控制对象的交互,生成对应于所述列表中的项目的一系列虚拟控制对象。可生成在特定方向或沿特定轴(诸如列表虚拟控制对象的竖直上方)从列表虚拟控制对象向外扩展的这些列表项目虚拟控制对象。

在动作1206,检测到与列表项目虚拟控制对象之一的手势交互。如上面关于图5h-5k描述的,与列表项目虚拟控制对象的交互可能需要用户维持在与所述列表相关联的特定区域内(诸如在由列表沿其延伸的轴限定的竖直或水平范围内)的手势输入。

在动作1208,与在动作1206选择的列表项目对应的确认虚拟控制对象被生成。确认虚拟控制对象可被设置为邻近与所选择的列表项目对应的虚拟控制对象。在一些实施例中,在用户朝向不同列表项目虚拟控制对象做出手势时,确认虚拟控制对象把该列表上下移动,以邻近于不同的列表项目虚拟控制对象。在其他实施例中,基于列表项目的选择,针对每个列表项目生成单独的确认虚拟控制对象。在又一实施例中,每个列表项目虚拟控制对象与单独的确认虚拟控制对象相关联,并且随着用户朝向每个列表项目虚拟控制对象做出手势,所述确认虚拟控制对象被启用和禁用。所述虚拟控制对象的启用和禁用可以包括使启用的确认虚拟控制对象对用户可见,以及使禁用的确认虚拟控制对象不可见。

在动作1210,检测与所述确认虚拟控制对象的手势交互。确认虚拟控制对象可能需要用于交互的特定类型的手势输入。例如,确认虚拟控制对象可能需要“挥动”手势从列表项目虚拟控制对象被实施穿过确认虚拟控制对象。在其他实施例中,可以实施用于与所述确认虚拟控制对象进行交互的其他手势交互,包括但不限于把手势保持在确认虚拟控制对象上方,就好像用户正按压按钮一样做出“穿过”确认虚拟控制对象的手势,“轻弹”确认虚拟控制对象处的列表项目虚拟控制对象,等等。

在动作1212,在检测到与所述确认虚拟控制对象的手势交互时,执行与对应于所选择的列表项目虚拟控制对象的列表项目关联的处理。

图13是图示根据本发明的示例性实施例的用于使用微调控制实施手势输入的示例性计算机可执行过程1200的流程图。与上述放射状菜单虚拟控制对象和列表虚拟控制对象一样,发明人已经开发了微调虚拟控制对象,微调虚拟控制对象有利地提供了减少的输入错误和对虚拟控制对象内项目的更精确的选择。过程1300描述了用户可以与所述微调虚拟控制对象进行交互的方式。

在动作1302,检测与微调虚拟控制对象的交互的启动。在动作1204,计时器被启动,并且在虚拟环境中生成与微调虚拟控制对象相关联的计时器显示。如上面关于图5m所述的,计时器可以在微调虚拟控制对象周围放射状显示。在动作1306,确定手势交互是否被维持达计时器的持续时间。如果手势未被维持直到所述计时器期满,则过程前进到动作1308,其中与微调虚拟控制对象的交互被复位。否则,过程前进到动作1310。

在动作1310,如果手势输入被维持达计时器的持续时间,可以显示一个或多个微调控制虚拟控制对象。这些微调控制虚拟控制对象可以被显示在这样的区域内,该区域被限定为在微调虚拟控制对象内或围绕微调虚拟控制对象,如以上关于图5n所描述的。在动作1312,检测与一个或多个微调控制虚拟控制对象的手势交互以选择特定微调控制虚拟控制对象。在动作1314,与所选择的微调控制虚拟控制对象相关联的处理被执行。在动作1316,如果手势输入不再维持在微调控制内,则微调控制虚拟控制对象在动作1318被去除,并且微调控制复位到其原始状态。否则,过程返回到动作1312,以经由所述微调控制虚拟控制对象来检测附加手势输入。

在描述示例性实施例时,特定术语出于清楚起见被使用。为了描述的目的,每个特定术语意图至少包括以类似方式操作以实现类似目的的所有技术和功能等同物。另外,在特定示例性实施例包括多个系统元件或方法步骤的一些情况下,那些元件或步骤可以被单个元件或步骤替换。同样地,单个元件或步骤可被用于相同目的的多个元件或步骤替换。此外,当在本文中针对示例性实施例指定各种属性的参数时,这些参数可以被向上或向下调整1/20、1/10、1/5、1/3、1/2等等,或它们的大约近似值,除非另有规定。此外,虽然示例性实施例已参照其特定的实施例被示出和描述,但本领域普通技术人员将理解,可以在不脱离本发明的范围的情况下在那里做出形式和细节方面的各种替换和变更。再者,其他方面、功能和优点也在本发明的范围之内。

示例性流程图出于说明的目的在本文中被提供并且是方法的非限制性示例。本领域的普通技术人员将认识到,示例性方法可以包括比在示例性流程图中所示的那些更多或更少的步骤,并且在示例性流程图中的步骤可以按照与所示的不同的次序来实施。

框图和流程图示的框支持用于实施指定功能的装置的组合,用于实施指定功能的步骤和用于实施指定功能的程序指令装置的组合。还将理解的是,电路图和过程流程图的一些或所有框/步骤以及电路图和过程流程图的框/步骤的组合可以由如下各项实现:实施指定功能或步骤的基于专用硬件的计算机系统,或专用硬件和计算机指令的组合。示例性系统可以比在示例性框图中所示的那些包括更多或更少的模块。

对具有在前面的描述和相关联的附图中呈现的教导的益处的本发明的实施例所属的技术领域的技术人员将会想到本文所阐述的本发明的许多修改和其他实施例。因此,要理解的是,本发明的实施例不限于所公开的具体实施例,并且修改和其他实施例意图被包括在所附权利要求的范围之内。虽然本文采用了特定的术语,但是它们仅以一般和描述性的意义被使用,而不是为了限制的目的。

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