The goal of the Rescuer agent is to rescue the robot from
problematic situations. These situations may happen due to two
reasons. First, the Pilot can lead the robot to a position with a long
obstacle ahead that cannot be easily avoided.
Second, the imprecision of the location of the
target may be too high (over a threshold
).
If the robot gets blocked, this agent asks the Map Manager to
compute a diverting target, and informs the rest of the agents about
the new target.
If the diverting target computed by the Map Manager is just a
direction (this means that the robot should cross an edge containing a
virtual landmark, as explained in Section 3.4),
the Rescuer bids for turning the robot in the given
direction. In order to have the robot moving in this direction for a
short period of time, it sets the target to be a landmark that does
not exist. However, the rest of the agents do not know that it does
not exist, therefore, they behave as if it was an existing landmark.
Thus, the Map Manager will not be able to compute its
location when asked by the Target Tracker. This latter
agent, after asking several times for the location of the target and
not receiving any answer, will set the imprecision level to 1, which
will cause the Rescuer to get active again. The rationale of
this ``trick'' is that during the time the robot has been moving, it
will have probably (and hopefully) recognized more landmarks so that
the Map Manager can compute a better diverting target.
Finally, if the Map Manager fails to compute a diverting
target, the Rescuer bids for making the robot turn around (a
random angle in
),
hoping again that with the new direction it detects landmarks that help
computing the location of the target or a diverting target.
In case the current diverting target cannot be reached, this agent
will ask for a new diverting target for the initial target.
On the other hand, if the imprecision of the target's location is too high, the agent bids for stopping the motion and starting a visual scan around the robot, trying to detect as many landmarks as possible. The scan will stop when the imprecision of the location of the target has decreased to an acceptable level, either because it has been recognized by the Vision system or because its location has been computed by the Map Manager using other landmarks' locations. Since in this situation no obstacle has been detected, the Rescuer assumes that the path to the target is not blocked, so there will not be any target change. However, if at the end of the scanning the imprecision level is still too high, it will ask for a diverting target.
This agent also performs a visual scan at the very beginning, when the initial target is given, in order to detect some landmarks and start building the map before the robot begins moving to the target. Only after the scan is completed, this agent will inform the other agents what is the target to be reached.
The bidding values for the actions required by this agent are constant
(parameter ) and should be higher than those of the other agents
(
)), since it is absolutely
necessary to execute the actions in order to continue the navigation
to the target.
© 2003 Dídac Busquets