Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Async controllers #604

Closed
bmagyar opened this issue Jan 3, 2022 · 6 comments
Closed

Async controllers #604

bmagyar opened this issue Jan 3, 2022 · 6 comments
Assignees

Comments

@bmagyar
Copy link
Member

bmagyar commented Jan 3, 2022

Motivation

An asynchronous controller is a controller that for some reason cannot (or we don’t want to) perform the operations needed in an update() call.
For instance if ros control is running at 100Hz, the sum of the execution time of all controllers update() calls must be below 10ms. If a controller requires 15ms it cannot be executed synchronously without affecting the whole ros control update rate.

For more, please see ros-controls/roadmap#48

@bmagyar bmagyar self-assigned this Jan 3, 2022
@bmagyar bmagyar moved this from Later to Todo in Roadmap / Features Jan 3, 2022
@bmagyar bmagyar moved this from Todo to In Progress in Roadmap / Features Nov 16, 2022
pac48 pushed a commit to pac48/ros2_control that referenced this issue Jan 26, 2024
)

* Fix github links

* Add local github_url for sphinx

(cherry picked from commit 334e4f2ace819c9912ccd4f5e63c342648b25fc5)

Co-authored-by: Christoph Fröhlich <christophfroehlich@users.noreply.github.com>
@FranekStark
Copy link

Hi, may I ask what is the status on that?
For many hierarchical controllers, which involve an optimization problem being solved at a lower frequency, this feature would be really needed.

@saikishor
Copy link
Member

Hi, may I ask what is the status on that? For many hierarchical controllers, which involve an optimization problem being solved at a lower frequency, this feature would be really needed.

Hello @FranekStark!

you already have the async controllers implemented. We have a new implementation recently merged and released to rolling and jazzy, and we also have an old implementation. You can have it by simply setting the is_async parameter to true for the controller and remember to set the appropriate controller update rate needed for your optimization framework

@saikishor
Copy link
Member

#1489 should solve your issue :)

@github-project-automation github-project-automation bot moved this from In Progress to Done in Roadmap / Features Oct 30, 2024
@FranekStark
Copy link

@saikishor Thanks for you fast clarification! The documentation is a bit sparse on that, so I was a bit confused. :)

@christophfroehlich
Copy link
Contributor

@FranekStark Contributions to control.ros.org are very welcome, what would you like to add to make that clear? And where (ros2_control, ros2_controllers, a new demo?)

@FranekStark
Copy link

@christophfroehlich I guess under ros2_control/concepts, a document that explains how the scheduling of the controller updates works, would help a lot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

4 participants