Skip to content

Instantly share code, notes, and snippets.

@phord
Created August 3, 2016 20:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phord/a5b424fc2207010c51339971728f1ca1 to your computer and use it in GitHub Desktop.
Save phord/a5b424fc2207010c51339971728f1ca1 to your computer and use it in GitHub Desktop.
But since you asked...
It's difficult for me to think of the concept of 'movement error' since we are so intolerant of any errors at all. I think that is only possible for us because we use steppers to move and to know where we moved. Therefore we must assume we always move to where we commanded. In a servobot with encoder feedback, they may command a movement to precise positions but they can be somewhat sloppy with it because of the motor physics involved, and they will use a PID to accelerate, decelerate, and guide their movement based on this real-world feedback.
In reality we do not have an error-free movement, either. We experience errors in the form of oscillation, "ringing" which shows up repeatedly on each layer near a sharp corner, for example. But we can also experience real slip errors where we encounter too much jerk which causes the motor to skip a step or slip too far. We control these with acceleration, and we try to limit accel to the level our printer can handle.
The Bath paper is about planning a movement. The goal is to choose a plan which minimizes jerk. If we could follow this movement we could have much better control of movement jerk (not the lookahead "jerk" mitigation, but minimizing the jerk that happens on every direction change). And if we can smooth out jerk, we can have quieter machines which do not suffer so much abuse. And maybe even the corners will not ring as much.
But this is theoretical for me since I haven't run it on a real printer. I did some tests with the simulator, but I haven't coaxed my code to fit into 32-bits reliably yet.
I contacted the author of the paper to ask for some clarification of some points. He told me that he was hoping to adapt these formulae to his 3D printer "next term" (this was in 2014), possibly for a graduate thesis. So presumably he already has, or he has already walked away from it. I don't know. My printer runs well enough now that I haven't been as motivated to experiment with this further. Also, my new printer has a bowden extruder, so mass acceleration has not been as big a problem.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment