IP Library Granted Patent US 11,790,619
Granted Patent B2
US 11,790,619 · App. 17/856,903 · Granted Oct 17, 2023

Cross reality system with accurate shared maps

Inventors: Miguel Andres Granados Velasquez (Thalwil, CH); Javier Victorio Gomez Gonzalez (Zurich, CH); Mukta Prasad (Uitikon Waldegg, CH); Eran Guendelman (Tel Aviv, IL); Ali Shahrokni (San Jose, CA); Ashwin Swaminathan (Dublin, CA)
Assignee: Magic Leap, Inc.
G06T19/006G01C21/387
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,790,619
App. No.
17/856,903
Granted
Oct 17, 2023
Kind
B2
Abstract

A cross reality system enables any of multiple devices to efficiently and accurately access previously persisted maps of very large scale environments and render virtual content specified in relation to those maps. The cross reality system may build a persisted map, which may be in canonical form, by merging tracking maps from the multiple devices. A map merge process determines mergibility of a tracking map with a canonical map and merges a tracking map with a canonical map in accordance with mergibility criteria, such as, when a gravity direction of the tracking map aligns with a gravity direction of the canonical map. Refraining from merging maps if the orientation of the tracking map with respect to gravity is not preserved avoids distortions in persisted maps and results in multiple devices, which may use the maps to determine their locations, to present more realistic and immersive experiences for their users.

Claims (62)

1. A method of operating a cross reality system in which one or more environment maps are stored in a database and a representation of a physical environment computed based on sensor data collected by a device worn by a user, the method comprising:

receiving a representation of a physical environment from the device, wherein the representation of the physical environment is aligned with respect to a gravity direction;

determining a transformation between the representation of the physical environment and an environment map;

determining whether to modify the representation of the physical environment with the environment map, wherein determining whether to modify comprises determining whether applying the transformation to the representation of the physical environment produces a transformed representation of the physical environment that aligns with respect to the gravity direction; and

modifying the environment map based on the representation of the physical environment based at least in part on determining that the transformed representation of the physical environment aligns with the gravity direction.

2. The method of claim 1 , wherein determining whether applying the transformation to the representation of the physical environment produces the transformed representation of the physical environment that aligns with respect to the gravity direction comprises:

determining whether applying the transformation to the representation of the physical environment produces the transformed representation of the physical environment that is rotated with respect to the gravity direction by more than a threshold amount;

in response to determining that applying the transformation to the representation of the physical environment does not produce the transformed representation of the physical environment that is rotated with respect to the gravity direction by more than the threshold amount, selecting the transformation as the determined transformation; and

in response to determining that applying the transformation to the representation of the physical environment produces the transformed representation of the physical environment that is rotated with respect to the gravity direction by more than the threshold amount, discarding the transformation.

3. The method of claim 1 , further comprising:

identifying a set of environment maps from the database to be modified with the representation of the physical environment; and

for each environment map in the set of environment maps:

determining the transformation between the representation of the physical environment and the environment map;

determining whether to modify the environment map with the representation of the physical environment; and

modifying the environment map with the representation of the physical environment based on determining that the transformed representation of the physical environment aligns with the gravity direction.

4. The method of claim 3 , further comprising, for each environment map in the set of environment maps:

refraining from modifying the environment map with the representation of the physical environment based on determining that a gravity direction of the environment map does not align with the gravity direction of the transformed representation of the physical environment.

5. The method of claim 3 , wherein identifying the set of environment maps comprises:

determining area identifiers associated with the representation of the physical environment;

and

identifying the set of environment maps from the database based, at least in part, on the area identifiers associated with the representation of the physical environment.

6. The method of claim 3 , wherein identifying the set of environment maps from the database further comprises:

filtering the set of environment maps based on similarity of one or more metrics associated with the representation of the physical environment and in the set of environment maps.

7. A computing device configured for use in a cross reality system in which a portable device operating in a three-dimensional (3D) environment renders virtual content, the computing device comprising:

at least one processor;

a computer-readable medium connected to the processor;

a plurality of environment maps stored in the computer-readable medium; and

computer-executable instructions configured to, when executed by the at least one processor, perform a method comprising:

receiving a representation of the physical environment from the portable device, wherein the representation of the physical environment is aligned with respect to a gravity direction;

determining whether to merge an environment map with the representation of the physical environment, wherein determining whether to merge comprises searching for a transformation of the representation of the physical environment that aligns a transformed representation of the physical environment and the environment map in a manner that preserves alignment of the transformed representation of the physical environment with respect to the gravity direction; and

merging the environment map with the transformed representation of the physical environment based on determining that a gravity direction of the environment map aligns with the gravity direction of the transformed representation of the physical environment.

8. The computing device of claim 7 , wherein searching for a transformation comprises searching for the transformation that aligns a first set of features associated with the representation of the physical environment with a second set of features associated with the environment map with a metric of error below a threshold.

9. The computing device of claim 8 , wherein searching for a transformation comprises searching for the transformation that does not change an orientation of the transformed representation of the physical environment with respect to the gravity direction.

10. The computing device of claim 7 , wherein searching for a transformation comprises:

determining whether applying the transformation to the representation of the physical environment produces the transformed representation of the physical environment that is rotated with respect to the gravity direction by more than a threshold amount;

in response to determining that applying the transformation to the representation of the physical environment does not produce the transformed representation of the physical environment that is rotated with respect to the gravity direction by more than the threshold amount, applying the transformation to the representation of the physical environment to generate the transformed representation of the physical environment; and

in response to determining that applying the transformation to the representation of the physical environment produces the transformed representation of the physical environment that is rotated with respect to the gravity direction by more than the threshold amount, discarding the transformation.

11. The computing device of claim 7 , wherein the method further comprises:

identifying a set of environment maps from the plurality of environment maps to be merged with the representation of the physical environment; and

for each environment map in the set of environment maps:

determining whether to merge the environment map with the representation of the physical environment; and

merging the environment map with the transformed representation of the physical environment based on determining that a gravity direction of the environment map aligns with the gravity direction of the transformed representation of the physical environment.

12. The computing device of claim 11 , wherein the method further comprises, for each environment map in the set of environment maps:

refraining from merging the environment map with the transformed representation of the physical environment based on determining that the gravity direction of the environment map does not align with the gravity direction of the representation of the physical environment.

13. The computing device of claim 12 , wherein identifying the set of environment maps further comprises:

determining area identifiers associated with the representation of the physical environment; and

identifying the set of environment maps based, at least in part on, on the area identifiers associated with the representation of the physical environment.

14. The computing device of claim 13 , wherein identifying the set of environment maps further comprises:

filtering the set of environment maps based on similarity of one or more metrics associated with the representation of the physical environment and the environment maps in the set of environment maps.

15. A cloud computing environment for an augmented reality system configured for communication with a plurality of user devices comprising sensors, comprising:

a map database storing a plurality of environment maps constructed from data supplied by the plurality of user devices; and

non-transitory computer storage media storing computer-executable instructions that, when executed by at least one processor in the cloud computing environment, perform a method comprising:

receiving a representation of the physical environment from a user device, wherein the representation of the physical environment is aligned with respect to a gravity direction;

updating the map database based on the received representation of the physical environment, wherein updating the map database comprises, for an environment map in a set of environment maps:

determining a transformation between the representation of the physical environment and the environment map;

determining whether to merge the environment map with the representation of the physical environment, wherein determining whether to merge comprises determining whether applying the transformation to the representation of the physical environment produces a transformed representation of the physical environment that aligns with respect to the gravity direction; and

modifying the environment map with the representation of the physical environment based on determining that the transformed representation of the physical environment aligns with the gravity direction.

16. The cloud computing environment of claim 15 , wherein determining the transformation comprises, for corresponding features in the representation of the physical environment and the environment map, selecting as the determined transformation the transformation that aligns the corresponding features with a metric of error below a threshold.

17. The cloud computing determining the corresponding environment of claim 16 , wherein the method further comprises determining the corresponding features based on similarity of identifiers assigned to the features.

18. The cloud computing environment of claim 16 , wherein selecting as the determined transformation further comprises selecting the transformation that when applied produces the transformed representation of the physical environment that aligns with respect to the gravity direction.

19. The cloud computing environment of claim 15 , wherein determining the transformation comprises applying a plurality of candidate transformations to the representation of the physical environment and selecting as the determined transformation a candidate transformation of the plurality of candidate transformations.

20. The cloud computing environment of claim 19 , wherein selecting the determined transformation further comprises selecting as the determined transformation the candidate transformation that when applied produces the transformed representation of the physical environment that aligns with respect to the gravity direction.

Assignments (4)
SECURITY INTEREST Recorded Oct 20, 2025
From: MAGIC LEAP, INC.; MENTOR ACQUISITION ONE, LLC; MOLECULAR IMPRINTS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073031/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2022
From: VELASQUEZ, MIGUEL ANDRES GRANADOS; GOMEZ GONZALEZ, JAVIER VICTORIO; PRASAD, MUKTA; GUENDELMAN, ERAN; SWAMINATHAN, ASHWIN
To: MAGIC LEAP, INC.
Reel/Frame 061841/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2022
From: SHAHROKNI, ALI
To: MAGIC LEAP, INC.
Reel/Frame 061841/0270 →
SECURITY INTEREST Recorded Sep 23, 2022
From: MAGIC LEAP, INC.; MENTOR ACQUISITION ONE, LLC; MOLECULAR IMPRINTS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 061197/0942 →