Optimizing ROS2 Applications with Streaming Executor: A Performance Analysis
Ragesh Ramachandran
Robotics DevOps & Infra at NODE | ROS, Cloud, DevOps & Mobile Robots | Helping Companies to Scale Robot Software Deployment with End-to-End Automation
In the recent ROS Meetup at Robert Bosch Center for Research and advance development, Renningen brought together robotics enthusiasts and ROS developers eager to explore the latest developments in the Robot Operating System 2 (ROS2). Among the engaging presentations, one interesting topic was the in-depth discussion on ROS2 executors, led by Pablo Ghiglino from Klepsydra Technologies. In this article, we will delve into the key insights and findings from Klepsydra's presentation, about the streaming executor and its advantages in various scenarios.
Understanding ROS2 Executors
Before diving into the streaming executor, it's essential to understand the role of executors in ROS2 applications. Executors play a vital role in managing the flow of data by coordinating and scheduling callbacks for subscriptions, messages, services, timers, and nodes. Unlike maintaining their own queues of messages and callbacks, ROS2 executors consume messages directly from the middleware DDS queues. They then dispatch these messages for execution to one or more threads, ensuring seamless data flow within the system.
Klepsydra's presentation covered three well-known types of ROS2 executors:
The highlight: The Streaming Executor
Klepsydra's presentation highlighted the unique streaming executor, which offers distinct advantages over its counterparts. Here's how it works:
领英推荐
Real-World Results: Performance Comparison
Klepsydra's presentation brought forth compelling evidence for the superiority of the streaming executor, particularly in specific scenarios.
Those who are interested to learn how this performance measurements are made, check this section.
Performance Benchmark scenario
Processors tested:
???? Follow me for more interesting content on Robotics and ROS.
Research Assistant @ RPTU Kaiserslautern-Landau || ex-Intern @ Volkswagen AG || Python, Machine Learning
1 年Thanks for sharing