CMU RoboSoccer
Small Real Robot Team Homepage

Back to the CMU robotic soccer main page
CMUnited'97 small robots


Manuela Veloso, Michael Bowling, Sorin Achim, Kwun Han, Peter Stone.
CMUnited-98 Robot Team Members

CMUnited'98 is the Champion of the RoboCup'98 Small-Robot League!

  • The tournament involved 11 teams from around the world.
  • Our combined score after 5 games was 25-5.
  • The results of the games can be found on the RoboCup website.

Team Description

Although building upon its predecessor CMUnited-97 RoboCup'97 Champion, CMUnited-98 uses entirely new hardware and new software to implement our new motion and strategy algorithms.
The description below highlights the novel contributions of CMUnited-98. We refer to our previous CMUnited-97 team both to point out similarities and to point out differences.

Notice: In the diagrams used below, our robots are depicted in blue and opponents in yellow.

Robot Motion

The goal of our low level motion control is to be as fast as possible while remaining accurate and reliable. This is complicated by the lack of feedback from the motors, forcing all control to be done using only visual feedback. In addition we integrated obstacle avoidance and anticipation at the lowest level of control.

These goals were achieved by a reactive control mechanism that directs a differential drive robot to a target configuration. Though, based on CMUnited 97's control, there has been a number of major improvements. Besides just the integration of obstacle avoidance, the target configuration for the motion planner has been extended. The target configuration includes not only a cartesian position, but also a direction that the robot is required to be facing when arriving at the target position. In addition, this goal configuration can actually be a function of time to allow for the controller to reason about anticipation.

Braitenburg Control

Obstacle Avoidance

Obstacle avoidance was also integrated into the motion control. This is done by adjusting the target direction for the robot based on any immediate obstacles in its path. This adjustment can be seen in Figure 1. If a target direction passes too close to an obstacle, the direction is adjusted to run tangent to the allowed clearance for that obstacle.

Figure 1: Obstacle Avoidance.

Since the motion control mechanism is running continuously, the obstacle analysis is constantly replanning obstacle-free paths. This continuous replanning allows for the robot to handle the highly dynamic environment and immediately take advantage of short lived opportunities.

Moving Target (Anticipation)

A very simple extension of this control algorithm allows explicit reasoning about anticipation. In addition to the control formula the control algorithm also provides an estimate of the time to reach the goal. Given a target configuration that is a function of time, you can simply step forward through time to find a point in the future where the configuration is reachable in that amount of time. The speeds are then scaled to reach the target configuration at the exact time. An example of this is shown in figure 2, where the goal is to hit the moving ball. By using the estimate of time to reach the goal, the algorithm looks ahead in time until it finds a location where it can reach the target in the alotted time.

Figure 2: Anticipation of a Moving Target.

Individual Behaviors

Shoot, Pass, and Intercept

Due to the extended target configurations that the low level control can handle, these individual behaviors can be implemented very easily. Shooting and passing can be implemented by simply setting the target configuration to be the ball's position with the desired orientation to be either towards the goal or a teammate. Interception is achieved simply by specifying the ball's position as a function of time, using the estimate of its velocity to predict is trajectory.


The behavior of the goalkeeper is similar to CMUnited '97's goalie. The goalie moves parallel to the goal line directly in front of the mouth of the goal. It uses an improved positioning that selects the position that minimizes the the largest portion of unobstructed goal area. This is done by finding the location that bisects the angles of the ball and the goal posts (See Figure 3.)

Figure 3: Goalie Positioning.
As with CMUnited '97, when the ball is moving fast the goalie moves to the ball's predicted point using the estimate of the ball's velocity.


The goal for our defender was two-fold:
  1. Stop our opponents from scoring.
  2. Don't endanger our own goal.
To achieve these ends three behaviors were implemented for the defender. Blocking , is similar to the goaltending behavior except it positions itself further from the goal (see figure 4.) Clearing tries to push the ball to the other half of the field. It does this by finding the largest (angular) direction free of obstacles (opponents and teammates) that the robot can push the ball towards. The last behavior, annoying , is somewhat similar to the goalkeeping behavior except the robot tries to position itself between the ball and the opponent nearest to it.

Figure 4: Blocking the goal. Figure 5: Clearing the ball. Figure 6: Annoying the opponent.

Selecting which of these behaviors is used is very important to the effectiveness of the defender. For example, clearing the ball when it's close to our own goal can often lead to scoring in our own goal. We used the decision tree heuristic in Figure 7 to select which action to perform based on the current state.

Figure 7: Selecting the defender's behavior.

"Ball in Front" will make sure the defender does not try go around the ball to clear it out, possibly pushing it towards its own goal. "Safe to Clear" tests wether the open area to clear the ball is large enough, so the clearing attempt wouldn't be intercepted.

Team Behaviors


    Decision Theoretic Action Selection

    Dynamic Formations (SPAR)

    Figure 8: Avoids blocking a shot. Figure 9: Avoids bad passes. Figure 10: Strategic position.


Michael Bowling
Last modified: Mon Feb 19 12:56:00 EST 2001