No version for distro humble. Known supported distros are highlighted in the buttons above.
Repository Summary
Checkout URI | https://github.com/cellumation/cm_executors.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-07-11 |
Dev Status | MAINTAINED |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
cm_executors | 28.3.1 |
README
Cellumation Executors
A ROS2 packages providing alternative executor implementations. Currently only one executor is provided, the EventsCBGExecutor.
Features
- Compared to rclcpp::experimental::EventsExecutor
- Multithread support
- Support for mixing timers using different clocks (ROS_TIME/SYSTEM_TIME/STEADY_TIME)
- Comparable performance in one thread mode
- 10-15% less CPU usage than rclcpp::SingleThreadedExecutor and rclcpp::MultiThreadedExecutor
Known bugs
- If the process is constantly overloaded and can not process the subscriptions timers etc, over time the events bag log will grow unbounded.
Usage
#include <cm_executors/events_cbg_executor.hpp>
int main(int argc, char ** argv)
{
rclcpp::init(argc, argv);
// multithreaded mode, use at least 2 thread or as many threads as processor cores detected
int numThreads = 0;
// Single threaded mode, has better latencies because of less context switches
//int numThreads = 1;
rclcpp::executors::EventsCBGExecutor executor(rclcpp::ExecutorOptions(), numThreads);
// add nodes etc
executor.spin()
}
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Contributors must sign-off each commit by adding a Signed-off-by: ...
line to commit messages to certify that they have the right to submit
the code they are contributing to the project according to the
Developer Certificate of Origin (DCO).
No version for distro kilted. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.