Scalable 3D mapping system
First Claim
1. A method performed by a server for implementing a 3D map database, the method comprising:
- receiving one or more keyframes and associated metadata from a client;
storing the received one or more keyframes in the 3D map database;
tagging the received one or more keyframes in the 3D map database according to the received metadata;
stitching, according to a stitching processing schedule of the server, the received one or more keyframes with one or more other keyframes or 3D maps in the 3D map database;
storing, in the 3D map database, a result of the stitching as a stitched 3D map tagged with at least some of the associated metadata;
receiving a client request for map data;
searching the 3D map database that includes the stitched 3D map for map data according to the client request; and
providing, in response to the searching, a resulting map data to the client requesting the map data.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are a system, apparatus, and method for multiple client simultaneous localization and mapping. Tracking and mapping may be performed locally and independently by each of a plurality of clients. At configurable points in time map data may be sent to a server for stitching and fusion. In response to successful stitching and fusion to one or more maps known to the server, updated position and orientation information relative to the server'"'"'s maps may be sent back to the clients. Clients may update their local map data with the received server location data. Clients may receive additional map data from the server, which can be used for extending their maps. Clients may send queries to the server for 3D maps, and the queries may include metadata.
10 Citations
30 Claims
-
1. A method performed by a server for implementing a 3D map database, the method comprising:
-
receiving one or more keyframes and associated metadata from a client; storing the received one or more keyframes in the 3D map database; tagging the received one or more keyframes in the 3D map database according to the received metadata; stitching, according to a stitching processing schedule of the server, the received one or more keyframes with one or more other keyframes or 3D maps in the 3D map database; storing, in the 3D map database, a result of the stitching as a stitched 3D map tagged with at least some of the associated metadata; receiving a client request for map data; searching the 3D map database that includes the stitched 3D map for map data according to the client request; and providing, in response to the searching, a resulting map data to the client requesting the map data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A server to implement a 3D map database, the server comprising:
-
memory; and a processor coupled to the memory and configured to; receive one or more keyframes and associated metadata from a client; store the received one or more keyframes in the 3D map database; tag the received one or more keyframes in the 3D map database according to the received metadata; stitch, according to a stitching processing schedule of the server, the received one or more keyframes with one or more other keyframes or 3D maps in the 3D map database; store, in the 3D map database, a result of the stitching as a stitched 3D map tagged with at least some of the associated metadata; receive a client request for map data; search the 3D map database that includes the stitched 3D map for map data according to the client request; and provide, in response to the searching, a resulting map data to the client requesting the map data. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus for implementing a 3D map database, the apparatus comprising:
-
means for receiving one or more keyframes and associated metadata from a client; means for storing the received one or more keyframes in the 3D map database; means for tagging the received one or more keyframes in the 3D map database according to the received metadata; means for stitching, according to a stitching processing schedule of the apparatus, the received one or more keyframes with one or more other keyframes or 3D maps in the 3D map database; means for storing, in the 3D map database, a result of the stitching as a stitched 3D map tagged with at least some of the associated metadata; means for receiving a client request for map data; means for searching the 3D map database that includes the stitched 3D map for map data according to the client request; and means for providing, in response to the searching, a resulting map data to the client requesting the map data. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A machine readable non-transitory storage medium having stored therein program instructions that are executable by a server'"'"'s processor to:
-
receive one or more keyframes and associated metadata from a client; store the received one or more keyframes in a 3D map database; tag the received one or more keyframes in the 3D map database according to the received metadata; stitch, according to a stitching processing schedule of the server, the received one or more keyframes with one or more other keyframes or 3D maps in the 3D map database; store, in the 3D map database, a result of the stitching as a stitched 3D map tagged with at least some of the associated metadata; receive a client request for map data; search the 3D map database that includes the stitched 3D map for map data according to the client request; and provide, in response to the searching, a resulting map data to the client requesting the map data. - View Dependent Claims (27, 28, 29, 30)
-
Specification