You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some time ago, I introduced the CommandBuffer class to act as a single-element buffer for high-frequency commands, mostly devised for CSP mode (IPositionDirect):
This feature allowed to decouple the rate of incoming commands (those flowing through the YARP network) from the CSP rate (i.e. commands sent via CAN to the iPOS drives) while also performing linear interpolation (LERP). Prior to that, clients needed to send IPositionDirect commands at exactly the same rate as --syncPeriod; otherwise, a sloppy behavior was to be expected.
I observed that this can be further improved as the behavior is still far from ideal when commands flow irregularly and in lower frequencies. I suggest a dual mechanism to achieve this:
Spline interpolation via higher-order polynomials, i.e. (beyond linear ones) cubic and perhaps even quintic polynomials. I'm also thinking of minimum jerk trajectory generators, see this YARP implementation for Gazebo: hpp, cpp.
The text was updated successfully, but these errors were encountered:
Some time ago, I introduced the CommandBuffer class to act as a single-element buffer for high-frequency commands, mostly devised for CSP mode (IPositionDirect):
yarp-devices/libraries/YarpPlugins/TechnosoftIpos/CommandBuffer.hpp
Lines 11 to 30 in 42b3091
(implementation)
This feature allowed to decouple the rate of incoming commands (those flowing through the YARP network) from the CSP rate (i.e. commands sent via CAN to the iPOS drives) while also performing linear interpolation (LERP). Prior to that, clients needed to send IPositionDirect commands at exactly the same rate as
--syncPeriod
; otherwise, a sloppy behavior was to be expected.I observed that this can be further improved as the behavior is still far from ideal when commands flow irregularly and in lower frequencies. I suggest a dual mechanism to achieve this:
The text was updated successfully, but these errors were encountered: