Explain the CHANGELOG v4.4

Version 4.4 has been released! This time, we’ve introduced an FIR filter for position and velocity inputs. It can be used to address different types of problematic behavior, and we’ll discuss two of the more prevalent:
-
Cyclic mode setpoint profiling.
-
Communication jitter and input smoothing.
Cyclic mode setpoint profiling
Other manufactures may refer to this as a “simple internal profiler” or “setpoint interpolation”, but the effect is to interpolate the command up to 4 khz for each control cycle, across the entire command cycle.
It might help to have an example:
If your master is sending a new position to the servo node at 1 kHz with a constant speed, the command (incrementing 4 ticks every millisecond) would look something like this: …20, 24, 28, 32… updated every millisecond.
You can see how every successive position update introduces a 4-tick step. Although these steps seem tiny and fast, a well tuned position controller is able to partly or fully follow them – especially when features like velocity feedforward are active. A few tics of deviation may be neglectable for your trajectory – however the practical effect resulting from that is easily perceivable: It’s the sound! You can hear this effect as a kind of “whining” tone of constant high frequency that appears while moving in position control mode (it will disappear under velocity control). The faster you move, the louder it’ll be.
Our goal is to reduce these steps by increasing the position a smaller amount every control cycle. This will provide a smaller step to the controller which will allow tighter tuning without the noise.
By setting the FIR filter order to 3 (implying 4 so-called “taps”), we are telling the servo drive that we intend to update the command every millisecond, and we wish the trajectory interpolator to consider the 4 control cycles between updates. The resulting trajectory from the perspective of the controller looks like 20, 21, 22, 23, 24, 25, 26, 27, 28… This is interpolating the command trajectory, resulting in a smoother reference that is upsampled to the native speed of the controller!
Fantastic. So our default has been set to 3. If you aren’t running your controller at 1 kHz, you should tweak this value to match. See documentation for details.
Communication jitter and input smoothing
If your master isn’t synchronized with the distributed clock, the clocks of the individual servo drives and the network master will drift apart from each other, producing a command beat that can drastically lower performance. One mitigation strategy is to use the FIR filter set to a fairly high value to smooth the trajectory. This will result in behavior that will allow you to tune your controller sharply. If your application allows for the small trajectory position deviations that can result from filtering the input, this is a good option.
And more!
Oh, not to forget, the Halt bit now functions in homing modes as well. Lots of bugs from v4.2 were also fixed, so take the time to upgrade and discover the performance improvements!
Let us know what you think. We’ll be here to help.