-
Notifications
You must be signed in to change notification settings - Fork 402
Description
Is your feature request related to a problem? Please describe.
Currently the setup order of hardware interfaces is non deterministic in the way that when we have multiple hardware interfaces the order of: init, configure,activate is not staged.
By staged I mean that all hardware interfaces have to finish a specific stage before any hardware interface can go into the next stage
Example with two hardware interfaces
Interface A -> on_init
Interface B -> on_init
Interface A -> on_configure
Interface B -> on_configure
Interface A -> on_activate
Interface B -> on_activate
-> When all interfaces are done -> start read/write
This would help a lot in our case with sharing common hardware resources (ethercat bus master) between hardware interfaces.
Describe the solution you'd like
I suggest adding an additional flag to the configuration of the controller manager (e.g. deterministic_startup)
which enforces in the resource manager the staging procedure described above.
Describe alternatives you've considered
I currently see for our case only two alternatives:
a) Introduce a separate process which handles the setup and have the hardware interfaces communicate with that process -> But then I do not have to use ros2control at all
b) Basically introduce our own state machine in all related hardware interfaces which the startup procedure
Additional context
Questions:
- Would a PR with such a feature be appreciated ?
- Is there any big show stopper I am not aware of that prohibits implementing such a feature ?