Skip to content

Question: How to dynamically configure a controller's update_rate during on_configure()? #3267

@skywoodsz

Description

@skywoodsz

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!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions