Patent Publication Number: US-2010110412-A1

Title: Systems and methods for localization and mapping using landmarks detected by a measurement device

Description:
FIELD OF THE INVENTION 
     The present invention generally relates to navigation systems, and more particularly relates to systems and methods for determining the position and heading/orientation of a mobile platform in an environment (“localization”) using a measurement device (e.g., a light detection and ranging (LIDAR) device) that is capable of detecting the range, azimuth, and elevation of landmarks and a digital map that contains the location of previously surveyed landmarks (“reference landmarks”), and further, autonomously updating the map to include the presence and position of additional landmarks (“derived landmarks”) that can be used in subsequent mobile platform operations. 
     BACKGROUND OF THE INVENTION 
     Contemporary reference navigation systems that use object detection devices (e.g., a light detection and ranging (LIDAR) devices and stereo-camera-based devices) have a large dependence on additional instruments and/or motion sensors. For example, these navigation systems may include a global positioning system (GPS), a differential global positioning system (DGPS), a real-time kinematic global positioning system (RTK-GPS), an odometer, an inertial measurement unit (IMU), and/or other similar instrument(s) and/or sensor(s) for achieving an accuracy to the degree that the contribution from the object detection device is characterized as an aiding source to the GPS/DGPS/RTK-GPS/odometer/IMU and any associated motion sensors. Dependency on such additional technologies and/or sensors not only increases the overall cost of a navigation system, but also reduces the reliability of the system due to the fact that failure of any of the additional instruments and/or sensors may lead to total system failure or performance and accuracy degradation. 
     Another known class of navigation systems referred to as a SLAM (Simultaneous Localization and Mapping) system, starts in a known position in its initial environment that presumably consists of landmarks that can be detected by the system but whose locations are not known. In SLAM systems, as the system and its sensor(s) moves and perceives landmarks, the system updates a digital map with data for the newly detected landmarks consisting of its relative location with respect to the mobile system. The system simultaneously localizes itself using the continuously updated map. While this method has been shown to provide sufficient accuracy in some applications, its accuracy degrades as it moves further away from its initial position. 
     Accordingly, it is desirable to provide systems and methods for determining the position and orientation of a mobile platform in an environment using a measurement device configured to detect the range, azimuth, and elevation of landmarks, and that is devoid of additional instruments and/or motion sensors and without the accuracy degradation and other shortcomings associated with prior navigation systems. Furthermore, other desirable features and characteristics of the present invention will become apparent from the subsequent detailed description of the invention and the appended claims, taken in conjunction with the accompanying drawings and this background of the invention. 
     BRIEF SUMMARY OF THE INVENTION 
     Various embodiments provide apparatus for mapping an environment having a plurality of reference landmarks. One apparatus comprises a measurement device configured to generate range and azimuth data for each of the plurality of reference landmarks, a processor coupled to the measurement device, and memory coupled to the processor. The memory comprises a map module storing data representing a map of the environment including known coordinates for the plurality of reference landmarks. 
     Systems for mapping an environment having a plurality of reference landmarks are also provided. A system comprises a mobile platform, a first measurement device coupled to the mobile platform and configured to generate range and azimuth data for the plurality of reference landmarks, and a second measurement device coupled to the mobile platform and configured to generate range and azimuth data for the plurality of reference landmarks. The system further comprises a processor coupled to the first and second measurement devices, and memory coupled to the processor. The memory comprises a map module storing data representing a map of the environment including known coordinates for the plurality of reference landmarks. 
     Also provided are methods for localizing a mobile platform in an environment having a plurality of reference landmarks. One method comprises the steps of generating a map of the environment based on known coordinates for each of the plurality of reference landmarks, receiving range and azimuth data for each of a plurality of candidate reference landmarks from a measurement device, and identifying each of the plurality of reference landmarks in the plurality of candidate reference landmark. The method further comprises the steps of associating the plurality of candidate reference landmarks with the plurality of reference landmarks in the map and localizing a mobile platform based on the associating step. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and 
         FIG. 1  is a block diagram of one embodiment of a system for determining the position and heading/orientation of the system by creating and using and updating a map of landmarks in an environment; and 
         FIG. 2  is a diagram illustrating a mobile platform comprising the system of  FIG. 1  that is capable of detecting the landmarks in the environment and using a map managed by the system of  FIG. 1  to determine its own position and heading/orientation. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The following detailed description of the invention is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background of the invention or the following detailed description of the invention. 
     Various embodiments of the present invention provide mobile systems and methods that use landmarks at known locations in an environment to determine the position and heading/orientation of the mobile platform in an environment and represent the position in a digital map of the environment so that the environment may be traversed by the mobile platform, such landmarks being referred to hereinafter as “reference landmarks.” Various other embodiments provide apparatus for mapping an environment having a plurality of reference landmarks, some of which already may be present in the environment, which when detected, but yet to be identified/associated as reference landmarks are referred to hereinafter as “candidate reference landmarks.” Other landmarks that are strategically added to the environment at known locations to enhance system precision and accuracy are referred to herein after as “temporary reference landmarks.” Further, the invention provides additional systems and methods that use the reference landmarks to identify and add to the digital map additional landmarks that were not included in the original version of the map given to the system, but are detected by the system during operation. Such additional landmarks are referred to hereinafter as “derived landmarks.” Additionally, systems and methods are included for using the correlation of landmarks in the digital map and landmarks detected by the system to estimate the position and orientation of the system. 
     Turning now to the figures,  FIG. 1  is a block diagram of one embodiment of a system  100  for determining the position and orientation of system  100  by creating and using a map of landmarks in an environment. At least in the embodiment illustrated in  FIG. 1 , system  100  comprises one or more measurement devices  110 , a processor  120 , a filter  130 , and memory  140  coupled to one another via a bus  150 . The following description refers to measurement device  110 ; however, it is noted that such reference may include one or more measurement devices  110 . 
     Measurement device  110  may be any measurement device known in the art or developed in the future capable of detecting objects in an environment and generating range, azimuth, and/or elevation data representing the relative position of such objects. In one embodiment, measurement device  110  is a light detection and ranging (LIDAR) manufactured by SICK, Inc. of Waldkirch, Germany, which includes among other models, model number LMS221-30206. In another embodiment, measurement device  110  is a Spinning Line Laser Rangefinder (SPLINE) manufactured by RedZone Robotics, Inc. of Pittsburg, Pa. Other embodiments may use a measurement device  110  manufactured by another entity. In yet another embodiment, measurement device  110  includes a 180 degree field-of-view such that when two measurement devices  110  are used, system  100  is capable of scanning its environment a full 360 degrees. The data generated by measurement device  110  is transmitted to processor  120  for data processing of the sensed data. 
     Processor  120  may be any processing device known in the art or developed in the future capable of processing the data generated by a measurement device  110  and transforming the data into landmark data. Processor  120  is also configured to generate a map  1454  of the environment surrounding system  100  based on the data received from measurement device  110 , which map is transmitted to filter  130  and then to memory  140  for storage. 
     Filter  130  may be any hardware, software, device, system, or combinations thereof capable of “smoothing” data transmitted by processor  120 . In one embodiment, filter  130  is a Kalman filter with a constant acceleration model. Other embodiments of filter  130  may be a sigma-point filter, a particle filter, an extended Kalman filter (EKF), or the like filter. Filter  130 , in other embodiments, may be software that is executed by processor  120  to filter the output of system  100 . 
     Memory  140  may be any hardware, software, device, system, or combinations thereof capable of storing sensed data. In one embodiment, memory  140  includes one or more map modules  145 . In one embodiment, one map module  145  is configured to store a map  1452  of an environment generated by an external device (not shown) that is based on a local or global coordinate system, such map  1452  being discussed in greater detail below. In another embodiment, one map module  145  is configured to store one or more map(s)  1454  generated by processor  120 . In yet another embodiment, one map module  145  is configured to store map  1452  and map  1454 . In still another embodiment, one map module  145  is configured to store map  1452  and a second map module  145  is configured to store map  1454 . 
     Map  1452  is an a priori map of an environment containing a plurality of reference landmarks (e.g., temporary reference landmarks strategically placed in the environment and/or previously surveyed reference landmarks) and forms the basis from which processor  120  generates map  1454 . Specifically, an initial version of map  1452  is generated external to system  100  and contains the location of one or more reference landmarks having positions that are referenced on a local and/or global coordinate system. Specifically, map  1452  is generated by strategically placing temporary reference landmarks in the environment and/or by surveying the environment for reference landmarks, and determining the location of each temporary reference landmark and/or reference landmark using, for example, a global positioning system (GPS), a range finder, or other positioning technology or method. The coordinates and/or position of each temporary reference landmark and/or reference landmark are then recorded to generate map  1452 . 
     Map  1454 , which may, depending on the detectable landmarks in the vicinity of system  100 , include reference landmarks, temporary reference landmarks, and/or derived landmarks, is generated by processor  120  using the known coordinates and/or position of each of the reference landmarks and/or each temporary reference landmark included in map  1452 . In one embodiment, system  100  is placed in the environment while the temporary reference landmarks remain in their recorded positions. Measurement device  110  then detects various characteristics (e.g., trees, rocks, building corners, lampposts, temporary reference landmarks, etc.) of the environment, transforms these characteristics into candidate landmark data, and transmits the candidate landmark data to processor  120  for processing. Processor  120  then processes the candidate landmark data and uses a feature extraction algorithm to identify and extract reference landmarks and derived landmarks from the candidate landmark data. Once the reference landmarks have been identified, processor  120  determines the spatial relationship between each derived landmark and two or more of the reference landmarks. After the various spatial relationships are determined, processor  120  uses the spatial relationships and the known coordinates and/or position of each reference landmark in the environment (as stored in map  1452 ) to map the position of each corresponding derived landmark, and generates map  1454  based thereon. 
     In another embodiment, reference landmarks (e.g., trees, rocks, building corners, lampposts, etc.) present in the environment are surveyed and recorded to generate map  1452 . Measurement device  110  then detects various characteristics (e.g., trees, rocks, building corners, lampposts, temporary reference landmarks, etc.) of the environment, transforms these characteristics into candidate landmark data, and transmits the candidate landmark data to processor  120  for processing. Processor  120  then processes the candidate landmark data to extract and identify any known reference landmarks and any new landmarks (i.e., derived landmarks) located in the environment from the characteristics in the candidate landmark data. Once the various reference landmarks and derived landmarks have been identified, processor  120  determines the spatial relationship between each newly-identified derived landmark and the reference landmarks. After the various spatial relationships are determined, processor  120  uses the spatial relationships and the known coordinates and/or position of each reference landmark in the environment to map the position of each derived landmark within the environment in generating map  1454 . 
     As discussed above, map  1454  may include previously identified derived landmarks. When system  100  is subsequently placed in the environment, the environment may have changed to include one or more characteristics that were not previously present in the environment when system  100  generated map  1454 . Here, when measurement device  110  detects the new characteristic(s) (e.g., trees, rocks, building corners, lampposts, etc.) of the environment, the characteristic(s) is transformed into candidate landmark data and transmitted to processor  120  for processing. Processor  120  then processes the candidate landmark data and uses a feature extraction and association algorithm to extract and identify the derived landmark from the characteristics in the candidate landmark data. Once the one or more derived landmarks have been identified, processor  120  determines the spatial relationship between each newly-identified derived landmark and two or more of the candidate reference landmarks (which may also include previously-identified derived landmarks that are now included in map  1454 ). After the various spatial relationships are determined, processor  120  uses the spatial relationships and the known coordinates and/or position of each reference landmark (including previous derived landmarks) in the environment to map the position of each newly-identified derived landmark, and updates map  1454  with the newly-identified derived landmark(s). 
     The process of updating map  1454  may be repeated each time system  100  is subsequently placed in the environment. In doing such, previously-identified derived landmarks may be considered reference landmarks in the present placement of system  100  in the environment. Moreover, any reference landmark not detected in a subsequent placement of system  100  in the environment may be removed from map  1454 . 
     In the situation when the environment has not changed (i.e., there are not any new landmarks from which to identify a new derived landmark), map  1454  remains unchanged (i.e., is not updated). That is, the operation of system  100  is not dependent on changes to the environment. As such, system  100  makes changes to map  1454  when changes to the environment occur, and will still function properly when changes are not detected. 
     In one embodiment, processor  120  derives the position of each landmark found in map  1454  by overlaying the determined spatial relationship data onto map  1452  or previous versions of map  1454 , respectively, and performing a “best fit” algorithm (e.g., a least squares algorithm). In this manner, the location of each reference landmark or derived landmark may be mapped and recorded in a new map  1454  or in an updated version of map  1454 , respectively. After map  1454  is generated or updated, map  1454  can be utilized to determine the position and heading/orientation of a mobile platform (e.g., a vehicle, a human, a mobile apparatus affixed to a stationary platform, etc.) as the mobile platform navigates through the environment. 
     Notably, maps  1452  and  1454  have been discussed above as being separate maps; however, various embodiments contemplate that maps  1452  and  1454  may be the same map. That is, map  1452  may be generated external to system  100  and updated as system  100  detects landmarks in the environment during future visits to the environment. 
     The following description may be helpful in better understanding the operation of system  100 . That is, the following discussion illustrates the operation and use of one embodiment of system  100  when implemented on a mobile platform  200  (e.g., an automobile, a lawn mower, a human, a mobile apparatus affixed to a stationary platform, or other similar vehicle), as illustrated in  FIG. 2 . In this embodiment, measurement devices  110  are LIDAR devices. 
     Consider a set M of known static reference points {m i } i=   N     m    in a 2D coordinate system (the map frame). As mobile platform  200  moves, measurement device  110 , which is mounted on mobile platform  200 , moves with mobile platform  200  and generates a time varying set S(t) of image points {s i } i=1   N     s   , every fixed interval of time. These image points are in the 2D coordinate frame of measurement device  110  (i.e., the LIDAR frame). If some of the reference points, belonging to a subset of M, are in the field-of-view of the measurement device  110  at the k-th time step, there will be a correspondence between this subset of M with a subset of S(t k ). Assuming that such a correspondence has been established, let x m  be the coordinate of a generic point in M that corresponds to a point with coordinate x s  in S(t k ). 
     The coordinates of these two points are related to each other through a time-varying transformation: 
         g   sm ( t )=( R   sm ( t ),  T   sm ( t )), 
     where R sm (t) is a rotation matrix representing the orientation of the LIDAR frame with respect to the map frame, and T sm  (t) is a translation between these two frames. Thus, the transformation between the two frames can be written in the following way: 
         x   s ( t )= g   sm ( x   m )= R   sm ( t ) x   m   +T   sm ( t )   (1) 
     The navigation algorithm establishes a correspondence between a subset of reference points (i.e., landmarks) in the map (map  1452  or  1454 ) and a subset of image points (i.e., data association) sensed in the environment, which is followed by optimally estimating the transformation g sm (t k )=(R sm (t k ), T sm (t k )) (i.e., localization) at every discrete measurement instant t k  of measurement device  110 . These estimates can be further refined using a suitable filter, such as the Kalman Filter, the Extended Kalman Filter, Sigma-Point Kalman Filter, particle filter, or the like filter. 
     Once the transformations R sm  and T sm  are estimated, an inverse transformation that maps the points in the LIDAR frame, S, to the map frame, M, may be established, as represented by the following equation: 
         x   m ( t )= g   ms ( x   s )= R   ms ( t ) x   s   +T   ms ( t ),   (2) 
       where: 
         R   ms   =R   sm   −1   =R   sm   T    (3) 
         T   ms   =−R   sm   T   T   sm    (4) 
     The inverse transformation can be used to generate or update a map (i.e., map  1452  or  1454 , respectively) of the environment detected by the scan of measurement device  110 . As explained above, in every time step, the algorithm performs feature or point extraction, data association followed by localization and filtering. These steps are elaborated in the following discussion. 
     The feature extraction algorithm processes the data to differentiate landmark data from the rest of the background noise and computes the position of the landmark features in the sensor data. The feature extraction algorithm also uses distinct, point like features in the data generated by measurement device  110  for subsequent data association, reference landmark identification, and localization. Distinct, point-like features (i.e., candidate reference landmarks) are extracted from the raw data generated by measurement device  110  using any threshold-based edge detection technique known in the art. 
     As discussed above, data association is the process of establishing a one-to-one correspondence between some of the reference points (i.e., landmarks) in map frame M with their image points (i.e., candidate reference landmarks) in LIDAR frame S. For purpose of illustration, one embodiment is simplified to provide a three-degrees-of-freedom solution that estimates the x- and y-position and heading of mobile platform  200 . A good estimate of the initial position and heading (i.e., “pose”) of mobile platform  200  is given. The probability of an image point x s  belonging to a reference point x m  is modeled as a Gaussian distribution given by: 
         p ( x   s   |x   m )=(1/(2πσ m ) −1 ) e   −δk(xm,xs)    (5) 
     where σ m  captures the uncertainty in the map coordinates of the reference point x m  and δ k  is the Mahalanobis distance. The image point x s  is associated with the map reference point for landmark x m  if the Mahalanobis distance δ k  (xm, xs) satisfies the equation: 
       δ k ( x   m ,  x   s )≦λ  (6) 
     where λ is a data association threshold that captures the uncertainty in the transformation g ms (x s ). 
     After data association, a subset of the image points in LIDAR frame S are associated with a subset of the reference points in map frame M for localization. For example, let the number of such points be denoted by N a , the set of these points in LIDAR frame S can be denoted by {X s   i }, and the corresponding set in map frame M can be denoted by {X m   i }, where i ranges from 1 to N a . Given these two corresponding data sets, the localization algorithm computes the rotation matrix R ms  and the translation vector T ms  that transforms a point {X m   i } to {X s   i } (see equation (1)). 
     The localization algorithm minimizes the objective function: 
     
       
         
           
             
               
                 
                   
                     
                       
                         min 
                         
                           
                             R 
                              
                             
                                 
                             
                              
                             m 
                              
                             
                                 
                             
                              
                             s 
                           
                           , 
                           Tms 
                         
                       
                        
                       
                         e 
                          
                         
                           ( 
                           
                             
                               R 
                               
                                 m 
                                  
                                 
                                     
                                 
                                  
                                 s 
                               
                             
                             , 
                             
                               T 
                               
                                 m 
                                  
                                 
                                     
                                 
                                  
                                 s 
                               
                             
                           
                           ) 
                         
                       
                     
                     = 
                     
                       
                         min 
                         
                           Rms 
                           , 
                           Tms 
                         
                       
                        
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           Ni 
                         
                          
                         
                           
                              
                             
                               
                                 x 
                                 m 
                                 i 
                               
                               - 
                               
                                 
                                   g 
                                   
                                     m 
                                      
                                     
                                         
                                     
                                      
                                     s 
                                   
                                 
                                  
                                 
                                   ( 
                                   
                                     x 
                                     s 
                                     i 
                                   
                                   ) 
                                 
                               
                             
                              
                           
                           2 
                         
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
     wherein the minimization is performed in closed form using a Singular Value Decomposition technique. Once R ms (t k ) and T ms (t k ) are estimated at time step t k , the position x(t k ) and heading θ(t k ) of mobile platform  200  with respect to the map frame M, are given by: 
         x ( t   k )= T   ms ( t   k )θ( t   k )=tan − ( R   21 ( t   k )/ R   11 ( t   k ))   (8) 
     This computation is carried out at every time step t k  corresponding to scan data generated by measurement device  110 . 
     The pose estimate, computed in the localization step described above, is further processed using filter  130 . The position and heading estimates, computed using equation (8), are used as measurements in filter  130 . Specifically, the pose estimations generated by measurement device  110  are decoupled from the estimations produced by filter  130 , and are treated as raw and noisy measurements. In this manner, a linear constant acceleration state space model can be used for slow turning vehicles moving with constant acceleration. 
     For this embodiment, the state vector of filter  130  is given by X=(x, y, θ, {dot over (x)}, {dot over (y)}, {dot over (θ)}, {umlaut over (x)}, ÿ, {umlaut over (θ)}) T , where x and y are the 2D planar coordinates of mobile platform  200  in map frame M and θ denotes the heading of mobile platform  200 . The variables with single and double dots on top are the corresponding rates and accelerations, respectively. The x and y coordinates may be expressed either in the local geodetic frame (i.e., x=East and y=North) or they can be in any arbitrary mapping frame of reference. The kinematic model of mobile platform  200  can be expressed in the matrix form: 
         X   k+1 =Φ k   X   k   +w   k ,   (9) 
     where the state transition matrix Φ k  is given by: 
                                                                1   0   0   dt   0   0   .5dt 2     0   0       0   1   0   0   dt   0   0   .5dt 2     0       0   0   1   0   0   dt   0   0   .5dt 2         0   0   0   1   0   0   dt   0   0       0   0   0   0   1   0   0   dt   0       0   0   0   0   0   1   0   0   dt       0   0   0   0   0   0   1   0   0       0   0   0   0   0   0   0   1   0       0   0   0   0   0   0   0   0   1                    
and the mobile platform pose Z k , estimated from measurement device  110  data (equation (8)) at time t k , is related to the state vector by a linear measurement model:
 
         Z   k   =H   k   X   k   +v   k    (10) 
     In equations (9) and (10), w k  and v k  represent the process and measurement noise vectors, respectively, with covariance matrices E[w   k     w     k     T ]=Q k  and E[v   k     v     k     T ]=R k , respectively. 
     Filter  130 , in one embodiment, works in two distinct phases: Predict and Update. The predict phase uses the state estimate from the previous time step to produce an estimate of the state at the current time step. In the update phase, the vehicle pose, estimated from measurement device  110  data at the current time step is used to refine this prediction to arrive at a new, more accurate state estimate. In the recursive equations given below, the notation {circumflex over (X)} ij  represents the estimate of the state at time i given observations up to, and including time j. The state of filter  130  at a given instant of time may be represented by two variables: {circumflex over (X)} ij  which is the estimate of the state at time k, and {circumflex over (P)} k|k  the error covariance matrix, which is a measure of the estimated accuracy of the state estimate. The predict and update functions of filter  130  can be represented by the following equations: 
     Predict: 
         {circumflex over (X)}   k|k−1 =Φ k   {circumflex over (X)}   k−1|k−1    (11) 
         {circumflex over (P)}   kk−1 =Φ k   {circumflex over (P)}   k−1|k−1 Φ k   T   +Q   k−1    (12) 
     Update: 
         {tilde over (y)}   k   =Z   k   −H   k   {circumflex over (X)}   k|k−1    (13) 
         S   k   =H   k   P   k|k−1   H   k   T   +R   k    (14) 
         K   k   =P   k|k−1   H   k   T   S   k   −1    (15) 
         {circumflex over (X)}   k|k   ={circumflex over (X)}   k|k−1   +K   k   ŷ   k    (16) 
     The first three components of the estimated state vector {circumflex over (X)} kk  computed in equation (16) constitute the final estimate of the position and heading of mobile platform  200  in the algorithm. 
     Once the position and heading of mobile platform  200  are estimated with sufficient accuracy, map  1454  of the environment as seen by the measurement device  110  at any instant of time can be generated. The vehicle translation vector {circumflex over (T)} sm (t k ) is the same as the estimated position vector of the vehicle and the rotation matrix {circumflex over (R)} sm (t k ) is given by: 
         {circumflex over (R)}   sm ( t   k )=cos({circumflex over (θ)} k ) sin({circumflex over (θ)} k ) −sin({circumflex over (θ)} k ) cos(θ k )   (17) 
     where {circumflex over (θ)} k  is the vehicle heading at time t k  (i.e the third component of the system state {circumflex over (X)} k|k  estimated in equation (16)). 
     From ĝ sm (t k )=({circumflex over (T)} sm (t k ), {circumflex over (R)} sm  (t k )), the inverse transformation ĝ ms (t k )=({circumflex over (T)} ms (t k ), {circumflex over (R)}(t k )) can be estimated using equations (2) and (3). Using this inverse transformation, the map location vector x m  of any newly identified landmark x s  in the field-of-view of measurement device  110  is estimated using the transformation equation: 
         x   m   =ĝ   ms ( x   s ( t   k ))=( {circumflex over (R)}   ms ( t   k ) x   s ( t   k )+{circumflex over (T)} sm ( t   k ))   (18) 
     The existing map (i.e., map  1452 ) of reference landmarks can then be updated with the new map (i.e., map  1454 ) of candidate reference landmarks generated by this method or map  1454  may be updated with derived landmarks to create an updated version of map  1454 . Such reference landmarks may come from any object “seen” by measurement device  110  during its journey through the environment. Furthermore, map  1454  may be updated during future travels through the environment so that map  1454  remains up-to-date. 
     After map  1454  is created, map  1454  can be used by mobile platform  200  while traveling through the environment. Specifically, processor  120  can identify landmarks in the data generated by measurement device  110  and associate the landmarks in the generated data with the corresponding reference landmarks in map  1454  such that the current position and heading/orientation of mobile platform  200  can be estimated. 
     While at least one exemplary embodiment has been presented in the foregoing detailed description of the invention, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or exemplary embodiments are only examples, and are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing an exemplary embodiment of the invention, it being understood that various changes may be made in the function and arrangement of elements described in an exemplary embodiment without departing from the scope of the invention as set forth in the appended claims and their legal equivalents.