CN116210021A - 确定角加速度 - Google Patents
确定角加速度 Download PDFInfo
- Publication number
- CN116210021A CN116210021A CN202180060739.XA CN202180060739A CN116210021A CN 116210021 A CN116210021 A CN 116210021A CN 202180060739 A CN202180060739 A CN 202180060739A CN 116210021 A CN116210021 A CN 116210021A
- Authority
- CN
- China
- Prior art keywords
- inertial
- wearable head
- data
- angular acceleration
- head device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01P—MEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
- G01P15/00—Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration
- G01P15/02—Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration by making use of inertia forces using solid seismic masses
- G01P15/08—Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration by making use of inertia forces using solid seismic masses with conversion into electric or magnetic values
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01P—MEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
- G01P15/00—Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration
- G01P15/16—Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration by evaluating the time-derivative of a measured speed signal
- G01P15/165—Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration by evaluating the time-derivative of a measured speed signal for measuring angular accelerations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
- Position Input By Displaying (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本文公开了用于使用两个或多个惯性测量单元(IMU)基于惯性数据来计算角加速度的系统和方法。所计算的角加速度可用于估计包括IMU的可穿戴头部设备的位置。虚拟内容可以基于可穿戴头部设备的位置来呈现。在一些实施例中,第一IMU和第二IMU共享重合的测量轴。
Description
相关申请的交叉引用
本申请要求于2020年5月29日提交的美国临时申请号63/031,985的权益,其整体内容通过引用并入本文。
技术领域
本公开大体涉及用于映射和显示视觉信息的系统和方法,并且特别地涉及用于在混合现实环境中映射和显示视觉信息的系统和方法。
背景技术
虚拟环境在计算环境中是普遍存在的,虚拟环境应用于视频游戏(其中,虚拟环境可表示游戏世界);地图(其中,虚拟环境可表示待导航的地形);模拟(其中,虚拟环境可模拟真实环境);数字故事(其中,虚拟角色可在虚拟环境中彼此交互);和许多其他应用。现代计算机用户通常舒适感知虚拟环境并且与虚拟环境交互。然而,关于虚拟环境的用户的体验可能受限于用于呈现虚拟环境的技术。例如,常规显示器(例如,2D显示屏)和音频系统(例如,固定扬声器)可能不能够以产生令人信服、现实并且沉浸式体验的方式实现虚拟环境。
虚拟现实(“VR”)、增强现实(“AR”)、混合现实(“MR”)、和相关技术(统称为“XR”)共享向XR系统的用户呈现与由计算机系统中的数据所表示的虚拟环境对应的感觉信息的能力。本公开预期了VR、AR和MR系统之间的区别(尽管在一方面中(例如,视觉方面)一些系统可被分类为VR,并且同时在另一方面中(例如,音频方面)被分类为AR或MR))。如本文所使用的,VR系统呈现了在至少一个方面中替换用户的真实环境的虚拟环境;例如,VR系统可以向用户呈现虚拟环境的视图,而同时模糊他或她的真实环境的视图,诸如利用光阻挡(light-blocking)头戴式显示器。类似地,VR系统可以向用户呈现与虚拟环境对应的音频,而同时阻挡(衰减)来自真实环境的音频。
VR系统可能经历起因于用虚拟环境替换用户的真实环境的各种缺点。一个缺点是当用户在虚拟环境中的视场不再对应于他或她的内耳的状态时可能出现的运动病的感觉,其检测到个人在真实环境(非虚拟环境)中的平衡和取向。类似地,在VR环境中,用户可能会感到混乱取向(disorientation),因为他们自己的身体和四肢(用户依赖于其视图以在真实环境中感觉“触地(grounded)”)不直接可见。另一个缺点是置于VR系统上的计算负担(例如,存储、处理能力),该VR系统必须呈现全3D虚拟环境,特别地在试图使用户沉浸在虚拟环境中的实时应用中。类似地,这样的环境可能需要达到非常高标准的真实性以被认为是沉浸式的,因为用户倾向于对虚拟环境中的甚至较小的不完美而敏感——其中的任何不完美可能破坏用户对虚拟环境的沉浸感。进一步地,VR系统的另一个缺点在于,系统的这样的应用不能利用真实环境中的广泛感觉数据,诸如人们在真实世界中体验的各种视线和声音。相关缺点在于,VR系统可能努力创建多个用户在其中可以交互的共享环境,因为共享真实环境中的物理空间的用户可能不能够在虚拟环境中直接看到彼此或彼此交互。
如本文所使用的,AR系统呈现在至少一个方面中重叠或覆盖真实环境的虚拟环境。例如,AR系统可以向用户呈现覆盖在用户的真实环境的视图上的虚拟环境的视图,诸如利用呈现所显示的图像同时允许光穿过显示器到用户的眼睛中的透射式头戴式显示器。类似地,AR系统可以向用户呈现与虚拟环境对应的音频,而同时在来自真实环境的音频中进行混合。类似地,如本文所使用的,MR系统呈现在至少一个方面中重叠或覆盖真实环境的虚拟环境,如AR系统所做,并且可以附加地允许在至少一个方面中MR系统中的虚拟环境可以与真实环境交互。例如,虚拟环境中的虚拟角色可以切换真实环境中的灯开关,使得真实环境中的对应的灯泡打开或关闭。作为另一个示例,虚拟角色可以对真实环境中的音频信号作出反应(诸如用面部表情)。通过维持真实环境的呈现,AR和MR系统可以避免VR系统的前述缺点中的一些缺点;例如,用户的运动病减少,因为来自真实环境(包括用户的自己的身体)的视觉线索可以保持可见,并且这样的系统不需要向用户呈现完全实现的3D环境以便是沉浸式的。进一步地,AR和MR系统可以利用真实世界感觉输入(例如,场景、对象和其他用户的视图和声音)来创建增加该输入的新应用。
呈现重叠或覆盖真实环境的虚拟环境可能是困难的。例如,将虚拟环境与真实环境混合可能要求对真实环境进行复杂而彻底的理解,使得虚拟环境中的对象不与真实环境中的对象冲突。可以进一步希望在虚拟环境中保持与真实环境中的一致性相对应的持久性。例如,可能希望显示在物理桌上的虚拟对象出现在同一位置,即使用户转移目光、四处移动,并且然后回头看物理桌。为了实现这种类型的沉浸感,开发对对象在真实世界中何处以及用户在真实世界中何处的准确和精确估计可能是有益的。
发明内容
本文公开了用于使用两个或两个以上惯性测量单元(IMU)基于惯性数据来计算角加速度的系统和方法。所计算的角加速度可用于估计包括IMU的可穿戴头部设备的位置。虚拟内容可以基于可穿戴头部设备的位置来呈现。在一些实施例中,第一IMU和第二IMU共享重合的测量轴。
在一些实施例中,一种系统包括:第一惯性测量单元;第二惯性测量单元;以及一个或多个处理器,其被配置为执行一种方法,所述方法包括:经由所述第一惯性测量单元接收第一惯性数据;经由所述第二惯性测量单元接收第二惯性数据;基于所述第一惯性数据并且进一步基于所述第二惯性数据来计算角加速度;基于所述角加速度估计可穿戴头部设备的第一位置;以及基于所述可穿戴头部设备的所述第一位置来呈现虚拟内容。
在一些实施例中,所述第一惯性测量单元和所述第二惯性测量单元共享重合的测量轴。
在一些实施例中,所述系统还包括:第三惯性测量单元,其不与所述第一惯性测量单元和所述第二惯性测量单元共享所述重合的测量轴。
在一些实施例中,所述方法还包括:经由所述第三惯性测量单元生成第三惯性数据,其中,进一步基于所述第三惯性数据来计算所述角加速度。
在一些实施例中,基于所述角加速度来估计所述可穿戴头部设备的所述第一位置包括:基于所述角加速度来计算预积分项。
在一些实施例中,所述预积分项将所述可穿戴头部设备的第一状态与所述可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、以及相应的陀螺仪偏置数据。
在一些实施例中,所述方法还包括:基于所述角加速度并且进一步基于所述可穿戴头部设备的所述第一位置来预测所述可穿戴头部设备的未来位置;以及基于所述可穿戴头部设备的所述未来位置来更新所述虚拟内容的呈现。
在一些实施例中,一种方法包括:经由第一惯性测量单元接收第一惯性数据;经由第二惯性测量单元接收第二惯性数据;基于所述第一惯性数据并且进一步基于所述第二惯性数据计算角加速度;基于所述角加速度来估计可穿戴头部设备的第一位置;以及基于所述可穿戴头部设备的所述第一位置来呈现虚拟内容。
在一些实施例中,所述第一惯性测量单元和所述第二惯性测量单元共享重合的测量轴。
在一些实施例中,所述方法还包括:经由不与所述第一惯性测量单元和所述第二惯性测量单元共享所述重合的测量轴的第三惯性测量单元来生成第三惯性数据。
在一些实施例中,进一步基于所述第三惯性数据来计算所述角加速度。
在一些实施例中,基于所述角加速度来估计所述可穿戴头部设备的所述第一位置包括:基于所述角加速度来计算预积分项。
在一些实施例中,所述预积分项将所述可穿戴头部设备的第一状态与所述可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、以及相应的陀螺仪偏置数据。
在一些实施例中,所述方法还包括:基于所述角加速度并且进一步基于所述可穿戴头部设备的所述第一位置来预测所述可穿戴头部设备的未来位置;以及基于所述可穿戴头部设备的所述未来位置来更新所述虚拟内容的呈现。
在一些实施例中,一种存储一个或多个指令的非暂态计算机可读介质,所述指令当由电子设备的一个或多个处理器执行时,使得所述一个或多个处理器执行包括以下各项的方法:经由第一惯性测量单元接收第一惯性数据;经由第二惯性测量单元接收第二惯性数据;基于所述第一惯性数据并且进一步基于所述第二惯性数据来计算角加速度;基于所述角加速度来估计可穿戴头部设备的第一位置;以及基于所述可穿戴头部设备的所述第一位置来呈现虚拟内容。
在一些实施例中,所述第一惯性测量单元和所述第二惯性测量单元共享重合的测量轴。
在一些实施例中,所述方法还包括:经由不与所述第一惯性测量单元和所述第二惯性测量单元共享所述重合的测量轴的第三惯性测量单元来生成第三惯性数据。
在一些实施例中,进一步基于所述第三惯性数据计算所述角加速度。
在一些实施例中,基于所述角加速度来估计所述可穿戴头部设备的所述第一位置包括:基于所述角加速度来计算预积分项。
在一些实施例中,所述预积分项将所述可穿戴头部设备的第一状态与所述可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、以及相应的陀螺仪偏置数据。
在一些实施例中,所述方法还包括:基于所述角加速度并且进一步基于所述可穿戴头部设备的所述第一位置来预测所述可穿戴头部设备的未来位置;以及基于所述可穿戴头部设备的所述未来位置来更新所述虚拟内容的呈现。
附图说明
图1A至图1C示出了根据本公开的一个或多个实施例的示例性混合现实环境。
图2A至图2D示出了根据本公开的实施例的示例性混合现实系统的组件。
图3A示出了根据本公开的实施例的示例性混合现实手持式控制器。
图3B示出了根据本公开的实施例的示例性辅助单元。
图4示出了根据本公开的实施例的示例性混合现实系统的示例性功能框图。
图5示出了根据本公开的实施例的示例性IMU配置。
图6A示出了根据本公开的实施例的SLAM计算的示例性图。
图6B示出了根据本公开的实施例的角速度随时间的示例性图。
图7示出了根据本公开的实施例的示例性IMU配置。
图8示出了根据本公开的实施例的用于呈现虚拟内容的示例性过程。
具体实施方式
在示例的以下描述中,参考了构成本文一部分的附图,其中通过可实践的具体示例进行说明。应理解,在不脱离所公开的示例的范围的情况下,可以使用其他示例并且可以做出结构改变。
混合现实环境
像所有人一样,混合现实系统的用户存在于真实环境中——即,“真实世界”的三维部分和所有其内容可由用户感知。例如,用户使用个人的普通人类感觉(视线、声音、触摸、味道、气味)来感知真实世界,并且通过在真实环境中移动个人自己的身体来与真实环境进行交互。真实环境中的位置可被描述为坐标空间中的坐标;例如,坐标可包括纬度、经度和相对于海平面的海拔;在三个正交维度上距参考点的距离;或其他适合的值。同样地,矢量可描述具有坐标空间中的方向和大小(magnitude)的量(quantity)。
计算设备可例如在与设备相关联的存储器中维持虚拟环境的表示。如本文所使用的,虚拟环境是三维空间的计算表示。虚拟环境可包括任何对象、动作、信号、参数、坐标、矢量、或与该空间相关联的其他特性的表示。在一些示例中,计算设备的电路(例如,处理器)可以维持和更新虚拟环境的状态;即,处理器可以在第一时间t0处基于与虚拟环境相关联的数据和/或由用户提供的输入来确定第二时间t1处的虚拟环境的状态。例如,如果虚拟环境中的对象在时间t0处位于第一坐标处,并且具有某个编程的物理参数(例如,质量、摩擦系数);以及从用户接收的输入指示力应当以方向矢量被施加到该对象;处理器可应用运动学定律以使用基础力学确定对象在时间t1处的位置。处理器可以使用关于虚拟环境已知的任何适合的信息和/或任何适合的输入来确定时间t1处的虚拟环境的状态。在维持和更新虚拟环境的状态时,处理器可执行任何适合的软件,包括与虚拟环境中的虚拟对象的创建和删除有关的软件;用于定义虚拟环境中的虚拟对象或角色的行为的软件(例如,脚本);用于定义虚拟环境中的信号(例如,音频信号)的行为的软件;用于创建和更新与虚拟环境相关联的参数的软件;用于生成虚拟环境中的音频信号的软件;用于处理输入和输出的软件;用于实现网络操作的软件;用于应用资产数据(例如,随时间移动虚拟对象的动画数据)的软件;或许多其他可能性。
输出设备(诸如显示器或者扬声器)可以向用户呈现虚拟环境的任何或所有方面。例如,虚拟环境可包括可以呈现给用户的虚拟对象(其可包括无生命对象;人;动物;光;等的表示)。处理器可以确定虚拟环境的视图(例如,对应于具有坐标原点、视图轴和视锥的“相机”);以及向显示器渲染对应于该视图的虚拟环境的可视场景。出于该目的,可以使用任何适合的渲染技术。在一些示例中,可视场景可以包括虚拟环境中的一些虚拟对象,并且不包括某些其他虚拟对象。类似地,虚拟环境可包括可呈现给用户作为一个或多个音频信号的音频方面。例如,虚拟环境中的虚拟对象可生成起源于对象的位置坐标的声音(例如,虚拟角色可以说话或引起声音效果);或者虚拟环境可以与可以与或可以不与特定位置相关联的音乐线索或环境声音相关联。处理器可确定对应于“听众”坐标的音频信号——例如,对应于虚拟环境中的声音的复合的音频信号,并且被混合并处理以模拟将由听众坐标处的听众听到的音频信号——并且经由一个或多个扬声器将音频信号呈现给用户。
由于虚拟环境仅存在作为计算结构,所以用户可能不会使用个人的普通感觉直接感知虚拟环境。相反,用户可以仅间接地感知如呈现给用户的虚拟环境,例如通过显示器、扬声器、触觉输出设备等。类似地,用户可以不直接触摸、操控、或以其他方式与虚拟环境交互;但是可以经由输入设备或传感器将输入数据提供给可使用设备或传感器数据更新虚拟环境的处理器。例如,相机传感器可提供指示用户试图移动虚拟环境中的对象的光学数据,并且处理器可使用该数据使使对象在虚拟环境中相应地响应。
混合现实系统可以向用户呈现组合真实环境和虚拟环境的各方面的混合现实环境(“MRE”),例如使用透射式显示器和/或一个或多个扬声器(其可以例如并入可穿戴头部设备中)。在一些实施例中,一个或多个扬声器可以在可穿戴头部设备的外部。如本文所使用的,MRE是真实环境和对应的虚拟环境的同时表示。在一些示例中,对应的真实环境和虚拟环境共享单个坐标空间;在一些示例中,真实坐标空间和对应的虚拟坐标空间通过变换矩阵(或其他适合的表示)彼此相关。因此,单个坐标(在一些示例中,连同变换矩阵一起)可以定义真实环境中的第一位置,以及虚拟环境中的第二对应位置;反之亦然。
在MRE中,虚拟对象(例如,在与MRE相关联的虚拟环境中)可以对应于真实对象(例如,在与MRE相关联的真实环境中)。例如,如果MRE的真实环境包括位置坐标处的真实灯杆(真实对象),则MRE的虚拟环境可包括对应的位置坐标处的虚拟灯杆(虚拟对象)。如本文所使用的,真实对象组合其对应的虚拟对象一起构成“混合现实对象”。不需要虚拟对象与对应的真实对象完美匹配或者对准。在一些示例中,虚拟对象可以是对应的真实对象的简化版本。例如,如果真实环境包括真实灯杆,则对应的虚拟对象可以包括具有与真实灯杆粗略地相同高度和半径的圆柱体(反映该灯杆可以在形状方面是粗略地圆柱形)。以这种方式简化虚拟对象可以允许计算效率,并且可以简化将在这样的虚拟对象上执行的计算。进一步地,在MRE的一些示例中,真实环境中的并非所有真实对象可以与对应的虚拟对象相关联。同样地,在MRE的一些示例中,虚拟环境中的并非所有虚拟对象可以与对应的真实对象相关联。即,一些虚拟对象可以仅在MRE的虚拟环境中而没有任何现实世界对应物。
在一些示例中,虚拟对象可以具有与对应的真实对象的特性(有时急剧地)不同的特性。例如,虽然MRE中的真实环境可以包括绿色双臂仙人掌——多刺无生命对象——MRE中对应的虚拟对象可以具有具有人类面部特征和粗暴行为的绿色双臂虚拟角色的特性。在该示例中,虚拟对象在某些特性(颜色、臂的数量)方面类似其对应的真实对象;但是在其他特性(面部特征、个性)方面与真实对象不同。以这种方式,虚拟对象具有以创造性、抽象、夸大、或想象的方式表示真实对象的潜在性;或者向其他无生命真实对象给予行为(例如,人类个性)。在一些示例中,虚拟对象可以是纯想象创造而没有现实世界对应物(例如,虚拟环境中的虚拟怪物,也许在对应于真实环境中的空白空间的位置处)。
与VR系统相比,该VR系统向用户呈现虚拟环境同时模糊真实环境,呈现MRE的混合现实系统提供当虚拟环境被呈现时真实环境保持可感知的优点。因此,混合现实系统的用户能够使用与真实环境相关联的视觉和音频线索来体验对应的虚拟环境并且与对应的虚拟环境交互。作为示例,当VR系统的用户可以努力感知虚拟环境中显示的虚拟对象或与虚拟环境中显示的虚拟对象交互时——因为如上所述,用户不能直接感知或与虚拟环境交互——MR系统的用户可以通过看到、听到和触摸他或她自己的真实环境中的对应的真实对象发现与虚拟对象进行更加直观且自然的交互。该交互性水平可以提高用户对虚拟环境的沉浸感、连接感和参与感。类似地,通过同时呈现真实环境和虚拟环境,混合现实系统可以减少与VR系统相关联的负面心理感觉(例如,认知失调)和负面身体感觉(例如,运动病)。混合现实系统进一步为应用提供许多可能性,这些应用可以增加或更改我们对现实世界的体验。
图1A示出了在其中用户110使用混合现实系统112的示例性真实环境100。混合现实系统112可以包括显示器(例如,透射式显示器)和一个或多个扬声器,以及一个或多个传感器(例如,相机),例如如本文所描述的。示出的真实环境100包括用户110站立的矩形房间104A;以及真实对象122A(灯)、124A(桌子)、126A(沙发)和128A(油画)。房间104A可以利用位置坐标(例如,坐标系108)空间地来描述;真实环境100的位置可以相对于位置坐标的原点(例如,点106)来描述。如图1A所示,具有其原点位于点106(世界坐标)的环境/世界坐标系108(包括x轴108X、y轴108Y和z轴108Z)可以定义用于真实环境100的坐标空间。在一些实施例中,环境/世界坐标系108的原点106可以对应于混合现实系统112的通电位置。在一些实施例中,环境/世界坐标系108的原点106可以在操作期间被重置。在一些示例中,用户110可以被认为是真实环境100中的真实对象;类似地,用户110的身体部分(例如,手、脚)可以被认为是真实环境100中的真实对象。在一些示例中,具有原点位于点115(例如,用户/听众/头部坐标)的用户/听众/头部坐标系114(包括x轴114X、y轴114Y和z轴114Z)可以针对混合现实系统112位于的用户/听众/头部来定义坐标空间。用户/听众/头部坐标系114的原点115可以相对于混合现实系统112的一个或多个组件来定义。例如,用户/听众/头部坐标系114的原点115可以相对于混合现实系统112的显示来定义,诸如在混合现实系统112的初始校准期间。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他适合的表示可以表征用户/听众/头部坐标系114空间与环境/世界坐标系108空间之间的变换。在一些实施例中,左耳坐标116和右耳坐标117可以相对于用户/听众/头部坐标系114的原点115来定义。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他合适的表示可以表征左耳坐标116和右耳坐标117与用户/听众/头部坐标系114空间之间的变换。用户/听众/头部坐标系114可以简化相对于用户的头部或头戴式设备(例如,相对于环境/世界坐标系108)的位置的表示。使用同时定位和地图创建(SLAM)、视觉测距或其他技术,用户坐标系114与环境坐标系108之间的变换可以实时被确定和更新。
图1B示出了对应于真实环境100的示例性虚拟环境130。示出的虚拟环境130包括对应于真实矩形房间104A的虚拟矩形房间104B;对应于真实对象122A的虚拟对象122B;对应于真实对象124A的虚拟对象124B;以及对应于真实对象126A的虚拟对象126B。与虚拟对象122B、124B、126B相关联的元数据可以包括从对应的真实对象122A、124A、126A导出的信息。虚拟环境130附加地包括虚拟怪物132,该虚拟怪物132不对应于真实环境100中的任何真实对象。真实环境100中的真实对象128A可不对应于虚拟环境130中的任何虚拟对象。具有原点位于点134(持久坐标)的持久坐标系133(包括x轴133X、y轴133Y和z轴133Z)可以定义用于虚拟内容的坐标空间。持久坐标系133的原点134可以相对于/关于一个或多个真实对象(诸如真实对象126A)来定义。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他适合的表示可以表征持久坐标系133空间与环境/世界坐标系108空间之间的变换。在一些实施例中,虚拟对象122B、124B、126B和132中的每个虚拟对象可以具有相对于持久坐标系133的原点134的其自己的持久坐标点。在一些实施例中,可以存在多个持久坐标系,并且虚拟对象122B、124B、126B和132中的每个虚拟对象可以具有相对于一个或多个持久坐标系的其自己的持久坐标点。
持久坐标数据可以是相对于物理环境持久的坐标数据。持久坐标数据可以由MR系统(例如,MR系统112、200)用于放置持久虚拟内容,该持久虚拟内容可以不与正在其上显示虚拟对象的显示器的移动相关。例如,二维屏幕可以相对于屏幕上的位置显示虚拟对象。随着二维屏幕移动,虚拟内容可以随着屏幕移动。在一些实施例中,持久虚拟内容可以显示在房间的角落。MR用户可能查看角落,看到虚拟内容,把目光从角落移开(虚拟内容可能不再可见,因为虚拟内容可能由于用户头部的运动而从用户视场内移动到用户视场外的位置),并且回头查看角落中的虚拟内容(类似于真实对象如何表现)。
在一些实施例中,持久坐标数据(例如,持久坐标系和/或持久坐标框架)可包括原点和三个轴。例如,可以通过MR系统将持久坐标系分配给房间的中心。在一些实施例中,用户可以在房间周围移动、走出房间、重新进入房间等,并且持久坐标系可以保持在房间的中心(例如,因为它相对于物理环境持续存在)。在一些实施例中,可以使用对持久坐标数据的变换来显示虚拟对象,这可以使能显示持久虚拟内容。在一些实施例中,MR系统可使用同时定位和地图创建来生成持久坐标数据(例如,MR系统可将持久坐标系分配给空间中的点)。在一些实施例中,MR系统可通过以规则间隔生成持久坐标数据来映射环境(例如,MR系统可在网格中分配持久坐标系,其中持久坐标系可至少在另一持久坐标系的五英尺范围内)。
在一些实施例中,持久坐标数据可以由MR系统生成并发送到远程服务器。在一些实施例中,远程服务器可被配置为接收持久坐标数据。在一些实施例中,远程服务器可被配置为同步来自多个观察实例的持久坐标数据。例如,多个MR系统可以用持久坐标数据映射同一房间,并将该数据发送到远程服务器。在一些实施例中,远程服务器可以使用该观察数据来生成规范持久坐标数据,该数据可以基于一个或多个观察。在一些实施例中,规范持久坐标数据可能比持久坐标数据的单个观察更准确和/或更可靠。在一些实施例中,规范持久坐标数据可被发送到一个或多个MR系统。例如,MR系统可以使用图像识别和/或位置数据来识别它位于具有对应规范持久坐标数据的房间中(例如,因为其他MR系统先前已经映射了房间)。在一些实施例中,MR系统可以从远程服务器接收对应于其位置的规范持久坐标数据。
相对于图1A和图1B,环境/世界坐标系108定义用于真实环境100和虚拟环境130二者的共享坐标空间。在示出的示例中,坐标空间具有在点106处的原点。进一步地,坐标空间由相同三个正交轴(108X、108Y、108Z)定义。因此,真实环境100中的第一位置和虚拟环境130中的第二对应的位置可以相对于相同坐标系来描述。这简化标识和显示真实环境和虚拟环境中的对应的位置,因为相同坐标可以用于标识这两个位置。然而,在一些示例中,对应的真实环境和虚拟环境不需要使用共享坐标空间。例如,在一些示例中(未示出),矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他适合的表示可以表征真实环境坐标空间与虚拟环境坐标空间之间的变换。
图1C示出了经由混合现实系统112将真实环境100和虚拟环境130的各方面同时呈现给用户的示例性MRE 150。在示出的示例中,MRE 150同时向用户110呈现来自真实环境100的真实对象122A、124A、126A和128A(例如,经由混合现实系统112的显示器的透射部分);以及来自虚拟环境130的虚拟对象122B、124B、126B和132(例如,经由混合现实系统112的显示器的有源(active)显示部分)。如本文所描述的,原点106充当用于对应于MRE 150的坐标空间的原点,并且坐标系108定义用于坐标空间的x轴、y轴和z轴。
在示出的示例中,混合现实对象包括占用坐标空间108中的对应位置的真实对象和虚拟对象对应对(例如,122A/122B、124A/124B、126A/126B)。在一些示例中,真实对象和虚拟对象二者可以对用户110同时可见。这可以在例如虚拟对象呈现被设计为增强对应的真实对象的视图的信息的实例中(诸如在虚拟对象呈现古代损坏雕塑件的缺失部分的博物馆应用中)是期望的。在一些示例中,虚拟对象(122B、124B和/或126B)可以被显示(例如,经由使用像素化遮挡快门的有源像素化遮挡)以便遮挡对应的真实对象(122A、124A和/或126A)。这可以在例如虚拟对象充当对应的真实对象的视觉替换的实例中(诸如在无生命真实对象变为“活的”角色的交互式故事应用中)是期望的。
在一些示例中,真实对象(例如,122A、124A、126A)可以与虚拟内容或可以不必构成虚拟对象的辅助数据(helper data)相关联。虚拟内容或辅助数据可以促进混合现实环境中的虚拟对象的处理或处置。例如,这样的虚拟内容可以包括以下各项的二维表示:对应的真实对象;与对应的真实对象相关联的自定义资产类型;或与对应的真实对象相关联的统计数据。该信息可以使能或者促进涉及真实对象的计算而不引起不必要的计算开销。
在一些示例中,本文所描述的呈现还可以包含音频方面。例如,在MRE 150中,虚拟怪物132可以与一个或多个音频信号相关联,诸如当怪物在MRE 150到处走时生成的脚步声效果。如本文所描述的,混合现实系统112的处理器可以计算与MRE 150中的所有此类声音的混合和处理合成对应的音频信号,并且经由包括在混合现实系统112中的一个或多个扬声器和/或一个或多个外部扬声器将音频信号呈现给用户110。
示例混合现实系统
示例混合现实系统112可以包括可穿戴头部设备(例如,可穿戴增强现实或混合现实头部设备),其包括:显示器(其可以包括左和右透射式显示器,其可以是近眼显示器,以及用于将来自显示器的光耦合到用户的眼睛的相关联的组件);左和右扬声器(例如,其分别邻近用户的左和右耳定位);惯性测量单元(IMU)(例如,其安装到头部设备的边撑臂);正交线圈电磁接收器(例如,其安装到左边撑件);左和右相机(例如,深度(飞行时间)相机),其远离用户取向;以及左和右眼相机,其朝向用户取向(例如,用于检测用户的眼睛运动)。然而,混合现实系统112可以包含任何适合的显示技术,以及任何适合的传感器(例如,光学、红外、声学、LIDAR、EOG、GPS、磁性)。另外,混合现实系统112可以包含与其他设备和系统(包括其他混合现实系统)通信的网络特征(例如,Wi-Fi能力、移动网络(例如,4G、5G)能力)。混合现实系统112还可以包括电池(其可以安装在辅助单元中,诸如被设计为穿戴在用户的腰部周围的腰带包)、处理器和存储器。混合现实系统112的可穿戴头部设备可以包括跟踪组件,诸如IMU或其他适合的传感器,其被配置为输出可穿戴头部设备相对于用户的环境的一组坐标。在一些示例中,跟踪组件可以向执行同时定位和地图创建(SLAM)和/或视觉测距算法的处理器提供输入。在一些示例中,混合现实系统112还可以包括手持式控制器300和/或辅助单元320,其可以是可穿戴腰带包,如本文所描述的。
图2A至图2D示出了可以用于将MRE(其可以对应于MRE 150)或其他虚拟环境呈现给用户的示例性混合现实系统200(其可以对应于混合现实系统112)的组件。图2A示出了在示例混合现实系统200中包括的可穿戴头部设备2102的透视图。图2B示出了在用户的头部2202上穿戴的可穿戴头部设备2102的俯视图。图2C示出了可穿戴头部设备2102的前视图。图2D示出了可穿戴头部设备2102的示例目镜2110的边视图。如图2A至图2C所示,示例可穿戴头部设备2102包括示例性左目镜(例如,左透明波导集目镜)2108和示例性右目镜(例如,右透明波导集目镜)2110。每个目镜2108和2110可以包括:透射元件,通过该透射元件真实环境可以是可见的;以及显示元件,其用于呈现重叠真实环境的显示(例如,经由逐图像调制光)。在一些示例中,这样的显示元件可以包括用于控制逐图像调制光的流动的表面衍射光学元件。例如,左目镜2108可以包括左耦入光栅集2112、左正交光瞳扩展(OPE)光栅集2120、和左出射(输出)光瞳扩展(EPE)光栅集2122。类似地,右目镜2110可以包括右耦入光栅集2118、右OPE光栅集2114、和右EPE光栅集2116。逐图像调制光可以经由耦入光栅2112和2118、OPE 2114和2120、和EPE 2116和2122传递到用户的眼睛。每个耦入光栅集2112、2118可以被配置为朝向其对应的OPE光栅集2120、2114偏转光。每个OPE光栅集2120、2114可以被设计为朝向其相关联的EPE 2122、2116向下递增地偏转光,从而水平延伸形成的出射光瞳。每个EPE 2122、2116可以被配置为将从其对应的OPE光栅集2120、2114接收的光的至少一部分向外递增地重引导到定义在目镜2108、2110后面的用户眼盒(eyebox)位置(未示出),垂直延伸在眼盒处形成的出射光瞳。可替代地,代替耦入光栅集2112和2118、OPE光栅集2114和2120、和EPE光栅集2116和2122,目镜2108和2110可以包括光栅和/或用于控制将逐图像调制光耦合到用户的眼睛的折射和反射特征的其他布置。
在一些示例中,可穿戴头部设备2102可以包括左边撑臂2130和右边撑臂2132,其中,左边撑臂2130包括左扬声器2134并且右边撑臂2132包括右扬声器2136。正交线圈电磁接收器2138可以定位在左边撑件中,或者在可穿戴头部单元2102中的另一适合的位置。惯性测量单元(IMU)2140可以定位在右边撑臂2132中,或者在可穿戴头部设备2102中的另一适合的位置。可穿戴头部设备2102还可以包括左深度(例如,飞行时间)相机2142和右深度相机2144。深度相机2142、2144可以在不同的方向上适合地取向以便一起覆盖更宽的视场。
在图2A至图2D中示出的示例中,逐图像调制光的左源2124可以通过左耦入光栅集2112被光学耦合到左目镜2108中,并且逐图像调制光的右源2126可以通过右耦入光栅集2118被光学耦合到右目镜2110中。逐图像调制光源2124、2126可以包括例如光纤扫描器;投影仪,其包括电子光调制器,诸如数字光处理(DLP)芯片或硅上液晶(LCoS)调制器;或发射显示器,诸如微发光二极管(μLED)或微有机发光二极管(μOLED)面板,其每侧使用一个或多个透镜被耦合到耦入光栅集2112、2118中。输入耦合光栅集2112、2118可以将来自逐图像调制光源2124、2126的光偏转到大于针对目镜2108、2110的全内反射(TIR)的临界角的角。OPE光栅集2114、2120将通过TIR传播的光递增地向下偏转到EPE光栅集2116、2122。EPE光栅集2116、2122将光递增地耦合向用户的面部,包括用户的眼睛的瞳孔。
在一些示例中,如图2D所示,左目镜2108和右目镜2110中的每一个包括多个波导2402。例如,每个目镜2108、2110可以包括多个单独波导,每个波导专用于相应的颜色通道(例如,红色、蓝色和绿色)。在一些示例中,每个目镜2108、2110可以包括这样的波导的多个集合,其中,每个集合被配置为向发射光给予不同的波前曲率。波前曲率可以相对于用户的眼睛是凸的,例如以呈现定位在用户的前面一定距离的虚拟对象(例如,通过对应于波前曲率的倒数的距离)。在一些示例中,EPE光栅集2116、2122可以包括弯曲光栅凹陷,以通过改变跨每个EPE的出射光的坡印廷矢量来实现凸波前曲率。
在一些示例中,为了创建所显示的内容是三维的感知,立体调节的左和右眼影像可以通过逐图像光调制器2124、2126和目镜2108、2110呈现给用户。三维虚拟对象的呈现的感知真实性可以通过选择波导(并且因此对应的波前曲率)被增强,使得虚拟对象在接近由立体左和右图像所指示的距离的距离处被显示。该技术还可以减少由一些用户经历的运动病,其可以由由立体左和右眼影像所提供的深度感知线索与人眼的自动调节(例如,对象距离-依赖于焦点)之间的差异引起。
图2D示出了从示例可穿戴头部设备2102的右目镜2110的顶部的面向边缘的视图。如图2D所示,多个波导2402可以包括三个波导2404的第一子集和三个波导2406的第二子集。波导2404、2406的两个子集可以通过具有不同光栅线曲率的不同EPE光栅来区分,以赋予出射光不同的波前曲率。在波导2404、2406的子集中的每一个内,每个波导可以用于将不同光谱信道(例如,红色、绿色和蓝色光谱信道之一)耦合到用户的右眼2206。虽然未示出在图2D中,但是左目镜2108的结构可以相对于右目镜2110的结构被镜像。
图3A示出了混合现实系统200的示例性手持式控制器组件300。在一些示例中,手持式控制器300包括手柄部分346和沿着顶面348设置的一个或多个按钮350。在一些示例中,按钮350可以被配置用于用作光学跟踪目标,例如,用于结合相机或其他光学传感器(其可以安装在混合现实系统200的头部单元(例如,可穿戴头部设备2102)中)跟踪手持式控制器300的六自由度(6DOF)运动。在一些示例中,手持式控制器300包括用于检测位置或取向(诸如相对于可穿戴头部设备2102的位置或取向)的跟踪组件(例如,IMU或其他适合的传感器)。在一些示例中,这样的跟踪组件可以定位在手持式控制器300的手柄中,和/或可以机械耦合到手持式控制器。手持式控制器300可以被配置为提供与按钮的一个或多个按压状态对应的一个或多个输出信号;或手持式控制器300的位置、取向和/或运动(例如,经由IMU)。这样的输出信号可以用作混合现实系统200的处理器的输入。这样的输入可以对应于手持式控制器的位置、取向和/或运动(例如,通过扩展,对应于握住控制器的用户的手的位置、取向和/或运动)。这样的输入还可以对应于用户按下按钮350。
图3B示出了混合现实系统200的示例性辅助单元320。辅助单元320可以包括电池以提供能量来操作系统200,并且可以包括用于执行程序以操作系统200的处理器。如所示,示例辅助单元320包括芯片2128,诸如用于将辅助单元320附接到用户的腰带。其他形状因子适合于辅助单元320并且将是明显的,包括不涉及将单元安装到用户的腰带的形状因子。在一些示例中,辅助单元320通过多导管电缆被耦合到可穿戴头部设备2102,该多导管电缆可以包括例如电线和光纤。还可以使用辅助单元320与可穿戴头部设备2102之间的无线连接。
在一些示例中,混合现实系统200可以包括检测声音并且将对应的信号提供给混合现实系统的一个或多个麦克风。在一些示例中,麦克风可以被附接到可穿戴头部设备2102或与其集成,并且被配置为检测用户的语音。在一些示例中,麦克风可以附接到手持式控制器300和/或辅助单元320或与其集成。这样的麦克风可以被配置为检测环境声音、环境噪声、用户或第三方的语音或其他声音。
图4示出了可以对应于示例性混合现实系统的示例性功能框图,诸如本文所描述的混合现实系统200(其可以对应于相对于图1的混合现实系统112)。如图4所示,示例手持式控制器400B(其可以对应于手持式控制器300(“图腾”))包括图腾到可穿戴头部设备六自由度(6DOF)图腾子系统404A,并且示例可穿戴头部设备400A(其可以对应于可穿戴头部设备2102)包括图腾到可穿戴头部设备6DOF子系统404B。在示例中,6DOF图腾子系统404A和6DOF子系统404B合作以确定手持式控制器400B相对于可穿戴头部设备400A的六个坐标(例如,在三个平移方向上的偏移和沿着三个轴的旋转)。六个自由度可以相对于可穿戴头部设备400A的坐标系被表示。三个平移偏移可以表示为这样的坐标系中的X、Y和Z偏移、平移矩阵、或某种其他表示。旋转自由度可以表示为一系列偏转、俯仰和滚动旋转、旋转矩阵、四元数或某种其他表示。在一些示例中,可穿戴头部设备400A;包括在可穿戴头部设备400A中的一个或多个深度相机444(和/或一个或多个非深度相机);和/或一个或多个光学目标(例如,如上文所描述的手持式控制器400B的按钮450,或包括在手持式控制器400B中的专用光学目标)可以用于6DOF跟踪。在一些示例中,手持式控制器400B可以包括相机,如本文所描述的;并且可穿戴头部设备400A可以包括用于结合相机进行光学跟踪的光学目标。在一些示例中,可穿戴头部设备400A和手持式控制器400B各自包括一组三个正交取向的螺线管,其用于无线地发送和接收三个可区分的信号。通过测量用于接收的每个线圈中所接收的三个可区分信号的相对大小,可以确定可穿戴头部设备400A相对于手持式控制器400B的6DOF。此外,6DOF图腾子系统404A可以包括惯性测量单元(IMU),该惯性测量单元(IMU)可用于提供关于手持式控制器400B的快速移动的经改进的准确度和/或更及时的信息。
在一些实施例中,可穿戴系统400可包括麦克风阵列407,麦克风阵列407可包括布置在头盔设备400A上的一个或多个麦克风。在一些实施例中,麦克风阵列407可包括四个麦克风。两个麦克风可放置在头盔400A的前面,以及两个麦克风可放置在头盔400A的后面(例如,一个位于左后以及一个位于右后)。在一些实施例中,由麦克风阵列407接收的信号可以被发送到DSP 408。DSP 408可被配置为对从麦克风阵列407接收的信号执行信号处理。例如,DSP 408可被配置为对从麦克风阵列407接收到的信号执行噪声降低、声学回波消除、和/或波束形成。DSP 408可被配置为向处理器416发送信号。
在一些示例中,可能变得需要将坐标从局部坐标空间(例如,相对于可穿戴头部设备400A固定的坐标空间)变换到惯性坐标空间(例如,相对于真实环境固定的坐标空间),例如以便补偿(例如,MR系统112的)可穿戴头部设备400A相对于坐标系108的运动。例如,对于可穿戴头部设备400A的显示器来说,这样的变换可能是必要的,以将虚拟对象呈现在相对于真实环境的期望位置和取向处(例如,坐在真实椅子中、面向前的虚拟人,而不管可穿戴头部设备的位置和取向),而不是在显示器上的固定位置和取向处(例如,在显示器的右下角的相同位置处),以保持虚拟对象存在于真实环境中的错觉(并且例如当可穿戴头部设备400A移动和旋转时,虚拟对象不会出现在真实环境中不自然的位置)。在一些示例中,坐标空间之间的补偿变换可以通过使用SLAM和/或视觉测距程序处理来自深度相机444的影像被确定,以便确定可穿戴头部设备400A相对于坐标系108的变换。在图4所示的示例中,深度相机444被耦合到SLAM/视觉测距块406并且可以向块406提供影像。SLAM/视觉测距块406实施方式可以包括处理器,该处理器被配置为处理该影像并且确定用户的头部的位置和取向,其然后可以用于标识头部坐标空间与另一坐标空间(例如,惯性坐标空间)之间的变换。类似地,在一些示例中,从IMU 409获得关于用户的头部姿势和位置的信息的附加源。来自IMU 409的信息可以与来自SLAM/视觉测距块406的信息集成,以提供关于用户的头部姿势和位置的快速调节的经改进的准确度和/或更及时的信息。
在一些示例中,深度相机444可以将3D影像供应到手势跟踪器411,该手势跟踪器411可以实现在可穿戴头部设备400A的处理器中。手势跟踪器411可以例如通过将从深度相机444接收到的3D影像与表示手势的存储的图案相匹配来标识用户的手势。标识用户的手势的其他适合的技术将是明显的。
在一些示例中,一个或多个处理器416可以被配置为从可穿戴头部设备的6DOF头盔子系统404B、IMU 409、SLAM/视觉测距块406、深度相机444和/或手势跟踪器411接收数据。处理器416还可以发送和接收来自6DOF图腾系统404A的控制信号。处理器416可以无线地耦合到6DOF图腾系统404A,诸如在手持式控制器400B未连接的示例中。处理器416还可以与附加组件通信,诸如音频-视觉内容存储器418、图形处理单元(GPU)420、和/或数字信号处理器(DSP)音频声场定位器422。DSP音频声场定位器422可以被耦合到头部相关传递函数(HRTF)存储器425。GPU 420可以包括耦合到逐图像调制光的左源424的左信道输出和耦合到逐图像调制光的右源426的右信道输出。GPU 420可以将立体图像数据输出到逐图像调制光源424、426,例如如本文相对于图2A-2D所描述的。DSP音频声场定位器422可以向左扬声器412和/或右扬声器414输出音频。DSP音频声场定位器422可以从处理器419接收指示从用户到虚拟声源(其可以由用户移动,例如,经由手持式控制器320)的方向矢量的输入。基于方向矢量,DSP音频声场定位器422可以确定对应的HRTF(例如,通过访问HRTF、或通过内插多个HRTF)。DSP音频声场定位器422然后可以将所确定的HRTF应用到音频信号,诸如对应于由虚拟对象生成的虚拟声音的音频信号。这可以通过结合用户在混合现实环境中相对于虚拟声音的相对位置和取向来提高虚拟声音的可信度和真实性——即,通过呈现与用户期望的虚拟声音相匹配的虚拟声音,如果虚拟声音是真实环境中的真实声音,那么虚拟声音听起来会是什么样子。
在一些示例中,诸如图4所示,处理器416、GPU 420、DSP音频声场定位器422、HRTF存储器425、和音频/视觉内容存储器418中的一个或多个可以包括在辅助单元400C中(其可以对应于本文所描述的辅助单元320)。辅助单元400C可以包括对其组件供电和/或向可穿戴头部设备400A或手持式控制器400B供电的电池427。将这样的组件包括在可安装到用户的腰部的辅助单元中可以限制可穿戴头部设备400A的大小和重量,其进而可以减少用户的头部和颈部的疲劳。
虽然图4呈现了对应于示例可穿戴系统400的各种组件的元件,但是这些组件的各种其他适合的布置对于本领域技术人员来说将变得显而易见。例如,所示的头盔设备400A可包括处理器和/或电池(未示出)。所包括的处理器和/或电池可以连同辅助单元400C的处理器和/或电池一起操作或代替辅助单元400C的处理器和/或电池操作。通常,作为另一示例,关于图4呈现或者描述的与辅助单元400C相关联的元件或功能可以相反与头盔设备400A或手持式控制器400B相关联。此外,一些可穿戴系统可以完全放弃手持式控制器400B或辅助单元400C。这样的改变和修改将被理解为包括在所公开的示例的范围内。
同时定位和地图创建
在混合现实环境中显示虚拟内容使得虚拟内容对应于真实内容可能是具挑战性的。例如,可能希望在与真实对象122A相同的位置显示图1C中的虚拟对象122B。这样做可以涉及混合现实系统112的多个能力。例如,混合现实系统112可以创建真实环境104A和真实环境104A内的真实对象(例如,灯122A)的三维地图。混合现实系统112还可以建立其在真实环境104A内的位置(其可以对应于用户在真实环境内的位置)。混合现实系统112还可以建立其在真实环境104A内的取向(其可以对应于用户在真实环境内的取向)。混合现实系统112还可以建立其相对于真实环境104A的移动,例如,线性和/或角速度以及线性和/或角加速度(其可以对应于用户相对于真实环境的运动)。SLAM可以是一种方法,即使当用户110在房间104A四处移动、从真实对象122A转移目光、以及回头看真实对象122A时,也在与真实对象122A相同的位置显示虚拟对象122B。
可能进一步希望以准确但计算高效且低延迟的方式运行SLAM。如本文所使用的,延迟可以是指混合现实系统的组件的位置(例如,位置和/或取向)的变化(例如,可穿戴头部设备的旋转)与如混合现实系统中所表示的该变化的反映(例如,在可穿戴头部设备的显示器中呈现的视场的显示角度)之间的时间延迟。不准确的SLAM计算和/或高延迟性能可能负面影响用户对混合现实系统112的体验。例如,如果用户110环顾房间104A,由于用户的运动、不准确的SLAM计算和/或高延迟,虚拟对象可能看起来“抖动”。类似地,如果SLAM计算不准确,则虚拟对象可能看起来随时间“漂移”。“漂移”对象可以是虚拟对象,当虚拟对象旨在相对于环境100保持静止时,该虚拟对象看起来相对于环境100移动和/或移位位置。因此,准确度可能对于产生沉浸式混合现实环境至关重要,否则与真实内容冲突的虚拟内容可能提醒用户虚拟内容与真实内容之间的区别,并且减少用户的沉浸感。进一步地,在一些情况下,延迟可能导致针对一些用户的运动病、头痛或其他负面的身体体验。因此,可能希望开发用于增加SLAM准确度和/或减少延迟(例如,在适当位置渲染虚拟内容以创建虚拟对象持久性的错觉)的系统和方法。
一种方法可包括计算混合现实系统112的角加速度。角加速度可以是附加测量结果,其可以与其他测量结果(诸如线性加速度、线性速度和/或角速度)组合,以更准确地计算SLAM计算。角加速度还可以用于预测混合现实系统112的未来位置,使得可以在实际需要虚拟内容之前对其进行预渲染。该预渲染可以减少由混合现实系统112的用户感知的延迟。
然而,直接测量角加速度可能要求附加的硬件,该硬件可能不包括在所有惯性测量单元(“IMU”)中。向混合现实系统添加附加的硬件可能是繁重的。例如,由于大量的传感器和/或处理器,混合现实系统可能具有电力需求,但是混合现实系统的用户也可能需要便携性和长电池寿命。添加更复杂的传感器也可能不期望地增加混合现实系统的成本。因此,开发用于使用两个或两个以上IMU来计算角加速度的系统和方法可能是有益的。在一些实施例中,来自两个IMU的数据可能不足以计算混合现实系统沿着所有三个轴的角加速度,这两个IMU可以各自直接测量沿着三个轴的线性加速度和/或角速度。在一些实施例中,两个这样的IMU可以被配置为使得来自第一IMU的测量轴与第二IMU的测量轴重合。在一些实施例中,该IMU配置可以允许直接或间接地沿着两个轴来计算角加速度,其中测量轴与另一IMU不重合。
图5示出了根据一些实施例的混合现实系统上的IMU配置。MR系统500(其可对应于MR系统112、200)可包括IMU 502和IMU 506。在一些实施例中,IMU 502和IMU 506可以被配置为获得沿着三个轴的测量结果。例如,IMU 502可以被配置为获得沿着测量轴504x、504y和504z的测量结果。类似地,IMU 506可以被配置为获得沿着测量轴508x、508y和508z的测量结果。在一些实施例中,IMU 502和/或IMU 506可以被配置为直接测量关于每个测量轴的线性加速度(例如,经由加速度计)和/或角速度(例如,经由陀螺仪)。在一些实施例中,IMU502和/或IMU 506可以不包括被配置为直接测量关于任何测量轴的角加速度的硬件(例如,IMU可以不附加地包括特别地被配置为测量角加速度的硬件)。
在一些实施例中,IMU 502和IMU 506可以彼此刚性耦接。例如,IMU 502和IMU 506可以经由刚性结构连接,该刚性结构具有最小的柔性并且被配置为不移动和/或变形。不管MR系统500如何移动和/或旋转,刚性耦接假定IMU 502和IMU 506将始终保持彼此相同(或基本上相同)的相对位置。刚性耦接可以减少IMU 502和IMU 506之间的自由度,其可用于计算角加速度。假定IMU 506和IMU 502刚性耦接,等式(1)以线性加速度角速度/>和描述IMU 506相对于IMU 502的位置/>的向量来描述角加速度/>在一些实施例中,可以表示从点504o到点508o的向量。
等式(1):
扩展到三维,等式(1)产生等式(2)、(3)和(4)的系统。
等式(2):
等式(3):
等式(4):
等式(2)、(3)和(4)表示线性相关系统,其可包括多于一个解。然而,在一些实施例中,IMU 502和IMU 506可以被配置为沿着两个测量轴解析角加速度。例如,图5描绘了测量轴504x与测量轴508x重合的实施例。如本文所使用的,重合轴可以是指共线(例如,沿着轴510)的两条线(例如,测量轴504x和测量轴508x)。在一些实施例中,配置用于IMU 502的放置和用于IMU 506的放置,使得来自每个IMU的至少一个测量轴与来自另一IMU的另一测量轴重合,可以减少等式(2)、(3)和(5)中的未知变量的数量。在图5所描绘的配置中,向量可以表示为等式(6),其中(c)表示点504o和508o之间的距离。
等式(6):
将等式(6)(例如,其中ry=rz=0)与等式(2)、(3)和(4)组合可以产生以下等式,其可以表示沿着两个旋转轴的可解系统。
等式(7):
等式(8):
等式(9):
等式(10):
等式(11):
因此,如果IMU 502和506被配置为测量线性加速度和角速度/>并且如果IMU 502和IMU 506共享一个重合的测量轴(例如,沿着轴510的测量轴504x和508x),则可以使用等式(10)和(11)用IMU 502和IMU 506来计算角加速度/>(至少相对于两个轴)。
尽管图5描绘了IMU 502和IMU 506的特定取向,但是应预期到,任何取向可以适合于本文所公开的技术和方法。例如,尽管IMU 506被描绘为完全水平地跨过IMU 502,但是IMU 506也可以垂直地取向在IMU 502上方,或者通常以与IMU 502成任何已知角度取向。在一些实施例中,可以对IMU 502和IMU 506进行取向,使得它们共享至少一个重合的测量轴,而不管相对位置如何。在一些实施例中,非垂直对准(例如,图5中所描绘的水平对准)可以是优选的,因为垂直对准可以产生关于偏航轴的不可观察的角加速度。这可能是不希望的,因为与其他轴(例如,俯仰或滚动)不同,重力可能关于偏航轴不可观察。在一些实施例中,可能希望将IMU 502和IMU 506放置得尽可能远(例如,在MR系统500沿着轴510的最远点处),同时仍然保持重合的测量轴。例如,当rx接近0时,测量结果中的误差可能被放大。在一些实施例中,可能希望将IMU 502和IMU 506放置在MR系统500的一个或多个相机附近。这可以通过将由相机捕获的视觉信息与由IMU 502和IMU 506捕获的惯性信息组合来增加针对SLAM计算的准确度。
计算角加速度可以以若干方式有益于用于混合现实的SLAM计算。例如,角加速度可用于计算用于IMU测量结果的更准确的预积分项(pre-integration term)。预积分IMU测量结果可以包括从从IMU获得的一系列惯性测量结果中确定单个相对运动约束。可能希望对IMU测量结果进行预积分,以减少对整个系列的惯性测量结果进行积分的计算复杂性。例如,在视频记录中捕获的连续帧(其也可以是关键帧)之间所收集的惯性测量结果可包括关于由IMU行进的整个路径的数据。关键帧可以是基于时间(例如,自先前关键帧选择以来的时间)、所标识的特征(例如,在与先前关键帧相比较时具有足够的新标识的特征)、或其他标准而特别选择的帧。然而,在一些实施例中,SLAM方法可能仅需要关于起点(例如,在第一帧处)和终点(例如,在第二帧处)的数据。在一些实施例中,SLAM方法可能仅需要关于当前时间点(例如,最近帧)和先前状态(例如,先前帧)的数据。SLAM计算可以通过预积分惯性测量数据以产生单个相对运动约束(例如从第一帧到第二帧)来简化。
图6A示出了SLAM计算的示例性图。示例性图可以视觉上描绘若干变量的函数的非线性因子分解。例如,变量(例如,602a和602b)可以表示为圆形节点,并且变量的函数(例如,604,也称为因子)可以表示为方形节点。每个因子可以是任何附加变量的函数。节点602a和602b可以表示与在时间i=0处捕获的关键装备(keyrig)相关联的数据。在一些实施例中,关键装备可包括来自多相机系统(例如,具有两个或两个以上相机的MR系统)的一组关键帧,这些关键帧可能在某个时间处被捕获。可以基于任何条件选择关键装备。例如,可以基于关键装备之间经过的时间在时间域中选择关键装备(例如,可以选择每半秒一帧作为关键装备)。在另一示例中,可以基于所标识的特征在空间域中选择关键装备(例如,如果帧与先前的关键装备相比较具有足够相似或不同的特征,则可以将帧选择为关键装备)。关键装备可以被存储并保存到存储器。使用关键装备用于SLAM计算可能是有益的,因为关键装备的使用可能导致更长时间帧上的更稀疏的数据,而不增加计算负载(例如,对由相机记录的每个帧执行SLAM计算可能是计算上不可行的)。
节点602a可包括表示IMU状态的数据,该数据可包括线性加速度测量结果、角速度测量结果、以及给定时间的IMU测量结果中的误差(例如,偏置(bias))的一个或多个估计。偏置可包括测量值和预期值之间的偏移(例如,当不存在加速度,但加速度计记录0.2的值时,0.2可以被认为是加速度计的偏置)。节点602b可包括表示与特定关键装备相关联的关键装备姿势的数据。关键装备姿势可以基于束调整(bundle adjustment)的输出。节点606可包括表示IMU外在(extrinsic)的数据(其可对应于IMU相对于混合现实系统的精度和取向),并且节点608可包括重力估计(其可包括重力向量的估计方向和/或大小)。节点604可包括IMU项边缘(edge),其可包括预积分项。节点604还可以定义使其他附加节点彼此相关的误差函数。预积分项可以使测量值(例如,线性加速度和/或角速度)与状态变量相关。在一些实施例中,系统状态可包括节点602a和/或602b。系统状态可以定义为MR系统的位置、四元数(其可以表示MR系统的旋转和/或取向)、速度(其可以包括线性和/或角速度)、一个或多个加速度计的偏置、和/或一个或更多个陀螺仪的偏置。在一些实施例中,角加速度数据可用于计算的更准确的预积分项。
图6B示出了根据一些实施例的在预积分项中包括角加速度的益处的示例性可视化。在图6B中,曲线610可以表示随时间的真实数据(ground truth)角加速度。这可以是例如当用户在环境中四处行走时,用于MR系统500的真实数据角加速度。可能希望尽可能准确地捕获关于曲线610的信息。测量结果614可以表示在时间t=-0.6处角速度的测量值。在一些实施例中,测量结果614可以直接从IMU 502和/或IMU 506输出。然而,测量结果614可能不准确地表示采样率之间的曲线610(例如,图6B描绘了每0.2个时间单位一个样本的采样率),因为曲线610可能在样本之间快速改变角速度。
测量结果612可以表示包括角加速度项的角速度。例如,测量结果612可以直接从IMU 502获得时间t=-0.6处的角速度,并且使用本文所描述的技术计算那个时间的角加速度。然后可以使用角加速度来创建样本之间更准确的角速度估计(例如,因为测量结果612比测量结果614更紧密地跟踪曲线610;测量结果612可以是曲线610在特定时间处的斜率)。因为可以更准确地估计角速度,所以可以减少曲线610的采样率。
等式(12)、(13)和(14)可以表示预积分项的分量,该预积分项可以使两个系统状态与在两个系统状态之间捕获的IMU传感器数据相关。在一些实施例中,等式(12)、(13)和(14)不需要包括角加速度项。具体地,等式(12)可以使两个四元数(例如,两个系统旋转状态)彼此相关,其中(bg)可以表示陀螺仪的偏置值。
等式(12):
等式(13)可以使两个速度估计(例如,线性速度测量结果)彼此相关,其中(ba)可以表示线性加速度计的偏置值。
等式(13):
等式(14)可以使两个位置估计(例如,三维空间中的位置)彼此相关。
等式(14):
在一些实施例中,等式(15)可以代替等式(12)作为与两个四元数相关的预积分项的一部分。等式(15)可以产生更准确的SLAM估计,例如,因为它包括角加速度项,角加速度项可以被计算,如本文所描述的。
等式(15):
在一些实施例中,包括项可以产生更准确的/>项,其可以通过其他预积分项传播。更准确的预积分项可以产生更好的SLAM结果(例如,MR系统500可以更准确地标识其位置,同时映射其环境)。这可以在虚拟对象中产生较少的抖动和/或漂移。
在一些实施例中,角加速度还可用于通过预渲染虚拟对象来减少由MR系统的用户感知的延迟。如图6B所示,角加速度项可以更准确地跟踪和/或预测MR系统的未来运动和/或位置。如果MR系统500能够预测用户在不久的将来将在何处观看,则MR系统500可以在虚拟内容需要进入用户的视场之前渲染虚拟内容。例如,基于MR系统500的当前位置和/或轨迹,MR系统500可以预测其未来位置。MR系统500然后可以确定什么虚拟内容将在未来位置可见,并且在虚拟内容到达未来位置之前开始渲染虚拟内容。利用预渲染管线,MR系统500可能能够在虚拟内容进入用户的视场时立即(或接近立即)显示虚拟内容,而不是在虚拟内容在按需要被渲染时等待显示虚拟内容。
图7示出了根据一些实施例的具有多于两个IMU的示例性MR系统。附加的IMU可以提供若干益处,例如沿着三个轴(而不是两个轴)求解角加速度,和/或噪声降低/误差缓解。在一些实施例中,两个IMU在位置702o和704o处的放置和取向可以允许计算关于除了轴701之外的任何轴的角加速度。在一些实施例中,可以将附加传感器添加到MR系统700(其可以对应于MR系统112、200、500),这也可以允许关于轴701求解角加速度。例如,第三IMU可以放置在位置706o处。放置在位置706o处的IMU不需要与放置在位置702o或704o处的任何IMU共享重合的测量轴。在一些实施例中,第三IMU可以使用等式(2)、(3)和(4)来允许角加速度的整个求解。将第三IMU放置尽可能远离其他两个IMU可能是有益的,因为较小的向量可能放大测量误差。
在一些实施例中,第三IMU可以放置在位置708o处。相对于位置702o和704o的该放置可能是有利的,因为它离其他两个IMU更远,产生更大的向量。尽管参考了第三IMU,但是应设想可以使用任何数量的一个、两个、三个、四个或更多个IMU。在一些实施例中,可以有利地利用附加的和/或冗余的IMU传感器用于误差检测(例如,当一个或多个IMU测量不正确的值时进行检测)、噪声降低等。
应当理解,图7所示的IMU的布置和数量并不意味着是限制性的。例如,可以放置IMU以最大化用于导出数量N个IMU的角加速度的准确度。
图8示出了根据一些实施例的用于利用用于混合现实SLAM的角加速度的示例性过程800。在步骤802处,经由第一惯性测量单元(例如,关于图5或7所描述的IMU)生成第一惯性数据,该第一惯性测量单元可包括三个测量轴。在一些实施例中,第一惯性测量单元可以被放置在可穿戴头部设备的近端附近(和/或可穿戴头部设备的相机附近)。在一些实施例中,第一惯性测量单元可以集成到MR系统的可穿戴头部设备中。在一些实施例中,第一惯性数据可包括线性加速度(例如,沿着三个测量轴)和角速度(例如,沿着三个测量轴)。在一些实施例中,第一惯性数据可包括线性速度(例如,沿着三个测量轴)。在一些实施例中,第一惯性数据可包括角加速度(例如,沿着三个测量轴)。
在步骤804处,经由第二惯性测量单元(例如,关于图5或7所描述的IMU)生成第二惯性数据,该第二惯性测量单元可包括三个测量轴。在一些实施例中,第二惯性测量单元可以集成到MR系统的可穿戴头部设备中。在一些实施例中,第二惯性测量单元可以被配置为使得一个测量轴与第一惯性测量单元的测量轴重合。在一些实施例中,第二惯性测量单元可以放置在可穿戴头部设备的远端附近(和/或可穿戴头部设备的相机附近)。第二惯性测量单元可以与第一惯性测量单元分开约四到八英寸的距离,并且可以基本上刚性地耦接到第一惯性测量单元。在一些实施例中,第二惯性数据可包括线性加速度(例如,沿着三个测量轴)和角速度(例如,沿着三个测量轴)。在一些实施例中,第二惯性数据可包括线性速度(例如,沿着三个测量轴)。在一些实施例中,第二惯性数据可包括角加速度(例如,沿着三个测量轴)。
在步骤806处,可以基于第一惯性数据和第二惯性数据来计算角加速度。在一些实施例中,如本文所描述的,可以经由集成到MR系统的可穿戴头部设备中的一个或多个处理器来计算角加速度。在一些实施例中,可以经由集成到MR系统的辅助设备(例如,腰带包和/或辅助单元320)中的一个或多个处理器来计算角加速度。在一些实施例中,可以使用不同于MR系统或辅助设备的第二设备(例如,云计算设备)来计算角加速度。在一些实施例中,可以沿着第一惯性测量单元和/或第二惯性测量单元的两个测量轴来计算角加速度。在一些实施例中,角加速度不需要沿着第一惯性测量单元和第二惯性测量单元(例如,位于位置702o或704o的IMU和位于位置706o或708o的IMO)之间重合的测量轴进行计算。
在步骤808处,可以基于角加速度来估计可穿戴头部设备的第一位置。例如,测量结果612(例如,角加速度)可用于在特定时间处估计曲线610。在一些实施例中,可以经由集成到MR系统的可穿戴头部设备中的一个或多个处理器来估计第一位置。在一些实施例中,可以经由集成到MR系统的辅助设备中的一个或多个处理器来估计第一位置。在一些实施例中,可穿戴头部设备的第一位置可以使用SLAM来估计。在一些实施例中,可以使用一个或多个预积分项来估计第一位置,该预积分项可包括角加速度项。
在步骤810处,可以基于可穿戴头部设备的第一位置来呈现虚拟内容。例如,基于第一位置。在一些实施例中,虚拟内容可以经由可穿戴头部设备的一个或多个透射显示器来呈现。在一些实施例中,MR系统可以基于第一位置(其可以包括位置和/或取向数据)来确定用户的视场,并且如果虚拟内容位于用户的视场内,则可以呈现虚拟内容。在一些实施例中,MR系统可以使用第一位置和角加速度来预测可穿戴头部设备的未来位置。例如,可以基于当前位置(例如,第一位置)和轨迹(其可以基于角加速度)来预测未来位置。在一些实施例中,可以基于未来位置和/或用户在未来位置处的视场来生成虚拟内容。
根据一些实施例,一种系统包括:第一惯性测量单元;第二惯性测量单元;以及一个或多个处理器,其被配置为执行一种方法,该方法包括:经由第一惯性测量单元接收第一惯性数据;经由第二惯性测量单元接收第二惯性数据;基于第一惯性数据并且进一步基于第二惯性数据来计算角加速度;基于角加速度估计可穿戴头部设备的第一位置;以及基于可穿戴头部设备的第一位置来呈现虚拟内容。
根据一些实施例,第一惯性测量单元和第二惯性测量单元共享重合的测量轴。
根据一些实施例,系统还包括:第三惯性测量单元,其不与第一惯性测量单元和第二惯性测量单元共享重合的测量轴。
根据一些实施例,方法还包括:经由第三惯性测量单元生成第三惯性数据,其中,进一步基于第三惯性数据计算角加速度。
根据一些实施例中,基于角加速度来估计可穿戴头部设备的第一位置包括:基于角加速度来计算预积分项。
根据一些实施例,预积分项将可穿戴头部设备的第一状态与可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、和相应的陀螺仪偏置数据。
根据一些实施例,方法还包括:基于角加速度并且进一步基于可穿戴头部设备的第一位置来预测可穿戴头部设备的未来位置;以及基于可穿戴头部设备的未来位置来更新虚拟内容的呈现。
根据一些实施例,一种方法包括:经由第一惯性测量单元接收第一惯性数据;经由第二惯性测量单元接收第二惯性数据;基于第一惯性数据并且进一步基于第二惯性数据计算角加速度;基于角加速度来估计可穿戴头部设备的第一位置;以及基于可穿戴头部设备的第一位置来呈现虚拟内容。
根据一些实施例,第一惯性测量单元和第二惯性测量单元共享重合的测量轴。
根据一些实施例,方法还包括:经由不与第一惯性测量单元和第二惯性测量单元共享重合的测量轴的第三惯性测量单元来生成第三惯性数据。
根据一些实施例,进一步基于第三惯性数据计算角加速度。
根据一些实施例中,基于角加速度来估计可穿戴头部设备的第一位置包括:基于角加速度来计算预积分项。
根据一些实施例,预积分项将可穿戴头部设备的第一状态与可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、和相应的陀螺仪偏置数据。
根据一些实施例,方法还包括:基于角加速度并且进一步基于可穿戴头部设备的第一位置来预测可穿戴头部设备的未来位置;以及基于可穿戴头部设备的未来位置来更新虚拟内容的呈现。
根据一些实施例,一种存储一个或多个指令的非暂态计算机可读介质,所述指令当由电子设备的一个或多个处理器执行时,使得一个或多个处理器执行包括以下各项的方法:经由第一惯性测量单元接收第一惯性数据;经由第二惯性测量单元接收第二惯性数据;基于第一惯性数据并且进一步基于第二惯性数据计算角加速度;基于角加速度来估计可穿戴头部设备的第一位置;以及基于可穿戴头部设备的第一位置来呈现虚拟内容。
根据一些实施例,第一惯性测量单元和第二惯性测量单元共享重合的测量轴。
根据一些实施例,方法还包括:经由不与第一惯性测量单元和第二惯性测量单元共享重合的测量轴的第三惯性测量单元来生成第三惯性数据。
根据一些实施例,进一步基于第三惯性数据来计算角加速度。
根据一些实施例中,基于角加速度来估计可穿戴头部设备的第一位置包括:基于角加速度来计算预积分项。
根据一些实施例,预积分项将可穿戴头部设备的第一状态与可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、和相应的陀螺仪偏置数据。
根据一些实施例,方法还包括:基于角加速度并且进一步基于可穿戴头部设备的第一位置来预测可穿戴头部设备的未来位置;以及基于可穿戴头部设备的未来位置来更新虚拟内容的呈现。
尽管所公开的示例已经参考附图充分描述,但是应注意到,各种改变和修改对于本领域技术人员来说将变得明显。例如,一个或多个实施方式的元素可以组合、删除、修改、或补充以形成进一步的实施方式。这样的改变和修改将被理解为包括在如由附加的权利要求限定的所公开的示例的范围内。
Claims (20)
1.一种系统,包括:
第一惯性测量单元;
第二惯性测量单元;以及
一个或多个处理器,其被配置为执行一种方法,所述方法包括:
经由所述第一惯性测量单元接收第一惯性数据;
经由所述第二惯性测量单元接收第二惯性数据;
基于所述第一惯性数据并且进一步基于所述第二惯性数据,计算角加速度;
基于所述角加速度,估计可穿戴头部设备的第一位置;以及
基于所述可穿戴头部设备的所述第一位置,呈现虚拟内容。
2.根据权利要求1所述的系统,其中,所述第一惯性测量单元和所述第二惯性测量单元共享重合的测量轴。
3.根据权利要求2所述的系统,还包括:第三惯性测量单元,其不与所述第一惯性测量单元和所述第二惯性测量单元共享所述重合的测量轴。
4.根据权利要求3所述的系统,其中,所述方法还包括:
经由所述第三惯性测量单元生成第三惯性数据,
其中,进一步基于所述第三惯性数据来计算所述角加速度。
5.根据权利要求1所述的系统,其中,基于所述角加速度来估计所述可穿戴头部设备的所述第一位置包括:基于所述角加速度来计算预积分项。
6.根据权利要求5所述的系统,其中,所述预积分项将所述可穿戴头部设备的第一状态与所述可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、以及相应的陀螺仪偏置数据。
7.根据权利要求1所述的系统,其中,所述方法还包括:
基于所述角加速度并且进一步基于所述可穿戴头部设备的所述第一位置,预测所述可穿戴头部设备的未来位置;以及
基于所述可穿戴头部设备的所述未来位置,更新所述虚拟内容的呈现。
8.一种方法,包括:
经由第一惯性测量单元接收第一惯性数据;
经由第二惯性测量单元接收第二惯性数据;
基于所述第一惯性数据并且进一步基于所述第二惯性数据,计算角加速度;
基于所述角加速度,估计可穿戴头部设备的第一位置;以及
基于所述可穿戴头部设备的所述第一位置,呈现虚拟内容。
9.根据权利要求8所述的方法,其中,所述第一惯性测量单元和所述第二惯性测量单元共享重合的测量轴。
10.根据权利要求9所述的方法,还包括:经由第三惯性测量单元生成第三惯性数据,所述第三惯性测量单元不与所述第一惯性测量单元和所述第二惯性测量单元共享所述重合的测量轴。
11.根据权利要求10所述的方法,其中,进一步基于所述第三惯性数据来计算所述角加速度。
12.根据权利要求8所述的方法,其中,基于所述角加速度来估计所述可穿戴头部设备的所述第一位置包括:基于所述角加速度来计算预积分项。
13.根据权利要求12所述的方法,其中,所述预积分项将所述可穿戴头部设备的第一状态与所述可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、以及相应的陀螺仪偏置数据。
14.根据权利要求8所述的方法,还包括:
基于所述角加速度并且进一步基于所述可穿戴头部设备的所述第一位置,预测所述可穿戴头部设备的未来位置;以及
基于所述可穿戴头部设备的所述未来位置,更新所述虚拟内容的呈现。
15.一种存储一个或多个指令的非暂态计算机可读介质,所述指令当由电子设备的一个或多个处理器执行时使得所述一个或多个处理器执行包括以下的方法:
经由第一惯性测量单元接收第一惯性数据;
经由第二惯性测量单元接收第二惯性数据;
基于所述第一惯性数据并且进一步基于所述第二惯性数据,计算角加速度;
基于所述角加速度,估计可穿戴头部设备的第一位置;以及
基于所述可穿戴头部设备的所述第一位置,呈现虚拟内容。
16.根据权利要求15所述的非暂态计算机可读介质,其中,所述第一惯性测量单元和所述第二惯性测量单元共享重合的测量轴。
17.根据权利要求16所述的非暂态计算机可读介质,其中,所述方法还包括:经由第三惯性测量单元生成第三惯性数据,所述第三惯性测量单元不与所述第一惯性测量单元和所述第二惯性测量单元共享所述重合的测量轴。
18.根据权利要求15所述的非暂态计算机可读介质,其中,基于所述角加速度来估计所述可穿戴头部设备的所述第一位置包括:基于所述角加速度来计算预积分项。
19.根据权利要求18所述的非暂态计算机可读介质,其中,所述预积分项将所述可穿戴头部设备的第一状态与所述可穿戴头部设备的第二状态相关,并且其中,每个状态包括相应的位置数据、相应的速度数据、相应的加速度计偏置数据、以及相应的陀螺仪偏置数据。
20.根据权利要求15所述的非暂态计算机可读介质,其中,所述方法还包括:
基于所述角加速度并且进一步基于所述可穿戴头部设备的所述第一位置,预测所述可穿戴头部设备的未来位置;以及
基于所述可穿戴头部设备的所述未来位置,更新所述虚拟内容的呈现。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063031985P | 2020-05-29 | 2020-05-29 | |
US63/031,985 | 2020-05-29 | ||
PCT/US2021/034647 WO2021243103A1 (en) | 2020-05-29 | 2021-05-27 | Determining angular acceleration |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116210021A true CN116210021A (zh) | 2023-06-02 |
Family
ID=78706260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180060739.XA Pending CN116210021A (zh) | 2020-05-29 | 2021-05-27 | 确定角加速度 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11561613B2 (zh) |
EP (1) | EP4158615A4 (zh) |
JP (1) | JP2023527357A (zh) |
CN (1) | CN116210021A (zh) |
WO (1) | WO2021243103A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11328475B2 (en) | 2019-10-18 | 2022-05-10 | Magic Leap, Inc. | Gravity estimation and bundle adjustment for visual-inertial odometry |
US11816757B1 (en) * | 2019-12-11 | 2023-11-14 | Meta Platforms Technologies, Llc | Device-side capture of data representative of an artificial reality environment |
US11561613B2 (en) | 2020-05-29 | 2023-01-24 | Magic Leap, Inc. | Determining angular acceleration |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4852988A (en) | 1988-09-12 | 1989-08-01 | Applied Science Laboratories | Visor and camera providing a parallax-free field-of-view image for a head-mounted eye movement measurement system |
US5933125A (en) * | 1995-11-27 | 1999-08-03 | Cae Electronics, Ltd. | Method and apparatus for reducing instability in the display of a virtual environment |
US6847336B1 (en) | 1996-10-02 | 2005-01-25 | Jerome H. Lemelson | Selectively controllable heads-up display system |
US6433760B1 (en) | 1999-01-14 | 2002-08-13 | University Of Central Florida | Head mounted display with eyetracking capability |
US6491391B1 (en) | 1999-07-02 | 2002-12-10 | E-Vision Llc | System, apparatus, and method for reducing birefringence |
CA2316473A1 (en) | 1999-07-28 | 2001-01-28 | Steve Mann | Covert headworn information display or data display or viewfinder |
CA2362895A1 (en) | 2001-06-26 | 2002-12-26 | Steve Mann | Smart sunglasses or computer information display built into eyewear having ordinary appearance, possibly with sight license |
DE10132872B4 (de) | 2001-07-06 | 2018-10-11 | Volkswagen Ag | Kopfmontiertes optisches Durchsichtssystem |
US20030030597A1 (en) | 2001-08-13 | 2003-02-13 | Geist Richard Edwin | Virtual display apparatus for mobile activities |
CA2388766A1 (en) | 2002-06-17 | 2003-12-17 | Steve Mann | Eyeglass frames based computer display or eyeglasses with operationally, actually, or computationally, transparent frames |
US6943754B2 (en) | 2002-09-27 | 2005-09-13 | The Boeing Company | Gaze tracking system, eye-tracking assembly and an associated method of calibration |
US7347551B2 (en) | 2003-02-13 | 2008-03-25 | Fergason Patent Properties, Llc | Optical system for monitoring eye movement |
US7500747B2 (en) | 2003-10-09 | 2009-03-10 | Ipventure, Inc. | Eyeglasses with electrical components |
EP1755441B1 (en) | 2004-04-01 | 2015-11-04 | Eyefluence, Inc. | Biosensors, communicators, and controllers monitoring eye movement and methods for using them |
WO2006076499A1 (en) * | 2005-01-13 | 2006-07-20 | Analog Devices, Inc. | Five degree of freedom inertial measurement unit |
US20070081123A1 (en) | 2005-10-07 | 2007-04-12 | Lewis Scott W | Digital eyewear |
US20110213664A1 (en) | 2010-02-28 | 2011-09-01 | Osterhout Group, Inc. | Local advertising content on an interactive head-mounted eyepiece |
US8890946B2 (en) | 2010-03-01 | 2014-11-18 | Eyefluence, Inc. | Systems and methods for spatially controlled scene illumination |
US8531355B2 (en) | 2010-07-23 | 2013-09-10 | Gregory A. Maltz | Unitized, vision-controlled, wireless eyeglass transceiver |
US20120078570A1 (en) * | 2010-09-29 | 2012-03-29 | Apple Inc. | Multiple accelerometer system |
US9292973B2 (en) | 2010-11-08 | 2016-03-22 | Microsoft Technology Licensing, Llc | Automatic variable virtual focus for augmented reality displays |
US9323325B2 (en) | 2011-08-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Enhancing an object of interest in a see-through, mixed reality display device |
US20130077147A1 (en) | 2011-09-22 | 2013-03-28 | Los Alamos National Security, Llc | Method for producing a partially coherent beam with fast pattern update rates |
US8929589B2 (en) | 2011-11-07 | 2015-01-06 | Eyefluence, Inc. | Systems and methods for high-resolution gaze tracking |
US8611015B2 (en) | 2011-11-22 | 2013-12-17 | Google Inc. | User interface |
US8235529B1 (en) | 2011-11-30 | 2012-08-07 | Google Inc. | Unlocking a screen using eye tracking information |
US8638498B2 (en) | 2012-01-04 | 2014-01-28 | David D. Bohn | Eyebox adjustment for interpupillary distance |
US10013053B2 (en) | 2012-01-04 | 2018-07-03 | Tobii Ab | System for gaze interaction |
US9274338B2 (en) | 2012-03-21 | 2016-03-01 | Microsoft Technology Licensing, Llc | Increasing field of view of reflective waveguide |
US8989535B2 (en) | 2012-06-04 | 2015-03-24 | Microsoft Technology Licensing, Llc | Multiple waveguide imaging structure |
US20140218281A1 (en) | 2012-12-06 | 2014-08-07 | Eyefluence, Inc. | Systems and methods for eye gaze determination |
US9720505B2 (en) | 2013-01-03 | 2017-08-01 | Meta Company | Extramissive spatial imaging digital eye glass apparatuses, methods and systems for virtual or augmediated vision, manipulation, creation, or interaction with objects, materials, or other entities |
US20140195918A1 (en) | 2013-01-07 | 2014-07-10 | Steven Friedlander | Eye tracking user interface |
WO2016201423A1 (en) * | 2015-06-12 | 2016-12-15 | Google Inc. | Electronic display stabilization for head mounted display |
US10191561B2 (en) * | 2015-06-15 | 2019-01-29 | Facebook Technologies, Llc | Tracking controllers of a virtual reality system |
KR102501752B1 (ko) | 2015-09-21 | 2023-02-20 | 삼성전자주식회사 | 헤드 마운트 디스플레이의 움직임을 보상하는 방법 및 이를 위한 장치 |
US10317214B2 (en) * | 2016-10-25 | 2019-06-11 | Massachusetts Institute Of Technology | Inertial odometry with retroactive sensor calibration |
EP3428760B1 (en) | 2017-07-12 | 2021-03-10 | Trifo, Inc. | Mapping optimization in autonomous and non-autonomous platforms |
US10839547B2 (en) | 2017-09-28 | 2020-11-17 | Samsung Electronics Co., Ltd. | Camera pose determination and tracking |
KR102440358B1 (ko) * | 2017-10-12 | 2022-09-05 | 한화디펜스 주식회사 | 관성 기반 항법 장치 및 상대사전적분에 따른 관성 기반 항법 방법 |
US10970425B2 (en) | 2017-12-26 | 2021-04-06 | Seiko Epson Corporation | Object detection and tracking |
US10444932B2 (en) * | 2018-01-25 | 2019-10-15 | Institute For Information Industry | Virtual space positioning method and apparatus |
US11210804B2 (en) | 2018-02-23 | 2021-12-28 | Sony Group Corporation | Methods, devices and computer program products for global bundle adjustment of 3D images |
JP2020020631A (ja) | 2018-07-31 | 2020-02-06 | セイコーエプソン株式会社 | 姿勢推定方法、姿勢推定装置及び移動体 |
US11328475B2 (en) | 2019-10-18 | 2022-05-10 | Magic Leap, Inc. | Gravity estimation and bundle adjustment for visual-inertial odometry |
US11561613B2 (en) | 2020-05-29 | 2023-01-24 | Magic Leap, Inc. | Determining angular acceleration |
-
2021
- 2021-05-27 US US17/332,917 patent/US11561613B2/en active Active
- 2021-05-27 WO PCT/US2021/034647 patent/WO2021243103A1/en unknown
- 2021-05-27 CN CN202180060739.XA patent/CN116210021A/zh active Pending
- 2021-05-27 JP JP2022572567A patent/JP2023527357A/ja active Pending
- 2021-05-27 EP EP21813271.0A patent/EP4158615A4/en active Pending
-
2022
- 2022-12-19 US US18/068,392 patent/US12056273B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4158615A1 (en) | 2023-04-05 |
WO2021243103A1 (en) | 2021-12-02 |
JP2023527357A (ja) | 2023-06-28 |
EP4158615A4 (en) | 2023-11-15 |
US12056273B2 (en) | 2024-08-06 |
US11561613B2 (en) | 2023-01-24 |
US20230126026A1 (en) | 2023-04-27 |
US20210373654A1 (en) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7445720B2 (ja) | 拡張現実のためのシステムおよび方法 | |
JP7446420B2 (ja) | 反響フィンガプリント推定 | |
JP7252965B2 (ja) | 複合現実のための二重聴取者位置 | |
JP7541922B2 (ja) | 複合現実仮想反響音 | |
JP2023513747A (ja) | 3dオブジェクト注釈 | |
US11935180B2 (en) | Dual IMU SLAM | |
CN106489171B (zh) | 立体图像显示器 | |
JP2023514572A (ja) | セッションマネージャ | |
US11561613B2 (en) | Determining angular acceleration | |
JP2023513250A (ja) | 仮想コンテンツの動的併置 | |
JP2023527561A (ja) | 表面の適切な衝突 | |
US20210258713A1 (en) | Delayed audio following | |
US11778410B2 (en) | Delayed audio following | |
JP2022554200A (ja) | 非均一ステレオレンダリング | |
JP2024512211A (ja) | Lidar同時位置特定およびマッピング | |
JP2023514571A (ja) | 遅延オーディオ追従 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |