A point-to-point move has to reach its goal as fast as the actuator allows without saturating the drive. The trapezoidal profile — linear segment with parabolic blends (LSPB) — does this with the simplest rule that respects both a velocity ceiling and an acceleration ceiling: accelerate at the maximum rate, coast at the maximum speed, decelerate at the maximum rate. Velocity plotted against time is a trapezoid; a move too short to reach the ceiling becomes a triangle.
From the limits and the distance alone, the plan is the minimum-time one. A second mode fixes the duration instead, which multi-axis synchronization needs: all axes must finish together, so the faster ones are slowed rather than the slowest sped up.
Rest-to-rest move of length
A ramp between rest and speed
The total time is
With
| Phase | Interval | Acceleration | Velocity | Position |
|---|---|---|---|---|
| Parabolic ramp-up | ||||
| Linear cruise | ||||
| Parabolic ramp-down |
Velocity, acceleration and the position offset are multiplied by
The acceleration
The smaller root keeps
A real root exists iff
Let
The fixed-duration plan is the alternative. It keeps
| Operation | Time | Space | Notes |
|---|---|---|---|
| Minimum-time plan | One comparison, one square root (triangle only) | ||
| Fixed-duration plan | One square root, one division | ||
| Sample | One phase branch, a few multiply-adds; no state change |
Memory is a fixed handful of scalars: start, direction, distance, acceleration, peak speed and three phase times.
Trapezoid.
| Phase | Position | Velocity | Acceleration | |
|---|---|---|---|---|
| ramp-up | ||||
| cruise | ||||
| ramp-down | ||||
| held |
The ramp-up ends at position
Fixed duration.
-
Non-positive limits. The minimum-time plan requires
$v_{max} > 0$ and$a_{max} > 0$ ; a violation is an assertion failure, not a recoverable status. The fixed-duration plan returns no result for$a_{max} \le 0$ or$T \le 0$ . -
Infeasible duration. If
$a_{max}T^2 < 4d$ the plan is rejected, never clamped; the shortest feasible duration is$2\sqrt{d/a_{max}}$ . At the boundary, single-precision rounding can push the discriminant just below zero, so plan the slowest axis with the minimum-time plan. -
Cancellation. The textbook root
$(a_{max}T - \sqrt{\cdot})/2$ loses its significant digits in single precision when$4a_{max}d \ll a_{max}^2T^2$ ; the conjugate form does not. The computed cruise time is clamped at zero. -
Zero distance. The minimum-time plan has
$v = 0$ and$T = 0$ : a zero-length profile that is at rest at the goal for every$t \ge 0$ . -
Discontinuous acceleration. Position and velocity are continuous, but acceleration jumps between
$0$ and$\pm a_{max}$ at the joins. The jerk impulses are not represented in the reported jerk and can excite structural modes; use the S-curve profile in that case.
The S-curve profile adds a jerk limit (seven segments) for continuous acceleration at the cost of a longer move. Polynomial profiles (cubic, quintic) are fixed-duration and smooth by construction but enforce no velocity or acceleration ceiling. Unequal acceleration and deceleration limits use the same construction with unequal ramp times.
- Point-to-point axis moves — servo and stepper drives, gantries, pick-and-place, gimbal slews.
- Multi-axis coordination — time-scaled or fixed-duration plans make every axis arrive together.
The S-curve profile is the jerk-limited upgrade under the same velocity and acceleration limits. The polynomial profile is fixed-time and smooth but offers no limit guarantees. The saturation rate limiter slews a changing setpoint online, whereas the trapezoid plans a whole move offline.
- Biagiotti, L. and Melchiorri, C., "Trajectory Planning for Automatic Machines and Robots," Springer, 2008, §3.2.
- Siciliano, B., Sciavicco, L., Villani, L., and Oriolo, G., "Robotics: Modelling, Planning and Control," Springer, 2009, §4.2.