next up previous
Next: Summary Up: Behavior Previous: Bottom-Up Design

Examples

To realize a Braitenberg vehicle that moves towards a target, we need the direction and the distance to the target as input. The control loop for the two differential drive motors runs on the lowest level of the hierarchy. The two actuator values used determine the average speed of the motors and the speed differences between them. We choose the sign of the speed by looking at the target direction. If the target is in front of the robot, the speed is positive and the robot drives forward, if it is behind then the robot drives backwards. Steering depends on the difference of the target direction and the robot's main axis. If this difference is zero, the robot can drive straight. If it is large, it turns on the spot. Similarly, the speed of driving depends on the distance to the target. If the target is far away, the robot can drive fast. When it comes close to the target it slows down and stops at the target position. Figure 2 shows an example where the robot first turns around until the desired angle has been reached, accelerates, moves with constant speed to a target and finally decelerates. Smooth transitions between the extreme behaviors are produced using sigmoidal functions.


  
Figure 3: Sketch of goal keeper behavior. Based on the position, speed, and the direction of the ball it decides to either block the ball or to catch it.
\begin{figure*}
\centerline{\psfig{figure=GoalKeeper.eps,width=1.0\hsize}}
\end{figure*}

This primitive taxis behavior can be used as a building block for the goal keeper. A simple goal keeper could be designed with two modes: block and catch, as shown in Figure 3. In the block mode it sets the target position to the intersection of the goal line and a line that starts behind the goal and goes through the ball. In the catch mode, it sets the target position to the intersection of the predicted ball trajectory and the goal line. The goal keeper is always in the block mode, except when the ball moves rapidly towards the goal.


  
Figure 4: Trajectories generated in the run mode of the field player. It smoothly approaches a point behind the ball that lies on the line from the ball target through the ball.
\begin{figure*}
\centerline{
\psfig{figure=FieldPlayer.eps,height=0.35\hsize}
\hspace*{10ex}
\psfig{figure=FieldPlayer2.eps,height=0.318\hsize}
}
\end{figure*}

The control hierarchy of the field player that wants to move the ball to a target, e.g. a teammate or the goal, could contain the alternating modes run and push. In the run mode the robot moves to a target point behind the ball with respect to the ball target. When it reaches this location, the push mode becomes active. Then the robot tries to drive through the ball towards the target and pushes it into the desired direction. When it looses the ball, the activation condition for pushing is no longer valid and the run mode becomes active again. Figure 4 illustrates the trajectory of the field player generated in the run mode. A line is drawn through the ball target and the ball. The target point is found on this line at a fixed distance behind the ball. The distance from the robot to this target point is divided by two. The robot is heading always towards the intersection of the dividing circle and the line. This produces a trajectory that smoothly approaches the line. When the robot arrives at the target point, it is heading towards the ball target.


  
Figure 5: Sketch of the relation between the team and the individual robots.
\begin{figure*}
\centerline{\psfig{figure=RobotTeam.eps,width=0.9\hsize}}
\end{figure*}

Each of our robots is controlled autonomously by the lower levels of the hierarchy using a local view of the world, as indicated in Figure 5. We present, for instance, the angle and the distance to the ball and the nearest obstacle to each agent. In the upper layers of the control system the focus changes. Now we regard the team as the individual. It has a slow changing global view to the playground and coordinates the robots as its extremities to reach strategic goals. For example, it could position its defense on the side of the field where the offensive players of the opponent team mostly attack and place its offensive players where the defense of the other team is weak.


next up previous
Next: Summary Up: Behavior Previous: Bottom-Up Design
Sven Behnke
1999-10-07