Add low-pass filter to make robot actions smooth. Integrated into ACT and DP.
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.
Nice work! By any chance do you have videos? Before vs After ?
@Cadene The before vs after demo for action smoothing. Its more prominent for DP than ACT.
https://github.com/user-attachments/assets/7c0a3613-6ec1-4d60-9fbf-ed8aacd8c78c
https://github.com/user-attachments/assets/a33ab1dc-076a-4098-b080-6b781ff85221
Hello @vaishanth-rmrj, thanks for the PR! It seems that you committed to into the .gitignore, do you mind updating this file with only what it is needed?
@imstevenpmwork Thanks for noticing that. I have updated the .gitignore file.
This PR has been automatically marked as stale because it has not had recent activity (1 year). It will be closed if no further activity occurs. Thank you for your contributions.
This PR was closed because it has been stalled for 14 days with no activity. Feel free to reopen if is still relevant, or to ping a collaborator if you have any questions.