Developers working with ROS 2 often face unpredictable message timing, especially in safety-critical systems. The RTI Scheduler addresses this by enforcing deterministic execution of time-sensitive tasks. Introduced by Apex.AI in 2020, this open-source framework has become a key tool for autonomous driving and industrial robotics.
Recent Updates and Compatibility with ROS 2 Releases
The RTI Scheduler has evolved alongside ROS 2. In 2023, updates improved compatibility with the Humble and Iron releases. These changes ensured the scheduler works with the latest ROS 2 executor models. Developers can now integrate it more seamlessly into existing projects. The scheduler remains actively maintained on GitHub under the Apache 2.0 license. com/” rel=”noopener noreferrer” target=”_blank”>RTI Scheduler
Origin Story: How the RTI Scheduler Was Born
The RTI Scheduler was first presented at ROSCon 2020 in a virtual session. Key developers Ralph Lange and Dejanira Araiza-Illan from Apex.AI led the effort. It emerged from the ROS 2 Real-Time Working Group, which aims to make ROS 2 suitable for industrial and automotive use. The scheduler uses a fixed-priority preemptive policy, a standard in real-time systems.
What Is Confirmed and What Remains Unverified
It requires a real-time Linux kernel for optimal performance. However, claims about its performance on non-real-time kernels remain unverified. Some users report improved CPU utilization with multi-threaded execution, but independent benchmarks are limited.
Common Misconceptions About the RTI Scheduler
A common misconception is that the RTI Scheduler works out of the box with any ROS 2 setup. In reality, it requires specific kernel configurations and may need custom integration. Another myth is that it eliminates all latency. While it reduces jitter, it cannot guarantee deadlines if the system is overloaded. The scheduler is not a silver bullet but a tool for deterministic scheduling.
| Feature | RTI Scheduler | Standard ROS 2 Executor |
|---|---|---|
| Scheduling Policy | Fixed-priority preemptive | Callback-based, non-deterministic |
| Latency Jitter Reduction | Up to 90% | Baseline |
| Multi-threaded Support | Yes | Limited |
| Real-Time Kernel Required | Yes | No |
Frequently Asked Questions
What is the RTI Scheduler?
The RTI Scheduler is a real-time scheduling framework for ROS 2 that ensures deterministic message delivery. It prioritizes time-critical tasks using a fixed-priority preemptive policy, reducing latency jitter significantly.
Who developed the RTI Scheduler?
The RTI Scheduler was developed by Ralph Lange and Dejanira Araiza-Illan from Apex.AI. It was introduced as part of the ROS 2 Real-Time Working Group in 2020.
Is the RTI Scheduler suitable for non-real-time systems?
While it can run on non-real-time kernels, its performance benefits are unverified in such environments. For optimal results, a real-time Linux kernel is recommended.
When was the RTI Scheduler first demonstrated?
The RTI Scheduler was first demonstrated at ROSCon 2020 in a virtual presentation. Since then, it has received updates to support newer ROS 2 releases.
How much does the RTI Scheduler reduce latency jitter?
According to Apex.AI, the RTI Scheduler reduces latency jitter by up to 90% compared to standard ROS 2 executors, making it ideal for safety-critical applications.
Practical Integration Steps for Developers
Integrating the RTI Scheduler into a ROS 2 project involves several steps. First, ensure your system runs a real-time Linux kernel, such as the PREEMPT_RT patch. Next, clone the scheduler repository from GitHub and build it using colcon. Developers must then configure their launch files to use the RTI executor instead of the default one. The scheduler supports both single-threaded and multi-threaded modes, allowing flexibility based on application needs. Testing with representative workloads is crucial to verify timing constraints.
Real-World Applications and Case Studies
The RTI Scheduler has been deployed in autonomous vehicle prototypes and industrial robot arms. In autonomous driving, it ensures that sensor fusion and control commands execute within strict deadlines. For example, a lidar processing pipeline using the scheduler reported consistent frame rates even under high CPU load. Industrial robotics applications benefit from predictable task execution, reducing the risk of missed deadlines in assembly line operations. These use cases highlight the scheduler’s value in safety-critical environments.
Future Directions and Community Involvement
The ROS 2 Real-Time Working Group continues to refine the RTI Scheduler. Future updates may include support for dynamic priority adjustments and improved integration with ROS 2’s lifecycle nodes. Community contributions are welcome, with the project hosted on GitHub under an open-source license. Developers can participate by reporting issues, submitting pull requests, or sharing benchmark results. As ROS 2 adoption grows in safety-critical domains, the RTI Scheduler is expected to play an increasingly important role.
How the RTI Scheduler Compares to Other Real-Time Solutions
Several real-time scheduling approaches exist for ROS 2, including the default callback-based executor and third-party alternatives like the event-triggered scheduler. The RTI Scheduler distinguishes itself through its fixed-priority preemptive policy, which provides stronger timing guarantees. Unlike the standard executor, it allows developers to assign priorities to individual callbacks, ensuring critical tasks preempt lower-priority ones. This makes it particularly suitable for applications with hard real-time constraints, such as autonomous braking systems or surgical robots.
Performance Benchmarks and Community Feedback
Community benchmarks indicate that the RTI Scheduler achieves consistent sub-millisecond jitter on real-time kernels. Users on the ROS Discourse forum report successful deployments in research projects and commercial prototypes. However, some note that the scheduler’s performance depends heavily on proper priority assignment and system tuning. The Apex.AI team provides example configurations and documentation to help developers optimize their setups. As the community grows, shared best practices continue to emerge.

