[RFC] set initial controller state via configuration - #3489
[RFC] set initial controller state via configuration#3489christianrauch wants to merge 1 commit into
Conversation
saikishor
left a comment
There was a problem hiding this comment.
I'm not sure if we should go down this road, at the end someone should load the controller and all and then you can always activate them as a group
cb3b293 to
c98e463
Compare
Yes. In this case, this "someone" would be the controller manager itself. The controller manager is already activating the hardware via the resource manager. So activating the controllers would be the next logical step. |
We are settling them up because without that there are no interfaces up and moreover, the hardware interfaces are limited and predefined in the URDF, but that's not the. Ade with the controllers, they are dynamic and you can load them at any point of time. |
You can still continue to use the services to set the states. This PR is not touching that functionality. It only adds the option for the controller manager to set the states at initialisation without a separate service call. If hardware components are predefined in the URDF and started automatically, and controllers are predefined in the controller manager configuration, why shouldn't there be an option to load, configure, or activate them as well? IMHO, it is very useful to have broadcasters or sensor processing/filtering nodes, that are permanently active, to start right at the beginning. In the same way that we currently do not have to use |
Description
This is a proposal to add a new parameter
initial_state, next totype, that allows the controller manager to set controller states (unconfigured,inactive,active) right after initialisation. The advantage of this is that you can start load, configure, or start controllers immediately, without requiring an external service call.Example:
Using the configuration
with:
starts the controller manager and the controllers almost instantly:
Fixes # (issue)
Is this user-facing behavior change?
Yes.
Did you use Generative AI?
No.
Additional Information
Controller configuration is not yet implemented. The user-facing change is only the addition of
initial_state. Configuration parameters would be provided in the same way they are now.TODOs
To send us a pull request, please:
colcon testandpre-commit run(requires you to install pre-commit bypip3 install pre-commit)