The Bang-Bang Motion Profile

The Bang-Bang Motion Profile
Courtesy of Simon Kadula via Unsplash

Prerequisites- None

When designing robots that physically move, a common task is for them to move from one point to another; often as fast as possible.

Figure 1: Diagram of a point moving from A to B. The point represents the position of a robot.

In this article, we will introduce the time optimal bang-bang motion profile and derive an equation that computes the time required to complete a move from one point to another given the distance to move $\Delta x$, the acceleration $a$, and the target velocity $v_t$.

Kinematic Equations

We will need the below two equations. For a motion with constant acceleration, these equations relate travel distance with start/end velocity, acceleration, and travel time:

$$v_f^2 = v_i^2 + 2a\Delta x \: [1]$$

$$\Delta x = v_it + \frac{1}{2}at^2 \:[2]$$

where $\Delta x$ is the travel distance, $t$ is the travel time, $v_i$ is the initial velocity, $v_f$ is the final velocity, and $a$ is the acceleration. We will not derive these equations in this article.

Constant Velocity Motion Profile

An intuitive proposal for a motion profile is to instantaneously modify the velocity of the point (from a stop to target velocity $v_t$), move it at constant velocity between points $a$ and $b$, then instantaneously bring it to a stop.

Figure 2: The constant velocity motion profile is time efficient.

Unfortunately, it is not physically possible to instantaneously transition a physical robot from stationary to moving at some velocity. A force must be applied to cause the object's speed to change via acceleration per the relationship:

$$F = ma$$

Bang Bang Motion Profile

The bang-bang motion profile conforms to physics by applying an initial acceleration until a target velocity is achieved and then applying a deceleration to slow the robot down at the end point.