-
Notifications
You must be signed in to change notification settings - Fork 531
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement realtime Ruckig jerk-limited smoothing #2956
Conversation
dd29b5f
to
aee05c7
Compare
aee05c7
to
c8a26b6
Compare
c8a26b6
to
5c50516
Compare
moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/ruckig_filter.h
Outdated
Show resolved
Hide resolved
c626a08
to
5cde780
Compare
9289e90
to
ba5a493
Compare
Thanks for trying out the optional jerk limits! Hopefully the issue you raised there will go somewhere in future. There seems to be a failing clang-tidy check. Once that is clear (and if you're ready), request review and I'll give it another look. |
da91bd3
to
2278b2c
Compare
2278b2c
to
83c949c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Requesting changes because I think those CI / clang-format changes should not be part of this PR.
Also, I see this PR has components of #2954 -- do you want to merge that in first, or is the plan to combine both of these into this PR?
Either way, my comment on that other PR stands, whether the changes go in here or there first. I'd like to see validation that the fixes in the smoother logic don't break the process of switching between free-space motion planning and servo, without sudden jumps due to old smoother state.
Finally, if you do plan to switch the default panda_simulated_config.yaml
to use the Ruckig plugin, all the launch files in the demos and integration tests need to update their parameter definitions (or maybe not, if they have sensible defaults)
6bc8dbf
to
e69636d
Compare
e69636d
to
5f14008
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one tiny line to fix, LGTM
a824293
to
53de800
Compare
We both weren't really satisfied with the bit of code below so I tried 4 different ways to handle it. There is some info on how Ruckig handles this tracking scenario here: https://github.com/pantor/ruckig?tab=readme-ov-file#tracking-interface
stationary_at_target.webm
ruckig_way_maintain_current_accel.webm
zero_accel_target.webm
step_toward_zero_accel_target.webmSo i'm going with number 3 |
Description
Implement jerk-limited smoothing in Servo. This should enable large industrial robots to be controlled in a realtime fashion.
Checklist
Test Instructions
Note this change in
panda_simulated_config.yaml
:smoothing_filter_plugin_name: "online_signal_smoothing::RuckigFilterPlugin"
That's the only change the user needs to make. Then run one of the Servo demos like normal, e.g.
ros2 launch moveit_servo demo_ros_api.launch.py
ros2 run moveit_servo servo_keyboard_input