-
Notifications
You must be signed in to change notification settings - Fork 491
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
Change servo collision checking parameters to dynamically update #2183
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #2183 +/- ##
==========================================
- Coverage 50.54% 50.53% -0.00%
==========================================
Files 387 387
Lines 31719 31725 +6
==========================================
+ Hits 16028 16029 +1
- Misses 15691 15696 +5
☔ View full report in Codecov by Sentry. |
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.
I went and looked at parameter updating and found this variable in the config that controls if it ever checks for updated parameters in the main loop: enable_parameter_update
. Why was this done? Shouldn't we allow users to set any parameter? If we want to have this behavior, should the collision checking code also pay attention to this too?
The collision checking code should pay attention to it -- tagged you in a separate comment. The parameter itself was done to copy how the admittance controller was set up: if this param is false, the servo loop will never update its internal parameters as a way of "locking" the system configuration. But if true, it will allow runtime changes. In the big PR that switched servo to generate_parameter_library, the dynamic updates only happened in ServoCalcs, but not in CollisionChecking |
d5bfdf0
to
a5b1057
Compare
I'd be happy to get rid of |
a5b1057
to
c04492a
Compare
0f17d59
to
cff200b
Compare
In this PR, we change the MoveIt servo parameter listener to be a shared pointer so we can listen to servo parameters in the main servo class, as well as the servo calculations and collision checking classes.
This, in turn, allows for collision checking parameters to dynamically be updated!
To test, you can directly change parameters in the servo node as follows, for example:
Closes #2178