Skip to main content

Comparing Motion Profile Shapes

ShapeAccelerationJerkMove timeTypical FRC use
No profile (raw setpoint)Whatever the PID loop's gains produceUnboundedFastest, at the cost of overshoot and jerkinessRarely, only when a rough, fast snap to target is acceptable
TrapezoidalFixed levels, jumps instantly between themUnbounded at each transitionFastMost position and velocity moves, drivetrain trajectories, arms, elevators
S-CurveRamps smoothly to fixed levelsBoundedSlightly slower than trapezoidalMechanisms carrying fragile or loosely-held game pieces, moves people will physically feel

Choosing a Shape

A trapezoidal profile is the right default for most mechanisms, it's simpler to reason about, cheaper to compute, and removes the worst problems (overshoot, unpredictable timing) that come from commanding a raw, unprofiled setpoint. Reach for an S-curve specifically when the jerk at a trapezoidal profile's sharp corners causes a real problem, a game piece that shifts or falls out at the start or end of a move, a mechanism that visibly shudders, or a chain and gearbox combination taking more wear than expected.

Where This Leads

Motion profiling is the last piece of a chain that's run through this entire section so far: Open Loop Control covered predicting the voltage a mechanism needs, Closed Loop Control covered correcting that prediction against a measurement, and motion profiling covers what that measurement should be chasing, moment to moment, instead of all at once. Every layer exists because the one before it had a limitation.

None of that chain has needed to know exactly how a motor turns a voltage or a current setpoint into a push, just that it does. Motors and Commutation is up next, and grounds all of it out: where torque actually comes from, and why kVk_V and kAk_A in a feedforward model are the same constants a motor's own circuit equation predicts.

For how the roboRIO actually gets a profile's setpoints, a PID correction, and a feedforward voltage out to a motor controller in the first place, see the Hardware Communication addendum, at the very end of this section.