IP Library Granted Patent US 11,410,395
Granted Patent B2
US 11,410,395 · App. 17/174,122 · Granted Aug 9, 2022

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,410,395
App. No.
17/174,122
Granted
Aug 9, 2022
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 (60)

1. A method of merging one or more environment maps stored in a database with a tracking map computed based on sensor data collected by a device worn by a user, the method comprising:

receiving the tracking map from the device, wherein the tracking map is aligned with respect to a gravity direction;

determining a transformation between the tracking map and an environment map;

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

merging the environment map with the tracking map based on determining that the transformed tracking map aligns with the gravity direction.

2. The method of claim 1 , wherein determining the transformation comprises, for corresponding features in the tracking map and the environment map, selecting as the determined transformation the transformation that aligns the corresponding features with a metric of error below a threshold.

3. The method of claim 2 , further comprising determining the corresponding features based on similarity of identifiers assigned to the features.

4. The method of claim 2 , wherein selecting as the determined transformation further comprises selecting the transformation that when applied produces the transformed tracking map that aligns with respect to the gravity direction.

5. The method of claim 1 , wherein determining the transformation comprises applying a plurality of candidate transformations to the tracking map and selecting as the determined transformation a candidate transformation of the plurality of candidate transformations.

6. The method of claim 5 , wherein selecting the determined transformation further comprises selecting as the determined transformation the candidate transformation that when applied produces the transformed tracking map that aligns with respect to the gravity direction.

7. The method of claim 1 , wherein determining whether applying the transformation to the tracking map produces the transformed tracking map that aligns with respect to the gravity direction comprises:

determining whether applying the transformation to the tracking map produces the transformed tracking map 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 tracking map does not produce the transformed tracking map 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 tracking map produces the transformed tracking map that is rotated with respect to the gravity direction by more than the threshold amount, discarding the transformation.

8. The method of claim 1 , further comprising:

identifying a set of environment maps from the database to be merged with the tracking map; and

for each environment map in the set of environment maps:

determining the transformation between the tracking map and the environment map;

determining whether to merge the environment map with the tracking map; and

merging the environment map with the tracking map based on determining that the transformed tracking map aligns with the gravity direction.

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

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

10. The method of claim 8 , wherein identifying the set of environment maps comprises:

determining area identifiers associated with the tracking map; and

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

11. The method of claim 8 , 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 tracking map and in the set of environment maps.

12. 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 tracking map from the portable device, wherein the tracking map is aligned with respect to a gravity direction;

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

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

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

14. The computing device of claim 13 , wherein searching for a transformation comprises searching for the transformation that does not change an orientation of the transformed tracking map with respect to the gravity direction.

15. The computing device of claim 12 , wherein searching for a transformation comprises:

determining whether applying the transformation to the tracking map produces the transformed tracking map 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 tracking map does not produce the transformed tracking map that is rotated with respect to the gravity direction by more than the threshold amount, applying the transformation to the tracking map to generate the transformed tracking map; and

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

16. The computing device of claim 12 , wherein the method further comprises: identifying a set of environment maps from the plurality of environment maps to be merged with the tracking map; and

for each environment map in the set of environment maps:

determining whether to merge the environment map with the tracking map; and

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

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

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

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

determining area identifiers associated with the tracking map; and

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

19. The computing device of claim 16 , 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 tracking map and the environment maps in the set of environment maps.

20. 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 tracking map from a user device, wherein the tracking map is aligned with respect to a gravity direction;

updating the map database based on the received tracking map, wherein updating the map database comprises, for each environment map in a set of environment maps:

determining a transformation between the tracking map and the environment map;

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

merging the environment map with the tracking map based on determining that the transformed tracking map aligns with the gravity direction.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2022
From: VELASQUEZ, MIGUEL ANDRES GRANADOS; GOMEZ GONZALEZ, JAVIER VICTORIO; PRASAD, MUKTA; GUENDELMAN, ERAN; SWAMINATHAN, ASHWIN
To: MAGIC LEAP, INC.
Reel/Frame 060196/0916 →
PROPRIETARY INFORMATION AND INVENTIONS AGREEMENT Recorded Jun 14, 2022
From: SHAHROKNI, ALI
To: MAGIC LEAP, INC.
Reel/Frame 060384/0322 →
SECURITY INTEREST Recorded May 24, 2022
From: MOLECULAR IMPRINTS, INC.; MENTOR ACQUISITION ONE, LLC; MAGIC LEAP, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 060338/0665 →
Continuity (2)
Provisional Application 62975983 · Feb 13, 2020
Related Publication 20210256767A1 · Aug 19, 2021
Cited By (10)
US 12,243,178 US 12,283,011 US 12,283,012 US 12,293,471 US 12,307,004 US 12,315,097 US 12,315,363 US 12,430,861 US 12,499,618 US 12,670,675