Page 350 - Autonomous Mobile Robots
P. 350

340                                    Autonomous Mobile Robots

                                       B
                                Vector ˆ x contains the estimated location of the vehicle R and the environment
                                features F 1 ... F n , all with respect to a base reference B. In the case of
                                                                      T
                                                            B
                                the vehicle, its location vector ˆ x = (x, y, φ) describes the transformation
                                                            R
                                from B to R. In the case of an environment feature j, the parameters that
                                compose its location vector ˆ x B  depend on the feature type, for example,
                                                         F j                                  B
                                 B
                                           T
                                 ˆ x  = (x j , y j ) for point features. The diagonal elements of the matrix P
                                 F j
                                represent the estimated error covariance of the different features of the state
                                vector and that of the vehicle location; its off-diagonal elements represent the
                                cross-covariance matrices between the estimated locations of the corresponding
                                features.
                                   Recursive estimation of the first two moments of the probability density
                                           B
                                function of x is performed following Algorithm 9.1. There, the map is ini-
                                tialized using the current vehicle location as base reference, and thus with
                                perfect knowledge of the vehicle location. Sensing and feature initialization
                                is also performed before the first vehicle motion, to maximize the precision
                                of the resulting map. Prediction of the vehicle motion using odometry and
                                update of the map using onboard sensor measurements are then iteratively
                                carried out.


                                9.2.1 Initialization
                                In the creation of a new stochastic map at step 0, a base reference B must
                                be selected. It is common practice to build a map relative to a fixed base
                                reference different from the initial vehicle location. This normally requires the




                                ALGORITHM 9.1
                                EKF–SLAM
                                           B
                                   B
                                  x = 0; P = 0 {Map initialization}
                                   0      0
                                  [z 0 , R 0 ] = get_measurements
                                     B
                                                                B
                                        B
                                                            B
                                  [x , P ] = add_new_features(x , P , z 0 , R 0 )
                                     0  0                   0   0
                                  for k = 1 to steps do
                                    [x R k−1 , Q k ] = get_odometry
                                       R k
                                    [x B   ,P B  ]=compute_motion(x B  , P B  ,x  R k−1 ,Q k ){EKFpredict.}
                                       k|k−1  k|k−1               k−1  k−1  R k
                                    [z k , R k ] = get_measurements
                                    H k = data_association(x B  , P B  , z k , R k )
                                                        k|k−1  k|k−1
                                       B
                                          B
                                    [x , P ] = update_map(x B  , P B  , z k , R k , H k ){EKF update}
                                       k  k               k|k−1  k|k−1
                                                                  B
                                                              B
                                       B
                                          B
                                    [x , P ] = add_new_features(x , P , z k , R k , H k )
                                       k  k                   k   k
                                  end for
                                 © 2006 by Taylor & Francis Group, LLC
                                FRANKL: “dk6033_c009” — 2006/3/31 — 16:43 — page 340 — #10
   345   346   347   348   349   350   351   352   353   354   355