Kinematics of Player Motion

After a couple special topics posts in Sketching and Voronoi Tessellation, we take a step back and look at the basic mechanics of player motion: position, velocity, and acceleration. Understanding computation and estimation of such quantities allow us to perform more important calculations such as trajectories, coverage, and crashing.

The easiest way to capture these quantities are through the use of kinematics. Kinematics is a calculus-based representation of physical movement in the field of physics.

Basic Example: Transition

Consider a situation where a team collects the ball after a drive and score. In this example, let’s consider a Russell Westbrook drive to the basket against the San Antonio Spurs. Westbrook is able to convert the basket, with two crashing offensive rebounders. To generate spacing, the Oklahoma City Thunder spreads the court with a corner three position and a high wing, who is now sagging in after the converted score in an effort to check his man on transition. Let’s quickly illustrate this.

Screen Shot 2017-10-29 at 9.37.26 AM.png

Here, Westbrook’s momentum carries him out of bounds as a post defender collects the basketball to quickly step out of bounds. The point guard for the Spurs, Tony Parker, slips between the defenders on a curl to get a pass and initiate a fast-break in attempts to catch the Thunder defense sleeping.

In an effort to do this, realizing the sagging wing, Danny Green sets the screen on the corner three player to free Kawhi Leonard for a fast-break. This leaves the sagging wing for Oklahoma City to play catch-up. The transition immediately turns into a 2-on-1 or a 1-on-none fast break depending on the kinematics of the players on the court.


The primitive question is this: Suppose that sagging wing is Andre Roberson. Is he able to catch Kawhi Leonard? The secondary question is this: How do we adjust the offensive and defensive scheme to optimize the team’s defensive or offensive posture?

Part One: Position

The most important aspect of the above example comes down to acceleration. Acceleration is the quantification of a player’s ability to change their velocity. Similarly, velocity is the quantification of a player’s ability to change their position. Therefore, in effort to understand acceleration, we must understand a player’s velocity and, in turn, position.

A player’s position is their location on the court. This is simply the x,y-coordinate represented by some coordinate system. Typically, the origin of the basketball court is the ”lower left-hand” corner of the court. If we use feet as our unit if measurement, we then have a rectangle with a maximum value of 50 for the y-axis and a maximum value of 94 for the x-axis.

We consider position as a vector. This means we represent position by its x,y-coordinates, where the tail of the vector is the origin and the head of the vector is the player.

Screen Shot 2017-10-29 at 9.58.26 AM.png

A position vector starts from the origin and heads to the x,y-coordinate of the actual player.

Part Two: Velocity

Velocity is a vector quantity that captures the speed and direction of a player. It is viewed as the derivative of position. To be described through a derivative, the notion of time must be introduced. Here, time is defined as the quantification of the sequence between sampling between two points. In high school and college, we learned this as ”taking two points and checking the rate of change as the distance between those two points converges to zero.” Therefore, rate of change is viewed as time.

Let’s define position by the vector as:

Screen Shot 2017-10-29 at 10.05.36 AM.png

Here, r_x and r_y are the x- and y- coordinates of a player, respectively. Velocity is then defined as

Screen Shot 2017-10-29 at 10.08.56 AM.png

This definition identifies the rates of change in both the x-direction (along the sideline) and the y-direction (along the baseline). While the definition may not yield much light, especially if you’re not familiar with calculus, we want to emphasize the point that velocity is a vector that looks at the rate of change of a player.

Part Three: Acceleration

Acceleration is the quantification of changes in a player’s acceleration. For instance, if a player is stationary and starts to move, their acceleration is positive. As they speed up, their acceleration continues to be positive. However, as the player reaches their physical apex in speed (or becomes tired), they begin to slow down. While their velocity is positive, they are in reality slowing down and therefore yielding negative acceleration. The equation is given by:

Screen Shot 2017-10-29 at 10.15.21 AM

Therefore, acceleration is viewed as the second derivative of position with respect to time; as it is the first derivative of the velocity vector.

This means, ultimately, we are interested in acceleration of a player. Understanding acceleration, we immediately know how velocity changes, and in turn, understand the curvature of position. Unfortunately, we obtain only positions and need to identify a methodology for estimating velocity and acceleration.

Incorporating Time: Kinematics

As we incorporate time, we can now write the position vector as

Screen Shot 2017-10-29 at 10.26.46 AM.png

Taking the derivative, we obtain the velocity vector

Screen Shot 2017-10-29 at 10.28.00 AM.png

Similarly, the acceleration vector is given by

Screen Shot 2017-10-29 at 10.30.12 AM.png

Step One: Constant Acceleration

If we assume the goofiest motion on the court: constant acceleration, we can easily recover the equations for the derivatives. To understand this goofy motion, a positive constant acceleration means the player gets faster and faster as time plays out. Similarly, if acceleration is zero, the player maintains this exact same velocity.

Let’s define this constant acceleration as a_x for the x-direction. Here, we will look only at the x-coordinate; the y-coordinate is analogous.

The anti-derivative of a_x is given by

Screen Shot 2017-10-29 at 10.35.21 AM.png

Here, we included a term of v_x0. Why does this term exist? We are interested in understanding the velocity of a player at a time, t. Taking the anti-derivative of acceleration only gives us the change in velocity; not the velocity. To obtain the velocity, we must use an initial condition. The initial condition, v_x0, is therefore the initial velocity of a player.

Continuing in this manner, the position is given by

Screen Shot 2017-10-29 at 10.39.10 AM

These three equations: constant acceleration, anti-derivative of acceleration, and anti-derivative of velocity are the kinematics equations.

Step Two: Instantaneous Acceleration, a(t)

As acceleration is not constant, we can condition on time to obtain an instantaneous constant acceleration over the sampling period. For SportVU tracking data, this instantaneous sampling period is every 0.04 seconds. Therefore, for unknown instantaneous acceleration, we look at average acceleration over the time period of interest. This is still a time-evolving acceleration that is non-constant, however it is viewed as a piece-wise polynomial of acceleration.

Plugging this in to our equations above, we obtain the Kinematics Equations:

Screen Shot 2017-10-29 at 10.48.19 AM.png

Estimating Velocity from Position (Naive)

Since the game has already played out, we can cheat and leverage all data points from the game. We will call this the naive method. Using this methodology, we can use average velocity at a point. For instance, we are interested in Andre Roberson’s acceleration in recovering Kawhi Leonard on a fast-break.

In this case, as the break starts at time t, we do not want to measure the velocity at time t. This seems odd to say, but calculating velocity with Roberson’s position as an endpoint actually calculates a velocity prior to that position.

Instead, we take time points t+1 and t-1 and observe the positions, x(t+1) and x(t-1). Since the time steps are small, 0.04 seconds, we can get away with this approach. The average velocity is then given by

Screen Shot 2017-10-29 at 10.57.47 AM.png

Note: While we are using the t-1, t, and t+1 notation, these are simply indices. Here, t-1 = t_0, t = t_0 + 0.04, and t+1 = t_0 + 0.08.

Estimating Acceleration From Position (Naive)

In a similar fashion, we can compute average acceleration from position estimates. We can compute average acceleration in the same manner as computing the average velocity from position. In this case, we have

Screen Shot 2017-10-29 at 11.06.49 AM.png

Therefore, we must require knowledge of the movement of Roberson over a five-point sequence in order to naively recover the acceleration at time, t.

Application: Fast Break Locations

If we apply this simple methodology to the Roberson-Leonard attack, we would prefer to learn the expected acceleration curves of a player. Instead, in this case, we only have the single geo-tracks; therefore we can effectively only apply the naive method. Let’s start by isolating Roberson and Leonard on the transition:

Screen Shot 2017-10-29 at 9.34.33 PM.png

We can identify the difference in acceleration changes between Roberson and Leonard by looking directly at the separation between the player dots. We see, visually, that Leonard has a higher acceleration. However, let’s actually apply the naive method.

Screen Shot 2017-10-29 at 10.43.06 PM.png

Smoothing the acceleration using the naive method, we find that Leonard has a much higher acceleration; in part due to breaking first in the transition. We see that Roberson starts later and manages to close the gap and decelerates at roughly the rate rate as Leonard.

Screen Shot 2017-10-29 at 10.56.36 PM.png

As we see, Leonard accelerates and maintains a higher velocity than Roberson, however Leonard’s initial position allows Roberson to close in around mid-court. With the expansion into further tracking data, we can gain better insight into understanding terminal velocity of a player. That is, the maximum speed a player can reach before decelerating. If Leonard’s is indeed higher, then he may get the extra step and find himself with a lead pass from Parker for a lay-up.

Next Steps…

We saw that we can begin to model player movement by understanding their kinematics. While we used a naive method to estimate motion, ideally we would like to understand instantaneous movement as opposed to look-back movement. In this article, we used the future observations to look back at player movement. If we want to identify instantaneous movement, we should move to a more familiar model for motion: Kalman filtering (parametric hierarchical models) or particle filtering (nonparametric bootstrap hierarchical models).


3 thoughts on “Kinematics of Player Motion

  1. Pingback: Weekly Sports Analytics News Roundup - October 31st, 2017 - StatSheetStuffer

  2. Pingback: Kinematics of Player Motion by Squared Statistics | Advance Pro Basketball

  3. Pingback: Stochastic Tracking | Squared Statistics: Understanding Basketball Analytics

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.