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

Chapter 13

            Avoiding pain and humiliation

            If the robot is operating from scripted path programs, then these programs will con-
            sist of short paths that will be concatenated by a planner to take the robot from one
                                                     2
            place to another at the lowest possible cost .
            Figure 13.1 shows a simple case of path segment navigation. For example, the path
            between G and E is described in a program script we will call path GE. It is clear that the
            robot can get from its current position at node G to node A most quickly by con-
            catenating paths GE, ED, and DA, or by concatenating GE, EB, and BA. It could
            also use a more circuitous route of GE, EF, FC, CB, and BA as an alternative if the
            shorter paths are unavailable.

            Virtual danger

            Normally the base cost for a given path segment is initially a simple function of the
            calculated time required to transit it. As the robot runs the path, the actual time
            that is required to transit it may be longer than calculated. For this reason, it is a
            good idea to modify the calculated transit cost by a weighted average of recent
            transit times. An easy way to do this without saving an array full of time values is:

                          Transit_Time = ((1–TC) * Transit_Time)  +  (TC * New_Time)
            Here, TC is a number greater than zero but less than one. TC is the time constant
            factor for how aggressively the smoothing function tracks the newest transit time.
            For example, if TC is 0.1, then the transit time will be 10% of the latest value and
            90% of the historical value. This method of weighted averaging is not only fast and
            efficient, but also it gives more importance to recent data. To this updated transit-
            time cost, we can add a danger cost.

                          Path_Cost = Transit_Time + Danger_cost

            Notice that the units here are arbitrary as we are merely looking for numbers to
            compare between paths. If we keep the Path_Cost units and the Danger_Cost units
            in the same time units as the Transit_Time, then we don’t have to worry about
            translation factors and calculations run that much faster.








            2  See Chapter 8 for a more comprehensive description of path programming.



                                                   194
   206   207   208   209   210   211   212   213   214   215   216