Here's a nice little problem that hasn't been addressed all that well - truly optimal control of multiaxis stepping motors. There are lots of CNC controllers, but they usually do speed control at the path level, not the motor level. I'd like to do it at the step level. This is useful for both robots and CNC machines. I'm building a machine that writes, with a pen, and want to write cursive letters rapidly.

The front end of the system has already hammered the path data down to a sequence of steps. You can think of these as a long file of events of the form "up", "left", "down", and "right". There are two motors, one for the X axis and one for the Y axis. Each has a minimum time between steps, and an acceleration limit, expressed as the amount that the time between steps can change per unit time.

Scheduling consists of adding a column to the file of path events which is the time to dwell before sending the next event to the motor. The dwell times should be as small as possible, given the minimum time and acceleration restrictions.

What's a good way to compute the dwell times?