-
Notifications
You must be signed in to change notification settings - Fork 101
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
Add EventsExecutor #303
Add EventsExecutor #303
Conversation
Rename EventQ -> ExecutorEvent
Remove ExecutorEventHandle
Rename ExecutorEventCallback -> EventsExecutorCallback
This pull request has been mentioned on ROS Discourse. There might be relevant details there: https://discourse.ros.org/t/ros2-middleware-change-proposal/15863/20 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rcutils is intended for non-ros C utilities (C collections, utils to avoid crossplatform issues, etc).
All definitions here can be moved to rmw
.
Changes here have been moved to the RMW PR: ros2/rmw#286 |
This PR introduces the changes required to implement the
EventsExecutor
design in rcutils.See design and Discourse post.
The new executor uses an events queue and a timers manager as opposed to waitsets, to efficiently execute entities with work to do.
This new executor greatly reduces CPU usage of a ROS 2 application.
See the blog post for more details on the tests that we run.
The bulk of the changes for this implementation are in the rclcpp layer, with some minor changes in other repositories (rcl, rmw, rmw_implementation) for forwarding entities, the declaration of some data types in rcutils, and finally some additional changes in the vendor specific rmw implementations..
We currently implemented this only on top of the default ROS middleware fastrtps, while we provided stubs for other middlewares.
See the main PR to rclcpp ros2/rclcpp#1416.
The current implementation does not support ROS 2 actions, which will be added in a follow up PR.
Developed by iRobot
Mauro Passerino
Lenny Story
Alberto Soragna