In the setting of a robot soccer game, the ability to merely detect the locations of objects on the field is often not enough. Like for real soccer players, it is often essential for robots to predict future locations of the ball (or of the other players). We have used an Extended Kalman-Bucy filter (EKF)  for ball movement prediction. The EKF is a recursive estimator for a possibly non-linear system. It involves a two-step iterative process, namely update and propagate. The current best estimate of the system's state and its error covariance is computed on each iteration. During the update step, the current observations are used to refine the current estimate and recompute the covariance. During the propagate step, the state and covariance of the system at the next time step are calculated using the system's equations. The process then repeats, alternating between the update and the propagate steps.
We capture the ball's state with five variables: the ball's x and y location, the ball's velocities in the x and y direction and a friction parameter ( ) for the surface. The system is represented by the following non-linear difference equations:
The equations model the ball with simple Newtonian dynamics, where is a friction term which discounts the velocity at each time step, and is the time-step size.
The prediction equations are:
The prediction equations are derived by solving the recursive equation obtained by substituting the value of where i decreases from n to 1. We are only interested in the predicted spatial location of the ball thus we do not explicitly calculate the predicted velocity.
Through a careful adjustment of the filter parameters modelling the system, we were able to achieve successful tracking and, in particular prediction of the ball trajectory, even when sharp bounces occur.
Our vision processing approach worked perfectly during the RoboCup-97 games. We were able to detect and track 11 objects (5 teammates, 5 opponents and a ball) at 30 frames/s. The prediction provided by the EKF allowed the goal-keeper to look ahead in time and predict the best defending position. During the game, no goals were suffered due to miscalculation of the predicted ball position.