A trajectory planning process receives data generated by high-level
control software. This data defines positions and scan velocities. The
trajectory planning process creates sequences of constant acceleration
intervals that allow critical motions to be executed at maximum
throughput. The trajectory planning process outputs a profile. A profile
executor, using the profile output by the trajectory planner process,
generates continuous synchronized, filtered, multi-axis position and
acceleration commands that drive control servos. Time intervals generated
by the trajectory planner are quantized to be integer multiples of a real
time clock period. The trajectory planner outputs have infinite jerk, but
are smoothed by filters in the profile executor to both limit jerk and
minimize servo-tracking errors. The trajectory planner allows time for
the profile executor filters, but does not restrict fine tuning of the
shape of these filters, provided that the width of the tuned filter does
not exceed the allowed time.