Results

The platform was tested in an agent that is essentially a boat that navigates in a canal, follows some buoys, and finally arrives at a dock. This scenario shows examples of the conflicting situations mentioned in the previous section. The behaviors implemented are obstacle avoidance, docking, buoy tracking and wandering. The boat has three sensors: blob-finder, position and sonar. The position sensor reports current speed and turn-rate and acts as the effector by changing its values. The simulation was done using the player-stage package. Figure 1 shows a snapshot of the simulation with the boat tracking the buoys (red circles) to its left. The thick black lines are the borders of the canal. The green rectangle at the lower left corner represents a dock.

Figure 1

Figure 1. Player-stage simulation showing the boat tracking the buoys.

While navigating the canal, the boat can find itself in situations where more than one behavior is active and trying to control the boat. Thanks to the voting scheme, the votes are weighted and summed according to their priorities and an appropriate value is computed. In Figure 2 we can see the boat changing orientation in response to seeing the dock but still at a safe distance from the buoy. The boat is able to avoid collision with the buoy because the obstacle avoidance behavior is still active.

Figure 2

Figure 2. Boat avoiding collision with the buoy, tracking it and orienting itself to the dock.

Once there are no more buoys to track, the boat heads to the dock. When the docking behavior detects that the boat is getting closer to the dock, it reduces the speed. Once the boat is close enough to the dock, a conflict is generated between the docking behavior and obstacle avoidance. Docking wants to get closer to the dock but obstacle avoidance pushes the boat away from it. In situations like this, a specialized behavior like docking should have higher priority than obstacle avoidance. Once the boat is at an appropriate distance, the docking behavior increases its priority level to the maximum-priority and therefore the boat can finish the maneuver. This is an example of conflict resolution through the use of priorities.