Systems and methods for landmark generation for visual simultaneous localization and mapping
First Claim
1. A method of creating a landmark for navigation, the method comprising:
- receiving a plurality of images from a visual sensor;
retrieving dead reckoning data corresponding to the retrieved plurality of images;
using the dead reckoning data to select at least 2 images from the plurality of images, where the selected images are spaced apart;
identifying visual features common to at least 2 of the selected images;
determining 3-dimensional coordinates of the identified visual features using the selected images; and
identifiably storing the 3-dimensional coordinates of the identified visual features such that the visual features and their corresponding 3-dimensional coordinates are associated, wherein the landmark is used for navigation.
7 Assignments
0 Petitions
Accused Products
Abstract
The invention is related to methods and apparatus that use a visual sensor and dead reckoning sensors to process Simultaneous Localization and Mapping (SLAM). These techniques can be used in robot navigation. Advantageously, such visual techniques can be used to autonomously generate and update a map. Unlike with laser rangefinders, the visual techniques are economically practical in a wide range of applications and can be used in relatively dynamic environments, such as environments in which people move. One embodiment further advantageously uses multiple particles to maintain multiple hypotheses with respect to localization and mapping. Further advantageously, one embodiment maintains the particles in a relatively computationally-efficient manner, thereby permitting the SLAM processes to be performed in software using relatively inexpensive microprocessor-based computer systems.
330 Citations
81 Claims
-
1. A method of creating a landmark for navigation, the method comprising:
-
receiving a plurality of images from a visual sensor;
retrieving dead reckoning data corresponding to the retrieved plurality of images;
using the dead reckoning data to select at least 2 images from the plurality of images, where the selected images are spaced apart;
identifying visual features common to at least 2 of the selected images;
determining 3-dimensional coordinates of the identified visual features using the selected images; and
identifiably storing the 3-dimensional coordinates of the identified visual features such that the visual features and their corresponding 3-dimensional coordinates are associated, wherein the landmark is used for navigation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer program embodied in a tangible medium for creating a landmark for navigation, the computer program comprising:
-
a module with instructions configured to receive a plurality of images from a visual sensor;
a module with instructions configured to retrieve dead reckoning data corresponding to the retrieved plurality of images;
a module with instructions configured to use the dead reckoning data to select at least 2 images from the plurality of images, where the selected images are spaced apart;
a module with instructions configured to identify visual features common to at least 2 of the selected images;
a module with instructions configured to determine 3-dimensional coordinates of the identified visual features using the selected images; and
a module with instructions configured to identifiably store the 3-dimensional coordinates of the identified visual features such that the visual features and their corresponding 3-dimensional coordinates are associated, wherein the landmark is used for navigation. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A method of creating a landmark for navigation, the method comprising:
-
receiving a plurality of images from a visual sensor coupled to a mobile device;
selecting at least 2 images from a plurality of images, where the at least 2 images are spaced apart;
identifying visual features common to at least 2 of the selected images;
determining 3-dimensional coordinates of the identified visual features using the at least 2 images; and
identifiably storing information related to the identified visual features such that the visual features and the corresponding information are associated, wherein the landmark is used for navigation. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A circuit for creating a landmark for navigation, the circuit comprising:
-
a circuit configured to receive a plurality of images from a visual sensor coupled to a mobile device;
a circuit configured to select at least 2 images from a plurality of images, where the at least 2 images are spaced apart;
a circuit configured to identify visual features common to at least 2 of the selected images;
a circuit configured to determine 3-dimensional coordinates of the identified visual features using the at least 2 images; and
a circuit configured to identifiably store information related to the identified visual features such that the visual features and the corresponding information are associated, wherein the landmark is used for navigation. - View Dependent Claims (28, 29)
-
-
30. A computer program embodied in a tangible medium for creating a landmark for navigation, the computer program comprising:
-
a module with instructions configured to receive a plurality of images from a visual sensor coupled to a mobile device;
a module with instructions configured to select at least 2 images from a plurality of images, where the at least 2 images are spaced apart;
a module with instructions configured to identify visual features common to at least 2 of the selected images;
a module with instructions configured to determine 3-dimensional coordinates of the identified visual features using the at least 2 images; and
a module with instructions configured to identifiably store information related to the identified visual features such that the visual features and the corresponding information are associated, wherein the landmark is used for navigation. - View Dependent Claims (31, 32)
-
-
33. A method of determining whether to add a landmark to a map for navigation, the method comprising:
-
retrieving an image from a visual sensor;
comparing features from the image to a plurality of stored features;
generating a list of matching landmarks from the comparison;
filtering matching landmarks from the list based at least in part on reliability tests; and
proceeding to a landmark creation process when there are no remaining matching landmarks in the list. - View Dependent Claims (34, 35, 36, 37)
-
-
38. A method of obtaining depth information for visual navigation, the method comprising:
-
receiving a first image from a visual sensor that is coupled to a mobile device, where the first image corresponds to a first pose;
receiving a second image from the visual sensor corresponding to a second pose, where the second pose is different from the first pose;
using common features identified in the first image and the second image to obtain depth information; and
using the depth information to create a landmark for visual navigation. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. A computer program embodied in a tangible medium for obtaining depth information for visual navigation, the computer program comprising:
-
a module with instructions configured to receive a first image from a visual sensor that is coupled to a mobile device, where the first image corresponds to a first pose;
a module with instructions configured to receive a second image from the visual sensor corresponding to a second pose, where the second pose is different from the first pose;
a module with instructions configured to use common features identified in the first image and the second image to obtain depth information; and
a module with instructions configured to use the depth information to create a landmark for visual navigation. - View Dependent Claims (48, 49)
-
-
50. A method of obtaining depth information for visual navigation, the method comprising:
-
acquiring an image from a visual sensor that is coupled to a mobile device where the image corresponds to a first pose;
acquiring one or more additional images from the visual sensor corresponding to one or more additional poses; and
using identified features common to at least two of the acquired images to obtain depth information for visual navigation. - View Dependent Claims (51, 52, 53, 54, 55, 56, 57)
-
-
58. A computer program embodied in a tangible medium for obtaining depth information for visual navigation, the computer program comprising:
-
a module with instructions configured to acquire an image from a visual sensor that is coupled to a mobile device where the image corresponds to a first pose;
a module with instructions configured to acquire one or more additional images from the visual sensor corresponding to one or more additional poses; and
a module with instructions configured to use identified features common to at least two of the acquired images to obtain depth information for visual navigation. - View Dependent Claims (59)
-
-
60. A method of adding a new landmark to a map for navigation of a mobile device, the method comprising:
-
retrieving dead reckoning data from at least a time corresponding to a prior update of device pose and a time corresponding to an observation of the new landmark;
retrieving a prior device pose for the map, where the prior device pose corresponds to a prior update time; and
adding the new landmark to the map, wherein the pose associated with the new landmark is computed at least in part by using the retrieved dead reckoning data to calculate a change to device pose corresponding to the prior update. - View Dependent Claims (61, 62)
-
-
63. A computer program embodied in a tangible medium for adding a new landmark to a map for navigation of a mobile device, the computer program comprising:
-
a module with instructions configured to retrieve dead reckoning data from at least a time corresponding to a prior update of device pose and a time corresponding to an observation of the new landmark;
a module with instructions configured to retrieve a prior device pose for the map, where the prior device pose corresponds to a prior update time; and
a module with instructions configured to add the new landmark to the map, wherein the pose associated with the new landmark is computed at least in part by using the retrieved dead reckoning data to calculate a change to device pose corresponding to the prior update. - View Dependent Claims (64)
-
-
65. A method of adding a new landmark to a plurality of maps in a multiple-particle navigation system for navigation of a mobile device, the method comprising:
-
retrieving dead reckoning data from at least a time corresponding to a prior update of device pose and a time corresponding to an observation of the new landmark;
retrieving prior device poses for the plurality of maps, where the prior device poses correspond to a prior update time; and
adding the new landmark to the plurality of maps, wherein the poses associated with the new landmark are computed at least in part by using the retrieved dead reckoning data to calculate a change to device pose from the device poses corresponding to the prior update. - View Dependent Claims (66, 67)
-
-
68. A computer program embodied in a tangible medium for adding a new landmark to a plurality of maps in a multiple-particle navigation system for navigation of a mobile device, the computer program comprising:
-
a module with instructions configured to retrieve dead reckoning data from at least a time corresponding to a prior update of device pose and a time corresponding to an observation of the new landmark;
a module with instructions configured to retrieve prior device poses for the plurality of maps, where the prior device poses correspond to a prior update time; and
a module with instructions configured to add the new landmark to the plurality of maps, wherein the poses associated with the new landmark are computed at least in part by using the retrieved dead reckoning data to calculate a change to device pose from the device poses corresponding to the prior update. - View Dependent Claims (69)
-
-
70. A method of creating a new landmark in a navigation system for a mobile device, the method comprising:
-
detecting a new landmark;
storing a first reference to the new landmark in a reference frame that is local to the landmark for localizing; and
storing a second reference to the new landmark in a global reference frame for mapping. - View Dependent Claims (71, 72)
-
-
73. A circuit for creating a new landmark in a navigation system for a mobile device, the circuit comprising:
-
a circuit configured to detect a new landmark;
a circuit configured to store a first reference to the new landmark in a reference frame that is local to the landmark for localizing; and
a circuit configured to store a second reference to the new landmark in a global reference frame for mapping. - View Dependent Claims (74, 75)
-
-
76. A computer program embodied in a tangible medium for creating a new landmark in a navigation system for a mobile device, the computer program comprising:
-
a module with instructions configured to detect a new landmark;
a module with instructions configured to store a first reference to the new landmark in a reference frame that is local to the landmark for localizing; and
a module with instructions configured to store a second reference to the new landmark in a global reference frame for mapping. - View Dependent Claims (77, 78)
-
-
79. A circuit for creating a new landmark in a navigation system for a mobile device, the circuit comprising:
-
a means for detecting a new landmark;
a means for storing a first reference to the new landmark in a reference frame that is local to the landmark for localizing; and
a means for storing a second reference to the new landmark in a global reference frame for mapping. - View Dependent Claims (80, 81)
-
Specification