Hi, I have a question about the intended design of per-controller update_rate in ros2_control.
Currently, a controller can specify its own update frequency through YAML:
controller_manager:
ros__parameters:
update_rate: 1000
stand_static_controller:
ros__parameters:
update_rate: 50
This works when the update rate is known before configuration. However, for some controllers, the actual update frequency may only be known during on_configure(), after reading and validating other parameters.
My concern is that update_rate seems to be treated as a static parameter used by the controller manager for scheduling. Therefore, changing the controller's update_rate parameter inside on_configure() may not reliably affect scheduling.
Questions:
- Is per-controller update_rate intended to be known before on_configure()?
- If a controller sets its own update_rate in on_configure(), will controller manager use the updated value?
- Is there a recommended API for dynamically setting a controller's update rate during configuration?
- If not supported, should controllers instead run at the manager frequency and implement internal timing/decimation using the period argument?
Thanks!
Hi, I have a question about the intended design of per-controller
update_rateinros2_control.Currently, a controller can specify its own update frequency through YAML:
This works when the update rate is known before configuration. However, for some controllers, the actual update frequency may only be known during on_configure(), after reading and validating other parameters.
My concern is that update_rate seems to be treated as a static parameter used by the controller manager for scheduling. Therefore, changing the controller's update_rate parameter inside on_configure() may not reliably affect scheduling.
Questions:
Thanks!