Merging local maps from mapping devices
An augmented reality system generates computer-mediated reality on a client device. The client device has sensors including a camera configured to capture image data of an environment. The augmented reality system generates a first 3D map of the environment around the client device based on captured image data. The server receives image data captured from a second client device in the environment and generates a second 3D map of the environment. The server links the first and second 3D together in a singular 3D map. The singular 3D map may be a graphical representation of the real world using nodes that represent 3D maps generated by image data captured at client devices and edges that represent transformations between the nodes.
1 . A computer-implemented method of combining map data to generate a three-dimensional (3D) map of an environment, the computer-implemented method comprising:
synchronizing locations between a first client device and a second client device based on a common feature in (a) a first set of image data generated by the first client device and (b) a second set of image data generated by the second client device, wherein synchronizing the locations between the first client device and the second client device based on the common feature is performed prior to generating a first 3D map based on the first set of image data and prior to generating a second 3D map based on the second set of image data;
responsive to synchronizing the locations between the first client device and the second client device based on the common feature, generating the first 3D map based on the first set of image data generated by the first client device;
responsive to synchronizing the locations between the first client device and the second client device based on the common feature, generating the second 3D map based on the second set of image data generated by the second client device; and
generating a singular 3D map from the first and second 3D maps based on the synchronized locations between the first client device and the second client device.
2 . The computer-implemented method of claim 1 , wherein generating the singular 3D map comprises stitching together the first and second 3D maps based on the synchronized locations between the first client device and the second client device.
3 . The computer-implemented method of claim 1 , wherein generating the singular 3D map is further based on the common feature in the first and second sets of image data.
4 . The computer-implemented method of claim 3 , wherein the common feature is a QR code or a third client device.
5 . The computer-implemented method of claim 1 , further comprising:
before generating the singular 3D map from the first and second 3D maps, identifying a first feature in the first 3D map;
identifying a second feature in the second 3D map different than the first feature; and
determining a location of the first feature relative to the second feature based on the synchronized locations between the first client device and the second client device.
6 . The computer-implemented method of claim 5 , wherein generating the singular 3D map is further based on the location of the first feature relative to the second feature.
7 . The computer-implemented method of claim 5 , wherein the first feature is a common feature in the first and second 3D maps.
8 . The computer-implemented method of claim 1 , wherein the first and second 3D maps do not overlap.
9 . The computer-implemented method of claim 1 , wherein:
the first 3D map is associated with a first node of a graph;
the second 3D map is associated with a second node of the graph; and
the first node and the second node are linked by an edge determined based on the synchronized locations between the first client device and the second client device.
10 . The computer-implemented method of claim 1 , further comprising:
before generating the singular 3D map from the first and second 3D maps,
receiving the first set of image data and the second set of image data;
generating the first 3D map based on the first set of image data; and
generating the second 3D map based on the second set of image data.
11 . A non-transitory computer-readable storage medium storing instructions that, when executed by a computing device, cause the computing device to perform operations including:
synchronizing locations between a first client device and a second client device based on a common feature in (a) a first set of image data generated by the first client device and (b) a second set of image data generated by the second client device, wherein synchronizing the locations between the first client device and the second client device based on the common feature is performed prior to generating a first 3D map based on the first set of image data and prior to generating a second 3D map based on the second set of image data;
responsive to synchronizing the locations between the first client device and the second client device based on the common feature, generating the a first 3D map based on the first set of image data generated by the first client device;
responsive to synchronizing the locations between the first client device and the second client device based on the common feature, generating the second 3D map based on the second set of image data generated by the second client device; and
generating a singular 3D map from the first and second 3D maps based on the synchronized locations between the first client device and the second client device.
12 . The non-transitory computer-readable storage medium of claim 11 , wherein generating the singular 3D map comprises stitching together the first and second 3D maps based on the synchronized locations between the first client device and the second client device.
13 . The non-transitory computer-readable storage medium of claim 11 , wherein generating the singular 3D map is further based on the common feature in the first and second sets of image data.
14 . The non-transitory computer-readable storage medium of claim 13 , wherein the common feature is a QR code or a third client device.
15 . The non-transitory computer-readable storage medium of claim 11 , wherein the operations further comprise:
before generating the singular 3D map from the first and second 3D maps,
identifying a first feature in the first 3D map;
identifying a second feature in the second 3D map; and
determining a location of the first feature relative to the second feature based on the synchronized locations between the first client device and the second client device.
16 . The non-transitory computer-readable storage medium of claim 15 , wherein generating the singular 3D map is further based on the location of the first feature relative to the second feature.
17 . The non-transitory computer-readable storage medium of claim 15 , wherein the first feature is a common feature in the first and second 3D maps.
18 . The non-transitory computer-readable storage medium of claim 11 , wherein the first and second 3D maps do not overlap.
19 . The non-transitory computer-readable storage medium of claim 11 , wherein:
the first 3D map is associated with a first node of a graph;
the second 3D map is associated with a second node of the graph; and
the first node and the second node are linked by an edge determined based on the synchronized locations between the first client device and the second client device.
20 . A computer system comprising:
a computer processor system; and
a computer-readable storage medium storing instructions that when executed by the computer processor system perform operations comprising:
synchronizing locations between a first client device and a second client device based on a common feature in (a) a first set of image data generated by the first client device and (b) a second set of image data generated by the second client device, wherein synchronizing the locations between the first client device and the second client device based on the common feature is performed prior to generating a first 3D map based on the first set of image data and prior to generating a second 3D map based on the second set of image data;
responsive to synchronizing the locations between the first client device and the second client device based on the common feature, generating the first 3D map based on the first set of image data generated by the first client device;
responsive to synchronizing the locations between the first client device and the second client device based on the common feature, generating the second 3D map based on the second set of image data generated by the second client device; and
generating a singular 3D map from the first and second 3D maps based on the synchronized locations between the first client device and the second client device.