[Release] emcon_gz_hardware_interface: A DDS-bypassing hardware interface for Gazebo Harmonic
Bothered by DDS bottlenecks in Gazebo? This open-source interface cuts out the middleman.
When scaling multi-robot simulations or running network-isolated state estimators in Gazebo Harmonic, the standard gz_ros2_control shared memory architecture can become a bottleneck or introduce domain isolation challenges. Aditya_Pachauri's open-source emcon_gz_hardware_interface solves this by acting as a ros2_control SystemInterface that bypasses ROS 2 DDS entirely. Instead of routing simulation traffic through DDS, it acts as a “data diode,” subscribing and publishing directly to native gz-transport topics. This keeps your ROS_DOMAIN_ID completely isolated from high-frequency simulation traffic, eliminating contention and improving reliability.
The interface is built with strict real-time safety: it uses realtime_tools::RealtimeBuffer to ensure the control loop never blocks, and it is fully parameterizable via URDF <hardware> tags. The repository at https://github.com/yenode/emcon_gz_hardware_interface is CI-tested and ready for ROS 2 Jazzy. An RFC has been opened with the ros-controls team for potential upstream inclusion, but the standalone package is available now. This tool is ideal for developers running massive fleets of simulated robots or working with strict network isolation requirements.
- Bypasses ROS 2 DDS entirely, routing simulation traffic directly via gz-transport topics for domain isolation.
- Uses realtime_tools::RealtimeBuffer to ensure non-blocking control loops, critical for real-time safety.
- Fully configurable through URDF <hardware> tags and CI-tested for ROS 2 Jazzy, with an RFC open for upstream integration.
Why It Matters
Enables scalable, real-time-safe multi-robot simulations without DDS bottlenecks, critical for robotics R&D and production testing.