a collision. For case (iii), the logic planner would know that a collision free path was
not available from the status message (SM), and would switch into obstacle handling
mode.
The correct behavior when dealing with a static obstacle was to drive up to it, com-
ing to a controlled stop [STO,NP,S] (refer to figure 4). If at any time the obstacle dis-
appeared, the logic would switch back to the appropriate driving mode. Once the robot
was at rest, the logic switched to driving mode, while allowing passing into oncoming
lanes of traffic [DR,P,S]. If a collision free path was obtained, then the robot would
pass the obstacle and switch back to the nominal driving state once the obstacle had
been cleared. If a collision free path did not exist, then the logic would again make sure
that the robot was stationary before continuing [STO,P,S]. At this point, either (i) the
robot was too close to the obstacle, (ii) there was a partial block and by reducing the
obstacle clearances the robot might squeeze by, or (iii) the road was fully blocked. The
first case was considered by switching into a mode where both passing and reversing
was allowed [DR,PR,S]. If a collision free path was found, the passing maneuver was
performed. If a collision was detected and persisted, the robot would again be stopped
[STO,PR,S]. At this point, reducing the obstacle clearance and proceeding with caution
was considered.
Given the size of the robot (the second largest robot in the 2007 DUC), a major
concern was maneuvering in close proximity to static obstacles. To curb this problem,
it was desirable to reduce the required obstacle clearances. First the robot switched
to aggressive mode, [STO,PR,A]. If a collision free path was found, the robot would
drive in this mode [DR,PR,A]. As soon as a path was found that satisfied the nominal
obstacle clearance, the logic switched back to [DR,PR,S]. If the robot could not find a
collision free path while in aggressive mode, it would reduce the obstacle clearances
even further by switching to bare mode [STO,PR,B]. If a path was found, it would
drive in this mode [DR,PR,B] until a path was found that did not require this mode.
The logic would then switch back to the aggressive mode [DR,PR,A]. If no collision
free path could be found, even in bare mode, the conclusion was that the road must be
blocked. At this point, the tactical planner could not complete the segment-levelgoal. In
accordance with the contigency management strategy, the tactical planner sent a failure
to the route planner, which replanned the route. If the robot was on a one-way road, the
route-planner would allow the robot to enter off-road mode, as a last resort.
Since reversing was allowed, it was possible for the robot to get stuck in a cycle of
not finding a path [STO,PR,S], then backing up and finding a path [DR,PR,S], driving
forward and detecting a collision, backing up again, etc. In an attempt to avoid this cycle
and others like it, some transitions were created to exit these loops (from [DR,PR,S])
as part of contigency management.
4 Results and Discussion
The tactical planner, and logic planner, was implemented on Alice, a modified Ford
E350 van (see figure 1). The robot was equipped with 24 CPUs, 10 LADAR units, 5
stereo camera pairs, 2 radar units, and an Applanix INS to maintain an estimate of its
global position.