Add low-pass filter to make robot actions smooth. Integrated into ACT and DP. #760
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this does
Adds low-pass filter (Butterworth filtering) to actions from the policy. Prevents jerky motion of the robot during eval. Tried out different techniques but the method provided noticeable improvement. I have tuned the filter parameters to be subtle and not too aggressive.
(⚡️ Performance)
How it was tested
Tested on rollouts of both ACT and Diffusion policy trained on my custom dataset. Used SO-100 Arm for my setup. Noticeable difference in the robot motion smoothness especially for Diffusion Policy.
How to checkout & try? (for the reviewer)
Try evaluating ACT and DP on your robot. This PR integrates the smoothen_actions func in ACT and DP policy implementation so there is nothing extra to be done.