We are excited to introduce Agnocast and the Callback Isolated Executor — two technologies that dramatically improve the performance of ROS 2 systems through true zero-copy IPC and middleware-transparent scheduling. Both are now being fully adopted across Autoware, the open-source autonomous driving platform powering a wide range of commercial deployments, including robotaxis, autonomous buses, and cargo vehicles worldwide. For details, please refer to:
- Introduce True Zero-Copy Publish/Subscribe IPC to Autoware!!
(New Middleware Coexisting with ROS 2) · autowarefoundation · Discussion #5835 - Proposal: Add agnocast::Node support to common/autoware_agnocast_wrapper · autowarefoundation · Discussion #6804
- Proposal: Adopt CallbackIsolatedExecutor in Autoware · autowarefoundation · Discussion #6813
Agnocast: True Zero-Copy IPC for All Message Types
Agnocast is an rclcpp-compatible true zero-copy IPC middleware for ROS 2 that supports all ROS message types, including message structs already generated by rosidl. Existing solutions only support static-sized messages, falling back to serialization and copying for unsized message like PointCloud2 . Agnocast removes this limitation with no serialization overhead. The API is rclcpp-compatible, so migrating a topic typically requires changing only a few lines per node.
Callback Isolated Executor: Middleware-Transparent Scheduling
Callback Isolated Executor (CIE) is a drop-in replacement for the standard ROS 2 executor that establishes a persistent one-to-one mapping between each callback and a dedicated OS thread. Standard executors multiplex callbacks onto shared threads above the OS scheduler, creating a nested scheduling problem that prevents applying OS-level guarantees to individual callbacks. CIE removes this middleware layer, enabling per-callback OS scheduling control for both performance and safety.
Cooperation between Agnocast & CIE
Agnocast and CIE can be used independently, but we recommend coordinating both to maximize performance. Due to its proprietary messaging mechanism, Agnocast requires a dedicated executor, and this functionality is included in the CIE shipped with Agnocast. Of course, we also offer standalone CIE packages.
Proven in Autonomous Vehicle Deployments
We demonstrate the impact of applying Agnocast and CIE to a large-scale ROS 2 autonomous driving system below.
Agnocast
The figure below plots communication latency from message publication to subscriber callback invocation across different message sizes for Agnocast and the compared IPC mechanisms. Agnocast maintains consistent communication latency regardless of message size, even for unsized message types like PointCloud2.
CIE
The figure below shows how much the response times of five critical paths were improved by optimizing them with CIE, compared with running under Linux’s default scheduler CFS without any special tuning (gray line). These results were obtained from measurements taken while the robotaxi was operating on public roads, with the horizontal axis representing elapsed time in seconds. As a result, the worst-case response time (measured) improved by about 5x, demonstrating a significant enhancement in real-time performance.
Get Started
All packages have already been deployed to the official ROS 2 Build Farm and are awaiting distribution. Until then, the current distribution model is as follows:
The following components are available through our PPA.
sudo apt install agnocast-heaphook-v2.2.0 agnocast-kmod-v2.2.0
The core Agnocast library (including CIE) currently requires a source build.
For detailed setup instructions and sample applications, please refer to the README in the repository.
Learn More
Agnocast
Callback Isolated Executor





