Page 160 - Designing Autonomous Mobile Robots : Inside the Mindo f an Intellegent Machine
P. 160

Navigation as a Filtering Process

               the mobile platform itself, and those from the surface it is running on. A robot run-
               ning in snow will likely under-run the distance it thinks it has traveled.
               Longitudinal uncertainty is thus nothing more than the distance traveled, multiplied
               by an error factor. Longitudinal uncertainty is not generally symmetric. On level ground,
               a robot may tend to underrun the path but will seldom overrun it. On an uphill slope,
               this tendency is more significant yet. On a downhill slope, the robot will tend to
               overrun its path if slippage occurs during braking. Again, reasonable results can be
               gained with a symmetric assumption about longitudinal uncertainty, but the advan-
               tage of keeping separate values for the two directions is fairly strong.
               As the robot turns, the accumulated lateral and longitudinal uncertainty are simply
               converted into a vector, rotated, and converted back into lateral and longitudinal
               components. If a robot turns 90 degrees, then the lateral uncertainty will become
               the longitudinal uncertainty and vice versa.


               Lateral uncertainty
               Lateral error is predominantly accumulated as the result of driving with a heading
               error. Thus, lateral uncertainty is accumulated by multiplying the distance traveled
               by the sine of the heading error. If this accumulation is done frequently, the fact that
               the heading error is not constant can be ignored. Since heading can be approximated as
               being symmetric, so can the accumulated increments of lateral uncertainty.


               Reducing uncertainty

               Up until now, we have been mostly concerned about accumulating uncertainty. Clearly
               there must also be a way of diminishing it. When an axis accepts a fix, its uncertainty
               should also be reduced. But beware, this process is not as simple as zeroing the accum-
               ulator for the axes that were corrected.

               First, if we allow uncertainty to go to zero, we will not be able to accept any new fixes
               until we have traveled enough to accumulate new uncertainty. Since there is always
               a bit of error in sensor readings, building measurements, and other factors, we need
               to establish a minimum uncertainty threshold below, which we do not go.

               Let’s assume that we have just received a correction of the lateral position of the ro-
               bot. No matter how good our filtering is, there is always a finite chance that this
               correction is not valid. If we reduce our uncertainty too much, we may lock our filter
               into this correction and refuse to believe the correct data when we next receive it.





                                                       143
   155   156   157   158   159   160   161   162   163   164   165