ros-controls / roadmap

59 stars 22 forks source link

Cascade control (simple use-case for chaining controllers) #53

Closed destogl closed 1 year ago

bijoua29 commented 2 years ago

@destogl Looks good. It will be good to get a initial proof of concept for the simple use-case and then expand further from there. Some comments:

destogl commented 2 years ago
  • If you include a controller in the chained_controlllers configuration, would it default to chained_mode being true?

  • when deactivating a controller, would you reset the chained_mode to false?

  • would controller manager expose services to enable/disable chained mode for a controller or would that be a parameter when activating a controller? Related: would you need to deactivate a controller first to change its 'chained_mode' state

The idea is to let controller manager doing internally management of chained controller depending on how they are currently used. The idea of this flag, i.e., method, is that a controller knows when it is used in chained mode and disables its subscribers. I hope this would increase clarity when using controllers in chained mode, since they can get input only from preceding controllers and not additionally from subscribers.

Although I am not 100% sure that this approach doesn't cause some limitations in specific scenarios. I am happy to adjust this after having the first implementation working.