We have a motion platform (camera - pan & tilt) that is controlled by a user using a joystick (so the demand inputs are pan & tilt velocities).
The platform itself uses stepper motors, so we have a control loop in our micro which handles the movement. It can either run towards the demanded speed (joystick) or move to absolute positions, in both cases taking into account accel/decel curves, speed limits/targets and movement limits (end stops).
What we want to implement is a record-and-playback of a sequence of movements executed by the user under joystick control. This presents a problem, as the user is giving us velocities (pan right 50% speed) at irregular time intervals and will expect the camera to smoothly replay the movement whilst also hitting the same positional targets they hit during the "recording" - at 50x zoom you have to be very accurate, a few steps off and you're pointing an entire screen away from what you're supposed to be looking at.
I believe this puts basic algorithms such as just recording changes in demand velocity & the time they occur as the potential for errors (especially cumulative errors on complex sequences) is too high.
There are a number of ways I can think of of achieving this, but they all seem quite cumbersome / inelegant and potentially memory-intensive for a small embedded environment (imagine recording position and speed 10 times per second for 60 seconds) and I have the feeling I'm missing something or going over old ground solving a problem that's already been solved 100x before, for example in industrial robotics.
Any thoughts, links, reading recommendations welcome!