We’ve made several proposals to add scheduling parameters to ROS Executor.
This post introduces updated repositories of the feature additions to match the latest versions of Jazzy and Rolling.
Background
Our previous discussion is: Adding thread attributes configuration in ROS 2 framework - Next Generation ROS - ROS Discourse.
The motivation is to make the ROS executor work in real time and on non-Linux operating systems.
To realize them, we first introduced the data definition of POSIX-style scheduling parameters in rcl
. Since this change affects a fundamental part of ROS, we have also proposed a standard, REP-2017, under peer review.
- REP-2017: https://github.com/esol-community/rep/blob/rep_for_sched_param_control_rcl/rep-2017.rst
- PR: https://github.com/ros-infrastructure/rep/pull/385
Next, we added an extension to the rclcpp
executor to specify thread parameters. Since the mechanism for calling native threads in the OS is language-dependent, we will propose guidelines for implementing this executor in the new REP.
Modified packages
- REP-2017
- Modified Executor using OS native threads
The branches of these repositories have several similar names.
The branches aligned with the latest version of ROS are sched_param/rolling
and sched_param/jazzy
.
We’ve added test items to verify functionality and integrity.
Future milestones include resuming the OSAR/OSRF review of REP-2017 and updating the reference-system.