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

[FEA] Add rclcpp::waitset scheduling policy and compares with rclcpp::executors. #148

Open
ZhenshengLee opened this issue Jun 24, 2024 · 0 comments

Comments

@ZhenshengLee
Copy link

Is your feature request related to a problem? Please describe.

waitset is a scheduling policy without executor in rclcpp to get a deterministic message handling, see ros2/rclcpp#1047

this user-level wait set mechanism later was developed as APEX_OS_POLLING_SUBSCRIPTION communicator, which was published(but not opensourced) in roscon2023 realtime workshop, https://www.apex.ai/_files/ugd/984e93_54790d76c0574748901a425555320b8a.pdf , which let us know the possibility of improving realtime performance.

but the rclcpp::waitset is enough to use, see example https://github.com/ros2/examples/tree/rolling/rclcpp/wait_set and performance test https://gitlab.com/ApexAI/performance_test/-/blob/master/performance_test/plugins/ros2/rclcpp_waitset_communicator.hpp

as reference system is such a project as a prototype to profile executors. I request to add rclcpp::Waitset support. which will help to:

  • guide the community to use waitset in typical robotics system.
  • check the actual improvementes by waitset comparing to default executors in rclcpp
  • improve the original impl of waitset in rclcpp.

Describe the solution you'd like

A good start point should be the code here.
https://gitlab.com/ApexAI/performance_test/-/blob/master/performance_test/plugins/ros2/rclcpp_waitset_communicator.hpp

Describe alternatives you've considered

no

Additional context

the https://github.com/ros-realtime/ros2_realtime_benchmarks would provide benchmarks of rclcpp::waitset firstly before detail impl in the reference system.

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

No branches or pull requests

1 participant