Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

cm_executors

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

CircleCI GitHub

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).

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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)](https://developercertificate.org/).
Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository

Repo symbol

cm_executors repository