-
Notifications
You must be signed in to change notification settings - Fork 312
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
Enable non-loaded hardware components after start of CM. #1049
base: master
Are you sure you want to change the base?
Conversation
This pull request is in conflict. Could you fix it @destogl? |
1 similar comment
This pull request is in conflict. Could you fix it @destogl? |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1049 +/- ##
==========================================
+ Coverage 89.29% 89.41% +0.11%
==========================================
Files 130 130
Lines 14523 14559 +36
Branches 1258 1259 +1
==========================================
+ Hits 12969 13018 +49
+ Misses 1085 1077 -8
+ Partials 469 464 -5
Flags with carried forward coverage won't be shown. Click here to find out more.
|
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 see the necessity of this change. I think it would be needed at some point.
I was thinking if there is a way to get this into without having this breaking change. I thought of the following. If you think this breaking change is OK, then simply ignore them.
-
Maybe we can add a method called "blacklist_components" or "skip_components" and use this information inside the logic of the existing method. This way we won't break any API.
-
Maybe we can also extend the information parsed from the URDF to
HardwareInfo
to also have a desired state. This way we simply update the parser and that's it
@@ -7,6 +7,15 @@ controller_manager: | |||
} | |||
|
|||
hardware_components_initial_state: | |||
not_loaded: { |
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.
not_loaded: { | |
unloaded: { |
Can we name this unloaded
instead of not_loaded
, in the different parts of code. What's your opinion?
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 am open to it. Althrough for me personaly, not_loaded
is clearer, unloaded
is more for unload
(verb) - but can change, no problem.
@bmagyar, @christophfroehlich what do you think about this?
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.
Sure. I don't have a strong opinion here. If they are fine, all good :)
Do you mean here that we have a method
I would not necessarily put desired state to URDF, as this is more “dynamic” parameterization part. I mean it is definitely possible, but this would add some additional parameters to XACRO files, and we have already usually about 15–20 parameters 😄 |
Thanks for the explanation @destogl |
The PR introduces an option to provide "non_loaded" option for hardware components when starting controller manager.
One example when this is useful is when running multiple controller managers in multiple machines or in multiple environments for separate control of different subcomponents. This way, you can still stick to one
robot description
with allros2_control
tags and then load only hardware to the controller manager who is required for the particular subsystem.Downstream PRs
Question
Should we here change the API or add this change as new method and from the old method call the new one with the default argument?