Page 309 - Introduction to Autonomous Mobile Robots
P. 309
294
Path planning 0.001 Hz Chapter 6
Range-based obstacle avoidance 1 Hz
Emergency stop 10 Hz
PID speed control 150 Hz
Figure 6.19
Sample four-level temporal decomposition of a simple navigating mobile robot. The column on the
right indicates realistic bandwidth values for each module.
Spatial locality. Hand in hand with temporal span, the spatial impact of layers increases
dramatically as one moves from low-level modules to high-level modules. Real-time mod-
ules tend to control wheel speed and orientation, controlling spatially localized behavior.
High-level strategic decision-making has little or no bearing on local position, but informs
global position far into the future.
Context specificity. A module makes decisions as a function not only of its immediate
inputs but also as a function of the robot’s context as captured by other variables, such as
the robot’s representation of the environment. Lowest-level modules tend to produce out-
puts directly as a result of immediate sensor inputs, using little context and therefore being
relatively context insensitive. Highest-level modules tend to exhibit very high context spec-
ificity. For strategic decision-making, given the same sensor values, dramatically different
outputs are nevertheless conceivable depending on other contextual parameters.
An example demonstrating these trends is depicted in figure 6.19, which shows a tem-
poral decomposition of a simplistic navigation architecture into four modules. At the lowest
level the PID control loop provides feedback to control motor speeds. An emergency stop
module uses short-range optical sensors and bumpers to cut current to the motors when it
predicts an imminent collision. Knowledge of robot dynamics means that this module by
nature has a greater temporal horizon than the PID module. The next module uses longer-
range laser rangefinding sensor returns to identify obstacles well ahead of the robot and
make minor course deviations. Finally, the path planner module takes the robot’s initial and
goal positions and produces an initial trajectory for execution, subject to change based on
actual obstacles that the robot collects along the way.