[Servo] Fix stop callback, delete pause/unpause mode#2139
[Servo] Fix stop callback, delete pause/unpause mode#2139henningkayser merged 4 commits intomoveit:mainfrom
Conversation
|
Actually, I misunderstood something here. Not a bug. |
Pull request was closed
|
Can you leave a comment so this doesn't happen again? |
|
I un-convinced myself and have a more principled fix that actually does stop the node and the internal servo + collision checking calculations. Check this revamped version? |
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #2139 +/- ##
==========================================
- Coverage 50.50% 50.44% -0.06%
==========================================
Files 387 387
Lines 31823 31776 -47
==========================================
- Hits 16070 16026 -44
+ Misses 15753 15750 -3
☔ View full report in Codecov by Sentry. |
AndyZe
left a comment
There was a problem hiding this comment.
Code looks good, must test it.
|
I find one issue when testing. Call Per this PR a couple days ago, |
That seems like a bug in the other PR because the JTC / vector publishers are inside an If you want the behavior you described, it's the calls to |
|
Hmm. Can you think of any reason not to just delete the |
I can't, but I don't have as much experience using Servo compared to other users. If there is no value in keeping the robot publishing (stay at current joint state) commands, then deleting pause/unpause seems good to me. Although we might want to keep around some deprecation behavior for a bit... |
|
There are a couple reasons to use
I'd recommend to delete |
That's fine by me -- can you make those changes? Up to you if you want to use this PR or a new one, just let me know. |
|
On further testing, I still see some "joint jump" behavior when Servo resumes from a paused state but not from a stopped state. I'll use this same PR to delete |
c6da8d3 to
5e3aa2c
Compare
|
No, please don't delete low-latency mode! We need it for our Gazebo config, since for other limitations we don't have the Servo node running with sim time. The limitation is: We have a node that doesn't use the sim clock publishing commands to servo. |
|
OK. Bummer. It makes things so complicated. Will revert it. |
d3d290e to
b4e7009
Compare
henningkayser
left a comment
There was a problem hiding this comment.
This looks much better to me. @AndyZe are you good with this approach?
I plan to test this w Studio today, now that I'm back from vacation. If this works well we can merge |
|
@AndyZe @henningkayser this also worked for me on Studio, so we can merge it. Although,I had to fight through some issues in the switch to (@ibrahiminfinite FYI) |
Co-authored-by: AndyZe <andyz@utexas.edu>
|
Thanks @JafarAbdi! Pinging @ibrahiminfinite too (GSOC coder) |
|
Maybe we should open up a separate issue to discuss this -- but hopefully there is some state that needs to be unset/reset when executing Possibly the current state and smoother, which is initialized in the constructor of |
The current and previous state variables need to be updated, but they are already updated in resetLowPassFilter(current_joint_state_);The issue is possibly due to the smoother still having its state as the robot state when EDIT : I guess the "right" way to do the filter update is by calling the |
Description
This PR fixes the stop callback (
stopCB()) in the MoveIt Servo node implementation by actually ensuring that theservo_calcsandcollision_checkingsub-components are stopped (not paused) when the stop service is triggered.