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

